32 complex<double>
cdgamma(complex<double> x);
50 double ellpk(
double x);
56 double expn(
int n,
double x);
90 void spline_cubic_set(
long n,
const double t[],
const double y[],
double ypp[],
91 int ibcbeg,
double ybcbeg,
int ibcend,
double ybcend );
92 void spline_cubic_val(
long n,
const double t[],
double tval,
const double y[],
const double ypp[],
93 double *yval,
double *ypval,
double *yppval );
114 int ibcbeg = ( yp1 > 0.99999e30 ) ? 2 : 1;
115 double ybcbeg = ( yp1 > 0.99999e30 ) ? 0. : yp1;
116 int ibcend = ( ypn > 0.99999e30 ) ? 2 : 1;
117 double ybcend = ( ypn > 0.99999e30 ) ? 0. : ypn;
166 const double lo_bound =
MIN2(xa[0],xa[n-1]);
167 const double hi_bound =
MAX2(xa[0],xa[n-1]);
168 const double SAFETY =
MAX2(hi_bound-lo_bound,1.)*10.*DBL_EPSILON;
172 if( x < lo_bound-SAFETY )
175 *lgOutOfBounds =
true;
177 else if( x > hi_bound+SAFETY )
180 *lgOutOfBounds =
true;
185 *lgOutOfBounds =
false;
188 splint(xa,ya,y2a,n,xsafe,y);
206 const double lo_bound =
MIN2(xa[0],xa[n-1]);
207 const double hi_bound =
MAX2(xa[0],xa[n-1]);
208 const double SAFETY =
MAX2(fabs(lo_bound),fabs(hi_bound))*10.*DBL_EPSILON;
212 if( x < lo_bound-SAFETY )
215 *lgOutOfBounds =
true;
217 else if( x > hi_bound+SAFETY )
220 *lgOutOfBounds =
true;
225 *lgOutOfBounds =
false;
228 spldrv(xa,ya,y2a,n,xsafe,y);
252 double linint(
const double x[],
265 long ilo = 0, ihi = n-1;
268 long imid = (ilo+ihi)/2;
285 long ilo = 0, ihi = n-1;
288 long imid = (ilo+ihi)/2;
289 if( xval <= x[imid] )
333 void getrs_wrapper(
char trans,
long N,
long nrhs,
double *A,
long lda, int32 *
ipiv,
double *B,
long ldb, int32 *info);