[sage-support] Re: sagenb - error with sagelet Coordinate Transformations

2008-11-14 Thread William Stein

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

2008-11-14 Thread Jason Grout

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

2008-11-14 Thread Robert Bradshaw

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

2008-11-14 Thread Jason Grout

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

2008-11-14 Thread Robert Bradshaw

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
-~--~~~~--~~--~--~---