|
|
|
Description
There are several different definitions of the Euler numbers, En. The definition programmed here arises from using the generating function 2 / (ex+e-x) = Σn=0En xn / n!. This definition yields E0 = 1,
E1 = 0, E2 = -1, E3 = 0, E4 = 5 etc. Multiply both sides of the generating function for the Euler numbers by (ex + e -x) / 2 1 = (ex + e -x) / 2 Σn=0En xn / n!.and expand (e x + e -x) / 2 in a Taylor series expansion 1 = Σk=0 x2k / (2k)! Σn=0En xn / n! = Σk=0 Σn=0En xn+2k / [n! (2k)!] .Rearrange the terms 1 = Σj=0 x j Σ jn=0 En / [n! (j-n)!] δ2|(j-n).Then equate like powers of x on both sides of the equation 1 = E0and 0 = Σ (j-1)/2n=0 E2n+1 / [(2n+1)! (j-2n-1)!] for j ≥ 1 j oddand 0 = Σ j/2n=0 E2n / [(2n)! (j-2n)!] for j ≥ 1 j even. Solve for Ej for j ≥ 1, for j odd 0 = E1 Ej = - j! Σ (j-3)/2n=0 E2n+1 / [(2n+1)! (j-2n-1)!], j ≥ 3 . By induction, Ej = 0 if j is odd. Solve for Ej for j ≥ 1, for j even Ej = - j! Σ j/2-1n=0 E2n / [(2n)! (j-2n)!] set j = 2k, then E2k = - (2k)! Σ k-1n=0 E2n / [(2n)! (2k-2n)!] The even-indexed Euler numbers can be expressed in terms of the Catalan beta function as: E2n = (-1)n [ 2 (2n)! (2 / π)2n+1 ] β(2n+1).
Function List
Functions:
- double Euler_Number( int n)
This function returns En for n ≥ 0. If En ≤ -DBL_MAX, then -DBL_MAX is returned and if En ≥ DBL_MAX, then DBL_MAX is returned.
- void Euler_Number_Sequence(double *e, int start, int length)
This function returns En in the array e for n = start, start + 1, ... , start + length - 1 where start ≥ 0 and length ≥ 1. I.e. e[n] = Estart + n. If En ≤ -DBL_MAX, then -DBL_MAX is returned and if En ≥ DBL_MAX, then DBL_MAX is returned.
- void Euler_Even_Index_Sequence(double *e, int start, int length)
This function returns En in the array e for n = start, start + 2, ... , start + 2*length - 1 where start ≥ 0 and length ≥ 1. I.e. e[n] = Estart + 2n. If En ≤ -DBL_MAX, then -DBL_MAX is returned and if En ≥ DBL_MAX, then DBL_MAX is returned.
- int Max_Euler_Even_Number_Index(void)
This function returns the maximum even number index of the largest Euler representable as a type double. Note the Euler numbers with odd index vanish.
- long double xEuler_Number( int n)
This function returns En for n ≥ 0. If En ≤ -LDBL_MAX, then -LDBL_MAX is returned and if En ≥ LDBL_MAX, then LDBL_MAX is returned.
- void xEuler_Number_Sequence(long double *e, int start, int length)
This function returns En in the array e for n = start, start + 1, ... , start + length - 1 where start ≥ 0 and length ≥ 1. I.e. e[n] = Estart + n. If En ≤ -LDBL_MAX, then -LDBL_MAX is returned and if En ≥ LDBL_MAX, then LDBL_MAX is returned.
- void xEuler_Even_Index_Sequence(long double *e, int start, int length)
This function returns En in the array e for n = start, start + 2, ... , start + 2*length - 1 where start ≥ 0 and length ≥ 1. I.e. e[n] = Estart + 2n. If En ≤ -LDBL_MAX, then -LDBL_MAX is returned and if En ≥ LDBL_MAX, then LDBL_MAX is returned.
- int xMax_Euler_Even_Number_Index(void)
This function returns the maximum even number index of the largest Euler representable as a type long double. Note the Euler numbers with odd index vanish.
|