Differences between revisions 6 and 9 (spanning 3 versions)
Revision 6 as of 2009-03-20 14:44:50
Size: 3804
Editor: BurcinErocal
Comment: add link to Geddes, et. al book for integration
Revision 9 as of 2009-06-13 17:06:53
Size: 3527
Editor: BurcinErocal
Comment: added transforms and orthogonal polys to todo list, removed pynac notice
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
=== Pynac and Maxima based symbolics ===

Most symbolics functionality in Sage relies on [[http://maxima.sf.net|Maxima]]. While Maxima is a very mature and capable software package, there are some problems with using it in Sage. Namely,
  * the pexpect interface to Maxima is slow, and
  * Sage developers cannot fix problems in Maxima or enhance its functionality.

To provide a better framework for symbolics in Sage, and to make implementation of new symbolics functionality that relies on components of Sage easier; we created a fork of the C++ library [[http://www.ginac.de|GiNaC]], called Pynac, which works with Python types. There are still some low level changes required in Pynac before it can be used as a basis for symbolics in Sage, we keep track of these at the [[symbolics/pynac_todo|Pynac todo list]].

With the switch to Pynac based symbolics, it will be possible to implement native functionality in Sage. Here is a brief list of areas that need work.
Line 19: Line 10:
   * Minh Van Nguyen is working on this.
Line 20: Line 12:
  * A survey by Keith Geddes: [[http://www.cs.uwaterloo.ca/~kogeddes/papers/Integration/IntSurvey.html|Algorithms for Indefinite and Definite Integration in Maple]]
Line 39: Line 32:
 * Transforms
  * laplace, inverse_laplace, hilbert, mellin, etc.
  * Some discussion on the sage-support list in [[http://groups.google.com/group/sage-support/browse_thread/thread/7b48e5dbd06f9f46|this thread]].

 * Orthogonal polynomials
  * The orthogonal polynomials defined by sage in the module `sage.functions.orthogonal_polys` are wrappers to maxima, we should provide native implementations of these, preferably with an argument to specify the parent of the resulting polynomial
Line 48: Line 48:
   $$ \sum_{s \ge m} \binom{s}{m} \frac{(n)_s}{(\frac{n}{2} + 1)_s 2^{s}} = \frac{(n)_m}{2^{
m}(\frac{n}{2}+1)_m} \,_2 F_1 \left( \begin{array}{cc} m+1, m+n \\ m+ \frac{n}{2} +1 \end{array} ; \frac{1}{2} \right) = \frac{2^{n-1} \Gamma(\frac{n}{2} +1) \Gamma(\frac{m}{2} + \frac{n}{2})}{\Gamma(\frac{m}{2} + 1)\Gamma(n)}$$
$$\sum_{s \ge m} \binom{s}{m} \frac{(n)_s}{(\frac{n}{2} + 1)_s 2^{s}} = \frac{(n)_m}{2^{m}(\frac{n}{2}+1)_m} \,_2 F_1 \left( \begin{array}{cc} m+1, m+n \\ m+ \frac{n}{2} +1 \end{array} ; \frac{1}{2} \right) = \frac{2^{n-1} \Gamma(\frac{n}{2} +1) \Gamma(\frac{m}{2} + \frac{n}{2})}{\Gamma(\frac{m}{2} + 1)\Gamma(n)}$$

Line 57: Line 58:
    

Symbolics in Sage

These pages are aimed at developers of symbolics functionality in Sage. If you're interested in helping out with any of the items below please contact the sage-devel googlegroup or the people already working on your item of interest.

TODO

Some of the functionality listed above is provided by Maxima wrappers at the moment.

  • Summation
  • Hypergeometric functions
    • HYP from Christian Krattenthaler for MMA

    • HYPERG from Bruno Gauthier for Maple

      • This should let us do the following:

\sum_{s \ge m} \binom{s}{m} \frac{(n)_s}{(\frac{n}{2} + 1)_s 2^{s}} = \frac{(n)_m}{2^{m}(\frac{n}{2}+1)_m} \,_2 F_1 \left( \begin{array}{cc} m+1, m+n \\ m+ \frac{n}{2} +1 \end{array} ; \frac{1}{2} \right) = \frac{2^{n-1} \Gamma(\frac{n}{2} +1) \Gamma(\frac{m}{2} + \frac{n}{2})}{\Gamma(\frac{m}{2} + 1)\Gamma(n)}
  • Meijer G-Functions
  • Generating functions
    • This is a building block for many things. A prerequisite for this is linear algebra over polynomial rings, Burcin Erocal is working on this.
    • gfun by Bruno Salvy and Paul Zimmermann included in Maple

    • GeneratingFunctions by Christian Mallinger for MMA

symbolics (last edited 2017-05-15 19:43:59 by chapoton)