#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 special function maxima
Work_issues:             |       Upstream:  N/A                          
   Reviewer:             |         Author:                               
     Merged:             |   Dependencies:                               
-------------------------+--------------------------------------------------
Changes (by benjaminfjones):

  * keywords:  ei Ei => ei Ei special function maxima


Old description:

> We're missing some conversions from Maxima.  Like exponential integrals
> of various kinds.
> {{{
> sage: f(x) = e^(-x) * log(x+1)
> sage: uu = integral(f,x,0,oo)
> sage: uu
> x |--> e*expintegral_e(1, 1)
> }}}
> See [http://ask.sagemath.org/question/488/calculating-integral this
> ask.sagemath post] for some details.
> {{{
> sage: sage.symbolic.pynac.symbol_table['maxima']
> {'elliptic_e': elliptic_e, 'imagpart': imag_part, 'acsch': arccsch,
> 'glaisher': glaisher, 'asinh': arcsinh, 'minf': -Infinity, 'elliptic_f':
> elliptic_f, '(1+sqrt(5))/2': golden_ratio, 'inf': +Infinity, 'log(2)':
> log2, 'kron_delta': kronecker_delta, 'asin': arcsin, 'log': log, 'atanh':
> arctanh, 'brun': brun, '%pi': pi, 'acosh': arccosh, 'sin': sin,
> 'mertens': mertens, 'ceiling': ceil, 'infinity': Infinity, 'elliptic_ec':
> elliptic_ec, 'atan': arctan, 'factorial': factorial, 'twinprime':
> twinprime, 'khinchin': khinchin, 'catalan': catalan, 'signum': sgn,
> 'binomial': binomial, 'delta': dirac_delta, 'asec': arcsec,
> 'elliptic_kc': elliptic_kc, '%gamma': euler_gamma, 'realpart': real_part,
> 'elliptic_eu': elliptic_eu, 'cos': cos, 'acoth': arccoth,
> 'gamma_incomplete': gamma, 'li[2]': dilog, 'atan2': arctan2, 'exp': exp,
> 'psi[0]': psi, 'asech': arcsech, 'acos': arccos, 'acot': arccot, 'acsc':
> arccsc, 'elliptic_pi': elliptic_pi}
> }}}

New description:

 We're missing some conversions from Maxima.  Like exponential integrals of
 various kinds.
 {{{
 sage: f(x) = e^(-x) * log(x+1)
 sage: uu = integral(f,x,0,oo)
 sage: uu
 x |--> e*expintegral_e(1, 1)
 }}}
 See [http://ask.sagemath.org/question/488/calculating-integral this
 ask.sagemath post] for some details.

 == Current symbol conversion table ==
 From `sage.symbolic.pynac.symbol_table['maxima']` as of Sage-4.7
 {{{
 Maxima ---> Sage

 %gamma ---> euler_gamma
 %pi ---> pi
 (1+sqrt(5))/2 ---> golden_ratio
 acos ---> arccos
 acosh ---> arccosh
 acot ---> arccot
 acoth ---> arccoth
 acsc ---> arccsc
 acsch ---> arccsch
 asec ---> arcsec
 asech ---> arcsech
 asin ---> arcsin
 asinh ---> arcsinh
 atan ---> arctan
 atan2 ---> arctan2
 atanh ---> arctanh
 binomial ---> binomial
 brun ---> brun
 catalan ---> catalan
 ceiling ---> ceil
 cos ---> cos
 delta ---> dirac_delta
 elliptic_e ---> elliptic_e
 elliptic_ec ---> elliptic_ec
 elliptic_eu ---> elliptic_eu
 elliptic_f ---> elliptic_f
 elliptic_kc ---> elliptic_kc
 elliptic_pi ---> elliptic_pi
 exp ---> exp
 expintegral_e ---> En
 factorial ---> factorial
 gamma_incomplete ---> gamma
 glaisher ---> glaisher
 imagpart ---> imag_part
 inf ---> +Infinity
 infinity ---> Infinity
 khinchin ---> khinchin
 kron_delta ---> kronecker_delta
 li[2] ---> dilog
 log ---> log
 log(2) ---> log2
 mertens ---> mertens
 minf ---> -Infinity
 psi[0] ---> psi
 realpart ---> real_part
 signum ---> sgn
 sin ---> sin
 twinprime ---> twinprime
 }}}

 = Summary of missing conversions =

 == Special functions defined in Maxima ==
 (http://maxima.sourceforge.net/docs/manual/en/maxima_16.html#SEC56)

 {{{
 bessel_j (index, expr)         Bessel function, 1st kind
 bessel_y (index, expr)         Bessel function, 2nd kind
 bessel_i (index, expr)         Modified Bessel function, 1st kind
 bessel_k (index, expr)         Modified Bessel function, 2nd kind
 }}}

  * Notes: bessel_I, bessel_J, etc. are functions in Sage for numerical
 evaluation. There is also the `Bessel` class, but no conversions from
 Maxima's bessel_i etc. to Sage.

 {{{
 hankel_1 (v,z)                 Hankel function of the 1st kind
 hankel_2 (v,z)                 Hankel function of the 2nd kind
 struve_h (v,z)                 Struve H function
 struve_l (v,z)                 Struve L function
 }}}

  * Notes: None of these functions are currently exposed at the top level
 in Sage. Evaluation is possible using mpmath.

 {{{
 assoc_legendre_p[v,u] (z)      Legendre function of degree v and order u
 assoc_legendre_q[v,u] (z)      Legendre function, 2nd kind
 }}}

  * Notes: In Sage we have `legendre_P(n, x)` and `legendre_Q(n, x)` both
 described as Legendre functions. It's not clear to me how there are
 related to Maxima's versions since the number of arguments differs.

 {{{
 %f[p,q] ([], [], expr)         Generalized Hypergeometric function
 hypergeometric(l1, l2, z)      Hypergeometric function
 slommel
 %m[u,k] (z)                    Whittaker function, 1st kind
 %w[u,k] (z)                    Whittaker function, 2nd kind
 }}}

  * Notes: `hypergeometric(l1, l2, z)` needs a conversion to Sage's
 `hypergeometric_U`. The others can be evaluated using mpmath. `slommel` is
 presumably mpmath's `lommels1()` or `lommels2()` (or both?). This isn't
 well documented in Maxima.

 {{{
 expintegral_e (v,z)            Exponential integral E
 expintegral_e1 (z)             Exponential integral E1
 expintegral_ei (z)             Exponential integral Ei
 expintegral_li (z)             Logarithmic integral Li
 expintegral_si (z)             Exponential integral Si
 expintegral_ci (z)             Exponential integral Ci
 expintegral_shi (z)            Exponential integral Shi
 expintegral_chi (z)            Exponential integral Chi
 erfc (z)                       Complement of the erf function
 }}}

  * Notes: The exponential integral functions `expintegral_e1` and
 `expintegral_ei (z)` are called `exponential_integral_1` and `Ei` resp. in
 Sage. They both need conversions. The rest need `BuiltinFunction` classes
 defined for them with evaluation handled by mpmath and the symbol table
 conversion added. Also, `erfc` is called `error_fcn`, so also needs a
 conversion.

 {{{
 kelliptic (z)                  Complete elliptic integral of the first
                                kind (K)
 parabolic_cylinder_d (v,z)     Parabolic cylinder D function
 }}}

  * Notes: `kelliptic(z)` needs a conversion to `elliptic_kc` in Sage and
 `parabolic_cylinder_d (v,z)` does not seem to be exposed at top level. It
 can be evaluated by mpmath.

--

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