This week I primarily worked on some bugs and added singular initial conditions to the result of expr_to_holonomic().
Firstly I fixed a bug in .unify(). There were some errors being raised in it when one of the Holonomic Function had ground domain RR or an extension of it. This now works fine.
In [9]: expr_to_holonomic(1.4*x)*expr_to_holonomic(a*x, x)
Out[9]: HolonomicFunction((-2.0) + (1.0*x)*Dx, x, 0, {2: [1.4*a]})
In [10]: _9.to_expr()
Out[10]:
2
1.4⋅a⋅x
Later I fixed a bug in converting the two types of initial condition into one another. Apparently I forgot to add the factorial term while converting.
After that I added singular initial conditions to the result of expr_to_holonomic() whenever the Indicial equation have one root. For example:
In [14]: expr_to_holonomic(x*exp(x))
Out[14]: HolonomicFunction((-x - 1) + (x)*Dx, x, 0, {1: [1]})
In [15]: _.to_expr()
Out[15]:
x
x⋅ℯ
I also changed printing of the class HolonomicFunction to include the initial conditions inside the call, so as to make it proper python. These are implemented in #11480 and #11451.
Right now we are trying to find a way to include convergence conditions in the result while converting Holonomic Functions to expressions.

