On Jul 16, 2009, at 1:37 PM, kcrisman wrote:

> On Jul 16, 3:54 pm, Ethan Van Andel <evlu...@gmail.com> wrote:
>> Sorry to keep spamming sage-support.
>>
>> I have a class instance m with a method riemann_map so that
>> m.riemann_map(z) returns a (numpy) complex value. I want to do a
>> complex_plot of that function. If I try:
>> complex_plot(m.riemann_map,(-2,2),(-2,2)) I get this error:
>> ...
>>   File "fast_eval.pyx", line 1272, in
>> sage.ext.fast_eval.fast_float_constant (sage/ext/fast_eval.c:7989)
>>   File "fast_eval.pyx", line 513, in
>> sage.ext.fast_eval.FastDoubleFunc.__init__ (sage/ext/fast_eval.c: 
>> 3451)
>> TypeError: a float is required
>>
>> In regular sage I just plot lambda x: m.riemann_map(x). However, I
>> want to move that call to cython to reduce overhead, and it seems  
>> like
>> lambda doesn't work in cython.

If you're calling complex_plot, you don't need to be worrying about  
the overhead...

> According to
> http://sage.math.washington.edu/home/mhansen/sage-epydoc/ 
> sage.misc.cython-module.html#cython_lambda
> which is probably semi-official (I couldn't find it in reference
> manual but it seems okay), there is a cython_lambda which should work
> okay.  Someone else will certainly be able to clarify more :)

This seems a bit hackish for what you need, and I don't think it will  
even work in this case. Is there any reason you can't use an ordinary  
function instead of a lambda? The two best options I see are either  
writing that part in Python (quick and easy), or fixing complex_plot  
to take any callable (which it really should do).

- 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