## Work

In Uncategorized on April 27, 2011 by nessgrh

Alright, since I don’t have much to say yet, let me use this post to compile a list of things that have to be done before we see the first non-trivial integrals evaluated. I’ll also add random notes on implementation that spring to my mind. I’ll keep updating this.

1. Classes to represent functions: Bessel, Hypergeometric, Meijer G
• Make sure the following work: evalf, derivatives, simple limits, basic properties, naive pattern matching, some special values
• Pretty printing.
2. Framework for simplifying Hypergeometric and Meijer G functions.
• Shift and inverse-shift operators.
• Determining suitable origins and sequences of operators to reach them.
• Implement randomised testing.
• Start the lookup table.
• Possibly need to tweak gamma function simplification code.
• Probably need to find a replacement for naive pattern matching. In any case pattern matching of tuples does not seem to work too well.
3. Expression of integrands in terms of Meijer G functions.
• Convert to a canonical form and use table lookup.
4. Extend integration code to use Meijer G function integration theorems.
• Probably need to implement more properties / assumptions in order to be able to check the antecedents of the theorems.

The following are possible extensions of the above work, orthogonal to the main plan of adding new functions:

• Asymptotic expansion of Meijer G (and hence Hypergeometric) functions is possible but complicated.
• Extend class Sum to convert itself into a hypergeometric function if possible.
• The Hypergeometric (and Meijer G) functions are also the general solutions to fairly general ODEs, so the ODE module could also benefit.
• Use Zeilberger’s algorithm to find particular values of hypergeometric functions.
• Use recursive mellin transforms for 3.