7 #include "cl_univpoly_integer.h"
12 #include "cl_integer.h"
14 const cl_UP_I cl_hermite (sintL n)
16 // The Hermite polynomials H_n(x) are defined as
19 // H_n(x) = (-1)^n exp(x^2) (----) exp(- x^2)
22 // They satisfy the recurrence relation
25 // H_{n+1}(x) = 2x H_n(x) - 2n H_{n-1}(x) for n >= 0.
28 // H_n(x) satisfies the differential equation
29 // H_n''(x) - 2x*H_n'(x) + 2n*H_n(x) = 0.
31 // Proof: See elsewhere.
34 // The coefficients c_{n,k} of H_n(x) = sum(k=0..n, c_{n,k} x^k)
38 // c_{n,k} = (k+1)(k+2)/2(k-n)*c_{n,k+2}
40 // It follows that for n>=0
42 // H_n(x) = sum(j=0..floor(n/2), (-1)^j n!/j!(n-2j)! 2^(n-2j) x^(n-2j))
44 var cl_univpoly_integer_ring R = cl_find_univpoly_ring(cl_I_ring);
45 var cl_UP_I h = R->create(n);
47 var cl_I c_k = ash(1,n);
53 c_k = exquo((cl_I)(k+1) * (cl_I)(k+2) * c_k,