I have been working on two things since my last blog post and they are: converting Symbolic Functions/Expressions to Holonomic and converting Holonomic to Hypergeometric. Let’s discuss the former first:
I wrote a method for converting Expressions earlier too, but that was very trivial, so this week began by me writing a Look-Up table technique to convert expressions. It is similar to the way
meijerint._rewrite1 converts to
meijerg in the
integrals module. The method recursively searches for chunks in the expression that can be converted to Holonomic (using tables) and then uses the operation
+, *, ^ defined on Holonomic Functions to convert the whole expression. #11222
Then I started working on to write a method that converts Holonomic Functions to Hypergeometric or a linear combination of them. (if it’s possible, because every Holonomic Functions is not Hypergeometric.) First I asked questions I had to Kalevi on Gitter about how to do it, and then finally wrote the code here #11246.
Let me also give you an overview of things we have in the module so far.
- Differential Operators and Recurrence Operators.
- Holonomic Functions with following operations: addition, multiplication, power, integration and composition).
- Computing Recurrence relation in Taylor coefficients.
- Series expansion using the recurrence. (Some know issues are there if origin is a regular singular point.)
- Numerical Computation (Runge-Kutta 4th Order and Euler’s method.)
- Converting to Hypergeometric. (Currently working on this.)
- Converting Hypergeometric to Holonomic.
- Converting Meijer G-function to Holonomic.
- Converting expressions to Holonomic. (There doesn’t seem to be a direct algorithm for converting algebraic functions which are not polynomials or rationals, so they are not supported right now.)
This week I will be continuing my work on converting to
hyper and then further extending it to convert to expressions using
Good luck to all fellow GSoCers for Midterm Evaluation.