def test_from_meijerg(): x = symbols('x') R, Dx = DifferentialOperators(QQ.old_poly_ring(x), 'Dx') p = from_meijerg(meijerg(([], [S(3)/2]), ([S(1)/2], [S(1)/2, 1]), x)) q = HolonomicFunction(x/2 - 1/4 + (-x**2 + x/4)*Dx + x**2*Dx**2 + x**3*Dx**3, x, 1, \ [1/sqrt(pi), 1/(2*sqrt(pi)), -1/(4*sqrt(pi))]) assert p == q p = from_meijerg(meijerg(([], []), ([0], []), x)) q = HolonomicFunction(1 + Dx, x, 0, [1]) assert p == q p = from_meijerg(meijerg(([1], []), ([S(1)/2], [0]), x)) q = HolonomicFunction((x + 1/2)*Dx + x*Dx**2, x, 1, [sqrt(pi)*erf(1), exp(-1)]) assert p == q p = from_meijerg(meijerg(([0], [1]), ([0], []), 2*x**2)) q = HolonomicFunction((3*x**2 - 1)*Dx + x**3*Dx**2, x, 1, [-exp(-S(1)/2) + 1, -exp(-S(1)/2)]) assert p == q
def test_from_meijerg(): x = symbols("x") R, Dx = DifferentialOperators(QQ.old_poly_ring(x), "Dx") p = from_meijerg(meijerg(([], [S(3) / 2]), ([S(1) / 2], [S(1) / 2, 1]), x)) q = HolonomicFunction( 2 * x - 1 + (-4 * x ** 2 + x) * Dx + 4 * x ** 2 * Dx ** 2 + 4 * x ** 3 * Dx ** 3, x, 1, [1 / sqrt(pi), 1 / (2 * sqrt(pi)), -1 / (4 * sqrt(pi))], ) assert p == q p = from_meijerg(meijerg(([], []), ([0], []), x)) q = HolonomicFunction(1 + Dx, x, 0, 1) assert p == q p = from_meijerg(meijerg(([1], []), ([S(1) / 2], [0]), x)) q = HolonomicFunction((2 * x + 1) * Dx + 2 * x * Dx ** 2, x, 1, [sqrt(pi) * erf(1), exp(-1)]) assert p == q p = from_meijerg(meijerg(([0], [1]), ([0], []), 2 * x ** 2)) q = HolonomicFunction((3 * x ** 2 - 1) * Dx + x ** 3 * Dx ** 2, x, 1, [-exp(-S(1) / 2) + 1, -exp(-S(1) / 2)]) assert p == q