diff options
author | jthorn <jthorn@df1f8a13-aa1d-4dd4-9681-27ded5b42416> | 2002-05-14 15:27:58 +0000 |
---|---|---|
committer | jthorn <jthorn@df1f8a13-aa1d-4dd4-9681-27ded5b42416> | 2002-05-14 15:27:58 +0000 |
commit | cdf157534851b7709002fd477793f5f00fcdbb70 (patch) | |
tree | fed32ec978f324e042ef21b6bafb20857f1c0eee /src | |
parent | e680388995f08078af91ffb64352f3284195c0bf (diff) |
add infrastructure for Jacobian query
-- no actual Jacobian query code yet, though
git-svn-id: http://svn.cactuscode.org/arrangements/CactusBase/LocalInterp/trunk@40 df1f8a13-aa1d-4dd4-9681-27ded5b42416
Diffstat (limited to 'src')
20 files changed, 329 insertions, 204 deletions
diff --git a/src/GeneralizedPolynomial-Uniform/1d.cube.order1.smooth0.c b/src/GeneralizedPolynomial-Uniform/1d.cube.order1.smooth0.c index b9f2c66..bd415a7 100644 --- a/src/GeneralizedPolynomial-Uniform/1d.cube.order1.smooth0.c +++ b/src/GeneralizedPolynomial-Uniform/1d.cube.order1.smooth0.c @@ -24,6 +24,9 @@ #define DATA_VAR_DCL_FILE_NAME "1d.coeffs/1d.cube.size2/data-var.dcl.c" #define DATA_VAR_ASSIGN_FILE_NAME "1d.coeffs/1d.cube.size2/data-var.assign.c" +#define COEFF_I_VAR_STORE_FILE_NAME "1d.coeffs/1d.cube.size2/coeff-I.store.c" +#define COEFF_DX_VAR_STORE_FILE_NAME "1d.coeffs/1d.cube.size2/coeff-dx.store.c" + #define COEFF_I_DCL_FILE_NAME "1d.coeffs/1d.cube.size2/coeff-I.dcl.c" #define COEFF_DX_DCL_FILE_NAME "1d.coeffs/1d.cube.size2/coeff-dx.dcl.c" diff --git a/src/GeneralizedPolynomial-Uniform/1d.cube.order2.smooth0.c b/src/GeneralizedPolynomial-Uniform/1d.cube.order2.smooth0.c index 591d3c7..4981ca6 100644 --- a/src/GeneralizedPolynomial-Uniform/1d.cube.order2.smooth0.c +++ b/src/GeneralizedPolynomial-Uniform/1d.cube.order2.smooth0.c @@ -25,6 +25,10 @@ #define DATA_VAR_DCL_FILE_NAME "1d.coeffs/1d.cube.size3/data-var.dcl.c" #define DATA_VAR_ASSIGN_FILE_NAME "1d.coeffs/1d.cube.size3/data-var.assign.c" +#define COEFF_I_VAR_STORE_FILE_NAME "1d.coeffs/1d.cube.size3/coeff-I.store.c" +#define COEFF_DX_VAR_STORE_FILE_NAME "1d.coeffs/1d.cube.size3/coeff-dx.store.c" +#define COEFF_DXX_VAR_STORE_FILE_NAME "1d.coeffs/1d.cube.size3/coeff-dxx.store.c" + #define COEFF_I_DCL_FILE_NAME "1d.coeffs/1d.cube.size3/coeff-I.dcl.c" #define COEFF_DX_DCL_FILE_NAME "1d.coeffs/1d.cube.size3/coeff-dx.dcl.c" #define COEFF_DXX_DCL_FILE_NAME "1d.coeffs/1d.cube.size3/coeff-dxx.dcl.c" diff --git a/src/GeneralizedPolynomial-Uniform/1d.cube.order3.smooth0.c b/src/GeneralizedPolynomial-Uniform/1d.cube.order3.smooth0.c index 3cff0ea..d5ed17f 100644 --- a/src/GeneralizedPolynomial-Uniform/1d.cube.order3.smooth0.c +++ b/src/GeneralizedPolynomial-Uniform/1d.cube.order3.smooth0.c @@ -25,6 +25,10 @@ #define DATA_VAR_DCL_FILE_NAME "1d.coeffs/1d.cube.size4/data-var.dcl.c" #define DATA_VAR_ASSIGN_FILE_NAME "1d.coeffs/1d.cube.size4/data-var.assign.c" +#define COEFF_I_VAR_STORE_FILE_NAME "1d.coeffs/1d.cube.size4/coeff-I.store.c" +#define COEFF_DX_VAR_STORE_FILE_NAME "1d.coeffs/1d.cube.size4/coeff-dx.store.c" +#define COEFF_DXX_VAR_STORE_FILE_NAME "1d.coeffs/1d.cube.size4/coeff-dxx.store.c" + #define COEFF_I_DCL_FILE_NAME "1d.coeffs/1d.cube.size4/coeff-I.dcl.c" #define COEFF_DX_DCL_FILE_NAME "1d.coeffs/1d.cube.size4/coeff-dx.dcl.c" #define COEFF_DXX_DCL_FILE_NAME "1d.coeffs/1d.cube.size4/coeff-dxx.dcl.c" diff --git a/src/GeneralizedPolynomial-Uniform/1d.cube.order4.smooth0.c b/src/GeneralizedPolynomial-Uniform/1d.cube.order4.smooth0.c index 2a041ca..c9809f6 100644 --- a/src/GeneralizedPolynomial-Uniform/1d.cube.order4.smooth0.c +++ b/src/GeneralizedPolynomial-Uniform/1d.cube.order4.smooth0.c @@ -25,6 +25,10 @@ #define DATA_VAR_DCL_FILE_NAME "1d.coeffs/1d.cube.size5/data-var.dcl.c" #define DATA_VAR_ASSIGN_FILE_NAME "1d.coeffs/1d.cube.size5/data-var.assign.c" +#define COEFF_I_VAR_STORE_FILE_NAME "1d.coeffs/1d.cube.size5/coeff-I.store.c" +#define COEFF_DX_VAR_STORE_FILE_NAME "1d.coeffs/1d.cube.size5/coeff-dx.store.c" +#define COEFF_DXX_VAR_STORE_FILE_NAME "1d.coeffs/1d.cube.size5/coeff-dxx.store.c" + #define COEFF_I_DCL_FILE_NAME "1d.coeffs/1d.cube.size5/coeff-I.dcl.c" #define COEFF_DX_DCL_FILE_NAME "1d.coeffs/1d.cube.size5/coeff-dx.dcl.c" #define COEFF_DXX_DCL_FILE_NAME "1d.coeffs/1d.cube.size5/coeff-dxx.dcl.c" diff --git a/src/GeneralizedPolynomial-Uniform/1d.cube.order5.smooth0.c b/src/GeneralizedPolynomial-Uniform/1d.cube.order5.smooth0.c index 60f2ab7..9e57977 100644 --- a/src/GeneralizedPolynomial-Uniform/1d.cube.order5.smooth0.c +++ b/src/GeneralizedPolynomial-Uniform/1d.cube.order5.smooth0.c @@ -25,6 +25,10 @@ #define DATA_VAR_DCL_FILE_NAME "1d.coeffs/1d.cube.size6/data-var.dcl.c" #define DATA_VAR_ASSIGN_FILE_NAME "1d.coeffs/1d.cube.size6/data-var.assign.c" +#define COEFF_I_VAR_STORE_FILE_NAME "1d.coeffs/1d.cube.size6/coeff-I.store.c" +#define COEFF_DX_VAR_STORE_FILE_NAME "1d.coeffs/1d.cube.size6/coeff-dx.store.c" +#define COEFF_DXX_VAR_STORE_FILE_NAME "1d.coeffs/1d.cube.size6/coeff-dxx.store.c" + #define COEFF_I_DCL_FILE_NAME "1d.coeffs/1d.cube.size6/coeff-I.dcl.c" #define COEFF_DX_DCL_FILE_NAME "1d.coeffs/1d.cube.size6/coeff-dx.dcl.c" #define COEFF_DXX_DCL_FILE_NAME "1d.coeffs/1d.cube.size6/coeff-dxx.dcl.c" diff --git a/src/GeneralizedPolynomial-Uniform/1d.cube.order6.smooth0.c b/src/GeneralizedPolynomial-Uniform/1d.cube.order6.smooth0.c index 52fe300..8637c8d 100644 --- a/src/GeneralizedPolynomial-Uniform/1d.cube.order6.smooth0.c +++ b/src/GeneralizedPolynomial-Uniform/1d.cube.order6.smooth0.c @@ -25,6 +25,10 @@ #define DATA_VAR_DCL_FILE_NAME "1d.coeffs/1d.cube.size7/data-var.dcl.c" #define DATA_VAR_ASSIGN_FILE_NAME "1d.coeffs/1d.cube.size7/data-var.assign.c" +#define COEFF_I_VAR_STORE_FILE_NAME "1d.coeffs/1d.cube.size7/coeff-I.store.c" +#define COEFF_DX_VAR_STORE_FILE_NAME "1d.coeffs/1d.cube.size7/coeff-dx.store.c" +#define COEFF_DXX_VAR_STORE_FILE_NAME "1d.coeffs/1d.cube.size7/coeff-dxx.store.c" + #define COEFF_I_DCL_FILE_NAME "1d.coeffs/1d.cube.size7/coeff-I.dcl.c" #define COEFF_DX_DCL_FILE_NAME "1d.coeffs/1d.cube.size7/coeff-dx.dcl.c" #define COEFF_DXX_DCL_FILE_NAME "1d.coeffs/1d.cube.size7/coeff-dxx.dcl.c" diff --git a/src/GeneralizedPolynomial-Uniform/1d.log b/src/GeneralizedPolynomial-Uniform/1d.log index 95b60ad..08520b4 100644 --- a/src/GeneralizedPolynomial-Uniform/1d.log +++ b/src/GeneralizedPolynomial-Uniform/1d.log @@ -1085,8 +1085,6 @@ fn_1d_order6 := > "1d.coeffs/1d.cube.size2/coeff-I.store.c"); > print_interp_coeff_var_store(posn_list_1d_size2, "coeff_dx_", > "1d.coeffs/1d.cube.size2/coeff-dx.store.c"); -> print_interp_coeff_var_store(posn_list_1d_size2, "coeff_dxx_", -> "1d.coeffs/1d.cube.size2/coeff-dxx.store.c"); > > print_name_list_dcl(map(coeff_name, posn_list_1d_size2, "coeff_I_"), "fp", > "1d.coeffs/1d.cube.size2/coeff-I.dcl.c"); @@ -1320,7 +1318,7 @@ data_var_list_1d_size7 := [ > print_coeff__lc_of_data(%, "coeff_I_", "fp", > "1d.coeffs/1d.cube.order1.smooth0/coeff-I.compute.c"); -bytes used=1007152, alloc=917336, time=0.15 +bytes used=1004880, alloc=917336, time=0.13 > # d/dx > simplify( diff(interp_1d_cube_order1_smooth0,x) ); @@ -1358,7 +1356,7 @@ interp_1d_cube_order2_smooth0 := DATA(0) + (- 1/2 DATA(-1) + 1/2 DATA(1)) x > # d/dx > simplify( diff(interp_1d_cube_order2_smooth0,x) ); -bytes used=2007360, alloc=1310480, time=0.22 +bytes used=2005620, alloc=1376004, time=0.19 - 1/2 DATA(-1) + 1/2 DATA(1) + x DATA(-1) + DATA(1) x - 2 x DATA(0) > coeff_as_lc_of_data(%, posn_list_1d_size3); @@ -1395,7 +1393,7 @@ interp_1d_cube_order3_smooth0 := DATA(0) + (1/2 DATA(-1) + 1/2 DATA(1) - DATA(0)) x 3 - + (1/6 DATA(2) - 1/6 DATA(-1) - 1/2 DATA(1) + 1/2 DATA(0)) x + + (1/2 DATA(0) - 1/6 DATA(-1) - 1/2 DATA(1) + 1/6 DATA(2)) x > # I @@ -1408,17 +1406,17 @@ interp_1d_cube_order3_smooth0 := DATA(0) > print_coeff__lc_of_data(%, "coeff_I_", "fp", > "1d.coeffs/1d.cube.order3.smooth0/coeff-I.compute.c"); -bytes used=3007580, alloc=1703624, time=0.29 +bytes used=3005900, alloc=1703624, time=0.26 > # d/dx > simplify( diff(interp_1d_cube_order3_smooth0,x) ); - 1/2 DATA(0) - 1/3 DATA(-1) + DATA(1) - 1/6 DATA(2) + x DATA(-1) + x DATA(1) 2 2 2 - - 2 x DATA(0) + 1/2 x DATA(2) - 1/2 x DATA(-1) - 3/2 x DATA(1) + - 2 x DATA(0) + 3/2 x DATA(0) - 1/2 x DATA(-1) - 3/2 x DATA(1) 2 - + 3/2 x DATA(0) + + 1/2 x DATA(2) > coeff_as_lc_of_data(%, posn_list_1d_size4); 2 2 @@ -1432,16 +1430,16 @@ bytes used=3007580, alloc=1703624, time=0.29 > # d^2/dx^2 > simplify( diff(interp_1d_cube_order3_smooth0,x,x) ); -DATA(-1) + DATA(1) - 2 DATA(0) + x DATA(2) - x DATA(-1) - 3 x DATA(1) +DATA(-1) + DATA(1) - 2 DATA(0) + 3 x DATA(0) - x DATA(-1) - 3 x DATA(1) - + 3 x DATA(0) + + x DATA(2) > coeff_as_lc_of_data(%, posn_list_1d_size4); [COEFF(-1) = 1 - x, COEFF(0) = -2 + 3 x, COEFF(1) = 1 - 3 x, COEFF(2) = x] > print_coeff__lc_of_data(%, "coeff_dxx_", "fp", > "1d.coeffs/1d.cube.order3.smooth0/coeff-dxx.compute.c"); -bytes used=4008308, alloc=1769148, time=0.33 +bytes used=4006080, alloc=1769148, time=0.33 > ######################################## > @@ -1455,14 +1453,14 @@ bytes used=4008308, alloc=1769148, time=0.33 > coord_list_1d, posn_list_1d_size5); interp_1d_cube_order4_smooth0 := DATA(0) - + (1/12 DATA(-2) - 1/12 DATA(2) - 2/3 DATA(-1) + 2/3 DATA(1)) x + + + (- 2/3 DATA(-1) + 1/12 DATA(-2) - 1/12 DATA(2) + 2/3 DATA(1)) x + - (- 5/4 DATA(0) - 1/24 DATA(-2) - 1/24 DATA(2) + 2/3 DATA(-1) + 2/3 DATA(1)) + (2/3 DATA(1) - 5/4 DATA(0) - 1/24 DATA(-2) - 1/24 DATA(2) + 2/3 DATA(-1)) - 2 3 - x + (- 1/12 DATA(-2) + 1/12 DATA(2) + 1/6 DATA(-1) - 1/6 DATA(1)) x + + 2 3 + x + (1/6 DATA(-1) - 1/12 DATA(-2) + 1/12 DATA(2) - 1/6 DATA(1)) x + - (1/24 DATA(-2) + 1/24 DATA(2) - 1/6 DATA(-1) - 1/6 DATA(1) + 1/4 DATA(0)) + (- 1/6 DATA(1) + 1/4 DATA(0) + 1/24 DATA(-2) + 1/24 DATA(2) - 1/6 DATA(-1)) 4 x @@ -1487,65 +1485,63 @@ interp_1d_cube_order4_smooth0 := DATA(0) > print_coeff__lc_of_data(%, "coeff_I_", "fp", > "1d.coeffs/1d.cube.order4.smooth0/coeff-I.compute.c"); -bytes used=5009540, alloc=1834672, time=0.40 +bytes used=5006312, alloc=1834672, time=0.40 > # d/dx > simplify( diff(interp_1d_cube_order4_smooth0,x) ); -1/12 DATA(-2) - 1/12 DATA(2) - 2/3 DATA(-1) + 2/3 DATA(1) - 5/2 x DATA(0) +- 2/3 DATA(-1) + 1/12 DATA(-2) - 1/12 DATA(2) + 2/3 DATA(1) + 4/3 x DATA(1) - - 1/12 x DATA(-2) - 1/12 x DATA(2) + 4/3 x DATA(-1) + 4/3 x DATA(1) + - 5/2 x DATA(0) - 1/12 x DATA(-2) - 1/12 x DATA(2) + 4/3 x DATA(-1) - 2 2 2 2 - - 1/4 x DATA(-2) + 1/4 x DATA(2) + 1/2 x DATA(-1) - 1/2 x DATA(1) + 2 2 2 2 + + 1/2 x DATA(-1) - 1/4 x DATA(-2) + 1/4 x DATA(2) - 1/2 x DATA(1) - 3 3 3 3 - + 1/6 x DATA(-2) + 1/6 x DATA(2) - 2/3 x DATA(-1) - 2/3 x DATA(1) + 3 3 3 3 + - 2/3 x DATA(1) + x DATA(0) + 1/6 x DATA(-2) + 1/6 x DATA(2) - 3 - + x DATA(0) + 3 + - 2/3 x DATA(-1) > coeff_as_lc_of_data(%, posn_list_1d_size5); 2 3 [COEFF(-2) = - 1/12 x - 1/4 x + 1/12 + 1/6 x , - 2 3 3 - COEFF(-1) = - 2/3 + 1/2 x + 4/3 x - 2/3 x , COEFF(0) = - 5/2 x + x , + 2 3 3 + COEFF(-1) = - 2/3 + 4/3 x + 1/2 x - 2/3 x , COEFF(0) = x - 5/2 x, - 3 2 - COEFF(1) = 2/3 + 4/3 x - 2/3 x - 1/2 x , + 2 3 + COEFF(1) = 4/3 x - 1/2 x - 2/3 x + 2/3, - 2 3 - COEFF(2) = 1/4 x - 1/12 - 1/12 x + 1/6 x ] + 3 2 + COEFF(2) = 1/6 x - 1/12 x - 1/12 + 1/4 x ] > print_coeff__lc_of_data(%, "coeff_dx_", "fp", > "1d.coeffs/1d.cube.order4.smooth0/coeff-dx.compute.c"); -bytes used=6009692, alloc=1900196, time=0.49 +bytes used=6006472, alloc=1900196, time=0.49 > # d^2/dx^2 > simplify( diff(interp_1d_cube_order4_smooth0,x,x) ); -- 5/2 DATA(0) - 1/12 DATA(-2) - 1/12 DATA(2) + 4/3 DATA(-1) + 4/3 DATA(1) - - - 1/2 x DATA(-2) + 1/2 x DATA(2) + x DATA(-1) - x DATA(1) +4/3 DATA(1) - 5/2 DATA(0) - 1/12 DATA(-2) - 1/12 DATA(2) + 4/3 DATA(-1) - 2 2 2 2 - + 1/2 x DATA(-2) + 1/2 x DATA(2) - 2 x DATA(-1) - 2 x DATA(1) + 2 + + x DATA(-1) - 1/2 x DATA(-2) + 1/2 x DATA(2) - x DATA(1) - 2 x DATA(1) - 2 - + 3 x DATA(0) + 2 2 2 2 + + 3 x DATA(0) + 1/2 x DATA(-2) + 1/2 x DATA(2) - 2 x DATA(-1) > coeff_as_lc_of_data(%, posn_list_1d_size5); - 2 2 -[COEFF(-2) = - 1/12 - 1/2 x + 1/2 x , COEFF(-1) = 4/3 - 2 x + x, + 2 2 +[COEFF(-2) = - 1/12 - 1/2 x + 1/2 x , COEFF(-1) = 4/3 + x - 2 x , - 2 2 - COEFF(0) = - 5/2 + 3 x , COEFF(1) = 4/3 - x - 2 x , + 2 2 + COEFF(0) = - 5/2 + 3 x , COEFF(1) = 4/3 - 2 x - x, - 2 - COEFF(2) = 1/2 x - 1/12 + 1/2 x ] + 2 + COEFF(2) = 1/2 x + 1/2 x - 1/12] > print_coeff__lc_of_data(%, "coeff_dxx_", "fp", > "1d.coeffs/1d.cube.order4.smooth0/coeff-dxx.compute.c"); -bytes used=7009880, alloc=1900196, time=0.60 +bytes used=7006900, alloc=1900196, time=0.56 > ######################################## > @@ -1557,12 +1553,12 @@ bytes used=7009880, alloc=1900196, time=0.60 > interp_1d_cube_order5_smooth0 > := polynomial_interpolant(fn_1d_order5, coeff_list_1d_order5, > coord_list_1d, posn_list_1d_size6); -bytes used=8010072, alloc=1900196, time=0.67 +bytes used=8007124, alloc=1900196, time=0.64 interp_1d_cube_order5_smooth0 := DATA(0) + (- 1/2 DATA(-1) + 1/30 DATA(3) + 1/20 DATA(-2) + DATA(1) - 1/4 DATA(2) - 1/3 DATA(0)) x + - (- 5/4 DATA(0) - 1/24 DATA(-2) - 1/24 DATA(2) + 2/3 DATA(-1) + 2/3 DATA(1)) + (2/3 DATA(1) - 5/4 DATA(0) - 1/24 DATA(-2) - 1/24 DATA(2) + 2/3 DATA(-1)) 2 x + (- 1/24 DATA(-1) - 1/24 DATA(3) - 1/24 DATA(-2) - 7/12 DATA(1) @@ -1570,7 +1566,7 @@ interp_1d_cube_order5_smooth0 := DATA(0) + (- 1/2 DATA(-1) + 1/30 DATA(3) 3 + 7/24 DATA(2) + 5/12 DATA(0)) x + - (1/24 DATA(-2) + 1/24 DATA(2) - 1/6 DATA(-1) - 1/6 DATA(1) + 1/4 DATA(0)) + (- 1/6 DATA(1) + 1/4 DATA(0) + 1/24 DATA(-2) + 1/24 DATA(2) - 1/6 DATA(-1)) 4 x + (1/24 DATA(-1) + 1/120 DATA(3) - 1/120 DATA(-2) + 1/12 DATA(1) @@ -1601,65 +1597,65 @@ interp_1d_cube_order5_smooth0 := DATA(0) + (- 1/2 DATA(-1) + 1/30 DATA(3) > print_coeff__lc_of_data(%, "coeff_I_", "fp", > "1d.coeffs/1d.cube.order5.smooth0/coeff-I.compute.c"); -bytes used=9010420, alloc=1900196, time=0.75 +bytes used=9007300, alloc=1900196, time=0.70 > # d/dx > simplify( diff(interp_1d_cube_order5_smooth0,x) ); -bytes used=10010660, alloc=1900196, time=0.84 -1/20 DATA(-2) - 1/3 DATA(0) + DATA(1) + 1/30 DATA(3) - 1/2 DATA(-1) +bytes used=10007548, alloc=1900196, time=0.78 +- 1/3 DATA(0) + DATA(1) + 1/20 DATA(-2) - 1/2 DATA(-1) - 1/4 DATA(2) - 3 - - 1/4 DATA(2) + 1/6 x DATA(-2) - 5/2 x DATA(0) - 1/12 x DATA(-2) + 2 2 2 + + 1/30 DATA(3) - 1/8 x DATA(3) - 1/8 x DATA(-2) - 7/4 x DATA(1) - 2 - - 1/12 x DATA(2) + 4/3 x DATA(-1) + 4/3 x DATA(1) - 1/8 x DATA(-1) + 2 2 3 3 + + 7/8 x DATA(2) + 5/4 x DATA(0) - 2/3 x DATA(1) + x DATA(0) - 2 2 2 2 - - 1/8 x DATA(3) - 1/8 x DATA(-2) - 7/4 x DATA(1) + 7/8 x DATA(2) + 3 3 3 4 + + 1/6 x DATA(-2) + 1/6 x DATA(2) - 2/3 x DATA(-1) + 5/24 x DATA(-1) - 2 3 3 3 - + 5/4 x DATA(0) + 1/6 x DATA(2) - 2/3 x DATA(-1) - 2/3 x DATA(1) + 4 4 4 4 + + 1/24 x DATA(3) - 1/24 x DATA(-2) + 5/12 x DATA(1) - 5/24 x DATA(2) - 3 4 4 4 - + x DATA(0) + 5/24 x DATA(-1) + 1/24 x DATA(3) - 1/24 x DATA(-2) + 4 + - 5/12 x DATA(0) + 4/3 x DATA(1) - 5/2 x DATA(0) - 1/12 x DATA(-2) - 4 4 4 - + 5/12 x DATA(1) - 5/24 x DATA(2) - 5/12 x DATA(0) + 2 + - 1/12 x DATA(2) + 4/3 x DATA(-1) - 1/8 x DATA(-1) > coeff_as_lc_of_data(%, posn_list_1d_size6); - 3 2 4 -[COEFF(-2) = 1/6 x + 1/20 - 1/8 x - 1/12 x - 1/24 x , + 3 4 2 +[COEFF(-2) = 1/6 x - 1/12 x + 1/20 - 1/24 x - 1/8 x , - 3 4 2 - COEFF(-1) = - 2/3 x - 1/2 + 5/24 x - 1/8 x + 4/3 x, + 2 4 3 + COEFF(-1) = - 1/8 x - 1/2 + 5/24 x + 4/3 x - 2/3 x , - 3 4 2 - COEFF(0) = x - 1/3 - 5/2 x - 5/12 x + 5/4 x , + 3 2 4 + COEFF(0) = - 1/3 - 5/2 x + x + 5/4 x - 5/12 x , - 3 2 4 - COEFF(1) = 1 - 2/3 x - 7/4 x + 4/3 x + 5/12 x , + 3 2 4 + COEFF(1) = 4/3 x - 2/3 x - 7/4 x + 1 + 5/12 x , - 3 2 4 - COEFF(2) = - 1/12 x - 1/4 + 1/6 x + 7/8 x - 5/24 x , + 2 4 3 + COEFF(2) = - 1/4 + 7/8 x - 5/24 x + 1/6 x - 1/12 x, - 2 4 - COEFF(3) = - 1/8 x + 1/24 x + 1/30] + 4 2 + COEFF(3) = 1/24 x + 1/30 - 1/8 x ] > print_coeff__lc_of_data(%, "coeff_dx_", "fp", > "1d.coeffs/1d.cube.order5.smooth0/coeff-dx.compute.c"); -bytes used=11010856, alloc=1900196, time=0.91 +bytes used=11007796, alloc=1965720, time=0.87 > # d^2/dx^2 > simplify( diff(interp_1d_cube_order5_smooth0,x,x) ); -- 5/2 DATA(0) - 1/12 DATA(-2) - 1/12 DATA(2) + 4/3 DATA(-1) + 4/3 DATA(1) +4/3 DATA(1) - 5/2 DATA(0) - 1/12 DATA(-2) - 1/12 DATA(2) + 4/3 DATA(-1) - 1/4 x DATA(-1) - 1/4 x DATA(3) - 1/4 x DATA(-2) - 7/2 x DATA(1) - 2 2 - + 7/4 x DATA(2) + 5/2 x DATA(0) + 1/2 x DATA(-2) + 1/2 x DATA(2) + 2 2 + + 7/4 x DATA(2) + 5/2 x DATA(0) - 2 x DATA(1) + 3 x DATA(0) - 2 2 2 3 - - 2 x DATA(-1) - 2 x DATA(1) + 3 x DATA(0) + 5/6 x DATA(-1) + 2 2 2 3 + + 1/2 x DATA(-2) + 1/2 x DATA(2) - 2 x DATA(-1) + 5/6 x DATA(-1) 3 3 3 3 + 1/6 x DATA(3) - 1/6 x DATA(-2) + 5/3 x DATA(1) - 5/6 x DATA(2) @@ -1668,24 +1664,24 @@ bytes used=11010856, alloc=1900196, time=0.91 - 5/3 x DATA(0) > coeff_as_lc_of_data(%, posn_list_1d_size6); - 3 2 -[COEFF(-2) = - 1/12 - 1/6 x + 1/2 x - 1/4 x, + 3 2 +[COEFF(-2) = - 1/6 x - 1/12 - 1/4 x + 1/2 x , - 3 2 - COEFF(-1) = - 1/4 x + 5/6 x + 4/3 - 2 x , + 2 3 + COEFF(-1) = - 1/4 x - 2 x + 5/6 x + 4/3, 3 2 COEFF(0) = - 5/3 x + 5/2 x + 3 x - 5/2, - 3 2 - COEFF(1) = 5/3 x + 4/3 - 7/2 x - 2 x , + 3 2 + COEFF(1) = 4/3 + 5/3 x - 7/2 x - 2 x , - 2 3 3 - COEFF(2) = - 1/12 + 1/2 x + 7/4 x - 5/6 x , COEFF(3) = - 1/4 x + 1/6 x ] + 2 3 3 + COEFF(2) = 7/4 x - 1/12 + 1/2 x - 5/6 x , COEFF(3) = 1/6 x - 1/4 x] > print_coeff__lc_of_data(%, "coeff_dxx_", "fp", > "1d.coeffs/1d.cube.order5.smooth0/coeff-dxx.compute.c"); -bytes used=12011540, alloc=1965720, time=0.99 +bytes used=12007960, alloc=1965720, time=0.96 > ######################################## > @@ -1697,38 +1693,38 @@ bytes used=12011540, alloc=1965720, time=0.99 > interp_1d_cube_order6_smooth0 > := polynomial_interpolant(fn_1d_order6, coeff_list_1d_order6, > coord_list_1d, posn_list_1d_size7); -bytes used=13011756, alloc=1965720, time=1.08 -interp_1d_cube_order6_smooth0 := DATA(0) + (3/4 DATA(1) - 1/60 DATA(-3) +bytes used=13008192, alloc=1965720, time=1.02 +interp_1d_cube_order6_smooth0 := DATA(0) + (3/4 DATA(1) + 1/60 DATA(3) - / - + 1/60 DATA(3) - 3/4 DATA(-1) - 3/20 DATA(2) + 3/20 DATA(-2)) x + | - \ + / + + 3/20 DATA(-2) - 3/4 DATA(-1) - 3/20 DATA(2) - 1/60 DATA(-3)) x + | + \ - 3/4 DATA(-1) + 1/180 DATA(-3) - 3/40 DATA(2) + 1/180 DATA(3) + 3/4 DATA(1) + 3/4 DATA(1) + 1/180 DATA(-3) - 3/40 DATA(-2) + 3/4 DATA(-1) + 1/180 DATA(3) - 49 \ 2 / 13 - - -- DATA(0) - 3/40 DATA(-2)| x + |- -- DATA(1) + 1/48 DATA(-3) - 36 / \ 48 + 49 \ 2 / 13 + - -- DATA(0) - 3/40 DATA(2)| x + |- -- DATA(1) - 1/48 DATA(3) + 36 / \ 48 - 13 \ 3 / - - 1/48 DATA(3) + -- DATA(-1) + 1/6 DATA(2) - 1/6 DATA(-2)| x + | - 48 / \ + 13 \ 3 / + - 1/6 DATA(-2) + -- DATA(-1) + 1/6 DATA(2) + 1/48 DATA(-3)| x + | + 48 / \ - 13 13 - - -- DATA(-1) - 1/144 DATA(-3) + 1/12 DATA(2) - 1/144 DATA(3) - -- DATA(1) - 48 48 + 13 13 + - -- DATA(1) - 1/144 DATA(-3) + 1/12 DATA(-2) - -- DATA(-1) - 1/144 DATA(3) + 48 48 - \ 4 - + 7/18 DATA(0) + 1/12 DATA(-2)| x + (1/48 DATA(1) - 1/240 DATA(-3) - / + \ 4 + + 7/18 DATA(0) + 1/12 DATA(2)| x + (1/48 DATA(1) + 1/240 DATA(3) + / - 5 - + 1/240 DATA(3) - 1/48 DATA(-1) - 1/60 DATA(2) + 1/60 DATA(-2)) x + ( + 5 + + 1/60 DATA(-2) - 1/48 DATA(-1) - 1/60 DATA(2) - 1/240 DATA(-3)) x + ( - 1/48 DATA(-1) + 1/720 DATA(-3) - 1/120 DATA(2) + 1/720 DATA(3) + 1/48 DATA(1) + 1/720 DATA(-3) - 1/120 DATA(-2) + 1/48 DATA(-1) 6 - + 1/48 DATA(1) - 1/36 DATA(0) - 1/120 DATA(-2)) x + + 1/720 DATA(3) - 1/36 DATA(0) - 1/120 DATA(2)) x > # I @@ -1759,127 +1755,128 @@ interp_1d_cube_order6_smooth0 := DATA(0) + (3/4 DATA(1) - 1/60 DATA(-3) > print_coeff__lc_of_data(%, "coeff_I_", "fp", > "1d.coeffs/1d.cube.order6.smooth0/coeff-I.compute.c"); -bytes used=14011944, alloc=1965720, time=1.15 -bytes used=15012348, alloc=1965720, time=1.25 +bytes used=14008644, alloc=1965720, time=1.09 +bytes used=15008808, alloc=1965720, time=1.18 > # d/dx > simplify( diff(interp_1d_cube_order6_smooth0,x) ); -bytes used=16013144, alloc=1965720, time=1.32 -3/20 DATA(-2) + 3/4 DATA(1) + 1/60 DATA(3) - 3/4 DATA(-1) - 3/20 DATA(2) +bytes used=16009528, alloc=1965720, time=1.27 +3/4 DATA(1) + 3/20 DATA(-2) - 3/4 DATA(-1) - 3/20 DATA(2) - 1/60 DATA(-3) - 4 4 4 - - 1/60 DATA(-3) - 1/48 x DATA(-3) + 1/48 x DATA(3) - 5/48 x DATA(-1) + 3 3 + + 14/9 x DATA(0) + 1/3 x DATA(2) + 3/2 x DATA(1) + 1/90 x DATA(-3) - 4 4 5 5 - - 1/12 x DATA(2) + 1/12 x DATA(-2) + 1/8 x DATA(-1) + 1/120 x DATA(-3) + 49 + - 3/20 x DATA(-2) + 3/2 x DATA(-1) + 1/90 x DATA(3) - -- x DATA(0) + 18 - 2 49 - + 1/16 x DATA(-3) - -- x DATA(0) - 3/20 x DATA(-2) + 3/2 x DATA(-1) - 18 + 13 2 2 2 + - 3/20 x DATA(2) - -- x DATA(1) - 1/16 x DATA(3) - 1/2 x DATA(-2) + 16 - + 1/90 x DATA(-3) - 3/20 x DATA(2) + 1/90 x DATA(3) + 3/2 x DATA(1) + 13 2 2 2 13 3 + + -- x DATA(-1) + 1/2 x DATA(2) + 1/16 x DATA(-3) - -- x DATA(1) + 16 12 - 5 5 5 5 - - 1/20 x DATA(2) + 1/120 x DATA(3) + 1/8 x DATA(1) - 1/6 x DATA(0) + 3 3 13 3 3 + - 1/36 x DATA(-3) + 1/3 x DATA(-2) - -- x DATA(-1) - 1/36 x DATA(3) + 12 - 5 13 2 2 13 2 - - 1/20 x DATA(-2) - -- x DATA(1) - 1/16 x DATA(3) + -- x DATA(-1) - 16 16 + 4 4 4 4 + + 5/48 x DATA(1) + 1/12 x DATA(-2) - 5/48 x DATA(-1) - 1/12 x DATA(2) - 2 2 13 3 3 - + 1/2 x DATA(2) - 1/2 x DATA(-2) - -- x DATA(-1) - 1/36 x DATA(-3) - 12 + 4 5 5 5 + - 1/48 x DATA(-3) + 1/8 x DATA(1) + 1/120 x DATA(-3) - 1/20 x DATA(-2) - 3 3 13 3 3 - + 1/3 x DATA(2) - 1/36 x DATA(3) - -- x DATA(1) + 14/9 x DATA(0) - 12 + 5 5 5 5 + + 1/8 x DATA(-1) + 1/120 x DATA(3) - 1/6 x DATA(0) - 1/20 x DATA(2) - 3 4 - + 1/3 x DATA(-2) + 5/48 x DATA(1) + 4 + + 1/48 x DATA(3) + 1/60 DATA(3) > coeff_as_lc_of_data(%, posn_list_1d_size7); - 4 5 2 3 -[COEFF(-3) = 1/90 x - 1/48 x + 1/120 x + 1/16 x - 1/60 - 1/36 x , + 2 5 4 3 +[COEFF(-3) = 1/16 x + 1/90 x + 1/120 x - 1/48 x - 1/36 x - 1/60, - 3 5 4 2 - COEFF(-2) = 1/3 x - 1/20 x + 1/12 x - 1/2 x - 3/20 x + 3/20, + 3 5 4 2 + COEFF(-2) = 1/3 x - 3/20 x - 1/20 x + 1/12 x + 3/20 - 1/2 x , - 13 3 13 2 5 4 - COEFF(-1) = - -- x + -- x + 3/2 x + 1/8 x - 5/48 x - 3/4, - 12 16 + 13 3 4 13 2 5 + COEFF(-1) = 3/2 x - -- x - 3/4 - 5/48 x + -- x + 1/8 x , + 12 16 5 49 3 COEFF(0) = - 1/6 x - -- x + 14/9 x , 18 - 4 13 3 13 2 5 - COEFF(1) = 5/48 x - -- x + 3/2 x - -- x + 3/4 + 1/8 x , - 12 16 + 13 2 5 4 13 3 + COEFF(1) = 3/2 x - -- x + 1/8 x + 5/48 x - -- x + 3/4, + 16 12 - 5 4 2 3 - COEFF(2) = - 3/20 x - 3/20 - 1/20 x - 1/12 x + 1/2 x + 1/3 x , + 4 3 2 5 + COEFF(2) = - 3/20 - 1/12 x + 1/3 x + 1/2 x - 1/20 x - 3/20 x, - 3 4 5 2 - COEFF(3) = - 1/36 x + 1/90 x + 1/48 x + 1/60 + 1/120 x - 1/16 x ] + 5 3 2 4 + COEFF(3) = 1/120 x + 1/60 - 1/36 x - 1/16 x + 1/90 x + 1/48 x ] > print_coeff__lc_of_data(%, "coeff_dx_", "fp", > "1d.coeffs/1d.cube.order6.smooth0/coeff-dx.compute.c"); -bytes used=17013336, alloc=1965720, time=1.41 -bytes used=18013692, alloc=1965720, time=1.50 +bytes used=17009692, alloc=2031244, time=1.36 > # d^2/dx^2 > simplify( diff(interp_1d_cube_order6_smooth0,x,x) ); - 2 4 49 -14/3 x DATA(0) - 5/6 x DATA(0) - 3/20 DATA(-2) - -- DATA(0) + 3/2 DATA(1) - 18 +bytes used=18010492, alloc=2031244, time=1.48 + 2 49 +14/3 x DATA(0) - -- DATA(0) + 3/2 DATA(1) - 3/20 DATA(-2) + 3/2 DATA(-1) + 18 - + 1/90 DATA(3) + 3/2 DATA(-1) - 3/20 DATA(2) + 1/90 DATA(-3) + 4 3 + - 3/20 DATA(2) + 1/90 DATA(-3) - 5/6 x DATA(0) - 1/3 x DATA(2) - 4 4 4 4 - + 1/24 x DATA(-3) + 1/24 x DATA(3) + 5/8 x DATA(-1) - 1/4 x DATA(2) + - 13/8 x DATA(1) + 1/8 x DATA(-3) - x DATA(-2) + 13/8 x DATA(-1) - 4 2 - - 1/4 x DATA(-2) - 1/12 x DATA(-3) - x DATA(-2) + 13/8 x DATA(-1) + 2 2 + - 1/8 x DATA(3) + x DATA(2) - 13/4 x DATA(1) - 1/12 x DATA(3) - + 1/8 x DATA(-3) + x DATA(2) - 1/8 x DATA(3) - 13/8 x DATA(1) + 2 2 2 2 + + x DATA(-2) - 13/4 x DATA(-1) + x DATA(2) - 1/12 x DATA(-3) - 2 2 2 2 - - 13/4 x DATA(1) - 1/12 x DATA(3) - 13/4 x DATA(-1) + x DATA(2) + 3 3 3 3 + + 5/12 x DATA(1) - 1/12 x DATA(-3) + 1/3 x DATA(-2) - 5/12 x DATA(-1) - 2 3 3 3 - + x DATA(-2) - 5/12 x DATA(-1) - 1/12 x DATA(-3) - 1/3 x DATA(2) + 3 4 4 4 + + 1/12 x DATA(3) + 5/8 x DATA(1) - 1/4 x DATA(-2) + 5/8 x DATA(-1) - 3 3 3 4 - + 1/12 x DATA(3) + 5/12 x DATA(1) + 1/3 x DATA(-2) + 5/8 x DATA(1) + 4 4 4 + - 1/4 x DATA(2) + 1/24 x DATA(-3) + 1/24 x DATA(3) + 1/90 DATA(3) > coeff_as_lc_of_data(%, posn_list_1d_size7); - 4 2 3 -[COEFF(-3) = 1/24 x - 1/12 x - 1/12 x + 1/8 x + 1/90, + 3 4 2 +[COEFF(-3) = - 1/12 x + 1/8 x + 1/24 x + 1/90 - 1/12 x , - 2 4 3 - COEFF(-2) = x - 3/20 - x - 1/4 x + 1/3 x , + 3 2 4 + COEFF(-2) = 1/3 x + x - 3/20 - 1/4 x - x, - 4 3 2 - COEFF(-1) = 3/2 + 5/8 x + 13/8 x - 5/12 x - 13/4 x , + 2 4 3 + COEFF(-1) = - 13/4 x + 5/8 x - 5/12 x + 13/8 x + 3/2, - 2 49 4 - COEFF(0) = 14/3 x - -- - 5/6 x , - 18 + 4 2 49 + COEFF(0) = - 5/6 x + 14/3 x - --, + 18 - 2 4 3 - COEFF(1) = - 13/4 x + 5/8 x - 13/8 x + 3/2 + 5/12 x , + 4 2 3 + COEFF(1) = 5/8 x + 3/2 - 13/4 x + 5/12 x - 13/8 x, - 4 2 3 - COEFF(2) = - 1/4 x + x + x - 3/20 - 1/3 x , + 2 4 3 + COEFF(2) = x - 1/4 x - 1/3 x + x - 3/20, - 4 3 2 - COEFF(3) = 1/90 - 1/8 x + 1/24 x + 1/12 x - 1/12 x ] + 4 3 2 + COEFF(3) = - 1/8 x + 1/24 x + 1/12 x + 1/90 - 1/12 x ] > print_coeff__lc_of_data(%, "coeff_dxx_", "fp", > "1d.coeffs/1d.cube.order6.smooth0/coeff-dxx.compute.c"); -bytes used=19013888, alloc=1965720, time=1.58 -bytes used=20014096, alloc=1965720, time=1.64 +bytes used=19010728, alloc=2031244, time=1.56 > ################################################################################ > quit -bytes used=20033344, alloc=1965720, time=1.64 +bytes used=19870392, alloc=2031244, time=1.64 diff --git a/src/GeneralizedPolynomial-Uniform/1d.maple b/src/GeneralizedPolynomial-Uniform/1d.maple index 8c9e23a..7e3ea9b 100644 --- a/src/GeneralizedPolynomial-Uniform/1d.maple +++ b/src/GeneralizedPolynomial-Uniform/1d.maple @@ -83,8 +83,6 @@ print_interp_coeff_var_store(posn_list_1d_size2, "coeff_I_", "1d.coeffs/1d.cube.size2/coeff-I.store.c"); print_interp_coeff_var_store(posn_list_1d_size2, "coeff_dx_", "1d.coeffs/1d.cube.size2/coeff-dx.store.c"); -print_interp_coeff_var_store(posn_list_1d_size2, "coeff_dxx_", - "1d.coeffs/1d.cube.size2/coeff-dxx.store.c"); print_name_list_dcl(map(coeff_name, posn_list_1d_size2, "coeff_I_"), "fp", "1d.coeffs/1d.cube.size2/coeff-I.dcl.c"); diff --git a/src/GeneralizedPolynomial-Uniform/2d.cube.order1.smooth0.c b/src/GeneralizedPolynomial-Uniform/2d.cube.order1.smooth0.c index a9ae8f5..508b1bc 100644 --- a/src/GeneralizedPolynomial-Uniform/2d.cube.order1.smooth0.c +++ b/src/GeneralizedPolynomial-Uniform/2d.cube.order1.smooth0.c @@ -25,6 +25,10 @@ #define DATA_VAR_DCL_FILE_NAME "2d.coeffs/2d.cube.size2/data-var.dcl.c" #define DATA_VAR_ASSIGN_FILE_NAME "2d.coeffs/2d.cube.size2/data-var.assign.c" +#define COEFF_I_VAR_STORE_FILE_NAME "2d.coeffs/2d.cube.size2/coeff-I.store.c" +#define COEFF_DX_VAR_STORE_FILE_NAME "2d.coeffs/2d.cube.size2/coeff-dx.store.c" +#define COEFF_DY_VAR_STORE_FILE_NAME "2d.coeffs/2d.cube.size2/coeff-dy.store.c" + #define COEFF_I_DCL_FILE_NAME "2d.coeffs/2d.cube.size2/coeff-I.dcl.c" #define COEFF_DX_DCL_FILE_NAME "2d.coeffs/2d.cube.size2/coeff-dx.dcl.c" #define COEFF_DY_DCL_FILE_NAME "2d.coeffs/2d.cube.size2/coeff-dy.dcl.c" diff --git a/src/GeneralizedPolynomial-Uniform/2d.cube.order2.smooth0.c b/src/GeneralizedPolynomial-Uniform/2d.cube.order2.smooth0.c index 160bbd0..4df7faf 100644 --- a/src/GeneralizedPolynomial-Uniform/2d.cube.order2.smooth0.c +++ b/src/GeneralizedPolynomial-Uniform/2d.cube.order2.smooth0.c @@ -28,6 +28,13 @@ #define DATA_VAR_DCL_FILE_NAME "2d.coeffs/2d.cube.size3/data-var.dcl.c" #define DATA_VAR_ASSIGN_FILE_NAME "2d.coeffs/2d.cube.size3/data-var.assign.c" +#define COEFF_I_VAR_STORE_FILE_NAME "2d.coeffs/2d.cube.size3/coeff-I.store.c" +#define COEFF_DX_VAR_STORE_FILE_NAME "2d.coeffs/2d.cube.size3/coeff-dx.store.c" +#define COEFF_DY_VAR_STORE_FILE_NAME "2d.coeffs/2d.cube.size3/coeff-dy.store.c" +#define COEFF_DXX_VAR_STORE_FILE_NAME "2d.coeffs/2d.cube.size3/coeff-dxx.store.c" +#define COEFF_DXY_VAR_STORE_FILE_NAME "2d.coeffs/2d.cube.size3/coeff-dxy.store.c" +#define COEFF_DYY_VAR_STORE_FILE_NAME "2d.coeffs/2d.cube.size3/coeff-dyy.store.c" + #define COEFF_I_DCL_FILE_NAME "2d.coeffs/2d.cube.size3/coeff-I.dcl.c" #define COEFF_DX_DCL_FILE_NAME "2d.coeffs/2d.cube.size3/coeff-dx.dcl.c" #define COEFF_DY_DCL_FILE_NAME "2d.coeffs/2d.cube.size3/coeff-dy.dcl.c" diff --git a/src/GeneralizedPolynomial-Uniform/2d.cube.order3.smooth0.c b/src/GeneralizedPolynomial-Uniform/2d.cube.order3.smooth0.c index 275d152..2d4c49b 100644 --- a/src/GeneralizedPolynomial-Uniform/2d.cube.order3.smooth0.c +++ b/src/GeneralizedPolynomial-Uniform/2d.cube.order3.smooth0.c @@ -28,6 +28,13 @@ #define DATA_VAR_DCL_FILE_NAME "2d.coeffs/2d.cube.size4/data-var.dcl.c" #define DATA_VAR_ASSIGN_FILE_NAME "2d.coeffs/2d.cube.size4/data-var.assign.c" +#define COEFF_I_VAR_STORE_FILE_NAME "2d.coeffs/2d.cube.size4/coeff-I.store.c" +#define COEFF_DX_VAR_STORE_FILE_NAME "2d.coeffs/2d.cube.size4/coeff-dx.store.c" +#define COEFF_DY_VAR_STORE_FILE_NAME "2d.coeffs/2d.cube.size4/coeff-dy.store.c" +#define COEFF_DXX_VAR_STORE_FILE_NAME "2d.coeffs/2d.cube.size4/coeff-dxx.store.c" +#define COEFF_DXY_VAR_STORE_FILE_NAME "2d.coeffs/2d.cube.size4/coeff-dxy.store.c" +#define COEFF_DYY_VAR_STORE_FILE_NAME "2d.coeffs/2d.cube.size4/coeff-dyy.store.c" + #define COEFF_I_DCL_FILE_NAME "2d.coeffs/2d.cube.size4/coeff-I.dcl.c" #define COEFF_DX_DCL_FILE_NAME "2d.coeffs/2d.cube.size4/coeff-dx.dcl.c" #define COEFF_DY_DCL_FILE_NAME "2d.coeffs/2d.cube.size4/coeff-dy.dcl.c" diff --git a/src/GeneralizedPolynomial-Uniform/2d.cube.order4.smooth0.c b/src/GeneralizedPolynomial-Uniform/2d.cube.order4.smooth0.c index 179e705..a0727ba 100644 --- a/src/GeneralizedPolynomial-Uniform/2d.cube.order4.smooth0.c +++ b/src/GeneralizedPolynomial-Uniform/2d.cube.order4.smooth0.c @@ -28,6 +28,13 @@ #define DATA_VAR_DCL_FILE_NAME "2d.coeffs/2d.cube.size5/data-var.dcl.c" #define DATA_VAR_ASSIGN_FILE_NAME "2d.coeffs/2d.cube.size5/data-var.assign.c" +#define COEFF_I_VAR_STORE_FILE_NAME "2d.coeffs/2d.cube.size5/coeff-I.store.c" +#define COEFF_DX_VAR_STORE_FILE_NAME "2d.coeffs/2d.cube.size5/coeff-dx.store.c" +#define COEFF_DY_VAR_STORE_FILE_NAME "2d.coeffs/2d.cube.size5/coeff-dy.store.c" +#define COEFF_DXX_VAR_STORE_FILE_NAME "2d.coeffs/2d.cube.size5/coeff-dxx.store.c" +#define COEFF_DXY_VAR_STORE_FILE_NAME "2d.coeffs/2d.cube.size5/coeff-dxy.store.c" +#define COEFF_DYY_VAR_STORE_FILE_NAME "2d.coeffs/2d.cube.size5/coeff-dyy.store.c" + #define COEFF_I_DCL_FILE_NAME "2d.coeffs/2d.cube.size5/coeff-I.dcl.c" #define COEFF_DX_DCL_FILE_NAME "2d.coeffs/2d.cube.size5/coeff-dx.dcl.c" #define COEFF_DY_DCL_FILE_NAME "2d.coeffs/2d.cube.size5/coeff-dy.dcl.c" diff --git a/src/GeneralizedPolynomial-Uniform/3d.cube.order1.smooth0.c b/src/GeneralizedPolynomial-Uniform/3d.cube.order1.smooth0.c index d990c9a..66dabaf 100644 --- a/src/GeneralizedPolynomial-Uniform/3d.cube.order1.smooth0.c +++ b/src/GeneralizedPolynomial-Uniform/3d.cube.order1.smooth0.c @@ -26,6 +26,11 @@ #define DATA_VAR_DCL_FILE_NAME "3d.coeffs/3d.cube.size2/data-var.dcl.c" #define DATA_VAR_ASSIGN_FILE_NAME "3d.coeffs/3d.cube.size2/data-var.assign.c" +#define COEFF_I_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size2/coeff-I.store.c" +#define COEFF_DX_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size2/coeff-dx.store.c" +#define COEFF_DY_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size2/coeff-dy.store.c" +#define COEFF_DZ_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size2/coeff-dz.store.c" + #define COEFF_I_DCL_FILE_NAME "3d.coeffs/3d.cube.size2/coeff-I.dcl.c" #define COEFF_DX_DCL_FILE_NAME "3d.coeffs/3d.cube.size2/coeff-dx.dcl.c" #define COEFF_DY_DCL_FILE_NAME "3d.coeffs/3d.cube.size2/coeff-dy.dcl.c" diff --git a/src/GeneralizedPolynomial-Uniform/3d.cube.order2.smooth0.c b/src/GeneralizedPolynomial-Uniform/3d.cube.order2.smooth0.c index 53d65fb..c2422e5 100644 --- a/src/GeneralizedPolynomial-Uniform/3d.cube.order2.smooth0.c +++ b/src/GeneralizedPolynomial-Uniform/3d.cube.order2.smooth0.c @@ -32,6 +32,17 @@ #define DATA_VAR_DCL_FILE_NAME "3d.coeffs/3d.cube.size3/data-var.dcl.c" #define DATA_VAR_ASSIGN_FILE_NAME "3d.coeffs/3d.cube.size3/data-var.assign.c" +#define COEFF_I_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size3/coeff-I.store.c" +#define COEFF_DX_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size3/coeff-dx.store.c" +#define COEFF_DY_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size3/coeff-dy.store.c" +#define COEFF_DZ_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size3/coeff-dz.store.c" +#define COEFF_DXX_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size3/coeff-dxx.store.c" +#define COEFF_DXY_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size3/coeff-dxy.store.c" +#define COEFF_DXZ_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size3/coeff-dxz.store.c" +#define COEFF_DYY_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size3/coeff-dyy.store.c" +#define COEFF_DYZ_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size3/coeff-dyz.store.c" +#define COEFF_DZZ_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size3/coeff-dzz.store.c" + #define COEFF_I_DCL_FILE_NAME "3d.coeffs/3d.cube.size3/coeff-I.dcl.c" #define COEFF_DX_DCL_FILE_NAME "3d.coeffs/3d.cube.size3/coeff-dx.dcl.c" #define COEFF_DY_DCL_FILE_NAME "3d.coeffs/3d.cube.size3/coeff-dy.dcl.c" diff --git a/src/GeneralizedPolynomial-Uniform/3d.cube.order3.smooth0.c b/src/GeneralizedPolynomial-Uniform/3d.cube.order3.smooth0.c index 3832386..360b0fc 100644 --- a/src/GeneralizedPolynomial-Uniform/3d.cube.order3.smooth0.c +++ b/src/GeneralizedPolynomial-Uniform/3d.cube.order3.smooth0.c @@ -32,6 +32,17 @@ #define DATA_VAR_DCL_FILE_NAME "3d.coeffs/3d.cube.size4/data-var.dcl.c" #define DATA_VAR_ASSIGN_FILE_NAME "3d.coeffs/3d.cube.size4/data-var.assign.c" +#define COEFF_I_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size4/coeff-I.store.c" +#define COEFF_DX_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size4/coeff-dx.store.c" +#define COEFF_DY_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size4/coeff-dy.store.c" +#define COEFF_DZ_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size4/coeff-dz.store.c" +#define COEFF_DXX_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size4/coeff-dxx.store.c" +#define COEFF_DXY_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size4/coeff-dxy.store.c" +#define COEFF_DXZ_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size4/coeff-dxz.store.c" +#define COEFF_DYY_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size4/coeff-dyy.store.c" +#define COEFF_DYZ_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size4/coeff-dyz.store.c" +#define COEFF_DZZ_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size4/coeff-dzz.store.c" + #define COEFF_I_DCL_FILE_NAME "3d.coeffs/3d.cube.size4/coeff-I.dcl.c" #define COEFF_DX_DCL_FILE_NAME "3d.coeffs/3d.cube.size4/coeff-dx.dcl.c" #define COEFF_DY_DCL_FILE_NAME "3d.coeffs/3d.cube.size4/coeff-dy.dcl.c" diff --git a/src/GeneralizedPolynomial-Uniform/3d.cube.order4.smooth0.c b/src/GeneralizedPolynomial-Uniform/3d.cube.order4.smooth0.c index e768f73..c43c816 100644 --- a/src/GeneralizedPolynomial-Uniform/3d.cube.order4.smooth0.c +++ b/src/GeneralizedPolynomial-Uniform/3d.cube.order4.smooth0.c @@ -32,6 +32,17 @@ #define DATA_VAR_DCL_FILE_NAME "3d.coeffs/3d.cube.size5/data-var.dcl.c" #define DATA_VAR_ASSIGN_FILE_NAME "3d.coeffs/3d.cube.size5/data-var.assign.c" +#define COEFF_I_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size5/coeff-I.store.c" +#define COEFF_DX_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size5/coeff-dx.store.c" +#define COEFF_DY_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size5/coeff-dy.store.c" +#define COEFF_DZ_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size5/coeff-dz.store.c" +#define COEFF_DXX_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size5/coeff-dxx.store.c" +#define COEFF_DXY_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size5/coeff-dxy.store.c" +#define COEFF_DXZ_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size5/coeff-dxz.store.c" +#define COEFF_DYY_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size5/coeff-dyy.store.c" +#define COEFF_DYZ_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size5/coeff-dyz.store.c" +#define COEFF_DZZ_VAR_STORE_FILE_NAME "3d.coeffs/3d.cube.size5/coeff-dzz.store.c" + #define COEFF_I_DCL_FILE_NAME "3d.coeffs/3d.cube.size5/coeff-I.dcl.c" #define COEFF_DX_DCL_FILE_NAME "3d.coeffs/3d.cube.size5/coeff-dx.dcl.c" #define COEFF_DY_DCL_FILE_NAME "3d.coeffs/3d.cube.size5/coeff-dy.dcl.c" diff --git a/src/GeneralizedPolynomial-Uniform/InterpLocalUniform.c b/src/GeneralizedPolynomial-Uniform/InterpLocalUniform.c index 76dbe4a..eba21b6 100644 --- a/src/GeneralizedPolynomial-Uniform/InterpLocalUniform.c +++ b/src/GeneralizedPolynomial-Uniform/InterpLocalUniform.c @@ -1049,7 +1049,8 @@ const int return_code &error_flags, &molecule_structure_flags, p_molecule_min_max_m_info, - p_molecule_positions); + p_molecule_positions, + NULL); /******************************************************************************/ diff --git a/src/GeneralizedPolynomial-Uniform/InterpLocalUniform.h b/src/GeneralizedPolynomial-Uniform/InterpLocalUniform.h index c3d2e4e..3939c4a 100644 --- a/src/GeneralizedPolynomial-Uniform/InterpLocalUniform.h +++ b/src/GeneralizedPolynomial-Uniform/InterpLocalUniform.h @@ -137,6 +137,15 @@ struct molecule_min_max_m_info CCTK_INT molecule_max_m[MAX_N_DIMS]; }; +struct Jacobian_info + { + CCTK_REAL* const* Jacobian_pointer; + const CCTK_INT* Jacobian_offset; + CCTK_INT Jacobian_interp_point_stride; + CCTK_INT Jacobian_m_strides[MAX_N_DIMS]; + CCTK_INT Jacobian_part_stride; + }; + /******************************************************************************/ /* diff --git a/src/GeneralizedPolynomial-Uniform/template.c b/src/GeneralizedPolynomial-Uniform/template.c index 0943c6b..31c152f 100644 --- a/src/GeneralizedPolynomial-Uniform/template.c +++ b/src/GeneralizedPolynomial-Uniform/template.c @@ -104,6 +104,22 @@ fp coeff_dx_p1_p1; @endvar + @var COEFF_{I,DX,DY,DXX,DXY,DYY,...}_VAR_STORE_FILE_NAME + @vdesc The name of a file (presumably machine-generated) containing + a sequence of C assignment statements to assign the interpolation + coefficients to the corresponding COEFF(...) expressions, + eg (for 2D size-3 molecules) + COEFF(-1,-1) = coeff_dx_m1_m1; + COEFF(0,-1) = coeff_dx_0_m1; + COEFF(1,-1) = coeff_dx_p1_m1; + COEFF(-1,0) = coeff_dx_m1_0; + COEFF(0,0) = coeff_dx_0_0; + COEFF(1,0) = coeff_dx_p1_0; + COEFF(-1,1) = coeff_dx_m1_p1; + COEFF(0,1) = coeff_dx_0_p1; + COEFF(1,1) = coeff_dx_p1_p1; + @endvar + @var DATA_VAR_ASSIGN_FILE_NAME @vdesc The name of a file (presumably machine-generated) containing a sequence of C assignment statements to assign DATA(...) to @@ -258,7 +274,7 @@ int FUNCTION_NAME(/***** coordinate system *****/ /***** interpolation points *****/ int N_interp_points, int interp_coords_type_code, - const void *const interp_coords[], + const void* const interp_coords[], const CCTK_REAL out_of_range_tolerance[], /***** input arrays *****/ int N_input_arrays, @@ -267,19 +283,20 @@ int FUNCTION_NAME(/***** coordinate system *****/ const CCTK_INT input_array_min_subscripts[], const CCTK_INT input_array_max_subscripts[], const CCTK_INT input_array_type_codes[], - const void *const input_arrays[], + const void* const input_arrays[], /***** output arrays *****/ int N_output_arrays, const CCTK_INT output_array_type_codes[], - void *const output_arrays[], + void* const output_arrays[], /***** operation info */ const CCTK_INT operand_indices[], const CCTK_INT operation_codes[], /***** other return results *****/ - struct error_flags *error_flags, - struct molecule_structure_flags *molecule_structure_flags, - struct molecule_min_max_m_info *molecule_min_max_m_info, - CCTK_INT* const molecule_positions[]) + struct error_flags* error_flags, + struct molecule_structure_flags* molecule_structure_flags, + struct molecule_min_max_m_info* molecule_min_max_m_info, + CCTK_INT* const molecule_positions[], + struct Jacobian_info* Jacobian_info) { /* * Implementation notes: @@ -333,6 +350,22 @@ int FUNCTION_NAME(/***** coordinate system *****/ * break; * case ... * } + * if (querying Jacobian) + * then { + * fp factor; + * switch (operation_code) + * { + * case 0: + * store the op=0 Jacobian values + * break; + * case 1: + * factor = inverse_dx; + * store the op=1 Jacobian values + * (multiplying by factor ) + * break; + * case ... + * } + * } * ***store*** result in output array * } * } diff --git a/src/GeneralizedPolynomial-Uniform/template.h b/src/GeneralizedPolynomial-Uniform/template.h index 0f3eaef..95e0409 100644 --- a/src/GeneralizedPolynomial-Uniform/template.h +++ b/src/GeneralizedPolynomial-Uniform/template.h @@ -12,7 +12,7 @@ int FUNCTION_NAME(/***** coordinate system *****/ /***** interpolation points *****/ int N_interp_points, int interp_coords_type_code, - const void *const interp_coords[], + const void* const interp_coords[], const CCTK_REAL out_of_range_tolerance[], /***** input arrays *****/ int N_input_arrays, @@ -21,16 +21,17 @@ int FUNCTION_NAME(/***** coordinate system *****/ const CCTK_INT input_array_min_subscripts[], const CCTK_INT input_array_max_subscripts[], const CCTK_INT input_array_type_codes[], - const void *const input_arrays[], + const void* const input_arrays[], /***** output arrays *****/ int N_output_arrays, const CCTK_INT output_array_type_codes[], - void *const output_arrays[], + void* const output_arrays[], /***** operation info */ const CCTK_INT operand_indices[], const CCTK_INT operation_codes[], /***** other return results *****/ - struct error_flags *error_flags, - struct molecule_structure_flags *molecule_structure_flags, - struct molecule_min_max_m_info *molecule_min_max_m_info, - CCTK_INT* const molecule_positions[]); + struct error_flags* error_flags, + struct molecule_structure_flags* molecule_structure_flags, + struct molecule_min_max_m_info* molecule_min_max_m_info, + CCTK_INT* const molecule_positions[], + struct Jacobian_info* Jacobian_info); |