Differences between revisions 4 and 11 (spanning 7 versions)
Revision 4 as of 2009-02-25 13:16:44
Size: 3327
Editor: BurcinErocal
Comment: added solve and generating functions items, and hyperg link to hypergeometric functions
Revision 11 as of 2010-07-20 00:00:39
Size: 3599
Comment: I wanted just mention that I work on the Ortho. Poly issues....
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.
  * [[http://books.google.at/books?id=9fOUwkkRxT4C&pg=PR2&hl=en#PPA473,M1|A summary of heuristics used in Maple]] from Algorithms in Computer Algebra by Geddes, Czapor and Labahn
  * A survey by Keith Geddes: [[http://www.cs.uwaterloo.ca/~kogeddes/papers/Integration/IntSurvey.html|Algorithms for Indefinite and Definite Integration in Maple]]
Line 23: Line 17:
  * [[http://www.unk.edu/uploadedFiles/facstaff/profiles/willisb/solve-talk(3).pdf|Talk by Barton Willis]] on Maxima's to_poly solve function
  * [[http://maxima.cvs.sourceforge.net/viewvc/maxima/maxima/share/contrib/rtest_to_poly_solver.mac?view=markup|test suite]] for Maxima's to_poly solver
Line 36: 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
   * Stefan Reiterer ([email protected]) is working on this
Line 45: Line 49:
   $$ \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} {s \choose 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 54: Line 59:
    

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} {s \choose 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)