aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/GeneralizedPolynomial-Uniform/1d.cube.order1.smooth0.c3
-rw-r--r--src/GeneralizedPolynomial-Uniform/1d.cube.order2.smooth0.c4
-rw-r--r--src/GeneralizedPolynomial-Uniform/1d.cube.order3.smooth0.c4
-rw-r--r--src/GeneralizedPolynomial-Uniform/1d.cube.order4.smooth0.c4
-rw-r--r--src/GeneralizedPolynomial-Uniform/1d.cube.order5.smooth0.c4
-rw-r--r--src/GeneralizedPolynomial-Uniform/1d.cube.order6.smooth0.c4
-rw-r--r--src/GeneralizedPolynomial-Uniform/1d.log371
-rw-r--r--src/GeneralizedPolynomial-Uniform/1d.maple2
-rw-r--r--src/GeneralizedPolynomial-Uniform/2d.cube.order1.smooth0.c4
-rw-r--r--src/GeneralizedPolynomial-Uniform/2d.cube.order2.smooth0.c7
-rw-r--r--src/GeneralizedPolynomial-Uniform/2d.cube.order3.smooth0.c7
-rw-r--r--src/GeneralizedPolynomial-Uniform/2d.cube.order4.smooth0.c7
-rw-r--r--src/GeneralizedPolynomial-Uniform/3d.cube.order1.smooth0.c5
-rw-r--r--src/GeneralizedPolynomial-Uniform/3d.cube.order2.smooth0.c11
-rw-r--r--src/GeneralizedPolynomial-Uniform/3d.cube.order3.smooth0.c11
-rw-r--r--src/GeneralizedPolynomial-Uniform/3d.cube.order4.smooth0.c11
-rw-r--r--src/GeneralizedPolynomial-Uniform/InterpLocalUniform.c3
-rw-r--r--src/GeneralizedPolynomial-Uniform/InterpLocalUniform.h9
-rw-r--r--src/GeneralizedPolynomial-Uniform/template.c47
-rw-r--r--src/GeneralizedPolynomial-Uniform/template.h15
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);