28 # define MAX( a, b ) ( ( ( a ) > ( b ) ) ? ( a ) : ( b ) )
29 # define MIN( a, b ) ( ( ( a ) < ( b ) ) ? ( a ) : ( b ) )
33 int dsplint(
double *xa,
double *ya,
double *y2a,
34 int n,
double x,
double *y )
38 static int nsave = 0, khi, klo;
85 else if ( xa[khi] <= x )
89 i__1 = khi, i__2 = n - 1;
90 klo =
MIN( i__1, i__2 );
103 while ( khi - klo > 1 )
105 k = ( khi + klo ) / 2;
115 h__ = xa[khi] - xa[klo];
120 a = ( xa[khi] - x ) / h__;
121 b = ( x - xa[klo] ) / h__;
122 *y = a * ya[klo] + b * ya[khi] + ( a * ( a * a - 1. ) * y2a[klo] + b * ( b *
123 b - 1. ) * y2a[khi] ) * ( h__ * h__ ) / 6.;
int dsplint(double *xa, double *ya, double *y2a, int n, double x, double *y)