#11143: Add various Maxima special functions to symbol table
-------------------------+--------------------------------------------------
   Reporter:  kcrisman   |          Owner:  burcin
       Type:  defect     |         Status:  new   
   Priority:  major      |      Milestone:        
  Component:  symbolics  |       Keywords:  ei Ei 
Work_issues:             |       Upstream:  N/A   
   Reviewer:             |         Author:        
     Merged:             |   Dependencies:        
-------------------------+--------------------------------------------------

Comment(by benjaminfjones):

 I'm attempting to write a template for the `expintegral_e` function
 (denoted E_n(z) in A&S). As I'm looking through the code, I see several
 models used for the functions and classes in `sage/functions/special.py`
 and `sage/functions/transcendental.py`

  * Functions like `Function_exp_integral` (also called `Ei`) are defined
 as classes that inherit from `BuiltInFunction` and call the mpmath
 implementation when evaluated. The function `DickmanRho` also does this
 and includes other nice methods for approximating values and power series.
  * Functions like `EllipticE` inherit from `MaximaFunction` which handles
 evaluation, etc. through Maxima. It seems there is an advantage to the
 mpmath implementation because presumably the interface is faster and the
 precision is arbitrary (whereas Maxima is limited to 53 bits).
  * Functions like `Li` and `error_fcn` are simply wrapper functions that
 try to evaluate the input symbolically or numerically depending on
 context.
  * In `sage/functions/trig.py` there is a mixture of classes that derive
 from `GinacFunction` (and include information in their `__init__` methods
 about conversions to other systems like Maxima or Mathematica) and also
 functions that derive from `BuiltinFunction`. It's not clear to me why
 some functions are Ginac and some are Builtin.

 Questions:

  * For the purposes of this ticket, what is recommended? @kcrisman 's
 comment leads me to believe that inheriting from the `BuiltinFunction`
 class and using `mpmath` for evaluation is preferable.
  * Where should the various exponential integral special functions that we
 are missing go? `sage/functions/special.py`,
 `sage/functions/transcendental.py`, or somewhere else?

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/11143#comment:7>
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