Differences between revisions 8 and 9
Revision 8 as of 2009-05-17 05:00:57
Size: 4013
Editor: Minh Nguyen
Comment: A reminder that I'm working on Bronstein's parallel integration technique.
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 41: 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 50: 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 59: 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)