# Discrete Chebyshev Polynomials

Discrete Chebyshev polynomials, tn(x; N), N a positive integer, n = 0, … , N - 1, are orthogonal on the support interval [0,N-1] with weight function
 w(x) = Σn=0N-1&delta(x - n)
and normalized by the requirement that the leading coefficient of tn(x; α) is (2n)! / n!².

tn(x; α) satisfies the three-term recurrence relation
 (n + 1) tn+1(x; N) = (2n + 1) (2x - (N-1)) tn(x; N) - n (N² - n²) tn-1(x; N) for n ≥ 1
with starting values
 t0(x; N) = 1, t1(x; N) = x - (N - 1).

#### Function List

• double Chebyshev_tn( double x, int N, int n )

This function returns tn(x; N) where tn(x; N) is described above.

• long double xChebyshev_tn( long double x, int N, int n )

This function returns tn(x; N) where tn(x; N) is described above.

• void Chebyshev_tn_Sequence( double t[ ], double x, int N, int max_n )

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

• void xChebyshev_tn_Sequence( long double t[], long double x, int N, int max_n )

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

• double Chebyshev_tn_Series( double x, int N, double a[ ], int degree )

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

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

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

#### Source Code

C source code is available for these routines: