# Laguerre Polynomials

 Orthogonal Polynomials Home Laguerre Polynomials
Two types of the Laguerre polynomials are programmed. The first type, the classical Laguerre polynomials, denoted by Ln, are orthogonal on the support interval [0, ∞) with weight function
 w(x) = exp(-x)
and normalized by the requirement that Ln(0) = 1.
The second type, the generalized Laguerre polynomials, denoted by Lnα, are orthogonal on the support interval [0, ∞) with weight function
 w(x) = xαexp(-x)
and normalized by the requirement that Lnα(0) = 1.

The classical form, Ln, satisfies the three-term recurrence relation
 (n+1) Ln+1(x) = (2n + 1 - x) Ln(x) - n Ln-1(x) for n ≥ 1
with starting values
 L0(x) = 1, L1(x) = 1 - x.

While the second form, Lnα, satisfies the three-term recurrence relation
 (n + 1) Ln+1α(x) = (2n + α + 1 - x) Lnα(x) - (n + α) Ln-1α(x) for n ≥ 1
with starting values
 L0α(x) = 1, L1α(x) = α + 1 - x.

#### Function List

• double Laguerre_Ln( double x, int n )

This function returns Ln(x) where Ln(x) is described above.

• long double xLaguerre_Ln( long double x, int n )

This function returns Ln(x) where Ln(x) is described above.

• void Laguerre_Ln_Sequence( double L[ ], double x, int max_n )

This function returns Ln(x), for n = 0, 1, …, max_n in the array L[ ] where Ln(x) is described above. Note that L[ ] should be declared as double L[N] where
N ≥ max_n + 1.

• void xLaguerre_Ln_Sequence( long double L[ ], long double x, int max_n )

This function returns Ln(x), for n = 0, 1, …, max_n in the array L[ ] where Ln(x) is described above. Note that L[ ] should be declared as long double L[N] where
N ≥ max_n + 1.

• double Laguerre_Ln_Series( double x, double a[ ], int degree )

This function returns Σk=0na[k] Lk(x) where n = degree and Lk(x) for k = 0, …, n is described above.

• long double xLaguerre_Ln_Series( long double x, long double a[ ], int degree )

This function returns Σk=0na[k] Lk(x) where n = degree and Lk(x) for k = 0, …, n is described above.

• double Laguerre_Ln_alpha( double x, double alpha, int n )

This function returns Lnα(x) where Lnα(x) is described above.

• long double xLaguerre_Ln_alpha( long double x, long double alpha, int n )

This function returns Lnα(x) where Lnα(x) is described above.

• void Laguerre_Ln_alpha_Sequence( double L[ ], double x, double alpha, int max_n )
This function returns Lnα(x), for n = 0, 1, …, max_n in the array L[ ] where Lnα(x) is described above. Note that L[ ] should be declared as double L[N] where
N ≥ max_n + 1.

• void xLaguerre_Ln_alpha_Sequence( long double L[ ], long double x, long double alpha, int max_n )
This function returns Lnα(x), for n = 0, 1, …, max_n in the array L[ ] where Lnα(x) is described above. Note that L[ ] should be declared as long double L[N] where
N ≥ max_n + 1.

• double Laguerre_Ln_alpha_Series( double x, double alpha, double a[], int degree )

This function returns Σk=0na[k] Lkα(x) where n = degree and Lkα(x) for k = 0, …, n is described above.

• long double xLaguerre_Ln_alpha_Series( long double x, long double alpha, long double a[], int degree )

This function returns Σk=0na[k] Lkα(x) where n = degree and Lkα(x) for k = 0, …, n is described above.

#### Source Code

C source code is available for these routines: