Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/models/lend/src/nf_polevl.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

  1 /*              polevl.c
  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] = 1.0 and is
 29  * omitted from the array.  Its calling arguments are
 30  * otherwise the same as nf_polevl().
 31  *
 32  */
 33 
 34 /*
 35 Cephes Math Library Release 2.1:  December, 1988
 36 Copyright 1984, 1987, 1988 by Stephen L. Moshier
 37 Direct inquiries to 30 Frost Street, Cambridge, MA 02140
 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 N ) {
 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, T. Koi
 59 
 60     return( ans );
 61 }
 62 
 63 /*
 64 ************************************************************
 65 */
 66 /* Evaluate polynomial when coefficient of x^N  is 1.0.  Otherwise same as polevl.  */
 67 double nf_p1evl( double x, double coef[], int N ) {
 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, T. Koi
 80 
 81     return( ans );
 82 }
 83 
 84 #if defined __cplusplus
 85 }
 86 #endif
 87