前页 | 后页 |
polevl, p1evl
Evaluate polynomial.SYNOPSIS:
int N;
double x, y, coef[N+1], polevl[];
y = polevl(x, coef, N);
DESCRIPTION:
Evaluates polynomial of degree N:
2 N
y = C + C x + C x +...+ C x
0 1 2 N
Coefficients are stored in reverse order:
coef[0] = C , ..., coef[N] = C .
N 0
The function p1evl() assumes that coef[N] = 1.0 and is omitted from the array. Its calling arguments are otherwise the same as polevl().
SPEED:
In the interest of speed, there are no checks for out of bounds arithmetic. This routine is used by most of the functions in the library. Depending on available equipment features, the user might want to rewrite the program in microcode or assembly language.
JavaScript:
Example:
function stirlingFormula(x)
{
var STIR = [ 7.87311395793093628397E-4, -2.29549961613378126380E-4,
-2.68132617805781232825E-3, 3.47222221605458667310E-3,
8.33333333333482257126E-2 ];
var SQTPI = 2.50662827463100050242E0;
var MAXSTIR = 143.01608;
var w = 1.0 / x;
var y = cephes.exp(x);
var w = 1.0 + w * cephes.polevl(w, STIR, 4);
if (x > MAXSTIR) {
var v = cephes.pow(x, 0.5 * x - 0.25);
y = v * (v / y);
} else {
y = cephes.pow(x, x - 0.5) / y;
}
y = SQTPI * y * w;
return y;
}