15 September 2021 3:23:34.410 PM SPLINE_TEST FORTRAN90 version: Test the SPLINE library. TEST001 PARABOLA_VAL2 evaluates parabolas through 3 points in a table Our data tables will actually be parabolas: Y: 2*x**2 + 3 * x + 1. Z: 4*x**2 - 2 * x + 5. I X Y Z 1 2.0000 15.0000 17.0000 2 4.0000 45.0000 61.0000 3 6.0000 91.0000 137.0000 4 8.0000 153.0000 245.0000 5 10.0000 231.0000 385.0000 Interpolated data: LEFT X Y Z 1 1.0000 6.0000 7.0000 2 3.0000 28.0000 35.0000 3 5.0000 66.0000 95.0000 3 7.0000 120.0000 187.0000 3 9.0000 190.0000 311.0000 TEST002 R8VEC_BRACKET finds a pair of entries in a sorted real array which bracket a value. Sorted array: 1 1.00000 2 2.00000 3 3.00000 4 4.00000 5 5.00000 6 5.00000 7 7.00000 8 8.00000 9 9.00000 10 10.0000 LEFT RIGHT X(LEFT) XVAL X(RIGHT) 1 2 1.00000 -10.0000 2.00000 1 2 1.00000 1.00000 2.00000 4 5 4.00000 4.50000 5.00000 6 7 5.00000 5.00000 7.00000 9 10 9.00000 10.0000 10.0000 9 10 9.00000 12.0000 10.0000 TEST003 R8VEC_BRACKET3 finds a pair of entries in a sorted real array which bracket a value. Sorted array: 1 1.00000 2 2.00000 3 3.00000 4 4.00000 5 5.00000 6 5.00000 7 7.00000 8 8.00000 9 9.00000 10 10.0000 Search for XVAL = -10.0000 Starting guess for interval is = 5 Nearest interval: X[ 1 ]= 1.00000 X[ 2 ]= 2.00000 Search for XVAL = 1.00000 Starting guess for interval is = 1 Nearest interval: X[ 1 ]= 1.00000 X[ 2 ]= 2.00000 Search for XVAL = 4.50000 Starting guess for interval is = 1 Nearest interval: X[ 4 ]= 4.00000 X[ 5 ]= 5.00000 Search for XVAL = 5.00000 Starting guess for interval is = 4 Nearest interval: X[ 4 ]= 4.00000 X[ 5 ]= 5.00000 Search for XVAL = 10.0000 Starting guess for interval is = 4 Nearest interval: X[ 9 ]= 9.00000 X[ 10 ]= 10.0000 Search for XVAL = 12.0000 Starting guess for interval is = 9 Nearest interval: X[ 9 ]= 9.00000 X[ 10 ]= 10.0000 TEST004 R8VEC_ORDER_TYPE classifies a real vector as -1: no order 0: all equal; 1: ascending; 2: strictly ascending; 3: descending; 4: strictly descending. The following vector has order type -1 1 1.00000 2 3.00000 3 2.00000 4 4.00000 The following vector has order type 0 1 2.00000 2 2.00000 3 2.00000 4 2.00000 The following vector has order type 1 1 1.00000 2 2.00000 3 2.00000 4 4.00000 The following vector has order type 2 1 1.00000 2 2.00000 3 3.00000 4 4.00000 The following vector has order type 3 1 4.00000 2 4.00000 3 3.00000 4 1.00000 The following vector has order type 4 1 9.00000 2 7.00000 3 3.00000 4 0.00000 TEST005 R83_NP_FS factors and solves a tridiagonal linear system. Matrix order N = 10 Solution: 1 1.00000 2 2.00000 3 3.00000 4 4.00000 5 5.00000 6 6.00000 7 7.00000 8 8.00000 9 9.00000 10 10.0000 TEST006 Approximate Y = EXP(X) using orders 1 to 8 Evaluate at X = 2.50000 where EXP(X)= 12.1825 Order Approximate Y Error 1 1.00000 -11.1825 2 5.29570 -6.88679 3 10.8316 -1.35087 4 12.4170 0.234513 5 12.0765 -0.106003 6 12.2520 0.695280E-01 7 12.1264 -0.561433E-01 8 12.2343 0.518261E-01 TEST01 BASIS_FUNCTION_B_VAL evaluates the B spline basis function. T B(T) -0.500000 0.00000 -0.375000 0.00000 -0.250000 0.00000 -0.125000 0.00000 * 0.00000 0.00000 0.250000 0.260417E-02 0.500000 0.208333E-01 0.750000 0.703125E-01 * 1.00000 0.166667 1.75000 0.315104 2.50000 0.479167 3.25000 0.611979 * 4.00000 0.666667 4.50000 0.611979 5.00000 0.479167 5.50000 0.315104 * 6.00000 0.166667 7.00000 0.703125E-01 8.00000 0.208333E-01 9.00000 0.260417E-02 * 10.0000 0.00000 10.5000 0.00000 11.0000 0.00000 11.5000 0.00000 12.0000 0.00000 TEST02 BASIS_FUNCTION_BETA_VAL evaluates the Beta spline basis function. BETA1 = 1.00000 BETA2 = 0.00000 T B(T) -0.500000 0.00000 -0.375000 0.00000 -0.250000 0.00000 -0.125000 0.00000 * 0.00000 0.00000 0.250000 0.260417E-02 0.500000 0.208333E-01 0.750000 0.703125E-01 * 1.00000 0.166667 1.75000 0.315104 2.50000 0.479167 3.25000 0.611979 * 4.00000 0.666667 4.50000 0.611979 5.00000 0.479167 5.50000 0.315104 * 6.00000 0.166667 7.00000 0.703125E-01 8.00000 0.208333E-01 9.00000 0.260417E-02 * 10.0000 0.00000 10.5000 0.00000 11.0000 0.00000 11.5000 0.00000 12.0000 0.00000 BETA1 = 1.00000 BETA2 = 100.000 T B(T) -0.500000 0.00000 -0.375000 0.00000 -0.250000 0.00000 -0.125000 0.00000 * 0.00000 0.00000 0.250000 0.279018E-03 0.500000 0.223214E-02 0.750000 0.753348E-02 * 1.00000 0.178571E-01 1.75000 0.173270 2.50000 0.497768 3.25000 0.818917 * 4.00000 0.964286 4.50000 0.818917 5.00000 0.497768 5.50000 0.173270 * 6.00000 0.178571E-01 7.00000 0.753348E-02 8.00000 0.223214E-02 9.00000 0.279018E-03 * 10.0000 0.00000 10.5000 0.00000 11.0000 0.00000 11.5000 0.00000 12.0000 0.00000 BETA1 = 100.000 BETA2 = 0.00000 T B(T) -0.500000 0.00000 -0.375000 0.00000 -0.250000 0.00000 -0.125000 0.00000 * 0.00000 0.00000 0.250000 0.153156E-07 0.500000 0.122525E-06 0.750000 0.413521E-06 * 1.00000 0.980199E-06 1.75000 0.175767E-02 2.50000 0.626188E-02 3.25000 0.125854E-01 * 4.00000 0.198000E-01 4.50000 0.584721 5.00000 0.871213 5.50000 0.972099 * 6.00000 0.980199 7.00000 0.413521 8.00000 0.122525 9.00000 0.153156E-01 * 10.0000 0.00000 10.5000 0.00000 11.0000 0.00000 11.5000 0.00000 12.0000 0.00000 TEST03 BASIS_MATRIX_B_UNI sets up the basis matrix for the uniform B spline. TDATA YDATA -1.00000 4.00000 0.00000 7.00000 1.00000 12.0000 2.00000 19.0000 T Spline(T) -1.50000 3.58333 -1.37500 3.72396 -1.25000 3.89583 -1.12500 4.09896 * -1.00000 4.33333 -0.750000 4.89583 -0.500000 5.58333 -0.250000 6.39583 * 0.00000 7.33333 0.250000 8.39583 0.500000 9.58333 0.750000 10.8958 * 1.00000 12.3333 1.25000 13.8958 1.50000 15.5833 1.75000 17.3958 * 2.00000 19.3333 2.12500 20.3490 2.25000 21.3958 2.37500 22.4740 2.50000 23.5833 TEST04 BASIS_MATRIX_BETA_UNI sets up the basis matrix for the uniform beta spline. BETA1 = 1.00000 BETA2 = 0.00000 TDATA, YDATA -1.00000 4.00000 0.00000 7.00000 1.00000 12.0000 2.00000 19.0000 T, Spline(T) -1.50000 3.58333 -1.37500 3.72396 -1.25000 3.89583 -1.12500 4.09896 * -1.00000 4.33333 -0.750000 4.89583 -0.500000 5.58333 -0.250000 6.39583 * 0.00000 7.33333 0.250000 8.39583 0.500000 9.58333 0.750000 10.8958 * 1.00000 12.3333 1.25000 13.8958 1.50000 15.5833 1.75000 17.3958 * 2.00000 19.3333 2.12500 20.3490 2.25000 21.3958 2.37500 22.4740 2.50000 23.5833 BETA1 = 1.00000 BETA2 = 100.000 TDATA, YDATA -1.00000 4.00000 0.00000 7.00000 1.00000 12.0000 2.00000 19.0000 T, Spline(T) -1.50000 66.9018 -1.37500 55.1807 -1.25000 45.0324 -1.12500 36.3523 * -1.00000 29.0357 -0.750000 18.0748 -0.500000 11.3125 -0.250000 7.91183 * 0.00000 7.03571 0.250000 7.84710 0.500000 9.50893 0.750000 11.1842 * 1.00000 12.0357 1.25000 11.2266 1.50000 7.91964 1.75000 1.27790 * 2.00000 -9.53571 2.12500 -16.7686 2.25000 -25.3583 2.37500 -35.4095 2.50000 -47.0268 BETA1 = 100.000 BETA2 = 0.00000 TDATA YDATA -1.00000 4.00000 0.00000 7.00000 1.00000 12.0000 2.00000 19.0000 T Spline(T) -1.50000 -38.4512 -1.37500 -31.9890 -1.25000 -26.1707 -1.12500 -20.9622 * -1.00000 -16.3297 -0.750000 -8.65728 -0.500000 -2.88230 -0.250000 1.26625 * 0.00000 4.05941 0.250000 5.76822 0.500000 6.66374 0.750000 7.01699 * 1.00000 7.09901 1.25000 7.18086 1.50000 7.53356 1.75000 8.42817 * 2.00000 10.1357 2.12500 11.3790 2.25000 12.9272 2.37500 14.8142 2.50000 17.0738 TEST05 BASIS_MATRIX_BEZIER sets up the basis matrix for the uniform Bezier spline. TDATA YDATA 0.00000 7.00000 0.00000 8.33333 1.00000 10.0000 1.00000 12.0000 T Spline(T) 0.00000 7.00000 0.00000 7.00000 0.00000 7.00000 0.00000 7.00000 * 0.00000 7.00000 0.00000 7.00000 0.00000 7.00000 0.00000 7.00000 * 0.00000 7.00000 0.250000 8.06250 0.500000 9.25000 0.750000 10.5625 * 1.00000 12.0000 1.00000 12.0000 1.00000 12.0000 1.00000 12.0000 * 1.00000 12.0000 1.00000 12.0000 1.00000 12.0000 1.00000 12.0000 1.00000 12.0000 TEST06 BASIS_MATRIX_HERMITE sets up the basis matrix for the Hermite spline. TDATA YDATA 0.00000 7.00000 0.00000 12.0000 1.00000 4.00000 1.00000 6.00000 T Spline(T) 0.00000 7.00000 0.00000 7.00000 0.00000 7.00000 0.00000 7.00000 * 0.00000 7.00000 0.00000 7.00000 0.00000 7.00000 0.00000 7.00000 * 0.00000 7.00000 0.250000 8.06250 0.500000 9.25000 0.750000 10.5625 * 1.00000 12.0000 1.00000 12.0000 1.00000 12.0000 1.00000 12.0000 * 1.00000 12.0000 1.00000 12.0000 1.00000 12.0000 1.00000 12.0000 1.00000 12.0000 TEST07 BASIS_MATRIX_OVERHAUSER_UNI sets up the basis matrix for the uniform Overhauser spline. TDATA YDATA -1.00000 4.00000 0.00000 7.00000 1.00000 12.0000 2.00000 19.0000 T Spline(T) -1.50000 3.25000 -1.37500 3.39062 -1.25000 3.56250 -1.12500 3.76562 * -1.00000 4.00000 -0.750000 4.56250 -0.500000 5.25000 -0.250000 6.06250 * 0.00000 7.00000 0.250000 8.06250 0.500000 9.25000 0.750000 10.5625 * 1.00000 12.0000 1.25000 13.5625 1.50000 15.2500 1.75000 17.0625 * 2.00000 19.0000 2.12500 20.0156 2.25000 21.0625 2.37500 22.1406 2.50000 23.2500 TEST08 BASIS_MATRIX_OVERHAUSER_NONUNI sets up the basis matrix for the nonuniform Overhauser spline. ALPHA = 0.500000 BETA = 0.500000 TDATA YDATA 0.00000 7.00000 1.00000 4.00000 2.00000 3.00000 3.00000 4.00000 T Spline(T) -0.500000 9.25000 -0.375000 8.64062 -0.250000 8.06250 -0.125000 7.51562 * 0.00000 7.00000 0.250000 6.06250 0.500000 5.25000 0.750000 4.56250 * 1.00000 4.00000 1.25000 3.56250 1.50000 3.25000 1.75000 3.06250 * 2.00000 3.00000 2.25000 3.06250 2.50000 3.25000 2.75000 3.56250 * 3.00000 4.00000 3.12500 4.26562 3.25000 4.56250 3.37500 4.89062 3.50000 5.25000 ALPHA = 0.500000 BETA = 0.250000 TDATA, YDATA 0.00000 7.00000 1.00000 4.00000 2.00000 3.00000 5.00000 12.0000 T, Spline(T) -0.500000 9.25000 -0.375000 8.64062 -0.250000 8.06250 -0.125000 7.51562 * 0.00000 7.00000 0.250000 6.06250 0.500000 5.25000 0.750000 4.56250 * 1.00000 4.00000 1.25000 3.56250 1.50000 3.25000 1.75000 3.06250 * 2.00000 3.00000 2.75000 3.56250 3.50000 5.25000 4.25000 8.06250 * 5.00000 12.0000 5.37500 14.3906 5.75000 17.0625 6.12500 20.0156 6.50000 23.2500 ALPHA = 0.250000 BETA = 0.500000 TDATA, YDATA 0.00000 7.00000 3.00000 4.00000 4.00000 7.00000 5.00000 12.0000 T, Spline(T) -1.50000 1104.25 -1.12500 879.531 -0.750000 687.438 -0.375000 525.438 * 0.00000 391.000 0.750000 194.688 1.50000 78.2500 2.25000 21.4375 * 3.00000 4.00000 3.25000 3.43750 3.50000 4.25000 3.75000 5.68750 * 4.00000 7.00000 4.25000 7.43750 4.50000 6.25000 4.75000 2.68750 * 5.00000 -4.00000 5.12500 -8.75000 5.25000 -14.5625 5.37500 -21.5312 5.50000 -29.7500 TEST09 BASIS_MATRIX_OVERHAUSER_NONUNI sets up the basis matrix for the nonuniform Overhauser spline. First test that the nonuniform code can match the uniform code. Compare these results with the uniform output. ALPHA = 0.500000 BETA = 0.500000 TDATA, YDATA -1.00000 4.00000 0.00000 7.00000 1.00000 12.0000 2.00000 19.0000 T, Spline(T) -1.50000 3.25000 -1.37500 3.39062 -1.25000 3.56250 -1.12500 3.76562 * -1.00000 4.00000 -0.750000 4.56250 -0.500000 5.25000 -0.250000 6.06250 * 0.00000 7.00000 0.250000 8.06250 0.500000 9.25000 0.750000 10.5625 * 1.00000 12.0000 1.25000 13.5625 1.50000 15.2500 1.75000 17.0625 * 2.00000 19.0000 2.12500 20.0156 2.25000 21.0625 2.37500 22.1406 2.50000 23.2500 Now test that the nonuniform code on a nonuniform grid. ALPHA = 0.666667 BETA = 0.400000 TDATA YDATA -4.00000 7.00000 -3.00000 4.00000 -1.00000 4.00000 2.00000 19.0000 T Spline(T) -4.50000 -13.8125 -4.37500 -10.0830 -4.25000 -6.89844 -4.12500 -4.21777 * -4.00000 -2.00000 -3.75000 1.21094 -3.50000 3.06250 -3.25000 3.88281 * -3.00000 4.00000 -2.50000 3.43750 -2.00000 4.00000 -1.50000 8.31250 * -1.00000 19.0000 -0.250000 52.7266 0.500000 115.563 1.25000 216.367 * 2.00000 364.000 2.37500 458.146 2.75000 567.320 3.12500 692.632 3.50000 835.188 TEST10 BC_VAL evaluates a general Bezier function. T X(T) Y(T) 0.00000 0.00000 1.00000 0.100000E-01 0.149500E-01 0.980200 0.200000E-01 0.298000E-01 0.960800 0.300000E-01 0.445500E-01 0.941800 0.400000E-01 0.592000E-01 0.923200 0.500000E-01 0.737500E-01 0.905000 0.600000E-01 0.882000E-01 0.887200 0.700000E-01 0.102550 0.869800 0.800000E-01 0.116800 0.852800 0.900000E-01 0.130950 0.836200 0.100000 0.145000 0.820000 0.110000 0.158950 0.804200 0.120000 0.172800 0.788800 0.130000 0.186550 0.773800 0.140000 0.200200 0.759200 0.150000 0.213750 0.745000 0.160000 0.227200 0.731200 0.170000 0.240550 0.717800 0.180000 0.253800 0.704800 0.190000 0.266950 0.692200 0.200000 0.280000 0.680000 0.210000 0.292950 0.668200 0.220000 0.305800 0.656800 0.230000 0.318550 0.645800 0.240000 0.331200 0.635200 0.250000 0.343750 0.625000 0.260000 0.356200 0.615200 0.270000 0.368550 0.605800 0.280000 0.380800 0.596800 0.290000 0.392950 0.588200 0.300000 0.405000 0.580000 0.310000 0.416950 0.572200 0.320000 0.428800 0.564800 0.330000 0.440550 0.557800 0.340000 0.452200 0.551200 0.350000 0.463750 0.545000 0.360000 0.475200 0.539200 0.370000 0.486550 0.533800 0.380000 0.497800 0.528800 0.390000 0.508950 0.524200 0.400000 0.520000 0.520000 0.410000 0.530950 0.516200 0.420000 0.541800 0.512800 0.430000 0.552550 0.509800 0.440000 0.563200 0.507200 0.450000 0.573750 0.505000 0.460000 0.584200 0.503200 0.470000 0.594550 0.501800 0.480000 0.604800 0.500800 0.490000 0.614950 0.500200 0.500000 0.625000 0.500000 0.510000 0.634950 0.500200 0.520000 0.644800 0.500800 0.530000 0.654550 0.501800 0.540000 0.664200 0.503200 0.550000 0.673750 0.505000 0.560000 0.683200 0.507200 0.570000 0.692550 0.509800 0.580000 0.701800 0.512800 0.590000 0.710950 0.516200 0.600000 0.720000 0.520000 0.610000 0.728950 0.524200 0.620000 0.737800 0.528800 0.630000 0.746550 0.533800 0.640000 0.755200 0.539200 0.650000 0.763750 0.545000 0.660000 0.772200 0.551200 0.670000 0.780550 0.557800 0.680000 0.788800 0.564800 0.690000 0.796950 0.572200 0.700000 0.805000 0.580000 0.710000 0.812950 0.588200 0.720000 0.820800 0.596800 0.730000 0.828550 0.605800 0.740000 0.836200 0.615200 0.750000 0.843750 0.625000 0.760000 0.851200 0.635200 0.770000 0.858550 0.645800 0.780000 0.865800 0.656800 0.790000 0.872950 0.668200 0.800000 0.880000 0.680000 0.810000 0.886950 0.692200 0.820000 0.893800 0.704800 0.830000 0.900550 0.717800 0.840000 0.907200 0.731200 0.850000 0.913750 0.745000 0.860000 0.920200 0.759200 0.870000 0.926550 0.773800 0.880000 0.932800 0.788800 0.890000 0.938950 0.804200 0.900000 0.945000 0.820000 0.910000 0.950950 0.836200 0.920000 0.956800 0.852800 0.930000 0.962550 0.869800 0.940000 0.968200 0.887200 0.950000 0.973750 0.905000 0.960000 0.979200 0.923200 0.970000 0.984550 0.941800 0.980000 0.989800 0.960800 0.990000 0.994950 0.980200 1.00000 1.00000 1.00000 The point ( 0.75, 0.536 ) should be on the curve. TEST11 BEZ_VAL evaluates a Bezier function. T X(T) Y(T) 1 0.00000 1.00000 2 0.500000E-01 0.905000 3 0.100000 0.820000 4 0.150000 0.745000 5 0.200000 0.680000 6 0.250000 0.625000 7 0.300000 0.580000 8 0.350000 0.545000 9 0.400000 0.520000 10 0.450000 0.505000 11 0.500000 0.500000 12 0.550000 0.505000 13 0.600000 0.520000 14 0.650000 0.545000 15 0.700000 0.580000 16 0.750000 0.625000 17 0.800000 0.680000 18 0.850000 0.745000 19 0.900000 0.820000 20 0.950000 0.905000 21 1.00000 1.00000 When X = 0.750000 BEZ_VAL(X) should be 0.625000 TEST115 BP01 evaluates the Bernstein basis polynomials for the interval [0,1]. Degree N = 0 X BERN(N,0,X) BERN(N,1,X) BERN(N,2,X) BERN(N,3,X) 0.0000 1.00000 0.1000 1.00000 0.2000 1.00000 0.3000 1.00000 0.4000 1.00000 0.5000 1.00000 0.6000 1.00000 0.7000 1.00000 0.8000 1.00000 0.9000 1.00000 1.0000 1.00000 Degree N = 1 X BERN(N,0,X) BERN(N,1,X) BERN(N,2,X) BERN(N,3,X) 0.0000 1.00000 0.00000 0.1000 0.900000 0.100000 0.2000 0.800000 0.200000 0.3000 0.700000 0.300000 0.4000 0.600000 0.400000 0.5000 0.500000 0.500000 0.6000 0.400000 0.600000 0.7000 0.300000 0.700000 0.8000 0.200000 0.800000 0.9000 0.100000 0.900000 1.0000 0.00000 1.00000 Degree N = 2 X BERN(N,0,X) BERN(N,1,X) BERN(N,2,X) BERN(N,3,X) 0.0000 1.00000 0.00000 0.00000 0.1000 0.810000 0.180000 0.100000E-01 0.2000 0.640000 0.320000 0.400000E-01 0.3000 0.490000 0.420000 0.900000E-01 0.4000 0.360000 0.480000 0.160000 0.5000 0.250000 0.500000 0.250000 0.6000 0.160000 0.480000 0.360000 0.7000 0.900000E-01 0.420000 0.490000 0.8000 0.400000E-01 0.320000 0.640000 0.9000 0.100000E-01 0.180000 0.810000 1.0000 0.00000 0.00000 1.00000 Degree N = 3 X BERN(N,0,X) BERN(N,1,X) BERN(N,2,X) BERN(N,3,X) 0.0000 1.00000 0.00000 0.00000 0.00000 0.1000 0.729000 0.243000 0.270000E-01 0.100000E-02 0.2000 0.512000 0.384000 0.960000E-01 0.800000E-02 0.3000 0.343000 0.441000 0.189000 0.270000E-01 0.4000 0.216000 0.432000 0.288000 0.640000E-01 0.5000 0.125000 0.375000 0.375000 0.125000 0.6000 0.640000E-01 0.288000 0.432000 0.216000 0.7000 0.270000E-01 0.189000 0.441000 0.343000 0.8000 0.800000E-02 0.960000E-01 0.384000 0.512000 0.9000 0.100000E-02 0.270000E-01 0.243000 0.729000 1.0000 0.00000 0.00000 0.00000 1.00000 TEST116 BPAB evaluates the Bernstein basis polynomials for the interval [A,B]. A = 1.00000 B = 3.00000 Degree N = 0 X BERN(N,0,X) BERN(N,1,X) BERN(N,2,X) BERN(N,3,X) 1.0000 1.00000 1.2000 1.00000 1.4000 1.00000 1.6000 1.00000 1.8000 1.00000 2.0000 1.00000 2.2000 1.00000 2.4000 1.00000 2.6000 1.00000 2.8000 1.00000 3.0000 1.00000 Degree N = 1 X BERN(N,0,X) BERN(N,1,X) BERN(N,2,X) BERN(N,3,X) 1.0000 1.00000 0.00000 1.2000 0.900000 0.100000 1.4000 0.800000 0.200000 1.6000 0.700000 0.300000 1.8000 0.600000 0.400000 2.0000 0.500000 0.500000 2.2000 0.400000 0.600000 2.4000 0.300000 0.700000 2.6000 0.200000 0.800000 2.8000 0.100000 0.900000 3.0000 0.00000 1.00000 Degree N = 2 X BERN(N,0,X) BERN(N,1,X) BERN(N,2,X) BERN(N,3,X) 1.0000 1.00000 0.00000 0.00000 1.2000 0.810000 0.180000 0.100000E-01 1.4000 0.640000 0.320000 0.400000E-01 1.6000 0.490000 0.420000 0.900000E-01 1.8000 0.360000 0.480000 0.160000 2.0000 0.250000 0.500000 0.250000 2.2000 0.160000 0.480000 0.360000 2.4000 0.900000E-01 0.420000 0.490000 2.6000 0.400000E-01 0.320000 0.640000 2.8000 0.100000E-01 0.180000 0.810000 3.0000 0.00000 0.00000 1.00000 Degree N = 3 X BERN(N,0,X) BERN(N,1,X) BERN(N,2,X) BERN(N,3,X) 1.0000 1.00000 0.00000 0.00000 0.00000 1.2000 0.729000 0.243000 0.270000E-01 0.100000E-02 1.4000 0.512000 0.384000 0.960000E-01 0.800000E-02 1.6000 0.343000 0.441000 0.189000 0.270000E-01 1.8000 0.216000 0.432000 0.288000 0.640000E-01 2.0000 0.125000 0.375000 0.375000 0.125000 2.2000 0.640000E-01 0.288000 0.432000 0.216000 2.4000 0.270000E-01 0.189000 0.441000 0.343000 2.6000 0.800000E-02 0.960000E-01 0.384000 0.512000 2.8000 0.100000E-02 0.270000E-01 0.243000 0.729000 3.0000 0.00000 0.00000 0.00000 1.00000 TEST12 BPAB_APPROX evaluates the Bernstein polynomial approximant to a function F(X). XDATA YDATA 2.00000 0.909297 Bernstein approximant of degree N = 0 X F(X) BERN(X) ERROR 2.00000 0.909297 0.909297 0.00000 XDATA YDATA 1.00000 0.841471 1.66667 0.995408 2.33333 0.723086 3.00000 0.141120 Bernstein approximant of degree N = 3 X F(X) BERN(X) ERROR 1.00000 0.841471 0.841471 0.00000 1.33333 0.971938 0.883458 -0.884801E-01 1.66667 0.995408 0.857641 -0.137767 2.00000 0.909297 0.767259 -0.142038 2.33333 0.723086 0.615552 -0.107534 2.66667 0.457273 0.405759 -0.515132E-01 3.00000 0.141120 0.141120 0.00000 XDATA YDATA 1.00000 0.841471 1.33333 0.971938 1.66667 0.995408 2.00000 0.909297 2.33333 0.723086 2.66667 0.457273 3.00000 0.141120 Bernstein approximant of degree N = 6 X F(X) BERN(X) ERROR 1.00000 0.841471 0.841471 0.00000 1.16667 0.919445 0.895538 -0.239072E-01 1.33333 0.971938 0.927255 -0.446825E-01 1.50000 0.997495 0.936755 -0.607402E-01 1.66667 0.995408 0.924369 -0.710386E-01 1.83333 0.965735 0.890632 -0.751031E-01 2.00000 0.909297 0.836269 -0.730285E-01 2.16667 0.827660 0.762199 -0.654609E-01 2.33333 0.723086 0.669527 -0.535585E-01 2.50000 0.598472 0.559538 -0.389345E-01 2.66667 0.457273 0.433692 -0.235811E-01 2.83333 0.303400 0.293620 -0.978013E-02 3.00000 0.141120 0.141120 0.00000 XDATA YDATA 1.00000 0.841471 1.22222 0.939861 1.44444 0.992028 1.66667 0.995408 1.88889 0.949834 2.11111 0.857547 2.33333 0.723086 2.55556 0.553064 2.77778 0.355842 3.00000 0.141120 Bernstein approximant of degree N = 9 X F(X) BERN(X) ERROR 1.00000 0.841471 0.841471 0.00000 1.11111 0.896192 0.885496 -0.106962E-01 1.22222 0.939861 0.919068 -0.207927E-01 1.33333 0.971938 0.942069 -0.298691E-01 1.44444 0.992028 0.954449 -0.375790E-01 1.55556 0.999884 0.956228 -0.436556E-01 1.66667 0.995408 0.947493 -0.479154E-01 1.77778 0.978656 0.928396 -0.502600E-01 1.88889 0.949834 0.899157 -0.506769E-01 2.00000 0.909297 0.860060 -0.492376E-01 2.11111 0.857547 0.811452 -0.460953E-01 2.22222 0.795220 0.753740 -0.414800E-01 2.33333 0.723086 0.687393 -0.356927E-01 2.44444 0.642034 0.612936 -0.290977E-01 2.55556 0.553064 0.530950 -0.221140E-01 2.66667 0.457273 0.442067 -0.152053E-01 2.77778 0.355842 0.346973 -0.886895E-02 2.88889 0.250023 0.246398 -0.362430E-02 3.00000 0.141120 0.141120 0.00000 TEST125 LEAST_SET_OLD sets a least squares polynomial, LEAST_VAL_OLD evaluates it. The data to be interpolated: Number of data values = 21 X Y -1.00000 0.370000 -0.900000 0.410000 -0.800000 0.450000 -0.700000 0.500000 -0.600000 0.550000 -0.500000 0.610000 -0.400000 0.670000 -0.300000 0.740000 -0.200000 0.820000 -0.100000 0.900000 0.00000 1.00000 0.100000 1.11000 0.200000 1.22000 0.300000 1.35000 0.400000 1.49000 0.500000 1.65000 0.600000 1.82000 0.700000 2.01000 0.800000 2.23000 0.900000 2.46000 1.00000 2.72000 Using a polynomial of degree: 1 Total approximation error = 0.180081 X F(X) P(X) Error -1.00000 0.812987E-01 0.370000 -0.288701 -0.966667 0.118398 0.380000 -0.261602 -0.933333 0.155498 0.390000 -0.234502 -0.900000 0.192597 0.410000 -0.217403 -0.866667 0.229697 0.420000 -0.190303 -0.833333 0.266797 0.430000 -0.163203 -0.800000 0.303896 0.450000 -0.146104 -0.766667 0.340996 0.460000 -0.119004 -0.733333 0.378095 0.480000 -0.101905 -0.700000 0.415195 0.500000 -0.848052E-01 -0.666667 0.452294 0.510000 -0.577056E-01 -0.633333 0.489394 0.530000 -0.406061E-01 -0.600000 0.526494 0.550000 -0.235065E-01 -0.566667 0.563593 0.570000 -0.640693E-02 -0.533333 0.600693 0.590000 0.106926E-01 -0.500000 0.637792 0.610000 0.277922E-01 -0.466667 0.674892 0.630000 0.448918E-01 -0.433333 0.711991 0.650000 0.619913E-01 -0.400000 0.749091 0.670000 0.790909E-01 -0.366667 0.786190 0.690000 0.961905E-01 -0.333333 0.823290 0.720000 0.103290 -0.300000 0.860390 0.740000 0.120390 -0.266667 0.897489 0.770000 0.127489 -0.233333 0.934589 0.790000 0.144589 -0.200000 0.971688 0.820000 0.151688 -0.166667 1.00879 0.850000 0.158788 -0.133333 1.04589 0.880000 0.165887 -0.100000 1.08299 0.900000 0.182987 -0.666667E-01 1.12009 0.940000 0.180087 -0.333333E-01 1.15719 0.970000 0.187186 0.00000 1.19429 1.00000 0.194286 0.333333E-01 1.23139 1.03000 0.201385 0.666667E-01 1.26848 1.07000 0.198485 0.100000 1.30558 1.11000 0.195584 0.133333 1.34268 1.14000 0.202684 0.166667 1.37978 1.18000 0.199784 0.200000 1.41688 1.22000 0.196883 0.233333 1.45398 1.26000 0.193983 0.266667 1.49108 1.31000 0.181082 0.300000 1.52818 1.35000 0.178182 0.333333 1.56528 1.40000 0.165281 0.366667 1.60238 1.44000 0.162381 0.400000 1.63948 1.49000 0.149481 0.433333 1.67658 1.54000 0.136580 0.466667 1.71368 1.59000 0.123680 0.500000 1.75078 1.65000 0.100779 0.533333 1.78788 1.70000 0.878788E-01 0.566667 1.82498 1.76000 0.649784E-01 0.600000 1.86208 1.82000 0.420779E-01 0.633333 1.89918 1.88000 0.191775E-01 0.666667 1.93628 1.95000 -0.137229E-01 0.700000 1.97338 2.01000 -0.366234E-01 0.733333 2.01048 2.08000 -0.695238E-01 0.766667 2.04758 2.15000 -0.102424 0.800000 2.08468 2.23000 -0.145325 0.833333 2.12177 2.30000 -0.178225 0.866667 2.15887 2.38000 -0.221126 0.900000 2.19597 2.46000 -0.264026 0.933333 2.23307 2.54000 -0.306926 0.966667 2.27017 2.63000 -0.359827 1.00000 2.30727 2.72000 -0.412727 Using a polynomial of degree: 2 Total approximation error = 0.311249E-01 X F(X) P(X) Error -1.00000 0.425003 0.370000 0.550028E-01 -0.966667 0.426526 0.380000 0.465260E-01 -0.933333 0.429255 0.390000 0.392552E-01 -0.900000 0.433190 0.410000 0.231903E-01 -0.866667 0.438331 0.420000 0.183314E-01 -0.833333 0.444678 0.430000 0.146785E-01 -0.800000 0.452232 0.450000 0.223157E-02 -0.766667 0.460991 0.460000 0.990619E-03 -0.733333 0.470956 0.480000 -0.904435E-02 -0.700000 0.482127 0.500000 -0.178733E-01 -0.666667 0.494504 0.510000 -0.154963E-01 -0.633333 0.508087 0.530000 -0.219134E-01 -0.600000 0.522876 0.550000 -0.271244E-01 -0.566667 0.538870 0.570000 -0.311295E-01 -0.533333 0.556071 0.590000 -0.339286E-01 -0.500000 0.574478 0.610000 -0.355217E-01 -0.466667 0.594091 0.630000 -0.359088E-01 -0.433333 0.614910 0.650000 -0.350900E-01 -0.400000 0.636935 0.670000 -0.330652E-01 -0.366667 0.660166 0.690000 -0.298344E-01 -0.333333 0.684602 0.720000 -0.353976E-01 -0.300000 0.710245 0.740000 -0.297548E-01 -0.266667 0.737094 0.770000 -0.329061E-01 -0.233333 0.765149 0.790000 -0.248514E-01 -0.200000 0.794409 0.820000 -0.255907E-01 -0.166667 0.824876 0.850000 -0.251240E-01 -0.133333 0.856549 0.880000 -0.234513E-01 -0.100000 0.889427 0.900000 -0.105727E-01 -0.666667E-01 0.923512 0.940000 -0.164881E-01 -0.333333E-01 0.958803 0.970000 -0.111975E-01 0.00000 0.995299 1.00000 -0.470088E-02 0.333333E-01 1.03300 1.03000 0.300167E-02 0.666667E-01 1.07191 1.07000 0.191021E-02 0.100000 1.11202 1.11000 0.202473E-02 0.133333 1.15335 1.14000 0.133452E-01 0.166667 1.19587 1.18000 0.158717E-01 0.200000 1.23960 1.22000 0.196041E-01 0.233333 1.28454 1.26000 0.245426E-01 0.266667 1.33069 1.31000 0.206870E-01 0.300000 1.37804 1.35000 0.280374E-01 0.333333 1.42659 1.40000 0.265938E-01 0.366667 1.47636 1.44000 0.363561E-01 0.400000 1.52732 1.49000 0.373244E-01 0.433333 1.57950 1.54000 0.394987E-01 0.466667 1.63288 1.59000 0.428790E-01 0.500000 1.68747 1.65000 0.374653E-01 0.533333 1.74326 1.70000 0.432576E-01 0.566667 1.80026 1.76000 0.402558E-01 0.600000 1.85846 1.82000 0.384600E-01 0.633333 1.91787 1.88000 0.378702E-01 0.666667 1.97849 1.95000 0.284863E-01 0.700000 2.04031 2.01000 0.303085E-01 0.733333 2.10334 2.08000 0.233366E-01 0.766667 2.16757 2.15000 0.175707E-01 0.800000 2.23301 2.23000 0.301079E-02 0.833333 2.29966 2.30000 -0.343150E-03 0.866667 2.36751 2.38000 -0.124911E-01 0.900000 2.43657 2.46000 -0.234331E-01 0.933333 2.50683 2.54000 -0.331691E-01 0.966667 2.57830 2.63000 -0.516991E-01 1.00000 2.65098 2.72000 -0.690232E-01 Using a polynomial of degree: 3 Total approximation error = 0.456758E-02 X F(X) P(X) Error -1.00000 0.363870 0.370000 -0.613025E-02 -0.966667 0.378758 0.380000 -0.124174E-02 -0.933333 0.393701 0.390000 0.370079E-02 -0.900000 0.408737 0.410000 -0.126294E-02 -0.866667 0.423907 0.420000 0.390680E-02 -0.833333 0.439250 0.430000 0.924974E-02 -0.800000 0.454806 0.450000 0.480559E-02 -0.766667 0.470614 0.460000 0.106141E-01 -0.733333 0.486715 0.480000 0.671493E-02 -0.700000 0.503148 0.500000 0.314786E-02 -0.666667 0.519953 0.510000 0.995259E-02 -0.633333 0.537169 0.530000 0.716885E-02 -0.600000 0.554836 0.550000 0.483637E-02 -0.566667 0.572995 0.570000 0.299485E-02 -0.533333 0.591684 0.590000 0.168403E-02 -0.500000 0.610944 0.610000 0.943630E-03 -0.466667 0.630813 0.630000 0.813369E-03 -0.433333 0.651333 0.650000 0.133297E-02 -0.400000 0.672542 0.670000 0.254216E-02 -0.366667 0.694481 0.690000 0.448066E-02 -0.333333 0.717188 0.720000 -0.281182E-02 -0.300000 0.740704 0.740000 0.704462E-03 -0.266667 0.765069 0.770000 -0.493078E-02 -0.233333 0.790322 0.790000 0.322173E-03 -0.200000 0.816503 0.820000 -0.349695E-02 -0.166667 0.843652 0.850000 -0.634843E-02 -0.133333 0.871807 0.880000 -0.819254E-02 -0.100000 0.901010 0.900000 0.101043E-02 -0.666667E-01 0.931300 0.940000 -0.869978E-02 -0.333333E-01 0.962717 0.970000 -0.728346E-02 0.00000 0.995299 1.00000 -0.470088E-02 0.333333E-01 1.02909 1.03000 -0.912325E-03 0.666667E-01 1.06412 1.07000 -0.587807E-02 0.100000 1.10044 1.11000 -0.955838E-02 0.133333 1.13809 1.14000 -0.191355E-02 0.166667 1.17710 1.18000 -0.290385E-02 0.200000 1.21751 1.22000 -0.248956E-02 0.233333 1.25937 1.26000 -0.630949E-03 0.266667 1.30271 1.31000 -0.728830E-02 0.300000 1.34758 1.35000 -0.242190E-02 0.333333 1.39401 1.40000 -0.599201E-02 0.366667 1.44204 1.44000 0.204108E-02 0.400000 1.49172 1.49000 0.171711E-02 0.433333 1.54308 1.54000 0.307578E-02 0.466667 1.59616 1.59000 0.615682E-02 0.500000 1.65100 1.65000 0.999964E-03 0.533333 1.70764 1.70000 0.764492E-02 0.566667 1.76613 1.76000 0.613142E-02 0.600000 1.82650 1.82000 0.649919E-02 0.633333 1.88879 1.88000 0.878794E-02 0.666667 1.95304 1.95000 0.303739E-02 0.700000 2.01929 2.01000 0.928728E-02 0.733333 2.08758 2.08000 0.757733E-02 0.766667 2.15795 2.15000 0.794725E-02 0.800000 2.23044 2.23000 0.436764E-03 0.833333 2.30509 2.30000 0.508560E-02 0.866667 2.38193 2.38000 0.193349E-02 0.900000 2.46102 2.46000 0.102014E-02 0.933333 2.54239 2.54000 0.238528E-02 0.966667 2.62607 2.63000 -0.393137E-02 1.00000 2.71211 2.72000 -0.789008E-02 Using a polynomial of degree: 4 Total approximation error = 0.233895E-02 X F(X) P(X) Error -1.00000 0.371154 0.370000 0.115377E-02 -0.966667 0.383171 0.380000 0.317135E-02 -0.933333 0.395698 0.390000 0.569822E-02 -0.900000 0.408737 0.410000 -0.126294E-02 -0.866667 0.422292 0.420000 0.229188E-02 -0.833333 0.436368 0.430000 0.636796E-02 -0.800000 0.450972 0.450000 0.971896E-03 -0.766667 0.466112 0.460000 0.611158E-02 -0.733333 0.481796 0.480000 0.179621E-02 -0.700000 0.498036 0.500000 -0.196374E-02 -0.666667 0.514844 0.510000 0.484353E-02 -0.633333 0.532231 0.530000 0.223111E-02 -0.600000 0.550213 0.550000 0.213381E-03 -0.566667 0.568806 0.570000 -0.119397E-02 -0.533333 0.588026 0.590000 -0.197396E-02 -0.500000 0.607892 0.610000 -0.210829E-02 -0.466667 0.628423 0.630000 -0.157739E-02 -0.433333 0.649640 0.650000 -0.360375E-03 -0.400000 0.671565 0.670000 0.156494E-02 -0.366667 0.694222 0.690000 0.422204E-02 -0.333333 0.717636 0.720000 -0.236429E-02 -0.300000 0.741832 0.740000 0.183202E-02 -0.266667 0.766838 0.770000 -0.316165E-02 -0.233333 0.792683 0.790000 0.268339E-02 -0.200000 0.819397 0.820000 -0.602887E-03 -0.166667 0.847011 0.850000 -0.298921E-02 -0.133333 0.875557 0.880000 -0.444299E-02 -0.100000 0.905070 0.900000 0.506964E-02 -0.666667E-01 0.935584 0.940000 -0.441615E-02 -0.333333E-01 0.967136 0.970000 -0.286387E-02 0.00000 0.999764 1.00000 -0.235756E-03 0.333333E-01 1.03351 1.03000 0.350727E-02 0.666667E-01 1.06841 1.07000 -0.159443E-02 0.100000 1.10450 1.11000 -0.549918E-02 0.133333 1.14184 1.14000 0.183600E-02 0.166667 1.18046 1.18000 0.455373E-03 0.200000 1.22040 1.22000 0.404507E-03 0.233333 1.26173 1.26000 0.173027E-02 0.266667 1.30448 1.31000 -0.551917E-02 0.300000 1.34871 1.35000 -0.129434E-02 0.333333 1.39446 1.40000 -0.554448E-02 0.366667 1.44178 1.44000 0.178247E-02 0.400000 1.49074 1.49000 0.739889E-03 0.433333 1.54138 1.54000 0.138243E-02 0.466667 1.59377 1.59000 0.376606E-02 0.500000 1.64795 1.65000 -0.205196E-02 0.533333 1.70399 1.70000 0.398693E-02 0.566667 1.76194 1.76000 0.194260E-02 0.600000 1.82188 1.82000 0.187620E-02 0.633333 1.88385 1.88000 0.385019E-02 0.666667 1.94793 1.95000 -0.207166E-02 0.700000 2.01418 2.01000 0.417569E-02 0.733333 2.08266 2.08000 0.265861E-02 0.766667 2.15344 2.15000 0.344475E-02 0.800000 2.22660 2.23000 -0.339693E-02 0.833333 2.30220 2.30000 0.220382E-02 0.866667 2.38032 2.38000 0.318560E-03 0.900000 2.46102 2.46000 0.102014E-02 0.933333 2.54438 2.54000 0.438271E-02 0.966667 2.63048 2.63000 0.481728E-03 1.00000 2.71939 2.72000 -0.606061E-03 Using a polynomial of degree: 5 Total approximation error = 0.222439E-02 X F(X) P(X) Error -1.00000 0.369990 0.370000 -0.104244E-04 -0.966667 0.382774 0.380000 0.277433E-02 -0.933333 0.395874 0.390000 0.587415E-02 -0.900000 0.409319 0.410000 -0.680841E-03 -0.866667 0.423139 0.420000 0.313857E-02 -0.833333 0.437361 0.430000 0.736080E-02 -0.800000 0.452014 0.450000 0.201355E-02 -0.766667 0.467124 0.460000 0.712386E-02 -0.733333 0.482718 0.480000 0.271822E-02 -0.700000 0.498823 0.500000 -0.117739E-02 -0.666667 0.515463 0.510000 0.546260E-02 -0.633333 0.532663 0.530000 0.266342E-02 -0.600000 0.550450 0.550000 0.450065E-03 -0.566667 0.568847 0.570000 -0.115268E-02 -0.533333 0.587880 0.590000 -0.212012E-02 -0.500000 0.607572 0.610000 -0.242757E-02 -0.466667 0.627950 0.630000 -0.205033E-02 -0.433333 0.649036 0.650000 -0.963529E-03 -0.400000 0.670858 0.670000 0.857894E-03 -0.366667 0.693439 0.690000 0.343929E-02 -0.333333 0.716806 0.720000 -0.319363E-02 -0.300000 0.740985 0.740000 0.985303E-03 -0.266667 0.766003 0.770000 -0.399724E-02 -0.233333 0.791886 0.790000 0.188602E-02 -0.200000 0.818663 0.820000 -0.133697E-02 -0.166667 0.846363 0.850000 -0.363749E-02 -0.133333 0.875014 0.880000 -0.498601E-02 -0.100000 0.904648 0.900000 0.464793E-02 -0.666667E-01 0.935296 0.940000 -0.470424E-02 -0.333333E-01 0.966990 0.970000 -0.301002E-02 0.00000 0.999764 1.00000 -0.235756E-03 0.333333E-01 1.03365 1.03000 0.365342E-02 0.666667E-01 1.06869 1.07000 -0.130634E-02 0.100000 1.10492 1.11000 -0.507747E-02 0.133333 1.14238 1.14000 0.237902E-02 0.166667 1.18110 1.18000 0.110366E-02 0.200000 1.22114 1.22000 0.113859E-02 0.233333 1.26253 1.26000 0.252765E-02 0.266667 1.30532 1.31000 -0.468357E-02 0.300000 1.34955 1.35000 -0.447624E-03 0.333333 1.39528 1.40000 -0.471515E-02 0.366667 1.44257 1.44000 0.256523E-02 0.400000 1.49145 1.49000 0.144694E-02 0.433333 1.54199 1.54000 0.198558E-02 0.466667 1.59424 1.59000 0.423900E-02 0.500000 1.64827 1.65000 -0.173267E-02 0.533333 1.70413 1.70000 0.413310E-02 0.566667 1.76190 1.76000 0.190131E-02 0.600000 1.82164 1.82000 0.163952E-02 0.633333 1.88342 1.88000 0.341788E-02 0.666667 1.94731 1.95000 -0.269073E-02 0.700000 2.01339 2.01000 0.338935E-02 0.733333 2.08174 2.08000 0.173660E-02 0.766667 2.15243 2.15000 0.243247E-02 0.800000 2.22556 2.23000 -0.443858E-02 0.833333 2.30121 2.30000 0.121098E-02 0.866667 2.37947 2.38000 -0.528131E-03 0.900000 2.46044 2.46000 0.438040E-03 0.933333 2.54421 2.54000 0.420677E-02 0.966667 2.63088 2.63000 0.878752E-03 1.00000 2.72056 2.72000 0.558138E-03 Using a polynomial of degree: 6 Total approximation error = 0.221743E-02 X F(X) P(X) Error -1.00000 0.369760 0.370000 -0.239924E-03 -0.966667 0.382790 0.380000 0.279023E-02 -0.933333 0.396044 0.390000 0.604419E-02 -0.900000 0.409572 0.410000 -0.428391E-03 -0.866667 0.423419 0.420000 0.341867E-02 -0.833333 0.437628 0.430000 0.762834E-02 -0.800000 0.452241 0.450000 0.224063E-02 -0.766667 0.467293 0.460000 0.729293E-02 -0.733333 0.482820 0.480000 0.282018E-02 -0.700000 0.498855 0.500000 -0.114478E-02 -0.666667 0.515429 0.510000 0.542895E-02 -0.633333 0.532571 0.530000 0.257064E-02 -0.600000 0.550308 0.550000 0.308102E-03 -0.566667 0.568668 0.570000 -0.133204E-02 -0.533333 0.587676 0.590000 -0.232416E-02 -0.500000 0.607357 0.610000 -0.264340E-02 -0.466667 0.627735 0.630000 -0.226549E-02 -0.433333 0.648833 0.650000 -0.116654E-02 -0.400000 0.670677 0.670000 0.677136E-03 -0.366667 0.693289 0.690000 0.328922E-02 -0.333333 0.716694 0.720000 -0.330647E-02 -0.300000 0.740914 0.740000 0.914214E-03 -0.266667 0.765976 0.770000 -0.402410E-02 -0.233333 0.791904 0.790000 0.190382E-02 -0.200000 0.818724 0.820000 -0.127601E-02 -0.166667 0.846463 0.850000 -0.353667E-02 -0.133333 0.875150 0.880000 -0.485025E-02 -0.100000 0.904812 0.900000 0.481235E-02 -0.666667E-01 0.935481 0.940000 -0.451855E-02 -0.333333E-01 0.967189 0.970000 -0.281123E-02 0.00000 0.999967 1.00000 -0.325451E-04 0.333333E-01 1.03385 1.03000 0.385221E-02 0.666667E-01 1.06888 1.07000 -0.112064E-02 0.100000 1.10509 1.11000 -0.491305E-02 0.133333 1.14251 1.14000 0.251477E-02 0.166667 1.18120 1.18000 0.120447E-02 0.200000 1.22120 1.22000 0.119955E-02 0.233333 1.26255 1.26000 0.254545E-02 0.266667 1.30529 1.31000 -0.471043E-02 0.300000 1.34948 1.35000 -0.518712E-03 0.333333 1.39517 1.40000 -0.482799E-02 0.366667 1.44242 1.44000 0.241515E-02 0.400000 1.49127 1.49000 0.126618E-02 0.433333 1.54178 1.54000 0.178257E-02 0.466667 1.59402 1.59000 0.402384E-02 0.500000 1.64805 1.65000 -0.194850E-02 0.533333 1.70393 1.70000 0.392906E-02 0.566667 1.76172 1.76000 0.172195E-02 0.600000 1.82150 1.82000 0.149755E-02 0.633333 1.88333 1.88000 0.332510E-02 0.666667 1.94728 1.95000 -0.272437E-02 0.700000 2.01342 2.01000 0.342196E-02 0.733333 2.08184 2.08000 0.183856E-02 0.766667 2.15260 2.15000 0.260153E-02 0.800000 2.22579 2.23000 -0.421150E-02 0.833333 2.30148 2.30000 0.147852E-02 0.866667 2.37975 2.38000 -0.248027E-03 0.900000 2.46069 2.46000 0.690490E-03 0.933333 2.54438 2.54000 0.437681E-02 0.966667 2.63089 2.63000 0.894655E-03 1.00000 2.72033 2.72000 0.328638E-03 TEST126 LEAST_SET sets a least squares polynomial, LEAST_VAL evaluates it. X, F(X), P(X), Error Using polynomial order = 1 -1.00000 0.370000 1.19429 0.824286 -0.900000 0.410000 1.19429 0.784286 -0.800000 0.450000 1.19429 0.744286 -0.700000 0.500000 1.19429 0.694286 -0.600000 0.550000 1.19429 0.644286 -0.500000 0.610000 1.19429 0.584286 -0.400000 0.670000 1.19429 0.524286 -0.300000 0.740000 1.19429 0.454286 -0.200000 0.820000 1.19429 0.374286 -0.100000 0.900000 1.19429 0.294286 0.00000 1.00000 1.19429 0.194286 0.100000 1.11000 1.19429 0.842857E-01 0.200000 1.22000 1.19429 -0.257143E-01 0.300000 1.35000 1.19429 -0.155714 0.400000 1.49000 1.19429 -0.295714 0.500000 1.65000 1.19429 -0.455714 0.600000 1.82000 1.19429 -0.625714 0.700000 2.01000 1.19429 -0.815714 0.800000 2.23000 1.19429 -1.03571 0.900000 2.46000 1.19429 -1.26571 1.00000 2.72000 1.19429 -1.52571 Using polynomial order = 2 -1.00000 0.370000 0.812987E-01 -0.288701 -0.900000 0.410000 0.192597 -0.217403 -0.800000 0.450000 0.303896 -0.146104 -0.700000 0.500000 0.415195 -0.848052E-01 -0.600000 0.550000 0.526494 -0.235065E-01 -0.500000 0.610000 0.637792 0.277922E-01 -0.400000 0.670000 0.749091 0.790909E-01 -0.300000 0.740000 0.860390 0.120390 -0.200000 0.820000 0.971688 0.151688 -0.100000 0.900000 1.08299 0.182987 0.00000 1.00000 1.19429 0.194286 0.100000 1.11000 1.30558 0.195584 0.200000 1.22000 1.41688 0.196883 0.300000 1.35000 1.52818 0.178182 0.400000 1.49000 1.63948 0.149481 0.500000 1.65000 1.75078 0.100779 0.600000 1.82000 1.86208 0.420779E-01 0.700000 2.01000 1.97338 -0.366234E-01 0.800000 2.23000 2.08468 -0.145325 0.900000 2.46000 2.19597 -0.264026 1.00000 2.72000 2.30727 -0.412727 Using polynomial order = 3 -1.00000 0.370000 0.425003 0.550028E-01 -0.900000 0.410000 0.433190 0.231903E-01 -0.800000 0.450000 0.452232 0.223157E-02 -0.700000 0.500000 0.482127 -0.178733E-01 -0.600000 0.550000 0.522876 -0.271244E-01 -0.500000 0.610000 0.574478 -0.355217E-01 -0.400000 0.670000 0.636935 -0.330652E-01 -0.300000 0.740000 0.710245 -0.297548E-01 -0.200000 0.820000 0.794409 -0.255907E-01 -0.100000 0.900000 0.889427 -0.105727E-01 0.00000 1.00000 0.995299 -0.470088E-02 0.100000 1.11000 1.11202 0.202473E-02 0.200000 1.22000 1.23960 0.196041E-01 0.300000 1.35000 1.37804 0.280374E-01 0.400000 1.49000 1.52732 0.373244E-01 0.500000 1.65000 1.68747 0.374653E-01 0.600000 1.82000 1.85846 0.384600E-01 0.700000 2.01000 2.04031 0.303085E-01 0.800000 2.23000 2.23301 0.301079E-02 0.900000 2.46000 2.43657 -0.234331E-01 1.00000 2.72000 2.65098 -0.690232E-01 Using polynomial order = 4 -1.00000 0.370000 0.363870 -0.613025E-02 -0.900000 0.410000 0.408737 -0.126294E-02 -0.800000 0.450000 0.454806 0.480559E-02 -0.700000 0.500000 0.503148 0.314786E-02 -0.600000 0.550000 0.554836 0.483637E-02 -0.500000 0.610000 0.610944 0.943630E-03 -0.400000 0.670000 0.672542 0.254216E-02 -0.300000 0.740000 0.740704 0.704462E-03 -0.200000 0.820000 0.816503 -0.349695E-02 -0.100000 0.900000 0.901010 0.101043E-02 0.00000 1.00000 0.995299 -0.470088E-02 0.100000 1.11000 1.10044 -0.955838E-02 0.200000 1.22000 1.21751 -0.248956E-02 0.300000 1.35000 1.34758 -0.242190E-02 0.400000 1.49000 1.49172 0.171711E-02 0.500000 1.65000 1.65100 0.999964E-03 0.600000 1.82000 1.82650 0.649919E-02 0.700000 2.01000 2.01929 0.928728E-02 0.800000 2.23000 2.23044 0.436764E-03 0.900000 2.46000 2.46102 0.102014E-02 1.00000 2.72000 2.71211 -0.789008E-02 TEST127 LEAST_SET sets a least squares polynomial, LEAST_VAL2 evaluates it. X, F(X), P(X), FP(X), PP(X) Using polynomial order = 1 -1.00000 -4.00000 -5.63333 -3.00000 0.00000 -0.900000 -4.29000 -5.63333 -2.80000 0.00000 -0.800000 -4.56000 -5.63333 -2.60000 0.00000 -0.700000 -4.81000 -5.63333 -2.40000 0.00000 -0.600000 -5.04000 -5.63333 -2.20000 0.00000 -0.500000 -5.25000 -5.63333 -2.00000 0.00000 -0.400000 -5.44000 -5.63333 -1.80000 0.00000 -0.300000 -5.61000 -5.63333 -1.60000 0.00000 -0.200000 -5.76000 -5.63333 -1.40000 0.00000 -0.100000 -5.89000 -5.63333 -1.20000 0.00000 0.00000 -6.00000 -5.63333 -1.00000 0.00000 0.100000 -6.09000 -5.63333 -0.800000 0.00000 0.200000 -6.16000 -5.63333 -0.600000 0.00000 0.300000 -6.21000 -5.63333 -0.400000 0.00000 0.400000 -6.24000 -5.63333 -0.200000 0.00000 0.500000 -6.25000 -5.63333 0.00000 0.00000 0.600000 -6.24000 -5.63333 0.200000 0.00000 0.700000 -6.21000 -5.63333 0.400000 0.00000 0.800000 -6.16000 -5.63333 0.600000 0.00000 0.900000 -6.09000 -5.63333 0.800000 0.00000 1.00000 -6.00000 -5.63333 1.00000 0.00000 Using polynomial order = 2 -1.00000 -4.00000 -4.63333 -3.00000 -1.00000 -0.900000 -4.29000 -4.73333 -2.80000 -1.00000 -0.800000 -4.56000 -4.83333 -2.60000 -1.00000 -0.700000 -4.81000 -4.93333 -2.40000 -1.00000 -0.600000 -5.04000 -5.03333 -2.20000 -1.00000 -0.500000 -5.25000 -5.13333 -2.00000 -1.00000 -0.400000 -5.44000 -5.23333 -1.80000 -1.00000 -0.300000 -5.61000 -5.33333 -1.60000 -1.00000 -0.200000 -5.76000 -5.43333 -1.40000 -1.00000 -0.100000 -5.89000 -5.53333 -1.20000 -1.00000 0.00000 -6.00000 -5.63333 -1.00000 -1.00000 0.100000 -6.09000 -5.73333 -0.800000 -1.00000 0.200000 -6.16000 -5.83333 -0.600000 -1.00000 0.300000 -6.21000 -5.93333 -0.400000 -1.00000 0.400000 -6.24000 -6.03333 -0.200000 -1.00000 0.500000 -6.25000 -6.13333 0.00000 -1.00000 0.600000 -6.24000 -6.23333 0.200000 -1.00000 0.700000 -6.21000 -6.33333 0.400000 -1.00000 0.800000 -6.16000 -6.43333 0.600000 -1.00000 0.900000 -6.09000 -6.53333 0.800000 -1.00000 1.00000 -6.00000 -6.63333 1.00000 -1.00000 Using polynomial order = 3 -1.00000 -4.00000 -4.00000 -3.00000 -3.00000 -0.900000 -4.29000 -4.29000 -2.80000 -2.80000 -0.800000 -4.56000 -4.56000 -2.60000 -2.60000 -0.700000 -4.81000 -4.81000 -2.40000 -2.40000 -0.600000 -5.04000 -5.04000 -2.20000 -2.20000 -0.500000 -5.25000 -5.25000 -2.00000 -2.00000 -0.400000 -5.44000 -5.44000 -1.80000 -1.80000 -0.300000 -5.61000 -5.61000 -1.60000 -1.60000 -0.200000 -5.76000 -5.76000 -1.40000 -1.40000 -0.100000 -5.89000 -5.89000 -1.20000 -1.20000 0.00000 -6.00000 -6.00000 -1.00000 -1.00000 0.100000 -6.09000 -6.09000 -0.800000 -0.800000 0.200000 -6.16000 -6.16000 -0.600000 -0.600000 0.300000 -6.21000 -6.21000 -0.400000 -0.400000 0.400000 -6.24000 -6.24000 -0.200000 -0.200000 0.500000 -6.25000 -6.25000 0.00000 0.166533E-14 0.600000 -6.24000 -6.24000 0.200000 0.200000 0.700000 -6.21000 -6.21000 0.400000 0.400000 0.800000 -6.16000 -6.16000 0.600000 0.600000 0.900000 -6.09000 -6.09000 0.800000 0.800000 1.00000 -6.00000 -6.00000 1.00000 1.00000 Using polynomial order = 4 -1.00000 -4.00000 -4.00000 -3.00000 -3.00000 -0.900000 -4.29000 -4.29000 -2.80000 -2.80000 -0.800000 -4.56000 -4.56000 -2.60000 -2.60000 -0.700000 -4.81000 -4.81000 -2.40000 -2.40000 -0.600000 -5.04000 -5.04000 -2.20000 -2.20000 -0.500000 -5.25000 -5.25000 -2.00000 -2.00000 -0.400000 -5.44000 -5.44000 -1.80000 -1.80000 -0.300000 -5.61000 -5.61000 -1.60000 -1.60000 -0.200000 -5.76000 -5.76000 -1.40000 -1.40000 -0.100000 -5.89000 -5.89000 -1.20000 -1.20000 0.00000 -6.00000 -6.00000 -1.00000 -1.00000 0.100000 -6.09000 -6.09000 -0.800000 -0.800000 0.200000 -6.16000 -6.16000 -0.600000 -0.600000 0.300000 -6.21000 -6.21000 -0.400000 -0.400000 0.400000 -6.24000 -6.24000 -0.200000 -0.200000 0.500000 -6.25000 -6.25000 0.00000 0.139474E-14 0.600000 -6.24000 -6.24000 0.200000 0.200000 0.700000 -6.21000 -6.21000 0.400000 0.400000 0.800000 -6.16000 -6.16000 0.600000 0.600000 0.900000 -6.09000 -6.09000 0.800000 0.800000 1.00000 -6.00000 -6.00000 1.00000 1.00000 TEST13 SPLINE_B_VAL evaluates the B spline. The data to be interpolated: Number of data values = 11 T Y 0.00000 0.00000 1.00000 0.587785 2.00000 0.951057 3.00000 0.951057 4.00000 0.587785 5.00000 0.122465E-15 6.00000 -0.587785 7.00000 -0.951057 8.00000 -0.951057 9.00000 -0.587785 10.0000 -0.244929E-15 T Spline(T) -0.500000 -0.289215 -0.375000 -0.218446 -0.250000 -0.146362 -0.125000 -0.734001E-01 * 0.00000 0.00000 0.250000 0.146362 0.500000 0.289215 0.750000 0.425053 * 1.00000 0.550366 1.25000 0.661871 1.50000 0.757175 1.75000 0.834112 * 2.00000 0.890511 2.25000 0.924568 2.50000 0.935920 2.75000 0.924568 * 3.00000 0.890511 3.25000 0.834112 3.50000 0.757175 3.75000 0.661871 * 4.00000 0.550366 4.25000 0.425053 4.50000 0.289215 4.75000 0.146362 * 5.00000 0.111022E-15 5.25000 -0.146362 5.50000 -0.289215 5.75000 -0.425053 * 6.00000 -0.550366 6.25000 -0.661871 6.50000 -0.757175 6.75000 -0.834112 * 7.00000 -0.890511 7.25000 -0.924568 7.50000 -0.935920 7.75000 -0.924568 * 8.00000 -0.890511 8.25000 -0.834112 8.50000 -0.757175 8.75000 -0.661871 * 9.00000 -0.550366 9.25000 -0.425053 9.50000 -0.289215 9.75000 -0.146362 * 10.0000 -0.249800E-15 10.1250 0.734001E-01 10.2500 0.146362 10.3750 0.218446 10.5000 0.289215 TEST14 SPLINE_BETA_VAL evaluates the BETA spline. The data to be interpolated: Number of data values = 11 T Y 0.00000 0.00000 1.00000 0.587785 2.00000 0.951057 3.00000 0.951057 4.00000 0.587785 5.00000 0.122465E-15 6.00000 -0.587785 7.00000 -0.951057 8.00000 -0.951057 9.00000 -0.587785 10.0000 -0.244929E-15 BETA1 = 1.00000 BETA2 = 0.00000 T, Spline(T) -0.500000 -0.289215 -0.375000 -0.218446 -0.250000 -0.146362 -0.125000 -0.734001E-01 * 0.00000 0.00000 0.250000 0.146362 0.500000 0.289215 0.750000 0.425053 * 1.00000 0.550366 1.25000 0.661871 1.50000 0.757175 1.75000 0.834112 * 2.00000 0.890511 2.25000 0.924568 2.50000 0.935920 2.75000 0.924568 * 3.00000 0.890511 3.25000 0.834112 3.50000 0.757175 3.75000 0.661871 * 4.00000 0.550366 4.25000 0.425053 4.50000 0.289215 4.75000 0.146362 * 5.00000 0.111022E-15 5.25000 -0.146362 5.50000 -0.289215 5.75000 -0.425053 * 6.00000 -0.550366 6.25000 -0.661871 6.50000 -0.757175 6.75000 -0.834112 * 7.00000 -0.890511 7.25000 -0.924568 7.50000 -0.935920 7.75000 -0.924568 * 8.00000 -0.890511 8.25000 -0.834112 8.50000 -0.757175 8.75000 -0.661871 * 9.00000 -0.550366 9.25000 -0.425053 9.50000 -0.289215 9.75000 -0.146362 * 10.0000 -0.249800E-15 10.1250 0.734001E-01 10.2500 0.146362 10.3750 0.218446 10.5000 0.289215 BETA1 = 1.00000 BETA2 = 100.000 T, Spline(T) -0.500000 0.493821 -0.375000 0.253349 -0.250000 0.991202E-01 -0.125000 0.187861E-01 * 0.00000 0.00000 0.250000 0.976829E-01 0.500000 0.293391 0.750000 0.488348 * 1.00000 0.583776 1.25000 0.646403 1.50000 0.768109 1.75000 0.887847 * 2.00000 0.944570 2.25000 0.948218 2.50000 0.949435 2.75000 0.948218 * 3.00000 0.944570 3.25000 0.887847 3.50000 0.768109 3.75000 0.646403 * 4.00000 0.583776 4.25000 0.488348 4.50000 0.293391 4.75000 0.976829E-01 * 5.00000 0.121431E-15 5.25000 -0.976829E-01 5.50000 -0.293391 5.75000 -0.488348 * 6.00000 -0.583776 6.25000 -0.646403 6.50000 -0.768109 6.75000 -0.887847 * 7.00000 -0.944570 7.25000 -0.948218 7.50000 -0.949435 7.75000 -0.948218 * 8.00000 -0.944570 8.25000 -0.887847 8.50000 -0.768109 8.75000 -0.646403 * 9.00000 -0.583776 9.25000 -0.488348 9.50000 -0.293391 9.75000 -0.976829E-01 * 10.0000 -0.244596E-15 10.1250 -0.187861E-01 10.2500 -0.991202E-01 10.3750 -0.253349 10.5000 -0.493821 BETA1 = 100.000 BETA2 = 0.00000 T, Spline(T) -0.500000 -1.93953 -0.375000 -1.49508 -0.250000 -1.12416 -0.125000 -0.820073 * 0.00000 -0.576146 0.250000 -0.242029 0.500000 -0.683376E-01 0.750000 -0.160438E-02 * 1.00000 0.116391E-01 1.25000 0.345362 1.50000 0.518042 1.75000 0.583355 * 2.00000 0.594978 2.25000 0.800836 2.50000 0.906547 2.75000 0.945493 * 3.00000 0.951056 3.25000 0.950418 3.50000 0.948782 3.75000 0.946484 * 4.00000 0.943863 4.25000 0.736973 4.50000 0.628614 4.75000 0.585951 * 5.00000 0.576146 5.25000 0.242029 5.50000 0.683376E-01 5.75000 0.160438E-02 * 6.00000 -0.116391E-01 6.25000 -0.345362 6.50000 -0.518042 6.75000 -0.583355 * 7.00000 -0.594978 7.25000 -0.800836 7.50000 -0.906547 7.75000 -0.945493 * 8.00000 -0.951056 8.25000 -0.950418 8.50000 -0.948782 8.75000 -0.946484 * 9.00000 -0.943863 9.25000 -0.736973 9.50000 -0.628614 9.75000 -0.585951 * 10.0000 -0.576146 10.1250 -0.573304 10.2500 -0.566362 10.3750 -0.551217 10.5000 -0.523763 TEST143 SPLINE_BEZIER_VAL evaluates a cubic Bezier spline. The data to be interpolated: Number of intervals = 3 X Y dYdX 0.00000 0.00000 1.00000 2.09440 0.866025 -0.500000 4.18879 -0.866025 -0.500000 6.28319 -0.244929E-15 1.00000 The control points Interpolation points are marked with a "*". T P(T) * 1 0.00000 0.00000 2 0.333333 0.698132 3 0.666667 1.21509 * 4 1.00000 0.866025 5 1.33333 0.516960 6 1.66667 -0.516960 * 7 2.00000 -0.866025 8 2.33333 -1.21509 9 2.66667 -0.698132 * 10 3.00000 -0.244929E-15 The Bezier spline, sampled at various points. Interpolation points are marked with a "*". T Spline(T) F(X(T)) * 1 0.000000 0.00000 0.00000 2 0.166667 0.330798 0.342020 3 0.333333 0.612376 0.642788 4 0.500000 0.825712 0.866025 5 0.666667 0.951781 0.984808 6 0.833333 0.971560 0.984808 * 7 1.000000 0.866025 0.866025 8 1.166667 0.640763 0.642788 9 1.333333 0.339405 0.342020 10 1.500000 0.360822E-15 0.122465E-15 11 1.666667 -0.339405 -0.342020 12 1.833333 -0.640763 -0.642788 * 13 2.000000 -0.866025 -0.866025 14 2.166667 -0.971560 -0.984808 15 2.333333 -0.951781 -0.984808 16 2.500000 -0.825712 -0.866025 17 2.666667 -0.612376 -0.642788 18 2.833333 -0.330798 -0.342020 * 19 3.000000 -0.244929E-15 -0.244929E-15 TEST144 SPLINE_BEZIER_VAL evaluates a cubic Bezier spline. Normally, the "interior" points of a Bezier spline are not interpolating points. Instead, the derivatives at the interval endpoints are used. This example shows, however, that it is possible to start with only data values, and to "massage" the data so that we can define a cubic Bezier spline which interpolates ALL the data. The data to be interpolated: Number of intervals = 3 X Y 0.00000 0.00000 0.698132 0.642788 1.39626 0.984808 2.09440 0.866025 2.79253 0.342020 3.49066 -0.342020 4.18879 -0.866025 4.88692 -0.984808 5.58505 -0.642788 6.28319 -0.244929E-15 The control points ALL control points will be interpolation points! T P(T) * 1 0.00000 0.00000 * 2 0.333333 0.739826 * 3 0.666667 1.26855 * 4 1.00000 0.866025 * 5 1.33333 0.528728 * 6 1.66667 -0.528728 * 7 2.00000 -0.866025 * 8 2.33333 -1.26855 * 9 2.66667 -0.739826 * 10 3.00000 -0.244929E-15 The Bezier spline, sampled at various points. Interpolation points are marked with a "*". T Spline(T) F(X(T)) * 1 0.000000 0.00000 0.00000 2 0.166667 0.348988 0.342020 * 3 0.333333 0.642788 0.642788 4 0.500000 0.861396 0.866025 * 5 0.666667 0.984808 0.984808 6 0.833333 0.993019 0.984808 * 7 1.000000 0.866025 0.866025 8 1.166667 0.644032 0.642788 * 9 1.333333 0.342020 0.342020 10 1.500000 0.111022E-15 0.122465E-15 * 11 1.666667 -0.342020 -0.342020 12 1.833333 -0.644032 -0.642788 * 13 2.000000 -0.866025 -0.866025 14 2.166667 -0.993019 -0.984808 * 15 2.333333 -0.984808 -0.984808 16 2.500000 -0.861396 -0.866025 * 17 2.666667 -0.642788 -0.642788 18 2.833333 -0.348988 -0.342020 * 19 3.000000 -0.244929E-15 -0.244929E-15 TEST145 SPLINE_CONSTANT_VAL evaluates a piecewise constant spline. Runge's function, evenly spaced knots. The data to be interpolated: Number of data values = 12 T Y * 0.384615E-01 * -1.00000 * 0.470588E-01 * -0.800000 * 0.754717E-01 * -0.600000 * 0.137931 * -0.400000 * 0.307692 * -0.200000 * 0.800000 * 0.00000 * 0.800000 * 0.200000 * 0.307692 * 0.400000 * 0.137931 * 0.600000 * 0.754717E-01 * 0.800000 * 0.470588E-01 * 1.00000 * 0.384615E-01 DEBUG: TLO = -1.0000000000000000 DEBUG: THI = 1.0000000000000000 T Y(interp) Y(exact) * 0.384615E-01 -1.99265 0.384615E-01 0.997347E-02 -1.94553 0.384615E-01 0.104573E-01 -1.82468 0.384615E-01 0.118713E-01 -1.75309 0.384615E-01 0.128480E-01 -1.73553 0.384615E-01 0.131060E-01 -1.62182 0.384615E-01 0.149796E-01 -1.56017 0.384615E-01 0.161672E-01 -1.12633 0.384615E-01 0.305667E-01 * -1.00000 0.384615E-01 * 0.470588E-01 -0.969689 0.470588E-01 0.408040E-01 * -0.800000 0.588235E-01 * 0.754717E-01 * -0.600000 0.100000 * 0.137931 -0.596991 0.137931 0.100909 * -0.400000 0.200000 * 0.307692 -0.394775 0.307692 0.204241 -0.338772 0.307692 0.258454 -0.201844 0.307692 0.495411 * -0.200000 0.500000 * 0.800000 * 0.00000 1.00000 * 0.800000 * 0.200000 0.500000 * 0.307692 0.246782 0.307692 0.396427 * 0.400000 0.200000 * 0.137931 0.535863 0.137931 0.122268 * 0.600000 0.100000 * 0.754717E-01 * 0.800000 0.588235E-01 * 0.470588E-01 * 1.00000 0.384615E-01 * 0.384615E-01 1.01869 0.384615E-01 0.371148E-01 1.18915 0.384615E-01 0.275089E-01 1.31804 0.384615E-01 0.225070E-01 1.59002 0.384615E-01 0.155754E-01 1.82527 0.384615E-01 0.118638E-01 TEST15 SPLINE_CUBIC_SET sets up a cubic spline; SPLINE_CUBIC_VAL evaluates it. Runge's function, evenly spaced knots. The data to be interpolated: Number of data values = 11 T Y -1.00000 0.384615E-01 -0.800000 0.588235E-01 -0.600000 0.100000 -0.400000 0.200000 -0.200000 0.500000 0.00000 1.00000 0.200000 0.500000 0.400000 0.200000 0.600000 0.100000 0.800000 0.588235E-01 1.00000 0.384615E-01 Boundary condition 0 at both ends: Spline is quadratic in boundary intervals. SPLINE"(T) F"(T): 0.323396 0.210514 0.323396 0.478323 1.50519 1.30000 2.47937 4.40000 18.5773 12.5000 -46.7887 -50.0000 18.5773 12.5000 2.47937 4.40000 1.50519 1.30000 0.323396 0.478323 0.323396 0.210514 T SPLINE(T) F(T) -2.00000 0.130689 0.990099E-02 -1.00000 0.384615E-01 0.384615E-01 -0.900000 0.470256E-01 0.470588E-01 -0.800000 0.588235E-01 0.588235E-01 -0.700000 0.748403E-01 0.754717E-01 -0.600000 0.100000 0.100000 -0.500000 0.140039 0.137931 -0.400000 0.200000 0.200000 -0.300000 0.297358 0.307692 -0.200000 0.500000 0.500000 -0.100000 0.820528 0.800000 0.00000 1.00000 1.00000 0.100000 0.820528 0.800000 0.200000 0.500000 0.500000 0.300000 0.297358 0.307692 0.400000 0.200000 0.200000 0.500000 0.140039 0.137931 0.600000 0.100000 0.100000 0.700000 0.748403E-01 0.754717E-01 0.800000 0.588235E-01 0.588235E-01 0.900000 0.470256E-01 0.470588E-01 1.00000 0.384615E-01 0.384615E-01 2.00000 0.130689 0.990099E-02 Boundary condition 1 at both ends: Y'(left) = 0.739645E-01 Y'(right) = -0.739645E-01 SPLINE"(T) F"(T): 0.245555 0.210514 0.344254 0.478323 1.49960 1.30000 2.48088 4.40000 18.5769 12.5000 -46.7884 -50.0000 18.5769 12.5000 2.48088 4.40000 1.49960 1.30000 0.344254 0.478323 0.245555 0.210514 T SPLINE(T) F(T) -2.00000 0.502451E-02 0.990099E-02 -1.00000 0.384615E-01 0.384615E-01 -0.900000 0.471680E-01 0.470588E-01 -0.800000 0.588235E-01 0.588235E-01 -0.700000 0.748021E-01 0.754717E-01 -0.600000 0.100000 0.100000 -0.500000 0.140049 0.137931 -0.400000 0.200000 0.200000 -0.300000 0.297356 0.307692 -0.200000 0.500000 0.500000 -0.100000 0.820529 0.800000 0.00000 1.00000 1.00000 0.100000 0.820529 0.800000 0.200000 0.500000 0.500000 0.300000 0.297356 0.307692 0.400000 0.200000 0.200000 0.500000 0.140049 0.137931 0.600000 0.100000 0.100000 0.700000 0.748021E-01 0.754717E-01 0.800000 0.588235E-01 0.588235E-01 0.900000 0.471680E-01 0.470588E-01 1.00000 0.384615E-01 0.384615E-01 2.00000 0.502451E-02 0.990099E-02 Boundary condition 2 at both ends: YP"(left) = 0.210514 YP"(right) = 0.210514 SPLINE"(T) F"(T): 0.210514 0.210514 0.353644 0.478323 1.49708 1.30000 2.48155 4.40000 18.5767 12.5000 -46.7883 -50.0000 18.5767 12.5000 2.48155 4.40000 1.49708 1.30000 0.353644 0.478323 0.210514 0.210514 T SPLINE(T) F(T) -2.00000 -0.515433E-01 0.990099E-02 -1.00000 0.384615E-01 0.384615E-01 -0.900000 0.472321E-01 0.470588E-01 -0.800000 0.588235E-01 0.588235E-01 -0.700000 0.747849E-01 0.754717E-01 -0.600000 0.100000 0.100000 -0.500000 0.140053 0.137931 -0.400000 0.200000 0.200000 -0.300000 0.297354 0.307692 -0.200000 0.500000 0.500000 -0.100000 0.820529 0.800000 0.00000 1.00000 1.00000 0.100000 0.820529 0.800000 0.200000 0.500000 0.500000 0.300000 0.297354 0.307692 0.400000 0.200000 0.200000 0.500000 0.140053 0.137931 0.600000 0.100000 0.100000 0.700000 0.747849E-01 0.754717E-01 0.800000 0.588235E-01 0.588235E-01 0.900000 0.472321E-01 0.470588E-01 1.00000 0.384615E-01 0.384615E-01 2.00000 -0.515433E-01 0.990099E-02 "Natural" spline: Boundary condition 2 at both ends: YP"(left) = 0.00000 YP"(right) = 0.00000 I Y(I) YPP(I) 1 0.384615E-01 0.00000 2 0.588235E-01 0.410052 3 0.100000 1.48196 4 0.200000 2.48563 5 0.500000 18.5755 6 1.00000 -46.7878 7 0.500000 18.5755 8 0.200000 2.48563 9 0.100000 1.48196 10 0.588235E-01 0.410052 11 0.384615E-01 0.00000 SPLINE"(T) F"(T): 0.00000 0.210514 0.410052 0.478323 1.48196 1.30000 2.48563 4.40000 18.5755 12.5000 -46.7878 -50.0000 18.5755 12.5000 2.48563 4.40000 1.48196 1.30000 0.410052 0.478323 0.00000 0.210514 T SPLINE(T) F(T) -2.00000 -0.391390 0.990099E-02 -1.00000 0.384615E-01 0.384615E-01 -0.900000 0.476174E-01 0.470588E-01 -0.800000 0.588235E-01 0.588235E-01 -0.700000 0.746817E-01 0.754717E-01 -0.600000 0.100000 0.100000 -0.500000 0.140081 0.137931 -0.400000 0.200000 0.200000 -0.300000 0.297347 0.307692 -0.200000 0.500000 0.500000 -0.100000 0.820531 0.800000 0.00000 1.00000 1.00000 0.100000 0.820531 0.800000 0.200000 0.500000 0.500000 0.300000 0.297347 0.307692 0.400000 0.200000 0.200000 0.500000 0.140081 0.137931 0.600000 0.100000 0.100000 0.700000 0.746817E-01 0.754717E-01 0.800000 0.588235E-01 0.588235E-01 0.900000 0.476174E-01 0.470588E-01 1.00000 0.384615E-01 0.384615E-01 2.00000 -0.391390 0.990099E-02 "Not-a-knot" spline: SPLINE"(T) F"(T): -0.411671 0.210514 0.520362 0.478323 1.45240 1.30000 2.49359 4.40000 18.5733 12.5000 -46.7866 -50.0000 18.5733 12.5000 2.49359 4.40000 1.45240 1.30000 0.520362 0.478323 -0.411671 0.210514 T SPLINE(T) F(T) -2.00000 -1.05598 0.990099E-02 -1.00000 0.384615E-01 0.384615E-01 -0.900000 0.483708E-01 0.470588E-01 -0.800000 0.588235E-01 0.588235E-01 -0.700000 0.744799E-01 0.754717E-01 -0.600000 0.100000 0.100000 -0.500000 0.140135 0.137931 -0.400000 0.200000 0.200000 -0.300000 0.297333 0.307692 -0.200000 0.500000 0.500000 -0.100000 0.820533 0.800000 0.00000 1.00000 1.00000 0.100000 0.820533 0.800000 0.200000 0.500000 0.500000 0.300000 0.297333 0.307692 0.400000 0.200000 0.200000 0.500000 0.140135 0.137931 0.600000 0.100000 0.100000 0.700000 0.744799E-01 0.754717E-01 0.800000 0.588235E-01 0.588235E-01 0.900000 0.483708E-01 0.470588E-01 1.00000 0.384615E-01 0.384615E-01 2.00000 -1.05598 0.990099E-02 TEST16 SPLINE_CUBIC_SET sets up a cubic spline; SPLINE_CUBIC_VAL2 evaluates it. Runge's function, evenly spaced knots. The data to be interpolated: Number of data values = 11 T Y -1.00000 0.384615E-01 -0.800000 0.588235E-01 -0.600000 0.100000 -0.400000 0.200000 -0.200000 0.500000 0.00000 1.00000 0.200000 0.500000 0.400000 0.200000 0.600000 0.100000 0.800000 0.588235E-01 1.00000 0.384615E-01 Boundary condition 0 at both ends: Spline is quadratic in boundary intervals. SPLINE"(T) F"(T) 0.323396 0.210514 0.323396 0.478323 1.50519 1.30000 2.47937 4.40000 18.5773 12.5000 -46.7887 -50.0000 18.5773 12.5000 2.47937 4.40000 1.50519 1.30000 0.323396 0.478323 0.323396 0.210514 T SPLINE(T) F(T) LEFT_IN LEFT_OUT -2.00000 0.130689 0.990099E-02 0 1 -1.00000 0.384615E-01 0.384615E-01 1 1 -0.900000 0.470256E-01 0.470588E-01 1 1 -0.800000 0.588235E-01 0.588235E-01 1 1 -0.700000 0.748403E-01 0.754717E-01 1 2 -0.600000 0.100000 0.100000 2 2 -0.500000 0.140039 0.137931 2 3 -0.400000 0.200000 0.200000 3 3 -0.300000 0.297358 0.307692 3 4 -0.200000 0.500000 0.500000 4 4 -0.100000 0.820528 0.800000 4 5 0.00000 1.00000 1.00000 5 5 0.100000 0.820528 0.800000 5 6 0.200000 0.500000 0.500000 6 6 0.300000 0.297358 0.307692 6 7 0.400000 0.200000 0.200000 7 7 0.500000 0.140039 0.137931 7 8 0.600000 0.100000 0.100000 8 8 0.700000 0.748403E-01 0.754717E-01 8 9 0.800000 0.588235E-01 0.588235E-01 9 9 0.900000 0.470256E-01 0.470588E-01 9 10 1.00000 0.384615E-01 0.384615E-01 10 10 2.00000 0.130689 0.990099E-02 10 10 Boundary condition 1 at both ends: Y'(left) = 0.739645E-01 Y'(right) = -0.739645E-01 SPLINE"(T) F"(T) 0.245555 0.210514 0.344254 0.478323 1.49960 1.30000 2.48088 4.40000 18.5769 12.5000 -46.7884 -50.0000 18.5769 12.5000 2.48088 4.40000 1.49960 1.30000 0.344254 0.478323 0.245555 0.210514 T SPLINE(T) F(T) LEFT_IN LEFT_OUT -2.00000 0.502451E-02 0.990099E-02 0 1 -1.00000 0.384615E-01 0.384615E-01 1 1 -0.900000 0.471680E-01 0.470588E-01 1 1 -0.800000 0.588235E-01 0.588235E-01 1 1 -0.700000 0.748021E-01 0.754717E-01 1 2 -0.600000 0.100000 0.100000 2 2 -0.500000 0.140049 0.137931 2 3 -0.400000 0.200000 0.200000 3 3 -0.300000 0.297356 0.307692 3 4 -0.200000 0.500000 0.500000 4 4 -0.100000 0.820529 0.800000 4 5 0.00000 1.00000 1.00000 5 5 0.100000 0.820529 0.800000 5 6 0.200000 0.500000 0.500000 6 6 0.300000 0.297356 0.307692 6 7 0.400000 0.200000 0.200000 7 7 0.500000 0.140049 0.137931 7 8 0.600000 0.100000 0.100000 8 8 0.700000 0.748021E-01 0.754717E-01 8 9 0.800000 0.588235E-01 0.588235E-01 9 9 0.900000 0.471680E-01 0.470588E-01 9 10 1.00000 0.384615E-01 0.384615E-01 10 10 2.00000 0.502451E-02 0.990099E-02 10 10 Boundary condition 2 at both ends: YP"(left) = 0.210514 YP"(right) = 0.210514 SPLINE"(T) F"(T) 0.210514 0.210514 0.353644 0.478323 1.49708 1.30000 2.48155 4.40000 18.5767 12.5000 -46.7883 -50.0000 18.5767 12.5000 2.48155 4.40000 1.49708 1.30000 0.353644 0.478323 0.210514 0.210514 T SPLINE(T) F(T) LEFT_IN LEFT_OUT -2.00000 -0.515433E-01 0.990099E-02 0 1 -1.00000 0.384615E-01 0.384615E-01 1 1 -0.900000 0.472321E-01 0.470588E-01 1 1 -0.800000 0.588235E-01 0.588235E-01 1 1 -0.700000 0.747849E-01 0.754717E-01 1 2 -0.600000 0.100000 0.100000 2 2 -0.500000 0.140053 0.137931 2 3 -0.400000 0.200000 0.200000 3 3 -0.300000 0.297354 0.307692 3 4 -0.200000 0.500000 0.500000 4 4 -0.100000 0.820529 0.800000 4 5 0.00000 1.00000 1.00000 5 5 0.100000 0.820529 0.800000 5 6 0.200000 0.500000 0.500000 6 6 0.300000 0.297354 0.307692 6 7 0.400000 0.200000 0.200000 7 7 0.500000 0.140053 0.137931 7 8 0.600000 0.100000 0.100000 8 8 0.700000 0.747849E-01 0.754717E-01 8 9 0.800000 0.588235E-01 0.588235E-01 9 9 0.900000 0.472321E-01 0.470588E-01 9 10 1.00000 0.384615E-01 0.384615E-01 10 10 2.00000 -0.515433E-01 0.990099E-02 10 10 TEST17 SPLINE_CUBIC_SET sets up a cubic spline; SPLINE_CUBIC_VAL evaluates it. Cubic data, unevenly spaced knots. The data to be interpolated: Number of data values = 11 T Y 0.00000 4.00000 0.100000E-01 4.03020 0.400000E-01 4.12326 0.900000E-01 4.28693 0.160000 4.53530 0.250000 4.89062 0.360000 5.38586 0.490000 6.06785 0.640000 7.00134 0.810000 8.27364 1.00000 10.0000 Boundary condition 0 at both ends: Spline is quadratic in boundary intervals. SPLINE"(T) F"(T): 4.05287 4.00000 4.05287 4.06000 4.24139 4.24000 4.53984 4.54000 4.95954 4.96000 5.50174 5.50000 6.15403 6.16000 6.96056 6.94000 7.76840 7.84000 9.11140 8.86000 9.11140 10.0000 T SPLINE(T) F(T) -1.00000 3.02660 2.00000 0.00000 4.00000 4.00000 0.500000E-02 4.01505 4.01505 0.100000E-01 4.03020 4.03020 0.250000E-01 4.07627 4.07627 0.400000E-01 4.12326 4.12326 0.650000E-01 4.20372 4.20372 0.900000E-01 4.28693 4.28693 0.125000 4.40820 4.40820 0.160000 4.53530 4.53530 0.205000 4.70766 4.70767 0.250000 4.89062 4.89062 0.305000 5.12943 5.12942 0.360000 5.38586 5.38586 0.425000 5.71300 5.71302 0.490000 6.06785 6.06785 0.565000 6.51388 6.51381 0.640000 7.00134 7.00134 0.725000 7.60700 7.60733 0.810000 8.27364 8.27364 0.905000 9.09571 9.09427 1.00000 10.0000 10.0000 2.00000 24.5074 26.0000 Boundary condition 1 at both ends: Y'(left) = 3.00000 Y'(right) = 10.0000 SPLINE"(T) F"(T): 4.00000 4.00000 4.06000 4.06000 4.24000 4.24000 4.54000 4.54000 4.96000 4.96000 5.50000 5.50000 6.16000 6.16000 6.94000 6.94000 7.84000 7.84000 8.86000 8.86000 10.0000 10.0000 T SPLINE(T) F(T) -1.00000 2.00000 2.00000 0.00000 4.00000 4.00000 0.500000E-02 4.01505 4.01505 0.100000E-01 4.03020 4.03020 0.250000E-01 4.07627 4.07627 0.400000E-01 4.12326 4.12326 0.650000E-01 4.20372 4.20372 0.900000E-01 4.28693 4.28693 0.125000 4.40820 4.40820 0.160000 4.53530 4.53530 0.205000 4.70767 4.70767 0.250000 4.89062 4.89062 0.305000 5.12942 5.12942 0.360000 5.38586 5.38586 0.425000 5.71302 5.71302 0.490000 6.06785 6.06785 0.565000 6.51381 6.51381 0.640000 7.00134 7.00134 0.725000 7.60733 7.60733 0.810000 8.27364 8.27364 0.905000 9.09427 9.09427 1.00000 10.0000 10.0000 2.00000 26.0000 26.0000 Boundary condition 2 at both ends: YP"(left) = 4.00000 YP"(right) = 10.0000 SPLINE"(T) F"(T): 4.00000 4.00000 4.06000 4.06000 4.24000 4.24000 4.54000 4.54000 4.96000 4.96000 5.50000 5.50000 6.16000 6.16000 6.94000 6.94000 7.84000 7.84000 8.86000 8.86000 10.0000 10.0000 T SPLINE(T) F(T) -1.00000 2.00000 2.00000 0.00000 4.00000 4.00000 0.500000E-02 4.01505 4.01505 0.100000E-01 4.03020 4.03020 0.250000E-01 4.07627 4.07627 0.400000E-01 4.12326 4.12326 0.650000E-01 4.20372 4.20372 0.900000E-01 4.28693 4.28693 0.125000 4.40820 4.40820 0.160000 4.53530 4.53530 0.205000 4.70767 4.70767 0.250000 4.89062 4.89062 0.305000 5.12942 5.12942 0.360000 5.38586 5.38586 0.425000 5.71302 5.71302 0.490000 6.06785 6.06785 0.565000 6.51381 6.51381 0.640000 7.00134 7.00134 0.725000 7.60733 7.60733 0.810000 8.27364 8.27364 0.905000 9.09427 9.09427 1.00000 10.0000 10.0000 2.00000 26.0000 26.0000 TEST18 SPLINE_CUBIC_SET sets up a cubic spline; SPLINE_CUBIC_VAL evaluates it. Cubic data, evenly spaced knots. The data to be interpolated: Number of data values = 11 T Y 0.00000 4.00000 0.100000 4.32100 0.200000 4.68800 0.300000 5.10700 0.400000 5.58400 0.500000 6.12500 0.600000 6.73600 0.700000 7.42300 0.800000 8.19200 0.900000 9.04900 1.00000 10.0000 Boundary condition 0 at both ends: Spline is quadratic in boundary intervals. SPLINE"(T) F"(T): 4.47321 4.00000 4.47321 4.60000 5.23396 5.20000 5.79094 5.80000 6.40226 6.40000 7.00000 7.00000 7.59774 7.60000 8.20906 8.20000 8.76604 8.80000 9.52679 9.40000 9.52679 10.0000 T SPLINE(T) F(T) -1.0000 3.2503 2.0000 -1.4869 2.0000 4.4732 -2.0000 0.0000 4.0000 4.0000 2.9863 3.0000 4.4732 4.0000 0.0500 4.1549 4.1551 3.2100 3.2075 4.4732 4.3000 0.1000 4.3210 4.3210 3.4337 3.4300 4.4732 4.6000 0.1500 4.4984 4.4984 3.6668 3.6675 4.8536 4.9000 0.2000 4.6880 4.6880 3.9190 3.9200 5.2340 5.2000 0.2500 4.8906 4.8906 4.1877 4.1875 5.5125 5.5000 0.3000 5.1070 5.1070 4.4703 4.4700 5.7909 5.8000 0.3500 5.3379 5.3379 4.7675 4.7675 6.0966 6.1000 0.4000 5.5840 5.5840 5.0799 5.0800 6.4023 6.4000 0.4500 5.8461 5.8461 5.4075 5.4075 6.7011 6.7000 0.5000 6.1250 6.1250 5.7500 5.7500 7.0000 7.0000 0.5500 6.4214 6.4214 6.1075 6.1075 7.2989 7.3000 0.6000 6.7360 6.7360 6.4799 6.4800 7.5977 7.6000 0.6500 7.0696 7.0696 6.8675 6.8675 7.9034 7.9000 0.7000 7.4230 7.4230 7.2703 7.2700 8.2091 8.2000 0.7500 7.7969 7.7969 7.6877 7.6875 8.4875 8.5000 0.8000 8.1920 8.1920 8.1190 8.1200 8.7660 8.8000 0.8500 8.6091 8.6091 8.5668 8.5675 9.1464 9.1000 0.9000 9.0490 9.0490 9.0337 9.0300 9.5268 9.4000 0.9500 9.5126 9.5124 9.5100 9.5075 9.5268 9.7000 1.0000 10.0000 10.0000 9.9863 10.0000 9.5268 10.0000 2.0000 24.7497 26.0000 19.5131 23.0000 9.5268 16.0000 Boundary condition 1 at both ends: Y'(left) = 3.00000 Y'(right) = 10.0000 SPLINE"(T) F"(T): 4.00000 4.00000 4.60000 4.60000 5.20000 5.20000 5.80000 5.80000 6.40000 6.40000 7.00000 7.00000 7.60000 7.60000 8.20000 8.20000 8.80000 8.80000 9.40000 9.40000 10.0000 10.0000 T SPLINE(T) F(T) -1.0000 2.0000 2.0000 2.0000 2.0000 -2.0000 -2.0000 0.0000 4.0000 4.0000 3.0000 3.0000 4.0000 4.0000 0.0500 4.1551 4.1551 3.2075 3.2075 4.3000 4.3000 0.1000 4.3210 4.3210 3.4300 3.4300 4.6000 4.6000 0.1500 4.4984 4.4984 3.6675 3.6675 4.9000 4.9000 0.2000 4.6880 4.6880 3.9200 3.9200 5.2000 5.2000 0.2500 4.8906 4.8906 4.1875 4.1875 5.5000 5.5000 0.3000 5.1070 5.1070 4.4700 4.4700 5.8000 5.8000 0.3500 5.3379 5.3379 4.7675 4.7675 6.1000 6.1000 0.4000 5.5840 5.5840 5.0800 5.0800 6.4000 6.4000 0.4500 5.8461 5.8461 5.4075 5.4075 6.7000 6.7000 0.5000 6.1250 6.1250 5.7500 5.7500 7.0000 7.0000 0.5500 6.4214 6.4214 6.1075 6.1075 7.3000 7.3000 0.6000 6.7360 6.7360 6.4800 6.4800 7.6000 7.6000 0.6500 7.0696 7.0696 6.8675 6.8675 7.9000 7.9000 0.7000 7.4230 7.4230 7.2700 7.2700 8.2000 8.2000 0.7500 7.7969 7.7969 7.6875 7.6875 8.5000 8.5000 0.8000 8.1920 8.1920 8.1200 8.1200 8.8000 8.8000 0.8500 8.6091 8.6091 8.5675 8.5675 9.1000 9.1000 0.9000 9.0490 9.0490 9.0300 9.0300 9.4000 9.4000 0.9500 9.5124 9.5124 9.5075 9.5075 9.7000 9.7000 1.0000 10.0000 10.0000 10.0000 10.0000 10.0000 10.0000 2.0000 26.0000 26.0000 23.0000 23.0000 16.0000 16.0000 Boundary condition 2 at both ends: YP"(left) = 4.00000 YP"(right) = 10.0000 SPLINE"(T) F"(T): 4.00000 4.00000 4.60000 4.60000 5.20000 5.20000 5.80000 5.80000 6.40000 6.40000 7.00000 7.00000 7.60000 7.60000 8.20000 8.20000 8.80000 8.80000 9.40000 9.40000 10.0000 10.0000 T SPLINE(T) F(T) -1.0000 2.0000 2.0000 2.0000 2.0000 -2.0000 -2.0000 0.0000 4.0000 4.0000 3.0000 3.0000 4.0000 4.0000 0.0500 4.1551 4.1551 3.2075 3.2075 4.3000 4.3000 0.1000 4.3210 4.3210 3.4300 3.4300 4.6000 4.6000 0.1500 4.4984 4.4984 3.6675 3.6675 4.9000 4.9000 0.2000 4.6880 4.6880 3.9200 3.9200 5.2000 5.2000 0.2500 4.8906 4.8906 4.1875 4.1875 5.5000 5.5000 0.3000 5.1070 5.1070 4.4700 4.4700 5.8000 5.8000 0.3500 5.3379 5.3379 4.7675 4.7675 6.1000 6.1000 0.4000 5.5840 5.5840 5.0800 5.0800 6.4000 6.4000 0.4500 5.8461 5.8461 5.4075 5.4075 6.7000 6.7000 0.5000 6.1250 6.1250 5.7500 5.7500 7.0000 7.0000 0.5500 6.4214 6.4214 6.1075 6.1075 7.3000 7.3000 0.6000 6.7360 6.7360 6.4800 6.4800 7.6000 7.6000 0.6500 7.0696 7.0696 6.8675 6.8675 7.9000 7.9000 0.7000 7.4230 7.4230 7.2700 7.2700 8.2000 8.2000 0.7500 7.7969 7.7969 7.6875 7.6875 8.5000 8.5000 0.8000 8.1920 8.1920 8.1200 8.1200 8.8000 8.8000 0.8500 8.6091 8.6091 8.5675 8.5675 9.1000 9.1000 0.9000 9.0490 9.0490 9.0300 9.0300 9.4000 9.4000 0.9500 9.5124 9.5124 9.5075 9.5075 9.7000 9.7000 1.0000 10.0000 10.0000 10.0000 10.0000 10.0000 10.0000 2.0000 26.0000 26.0000 23.0000 23.0000 16.0000 16.0000 TEST19 SPLINE_CUBIC_SET sets up a cubic spline; SPLINE_CUBIC_VAL evaluates it. Cubic data, evenly spaced knots. ONLY TWO KNOTS! The data to be interpolated: Number of data values = 2 T Y 0.00000 4.00000 1.00000 10.0000 Boundary condition 0 at left end. Boundary condition 0 at right end. SPLINE"(T), F"(T): 0.00000 4.00000 0.00000 10.0000 T, SPLINE(T), F(T) -1.0000 -2.0000 2.0000 6.0000 2.0000 0.0000 -2.0000 0.0000 4.0000 4.0000 6.0000 3.0000 0.0000 4.0000 0.5000 7.0000 6.1250 6.0000 5.7500 0.0000 7.0000 1.0000 10.0000 10.0000 6.0000 10.0000 0.0000 10.0000 2.0000 16.0000 26.0000 6.0000 23.0000 0.0000 16.0000 Boundary condition 1 at right end. Y'(right) = 10.0000 SPLINE"(T), F"(T): 8.00000 4.00000 8.00000 10.0000 T, SPLINE(T), F(T) -1.0000 6.0000 2.0000 -6.0000 2.0000 8.0000 -2.0000 0.0000 4.0000 4.0000 2.0000 3.0000 8.0000 4.0000 0.5000 6.0000 6.1250 6.0000 5.7500 8.0000 7.0000 1.0000 10.0000 10.0000 10.0000 10.0000 8.0000 10.0000 2.0000 24.0000 26.0000 18.0000 23.0000 8.0000 16.0000 Boundary condition 2 at right end. YP"(right) = 10.0000 SPLINE"(T), F"(T): 10.0000 4.00000 10.0000 10.0000 T, SPLINE(T), F(T) -1.0000 8.0000 2.0000 -9.0000 2.0000 10.0000 -2.0000 0.0000 4.0000 4.0000 1.0000 3.0000 10.0000 4.0000 0.5000 5.7500 6.1250 6.0000 5.7500 10.0000 7.0000 1.0000 10.0000 10.0000 11.0000 10.0000 10.0000 10.0000 2.0000 26.0000 26.0000 21.0000 23.0000 10.0000 16.0000 Boundary condition 1 at left end. Y'(left) = 3.00000 Boundary condition 0 at right end. SPLINE"(T), F"(T): 6.00000 4.00000 6.00000 10.0000 T, SPLINE(T), F(T) -1.0000 4.0000 2.0000 -3.0000 2.0000 6.0000 -2.0000 0.0000 4.0000 4.0000 3.0000 3.0000 6.0000 4.0000 0.5000 6.2500 6.1250 6.0000 5.7500 6.0000 7.0000 1.0000 10.0000 10.0000 9.0000 10.0000 6.0000 10.0000 2.0000 22.0000 26.0000 15.0000 23.0000 6.0000 16.0000 Boundary condition 1 at right end. Y'(right) = 10.0000 SPLINE"(T), F"(T): 4.00000 4.00000 10.0000 10.0000 T, SPLINE(T), F(T) -1.0000 2.0000 2.0000 2.0000 2.0000 -2.0000 -2.0000 0.0000 4.0000 4.0000 3.0000 3.0000 4.0000 4.0000 0.5000 6.1250 6.1250 5.7500 5.7500 7.0000 7.0000 1.0000 10.0000 10.0000 10.0000 10.0000 10.0000 10.0000 2.0000 26.0000 26.0000 23.0000 23.0000 16.0000 16.0000 Boundary condition 2 at right end. YP"(right) = 10.0000 SPLINE"(T), F"(T): 4.00000 4.00000 10.0000 10.0000 T, SPLINE(T), F(T) -1.0000 2.0000 2.0000 2.0000 2.0000 -2.0000 -2.0000 0.0000 4.0000 4.0000 3.0000 3.0000 4.0000 4.0000 0.5000 6.1250 6.1250 5.7500 5.7500 7.0000 7.0000 1.0000 10.0000 10.0000 10.0000 10.0000 10.0000 10.0000 2.0000 26.0000 26.0000 23.0000 23.0000 16.0000 16.0000 Boundary condition 2 at left ends: YP"(left) = 4.00000 Boundary condition 0 at right end. SPLINE"(T), F"(T): 4.00000 4.00000 4.00000 10.0000 T, SPLINE(T), F(T) -1.0000 2.0000 2.0000 0.0000 2.0000 4.0000 -2.0000 0.0000 4.0000 4.0000 4.0000 3.0000 4.0000 4.0000 0.5000 6.5000 6.1250 6.0000 5.7500 4.0000 7.0000 1.0000 10.0000 10.0000 8.0000 10.0000 4.0000 10.0000 2.0000 20.0000 26.0000 12.0000 23.0000 4.0000 16.0000 Boundary condition 1 at right end. Y'(right) = 10.0000 SPLINE"(T), F"(T): 4.00000 4.00000 10.0000 10.0000 T, SPLINE(T), F(T) -1.0000 2.0000 2.0000 2.0000 2.0000 -2.0000 -2.0000 0.0000 4.0000 4.0000 3.0000 3.0000 4.0000 4.0000 0.5000 6.1250 6.1250 5.7500 5.7500 7.0000 7.0000 1.0000 10.0000 10.0000 10.0000 10.0000 10.0000 10.0000 2.0000 26.0000 26.0000 23.0000 23.0000 16.0000 16.0000 Boundary condition 2 at right end. YP"(right) = 10.0000 SPLINE"(T), F"(T): 4.00000 4.00000 10.0000 10.0000 T, SPLINE(T), F(T) -1.0000 2.0000 2.0000 2.0000 2.0000 -2.0000 -2.0000 0.0000 4.0000 4.0000 3.0000 3.0000 4.0000 4.0000 0.5000 6.1250 6.1250 5.7500 5.7500 7.0000 7.0000 1.0000 10.0000 10.0000 10.0000 10.0000 10.0000 10.0000 2.0000 26.0000 26.0000 23.0000 23.0000 16.0000 16.0000 TEST20 SPLINE_HERMITE_SET sets up a Hermite spline; SPLINE_HERMITE_VAL evaluates it. The data to be interpolated: Number of data values = 4 T Y Y' 0.00000 0.00000 1.00000 0.523599 0.500000 0.866025 1.04720 0.866025 0.500000 1.57080 1.00000 0.612323E-16 T Y(hermite) Y(exact) Y'(hermite) Y'(exact) * 0.00000 0.00000 0.00000 1.00000 1.00000 0.174533 0.173611 0.173648 0.984564 0.984808 0.349066 0.341978 0.342020 0.939906 0.939693 * 0.523599 0.500000 0.500000 0.866025 0.866025 0.698132 0.642681 0.642788 0.765409 0.766044 0.872665 0.765934 0.766044 0.643401 0.642788 * 1.04720 0.866025 0.866025 0.500000 0.500000 1.22173 0.939545 0.939693 0.341164 0.342020 1.39626 0.984658 0.984808 0.174497 0.173648 * 1.57080 1.00000 1.00000 0.111022E-15 0.612323E-16 TEST205 SPLINE_LINEAR_INTSET is given some interval endpoints, and a value associated with each interval. It determines a linear spline, with breakpoints at the centers of each interval, whose integral over each interval is equal to the given value. The interval end points: 1 0.00000 2 1.00000 3 4.00000 4 5.00000 5 10.0000 The desired interval integral values: 1 10.0000 2 2.00000 3 8.00000 4 27.5000 The spline break points: 1 0.500000 2 2.50000 3 4.50000 4 7.50000 The spline data values: 1 10.0000 2 -4.63262 3 8.99762 4 5.50000 As a check, call SPLINE_LINEAR_INT to compute the integral of the spline over each interval, and compare to the desired value. A B Desired Computed 0.00 1.00 10.0000 10.0000 1.00 4.00 2.00000 2.00000 4.00 5.00 8.00000 8.00000 5.00 10.00 27.5000 27.5000 TEST21 SPLINE_LINEAR_VAL evaluates a linear spline. Runge's function, evenly spaced knots. The data to be interpolated: Number of data values = 11 T Y -1.00000 0.384615E-01 -0.800000 0.588235E-01 -0.600000 0.100000 -0.400000 0.200000 -0.200000 0.500000 0.00000 1.00000 0.200000 0.500000 0.400000 0.200000 0.600000 0.100000 0.800000 0.588235E-01 1.00000 0.384615E-01 Interpolation: T Y Yexact -2.00000 -0.633484E-01 0.990099E-02 -1.00000 0.384615E-01 0.384615E-01 -0.900000 0.486425E-01 0.470588E-01 -0.800000 0.588235E-01 0.588235E-01 -0.700000 0.794118E-01 0.754717E-01 -0.600000 0.100000 0.100000 -0.500000 0.150000 0.137931 -0.400000 0.200000 0.200000 -0.300000 0.350000 0.307692 -0.200000 0.500000 0.500000 -0.100000 0.750000 0.800000 0.00000 1.00000 1.00000 0.100000 0.750000 0.800000 0.200000 0.500000 0.500000 0.300000 0.350000 0.307692 0.400000 0.200000 0.200000 0.500000 0.150000 0.137931 0.600000 0.100000 0.100000 0.700000 0.794118E-01 0.754717E-01 0.800000 0.588235E-01 0.588235E-01 0.900000 0.486425E-01 0.470588E-01 1.00000 0.384615E-01 0.384615E-01 2.00000 -0.633484E-01 0.990099E-02 TEST215 SPLINE_LINEAR_INT computes the integral of a linear spline. The data to be interpolated: Number of data values = 3 T Y 2.00000 3.00000 4.50000 3.75000 7.50000 5.50000 A B Integral 0.00000 4.00000 12.0000 4.00000 5.00000 3.78542 5.00000 10.0000 27.5000 0.00000 10.0000 43.2854 10.0000 0.00000 -43.2854 TEST22 SPLINE_OVERHAUSER_UNI_VAL evaluates the uniform Overhauser spline. The data to be interpolated: Number of data values = 11 T Y 0.00000 0.00000 1.00000 0.587785 2.00000 0.951057 3.00000 0.951057 4.00000 0.587785 5.00000 0.122465E-15 6.00000 -0.587785 7.00000 -0.951057 8.00000 -0.951057 9.00000 -0.587785 10.0000 -0.244929E-15 T, Spline(T) -0.500000 -0.378085 -0.375000 -0.278302 -0.250000 -0.182027 -0.125000 -0.892593E-01 * 0.00000 0.00000 0.250000 0.167994 0.500000 0.321957 0.750000 0.461887 * 1.00000 0.587785 1.25000 0.702903 1.50000 0.806157 1.75000 0.891043 * 2.00000 0.951057 2.25000 0.985113 2.50000 0.996465 2.75000 0.985113 * 3.00000 0.951057 3.25000 0.891043 3.50000 0.806157 3.75000 0.702903 * 4.00000 0.587785 4.25000 0.456625 4.50000 0.307925 4.75000 0.152208 * 5.00000 0.122465E-15 5.25000 -0.152208 5.50000 -0.307925 5.75000 -0.456625 * 6.00000 -0.587785 6.25000 -0.702903 6.50000 -0.806157 6.75000 -0.891043 * 7.00000 -0.951057 7.25000 -0.985113 7.50000 -0.996465 7.75000 -0.985113 * 8.00000 -0.951057 8.25000 -0.891043 8.50000 -0.806157 8.75000 -0.702903 * 9.00000 -0.587785 9.25000 -0.461887 9.50000 -0.321957 9.75000 -0.167994 * 10.0000 -0.244929E-15 10.1250 0.892593E-01 10.2500 0.182027 10.3750 0.278302 10.5000 0.378085 TEST225 SPLINE_OVERHAUSER_NONUNI_VAL evaluates the nonuniform Overhauser spline. In this initial draft of a test, we simply use uniform nodes. The data to be interpolated: Number of data values = 11 T Y 0.00000 0.00000 1.00000 0.587785 2.00000 0.951057 3.00000 0.951057 4.00000 0.587785 5.00000 0.122465E-15 6.00000 -0.587785 7.00000 -0.951057 8.00000 -0.951057 9.00000 -0.587785 10.0000 -0.244929E-15 T, Spline(T) -0.500000 -0.352636 -0.375000 -0.260170 -0.250000 -0.170575 -0.125000 -0.838514E-01 * 0.00000 0.00000 0.250000 0.159087 0.500000 0.306688 0.750000 0.442800 * 1.00000 0.587785 1.25000 0.699212 1.50000 0.803345 1.75000 0.890516 * 2.00000 0.951057 2.25000 0.982075 2.50000 0.992414 2.75000 0.982075 * 3.00000 0.951057 3.25000 0.890516 3.50000 0.803345 3.75000 0.699212 * 4.00000 0.587785 4.25000 0.454902 4.50000 0.306393 4.75000 0.151634 * 5.00000 0.122465E-15 5.25000 -0.151634 5.50000 -0.306393 5.75000 -0.454902 * 6.00000 -0.587785 6.25000 -0.699212 6.50000 -0.803345 6.75000 -0.890516 * 7.00000 -0.951057 7.25000 -0.982075 7.50000 -0.992414 7.75000 -0.982075 * 8.00000 -0.951057 8.25000 -0.890516 8.50000 -0.803345 8.75000 -0.699212 * 9.00000 -0.567426 9.25000 -0.442800 9.50000 -0.306688 9.75000 -0.159087 * 10.0000 -0.244929E-15 10.1250 0.838514E-01 10.2500 0.170575 10.3750 0.260170 10.5000 0.352636 TEST23 SPLINE_OVERHAUSER_VAL evaluates the Overhauser spline. The data to be interpolated: Number of data values = 4 T Y 1.00000 0.00000 0.00000 2.00000 1.00000 1.00000 3.00000 2.00000 -1.00000 4.00000 3.00000 0.00000 T, Spline value 0.00000 -1.00000 -4.00000 0.166667 -0.833333 -3.12500 0.333333 -0.666667 -2.33333 0.500000 -0.500000 -1.62500 0.666667 -0.333333 -1.00000 0.833333 -0.166667 -0.458333 1.00000 0.00000 0.00000 1.16667 0.166667 0.375000 1.33333 0.333333 0.666667 1.50000 0.500000 0.875000 1.66667 0.666667 1.00000 1.83333 0.833333 1.04167 2.00000 1.00000 1.00000 2.16667 1.16667 0.805556 2.33333 1.33333 0.444444 2.50000 1.50000 0.00000 2.66667 1.66667 -0.444444 2.83333 1.83333 -0.805556 3.00000 2.00000 -1.00000 3.16667 2.16667 -1.04167 3.33333 2.33333 -1.00000 3.50000 2.50000 -0.875000 3.66667 2.66667 -0.666667 3.83333 2.83333 -0.375000 4.00000 3.00000 0.00000 4.16667 3.16667 0.458333 4.33333 3.33333 1.00000 4.50000 3.50000 1.62500 TEST235 SPLINE_PCHIP_SET carries out piecewise cubic Hermite interpolation. SPLINE_PCHIP_VAL evaluates the interpolant. -1.0000 0.038462 0.038462 0.00000 -0.9900 0.039212 0.039181 -0.308918E-04 -0.9800 0.039984 0.039935 -0.485212E-04 -0.9700 0.040779 0.040724 -0.552114E-04 -0.9600 0.041597 0.041544 -0.533257E-04 -0.9500 0.042440 0.042395 -0.452705E-04 -0.9400 0.043309 0.043275 -0.334976E-04 -0.9300 0.044204 0.044183 -0.205064E-04 -0.9200 0.045126 0.045118 -0.884751E-05 -0.9100 0.046078 0.046077 -0.112499E-05 -0.9000 0.047059 0.047059 0.00000 -0.8900 0.048071 0.048069 -0.228500E-05 -0.8800 0.049116 0.049113 -0.310310E-05 -0.8700 0.050195 0.050192 -0.267772E-05 -0.8600 0.051308 0.051307 -0.130444E-05 -0.8500 0.052459 0.052460 0.644554E-06 -0.8400 0.053648 0.053651 0.271564E-05 -0.8300 0.054877 0.054882 0.436864E-05 -0.8200 0.056148 0.056153 0.497128E-05 -0.8100 0.057463 0.057467 0.379328E-05 -0.8000 0.058824 0.058824 0.00000 -0.7900 0.060232 0.060228 -0.399457E-05 -0.7800 0.061690 0.061685 -0.536439E-05 -0.7700 0.063201 0.063197 -0.450436E-05 -0.7600 0.064767 0.064765 -0.194428E-05 -0.7500 0.066390 0.066392 0.164206E-05 -0.7400 0.068074 0.068079 0.542702E-05 -0.7300 0.069820 0.069829 0.841856E-05 -0.7200 0.071633 0.071643 0.944880E-05 -0.7100 0.073516 0.073523 0.716174E-05 -0.7000 0.075472 0.075472 0.00000 -0.6900 0.077504 0.077497 -0.742334E-05 -0.6800 0.079618 0.079608 -0.974780E-05 -0.6700 0.081816 0.081809 -0.775770E-05 -0.6600 0.084104 0.084102 -0.250322E-05 -0.6500 0.086486 0.086491 0.468003E-05 -0.6400 0.088968 0.088980 0.121500E-04 -0.6300 0.091554 0.091572 0.179354E-04 -0.6200 0.094251 0.094270 0.197110E-04 -0.6100 0.097064 0.097079 0.147709E-04 -0.6000 0.100000 0.100000 0.00000 -0.5900 0.103066 0.103051 -0.148073E-04 -0.5800 0.106270 0.106251 -0.185423E-04 -0.5700 0.109619 0.109606 -0.130638E-04 -0.5600 0.113122 0.113121 -0.780745E-06 -0.5500 0.116788 0.116804 0.153042E-04 -0.5400 0.120627 0.120659 0.315492E-04 -0.5300 0.124649 0.124693 0.436227E-04 -0.5200 0.128866 0.128912 0.464503E-04 -0.5100 0.133289 0.133323 0.341559E-04 -0.5000 0.137931 0.137931 0.00000 -0.4900 0.142806 0.142774 -0.318942E-04 -0.4800 0.147929 0.147893 -0.356766E-04 -0.4700 0.153315 0.153298 -0.170057E-04 -0.4600 0.158983 0.159000 0.172978E-04 -0.4500 0.164948 0.165008 0.591638E-04 -0.4400 0.171233 0.171332 0.991804E-04 -0.4300 0.177857 0.177983 0.126497E-03 -0.4200 0.184843 0.184972 0.128722E-03 -0.4100 0.192215 0.192307 0.918191E-04 -0.4000 0.200000 0.200000 0.00000 -0.3900 0.208225 0.208152 -0.733518E-04 -0.3800 0.216920 0.216862 -0.578857E-04 -0.3700 0.226116 0.226140 0.231136E-04 -0.3600 0.235849 0.235993 0.144198E-03 -0.3500 0.246154 0.246432 0.277675E-03 -0.3400 0.257069 0.257463 0.393550E-03 -0.3300 0.268637 0.269096 0.459492E-03 -0.3200 0.280899 0.281340 0.440847E-03 -0.3100 0.293902 0.294202 0.300698E-03 -0.3000 0.307692 0.307692 0.00000 -0.2900 0.322321 0.322151 -0.169729E-03 -0.2800 0.337838 0.337865 0.270537E-04 -0.2700 0.354296 0.354761 0.465165E-03 -0.2600 0.371747 0.372766 0.101906E-02 -0.2500 0.390244 0.391808 0.156376E-02 -0.2400 0.409836 0.411812 0.197606E-02 -0.2300 0.430571 0.432707 0.213613E-02 -0.2200 0.452489 0.454418 0.192946E-02 -0.2100 0.475624 0.476874 0.124936E-02 -0.2000 0.500000 0.500000 0.00000 -0.1900 0.525624 0.525224 -0.399804E-03 -0.1800 0.552486 0.553520 0.103381E-02 -0.1700 0.580552 0.584133 0.358160E-02 -0.1600 0.609756 0.616310 0.655390E-02 -0.1500 0.640000 0.649297 0.929687E-02 -0.1400 0.671141 0.682340 0.111991E-01 -0.1300 0.702988 0.714686 0.116979E-01 -0.1200 0.735294 0.745580 0.102859E-01 -0.1100 0.767754 0.774269 0.651506E-02 -0.1000 0.800000 0.800000 0.00000 -0.0900 0.831601 0.825040 -0.656083E-02 -0.0800 0.862069 0.851520 -0.105490E-01 -0.0700 0.890869 0.878480 -0.123886E-01 -0.0600 0.917431 0.904960 -0.124712E-01 -0.0500 0.941176 0.930000 -0.111765E-01 -0.0400 0.961538 0.952640 -0.889846E-02 -0.0300 0.977995 0.971920 -0.607511E-02 -0.0200 0.990099 0.986880 -0.321901E-02 -0.0100 0.997506 0.996560 -0.946234E-03 0.0000 1.000000 1.000000 0.00000 TEST24 SPLINE_QUADRATIC_VAL evaluates a quadratic spline. Runge's function, evenly spaced knots. The data to be interpolated: Number of data values = 11 T Y -1.00000 0.384615E-01 -0.800000 0.588235E-01 -0.600000 0.100000 -0.400000 0.200000 -0.200000 0.500000 0.00000 1.00000 0.200000 0.500000 0.400000 0.200000 0.600000 0.100000 0.800000 0.588235E-01 1.00000 0.384615E-01 Interpolated values T Y Y(exact) -2.00000 0.248869 0.990099E-02 -1.00000 0.384615E-01 0.384615E-01 -0.900000 0.460407E-01 0.470588E-01 -0.800000 0.588235E-01 0.588235E-01 -0.700000 0.768100E-01 0.754717E-01 -0.600000 0.100000 0.100000 -0.500000 0.125000 0.137931 -0.400000 0.200000 0.200000 -0.300000 0.325000 0.307692 -0.200000 0.500000 0.500000 -0.100000 0.875000 0.800000 0.00000 1.00000 1.00000 0.100000 0.875000 0.800000 0.200000 0.500000 0.500000 0.300000 0.325000 0.307692 0.400000 0.200000 0.200000 0.500000 0.125000 0.137931 0.600000 0.100000 0.100000 0.700000 0.768100E-01 0.754717E-01 0.800000 0.588235E-01 0.588235E-01 0.900000 0.460407E-01 0.470588E-01 1.00000 0.384615E-01 0.384615E-01 2.00000 0.248869 0.990099E-02 SPLINE_TEST Normal end of execution. 15 September 2021 3:23:34.414 PM