#11888: Sage is missing the lambert_w function
----------------------------------------------------------------------------------+
   Reporter:  benjaminfjones                                                    
  |          Owner:  burcin                                      
       Type:  defect                                                            
  |         Status:  needs_work                                  
   Priority:  minor                                                             
  |      Milestone:  sage-5.0                                    
  Component:  symbolics                                                         
  |       Keywords:  lambert_w symbolics conversion maxima sd35.5
Work_issues:                                                                    
  |       Upstream:  N/A                                         
   Reviewer:  Keshav Kini, Karl-Dieter Crisman, Fredrik Johansson, Burcin 
Erocal  |         Author:  Benjamin Jones                              
     Merged:                                                                    
  |   Dependencies:  #12507                                      
----------------------------------------------------------------------------------+

Comment(by benjaminfjones):

 Replying to [comment:33 burcin]:
 >
 > You need to define `_maxima_init_evaled_()`. See line 895 of
 `sage/fuctions/other.py`:
 >
 > http://hg.sagemath.org/sage-
 main/file/c239be1054e0/sage/functions/other.py#l895
 >

 It seems that adding `_maxima_init_evaled_()` solves one issue, converting
 to Maxima with `_maxima_()`,

 {{{
 sage: lambert_w(x)._maxima_()
 lambert_w(x)
 sage: lambert_w(1,x)._maxima_()
 ...
 NotImplementedError: Non-principal branch lambert_w[1](x) is not
 implemented in Maxima
 }}}

 but integration still doesn't work (same error is raised as before).
 Looking closer it seems that the issue is here:

 {{{
 sage: z = lambert_w(x)
 sage: z.operands()
 [0, x]
 sage: z.operator()
 lambert_w
 }}}

 because when `sr_to_max` is called in the integration code, I get:

 {{{
 sage: from sage.interfaces.maxima_lib import sr_to_max
 sage: sr_to_max(lambert_w(x))
 <ECL: ((%LAMBERT_W) 0 $X)>
 sage: sr_to_max(lambert_w(1, x))
 <ECL: ((%LAMBERT_W) 1 $X)>
 }}}

 and Maxima barfs because it doesn't know what to do with `((%LAMBERT_W) 0
 $X)`.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/11888#comment:34>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to