#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.