29 int if1,
double cond1,
int ifn,
double condn,
double *y2 )
32 double p, u[2000], qn, un, sig;
81 u[0] = 3. / ( x[2] - x[1] ) * ( ( y[2] - y[1] ) / ( x[2] - x[1] ) - cond1 );
104 for ( i__ = 2; i__ <= i__1; ++i__ )
107 sig = ( x[i__] - x[i__ - 1] ) / ( x[i__ + 1] - x[i__ - 1] );
110 p = sig * y2[i__ - 1] + 2.;
112 y2[i__] = ( sig - 1. ) / p;
114 u[i__ - 1] = ( ( ( y[i__ + 1] - y[i__] ) / ( x[i__ + 1] - x[i__] ) - ( y[i__]
115 - y[i__ - 1] ) / ( x[i__] - x[i__ - 1] ) ) * 6. / ( x[i__ + 1] -
116 x[i__ - 1] ) - sig * u[i__ - 2] ) / p;
139 un = 3. / ( x[n] - x[n - 1] ) * ( condn - ( y[n] - y[n - 1] ) / ( x[n]
149 y2[n] = ( un - qn * u[n - 2] ) / ( qn * y2[n - 1] + 1. );
151 for ( k = n - 1; k >= 1; --k )
153 y2[k] = y2[k] * y2[k + 1] + u[k - 1];
int dspline(double *x, double *y, int n, int if1, double cond1, int ifn, double condn, double *y2)