#16697: implement symbolic lower incomplete gamma function
-------------------------+-------------------------------------------------
   Reporter:  rws        |            Owner:
       Type:  defect     |           Status:  new
   Priority:  major      |        Milestone:  sage-6.3
  Component:  symbolics  |         Keywords:  gamma, incomplete, special,
  Merged in:             |  functions
  Reviewers:             |          Authors:
Work issues:             |  Report Upstream:  N/A
     Commit:             |           Branch:
   Stopgaps:             |     Dependencies:
-------------------------+-------------------------------------------------
 This is actually a defect because we leave a result from Maxima undefined:
 {{{
 sage: hypergeometric([1],[b],x).simplify_hypergeometric()
 (b - 1)*x^(-b + 1)*e^x*gamma_greek(b - 1, x)
 sage: gamma_greek
 ---------------------------------------------------------------------------
 NameError                                 Traceback (most recent call
 last)
 <ipython-input-18-6e90901bc5cb> in <module>()
 ----> 1 gamma_greek

 NameError: name 'gamma_greek' is not defined
 }}}
 
https://en.wikipedia.org/wiki/Incomplete_gamma_function#Lower_incomplete_Gamma_function

 Mathematica seems to have Gamma[a,z] for upper and Gamma[a,0,z] for lower;
 Maple seems to have upper Gamma. `gamma_inc` (the upper one in Sage) gets
 immediately converted to `gamma(a,x)`, so Sage has already went the
 Mathematica path of `gamma(a)=gamma(a,x)+gamma(a,0,x)`. The symbolic
 functions `gamma_inc==incomplete_gamma` are converted and never returned
 to the user as expression:
 {{{
 sage: gamma_inc(x,x,hold=True)
 gamma(x, x)
 sage: incomplete_gamma(x,x,hold=True)
 gamma(x, x)
 sage: assume(x>0)
 sage: integral(t^(s-1)*e^(-t),t,0,x)
 -gamma(s, x) + gamma(s)
 }}}
 So, what's the plan?

  1. Provide all three "user input interfaces" `gamma_inc`,
 `incomplete_gamma` and `lower_incomplete_gamma`, and convert the Maxima
 `gamma_greek` to `-gamma(a, x) + gamma(a)`
  2. Provide all three "user input interfaces" `gamma_inc`,
 `incomplete_gamma` and `lower_incomplete_gamma`, and convert to
 `gamma(a,x)` and `gamma(a,0,x)`n on output
  3. Provide all three "user input interfaces" `gamma_inc`,
 `incomplete_gamma` and `lower_incomplete_gamma`, and have
 `incomplete_gamma` and `lower_incomplete_gamma` as result instead of
 `gamma(...)'
  4. Change the user interface completely to `lower_incomplete_gamma` and
 `upper_incomplete_gamma`
  5. Change the user interface completely to `gamma_inc_lower` and
 `gamma_inc_upper`
  6. Change the user interface completely to `gamma(a,x)` and
 `gamma(a,0,x)`

--
Ticket URL: <http://trac.sagemath.org/ticket/16697>
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 unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to