Geant4 Cross Reference |
1 /* polevl.c 1 2 * p1evl.c 3 * 4 * Evaluate polynomial 5 * 6 * 7 * SYNOPSIS: 8 * 9 * int N; 10 * double x, y, coef[N+1], nf_polevl[]; 11 * 12 * y = nf_polevl( x, coef, N ); 13 * 14 * 15 * DESCRIPTION: 16 * 17 * Evaluates polynomial of degree N: 18 * 19 * 2 N 20 * y = C + C x + C x +...+ C x 21 * 0 1 2 N 22 * 23 * Coefficients are stored in reverse order: 24 * 25 * coef[0] = C , ..., coef[N] = C . 26 * N 0 27 * 28 * The function p1evl() assumes that coef[N] 29 * omitted from the array. Its calling argume 30 * otherwise the same as nf_polevl(). 31 * 32 */ 33 34 /* 35 Cephes Math Library Release 2.1: December, 19 36 Copyright 1984, 1987, 1988 by Stephen L. Moshi 37 Direct inquiries to 30 Frost Street, Cambridge 38 */ 39 #include "nf_specialFunctions.h" 40 41 #if defined __cplusplus 42 namespace GIDI { 43 using namespace GIDI; 44 #endif 45 46 double nf_polevl( double x, double coef[], int 47 48 double ans; 49 int i; 50 double *p; 51 52 p = coef; 53 ans = *p++; 54 i = N; 55 56 do { 57 ans = ans * x + *p++; } 58 while( --i ); // Loop checking, 11.06.2015 59 60 return( ans ); 61 } 62 63 /* 64 ********************************************** 65 */ 66 /* Evaluate polynomial when coefficient of x^N 67 double nf_p1evl( double x, double coef[], int 68 69 double ans; 70 double *p; 71 int i; 72 73 p = coef; 74 ans = x + *p++; 75 i = N-1; 76 77 do { 78 ans = ans * x + *p++; } 79 while( --i ); // Loop checking, 11.06.2015 80 81 return( ans ); 82 } 83 84 #if defined __cplusplus 85 } 86 #endif 87