ContourPlot, etc.: not every point a Real
- To: mathgroup at smc.vnet.net
- Subject: [mg87453] ContourPlot, etc.: not every point a Real
- From: Will Robertson <wspr81 at gmail.com>
- Date: Fri, 11 Apr 2008 01:41:52 -0400 (EDT)
Hello,
I just discovered something a little strange and hoped someone here
might be able to shed some light on the matter. (I'm using Mathematica 6.0.1.)
Take this following code. It defines a function and uses it in a
contour plot; the trick is that every value is intercepted on the way
through (I use this in ColorbarPlot to extract max/min values):
fn := #1^3 + #2^2 &
everyNonReal = {};
Eval[x__] := Module[{val = Evaluate@fn@x},
If[Head@val =!= Real, AppendTo[everyNonReal, val]]; val]
ContourPlot[Eval[x, y], {x, -2, 2}, {y, -2, 2}]
Union@everyNonReal
If every evaluation of fn resulted in a Real (as I would expect), then
the output should be {} as the if statement would never evaluate. But
there's a point in there that's *not* being evaluated, as you can see.
What's going on? Working around this problem results in an extra If
statement for every single evaluated point, a state of affairs I'm not
so fond of.
Many thanks,
Will