On Sep 1, 2009, at 8:58 PM, William Cauchois wrote:

> It seems to me that the error comes from feeding a function which uses
> i into fast_float (called by the plotting functions to compile the
> function to be plotted into an optimized form). I tried a simpler
> function using i and got the same error:
>
> sage: plot3d(x + y + i, (x, 0, 1), (y, 0, 1))
> Traceback (click to the left for traceback)
> ...
> TypeError: float() argument must be a string or a number
> sage: from sage.ext.fast_eval import fast_float
> sage: fast_float(x + i, 'x')
> Traceback (click to the left for traceback)
> ...
> TypeError: float() argument must be a string or a number
>
> It would make sense for the low-level representation used by
> fast_float not to include a concept of imaginary numbers. Have you had
> success plotting any other functions that use imaginary numbers? There
> should be a mechanism to fall back to using the unmodified function in
> the event that fast_float fails to convert the function.

The code leaves a lot to be desired. For example, now that we have  
fast_callable, with CDF support, we should be using that. Actually,  
we're using the helper function setup_for_eval_on_grid (to normalize  
the boundaries) and then ignoring the returned function, so this  
check is completely useless.

As for being a function of one or two variables, it's unclear what  
the best approach is to take here. Clearly we want to allow plotting  
complex functions of a complex variable, but the alternative is  
useful too. For functions, the number (and names) of the arguments  
they take is explicit, but for expressions like sin(z) or x+y+i it's  
not as obvious. Does the x in plot3d(x+1, ...) stand for the real  
part of the complex argument, or the entire thing? Or perhaps the  
bounds should be complex numbers defining the rectangle, like

sage: plot3d(exp(z), (z, -1-i, 1+i))

though I'm not sure I like this notation either.

- Robert


--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support-unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to