# Category : C Source Code

Archive : CEPHES22.ZIP

Filename : POLEVL.C

* p1evl.c

*

* 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 may wish to rewrite the

* program in microcode or assembly language.

*

*/

/*

Cephes Math Library Release 2.1: December, 1988

Copyright 1984, 1987, 1988 by Stephen L. Moshier

Direct inquiries to 30 Frost Street, Cambridge, MA 02140

*/

double polevl( x, coef, N )

double x;

double coef[];

int N;

{

double ans;

int i;

double *p;

p = coef;

ans = *p++;

i = N;

do

ans = ans * x + *p++;

while( --i );

return( ans );

}

/* p1evl() */

/* N

* Evaluate polynomial when coefficient of x is 1.0.

* Otherwise same as polevl.

*/

double p1evl( x, coef, N )

double x;

double coef[];

int N;

{

double ans;

double *p;

int i;

p = coef;

ans = x + *p++;

i = N-1;

do

ans = ans * x + *p++;

while( --i );

return( ans );

}

Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/