[sage-support] Re: sagenb - error with sagelet Coordinate Transformations
On Fri, Nov 14, 2008 at 12:44 PM, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: Hello, I tried the wonderful sagelet Coordinate Transformations from http://wiki.sagemath.org/interact/calculus#CoordinateTransformations on public server sagenb.org and got NameError: name 'os' is not defined THERE WAS AN ERROR LOADING THE SAGE LIBRARIES. Try starting Sage from the command line to see what the error is. Is something missing in sagenb.org sage installation? (I had no problem with this sagelet on my local sage installation.) When I try that one in sagenb.org I do not get the above error. Maybe you got that due to possibly very high system load or something? I did try pasting that example into sagenb.org and it gives some weird errors involving _fast_float. Jason Grout -- maybe you could look at why your interact appears broken? William --~--~-~--~~~---~--~~ To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-support URLs: http://www.sagemath.org -~--~~~~--~~--~--~---
[sage-support] Re: sagenb - error with sagelet Coordinate Transformations
William Stein wrote: I did try pasting that example into sagenb.org and it gives some weird errors involving _fast_float. Jason Grout -- maybe you could look at why your interact appears broken? Robert Bradshaw: I've asked a question at the bottom of this email to you about partial function evaluation of fast_float functions... Okay, I've updated the code to be smarter. The code ended up calling maxima a *lot* for what basically was partial function evaluation. Instead, I switched it to use the functools.partial class to partially evaluate a fast_float function. Apparently I triggered the surge protection on the wiki and so cannot post the update there. It is here: http://sagenb.org:8000/home/pub/69 and also just in case sometime in the future, the public notebook server goes down, here is the code so it's archived on the list: var('u v') from sage.ext.fast_eval import fast_float from functools import partial @interact def trans(x=input_box(u^2-v^2, label=x=,type=SR), \ y=input_box(u*v+cos(u*v), label=y=,type=SR), \ t_val=slider(0,10,0.2,6, label=Length of curves), \ u_percent=slider(0,1,0.05,label=font color='red'u/font, default=.7), v_percent=slider(0,1,0.05,label=font color='blue'v/font, default=.7), u_range=input_box(range(-5,5,1), label=u lines), v_range=input_box(range(-5,5,1), label=v lines)): thickness=4 u_val = min(u_range)+(max(u_range)-min(u_range))*u_percent v_val = min(v_range)+(max(v_range)-min(v_range))*v_percent t_min = -t_val t_max = t_val g1=sum([parametric_plot((i,v), t_min,t_max, rgbcolor=(1,0,0)) for i in u_range]) g2=sum([parametric_plot((u,i), t_min,t_max, rgbcolor=(0,0,1)) for i in v_range]) vline_straight=parametric_plot((u,v_val), t_min,t_max, rgbcolor=(0,0,1), linestyle='-',thickness=thickness) uline_straight=parametric_plot((u_val, v), t_min,t_max,rgbcolor=(1,0,0), linestyle='-',thickness=thickness) (g1+g2+vline_straight+uline_straight).save(uv_coord.png,aspect_ratio=1, figsize=[5,5], axes_labels=['$u$','$v$']) xuv = fast_float(x,'u','v') yuv = fast_float(y,'u','v') xvu = fast_float(x,'v','u') yvu = fast_float(y,'v','u') g3=sum([parametric_plot((partial(xuv,i),partial(yuv,i)), t_min,t_max, rgbcolor=(1,0,0)) for i in u_range]) g4=sum([parametric_plot((partial(xvu,i),partial(yvu,i)), t_min,t_max, rgbcolor=(0,0,1)) for i in v_range]) vline=parametric_plot((partial(xvu,v_val),partial(yvu,v_val)), t_min,t_max, rgbcolor=(0,0,1), linestyle='-',thickness=thickness) uline=parametric_plot((partial(xuv,u_val),partial(yuv,u_val)), t_min,t_max,rgbcolor=(1,0,0), linestyle='-',thickness=thickness) (g3+g4+vline+uline).save(xy_coord.png, aspect_ratio=1, figsize=[5,5], axes_labels=['$x$','$y$']) print jsmath(x=%s, \: y=%s%(latex(x), latex(y))) print htmltabletrtdimg src='cell://uv_coord.png'//tdtdimg src='cell://xy_coord.png'//td/tr/table/html Robert, can we make partial function evaluation part of fast_float? That way, given the following: var(u,v) x=u^2+v^2 xuv = fast_float(x,'u','v') the following are equivalent: xuv(2)(3) and xuv(2,3) Of course, right now, we can do this (with a slight performance penalty) by doing: import functools.partial functools.partial(xuv,2)(3) My whole reason for doing this (to avoid expensive maxima calls) is disappearing soon, so maybe it's not worth the effort, especially since functools.partial provides a standard python way to get this. Thanks, Jason --~--~-~--~~~---~--~~ To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-support URLs: http://www.sagemath.org -~--~~~~--~~--~--~---
[sage-support] Re: sagenb - error with sagelet Coordinate Transformations
On Nov 14, 2008, at 3:08 PM, Jason Grout wrote: William Stein wrote: I did try pasting that example into sagenb.org and it gives some weird errors involving _fast_float. Jason Grout -- maybe you could look at why your interact appears broken? Robert Bradshaw: I've asked a question at the bottom of this email to you about partial function evaluation of fast_float functions... Okay, I've updated the code to be smarter. The code ended up calling maxima a *lot* for what basically was partial function evaluation. Instead, I switched it to use the functools.partial class to partially evaluate a fast_float function. Apparently I triggered the surge protection on the wiki and so cannot post the update there. It is here: http://sagenb.org:8000/home/pub/69 and also just in case sometime in the future, the public notebook server goes down, here is the code so it's archived on the list: var('u v') from sage.ext.fast_eval import fast_float from functools import partial @interact def trans(x=input_box(u^2-v^2, label=x=,type=SR), \ y=input_box(u*v+cos(u*v), label=y=,type=SR), \ t_val=slider(0,10,0.2,6, label=Length of curves), \ u_percent=slider(0,1,0.05,label=font color='red'u/font, default=.7), v_percent=slider(0,1,0.05,label=font color='blue'v/ font, default=.7), u_range=input_box(range(-5,5,1), label=u lines), v_range=input_box(range(-5,5,1), label=v lines)): thickness=4 u_val = min(u_range)+(max(u_range)-min(u_range))*u_percent v_val = min(v_range)+(max(v_range)-min(v_range))*v_percent t_min = -t_val t_max = t_val g1=sum([parametric_plot((i,v), t_min,t_max, rgbcolor=(1,0,0)) for i in u_range]) g2=sum([parametric_plot((u,i), t_min,t_max, rgbcolor=(0,0,1)) for i in v_range]) vline_straight=parametric_plot((u,v_val), t_min,t_max, rgbcolor=(0,0,1), linestyle='-',thickness=thickness) uline_straight=parametric_plot((u_val, v), t_min,t_max,rgbcolor=(1,0,0), linestyle='-',thickness=thickness) (g1+g2+vline_straight+uline_straight).save (uv_coord.png,aspect_ratio=1, figsize=[5,5], axes_labels=['$u$','$v$']) xuv = fast_float(x,'u','v') yuv = fast_float(y,'u','v') xvu = fast_float(x,'v','u') yvu = fast_float(y,'v','u') g3=sum([parametric_plot((partial(xuv,i),partial(yuv,i)), t_min,t_max, rgbcolor=(1,0,0)) for i in u_range]) g4=sum([parametric_plot((partial(xvu,i),partial(yvu,i)), t_min,t_max, rgbcolor=(0,0,1)) for i in v_range]) vline=parametric_plot((partial(xvu,v_val),partial(yvu,v_val)), t_min,t_max, rgbcolor=(0,0,1), linestyle='-',thickness=thickness) uline=parametric_plot((partial(xuv,u_val),partial(yuv,u_val)), t_min,t_max,rgbcolor=(1,0,0), linestyle='-',thickness=thickness) (g3+g4+vline+uline).save(xy_coord.png, aspect_ratio=1, figsize=[5,5], axes_labels=['$x$','$y$']) print jsmath(x=%s, \: y=%s%(latex(x), latex(y))) print htmltabletrtdimg src='cell://uv_coord.png'//tdtdimg src='cell://xy_coord.png'//td/tr/table/html Robert, can we make partial function evaluation part of fast_float? That way, given the following: var(u,v) x=u^2+v^2 xuv = fast_float(x,'u','v') the following are equivalent: xuv(2)(3) and xuv(2,3) Of course, right now, we can do this (with a slight performance penalty) by doing: import functools.partial functools.partial(xuv,2)(3) My whole reason for doing this (to avoid expensive maxima calls) is disappearing soon, so maybe it's not worth the effort, especially since functools.partial provides a standard python way to get this. It certainly could be done, but I don't know how worth it it would be. What notation should we use. (I'd much rather have an error when one enters an incomplete list of arguments). - Robert --~--~-~--~~~---~--~~ To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-support URLs: http://www.sagemath.org -~--~~~~--~~--~--~---
[sage-support] Re: sagenb - error with sagelet Coordinate Transformations
Robert Bradshaw wrote: It certainly could be done, but I don't know how worth it it would be. What notation should we use. (I'd much rather have an error when one enters an incomplete list of arguments). In that case, let's just leave it how it is and just use the functools.partial class when we need such functionality. I didn't know you wanted an error when having an incomplete list of arguments so much. Thanks, Jason --~--~-~--~~~---~--~~ To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-support URLs: http://www.sagemath.org -~--~~~~--~~--~--~---
[sage-support] Re: sagenb - error with sagelet Coordinate Transformations
On Nov 14, 2008, at 3:44 PM, Jason Grout wrote: Robert Bradshaw wrote: It certainly could be done, but I don't know how worth it it would be. What notation should we use. (I'd much rather have an error when one enters an incomplete list of arguments). In that case, let's just leave it how it is and just use the functools.partial class when we need such functionality. I didn't know you wanted an error when having an incomplete list of arguments so much. Not doing so leads to very mysterious bugs... I can't imagine, e.g., Python having such semantics. - Robert --~--~-~--~~~---~--~~ To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-support URLs: http://www.sagemath.org -~--~~~~--~~--~--~---