27 May 2021 03:26:18 PM
SPLINE_TEST
C version:
Test the SPLINE library.
parabola_val2_test
parabola_val2() evaluates parabolas through
3 points in a table
Our data tables will actually be parabolas:
A: 2*x^2 + 3 * x + 1.
B: 4*x^2 - 2 * x + 5.
0 2 15 17
1 4 45 61
2 6 91 137
3 8 153 245
4 10 231 385
Interpolated data:
LEFT, X, Y1, Y2
1 1 6 7
2 3 28 35
3 5 66 95
3 7 120 187
3 9 190 311
TEST002
R8VEC_BRACKET finds a pair of entries in a
sorted real array which bracket a value.
Sorted array:
0: 1.000000
1: 2.000000
2: 3.000000
3: 4.000000
4: 5.000000
5: 5.000000
6: 7.000000
7: 8.000000
8: 9.000000
9: 10.000000
Search for XVAL = -10
X[0] = 1
X[1] = 2
Search for XVAL = 1
X[0] = 1
X[1] = 2
Search for XVAL = 4.5
X[3] = 4
X[4] = 5
Search for XVAL = 5
X[5] = 5
X[6] = 7
Search for XVAL = 10
X[8] = 9
X[9] = 10
Search for XVAL = 12
X[8] = 9
X[9] = 10
TEST003
R8VEC_BRACKET3 finds a pair of entries in a
sorted real array which bracket a value.
Sorted array:
0: 1.000000
1: 2.000000
2: 3.000000
3: 4.000000
4: 5.000000
5: 5.000000
6: 7.000000
7: 8.000000
8: 9.000000
9: 10.000000
Search for XVAL = -10
Starting guess for interval is = 5
Nearest interval:
X[-1]= 12
X[0]= 1
Search for XVAL = 1
Starting guess for interval is = 0
Nearest interval:
X[-1]= 12
X[0]= 1
Search for XVAL = 4.5
Starting guess for interval is = 0
Nearest interval:
X[2]= 3
X[3]= 4
Search for XVAL = 5
Starting guess for interval is = 3
Nearest interval:
X[2]= 3
X[3]= 4
Search for XVAL = 10
Starting guess for interval is = 3
Nearest interval:
X[7]= 8
X[8]= 9
Search for XVAL = 12
Starting guess for interval is = 8
Nearest interval:
X[7]= 8
X[8]= 9
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.
Vector of order type -1:
0 1
1 3
2 2
3 4
Vector of order type 0:
0 2
1 2
2 2
3 2
Vector of order type 1:
0 1
1 2
2 2
3 4
Vector of order type 2:
0 1
1 2
2 3
3 4
Vector of order type 3:
0 4
1 4
2 3
3 1
Vector of order type 4:
0 9
1 7
2 3
3 0
TEST005
D3_NP_FS factors and solves a tridiagonal
linear system.
Computed solution:
0: 1.000000
1: 2.000000
2: 3.000000
3: 4.000000
4: 5.000000
5: 6.000000
6: 7.000000
7: 8.000000
8: 9.000000
9: 10.000000
TEST006
Approximate Y = EXP(X) using orders 1 to 8.
Original data:
X Y
0 1
1 2.71828
2 7.38906
3 20.0855
4 54.5982
5 148.413
6 403.429
7 1096.63
Evaluate at X = 2.5 where EXP(X) = 12.1825
Order Approximate Y Error
1 1 -11.1825
2 5.2957 -6.88679
3 10.8316 -1.35087
4 12.417 0.234513
5 12.0765 -0.106003
6 12.252 0.069528
7 12.1264 -0.0561433
8 12.2343 0.0518261
TEST01
BASIS_FUNCTION_B_VAL evaluates the
B spline basis function.
T B(T)
-0.5 0
-0.375 0
-0.25 0
-0.125 0
* 0 0
0.25 0.00260417
0.5 0.0208333
0.75 0.0703125
* 1 0.166667
1.75 0.315104
2.5 0.479167
3.25 0.611979
* 4 0.666667
4.5 0.611979
5 0.479167
5.5 0.315104
* 6 0.166667
7 0.0703125
8 0.0208333
9 0.00260417
* 10 0
10.5 0
11 0
11.5 0
12 0
TEST02
BASIS_FUNCTION_BETA_VAL evaluates the
Beta spline basis function.
BETA1 = 1
BETA2 = 0
T B(T)
-0.5 0
-0.375 0
-0.25 0
-0.125 0
* 0 0
0.25 0.00260417
0.5 0.0208333
0.75 0.0703125
* 1 0.166667
1.75 0.315104
2.5 0.479167
3.25 0.611979
* 4 0.666667
4.5 0.611979
5 0.479167
5.5 0.315104
* 6 0.166667
7 0.0703125
8 0.0208333
9 0.00260417
* 10 0
10.5 0
11 0
11.5 0
12 0
BETA1 = 1
BETA2 = 100
T B(T)
-0.5 0
-0.375 0
-0.25 0
-0.125 0
* 0 0
0.25 0.000279018
0.5 0.00223214
0.75 0.00753348
* 1 0.0178571
1.75 0.17327
2.5 0.497768
3.25 0.818917
* 4 0.964286
4.5 0.818917
5 0.497768
5.5 0.17327
* 6 0.0178571
7 0.00753348
8 0.00223214
9 0.000279018
* 10 0
10.5 0
11 0
11.5 0
12 0
BETA1 = 100
BETA2 = 0
T B(T)
-0.5 0
-0.375 0
-0.25 0
-0.125 0
* 0 0
0.25 1.53156e-08
0.5 1.22525e-07
0.75 4.13521e-07
* 1 9.80199e-07
1.75 0.00175767
2.5 0.00626188
3.25 0.0125854
* 4 0.0198
4.5 0.584721
5 0.871213
5.5 0.972099
* 6 0.980199
7 0.413521
8 0.122525
9 0.0153156
* 10 0
10.5 0
11 0
11.5 0
12 0
TEST03
BASIS_MATRIX_B_UNI sets up the basis matrix
for the uniform B spline.
TDATA, YDATA
-1 4