diff options
author | jthorn <jthorn@df1f8a13-aa1d-4dd4-9681-27ded5b42416> | 2002-02-27 14:28:36 +0000 |
---|---|---|
committer | jthorn <jthorn@df1f8a13-aa1d-4dd4-9681-27ded5b42416> | 2002-02-27 14:28:36 +0000 |
commit | 717d39a68230908f36b7098e66d0dd76dd067148 (patch) | |
tree | 397cda867657459ef518b65cd87def3517958253 | |
parent | ac713b27a07fa17689464ac2e9e7275169f116ea (diff) |
initial checkin of new LocalInterp thorn
git-svn-id: http://svn.cactuscode.org/arrangements/CactusBase/LocalInterp/trunk@2 df1f8a13-aa1d-4dd4-9681-27ded5b42416
303 files changed, 77878 insertions, 0 deletions
@@ -0,0 +1,31 @@ +Cactus Code Thorn LocalInterp +Authors : Jonathan Thornburg, + incorporating parts of the old PUGHInterp by Thomas Radke, + which in turn draws on older code by Paul Walker and + optimization ideas from Erik Schnetter +CVS info : $Header$ +-------------------------------------------------------------------------- + +Purpose of the thorn: + +This thorn does processor-local interpolation of N-dimensional data +arrays. In general there may be many input arrays (all defined on the +same uniform Cartesian grid) all being interpolated to the same set +of interpolation points. + +This thorn actually packages together two separate local interpolators: +* One written by Thomas Radke in early 2001, with the operators + "first order uniform cartesian", "second order uniform cartesian", + and "third order uniform cartesian", all registered under the + CCTK_InterpLocal() interpolation API. (This formerly lived in + the PUGHInterp thorn, but turned to have very little to do with + PUGH, so it's been moved here.) This lives in the subdirectory + src/UniformCartesian/ . +* One written by Jonathan Thornburg in winter 2001-2002, with the + operator "generalized polynomial interpolation" registered under + the CCTK_InterpLocalUniform() interpolation API. This lives in + the subdirectory src/GeneralizedPolynomial-Uniform/ . + +We plan to eventually phase out the CCTK_InterpLocal() API. We may +also phase out its interpolator, or we may move this to the newer +CCTK_InterpLocalArrays() API. diff --git a/archive/2d.cube.order2.smooth0.c b/archive/2d.cube.order2.smooth0.c new file mode 100644 index 0000000..34e17ca --- /dev/null +++ b/archive/2d.cube.order2.smooth0.c @@ -0,0 +1,534 @@ + /*@@ + @file 2d.cube.order2.smooth0.c + @date 23 Oct 2001 + @author Jonathan Thornburg <jthorn@aei.mpg.de> + @desc + Generalized interpolation for 2d, hypercube-shaped molecules, + order=2, smoothing=0. For details, see the header comments + for "InterpLocalArrays.c" in this directory. + @enddesc + + @version $Id$ + @@*/ + +#include <math.h> +#include <limits.h> +#include <stdlib.h> +#include <string.h> +#include <stdio.h> + +#include "util_ErrorCodes.h" +#include "cctk.h" +#include "InterpLocalArrays.h" + +/* the rcs ID and its dummy function to use it */ +static const char *rcsid = "$Header$"; +CCTK_FILEVERSION( + CactusPUGH_LocalInterp_GeneralizedPolynomial_2d_cube_order2_smooth0_c + ) + +/******************************************************************************/ + +/*@@ + @routine LocalInterp_ILA_2d_cube_ord2_sm0 + @date 23 Oct 2001 + @author Jonathan Thornburg <jthorn@aei.mpg.de> + @desc + This function does generalized interpolation of one or more + 2d arrays to arbitrary points. For details, see the header + comments for InterpLocalArrays() (in "InterpLocalArrays.c" + in this same directory). + + This function's arguments are all a subset of those of + InterpLocalArrays() ; the only difference is that this function + takes all its arguments explicitly, whereas InputLocalArrays() + takes some of them indirectly via a key/value parameter table. + + @returntype int + @returndesc This function's return result is the same as that of + InterpLocalArrays(): + 0 ==> successful interpolation + -1 ==> in case of any errors + @endreturndesc + + @@*/ +int LocalInterp_ILA_2d_cube_ord2_sm0 + (int param_table_handle, + const CCTK_REAL coord_system_origin[], + const CCTK_REAL grid_spacing[], + int N_interp_points, + const CCTK_INT interp_coord_type_codes[], + const void *const interp_coords[], + int N_input_arrays, + const CCTK_INT input_array_offsets[], + const CCTK_INT input_array_strides[], + 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[], + int N_output_arrays, + const CCTK_INT output_array_type_codes[], + void *const output_arrays[], + const CCTK_INT operand_indices[], const CCTK_INT opcodes[]) +{ +/* + * Implementation notes: + * + * The basic outline of this function is as follows: + * + * compute "which derivatives are wanted" flags + * for each interpolation point + * { + * declare all the coefficients + * declare all the data-values variables + * ***fetch*** interpolation point coordinates + * compute coefficients for all derivatives which are wanted + * for each output array + * { + * int part; + * for (part = 0 ; part <= 1 ; ++part) + * { + * if (this output array is computed + * using a different input array + * than the previous one || part != 0) + * then ***fetch*** the input array values + * into local variables + * { + * fp result; + * switch (opcode) + * { + * case 0: + * result = evaluate the interpolant + * break; + * case 1: + * result = evaluate the interpolant + * break; + * case ... + * } + * ***store*** result in output array + * bool complex_flag = is datatype complex? + * if (! complex_flag) + * then break; + * } + * } + * } + * } + * + * Here "***fetch***" and "***store***" are all actually switches on + * the various array datatypes. For complex datatypes they offset the + * 1D array position by part to handle real/imaginary components of + * the complex values. + * + * At present we do all floating-point computations in type "fp" + * (typically a typedef for CCTK_REAL), so arrays of higher precision + * than this will incur extra rounding errors. In practice these should + * be negligible compared to the "truncation" interpolation errors. + */ + +/* + * Naming conventions: + * input, output = 0-origin indices each selecting an input/output array + * point = 0-origin index selecting an interpolation point + */ + +/* + * these are compile-time constants here; InterpLocalArrays() decoded + * them and called us (as opposed to another function) based in part + * on these values + */ +#define N_DIMS 2 +#define MOLECULE_SIZE 3 + +/* layout of axes in N_dims-element arrays */ +#define X_AXIS 0 +#define Y_AXIS 1 + +/* input array size, strides, and subscripting computation */ +const int stride_i = input_array_strides[X_AXIS]; +const int stride_j = input_array_strides[Y_AXIS]; +#define SUB2(i,j) (i*stride_i + j*stride_j) + +/* macros used by machine-generated interpolation coefficient expressions */ +#define RATIONAL(num,den) (num/den) + +/* + * compute flags specifying which derivatives are wanted + */ +bool want_I = false; +bool want_dx = false, want_dy = false; + { +int output; + for (output = 0 ; output < N_output_arrays ; ++output) + { + switch (opcodes[output]) + { + case 0: want_I = true; break; + case 1: want_dx = true; break; + case 2: want_dy = true; break; + default: + CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, + "Generalized interpolation opcode %d not supported", + opcodes[output]); /*NOTREACHED*/ + return UTIL_ERROR_BAD_INPUT; /*** ERROR RETURN ***/ + } + } + } + +/* + * interpolate at each point + */ + { +int point; + for (point = 0 ; point < N_interp_points ; ++point) + { + /* declare all the interpolation coefficients */ + #include "coeffs/2d.cube.order2.smooth0.I.dcl.c" + #include "coeffs/2d.cube.order2.smooth0.dx.dcl.c" + #include "coeffs/2d.cube.order2.smooth0.dy.dcl.c" + + /* declare all the data-values variables */ + #include "coeffs/2d.cube.size3.data-var.dcl.c" + + /* + * ***fetch*** interpolation point coordinates + */ + fp interp_coords_fp[N_DIMS]; + int axis; + for (axis = 0 ; axis < N_DIMS ; ++axis) + { + /* pointer to array of interp coords for this axis */ + const void *const interp_coords_ptr = interp_coords[axis]; + + switch (interp_coord_type_codes[axis]) + { +#ifdef CCTK_REAL + case CCTK_VARIABLE_REAL: + { + const CCTK_REAL *const interp_coords_ptr_real + = (const CCTK_REAL *) interp_coords_ptr; + interp_coords_fp[axis] = interp_coords_ptr_real[point]; + break; + } +#endif +#ifdef CCTK_REAL4 + case CCTK_VARIABLE_REAL4: + { + const CCTK_REAL4 *const interp_coords_ptr_real4 + = (const CCTK_REAL4 *) interp_coords_ptr; + interp_coords_fp[axis] = interp_coords_ptr_real4[point]; + break; + } +#endif +#ifdef CCTK_REAL8 + case CCTK_VARIABLE_REAL8: + { + const CCTK_REAL8 *const interp_coords_ptr_real8 + = (const CCTK_REAL8 *) interp_coords_ptr; + interp_coords_fp[axis] = interp_coords_ptr_real8[point]; + break; + } +#endif + default: + CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, + "interp-coords datatype %d not supported", + interp_coord_type_codes[axis]); + /*NOTREACHED*/ + return UTIL_ERROR_BAD_INPUT; /*** ERROR RETURN ***/ + } + } + + /* + * locate interpolation molecules with respect to the grid, + * i.e. compute interp_rel_(x,y) + */ + { + fp interp_rel_x, interp_rel_y; /* (x,y) coordinates of interpolation */ + /* point relative to molecule center */ + /* (in units of the grid spacing) */ + const int center_i + = LocalInterp_molecule_posn(coord_system_origin[X_AXIS], + grid_spacing[X_AXIS], + input_array_min_subscripts[X_AXIS], + input_array_max_subscripts[X_AXIS], + MOLECULE_SIZE, + interp_coords_fp[X_AXIS], + &interp_rel_x, + (int *) NULL, (int *) NULL); + const int center_j + = LocalInterp_molecule_posn(coord_system_origin[Y_AXIS], + grid_spacing[Y_AXIS], + input_array_min_subscripts[Y_AXIS], + input_array_max_subscripts[Y_AXIS], + MOLECULE_SIZE, + interp_coords_fp[Y_AXIS], + &interp_rel_y, + (int *) NULL, (int *) NULL); + const int center_sub = SUB2(center_i, center_j); + + /* + * compute the coefficients for whichever derivatives are wanted + * using machine-generated coefficient expressions + * ... these expressions are polynomials in (x,y) + * ==> we need these names for the relative coordinates + * (copying to fresh local variables will likely also + * give better register allocation, since [xy]_rel + * had their addresses taken and so probably won't be + * register-allocated) + */ + const fp x = interp_rel_x; + const fp y = interp_rel_y; + if (want_I) + then { + #include "coeffs/2d.cube.order2.smooth0.I.coeff.c" + } + if (want_dx) + then { + #include "coeffs/2d.cube.order2.smooth0.dx.coeff.c" + } + if (want_dy) + then { + #include "coeffs/2d.cube.order2.smooth0.dy.coeff.c" + } + + /* + * compute each output array at this point + */ + { + int output; + const void *input_array_ptr = NULL; + for (output = 0 ; output < N_output_arrays ; ++output) + { + const int input = operand_indices[output]; + const int input_offset = input_array_offsets[input]; + + /* + * for each real/imag part of complex data values + * ... for real we'll break out of this loop at the bottom + * after only a single iteration; + * for complex we'll do both iterations + */ + int part; + for (part = 0 ; part <= 1 ; ++part) + { + if ( (input_arrays[input] != input_array_ptr) + || (part != 0) ) + then { + /* + * ***fetch*** the input array values + * into local variables + */ + input_array_ptr = input_arrays[input]; + switch (input_array_type_codes[input]) + { +#ifdef CCTK_REAL +case CCTK_VARIABLE_REAL: + { + const CCTK_REAL *const input_array_ptr_real + = (const CCTK_REAL *) input_array_ptr; + #undef DATA + #define DATA(i,j) \ + input_array_ptr_real[input_offset + center_sub + SUB2(i,j)] + #include "coeffs/2d.cube.size3.data-var.assign.c" + break; + } +#endif +#ifdef CCTK_REAL4 +case CCTK_VARIABLE_REAL4: + { + const CCTK_REAL4 *const input_array_ptr_real4 + = (const CCTK_REAL4 *) input_array_ptr; + #undef DATA + #define DATA(i,j) \ + input_array_ptr_real4[input_offset + center_sub + SUB2(i,j)] + #include "coeffs/2d.cube.size3.data-var.assign.c" + break; + } +#endif +#ifdef CCTK_REAL8 +case CCTK_VARIABLE_REAL8: + { + const CCTK_REAL8 *const input_array_ptr_real8 + = (const CCTK_REAL8 *) input_array_ptr; + #undef DATA + #define DATA(i,j) \ + input_array_ptr_real8[input_offset + center_sub + SUB2(i,j)] + #include "coeffs/2d.cube.size3.data-var.assign.c" + break; + } +#endif +#ifdef CCTK_COMPLEX +case CCTK_VARIABLE_COMPLEX: + { + const CCTK_COMPLEX *const input_array_ptr_complex + = (const CCTK_COMPLEX *) input_array_ptr; + #undef DATA + #define DATA(i,j) \ + ( (const CCTK_REAL *) \ + & input_array_ptr_complex[input_offset + center_sub + SUB2(i,j)] ) [part] + #include "coeffs/2d.cube.size3.data-var.assign.c" + break; + } +#endif +#ifdef CCTK_COMPLEX8 +case CCTK_VARIABLE_COMPLEX8: + { + const CCTK_COMPLEX8 *const input_array_ptr_complex8 + = (const CCTK_COMPLEX8 *) input_array_ptr; + #undef DATA + #define DATA(i,j) \ + ( (const CCTK_REAL4 *) \ + & input_array_ptr_complex8[input_offset + center_sub + SUB2(i,j)] ) [part] + #include "coeffs/2d.cube.size3.data-var.assign.c" + break; + } +#endif +#ifdef CCTK_COMPLEX16 +case CCTK_VARIABLE_COMPLEX16: + { + const CCTK_COMPLEX16 *const input_array_ptr_complex16 + = (const CCTK_COMPLEX16 *) input_array_ptr; + #undef DATA + #define DATA(i,j) \ + ( (const CCTK_REAL8 *) \ + & input_array_ptr_complex16[input_offset + center_sub + SUB2(i,j)] ) [part] + #include "coeffs/2d.cube.size3.data-var.assign.c" + break; + } +#endif +default: + CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, + "input datatype %d not supported", + input_array_type_codes[input]); /*NOTREACHED*/ + return UTIL_ERROR_BAD_INPUT; /*** ERROR RETURN ***/ + } + } + + /* + * evaluate the interpolant + * as a linear combination of the data variables + */ + { + fp result; + switch (opcodes[output]) + { + case 0: + result = + #include "coeffs/2d.cube.order2.smooth0.I.eval.c" + break; + case 1: + result = + #include "coeffs/2d.cube.order2.smooth0.dx.eval.c" + break; + case 2: + result = + #include "coeffs/2d.cube.order2.smooth0.dy.eval.c" + break; + default: + CCTK_VWarn(1, __LINE__, __FILE__, + CCTK_THORNSTRING, + "opcode %d not supported", + opcodes[output]); /*NOTREACHED*/ + return UTIL_ERROR_BAD_INPUT; + /*** ERROR RETURN ***/ + } + + /* + * ***store*** the result in the output array + */ + switch (output_array_type_codes[output]) + { +case CCTK_VARIABLE_REAL: + { + CCTK_REAL *const output_array_ptr_real + = (CCTK_REAL *) output_arrays[output]; + output_array_ptr_real[point] = result; + break; + } +case CCTK_VARIABLE_REAL4: + { + CCTK_REAL4 *const output_array_ptr_real4 + = (CCTK_REAL4 *) output_arrays[output]; + output_array_ptr_real4[point] = result; + break; + } +case CCTK_VARIABLE_REAL8: + { + CCTK_REAL8 *const output_array_ptr_real8 + = (CCTK_REAL8 *) output_arrays[output]; + output_array_ptr_real8[point] = result; + break; + } +case CCTK_VARIABLE_COMPLEX: + { + CCTK_COMPLEX *const output_array_ptr_complex + = (CCTK_COMPLEX *) output_arrays[output]; + ((CCTK_REAL *) & output_array_ptr_complex[point]) [part] + = result; + break; + } +case CCTK_VARIABLE_COMPLEX8: + { + CCTK_COMPLEX8 *const output_array_ptr_complex8 + = (CCTK_COMPLEX8 *) output_arrays[output]; + ((CCTK_REAL4 *) & output_array_ptr_complex8[point]) [part] + = result; + break; + } +case CCTK_VARIABLE_COMPLEX16: + { + CCTK_COMPLEX16 *const output_array_ptr_complex16 + = (CCTK_COMPLEX16 *) output_arrays[output]; + ((CCTK_REAL8 *) & output_array_ptr_complex16[point]) [part] + = result; + break; + } +default: + CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, + "output datatype %d not supported", + output_array_type_codes[output]); /*NOTREACHED*/ + return UTIL_ERROR_BAD_INPUT; /*** ERROR RETURN ***/ + } + + /* decode datatype: is it real or complex? */ + { + bool complex_flag; + switch (output_array_type_codes[output]) + { + case CCTK_VARIABLE_REAL: + case CCTK_VARIABLE_REAL4: + case CCTK_VARIABLE_REAL8: + complex_flag = false; + break; + case CCTK_VARIABLE_COMPLEX: + case CCTK_VARIABLE_COMPLEX8: + case CCTK_VARIABLE_COMPLEX16: + complex_flag = true; + break; + default: + CCTK_VWarn(1, __LINE__, __FILE__, + CCTK_THORNSTRING, + "output datatype %d not supported", + output_array_type_codes[output]); + /*NOTREACHED*/ + return UTIL_ERROR_BAD_INPUT; + /*** ERROR RETURN ***/ + } + + /* skip part=1 (imaginary part) for real datatypes */ + if (! complex_flag) + then break; + } + } + /* end of for (part = ...) loop */ + } + /* end of for (output = ...) loop */ + } + } + } + + /* end of for (point = ...) loop */ + } + +return 0; /*** NORMAL RETURN ***/ + } +} diff --git a/doc/api1 b/doc/api1 new file mode 100644 index 0000000..5bc5f22 --- /dev/null +++ b/doc/api1 @@ -0,0 +1,323 @@ +As I've explained in a recent message to the cactususers mailing list, +I'm working on a new "generalized interpolator" for Cactus, which will +be able to interpolate derivatives of grid functions as well as the +grid functions themselves. Corresponding to this, I (in consultation +with Thomas Radke and Tom Goodale) have also come up with a new design +for the Cactus interpolation API. + +The purpose of this message is to solicit comments and/or suggestions +about the new API. + + +Problems with the Current Interpolator API +========================================== + +I see two major problems with the current interpolator API +(CCTK_InterpGV() and CCTK_InterpLocal()): + +The current API uses variable argument lists to allow interpolating +many arrays in a single call. This has turned out to be somewhat +error-prone. (There is *no* compiler checking of variable argument lists!) +To allow better compiler error checking, we propose replacing all the +variable argument lists with explicit arrays of pointers. + +The current interpolator interface encodes all parameters for the +interpolator (eg things like the order) into the character-string +interpolator name. This is a bit awkward, but managable if there are +only a few parameters, all integers. But it's completely unworkable for +a generalized interpolator, which needs a whole bunch of extra parameters +to tell it what derivatives to take. Instead, we propose that a +generalized interpolator get a handle to one of the new key-value +tables, and that any extra parameters (such as "which derivatives to +take" info) be passed in the table. This makes it easy to add new +interpolation operators which take additional parameters (eg a rational +interpolator might have two order parameters, one for numerator and +one for denominator), without having to change the API. + + +The Generalized Interpolator API (version 1) +============================================ + +In more detail, here is my proposal for the new API: +(don't be scared by the length, it's not that complicated!) +(there are some examples below) + + int status = CCTK_GInterpGV(arguments described below) + int status = CCTK_GInterpLocal(arguments described below) + +arguments (both CCTK_GInterpGV() and CCTK_GInterpLocal()) + const cGH *GH; + int N_dims; + int operator_handle, int coord_system_handle; + int param_table_handle; /* handle to key-value table, see below */ + + int N_interp_points; + /* array of CCTK_VARIABLE_* codes giving data types */ + /* of arrays pointed to by interp_coords[] arrays */ + const int interp_coord_types[N_dims]; + /* array of pointers to arrays giving x,y,... coordinates of interp points */ + const void *const interp_coords[N_dims]; + + int N_input_arrays, N_output_arrays; + +for CCTK_GInterpGV(): + /* array of CCTK variable indices of input arrays */ + const int input_array_indices[N_input_arrays]; + +for CCTK_GInterpLocal(): + /* array of CCTK_VARIABLE_* codes giving data types of input arrays */ + const int input_array_types[N_input_arrays]; + /* array of input array dimensions (common to all input arrays) */ + const int input_array_dims[N_dims]; + /* array of pointers to input arrays */ + const void *const input_arrays[N_input_arrays]; + +for both functions again: + /* array of CCTK_VARIABLE_* codes giving data types of output arrays */ + const int output_array_types[N_output_arrays]; + /* array of pointers to output arrays */ + void *const output_arrays[N_output_arrays]; + +The information passed in the table would depend on the interpolation +operator. For what I am currently implementing, I will register only +a single operator, "generalized polynomial interpolation", and take the +following parameters in the table: + + int order; /* mandatory */ + +Thus the simplest call can just use Util_TableCreateFromString("order=3") +for a 3rd-order interpolation, for example. + +All the remaining parameters in the table are optional; if they're +omitted defaults will be supplied: + + const char *molecule_type; /* this selects one of a family of related */ + /* operators; the default (and the only one */ + /* I'm implementing right now) is to use the */ + /* usual hypercube-shaped molecules */ + + int smoothing; /* the way I'm implementing the interpolation */ + /* it's easy to also do Savitzky-Golay type */ + /* smoothing; this parameter gives how much */ + /* to enlarge the interpolation molecule for */ + /* this; the default is 0 (no smoothing) */ + +Optionally, the caller can specify a mask gridfn +for CCTK_GInterpGV(): + int mask_gridfn_index; +for CCTK_GInterpLocal(); + int mask_type; /* one of the CCTK_VARIABLE_* codes */ + const void *const mask_array; +and the range of values for the mask which correspond to valid points: + CCTK_REAL mask_min, mask_max; /* valid <--> closed interval [min,max] */ + +And last but not least, optionally, the caller can specify taking +derivatives as part of the interpolation: + const int operand_indices[N_output_arrays]; + const int opcodes[N_output_arrays]; +The semantics here are that + output array[i] = op(input array[ operand_indices[i] ]) +where op is specified as an integer operation code +(we'll put #defines for these in one of the cctk header files). +Note that the array operand_indices[] doesn't directly name the inputs, +but rather gives the indices in the list of inputs. This allows for a +more efficient implementation in the case where some of the input arrays +have many different operations applied to them. + + + +Pointers in Fortran +=================== + +One possible problem area with this API is that it requires creating +arrays of pointers pointing to other arrays. In C this is no problem, +but in Fortran 77 this is difficult. So, I propose adding a new Cactus +function pointer_to() to make this easier for Fortran users: + + CCTK_POINTER pointer_to(any array in your code) + +This would be #defined to %loc on those compilers which have that +extension to standard Fortran, or would be a Cactus-provided utility +routine for other cases. It's trivial to write the latter case in C +so long as the Fortran compiler actually uses call by reference, as +almost all Fortran compilers do anyway for arrays. + + + +A Simple Example +================ + +Here's a simple example, written in Fortran 77, interpolating a real +and a complex grid function in 3D: + +c +c input grid functions: +c real_gridfn (CCTK_REAL) +c complex_gridfn (CCTK_COMPLEX) +c +c interpolation coordinates +c xcoord, ycoord, zcoord (CCTK_REAL arrays of size N) +c +c output arrays: +c real_at_xyz (CCTK_REAL array of size N) +c complex_at_xyz (CCTK_COMPLEX array of size N) +c + integer status + CCTK_POINTER input_gridfn_indices(2) + integer interp_coord_types(3) + CCTK_POINTER interp_coords(3) + integer output_array_types(2) + CCTK_POINTER output_arrays(2) + + call CCTK_VarIndex(input_gridfn_indices(1), "mythorn::real_gridfn") + call CCTK_VarIndex(input_gridfn_indices(2), "mythorn::complex_gridfn") + +c could also initialize this with a DATA statement + interp_coord_types(1) = CCTK_VARIABLE_REAL + interp_coord_types(2) = CCTK_VARIABLE_REAL + interp_coord_types(3) = CCTK_VARIABLE_REAL + interp_coords(1) = pointer_to(xcoord) + interp_coords(2) = pointer_to(ycoord) + interp_coords(3) = pointer_to(zcoord) +c could also initialize this with a DATA statement + output_array_types(1) = CCTK_VARIABLE_REAL + output_array_types(2) = CCTK_VARIABLE_COMPLEX + output_arrays(1) = pointer_to(real_at_xyz) + output_arrays(2) = pointer_to(complex_at_xyz) + call CCTK_InterpGV(status, + cctk_GH, + 3, # number of dimensions + operator_handle, coord_system_handle, + Util_TableCreateFromString("order=3"), + N, interp_coord_types, interp_coords, + 2, 2, # number of input/output arrays + input_gridfn_indices, + output_array_types, output_arrays); + if (status .lt. 0) then +c help, an error occured! + end if + + + +A More Complicated Example +========================== + +Here's a more complicated example, written in C++. (I'm really only using +C++ to get cleaner initialization of the various arrays, this is still +"almost C".) This example is a simplified form of what I will be doing +in my new apparent horizon finder: + +// +// input grid functions (12 of them, all 3D CCTK_REAL): +// gxx, gxy, gxz, gyy, gyz, gzz, +// Kxx, Kxy, Kxz, Kyy, Kyz, Kzz +// +// interpolation coordinates: +// xcoord, ycoord, zcoord (CCTK_REAL arrays of size N) +// +// output arrays (30 of them, all 3D CCTK_REAL) +// (interpolate the gij and Kij, also interpolate all first derivs of the gij) +// I_gxx, dx_gxx, dy_gxx, dz_gxx, +// I_gxy, dx_gxy, dy_gxy, dz_gxy, +// I_gxz, dx_gxz, dy_gxz, dz_gxz, +// I_gyy, dx_gyy, dy_gyy, dz_gyy, +// I_gyz, dx_gyz, dy_gyz, dz_gyz, +// I_gzz, dx_gzz, dy_gzz, dz_gzz, +// I_Kxx, I_Kxy, I_Kxz, I_Kyy, I_Kyz, I_Kzz, +// + +const int gxx_index = CCTK_VarIndex("somethorn::gxx"); +const int gxy_index = CCTK_VarIndex("somethorn::gxy"); +const int gxz_index = CCTK_VarIndex("somethorn::gxz"); +const int gyy_index = CCTK_VarIndex("somethorn::gyy"); +const int gyz_index = CCTK_VarIndex("somethorn::gyz"); +const int gzz_index = CCTK_VarIndex("somethorn::gzz"); +const int Kxx_index = CCTK_VarIndex("somethorn::Kxx"); +const int Kxy_index = CCTK_VarIndex("somethorn::Kxy"); +const int Kxz_index = CCTK_VarIndex("somethorn::Kxz"); +const int Kyy_index = CCTK_VarIndex("somethorn::Kyy"); +const int Kyz_index = CCTK_VarIndex("somethorn::Kyz"); +const int Kzz_index = CCTK_VarIndex("somethorn::Kzz"); + +const int N_dims = 3; +int interp_coord_types[N_dims] + = { CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL }; +const void *const interp_coords[N_dims] + = { (const void *) &xcoord, + (const void *) &ycoord, + (const void *) &zcoord }; + +const int N_input_arrays = 12; +int input_array_types[N_input_arrays] + = { CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL }; + +const int N_output_arrays = 30; +int output_array_types[N_output_arrays]; + for (int oi = 0 ; oi < N_output_arrays ; ++oi) + { + output_array_types[oi] = CCTK_VARIABLE_REAL; + } + +#define VP(x) static_cast<void *>(x) +void *const output_arrays[N_output_arrays] + = { + VP(I_gxx), VP(dx_gxx), VP(dy_gxx), VP(dz_gxx), + VP(I_gxy), VP(dx_gxy), VP(dy_gxy), VP(dz_gxy), + VP(I_gxz), VP(dx_gxz), VP(dy_gxz), VP(dz_gxz), + VP(I_gyy), VP(dx_gyy), VP(dy_gyy), VP(dz_gyy), + VP(I_gyz), VP(dx_gyz), VP(dy_gyz), VP(dz_gyz), + VP(I_gzz), VP(dx_gzz), VP(dy_gzz), VP(dz_gzz), + VP(I_Kxx), VP(I_Kxy), VP(I_Kxz), VP(I_Kyy), VP(I_Kyz), VP(I_Kzz), + }; + +int operand_indices[N_output_arrays]; + = { + gxx_index, gxx_index, gxx_index, gxx_index, + gxy_index, gxy_index, gxy_index, gxy_index, + gxz_index, gxz_index, gxz_index, gxz_index, + gyy_index, gyy_index, gyy_index, gyy_index, + gyz_index, gyz_index, gyz_index, gyz_index, + gzz_index, gzz_index, gzz_index, gzz_index, + Kxx_index, Kxy_index, Kxz_index, Kyy_index, Kyz_index, Kzz_index, + }; + +const int op_I = CCTK_INTERP_OPCODE_I; +const int op_dx = CCTK_INTERP_OPCODE_DX; +const int op_dy = CCTK_INTERP_OPCODE_DY; +const int op_dz = CCTK_INTERP_OPCODE_DZ; +int opcodes[N_output_arrays] + = { + op_I, op_dx, op_dy, op_dz, + op_I, op_dx, op_dy, op_dz, + op_I, op_dx, op_dy, op_dz, + op_I, op_dx, op_dy, op_dz, + op_I, op_dx, op_dy, op_dz, + op_I, op_dx, op_dy, op_dz, + op_I, op_I, op_I, op_I, op_I, op_I, + }; + +int param_table_handle = Util_TableCreate(UTIL_TABLE_DEFAULT); +Util_TableSet1Int(param_table_handle, + 3, "order"); +Util_TableSetInt(param_table_handle, + N_output_arrays, operand_indices, "operand_indices"); +Util_TableSetInt(param_table_handle, + N_output_arrays, opcodes, "opcodes"); + +int status = CCTK_GInterpGV(GH, + N_dims, + operator_handle, coord_system_handle, + param_table_handle, + N_interp_points, interp_coord_types, interp_coords, + N_input_arrays, N_output_arrays, + input_array_indices, + output_array_types, output_arrays); +if (status < 0) + { /* something bad happened */ } +Util_TableDestroy(param_table_handle); + + + diff --git a/doc/api2 b/doc/api2 new file mode 100644 index 0000000..422be0d --- /dev/null +++ b/doc/api2 @@ -0,0 +1,460 @@ +This is version 2 of my proposal for the new interpolator API. The +main changes since version 1 are +* function names have changed (longer, more descriptive) +* output arrays may now be N-dimensional (before they were only 1-D) +* a bunch more optional stuff in the table to specify array strides etc + +Don't be scared by the length, for most uses it's not that complicated! +There are some examples below... + + + +Synopsis +======== + + int status = CCTK_InterpLocalArrays(arguments described below) + int status = CCTK_InterpGridArrays(arguments described below) + +return is 0 for ok, various -ve values for error codes + + + +Function Arguments +================== + +for both CCTK_InterpLocalArrays() and CCTK_InterpGridArrays(): + /***** misc arguments *****/ + const cGH *GH; + /* note N_dims is the number of dimensions in the *interpolation*; */ + /* this may be smaller than the number of dimensions of the input arrays */ + /* if the storage indexing is set up appropriately (eg to interpolate */ + /* in 1-D lines or 2-D planes of 3-D grid arrays) */ + int N_dims; + int operator_handle, int coord_system_handle; + int param_table_handle; /* handle to "parameter table", a key-value */ + /* table, see below for table entries */ + + /***** arguments specifying the interpolation points *****/ + int N_interp_points; + /* array of CCTK_VARIABLE_* codes giving the data types */ + /* of the arrays pointed to by interp_coords[] */ + const int interp_coord_type_codes[N_dims]; + /* array[N_dims] of pointers to arrays[N_interp_points] */ + /* giving x,y,z,... coordinates of interpolation points */ + const void *const interp_coords[N_dims]; + + /***** arguments specifying the inputs (the data to be interpolated) *****/ + int N_input_arrays; +for CCTK_InterpLocalArrays(): + /* array of CCTK_VARIABLE_* codes giving data types of input arrays */ + const int input_array_type_codes[N_input_arrays]; + /* array of input array dimensions (common to all input arrays) */ + const int input_array_dims[N_dims]; + /* array of pointers to input arrays */ + const void *const input_arrays[N_input_arrays]; +for CCTK_InterpGridArrays(): + /* array of CCTK variable indices of input arrays */ + const int input_array_variable_indices[N_input_arrays]; + +for both CCTK_InterpLocalArrays() and CCTK_InterpGridArrays() again: + /***** arguments specifying the outputs (the interpolation results) *****/ + int N_output_arrays; + /* array of CCTK_VARIABLE_* codes giving data types of output arrays */ + const int output_array_type_codes[N_output_arrays]; + /* array[N_output_arrays] of pointers to output arrays[N_interp_points] */ + void *const output_arrays[N_output_arrays]; + + + +Information Passed in the Parameter Table +========================================= + +The "parameter table" may be used to specify non-default storage indexing +for input or output arrays, and/or various options for the interpolation +itself. Some interpolators may not implement all of these options. + + +Storage Indexing Options +------------------------ + +Sometimes one of the "arrays" used by the interpolator isn't contiguous +in memory. For example, we might want to do 2-D interpolation within a +plane of a 3-D grid array, and/or the grid array might be a member of a +compact group. To support this, we use several optional table entries +(these should be supported by all interpolation operators): + +For the input arrays, we use + + const int input_array_offsets[N_input_arrays]; + /* next 3 table entries are shared by all input arrays */ + const int input_array_strides [N_dims]; + const int input_array_min_subscripts[N_dims]; + const int input_array_max_subscripts[N_dims]; + +Then for input array number a, the generic subscripting expression for +the 3-D case is + data_pointer[offset + i*istride + j*jstride + k*kstride] +where + data_pointer = input_arrays[a] + offset = input_array_offsets[a] + (istride,jstride,kstride) = input_array_stride[] +and where (i,j,k) run from input_array_min_subscripts[] to +input_array_max_subscripts[] inclusive. + +The defaults are offset=0, stride=determined from input_array_dims[] +in the usual Fortran manner, input_array_min_subscripts[] = 0, +input_array_max_subscripts[] = input_array_dims[]-1. If the stride +and max subscript are both specified explicitly, then the +input_array_dims[] function argument is ignored. + +For CCTK_InterpGridArrays() operating on a member of a compact group +the offset and strides are interpreted in units of _grid_points_. This +has the advantage that interpolator calls need not be changed if a grid +array is changed from being simple to/from compact. In terms of actual +memory addressing, then, the internal subscripting expression for this +case would be + group_data_pointer[offset + member_number + i*istride*N_members + + j*jstride*N_members + + k*kstride*N_members] + +By default the interpolation-point coordinates and the output arrays +are all contiguous 1-D arrays. This may be changed with the table +entries + + const int interp_coords_offsets[N_dims]; + const int output_array_offsets[N_output_arrays]; + /* next 4 table entries are shared by all interp coords and output arrays */ + const int interp_point_N_dims; + const int interp_point_strides [interp_point_N_dims]; + const int interp_point_min_subscripts[interp_point_N_dims]; + const int interp_point_max_subscripts[interp_point_N_dims]; + +For example, if we wanted to do 3-D interpolation, interpolating a value +at each non-ghost-zone point of a 2-D grid of points, with the grid point +coordinates stored as 2-D arrays, we would use + N_dims = 3 + interp_point_N_dims = 2 + interp_point_strides[] = set up from the full size of the 2-D grid + interp_point_{min,max}_subscripts[] = specify the non-ghost-zone points + of the 2-D grid + +Excision Options +---------------- + +Some interpolators may specifically support excision, where a mask array +(same dimensionality and indexing as the input arrays) is used to mark +some grid points as valid (ok to use data there) and other grid points +as invalid (the interpolator isn't allowed to use data there). + +If an interpolator supports this, it should use the following optional +parameters: + +for CCTK_InterpLocalArrays(); + const int mask_type_code; /* one of the CCTK_VARIABLE_* codes */ + const void *const mask_array; +for CCTK_InterpGridArrays(): + const int mask_variable_index; + +for both CCTK_InterpLocalArrays() and CCTK_InterpGridArrays(): + /* we consider a grid point to be valid if and only if the mask */ + /* has a value in the closed interval [mask_valid_min,mask_valid_max] */ + /* n.b. the caller should beware of possible rounding problems here; */ + /* it may be appropriate to widen the valid interval slightly */ + /* if the endpoints aren't exactly-representable floating-point */ + /* values */ + const mask_type mask_valid_min, mask_valid_max; + +The same type of storage options supported for the input and/or output +arrays, are also supported for the mask; the mask may have its own offset, +but shares any input-array stride and/or min/max subscript specification: + + const int mask_offset; + + +The remaining parameter-table options are specific to the new interpolator +I'm currently implementing for PUGHInterp. This registers (only) a single +operator, "generalized polynomial interpolation". + + +Interpolation Order and Molecule Family +--------------------------------------- + +The mandatory parameter + + const int order; + +sets the order of the interpolating polynomial (1=linear, 2=quadratic, +3=cubic, etc). Thus the simplest call can just use (eg) + Util_TableCreateFromString("order=3") +for cubic interpolation. + +All the remaining parameters in the table are optional; if they're +omitted defaults will be supplied. + + /* this selects one of a family of related operators */ + /* the default (and the only one I'm implementing right now) */ + /* is "cube" to use the usual hypercube-shaped molecules */ + const char *const molecule_family; + +Smoothing +--------- + +The way I'm implementing the interpolation it's easy to also do +Savitzky-Golay type smoothing (= moving least-square fitting, cf +Numerical Recipes 2nd edition section 14.8). This is controlled by +the parameter + + const int smoothing; + +which says how much (how many points) to enlarge the interpolation +molecule for this. The default is 0 (no smoothing). 1 would mean to +enlarge the molecule by 1 point, e.g. to use a 5-point molecule instead +of the usual 4-point one for cubic interpolation. 2 would mean to +enlarge by 2 points, e.g. to use a 6-point molecule for cubic +interpolation. Etc etc. + +This type of smoothing is basically free apart from the increase in +the molecule size, e.g. a smoothing=2 cubic interpolation has exactly +the same cost as any other 6-point-molecule interpolation. + +Derivatives +----------- + +This interpolator can optionally (and again at no extra cost) take +partial derivatives as part of the interpolation: + const int operand_indices[N_output_arrays]; + const int opcodes [N_output_arrays]; +The semantics here are that + output array[i] = op(input array[ operand_indices[i] ]) +where op is specified as an integer operation code as described below. + +Note that the array operand_indices[] doesn't directly name the inputs, +but rather gives the indices (0-origin) in the list of inputs. This +allows for a more efficient implementation in the case where some of +the input arrays have many different operations applied to them. + +The operations are coded based on the decimal digits of the integer: +each decimal digit means to take the derivative in that direction; +the order of the digits in a number is ignored. For example: + 0 = no derivative, "just" interpolate + 1 = interpolate d/dx1 (derivative along x1 coordinate) + 2 = interpolate d/dx2 (derivative along x2 coordinate) + 11 = interpolate d^2/dx1^2 (2nd derivative along x1 coordinate) + 22 = interpolate d^2/dx2^2 (2nd derivative along x2 coordinate) + 12 = 21 = interpolate d^2/dx1 dx2 (mixed 2nd partial derivative in x1 and x2) + 122 = 212 = 221 = interpolate d^3/dx1 dx2^2 (mixed 3rd partial derivative) + 222 = interpolate d^3/dx2^3 (3rd derivative along x2 coordinate) + 123 = 132 = 213 = 231 = 312 = 321 + = interpolate d^3/dx1 dx2 dx3 (mixed 3rd partial derivative) + + + +Pointers in Fortran +=================== + +One possible problem area with this API is that it requires creating +arrays of pointers pointing to other arrays. In C this is no problem, +but in Fortran 77 this is difficult. So, I propose adding two new Cactus +functions to make this easier for Fortran users: + + CCTK_POINTER Util_PointerTo(any Fortran variable or array) + CCTK_POINTER Util_NullPointer() + +Util_PointerTo would be #defined to %loc on those compilers which have +that extension to standard Fortran, or would be a Cactus-provided utility +routine for other cases. It's trivial to write the latter case in C so +long as the Fortran compiler actually uses call by reference; I've never +heard of a Fortran compiler doing otherwise for arrays. (And even for +Fortran scalar variables it would be very hard for a compiler to do otherwise +in light of separate compilation and 1-element arrays being allowed to be +passed to/from scalar variables.) + + + +A Simple Example +================ + +Here's a simple example, written in Fortran 77, to do quadratic interpolation +of a real and a complex local array in 3-D: + +c input arrays: + integer ni, nj, nk + parameter (ni=..., nj=..., nk=...) + CCTK_REAL real_gridfn (ni,nj,nk) + CCTK_COMPLEX complex_gridfn(ni,nj,nk) + +c interpolation coordinates + integer N_interp + parameter (N_interp = ...) + CCTK_REAL xcoord(N_interp), y_coord(N_interp), z_coord(N_interp) + +c output arrays: + CCTK_REAL real_at_xyz (N_interp) + CCTK_COMPLEX complex_at_xyz(N_interp) + + integer status, dummy + integer input_array_type_codes(2) + data input_array_type_codes /CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_COMPLEX/ + integer input_array_dims(3) + CCTK_POINTER input_arrays(2) + integer interp_coord_type_codes(3) + data interp_coord_type_codes /CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL/ + CCTK_POINTER interp_coords(3) + integer output_array_type_codes(2) + data output_array_type_codes /CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_COMPLEX/ + CCTK_POINTER output_arrays(2) + + input_array_dims(1) = ni + input_array_dims(2) = nj + input_array_dims(3) = nk + interp_coords(1) = Util_PointerTo(xcoord) + interp_coords(2) = Util_PointerTo(ycoord) + interp_coords(3) = Util_PointerTo(zcoord) + output_arrays(1) = Util_PointerTo(real_at_xyz) + output_arrays(2) = Util_PointerTo(complex_at_xyz) + + call CCTK_InterpLocalArrays + $ (status, ! return code + cctk_GH, + 3, ! number of dimensions + operator_handle, coord_system_handle, + Util_TableCreateFromString("order=2"), + N_interp, + interp_coord_type_codes, interp_coords, + 2, ! number of input arrays + input_array_type_codes, input_array_dims, input_arrays, + 2, ! number of output arrays + output_array_type_codes, output_arrays) + + if (status .lt. 0) then + call CCTK_WARN(status, "Error return from interpolator!") + call CCTK_Exit(dummy, GH, status) + end if + + + +A More Complicated Example +========================== + +Here's a more complicated example, written in C++. (I'm really only using +C++ to get cleaner initialization of the various arrays, this is still +"almost C".) This example is a simplified form of what I will be doing +in my new apparent horizon finder: + +// +// input grid functions (12 of them, all 3-D CCTK_REAL): +// gxx, gxy, gxz, gyy, gyz, gzz, +// Kxx, Kxy, Kxz, Kyy, Kyz, Kzz +// +// interpolation coordinates: +// xcoord, ycoord, zcoord (all CCTK_REAL[N_interp_points]) +// +// we want to interpolate the gij and Kij, and also interpolate all the +// first derivatives of the gij, so the output arrays are +// (30 of them, all CCTK_REAL[N_interp_points]) +// I_gxx, dx_gxx, dy_gxx, dz_gxx, +// I_gxy, dx_gxy, dy_gxy, dz_gxy, +// I_gxz, dx_gxz, dy_gxz, dz_gxz, +// I_gyy, dx_gyy, dy_gyy, dz_gyy, +// I_gyz, dx_gyz, dy_gyz, dz_gyz, +// I_gzz, dx_gzz, dy_gzz, dz_gzz, +// I_Kxx, I_Kxy, I_Kxz, I_Kyy, I_Kyz, I_Kzz +// + +#define VP(x) static_cast<void *>(x) + +const int N_dims = 3; +const int interp_coord_type_codes[N_dims] + = { CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL }; +const void *const interp_coords[N_dims] + = { VP(xcoord), VP(ycoord), VP(zcoord) }; + +const int N_input_arrays = 12; +const int input_array_types[N_input_arrays] + = { CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL }; + +const int input_array_variable_indices[N_input_arrays] + = { CCTK_VarIndex("somethorn::gxx"), + CCTK_VarIndex("somethorn::gxy"), + CCTK_VarIndex("somethorn::gxz"), + CCTK_VarIndex("somethorn::gyy"), + CCTK_VarIndex("somethorn::gyz"), + CCTK_VarIndex("somethorn::gzz"), + CCTK_VarIndex("somethorn::Kxx"), + CCTK_VarIndex("somethorn::Kxy"), + CCTK_VarIndex("somethorn::Kxz"), + CCTK_VarIndex("somethorn::Kyy"), + CCTK_VarIndex("somethorn::Kyz"), + CCTK_VarIndex("somethorn::Kzz") }; + +const int N_output_arrays = 30; +int output_array_type_codes[N_output_arrays]; + for (int oi = 0 ; oi < N_output_arrays ; ++oi) + { + output_array_type_codes[oi] = CCTK_VARIABLE_REAL; + } + +void *const output_arrays[N_output_arrays] + = { + VP(I_gxx), VP(dx_gxx), VP(dy_gxx), VP(dz_gxx), + VP(I_gxy), VP(dx_gxy), VP(dy_gxy), VP(dz_gxy), + VP(I_gxz), VP(dx_gxz), VP(dy_gxz), VP(dz_gxz), + VP(I_gyy), VP(dx_gyy), VP(dy_gyy), VP(dz_gyy), + VP(I_gyz), VP(dx_gyz), VP(dy_gyz), VP(dz_gyz), + VP(I_gzz), VP(dx_gzz), VP(dy_gzz), VP(dz_gzz), + VP(I_Kxx), VP(I_Kxy), VP(I_Kxz), VP(I_Kyy), VP(I_Kyz), VP(I_Kzz) + }; + +const int operand_indices[N_output_arrays]; + = { + 0, 0, 0, 0, // gxx + 1, 1, 1, 1, // gxy + 2, 2, 2, 2, // gxz + 3, 3, 3, 3, // gyy + 4, 4, 4, 4, // gyz + 5, 5, 5, 5, // gzz + 6, 7, 8, 9, 10, 11 // Kxx-Kzz + }; + +const int opcodes[N_output_arrays] + = { + 0, 1, 2, 3, // I, dx, dy, dz + 0, 1, 2, 3, // I, dx, dy, dz + 0, 1, 2, 3, // I, dx, dy, dz + 0, 1, 2, 3, // I, dx, dy, dz + 0, 1, 2, 3, // I, dx, dy, dz + 0, 1, 2, 3, // I, dx, dy, dz + 0, 0, 0, 0, 0, 0 // all I + }; + +int param_table_handle = Util_TableCreate(UTIL_TABLE_DEFAULT); +Util_TableSet1Int(param_table_handle, + 3, "order"); +Util_TableSetInt(param_table_handle, + N_output_arrays, operand_indices, "operand_indices"); +Util_TableSetInt(param_table_handle, + N_output_arrays, opcodes, "opcodes"); + +int status = CCTK_InterpGridArrays(GH, + N_dims, + operator_handle, coord_system_handle, + param_table_handle, + N_interp_points, + interp_coord_type_codes, interp_coords, + N_input_arrays, + input_array_variable_indices, + N_output_arrays, + output_array_type_codes, output_arrays); +if (status < 0) + { + CCTK_WARN(status, "error return from CCTK_InterpGridArrays()!"); + CCTK_Exit(GH, status); /*NOTREACHED*/ + } +Util_TableDestroy(param_table_handle); diff --git a/doc/api2.1 b/doc/api2.1 new file mode 100644 index 0000000..e316aba --- /dev/null +++ b/doc/api2.1 @@ -0,0 +1,488 @@ +Author: Jonathan Thornburg <jthorn@aei.mpg.de> +Date: December 2001 + +This is version 2.1 of my proposal for the new interpolator API. The +main changes since version 1 are +* function names have changed (longer, more descriptive) +* output arrays may now be N-dimensional (before they were only 1-D) +* a bunch more optional stuff in the table to specify array strides etc +* no #defines in the header file for derivative operation codes +* int arrays changed to CCTK_INT + +Don't be scared by the length, for most uses it's not that complicated! +There are some examples below... + + + +Synopsis +======== + + int status = CCTK_InterpLocalArrays(arguments described below) + int status = CCTK_InterpGridArrays(arguments described below) + +return is 0 for ok, various -ve values for error codes + +(N.b. the flesh APIs to register interpolation operators will also need +their C function prototypes changed to match the changes here.) + + + +Function Arguments +================== + + /***** misc arguments *****/ +for CCTK_InterpGridArrays() only: + const cGH *GH; +for both CCTK_InterpLocalArrays() and CCTK_InterpGridArrays(): + /* note N_dims is the number of dimensions in the *interpolation*; */ + /* this may be smaller than the number of dimensions of the input arrays */ + /* if the storage indexing is set up appropriately (eg to interpolate */ + /* in 1-D lines or 2-D planes of 3-D grid arrays) */ + int N_dims; + int operator_handle; + int param_table_handle; /* handle to "parameter table", a key-value */ + /* table, see below for table entries */ + + /***** arguments specifying the coordinate system *****/ +for CCTK_InterpLocalArrays(): + /* the local coordinate system is specified as a generic linear mapping */ + /* from (integer) local input array subscripts --> (global) coordinates: */ + /* coordinate = coord_system_origin[axis] + subscript*grid_spacing[axis] */ + const CCTK_REAL coord_system_origin[N_dims]; /* coords of subscript 0 */ + const CCTK_REAL grid_spacing[N_dims]; +for CCTK_InterpGridArrays(): + int coord_system_handle; /* handle to Cactus coordinate system */ + /* specifying mapping of */ + /* (integer) input array subscripts */ + /* <--> (floating point) coordinates */ + + /***** arguments specifying the interpolation points *****/ + int N_interp_points; + /* (pointer to) array of CCTK_VARIABLE_* codes giving the */ + /* data types of the arrays pointed to by interp_coords[] */ + const CCTK_INT interp_coord_type_codes[N_dims]; + /* (pointer to) array[N_dims] of pointers to arrays[N_interp_points] */ + /* giving x,y,z,... coordinates of interpolation points */ + const void *const interp_coords[N_dims]; + + /***** arguments specifying the inputs (the data to be interpolated) *****/ + int N_input_arrays; +for CCTK_InterpLocalArrays(): + /* array of input array dimensions (common to all input arrays) */ + const CCTK_INT input_array_dims[N_dims]; + /* array of CCTK_VARIABLE_* codes giving data types of input arrays */ + const CCTK_INT input_array_type_codes[N_input_arrays]; + /* array of pointers to input arrays */ + const void *const input_arrays[N_input_arrays]; +for CCTK_InterpGridArrays(): + /* array of CCTK variable indices of input arrays */ + const CCTK_INT input_array_variable_indices[N_input_arrays]; + +for both CCTK_InterpLocalArrays() and CCTK_InterpGridArrays() again: + /***** arguments specifying the outputs (the interpolation results) *****/ + int N_output_arrays; + /* array of CCTK_VARIABLE_* codes giving data types of output arrays */ + const CCTK_INT output_array_type_codes[N_output_arrays]; + /* array[N_output_arrays] of pointers to output arrays[N_interp_points] */ + void *const output_arrays[N_output_arrays]; + + + +Information Passed in the Parameter Table +========================================= + +The "parameter table" may be used to specify non-default storage indexing +for input or output arrays, and/or various options for the interpolation +itself. Some interpolators may not implement all of these options. + + +Subscripting Options +-------------------- + +Sometimes one of the "arrays" used by the interpolator isn't contiguous +in memory. For example, we might want to do 2-D interpolation within a +plane of a 3-D grid array, and/or the grid array might be a member of a +compact group. To support this, we use several optional table entries +(these should be supported by all interpolation operators): + +For the input arrays, we use + + const CCTK_INT input_array_offsets[N_input_arrays]; + /* next 3 table entries are shared by all input arrays */ + const CCTK_INT input_array_strides [N_dims]; + const CCTK_INT input_array_min_subscripts[N_dims]; + const CCTK_INT input_array_max_subscripts[N_dims]; + +Then for input array number a, the generic subscripting expression for +the 3-D case is + data_pointer[offset + i*istride + j*jstride + k*kstride] +where + data_pointer = input_arrays[a] + offset = input_array_offsets[a] + (istride,jstride,kstride) = input_array_stride[] +and where (i,j,k) run from input_array_min_subscripts[] to +input_array_max_subscripts[] inclusive. + +The defaults are offset=0, stride=determined from input_array_dims[] +in the usual Fortran manner, input_array_min_subscripts[] = 0, +input_array_max_subscripts[] = input_array_dims[]-1. If the stride +and max subscript are both specified explicitly, then the +input_array_dims[] function argument is ignored. + +For CCTK_InterpGridArrays() operating on a member of a compact group +the offset and strides are interpreted in units of _grid_points_. This +has the advantage that interpolator calls need not be changed if a grid +array is changed from being simple to/from compact. In terms of actual +memory addressing, then, the internal subscripting expression for this +case would be + group_data_pointer[offset + member_number + i*istride*N_members + + j*jstride*N_members + + k*kstride*N_members] + +By default the interpolation-point coordinates and the output arrays +are all contiguous 1-D arrays. This may be changed with the table +entries + + const CCTK_INT interp_coords_offsets[N_dims]; + const CCTK_INT output_array_offsets[N_output_arrays]; + /* next 4 table entries are shared by all interp coords and output arrays */ + const CCTK_INT interp_point_N_dims; + const CCTK_INT interp_point_strides [interp_point_N_dims]; + const CCTK_INT interp_point_min_subscripts[interp_point_N_dims]; + const CCTK_INT interp_point_max_subscripts[interp_point_N_dims]; + +For example, if we wanted to do 3-D interpolation, interpolating a value +at each non-ghost-zone point of a 2-D grid of points, with the grid point +coordinates stored as 2-D arrays, we would use + N_dims = 3 + interp_point_N_dims = 2 + interp_point_strides[] = set up from the full size of the 2-D grid + interp_point_{min,max}_subscripts[] = specify the non-ghost-zone points + of the 2-D grid + +Excision Options +---------------- + +Some interpolators may specifically support excision, where a mask array +(same dimensionality and indexing as the input arrays) is used to mark +some grid points as valid (ok to use data there) and other grid points +as invalid (the interpolator isn't allowed to use data there). + +If an interpolator supports this, it should use the following optional +parameters: + +for CCTK_InterpLocalArrays(); + const CCTK_INT mask_type_code; /* one of the CCTK_VARIABLE_* codes */ + const void *const mask_array; /* same dimensions/indexing as input arrays */ +for CCTK_InterpGridArrays(): + const CCTK_INT mask_variable_index; + +for both CCTK_InterpLocalArrays() and CCTK_InterpGridArrays(): + /* we consider a grid point to be valid if and only if the mask */ + /* has a value in the closed interval [mask_valid_min,mask_valid_max] */ + /* n.b. the caller should beware of possible rounding problems here; */ + /* it may be appropriate to widen the valid interval slightly */ + /* if the endpoints aren't exactly-representable floating-point */ + /* values */ + const mask_type mask_valid_min, mask_valid_max; + +The same type of storage options supported for the input and/or output +arrays, are also supported for the mask; the mask may have its own offset, +but shares any input-array stride and/or min/max subscript specification: + + const CCTK_INT mask_offset; + + +The remaining parameter-table options are specific to the new interpolator +I'm currently implementing for PUGHInterp. This registers (only) a single +operator, "generalized polynomial interpolation". + + +Interpolation Order and Molecule Family +--------------------------------------- + +The mandatory parameter + + const CCTK_INT order; + +sets the order of the interpolating polynomial (1=linear, 2=quadratic, +3=cubic, etc). Thus the simplest call can just use (eg) + Util_TableCreateFromString("order=3") +for cubic interpolation. + +All the remaining parameters in the table are optional; if they're +omitted defaults will be supplied. + + /* this selects one of a family of related operators */ + /* the default (and the only one I'm implementing right now) */ + /* is "cube" to use the usual hypercube-shaped molecules */ + const char *const molecule_family; + +Smoothing +--------- + +The way I'm implementing the interpolation it's easy to also do +Savitzky-Golay type smoothing (= moving least-square fitting, cf +Numerical Recipes 2nd edition section 14.8). This is controlled by +the parameter + + const CCTK_INT smoothing; + +which says how much (how many points) to enlarge the interpolation +molecule for this. The default is 0 (no smoothing). 1 would mean to +enlarge the molecule by 1 point, e.g. to use a 5-point molecule instead +of the usual 4-point one for cubic interpolation. 2 would mean to +enlarge by 2 points, e.g. to use a 6-point molecule for cubic +interpolation. Etc etc. + +This type of smoothing is basically free apart from the increase in +the molecule size, e.g. a smoothing=2 cubic interpolation has exactly +the same cost as any other 6-point-molecule interpolation. + +Derivatives +----------- + +This interpolator can optionally (and again at no extra cost) take +partial derivatives as part of the interpolation: + const CCTK_INT operand_indices[N_output_arrays]; + const CCTK_INT opcodes [N_output_arrays]; +The semantics here are that + output array[i] = op(input array[ operand_indices[i] ]) +where op is specified as an integer operation code as described below. + +Note that the array operand_indices[] doesn't directly name the inputs, +but rather gives the indices (0-origin) in the list of inputs. This +allows for a more efficient implementation in the case where some of +the input arrays have many different operations applied to them. + +The operations are coded based on the decimal digits of the integer: +each decimal digit means to take the derivative in that direction; +the order of the digits in a number is ignored. For example: + 0 = no derivative, "just" interpolate + 1 = interpolate d/dx1 (derivative along x1 coordinate) + 2 = interpolate d/dx2 (derivative along x2 coordinate) + 11 = interpolate d^2/dx1^2 (2nd derivative along x1 coordinate) + 22 = interpolate d^2/dx2^2 (2nd derivative along x2 coordinate) + 12 = 21 = interpolate d^2/dx1 dx2 (mixed 2nd partial derivative in x1 and x2) + 122 = 212 = 221 = interpolate d^3/dx1 dx2^2 (mixed 3rd partial derivative) + 222 = interpolate d^3/dx2^3 (3rd derivative along x2 coordinate) + 123 = 132 = 213 = 231 = 312 = 321 + = interpolate d^3/dx1 dx2 dx3 (mixed 3rd partial derivative) + +After discussion with Tom Goodale, we have decided *not* to put #defines +for the operation codes in any of the interpolator header files -- the +operation codes are specific to this particular interpolation operator, +not common to all operators, so they don't belong in the overall +common-to-all header files. + + + +Pointers in Fortran +=================== + +One possible problem area with this API is that it requires creating +arrays of pointers pointing to other arrays. In C this is no problem, +but in Fortran 77 this is difficult. So, I propose adding two new Cactus +functions to make this easier for Fortran users: + + CCTK_POINTER Util_PointerTo(any Fortran variable or array) + CCTK_POINTER Util_NullPointer() + +Util_PointerTo would be #defined to %loc on those compilers which have +that extension to standard Fortran, or would be a Cactus-provided utility +routine for other cases. It's trivial to write the latter case in C so +long as the Fortran compiler actually uses call by reference; I've never +heard of a Fortran compiler doing otherwise for arrays. (And even for +Fortran scalar variables it would be very hard for a compiler to do otherwise +in light of separate compilation and 1-element arrays being allowed to be +passed to/from scalar variables.) + + + +A Simple Example +================ + +Here's a simple example, written in Fortran 77, to do quadratic interpolation +of a real and a complex local array in 3-D: + +c input arrays: + integer ni, nj, nk + parameter (ni=..., nj=..., nk=...) + CCTK_REAL real_gridfn (ni,nj,nk) + CCTK_COMPLEX complex_gridfn(ni,nj,nk) + +c interpolation coordinates + integer N_interp + parameter (N_interp = ...) + CCTK_REAL xcoord(N_interp), y_coord(N_interp), z_coord(N_interp) + +c output arrays: + CCTK_REAL real_at_xyz (N_interp) + CCTK_COMPLEX complex_at_xyz(N_interp) + + integer status, dummy + CCTK_INT input_array_type_codes(2) + data input_array_type_codes /CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_COMPLEX/ + CCTK_INT input_array_dims(3) + CCTK_POINTER input_arrays(2) + CCTK_INT interp_coord_type_codes(3) + data interp_coord_type_codes /CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL/ + CCTK_POINTER interp_coords(3) + CCTK_INT output_array_type_codes(2) + data output_array_type_codes /CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_COMPLEX/ + CCTK_POINTER output_arrays(2) + + input_array_dims(1) = ni + input_array_dims(2) = nj + input_array_dims(3) = nk + interp_coords(1) = Util_PointerTo(xcoord) + interp_coords(2) = Util_PointerTo(ycoord) + interp_coords(3) = Util_PointerTo(zcoord) + output_arrays(1) = Util_PointerTo(real_at_xyz) + output_arrays(2) = Util_PointerTo(complex_at_xyz) + + call CCTK_InterpLocalArrays + $ (status, ! return code + 3, ! number of dimensions + operator_handle, coord_system_handle, + Util_TableCreateFromString("order=2"), + N_interp, + interp_coord_type_codes, interp_coords, + 2, ! number of input arrays + input_array_type_codes, input_array_dims, input_arrays, + 2, ! number of output arrays + output_array_type_codes, output_arrays) + + if (status .lt. 0) then + call CCTK_WARN(status, "Error return from interpolator!") + call CCTK_Exit(dummy, Util_NullPointer(), status) + end if + + + +A More Complicated Example +========================== + +Here's a more complicated example, written in C++. (I'm really only using +C++ to get cleaner initialization of the various arrays, this is still +"almost C".) This example is a simplified form of what I will be doing +in my new apparent horizon finder: + +// +// input grid functions (12 of them, all 3-D CCTK_REAL): +// gxx, gxy, gxz, gyy, gyz, gzz, +// Kxx, Kxy, Kxz, Kyy, Kyz, Kzz +// +// interpolation coordinates: +// xcoord, ycoord, zcoord (all CCTK_REAL[N_interp_points]) +// +// we want to interpolate the gij and Kij, and also interpolate all the +// first derivatives of the gij, so the output arrays are +// (30 of them, all CCTK_REAL[N_interp_points]) +// I_gxx, dx_gxx, dy_gxx, dz_gxx, +// I_gxy, dx_gxy, dy_gxy, dz_gxy, +// I_gxz, dx_gxz, dy_gxz, dz_gxz, +// I_gyy, dx_gyy, dy_gyy, dz_gyy, +// I_gyz, dx_gyz, dy_gyz, dz_gyz, +// I_gzz, dx_gzz, dy_gzz, dz_gzz, +// I_Kxx, I_Kxy, I_Kxz, I_Kyy, I_Kyz, I_Kzz +// + +#define VP(x) static_cast<void *>(x) + +const int N_dims = 3; +const CCTK_INT interp_coord_type_codes[N_dims] + = { CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL }; +const void *const interp_coords[N_dims] + = { VP(xcoord), VP(ycoord), VP(zcoord) }; + +const int N_input_arrays = 12; +const CCTK_INT input_array_types[N_input_arrays] + = { CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL }; + +const CCTK_INT input_array_variable_indices[N_input_arrays] + = { CCTK_VarIndex("somethorn::gxx"), + CCTK_VarIndex("somethorn::gxy"), + CCTK_VarIndex("somethorn::gxz"), + CCTK_VarIndex("somethorn::gyy"), + CCTK_VarIndex("somethorn::gyz"), + CCTK_VarIndex("somethorn::gzz"), + CCTK_VarIndex("somethorn::Kxx"), + CCTK_VarIndex("somethorn::Kxy"), + CCTK_VarIndex("somethorn::Kxz"), + CCTK_VarIndex("somethorn::Kyy"), + CCTK_VarIndex("somethorn::Kyz"), + CCTK_VarIndex("somethorn::Kzz") }; + +const int N_output_arrays = 30; +CCTK_INT output_array_type_codes[N_output_arrays]; + for (int oi = 0 ; oi < N_output_arrays ; ++oi) + { + output_array_type_codes[oi] = CCTK_VARIABLE_REAL; + } + +void *const output_arrays[N_output_arrays] + = { + VP(I_gxx), VP(dx_gxx), VP(dy_gxx), VP(dz_gxx), + VP(I_gxy), VP(dx_gxy), VP(dy_gxy), VP(dz_gxy), + VP(I_gxz), VP(dx_gxz), VP(dy_gxz), VP(dz_gxz), + VP(I_gyy), VP(dx_gyy), VP(dy_gyy), VP(dz_gyy), + VP(I_gyz), VP(dx_gyz), VP(dy_gyz), VP(dz_gyz), + VP(I_gzz), VP(dx_gzz), VP(dy_gzz), VP(dz_gzz), + VP(I_Kxx), VP(I_Kxy), VP(I_Kxz), VP(I_Kyy), VP(I_Kyz), VP(I_Kzz) + }; + +const CCTK_INT operand_indices[N_output_arrays]; + = { + 0, 0, 0, 0, // gxx + 1, 1, 1, 1, // gxy + 2, 2, 2, 2, // gxz + 3, 3, 3, 3, // gyy + 4, 4, 4, 4, // gyz + 5, 5, 5, 5, // gzz + 6, 7, 8, 9, 10, 11 // Kxx-Kzz + }; + +const CCTK_INT opcodes[N_output_arrays] + = { + 0, 1, 2, 3, // I, dx, dy, dz + 0, 1, 2, 3, // I, dx, dy, dz + 0, 1, 2, 3, // I, dx, dy, dz + 0, 1, 2, 3, // I, dx, dy, dz + 0, 1, 2, 3, // I, dx, dy, dz + 0, 1, 2, 3, // I, dx, dy, dz + 0, 0, 0, 0, 0, 0 // all I + }; + +int param_table_handle = Util_TableCreate(UTIL_TABLE_DEFAULT); +Util_TableSetInt(param_table_handle, 3, "order"); +Util_TableSetIntArray(param_table_handle, + N_output_arrays, operand_indices, + "operand_indices"); +Util_TableSetIntArray(param_table_handle, + N_output_arrays, opcodes, + "opcodes"); + +int status = CCTK_InterpGridArrays(GH, + N_dims, + operator_handle, coord_system_handle, + param_table_handle, + N_interp_points, + interp_coord_type_codes, interp_coords, + N_input_arrays, + input_array_variable_indices, + N_output_arrays, + output_array_type_codes, output_arrays); +if (status < 0) + { + CCTK_WARN(status, "error return from CCTK_InterpGridArrays()!"); + CCTK_Exit(GH, status); /*NOTREACHED*/ + } +Util_TableDestroy(param_table_handle); diff --git a/doc/api2.2 b/doc/api2.2 new file mode 100644 index 0000000..35eca3c --- /dev/null +++ b/doc/api2.2 @@ -0,0 +1,496 @@ +Author: Jonathan Thornburg <jthorn@aei.mpg.de> +Date: 30 December 2001 + +This is version 2.2 of my proposal for the new interpolator API. The +main changes since version 1 are +* function names have changed (longer, more descriptive) +* output arrays may now be N-dimensional (before they were only 1-D) +* a bunch more optional stuff in the table to specify array strides, + time levels, etc +* no #defines in the header file for derivative operation codes +* int arrays changed to CCTK_INT + +Don't be scared by the length, for most uses it's not that complicated! +There are some examples below... + + + +Synopsis +======== + + int status = CCTK_InterpLocalArrays(arguments described below) + int status = CCTK_InterpGridArrays(arguments described below) + +return is 0 for ok, various -ve values for error codes + +(N.b. the flesh APIs to register interpolation operators will also need +their C function prototypes changed to match the changes here.) + + + +Function Arguments +================== + + /***** misc arguments *****/ +for CCTK_InterpGridArrays() only: + const cGH *GH; +for both CCTK_InterpLocalArrays() and CCTK_InterpGridArrays(): + /* note N_dims is the number of dimensions in the *interpolation*; */ + /* this may be smaller than the number of dimensions of the input arrays */ + /* if the storage indexing is set up appropriately (eg to interpolate */ + /* in 1-D lines or 2-D planes of 3-D grid arrays) */ + int N_dims; + int operator_handle; + int param_table_handle; /* handle to "parameter table", a key-value */ + /* table, see below for table entries */ + + /***** arguments specifying the coordinate system *****/ +for CCTK_InterpLocalArrays(): + /* the local coordinate system is specified as a generic linear mapping */ + /* from (integer) local input array subscripts --> (global) coordinates: */ + /* coordinate = coord_system_origin[axis] + subscript*grid_spacing[axis] */ + const CCTK_REAL coord_system_origin[N_dims]; /* coords of subscript 0 */ + const CCTK_REAL grid_spacing[N_dims]; +for CCTK_InterpGridArrays(): + int coord_system_handle; /* handle to Cactus coordinate system */ + /* specifying mapping of */ + /* (integer) input array subscripts */ + /* <--> (floating point) coordinates */ + + /***** arguments specifying the interpolation points *****/ + int N_interp_points; + /* (pointer to) array of CCTK_VARIABLE_* codes giving the */ + /* data types of the arrays pointed to by interp_coords[] */ + const CCTK_INT interp_coord_type_codes[N_dims]; + /* (pointer to) array[N_dims] of pointers to arrays[N_interp_points] */ + /* giving x,y,z,... coordinates of interpolation points */ + const void *const interp_coords[N_dims]; + + /***** arguments specifying the inputs (the data to be interpolated) *****/ + int N_input_arrays; +for CCTK_InterpLocalArrays(): + /* array of input array dimensions (common to all input arrays) */ + const CCTK_INT input_array_dims[N_dims]; + /* array of CCTK_VARIABLE_* codes giving data types of input arrays */ + const CCTK_INT input_array_type_codes[N_input_arrays]; + /* array of pointers to input arrays */ + const void *const input_arrays[N_input_arrays]; +for CCTK_InterpGridArrays(): + /* array of CCTK variable indices of input arrays */ + const CCTK_INT input_array_variable_indices[N_input_arrays]; + +for both CCTK_InterpLocalArrays() and CCTK_InterpGridArrays() again: + /***** arguments specifying the outputs (the interpolation results) *****/ + int N_output_arrays; + /* array of CCTK_VARIABLE_* codes giving data types of output arrays */ + const CCTK_INT output_array_type_codes[N_output_arrays]; + /* array[N_output_arrays] of pointers to output arrays[N_interp_points] */ + void *const output_arrays[N_output_arrays]; + + + +Information Passed in the Parameter Table +========================================= + +The "parameter table" may be used to specify non-default storage indexing +for input or output arrays, and/or various options for the interpolation +itself. Some interpolators may not implement all of these options. + + +Array Addressing/Subscripting Options +------------------------------------- + +Sometimes one of the "arrays" used by the interpolator isn't contiguous +in memory. For example, we might want to do 2-D interpolation within a +plane of a 3-D grid array, and/or the grid array might be a member of a +compact group. To support this, we use several optional table entries +(these should be supported by all interpolation operators): + +For the input arrays, we use + + const CCTK_INT input_array_offsets[N_input_arrays]; + /* next 3 table entries are shared by all input arrays */ + const CCTK_INT input_array_strides [N_dims]; + const CCTK_INT input_array_min_subscripts[N_dims]; + const CCTK_INT input_array_max_subscripts[N_dims]; + +Then for input array number a, the generic subscripting expression for +the 3-D case is + data_pointer[offset + i*istride + j*jstride + k*kstride] +where + data_pointer = input_arrays[a] + offset = input_array_offsets[a] + (istride,jstride,kstride) = input_array_stride[] +and where (i,j,k) run from input_array_min_subscripts[] to +input_array_max_subscripts[] inclusive. + +The defaults are offset=0, stride=determined from input_array_dims[] +in the usual Fortran manner, input_array_min_subscripts[] = 0, +input_array_max_subscripts[] = input_array_dims[]-1. If the stride +and max subscript are both specified explicitly, then the +input_array_dims[] function argument is ignored. + +For CCTK_InterpGridArrays() operating on a member of a compact group +the offset and strides are interpreted in units of _grid_points_. This +has the advantage that interpolator calls need not be changed if a grid +array is changed from being simple to/from compact. In terms of actual +memory addressing, then, the internal subscripting expression for this +case would be + group_data_pointer[offset + member_number + i*istride*N_members + + j*jstride*N_members + + k*kstride*N_members] + +For CCTK_InterpGridArrays(), by default the input (grid) arrays are at +the "current" Cactus time level (level 0). This may be changed with the +table entry + const CCTK_INT input_array_time_levels[N_input_arrays]; + +By default the interpolation-point coordinates and the output arrays +are all contiguous 1-D arrays. This may be changed with the table +entries + + const CCTK_INT interp_coords_offsets[N_dims]; + const CCTK_INT output_array_offsets[N_output_arrays]; + /* next 4 table entries are shared by all interp coords and output arrays */ + const CCTK_INT interp_point_N_dims; + const CCTK_INT interp_point_strides [interp_point_N_dims]; + const CCTK_INT interp_point_min_subscripts[interp_point_N_dims]; + const CCTK_INT interp_point_max_subscripts[interp_point_N_dims]; + +For example, if we wanted to do 3-D interpolation, interpolating a value +at each non-ghost-zone point of a 2-D grid of points, with the grid point +coordinates stored as 2-D arrays, we would use + N_dims = 3 + interp_point_N_dims = 2 + interp_point_strides[] = set up from the full size of the 2-D grid + interp_point_{min,max}_subscripts[] = specify the non-ghost-zone points + of the 2-D grid + +Excision Options +---------------- + +Some interpolators may specifically support excision, where a mask array +(same dimensionality and indexing as the input arrays) is used to mark +some grid points as valid (ok to use data there) and other grid points +as invalid (the interpolator isn't allowed to use data there). + +If an interpolator supports this, it should use the following optional +parameters: + +for CCTK_InterpLocalArrays(); + const CCTK_INT mask_type_code; /* one of the CCTK_VARIABLE_* codes */ + const void *const mask_array; /* same dimensions/indexing as input arrays */ +for CCTK_InterpGridArrays(): + const CCTK_INT mask_variable_index; + +for both CCTK_InterpLocalArrays() and CCTK_InterpGridArrays(): + /* we consider a grid point to be valid if and only if the mask */ + /* has a value in the closed interval [mask_valid_min,mask_valid_max] */ + /* n.b. the caller should beware of possible rounding problems here; */ + /* it may be appropriate to widen the valid interval slightly */ + /* if the endpoints aren't exactly-representable floating-point */ + /* values */ + const mask_type mask_valid_min, mask_valid_max; + +The same type of storage options supported for the input and/or output +arrays, are also supported for the mask; the mask may have its own offset +and/or time level, but shares any input-array stride and/or min/max +subscript specification: + + const CCTK_INT mask_offset; + const CCTK_INT mask_time_level; + + +The remaining parameter-table options are specific to the new interpolator +I'm currently implementing for PUGHInterp. This registers (only) a single +operator, "generalized polynomial interpolation". + + +Interpolation Order and Molecule Family +--------------------------------------- + +The mandatory parameter + + const CCTK_INT order; + +sets the order of the interpolating polynomial (1=linear, 2=quadratic, +3=cubic, etc). Thus the simplest call can just use (eg) + Util_TableCreateFromString("order=3") +for cubic interpolation. + +All the remaining parameters in the table are optional; if they're +omitted defaults will be supplied. + + /* this selects one of a family of related operators */ + /* the default (and the only one I'm implementing right now) */ + /* is "cube" to use the usual hypercube-shaped molecules */ + const char *const molecule_family; + +Smoothing +--------- + +The way I'm implementing the interpolation it's easy to also do +Savitzky-Golay type smoothing (= moving least-square fitting, cf +Numerical Recipes 2nd edition section 14.8). This is controlled by +the parameter + + const CCTK_INT smoothing; + +which says how much (how many points) to enlarge the interpolation +molecule for this. The default is 0 (no smoothing). 1 would mean to +enlarge the molecule by 1 point, e.g. to use a 5-point molecule instead +of the usual 4-point one for cubic interpolation. 2 would mean to +enlarge by 2 points, e.g. to use a 6-point molecule for cubic +interpolation. Etc etc. + +This type of smoothing is basically free apart from the increase in +the molecule size, e.g. a smoothing=2 cubic interpolation has exactly +the same cost as any other 6-point-molecule interpolation. + +Derivatives +----------- + +This interpolator can optionally (and again at no extra cost) take +partial derivatives as part of the interpolation: + const CCTK_INT operand_indices[N_output_arrays]; + const CCTK_INT opcodes [N_output_arrays]; +The semantics here are that + output array[i] = op(input array[ operand_indices[i] ]) +where op is specified as an integer operation code as described below. + +Note that the array operand_indices[] doesn't directly name the inputs, +but rather gives the indices (0-origin) in the list of inputs. This +allows for a more efficient implementation in the case where some of +the input arrays have many different operations applied to them. + +The operations are coded based on the decimal digits of the integer: +each decimal digit means to take the derivative in that direction; +the order of the digits in a number is ignored. For example: + 0 = no derivative, "just" interpolate + 1 = interpolate d/dx1 (derivative along x1 coordinate) + 2 = interpolate d/dx2 (derivative along x2 coordinate) + 11 = interpolate d^2/dx1^2 (2nd derivative along x1 coordinate) + 22 = interpolate d^2/dx2^2 (2nd derivative along x2 coordinate) + 12 = 21 = interpolate d^2/dx1 dx2 (mixed 2nd partial derivative in x1 and x2) + 122 = 212 = 221 = interpolate d^3/dx1 dx2^2 (mixed 3rd partial derivative) + 222 = interpolate d^3/dx2^3 (3rd derivative along x2 coordinate) + 123 = 132 = 213 = 231 = 312 = 321 + = interpolate d^3/dx1 dx2 dx3 (mixed 3rd partial derivative) + +After discussion with Tom Goodale, we have decided *not* to put #defines +for the operation codes in any of the interpolator header files -- the +operation codes are specific to this particular interpolation operator, +not common to all operators, so they don't belong in the overall +common-to-all header files. + + + +Pointers in Fortran +=================== + +One possible problem area with this API is that it requires creating +arrays of pointers pointing to other arrays. In C this is no problem, +but in Fortran 77 this is difficult. So, I propose adding two new Cactus +functions to make this easier for Fortran users: + + CCTK_POINTER Util_PointerTo(any Fortran variable or array) + CCTK_POINTER Util_NullPointer() + +Util_PointerTo would be #defined to %loc on those compilers which have +that extension to standard Fortran, or would be a Cactus-provided utility +routine for other cases. It's trivial to write the latter case in C so +long as the Fortran compiler actually uses call by reference; I've never +heard of a Fortran compiler doing otherwise for arrays. (And even for +Fortran scalar variables it would be very hard for a compiler to do otherwise +in light of separate compilation and 1-element arrays being allowed to be +passed to/from scalar variables.) + + + +A Simple Example +================ + +Here's a simple example, written in Fortran 77, to do quadratic interpolation +of a real and a complex local array in 3-D: + +c input arrays: + integer ni, nj, nk + parameter (ni=..., nj=..., nk=...) + CCTK_REAL real_gridfn (ni,nj,nk) + CCTK_COMPLEX complex_gridfn(ni,nj,nk) + +c interpolation coordinates + integer N_interp + parameter (N_interp = ...) + CCTK_REAL xcoord(N_interp), y_coord(N_interp), z_coord(N_interp) + +c output arrays: + CCTK_REAL real_at_xyz (N_interp) + CCTK_COMPLEX complex_at_xyz(N_interp) + + integer status, dummy + CCTK_INT input_array_type_codes(2) + data input_array_type_codes /CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_COMPLEX/ + CCTK_INT input_array_dims(3) + CCTK_POINTER input_arrays(2) + CCTK_INT interp_coord_type_codes(3) + data interp_coord_type_codes /CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL/ + CCTK_POINTER interp_coords(3) + CCTK_INT output_array_type_codes(2) + data output_array_type_codes /CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_COMPLEX/ + CCTK_POINTER output_arrays(2) + + input_array_dims(1) = ni + input_array_dims(2) = nj + input_array_dims(3) = nk + interp_coords(1) = Util_PointerTo(xcoord) + interp_coords(2) = Util_PointerTo(ycoord) + interp_coords(3) = Util_PointerTo(zcoord) + output_arrays(1) = Util_PointerTo(real_at_xyz) + output_arrays(2) = Util_PointerTo(complex_at_xyz) + + call CCTK_InterpLocalArrays + $ (status, ! return code + 3, ! number of dimensions + operator_handle, coord_system_handle, + Util_TableCreateFromString("order=2"), + N_interp, + interp_coord_type_codes, interp_coords, + 2, ! number of input arrays + input_array_type_codes, input_array_dims, input_arrays, + 2, ! number of output arrays + output_array_type_codes, output_arrays) + + if (status .lt. 0) then + call CCTK_WARN(status, "Error return from interpolator!") + call CCTK_Exit(dummy, Util_NullPointer(), status) + end if + + + +A More Complicated Example +========================== + +Here's a more complicated example, written in C++. (I'm really only using +C++ to get cleaner initialization of the various arrays, this is still +"almost C".) This example is a simplified form of what I will be doing +in my new apparent horizon finder: + +// +// input grid functions (12 of them, all 3-D CCTK_REAL): +// gxx, gxy, gxz, gyy, gyz, gzz, +// Kxx, Kxy, Kxz, Kyy, Kyz, Kzz +// +// interpolation coordinates: +// xcoord, ycoord, zcoord (all CCTK_REAL[N_interp_points]) +// +// we want to interpolate the gij and Kij, and also interpolate all the +// first derivatives of the gij, so the output arrays are +// (30 of them, all CCTK_REAL[N_interp_points]) +// I_gxx, dx_gxx, dy_gxx, dz_gxx, +// I_gxy, dx_gxy, dy_gxy, dz_gxy, +// I_gxz, dx_gxz, dy_gxz, dz_gxz, +// I_gyy, dx_gyy, dy_gyy, dz_gyy, +// I_gyz, dx_gyz, dy_gyz, dz_gyz, +// I_gzz, dx_gzz, dy_gzz, dz_gzz, +// I_Kxx, I_Kxy, I_Kxz, I_Kyy, I_Kyz, I_Kzz +// + +#define VP(x) static_cast<void *>(x) + +const int N_dims = 3; +const CCTK_INT interp_coord_type_codes[N_dims] + = { CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL }; +const void *const interp_coords[N_dims] + = { VP(xcoord), VP(ycoord), VP(zcoord) }; + +const int N_input_arrays = 12; +const CCTK_INT input_array_types[N_input_arrays] + = { CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL }; + +const CCTK_INT input_array_variable_indices[N_input_arrays] + = { CCTK_VarIndex("somethorn::gxx"), + CCTK_VarIndex("somethorn::gxy"), + CCTK_VarIndex("somethorn::gxz"), + CCTK_VarIndex("somethorn::gyy"), + CCTK_VarIndex("somethorn::gyz"), + CCTK_VarIndex("somethorn::gzz"), + CCTK_VarIndex("somethorn::Kxx"), + CCTK_VarIndex("somethorn::Kxy"), + CCTK_VarIndex("somethorn::Kxz"), + CCTK_VarIndex("somethorn::Kyy"), + CCTK_VarIndex("somethorn::Kyz"), + CCTK_VarIndex("somethorn::Kzz") }; + +const int N_output_arrays = 30; +CCTK_INT output_array_type_codes[N_output_arrays]; + for (int oi = 0 ; oi < N_output_arrays ; ++oi) + { + output_array_type_codes[oi] = CCTK_VARIABLE_REAL; + } + +void *const output_arrays[N_output_arrays] + = { + VP(I_gxx), VP(dx_gxx), VP(dy_gxx), VP(dz_gxx), + VP(I_gxy), VP(dx_gxy), VP(dy_gxy), VP(dz_gxy), + VP(I_gxz), VP(dx_gxz), VP(dy_gxz), VP(dz_gxz), + VP(I_gyy), VP(dx_gyy), VP(dy_gyy), VP(dz_gyy), + VP(I_gyz), VP(dx_gyz), VP(dy_gyz), VP(dz_gyz), + VP(I_gzz), VP(dx_gzz), VP(dy_gzz), VP(dz_gzz), + VP(I_Kxx), VP(I_Kxy), VP(I_Kxz), VP(I_Kyy), VP(I_Kyz), VP(I_Kzz) + }; + +const CCTK_INT operand_indices[N_output_arrays]; + = { + 0, 0, 0, 0, // gxx + 1, 1, 1, 1, // gxy + 2, 2, 2, 2, // gxz + 3, 3, 3, 3, // gyy + 4, 4, 4, 4, // gyz + 5, 5, 5, 5, // gzz + 6, 7, 8, 9, 10, 11 // Kxx-Kzz + }; + +const CCTK_INT opcodes[N_output_arrays] + = { + 0, 1, 2, 3, // I, dx, dy, dz + 0, 1, 2, 3, // I, dx, dy, dz + 0, 1, 2, 3, // I, dx, dy, dz + 0, 1, 2, 3, // I, dx, dy, dz + 0, 1, 2, 3, // I, dx, dy, dz + 0, 1, 2, 3, // I, dx, dy, dz + 0, 0, 0, 0, 0, 0 // all I + }; + +int param_table_handle = Util_TableCreate(UTIL_TABLE_DEFAULT); +Util_TableSetInt(param_table_handle, 3, "order"); +Util_TableSetIntArray(param_table_handle, + N_output_arrays, operand_indices, + "operand_indices"); +Util_TableSetIntArray(param_table_handle, + N_output_arrays, opcodes, + "opcodes"); + +int status = CCTK_InterpGridArrays(GH, + N_dims, + operator_handle, coord_system_handle, + param_table_handle, + N_interp_points, + interp_coord_type_codes, interp_coords, + N_input_arrays, + input_array_variable_indices, + N_output_arrays, + output_array_type_codes, output_arrays); +if (status < 0) + { + CCTK_WARN(status, "error return from CCTK_InterpGridArrays()!"); + CCTK_Exit(GH, status); /*NOTREACHED*/ + } +Util_TableDestroy(param_table_handle); diff --git a/doc/api3 b/doc/api3 new file mode 100644 index 0000000..9aeedd5 --- /dev/null +++ b/doc/api3 @@ -0,0 +1,491 @@ +Author: Jonathan Thornburg <jthorn@aei.mpg.de> +Date: 21 January 2002 + +This is version 3.0 of my proposal for the new interpolator API. The +main changes since previous versions are +* This only describes processor-local interpolation -- global (or grid) + interpolation is trickier, and we're deferring it till after the + processor-local code is finished +* The API has split again to separate out {uniform, nonuniform, irregular} + grids. This proposal only addresses the first two; irregular is hard + and needs lots of work all over Cactus before we can support it. +* Since noone seems to care about it, I've dropped support for different + coordinates being of different types (i.e. x is CCTK_REAL4 but y is + CCTK_REAL16); now all the coordinates must be the same type. +* Ditto for the interpolation coordinates. + +Don't be scared by the length, for most uses it's not that complicated! +There are some examples below... + + + +Synopsis +======== + + int status = CCTK_InterpLocalUniform(arguments described below) + int status = CCTK_InterpLocalNonUniform(arguments described below) + +return is 0 for ok, various -ve values for error codes + +(N.b. the flesh APIs to register interpolation operators will also need +their C function prototypes changed to match the changes here.) + + + +Function Arguments +================== + + /***** misc arguments *****/ + /* note N_dims is the number of dimensions in the *interpolation*; */ + /* this may be smaller than the number of dimensions of the input arrays */ + /* if the storage indexing is set up appropriately (eg to interpolate */ + /* in 1-D lines or 2-D planes of 3-D grid arrays) */ + int N_dims; + int operator_handle; + int param_table_handle; /* handle to a key-value table used to pass */ + /* additional parameters to the interpolator */ + + /***** arguments specifying the local coordinate system *****/ +for CCTK_InterpLocalUniform() + /* the local coordinate system is specified as a generic linear mapping */ + /* from (integer) local input array subscripts --> (global) coordinates: */ + /* coordinate = origin[axis] + subscript*delta[axis] */ + const CCTK_REAL origin[N_dims]; /* coords of subscript 0 */ + const CCTK_REAL delta[N_dims]; +for CCTK_InterpLocalNonuniform() + /* the local coordinate system is specified by user-supplied arrays: */ + /* coordinate = array[subscript] (separate array for each axis) */ + /* FIXME: what if subscript=0 is out-of-range??? */ + const void *const coords[N_dims]; /* coords of subscript 0 */ + + /***** arguments specifying the interpolation points *****/ + int N_interp_points; + int interp_coords_type_code; /* CCTK_VARIABLE_* type code for */ + /* interp_coords arrays */ + /* (pointer to) array[N_dims] of pointers to arrays[N_interp_points] */ + /* giving x,y,z,... coordinates of interpolation points */ + const void *const interp_coords[N_dims]; + + /***** arguments specifying the inputs (the data to be interpolated) *****/ + int N_input_arrays; + /* array of input array dimensions (common to all input arrays) */ + const CCTK_INT input_array_dims[N_dims]; + /* array of CCTK_VARIABLE_* codes giving data types of input arrays */ + const CCTK_INT input_array_type_codes[N_input_arrays]; + /* array of pointers to input arrays */ + const void *const input_arrays[N_input_arrays]; + + /***** arguments specifying the outputs (the interpolation results) *****/ + int N_output_arrays; + /* array of CCTK_VARIABLE_* codes giving data types of output arrays */ + const CCTK_INT output_array_type_codes[N_output_arrays]; + /* array[N_output_arrays] of pointers to output arrays[N_interp_points] */ + void *const output_arrays[N_output_arrays]; + + + +Information Passed in the Parameter Table +========================================= + +The "parameter table" may be used to specify non-default storage indexing +for input or output arrays, and/or various options for the interpolation +itself. Some interpolators may not implement all of these options. + + +Array Addressing/Subscripting Options +------------------------------------- + +Sometimes one of the "arrays" used by the interpolator isn't contiguous +in memory. For example, we might want to do 2-D interpolation within a +plane of a 3-D grid array, and/or the grid array might be a member of a +compact group. To support this, we use several optional table entries +(these should be supported by all interpolation operators): + +For the input arrays, we use + + const CCTK_INT input_array_offsets[N_input_arrays]; + /* next 3 table entries are shared by all input arrays */ + const CCTK_INT input_array_strides [N_dims]; + const CCTK_INT input_array_min_subscripts[N_dims]; + const CCTK_INT input_array_max_subscripts[N_dims]; + +Then for input array number a, the generic subscripting expression for +the 3-D case is + data_pointer[offset + i*istride + j*jstride + k*kstride] +where + data_pointer = input_arrays[a] + offset = input_array_offsets[a] + (istride,jstride,kstride) = input_array_stride[] +and where (i,j,k) run from input_array_min_subscripts[] to +input_array_max_subscripts[] inclusive. + +The defaults are offset=0, stride=determined from input_array_dims[] +in the usual Fortran manner, input_array_min_subscripts[] = 0, +input_array_max_subscripts[] = input_array_dims[]-1. If the stride +and max subscript are both specified explicitly, then the +input_array_dims[] function argument is ignored. + +For CCTK_InterpGridArrays() operating on a member of a compact group +the offset and strides are interpreted in units of _grid_points_. This +has the advantage that interpolator calls need not be changed if a grid +array is changed from being simple to/from compact. In terms of actual +memory addressing, then, the internal subscripting expression for this +case would be + group_data_pointer[offset + member_number + i*istride*N_members + + j*jstride*N_members + + k*kstride*N_members] + +For CCTK_InterpGridArrays(), by default the input (grid) arrays are at +the "current" Cactus time level (level 0). This may be changed with the +table entry + const CCTK_INT input_array_time_levels[N_input_arrays]; + +By default the interpolation-point coordinates and the output arrays +are all contiguous 1-D arrays. This may be changed with the table +entries + + const CCTK_INT interp_coords_offsets[N_dims]; + const CCTK_INT output_array_offsets[N_output_arrays]; + /* next 4 table entries are shared by all interp coords and output arrays */ + const CCTK_INT interp_point_N_dims; + const CCTK_INT interp_point_strides [interp_point_N_dims]; + const CCTK_INT interp_point_min_subscripts[interp_point_N_dims]; + const CCTK_INT interp_point_max_subscripts[interp_point_N_dims]; + +For example, if we wanted to do 3-D interpolation, interpolating a value +at each non-ghost-zone point of a 2-D grid of points, with the grid point +coordinates stored as 2-D arrays, we would use + N_dims = 3 + interp_point_N_dims = 2 + interp_point_strides[] = set up from the full size of the 2-D grid + interp_point_{min,max}_subscripts[] = specify the non-ghost-zone points + of the 2-D grid + +Excision Options +---------------- + +Some interpolators may specifically support excision, where a mask array +(same dimensionality and indexing as the input arrays) is used to mark +some grid points as valid (ok to use data there) and other grid points +as invalid (the interpolator isn't allowed to use data there). + +If an interpolator supports this, it should use the following optional +parameters: + +for CCTK_InterpLocalArrays(); + const CCTK_INT mask_type_code; /* one of the CCTK_VARIABLE_* codes */ + const void *const mask_array; /* same dimensions/indexing as input arrays */ +for CCTK_InterpGridArrays(): + const CCTK_INT mask_variable_index; + +for both CCTK_InterpLocalArrays() and CCTK_InterpGridArrays(): + /* we consider a grid point to be valid if and only if the mask */ + /* has a value in the closed interval [mask_valid_min,mask_valid_max] */ + /* n.b. the caller should beware of possible rounding problems here; */ + /* it may be appropriate to widen the valid interval slightly */ + /* if the endpoints aren't exactly-representable floating-point */ + /* values */ + const mask_type mask_valid_min, mask_valid_max; + +The same type of storage options supported for the input and/or output +arrays, are also supported for the mask; the mask may have its own offset +and/or time level, but shares any input-array stride and/or min/max +subscript specification: + + const CCTK_INT mask_offset; + const CCTK_INT mask_time_level; + + +The remaining parameter-table options are specific to the new interpolator +I'm currently implementing for PUGHInterp. This registers (only) a single +operator, "generalized polynomial interpolation". + + +Interpolation Order and Molecule Family +--------------------------------------- + +The mandatory parameter + + const CCTK_INT order; + +sets the order of the interpolating polynomial (1=linear, 2=quadratic, +3=cubic, etc). Thus the simplest call can just use (eg) + Util_TableCreateFromString("order=3") +for cubic interpolation. + +All the remaining parameters in the table are optional; if they're +omitted defaults will be supplied. + + /* this selects one of a family of related operators */ + /* the default (and the only one I'm implementing right now) */ + /* is "cube" to use the usual hypercube-shaped molecules */ + const char *const molecule_family; + +Smoothing +--------- + +The way I'm implementing the interpolation it's easy to also do +Savitzky-Golay type smoothing (= moving least-square fitting, cf +Numerical Recipes 2nd edition section 14.8). This is controlled by +the parameter + + const CCTK_INT smoothing; + +which says how much (how many points) to enlarge the interpolation +molecule for this. The default is 0 (no smoothing). 1 would mean to +enlarge the molecule by 1 point, e.g. to use a 5-point molecule instead +of the usual 4-point one for cubic interpolation. 2 would mean to +enlarge by 2 points, e.g. to use a 6-point molecule for cubic +interpolation. Etc etc. + +This type of smoothing is basically free apart from the increase in +the molecule size, e.g. a smoothing=2 cubic interpolation has exactly +the same cost as any other 6-point-molecule interpolation. + +Derivatives +----------- + +This interpolator can optionally (and again at no extra cost) take +partial derivatives as part of the interpolation: + const CCTK_INT operand_indices[N_output_arrays]; + const CCTK_INT operation_codes[N_output_arrays]; +The semantics here are that + output array[i] = op(input array[ operand_indices[i] ]) +where op is specified as an integer operation code as described below. + +Note that the array operand_indices[] doesn't directly name the inputs, +but rather gives the indices (0-origin) in the list of inputs. This +allows for a more efficient implementation in the case where some of +the input arrays have many different operations applied to them. + +The operations are coded based on the decimal digits of the integer: +each decimal digit means to take the derivative in that direction; +the order of the digits in a number is ignored. For example: + 0 = no derivative, "just" interpolate + 1 = interpolate d/dx1 (derivative along x1 coordinate) + 2 = interpolate d/dx2 (derivative along x2 coordinate) + 11 = interpolate d^2/dx1^2 (2nd derivative along x1 coordinate) + 22 = interpolate d^2/dx2^2 (2nd derivative along x2 coordinate) + 12 = 21 = interpolate d^2/dx1 dx2 (mixed 2nd partial derivative in x1 and x2) + 122 = 212 = 221 = interpolate d^3/dx1 dx2^2 (mixed 3rd partial derivative) + 222 = interpolate d^3/dx2^3 (3rd derivative along x2 coordinate) + 123 = 132 = 213 = 231 = 312 = 321 + = interpolate d^3/dx1 dx2 dx3 (mixed 3rd partial derivative) + +After discussion with Tom Goodale, we have decided *not* to put #defines +for the operation codes in any of the interpolator header files -- the +operation codes are specific to this particular interpolation operator, +not common to all operators, so they don't belong in the overall +common-to-all header files. + + + +Pointers in Fortran +=================== + +One possible problem area with this API is that it requires creating +arrays of pointers pointing to other arrays. In C this is no problem, +but in Fortran 77 this is difficult. So, I propose adding two new Cactus +functions to make this easier for Fortran users: + + CCTK_POINTER Util_PointerTo(any Fortran variable or array) + CCTK_POINTER Util_NullPointer() + +Util_PointerTo would be #defined to %loc on those compilers which have +that extension to standard Fortran, or would be a Cactus-provided utility +routine for other cases. It's trivial to write the latter case in C so +long as the Fortran compiler actually uses call by reference; I've never +heard of a Fortran compiler doing otherwise for arrays. (And even for +Fortran scalar variables it would be very hard for a compiler to do otherwise +in light of separate compilation and 1-element arrays being allowed to be +passed to/from scalar variables.) + + + +A Simple Example +================ + +Here's a simple example, written in Fortran 77, to do quadratic interpolation +of a real and a complex local array in 3-D: + +c input arrays: + integer ni, nj, nk + parameter (ni=..., nj=..., nk=...) + CCTK_REAL real_gridfn (ni,nj,nk) + CCTK_COMPLEX complex_gridfn(ni,nj,nk) + +c interpolation coordinates + integer N_interp + parameter (N_interp = ...) + CCTK_REAL xcoord(N_interp), y_coord(N_interp), z_coord(N_interp) + +c output arrays: + CCTK_REAL real_at_xyz (N_interp) + CCTK_COMPLEX complex_at_xyz(N_interp) + + integer status, dummy + CCTK_INT input_array_type_codes(2) + data input_array_type_codes /CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_COMPLEX/ + CCTK_INT input_array_dims(3) + CCTK_POINTER input_arrays(2) + CCTK_INT interp_coord_type_codes(3) + data interp_coord_type_codes /CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL/ + CCTK_POINTER interp_coords(3) + CCTK_INT output_array_type_codes(2) + data output_array_type_codes /CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_COMPLEX/ + CCTK_POINTER output_arrays(2) + + input_array_dims(1) = ni + input_array_dims(2) = nj + input_array_dims(3) = nk + interp_coords(1) = Util_PointerTo(xcoord) + interp_coords(2) = Util_PointerTo(ycoord) + interp_coords(3) = Util_PointerTo(zcoord) + output_arrays(1) = Util_PointerTo(real_at_xyz) + output_arrays(2) = Util_PointerTo(complex_at_xyz) + + call CCTK_InterpLocalArrays + $ (status, ! return code + 3, ! number of dimensions + operator_handle, coord_system_handle, + Util_TableCreateFromString("order=2"), + N_interp, + interp_coord_type_codes, interp_coords, + 2, ! number of input arrays + input_array_type_codes, input_array_dims, input_arrays, + 2, ! number of output arrays + output_array_type_codes, output_arrays) + + if (status .lt. 0) then + call CCTK_WARN(status, "Error return from interpolator!") + call CCTK_Exit(dummy, Util_NullPointer(), status) + end if + + + +A More Complicated Example +========================== + +Here's a more complicated example, written in C++. (I'm really only using +C++ to get cleaner initialization of the various arrays, this is still +"almost C".) This example is a simplified form of what I will be doing +in my new apparent horizon finder: + +// +// input grid functions (12 of them, all 3-D CCTK_REAL): +// gxx, gxy, gxz, gyy, gyz, gzz, +// Kxx, Kxy, Kxz, Kyy, Kyz, Kzz +// +// interpolation coordinates: +// xcoord, ycoord, zcoord (all CCTK_REAL[N_interp_points]) +// +// we want to interpolate the gij and Kij, and also interpolate all the +// first derivatives of the gij, so the output arrays are +// (30 of them, all CCTK_REAL[N_interp_points]) +// I_gxx, dx_gxx, dy_gxx, dz_gxx, +// I_gxy, dx_gxy, dy_gxy, dz_gxy, +// I_gxz, dx_gxz, dy_gxz, dz_gxz, +// I_gyy, dx_gyy, dy_gyy, dz_gyy, +// I_gyz, dx_gyz, dy_gyz, dz_gyz, +// I_gzz, dx_gzz, dy_gzz, dz_gzz, +// I_Kxx, I_Kxy, I_Kxz, I_Kyy, I_Kyz, I_Kzz +// + +#define VP(x) static_cast<void *>(x) + +const int N_dims = 3; +const CCTK_INT interp_coord_type_codes[N_dims] + = { CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL }; +const void *const interp_coords[N_dims] + = { VP(xcoord), VP(ycoord), VP(zcoord) }; + +const int N_input_arrays = 12; +const CCTK_INT input_array_types[N_input_arrays] + = { CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL }; + +const CCTK_INT input_array_variable_indices[N_input_arrays] + = { CCTK_VarIndex("somethorn::gxx"), + CCTK_VarIndex("somethorn::gxy"), + CCTK_VarIndex("somethorn::gxz"), + CCTK_VarIndex("somethorn::gyy"), + CCTK_VarIndex("somethorn::gyz"), + CCTK_VarIndex("somethorn::gzz"), + CCTK_VarIndex("somethorn::Kxx"), + CCTK_VarIndex("somethorn::Kxy"), + CCTK_VarIndex("somethorn::Kxz"), + CCTK_VarIndex("somethorn::Kyy"), + CCTK_VarIndex("somethorn::Kyz"), + CCTK_VarIndex("somethorn::Kzz") }; + +const int N_output_arrays = 30; +CCTK_INT output_array_type_codes[N_output_arrays]; + for (int oi = 0 ; oi < N_output_arrays ; ++oi) + { + output_array_type_codes[oi] = CCTK_VARIABLE_REAL; + } + +void *const output_arrays[N_output_arrays] + = { + VP(I_gxx), VP(dx_gxx), VP(dy_gxx), VP(dz_gxx), + VP(I_gxy), VP(dx_gxy), VP(dy_gxy), VP(dz_gxy), + VP(I_gxz), VP(dx_gxz), VP(dy_gxz), VP(dz_gxz), + VP(I_gyy), VP(dx_gyy), VP(dy_gyy), VP(dz_gyy), + VP(I_gyz), VP(dx_gyz), VP(dy_gyz), VP(dz_gyz), + VP(I_gzz), VP(dx_gzz), VP(dy_gzz), VP(dz_gzz), + VP(I_Kxx), VP(I_Kxy), VP(I_Kxz), VP(I_Kyy), VP(I_Kyz), VP(I_Kzz) + }; + +const CCTK_INT operand_indices[N_output_arrays]; + = { + 0, 0, 0, 0, // gxx + 1, 1, 1, 1, // gxy + 2, 2, 2, 2, // gxz + 3, 3, 3, 3, // gyy + 4, 4, 4, 4, // gyz + 5, 5, 5, 5, // gzz + 6, 7, 8, 9, 10, 11 // Kxx-Kzz + }; + +const CCTK_INT operation_codes[N_output_arrays] + = { + 0, 1, 2, 3, // I, dx, dy, dz + 0, 1, 2, 3, // I, dx, dy, dz + 0, 1, 2, 3, // I, dx, dy, dz + 0, 1, 2, 3, // I, dx, dy, dz + 0, 1, 2, 3, // I, dx, dy, dz + 0, 1, 2, 3, // I, dx, dy, dz + 0, 0, 0, 0, 0, 0 // all I + }; + +int param_table_handle = Util_TableCreate(UTIL_TABLE_DEFAULT); +Util_TableSetInt(param_table_handle, 3, "order"); +Util_TableSetIntArray(param_table_handle, + N_output_arrays, operand_indices, + "operand_indices"); +Util_TableSetIntArray(param_table_handle, + N_output_arrays, operation_codes, + "operation_codes"); + +int status = CCTK_InterpGridArrays(GH, + N_dims, + operator_handle, coord_system_handle, + param_table_handle, + N_interp_points, + interp_coord_type_codes, interp_coords, + N_input_arrays, + input_array_variable_indices, + N_output_arrays, + output_array_type_codes, output_arrays); +if (status < 0) + { + CCTK_WARN(status, "error return from CCTK_InterpGridArrays()!"); + CCTK_Exit(GH, status); /*NOTREACHED*/ + } +Util_TableDestroy(param_table_handle); diff --git a/doc/documentation.tex b/doc/documentation.tex new file mode 100644 index 0000000..5ac372c --- /dev/null +++ b/doc/documentation.tex @@ -0,0 +1,1063 @@ +%version $Header$ +\documentclass{article} + +\def\eqref#1{$(\ref{#1})$} +\def\cf{cf.\hbox{}} +\def\ie{i.e.\hbox{}} +\def\eg{e.g.\hbox{}} +\def\etal{{\it et~al.\/}} + +\def\defn#1{{\bf #1}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{document} +\title{LocalInterp} +\author{Jonathan Thornburg, incorporating code from Thomas Radke} +% +% We want CVS to expand the Id keyword on the next line, but we don't +% want TeX to go into math mode to typeset the expansion (because that +% wouldn't look as nice in the output), so we use the "$ $" construct +% to get TeX out of math mode again when typesetting the expansion. +% +\date{$ $Id$ $} +\maketitle + +\abstract{ + This thorn provides processor-local interpolation of + 1-D, 2-D, and 3-D data arrays. It provides several + different interpolators, and supports both the older + \verb|CCTK_InterpLocal()| API, and the newer + \verb|CCTK_InterpLocalUniform()| and + \verb|CCTK_InterpLocalNonUniform()| APIs. + } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{Introduction} + +This thorn provides processor-local interpolation of 1, 2, and 3-D +arrays. At present there are 2~interpolators provided (we hope to +add other interpolators soon): +\begin{description} +\item[Uniform Cartesian] + This is the local interpolator which used to live + in the PUGHInterp thorn. It was written in C by + Thomas Radke in early 2001, drawing on earlier Fortran code + by Paul Walker. It supports the \verb|CCTK_InterpLocal()| API. + It provides Lagrange polynomial interpolation for all + combinations of~1, 2, and 3~dimensions, and orders~1, + 2, and~3. (It would be easy to add additional dimensions + and/or orders if desired.) +\item[Generalized Polynomial] + This interpolator was written in C (plus Maple to generate + the coefficients) by Jonathan Thornburg in winter 2001-2002. + It supports the \verb|CCTK_InterpLocalUniform()| API. + It provides Lagrange polynomial interpolation in + 1~dimension (orders~1-6) and~2 and 3~dimensions (orders~1-4). + (Again, it would be easy to add additional dimensions and/or + orders.) It offers a number of options, described below. +\end{description} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{Terminology} + +Within Cactus, each interpolator has a character-string name; +this is mapped to a Cactus \defn{interpolator handle} by +\verb|CCTK_InterpHandle()|. For any given interpolator handle, +there may be a separate interpolator defined for each of the +interpolation APIs (both the processor-local ones provided by this +thorn, and the global ones provided by driver-specific interpolator +thorns such as PUGHInterp). + +Terminology for interpolation seems to differ a bit from one author +to another. Here we refer to the \defn{point-centered} interpolation +of a set of \defn{input arrays} (defining data on a uniformly or +nonuniformly spaced \defn{grid} of \defn{data points}) to a set of +\defn{interpolation points} (specified by a corresponding set of +\defn{interpolation coordinates}), with the results being stored +in a corresponding set of \defn{output arrays}. Alternatively, +we may refer to \defn{cell-centered} interpolation, using a grid +of \defn{data cells} and a set of \defn{interpolation cells}. +(This latter terminology is common in hydrodynamics interpolators.) + +At present all the interpolators do polynomial interpolation, and +allow the interpolation of multiple input arrays (to the same set of +interpolation points) in a single interpolator call, using the basic +algorithm: +\begin{verbatim} +for each interpolation point +{ +choose a finite difference molecule position + somewhere near the interpolation point + for each input array + { + compute an interpolating polynomial which approximates + the input data at the molecule points + output = polynomial(interpolation point) + } +} +\end{verbatim} +In the future, we may add other interpolators where the choice of +molecule is data-dependent (and thus may vary from one input array to +the next), and/or where the entire input grid is used in each interpolation. + +We define the \defn{order} of the interpolation to be the order of +the fitted polynomial. That is, in our terminology, linear interpolation +is order~1, quadratic is order~2, cubic is order~3, etc. An order~$n$ +interpolator thus has $O(\Delta x^{n+1})$ errors for smooth input data. + +However, because the interpolating polynomial generally changes if +the interpolation point moves from one grid cell to another, unless +something special is done the interpolating function isn't smooth, +\ie{} its The 1st~derivative is generically {\em discontinuous\/}, +with $O(\Delta x^n)$ jump discontinuities each time the interpolating +polynomial changes. Correspondingly, the interpolation error is +generically a ``bump function'' which is zero at each grid point +and rises to a local maximum in each grid cell. There are interpolation +algorithms (\eg{} Hermite polynomial and spline interpolation) which +give better smoothness, but none of the present interpolators implement +them. :( + +As given in the function reference section of the Cactus User's Guide, +\verb|interp_coords|, \verb|input_arrays|, and \verb|output_arrays| are +actually all pointers to arrays of \verb|void *| pointers, since we +support a number of different Cactus data types. Internally, the +interpolator casts these \verb|void *| pointers to \verb|CCTK_REAL *| +or whatever the correct Cactus data types are. But when describing +how the interpolator accesses the various arrays, for simplicity we +usually gloss over this casting, \ie{}~we pretend that \verb|interp_coords|, +\verb|input_arrays|, and \verb|output_arrays| are pointers to arrays +of \verb|CCTK_REAL *| pointers. (This may become clearer once you +read the next example.) + +We use \verb|pt|, \verb|in|, and \verb|out| as generic 0-origin integer +subscripts into the arrays of interpolation points, input arrays, and +output arrays respectively. We use \verb|(i,j,k)| as a generic +\verb|N_dims|-vector of integer subscripts into the input array +\verb|input_arrays[in]|. (Thus \defn{{\tt |(i,j,k)|} space} refers to +the grid of data points.) We usually only write array subscripting +expressions for the 3-D case; the restrictions/generalizations to +other dimensions should be obvious. + +For example, for 3-D interpolation, the (x,y,z) coordinates of a typical +interpolation point are given by +\begin{verbatim} +x = interp_coords[0][pt] +y = interp_coords[1][pt] +z = interp_coords[2][pt] +\end{verbatim} +(Notice here that as described above, we've implicitly taken +\verb|interp_coords| to have the C~type +\verb|const CCTK_REAL *interp_coords[]|, glossing over the casting +from its actual C~type of \verb|const void *interp_coords[]|.) + +We take \verb|axis| to be an integer specifying a dimension, +\ie{}~0~for~$x$, 1~for~$y$, 2~for~$z$, \dots. + +When describing Jacobians and domains of dependence, it's useful to +introduce the notion of \defn{molecule position}, a nominal reference +point for the interpolation molecule in \verb|(i,j,k)| coordinate +space. (For example, the molecule position might just be the \verb|(i,j,k)| +coordinates of the molecule's center.) We also introduce +\defn{molecule coordinates} \verb|(mi,mj,jk)|, which are just +\verb|(i,j,k)| coordinates relative to the molecule position. +We use \verb|m| or as a generic molecule coordinate. Thus +(in notation which should be obvious) a generic molecule operation +can be written +\begin{equation} +\verb|output| = \sum_{\tt m} \verb|coeff[posn+m]| \times \verb|input[posn+m]| +\end{equation} +Note that there is no requirement that the output be semantically +located at the position \verb|posn|! (This may become clearer once +you look at the example in +section~\ref{sect-generic-options/Jacobian/fixed-sized-hypercube}.) + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{Generic Interpolator Options} +\label{sect-generic-options} + +The newer \verb|CCTK_InterpLocalUniform()| and +\verb|CCTK_InterpLocalNonUniform()| APIs specify a \defn{parameter table} +(a Cactus key-value table, manipulated by the \verb|Util_Table*()| APIs) +as a generic mechanism for passing optional input to, and/or returning +optional results from, the interpolator. Different interpolators support +different options; in this section we describe some options which are, +or will plausibly, be common to multiple interpolators. + +Note that except as described in section~\ref{sect-generic-options/caching} +(``Caching''), all interpolator arguments and parameters apply only to +the current interpolator call: there is no visible state kept inside +the interpolator from one call to another. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Interpolation Order} + +The uniform Cartesian interpolator encodes the order in the operator +name, but other interpolators should use a (mandatory) parameter-table +parameter +\begin{verbatim} +const CCTK_INT order; +\end{verbatim} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Handling of Out-of-Range Interpolation Points} + +By default, interpolators should consider it an error if any interpolation +point lies outside the grid, \ie{} if the ``interpolation'' is actually +an extrapolation. (Some interpolators may apply a small ``fuzz'' to +this test to help avoid floating-point rounding problems.) + +Some interpolators may allow this behavior to be changed by the +optional parameter +\begin{verbatim} +const CCTK_REAL out_of_range_tolerance[N_dims]; +\end{verbatim} +The semantics of this are as follows: For each \verb|axis|, +\begin{description} +\item[\rm If $\hbox{\tt out\_of\_range\_tolerance[axis]} \ge 0.0$,] + then an interpolation point is considered to be ``out of range'' + if and only if the interpolation point is + $> \verb|out_of_range_tolerance[axis]| + \times \verb|coord_delta[axis]|$ + outside the grid in any coordinate. +\item[\rm If $\hbox{\tt out\_of\_range\_tolerance[axis]} = -1.0$,] + then an interpolation point is considered to be ``out of range'' + if and only if a centered molecule (or more generally, + a molecule whose centering is chosen pretending that + the grid is of infinite extent), would require data + from outside the grid. +\end{description} +Other values of \verb|out_of_range_tolerance[axis]| are illegal. + +To provide the ``fuzz'' noted above, \verb|out_of_range_tolerance[]| +should default to having all elements set to a very small positive +value, say $10^{-14}$. (This value should really be scaled with the +floating-point precision used,%%% +\footnote{%%% + If this scaling is done, a reasonable value for + {\tt out\_of\_range\_tolerance[]} would be around + $100 \epsilon$, where the \defn{machine epsilon} + $\epsilon$ is defined to be the smallest positive + floating-point number such that $1.0 + \epsilon$ + compares ``not equal to'' 1.0 in floating-point + arithmetic. Machine epsilon values can be found + in the standard header file {\tt <float.h>}; + for IEEE single and double precision they are + about $1.19{\times}10^{-7}$ and $2.22{\times}10^{-16}$ + respectively. + }%%% +{} but none of the interpolators do this at present.) + +If any interpolation points are out of range, interpolators should +return the error code \verb|CCTK_ERROR_INTERP_POINT_X_RANGE|, and +report further details about the error by setting the following +parameter-table entries: +\begin{verbatim} +/* which interpolation point is out of range? */ +/* (value is pt for out-of-range point) */ +CCTK_INT out_of_range_pt; + +/* in which coordinate axis is the point out of range? */ +/* (value is axis for out-of-range point) */ +CCTK_INT out_of_range_axis; + +/* on which end of the grid is the point out of range? */ +/* (value is -1 for min, +1 for max) */ +CCTK_INT out_of_range_end; +\end{verbatim} + +Note that if multiple points and/or axes are out of range, different +interpolators may vary in which out-of-range error they report. That +is, it is {\em not\/} necessarily the case that the ``first'' such +error will be the one reported.%%% +\footnote{%%% + This is to make life simpler for interpolators + which work in parallel over multiple processors. + }%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Molecule Family} +\label{sect-generic-options/molecule-family} + +An interpolator may support different families/shapes of interpolation +molecules. Hypercube-shaped molecules are the simplest and most common +case, but one could also imagine (say) octagon-shaped molecules in 2-D, +or some generalization of this in higher numbers of dimensions. + +The parameter +\begin{verbatim} +const char molecule_family[]; /* set with Util_TableSetString() */ +\end{verbatim} +may be used to query or change the strategy for choosing the molecules. + +The semantics are that if this key is present with the value \verb|""| +(a 0-length ``empty'' string), this queries the default molecule family: +the interpolator will (re)set the value to a string describing the default +molecule family (\verb|"cube"| for hypercube-shaped molecules%%% +\footnote{%%% + Strictly speaking, these should be called + ``parallelipiped-shaped'' molecules, but this + term is so clumsy (and hard to spell!) that + we just call them hypercube-shaped instead. + }%%% +). +If this key is present with a value which is a non-empty string, this +sets the molecule family/shape based on that string. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Non-Contiguous Input Arrays} +\label{sect-generic-options/non-contiguous-inputs} + +Sometimes one of the input ``arrays'' used by the interpolator might not +be contiguous in memory. For example, we might want to do 2-D interpolation +within a plane of a 3-D grid array, but the plane might or might not be +contiguous in memory. (Another example would be that the input array +might be a member of a compact group.) + +One way to do this would be to use the hyperslab API to explicitly compute +the input data on an appropriate hyperslab, then interpolate within that. +However, some interpolators may support accessing the appropriate hyperslab +of the input grid directly inside the interpolator. If this is supported, +it's probably considerably cheaper than explicitly computing the hyperslab. + +If an interpolator supports this, it should use the following (optional) +parameter-table entries to specify non-contiguous inputs: +\begin{verbatim} +const CCTK_INT input_array_offsets[N_input_arrays]; + +/* the next 3 table entries are shared by all input arrays */ +const CCTK_INT input_array_strides [N_dims]; +const CCTK_INT input_array_min_subscripts[N_dims]; +const CCTK_INT input_array_max_subscripts[N_dims]; +\end{verbatim} + +Then the interpolator would access the input using the generic +subscripting expression +\begin{verbatim} +input_array[in][offset + i*stride_i + j*stride_j + k*stride_k] +\end{verbatim} +where +\begin{verbatim} +offset = input_array_offsets[in] +(stride_i,stride_j,stride_k) = input_array_strides[] +\end{verbatim} +\verb|(i,j,k)| run from \verb|input_array_min_subscripts[]| +to \verb|input_array_max_subscripts[]| inclusive +(n.b.~this is an {\em inclusive\/} range, \ie{} +$\verb|min| \le \verb|(i,j,k)| \le \verb|max|$). + +The defaults are that each input array is contiguous in memory, +\ie{} \verb|input_array_offsets[]| = 0, +\verb|stride| determined from \verb|input_array_dims[]| + in the usual Fortran manner, +\verb|input_array_min_subscripts[]| = all 0s, and +\verb|input_array_max_subscripts[]| = \verb|input_array_dims[]|-1. +If the stride and max subscript are both specified explicitly, then the +explicit \verb|input_array_dims[]| argument to +\verb|CCTK_InterpLocalUniform()| is ignored. + +At present all the interpolators take the output arrays to be +contiguous 1-D arrays. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Derivatives} + +Some interpolators can optionally take derivatives as part of the +interpolation, \ie{} if we view the input data as being samples of +a smooth function, then instead of estimating values of that function +at the interpolation points, the interpolator can instead or additionally +estimate values of various derivatives of that function at the +interpolation points. We don't currently implement it, but one could +also imagine interpolating more general molecule operations such as +Laplacians, running integrals, etc. + +To specify such operations, an interpolator should use the parameter-table +entries +\begin{verbatim} +const CCTK_INT operand_indices[N_output_arrays]; +const CCTK_INT operation_codes[N_output_arrays]; +\end{verbatim} +The semantics here are that +\begin{verbatim} +output_array[out] = op(input_array[operand_indices[out]]) +\end{verbatim} +where \verb|op| is an operator specified by the \verb|operation_codes[out]| +value as described below. + +Note that \verb|operand_indices[]| doesn't directly name the inputs, +but rather gives their (0-origin) subscripts in the list of inputs. +This allows for a more efficient implementation in the (common) case +where some of the input arrays have many different operations applied +to them. + +Negative \verb|operation_codes[out]| values are reserved for future +expansion. An \verb|operation_codes[out]| value which is $\ge 0$ is +taken as a decimal integer encoding a coordinate partial derivative: +each decimal digit means to take the coordinate partial derivative along +that (1-origin) axis; the order of the digits in a number is ignored. +For example: +\begin{flushleft} +\begin{tabular}{cl} +\verb|operation_codes[out]| + & What it means \\ +\hline %----------------------------------------------------------------------- +0 & no derivative, ``just'' interpolate the input array \\ +1 & interpolate $\partial \big/ \partial x^1$ of the input array \\ +2 & interpolate $\partial \big/ \partial x^2$ of the input array \\ +12 or 21 + & interpolate $\partial^2 \big/ \partial x^1 \partial x^2$ + of the input array \\ +33 & interpolate $\partial^2 \big/ \partial (x^3)^2$ of the input array %%%\\ +\end{tabular} +\end{flushleft} + +At present we do {\em not\/} have any \verb|#define|s for the +operation codes in the Cactus header files. However, you can avoid +most of the software-engineering problems of having ``magic numbers'' +for the operation codes, by using the macro +\begin{verbatim} +#define DERIV(op) op +\end{verbatim} +to mark all such \verb|operation_codes[]| values in your code. +There's an example of this in section~\ref{sect-example-derivatives}. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Jacobian and Domain of Dependence} +\label{sect-generic-options/Jacobian} + +Sometimes we want to know the Jacobian of the interpolator, +\begin{equation} +\frac{\partial \hbox{\tt output\_array[out][pt]}} + {\partial \hbox{\tt input\_array[in][(i,j,k)]}} + \label{eqn-Jacobian} +\end{equation} +and/or ``just'' the set of \verb|(i,j,k)| for which this is nonzero +(\ie{} the sparsity structure of the Jacobian, equivalently the domain +of dependence of the output result, or equivalently the interpolation +molecule size and shape) for a given \verb|out|, \verb|in|, and \verb|pt|. + +The complexity of doing this depends (strongly!) on the structure +of the Jacobian, and in particular on the answers to the following +questions: +\begin{itemize} +\item What molecule family is being used?%%% +\footnote{%%% + For something like a spline interpolator the Jacobian + is generally nonzero for all {\tt |(i,j,k)|}, but + exponentially small for most of them; in this case + the Jacobian-query API would probably specify a cutoff + to return an approximate Jacobian with reasonable sparsity. + }%%% +\item Does the interpolator always use the same molecule size + and shape (possibly depending on the interpolation order, + molecule family, or other such parameters), independent + of where the interpolation points are in the grid?%%% +\footnote{%%% + We can always make the interpolation molecules be + the ``same size and shape'' by padding them with + zero entries to bring them all up to the size of + the largest molecule used anywhere in the grid, + but this would be very inefficient if many molecules + were padded in this way. + }%%% +\item Does the interpolator use the same interpolation molecule + size and shape for each output array? (The answer to this + question may depend on whether and/or what derivatives are + being computed.) +\end{itemize} +Because the different cases differ so much in their complexity, +we define several distinct APIs for obtaining the interpolator's +Jacobian and/or domain of dependence. + +%%%%%%%%%%%%%%%%%%%% + +\subsubsection{Querying the Interpolator about the Jacobian's structure} + +To allow generic code to determine which of the different Jacobian-structure +cases applies, (and thus which APIs to use), an interpolator which +supports Jacobian operations should support using the following +parameter-table entries to query the interpolator about the Jacobian +structure: + +The parameter \verb|molecule_family| may may be used to query what +molecule family is being used. This is described in detail in +section~\ref{sect-generic-options/molecule-family}. + +This parameter may be used to query whether the interpolation molecule's +size and/or shape varies with the interpolation coordinates: +\begin{verbatim} +CCTK_INT MSS_is_fn_of_interp_coords; +\end{verbatim} +The semantics of this are that if this key is present%%% +\footnote{%%% + ``MSS'' abbreviates ``{\bf m}olecule {\bf s}ize + and/or {\bf s}hape''. + }%%% +{} (the value doesn't matter), then the interpolator will (re)set +the value to 0~if the molecule size and shape do {\em not\/} vary +with the interpolation coordinates, or 1~if the molecule size and/or +shape {\em do\/} vary with the interpolation coordinates. + +This parameter may be used to query whether the interpolation molecule's +size and/or shape varies from one output array to another: +\begin{verbatim} +CCTK_INT MSS_is_fn_of_which_output; +\end{verbatim} +The semantics of this are that if this key is present (the value +doesn't matter), then the interpolator will (re)set the value to +0~if the molecule size and shape do {\em not\/} vary from one output +array to another (this includes the case where there is only 1~output +array!), or 1~if the molecule size and/or shape {\em do\/} vary from +one output array to another. Note that since the answer to this may +depend on whether and/or what derivatives are being computed, setting +this key may force the interpolator to scan completely through the +derivative specifications. This probably isn't {\em very\/} costly, +but you may want to avoid unnecessarily paying that cost by deleting +the query key (\verb|MSS_is_fn_of_which_output|) from the table +on future interpolator calls. + +%%%%%%%%%%%%%%%%%%%% + +\subsubsection{Fixed-Size Hypercube-Shaped Molecules} +\label{sect-generic-options/Jacobian/fixed-sized-hypercube} + +The simplest case (and the only one for which we have defined an API +at present) is when the molecules are hypercube-shaped and of (small) +fixed size, independent of the interpolation coordinates (though likely +depending on the interpolation order or other such parameters), and +not varying from one output array to another. + +The following parameters may be used to query the molecule size: +\begin{verbatim} +CCTK_INT const interp_molecule_min_m[N_dims]; +CCTK_INT const interp_molecule_max_m[N_dims]; +\end{verbatim} +The semantics of these are that if these keys are present (the values +don't matter), then the interpolator will (re)set the values to give +the (inclusive) minimum and maximum \verb|m|~molecule coordinates. + +The following parameter may be used to query the molecule positions: +\begin{verbatim} +CCTK_INT *const interp_molecule_positions[N_dims]; +\end{verbatim} +The semantics of this is that the caller should set +\verb|interp_molecule_positions[]| to an array of +\verb|N_dims| pointers to (caller-supplied) arrays of +\verb|N_interp_points| \verb|CCTK_INT|s each. If this key exists, +then the interpolator will store the molecule positions in the +pointed-to arrays. + +The following parameters may be used to query the +Jacobian~\eqref{eqn-Jacobian} itself: +\begin{verbatim} +CCTK_REAL *const Jacobian_pointer[N_output_arrays]; +const CCTK_INT Jacobian_offset [N_output_arrays]; + +/* the next 2 table entries are shared by all Jacobians */ +const CCTK_INT Jacobian_interp_point_stride; +const CCTK_INT Jacobian_m_strides[N_dims]; +\end{verbatim} +Then the interpolator would store the Jacobian~\eqref{eqn-Jacobian} in +\begin{verbatim} +Jacobian_pointer[out][offset + pt*Jacobian_interp_point_stride + + mi*stride_i + mj*stride_j + mk*stride_k] +\end{verbatim} +where +\begin{verbatim} +offset = Jacobian_offset[out] +(stride_i,stride_j,stride_k) = Jacobian_m_strides[] +\end{verbatim} + +By appropriately setting the various stride parameters, this allows +a fairly wide variety of possible storage layouts for the Jacobian. + +An example may help to clarify this: Suppose we have a 1-D grid +with 11~grid points, with integer subscripts~0 through~10 inclusive, +and interpolation coordinates given by \verb|coord_origin = 0.0| +and \verb|coord_delta = 0.1|. +Suppose further that we're doing quadratic interpolation, using +3-point (vertex-centered) molecules, and that the interpolator +centers the interpolation molecules as close to the interpolation +point as possible subject to the constraint that the molecules +never require data from outside the grid. +Finally, suppose that we query the Jacobian molecule positions for +the \verb|N_interp_points=14| interpolation points 0.0, 0.04, 0.06, +0.10, 0.14, 0.16, 0.20, 0.80, 0.84, 0.86, 0.90, 0.94, 0.96, 1.00. +Then the queries might return +\begin{verbatim} +interp_molecule_min_m = -1 +interp_molecule_max_m = +1 + /* interp_x molecule */ +interp_molecule_positions[0][ 0] = 1 /* 0.00 [0.0, 0.1, 0.2] */ +interp_molecule_positions[0][ 1] = 1 /* 0.04 [0.0, 0.1, 0.2] */ +interp_molecule_positions[0][ 2] = 1 /* 0.06 [0.0, 0.1, 0.2] */ +interp_molecule_positions[0][ 3] = 1 /* 0.10 [0.0, 0.1, 0.2] */ +interp_molecule_positions[0][ 4] = 1 /* 0.14 [0.0, 0.1, 0.2] */ +interp_molecule_positions[0][ 5] = 2 /* 0.16 [0.1, 0.2, 0.3] */ +interp_molecule_positions[0][ 6] = 2 /* 0.20 [0.1, 0.2, 0.3] */ +interp_molecule_positions[0][ 7] = 8 /* 0.80 [0.7, 0.8, 0.9] */ +interp_molecule_positions[0][ 8] = 8 /* 0.84 [0.7, 0.8, 0.9] */ +interp_molecule_positions[0][ 9] = 9 /* 0.86 [0.8, 0.9, 1.0] */ +interp_molecule_positions[0][10] = 9 /* 0.90 [0.8, 0.9, 1.0] */ +interp_molecule_positions[0][11] = 9 /* 0.94 [0.8, 0.9, 1.0] */ +interp_molecule_positions[0][12] = 9 /* 0.96 [0.8, 0.9, 1.0] */ +interp_molecule_positions[0][13] = 9 /* 1.00 [0.8, 0.9, 1.0] */ +\end{verbatim} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Caching} +\label{sect-generic-options/caching} + +Some interpolators may support special ``caching'' optimizations to +speed repeated interpolations where some or all of the interpolator +arguments and/or parameters are the same. For example, when interpolating +a tabulated equation of state the number of dimensions, the coordinate +origin and grid spacing, and the input arrays (the tabulated equation +of state data), will probably all be the same from one interpolator +call to another. + +If an interpolator supports caching, the following parameters should +be used to control this: + +\begin{verbatim} +const char cache_type[]; /* set with Util_TableSetString() */ +const char cache_control[]; /* set with Util_TableSetString() */ +CCTK_INT cache_handle; +\end{verbatim} + +There are three basic operations supported: +\begin{description} +\item[Create a Cache] + To set up caching, call the interpolator with \verb|cache_type| + set to describe what arguments and/or parameters will remain + the same in future interpolator calls, \verb|cache_control| + set to the string \verb|"create"|, and \verb|cache_handle| + {\em not\/} in the parameter table. The interpolator will + then do extra (possibly quite time-consuming) work to set + up cached information. The interpolator will delete the + key \verb|cache_control|, and return a handle to the cached + information in \verb|cache_handle|; this allows multiple caches + to be active concurrently. +\item[Use a Cache] + To use a cache (\ie{}~to make an interpolation with the + hoped-for speedup), just call the interpolator with + \verb|cache_handle| set to the value returned when the cache + was created. Note that you still have to provide all the + ``will be the same'' interpolator arguments and/or parameters; + providing a cache handle is essentially just a promise that + these will be the same as in the cache-create interpolator + call. The details of what information is cached, and if/how + the ``will be the same'' arguments are still used, are up to + the interpolator. +\item[Destroy a Cache] + To destroy a cache (\ie{} free any memory allocated when + the cache was created), call the interpolator with + \verb|cache_handle| set to the value returned when the cache + was created, and \verb|cache_control| set to the string + \verb|"destroy"|. The interpolator will delete the keys + \verb|cache_handle| and \verb|cache_control|, and destroy + the cache. +\end{description} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{The Uniform Cartesian Interpolator} + +The uniform Cartesian interpolator is the one which used to live +in the PUGHInterp thorn. It was written in C by Thomas Radke in +early 2001, drawing on earlier Fortran code by Paul Walker. It +supports the \verb|CCTK_InterpLocal()| API, and thus doesn't use +any parameter table at all. It provides Lagrange polynomial +interpolation of orders 1, 2, and 3, registered under the operator +names \verb|"first-order uniform Cartesian"|, +\verb|"second-order uniform Cartesian"|, and +\verb|"third-order uniform Cartesian"| respectively. Each of these +supports 1, 2, and 3-D arrays. The code is hard-wired for +hypercube-shaped interpolation molecules, but it would be easy +to add additional orders and/or dimensions if desired. + +Although the \verb|CCTK_InterpLocal()| API supports both uniform +and nonuniform grids for the input data, the present implementation +assumes a uniform grid (and silently gives wrong results for a +nonuniform grid). + +See the Cactus User's Guide ``Full Description of Functions'' +appendix for a full description of the \verb|CCTK_InterpLocal()| +API, and some examples of how to use it. + +%%%%%%%%%%%%%%%%%%%% + +\subsection{Implementation} + +Internally, this interpolator always does 3-D interpolation, inserting +zero coordinates as appropriate for lower dimensionalities. The +interpolation is done by successive 1-D interpolations along each +axis. See the \verb|README| file in the source code directory +\verb|LocalInterp/src/UniformCartesian/| for further details. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{The Generalized Polynomial Interpolator} + +The generalized polynomial interpolator was written in C +(plus Maple to generate the coefficients) by Jonathan Thornburg in +winter 2001-2002. It provides Lagrange polynomial interpolation of +orders 1-6 for 1-D arrays, and 1-4 for 2- and 3-D +arrays, all registered under the operator name +\verb|"generalized polynomial"|. (Again, it would be easy to add +additional orders and/or dimensions if desired.) The code allows +arbitrarily-shaped interpolation molecules, but at the moment only +hypercube-shaped molecules are implemented. + +This interpolator supports a number of the options described in +section~\ref{sect-generic-options}: +\begin{itemize} +\item interpolation order +\item handling of out-of-range interpolation points + (if there are multiple out-of-range points/axes, the + one reported will be the first, \ie{}~the out-of-range + point with the smallest \verb|pt|, and of that points + out-of-range axes, the one with the smallest \verb|axis|) + +\item non-contiguous input arrays +\item derivatives + (when taking derivatives with this interpolator, + it's most efficient to group all operations on + a given input array together in the \verb|operand_indices| + and \verb|operation_codes| arrays, as in the example in + section~\ref{sect-example-derivatives}) +\end{itemize} +At present this interpolator does not support computing the Jacobian, +but we hope to add this in the near future. This interpolator also +does not support any caching features; at present (Feb 2002) we have +no plans to add these. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Smoothing} + +The way the generalized polynomial interpolator is implemented it's +easy to also do Savitzky-Golay smoothing.%%% +\footnote{%%% + See section 14.8 of Numerical Recipes + 2nd edition for a general discussion of + Savitzky-Golay smoothing. + }%%% +{} This is best described by way of an example: Suppose we're doing +1-D cubic interpolation, \ie{} at each interpolation point we're using +a cubic polynomial fitted to 4~surrounding data points. For +Savitzky-Golay smoothing, we would instead {\em least-squares fit\/} +a cubic polynomial to some {\em larger\/} number of surrounding data +points. This combines interpolation with smoothing, so there's less +amplification of noise in the input data in the interpolation outputs. + +The optional input +\begin{verbatim} +const CCTK_INT smoothing; +\end{verbatim} +specifies how much (how many points) to enlarge the interpolation +molecule for this. The default is 0 (no smoothing). 1 would mean to +enlarge the molecule by 1 point, \eg{} to use a 5-point molecule instead +of the usual 4-point one for cubic interpolation. 2 would mean to +enlarge by 2 points, \eg{} to use a 6-point molecule for cubic +interpolation. Etc etc. + +Note that in $>1$~dimension, the default hypercube-shaped molecules +already use more data points than the number of free parameters in +the interpolating polynomials, \ie{} they already do some Savitzky-Golay +smoothing. For example, in 2-D a generic cubic polynomial +$f(x,y) = \sum_{i+j \leq 3} c_{ij} x^i y^j$ has 10 free parameters +$c_{ij}$, which we least-squares fit to the 16 data points in the +$4 \times 4$ molecule. + +Savitzky-Golay smoothing is basically free apart from the increase in +the molecule size, e.g. a \verb|smoothing|=2 cubic interpolation has +exactly the same cost as any other 6-point--molecule interpolation. + +Alas, at the moment only the trivial case \verb|smoothing|=0 is +implemented, but the framework is all there for more general cases. + +%%%%%%%%%%%%%%%%%%%% + +\subsection{Implementation} + +This interpolator's basic design is to use separate specialized code +for each combination of +$(\verb|N_dims|, \verb|molecule_family|, \verb|order|, \verb|smoothing|)$, +\ie{}~in practice for each distinct choice of interpolation molecule. +Maple is used to generate all the interpolation coefficients. +The C preprocessor is then used to generate all the specialized code +from a single master ``template'' file. The template code uses +\verb|#ifdef|s to handle lower dimensions with no extra overhead, +\eg{}~1-D/2-D interpolation is basically just as efficient as in +a purpose-built 1-D/2-D interpolator, with no extra overhead imposed +by the interpolator also supporting higher-dimensional interpolation. + +The Maple code which generates the interpolation coefficients is quite +general-purpose, and can handle an arbitrary dimensionality and molecule +size/shape. Generating new coefficients can be rather time-consuming, +though, \eg{}~the current coefficients for 3-D for orders~1-4 take about +8~cpu minutes to generate using Maple~7 on a 1.7~GHz~P4. + +See the \verb|README| file in the source code directory +\verb|LocalInterp/src/UniformCartesian/| for further details on the +implementation. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\subsection{A Simple Example of {\tt CCTK\_InterpLocalUniform} Usage} + +Here's a simple example of interpolating a \verb|CCTK_REAL| and a +\verb|CCTK_COMPLEX| $10 \times 20$ 2-D array, at 5 interpolation points, +using cubic interpolation. + +\begin{verbatim} +#define N_DIMS 2 +#define N_INTERP_POINTS 5 +#define N_INPUT_ARRAYS 2 +#define N_OUTPUT_ARRAYS 2 + +/* (x,y,z) coordinates of data grid points */ +#define X_ORIGIN ... +#define X_DELTA ... +#define Y_ORIGIN ... +#define Y_DELTA ... +const CCTK_REAL origin[N_DIMS] = { X_ORIGIN, Y_ORIGIN }; +const CCTK_REAL delta [N_DIMS] = { X_DELTA, Y_DELTA }; + +/* (x,y,z) coordinates of interpolation points */ +const CCTK_REAL interp_x[N_INTERP_POINTS]; +const CCTK_REAL interp_y[N_INTERP_POINTS]; +const void *const interp_coords[N_DIMS] + = { (const void *) interp_x, (const void *) interp_y }; + +/* input arrays */ +/* ... note Cactus uses Fortran storage ordering, i.e. X is contiguous */ +#define N_X 10 +#define N_Y 20 +const CCTK_REAL input_real [N_Y][N_X]; +const CCTK_COMPLEX input_complex[N_Y][N_X]; +const CCTK_INT input_array_dims[N_DIMS] = { N_X, N_Y }; +const CCTK_INT input_array_type_codes[N_INPUT_ARRAYS] + = { CCTK_VARIABLE_REAL, CCTK_VARIABLE_COMPLEX }; +const void *const input_arrays[N_INPUT_ARRAYS] + = { (const void *) input_real, (const void *) input_complex }; + +/* output arrays */ +CCTK_REAL output_real [N_INTERP_POINTS]; +CCTK_COMPLEX output_complex[N_INTERP_POINTS]; +const CCTK_INT output_array_type_codes[N_OUTPUT_ARRAYS] + = { CCTK_VARIABLE_REAL, CCTK_VARIABLE_COMPLEX }; +void *const output_arrays[N_OUTPUT_ARRAYS] + = { (void *) output_real, (void *) output_complex }; + +int operator_handle, param_table_handle; +operator_handle = CCTK_InterpHandle("my interpolation operator"); +if (operator_handle < 0) + CCTK_WARN(-1, "can't get interpolation handle!"); +param_table_handle = Util_TableCreateFromString("order=3"); +if (param_table_handle < 0) + CCTK_WARN(-1, "can't create parameter table!"); + +if (CCTK_InterpLocalUniform(N_DIMS, + operator_handle, param_table_handle, + origin, delta, + N_INTERP_POINTS, + CCTK_VARIABLE_REAL, + interp_coords, + N_INPUT_ARRAYS, + input_array_dims, + input_array_type_codes, + input_arrays, + N_OUTPUT_ARRAYS, + output_array_type_codes, + output_arrays) < 0) + CCTK_WARN(-1, "error return from interpolator!"); +\end{verbatim} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\subsection{An Example of Interplating Derivatives} +\label{sect-example-derivatives} + +Consider the problem described earlier: the computation of all the +2nd~derivatives of the 3-metric at a set of interpolation points on +a 2-sphere. Here's how we could do this in C: +\begin{verbatim} +#define N_DIMS 3 + +/* interpolation points */ +#define N_INTERP_POINTS 1000 +const CCTK_REAL interp_x[N_INTERP_POINTS], + interp_y[N_INTERP_POINTS], + interp_z[N_INTERP_POINTS]; +const void *const interp_coords[N_DIMS] + = { (const void *) interp_x, + (const void *) interp_y, + (const void *) interp_z }; + +/* dimensions of the data grid */ +#define NX 30 +#define NY 40 +#define NZ 50 + +/* input arrays */ +#define N_INPUT_ARRAYS 6 +const CCTK_REAL gxx[NX][NY][NZ], gxy[NX][NY][NZ], gxz[NX][NY][NZ], + gyy[NX][NY][NZ], gyz[NX][NY][NZ], + gzz[NX][NY][NZ]; + +const CCTK_INT input_array_dims[N_DIMS] = {NX, NY, NZ}; +const CCTK_INT input_array_type_codes[N_INPUT_ARRAYS] + = { CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL }; +const void *const interp_coords[N_INPUT_ARRAYS] + = { (const void *) gxx, (const void *) gxy, (const void *) gxz, + (const void *) gyy, (const void *) gyz, + (const void *) gzz }; + +/* output arrays */ +#define N_OUTPUT_ARRAYS 36 +CCTK_REAL + dxx_gxx[N_INTERP_POINTS], dxy_gxx[N_INTERP_POINTS], dxz_gxx[N_INTERP_POINTS], + dyy_gxx[N_INTERP_POINTS], dyz_gxx[N_INTERP_POINTS], + dzz_gxx[N_INTERP_POINTS], + dxx_gxy[N_INTERP_POINTS], dxy_gxy[N_INTERP_POINTS], dxz_gxy[N_INTERP_POINTS], + dyy_gxy[N_INTERP_POINTS], dyz_gxy[N_INTERP_POINTS], + dzz_gxy[N_INTERP_POINTS], + dxx_gxz[N_INTERP_POINTS], dxy_gxz[N_INTERP_POINTS], dxz_gxz[N_INTERP_POINTS], + dyy_gxz[N_INTERP_POINTS], dyz_gxz[N_INTERP_POINTS], + dzz_gxz[N_INTERP_POINTS], + dxx_gyy[N_INTERP_POINTS], dxy_gyy[N_INTERP_POINTS], dxz_gyy[N_INTERP_POINTS], + dyy_gyy[N_INTERP_POINTS], dyz_gyy[N_INTERP_POINTS], + dzz_gyy[N_INTERP_POINTS], + dxx_gyz[N_INTERP_POINTS], dxy_gyz[N_INTERP_POINTS], dxz_gyz[N_INTERP_POINTS], + dyy_gyz[N_INTERP_POINTS], dyz_gyz[N_INTERP_POINTS], + dzz_gyz[N_INTERP_POINTS], + dxx_gzz[N_INTERP_POINTS], dxy_gzz[N_INTERP_POINTS], dxz_gzz[N_INTERP_POINTS], + dyy_gzz[N_INTERP_POINTS], dyz_gzz[N_INTERP_POINTS], + dzz_gzz[N_INTERP_POINTS]; +const CCTK_INT output_array_type_codes[N_OUTPUT_ARRAYS] + = { CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL, CCTK_VARIABLE_REAL, + CCTK_VARIABLE_REAL }; +void *const output_arrays[N_OUTPUT_ARRAYS] + = { (void *) dxx_gxx, (void *) dxy_gxx, (void *) dxz_gxx, + (void *) dyy_gxx, (void *) dyz_gxx, + (void *) dzz_gxx, + (void *) dxx_gxy, (void *) dxy_gxy, (void *) dxz_gxy, + (void *) dyy_gxy, (void *) dyz_gxy, + (void *) dzz_gxy, + (void *) dxx_gxz, (void *) dxy_gxz, (void *) dxz_gxz, + (void *) dyy_gxz, (void *) dyz_gxz, + (void *) dzz_gxz, + (void *) dxx_gyy, (void *) dxy_gyy, (void *) dxz_gyy, + (void *) dyy_gyy, (void *) dyz_gyy, + (void *) dzz_gyy, + (void *) dxx_gyz, (void *) dxy_gyz, (void *) dxz_gyz, + (void *) dyy_gyz, (void *) dyz_gyz, + (void *) dzz_gyz, + (void *) dxx_gzz, (void *) dxy_gzz, (void *) dxz_gzz, + (void *) dyy_gzz, (void *) dyz_gzz, + (void *) dzz_gzz }; + +/* integer codes to specify the derivatives */ +/* (for best efficiency we group all operations on a given input together) */ +const CCTK_INT operand_indices[N_OUTPUT_ARRAYS] + = { 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, + 3, 3, 3, 3, 3, 3, + 4, 4, 4, 4, 4, 4, + 5, 5, 5, 5, 5, 5 }; +#define DERIV(x) x +const CCTK_INT operation_codes[N_OUTPUT_ARRAYS] + = { DERIV(11), DERIV(12), DERIV(13), DERIV(22), DERIV(23), DERIV(33), + DERIV(11), DERIV(12), DERIV(13), DERIV(22), DERIV(23), DERIV(33), + DERIV(11), DERIV(12), DERIV(13), DERIV(22), DERIV(23), DERIV(33), + DERIV(11), DERIV(12), DERIV(13), DERIV(22), DERIV(23), DERIV(33), + DERIV(11), DERIV(12), DERIV(13), DERIV(22), DERIV(23), DERIV(33), + DERIV(11), DERIV(12), DERIV(13), DERIV(22), DERIV(23), DERIV(33) }; + +int operator_handle, param_table_handle; +operator_handle = CCTK_InterpHandle("my interpolation operator"); +if (operator_handle < 0) + CCTK_WARN(-1, "can't get interpolation handle!"); + +param_table_handle = Util_TableCreate(UTIL_TABLE_FLAGS_DEFAULT); +if (param_table_handle < 0) + CCTK_WARN(-1, "can't create parameter table!"); +if (Util_TableSetInt(param_table_handle, 3, "order") < 0) + CCTK_WARN(-1, "can't set order in parameter table!"); +if (Util_TableSetIntArray(param_table_handle, + N_OUTPUT_ARRAYS, operand_indices, + "operand_indices") < 0) + CCTK_WARN(-1, "can't set operand_indices array in parameter table!"); +if (Util_TableSetIntArray(param_table_handle, + N_OUTPUT_ARRAYS, operation_codes, + "operation_codes") < 0) + CCTK_WARN(-1, "can't set operation_codes array in parameter table!"); + +if (CCTK_InterpLocalUniform(N_DIMS, + operator_handle, param_table_handle, + origin, delta, + N_INTERP_POINTS, + CCTK_VARIABLE_REAL, + interp_coords, + N_INPUT_ARRAYS, + input_array_dims, + input_array_type_codes, + input_arrays, + N_OUTPUT_ARRAYS, + output_array_type_codes, + output_arrays) < 0) + CCTK_WARN(-1, "error return from interpolator!"); +\end{verbatim} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% +% Automatically created from the ccl files +% Do not worry for now. +% +\include{interface} +\include{param} +\include{schedule} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{Acknowledgments} + +Thanks to Ian Hawke for helpful comments on the documentation, +to Tom Goodale and Thomas Radke for many useful design discussions, +and to all the Cactus crew for a great infrastructure! + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\end{document} diff --git a/doc/interface.aux b/doc/interface.aux new file mode 100644 index 0000000..76caf46 --- /dev/null +++ b/doc/interface.aux @@ -0,0 +1,19 @@ +\relax +\@setckpt{interface}{ +\setcounter{page}{18} +\setcounter{equation}{2} +\setcounter{enumi}{0} +\setcounter{enumii}{0} +\setcounter{enumiii}{0} +\setcounter{enumiv}{0} +\setcounter{footnote}{7} +\setcounter{mpfootnote}{0} +\setcounter{part}{0} +\setcounter{section}{5} +\setcounter{subsection}{4} +\setcounter{subsubsection}{0} +\setcounter{paragraph}{0} +\setcounter{subparagraph}{0} +\setcounter{figure}{0} +\setcounter{table}{0} +} diff --git a/doc/param.aux b/doc/param.aux new file mode 100644 index 0000000..4164907 --- /dev/null +++ b/doc/param.aux @@ -0,0 +1,19 @@ +\relax +\@setckpt{param}{ +\setcounter{page}{18} +\setcounter{equation}{2} +\setcounter{enumi}{0} +\setcounter{enumii}{0} +\setcounter{enumiii}{0} +\setcounter{enumiv}{0} +\setcounter{footnote}{7} +\setcounter{mpfootnote}{0} +\setcounter{part}{0} +\setcounter{section}{5} +\setcounter{subsection}{4} +\setcounter{subsubsection}{0} +\setcounter{paragraph}{0} +\setcounter{subparagraph}{0} +\setcounter{figure}{0} +\setcounter{table}{0} +} diff --git a/doc/references b/doc/references new file mode 100644 index 0000000..53a38c0 --- /dev/null +++ b/doc/references @@ -0,0 +1,12 @@ +Thermodynamic consistency in EOS interpolation +@ARTICLE{2000ApJS..126..501T, + author = {{Timmes}, F.~X. and {Swesty}, F.~D.}, + title = "{The Accuracy, Consistency, and Speed of an Electron-Positron Equation of State Based on Table Interpolation of the Helmholtz Free Energy}", + journal = {Astrophysical Journal Supplement Series}, + year = 2000, + month = feb, + volume = 126, + pages = {501--516}, + url = {http://esoads.eso.org/cgi-bin/nph-bib_query?bibcode=2000ApJS..126..501T&db_key=AST}, + adsnote = {Provided by the NASA Astrophysics Data System} +} diff --git a/doc/schedule.aux b/doc/schedule.aux new file mode 100644 index 0000000..9a76364 --- /dev/null +++ b/doc/schedule.aux @@ -0,0 +1,19 @@ +\relax +\@setckpt{schedule}{ +\setcounter{page}{18} +\setcounter{equation}{2} +\setcounter{enumi}{0} +\setcounter{enumii}{0} +\setcounter{enumiii}{0} +\setcounter{enumiv}{0} +\setcounter{footnote}{7} +\setcounter{mpfootnote}{0} +\setcounter{part}{0} +\setcounter{section}{5} +\setcounter{subsection}{4} +\setcounter{subsubsection}{0} +\setcounter{paragraph}{0} +\setcounter{subparagraph}{0} +\setcounter{figure}{0} +\setcounter{table}{0} +} diff --git a/interface.ccl b/interface.ccl new file mode 100644 index 0000000..b94affd --- /dev/null +++ b/interface.ccl @@ -0,0 +1,6 @@ +# Interface definition for thorn LocalInterp +# $Header$ + +implements: LocalInterp + +# this thorn doesn't define or use any Cactus grid variables diff --git a/param.ccl b/param.ccl new file mode 100644 index 0000000..cdbd8aa --- /dev/null +++ b/param.ccl @@ -0,0 +1,4 @@ +# Parameter definitions for thorn LocalInterp +# $Header$ + +# there are no parameters for this thorn diff --git a/schedule.ccl b/schedule.ccl new file mode 100644 index 0000000..10a3202 --- /dev/null +++ b/schedule.ccl @@ -0,0 +1,12 @@ +# Schedule definitions for thorn LocalInterp +# $Header$ + +Schedule LocalInterp_UC_Startup at STARTUP after Driver_Startup +{ +LANG:C +} "LocalInterp/UniformCartesian startup routine" + +Schedule LocalInterp_GPU_Startup at STARTUP after Driver_Startup +{ +LANG:C +} "LocalInterp/GeneralizedPolynomial-Uniform startup routine" diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order1.smooth0/coeff-I.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order1.smooth0/coeff-I.compute.c new file mode 100644 index 0000000..b8ea11e --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order1.smooth0/coeff-I.compute.c @@ -0,0 +1,2 @@ + coeff_I_0 = RATIONAL(1.0,1.0)-x; + coeff_I_p1 = x; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order1.smooth0/coeff-dx.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order1.smooth0/coeff-dx.compute.c new file mode 100644 index 0000000..4f5fb07 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order1.smooth0/coeff-dx.compute.c @@ -0,0 +1,2 @@ + coeff_dx_0 = RATIONAL(-1.0,1.0); + coeff_dx_p1 = RATIONAL(1.0,1.0); diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order2.smooth0/coeff-I.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order2.smooth0/coeff-I.compute.c new file mode 100644 index 0000000..4d0de20 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order2.smooth0/coeff-I.compute.c @@ -0,0 +1,9 @@ +fp t3, + t2, + t1; + t3 = x*x; + t2 = RATIONAL(1.0,2.0); + t1 = t2*t3; + coeff_I_m1 = RATIONAL(-1.0,2.0)*x+t1; + coeff_I_0 = RATIONAL(1.0,1.0)-t3; + coeff_I_p1 = t2*x+t1; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order2.smooth0/coeff-dx.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order2.smooth0/coeff-dx.compute.c new file mode 100644 index 0000000..e2532c9 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order2.smooth0/coeff-dx.compute.c @@ -0,0 +1,3 @@ + coeff_dx_m1 = x+RATIONAL(-1.0,2.0); + coeff_dx_0 = RATIONAL(-2.0,1.0)*x; + coeff_dx_p1 = RATIONAL(1.0,2.0)+x; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order2.smooth0/coeff-dxx.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order2.smooth0/coeff-dxx.compute.c new file mode 100644 index 0000000..4e6fd95 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order2.smooth0/coeff-dxx.compute.c @@ -0,0 +1,5 @@ +fp t4; + t4 = RATIONAL(1.0,1.0); + coeff_dxx_m1 = t4; + coeff_dxx_0 = RATIONAL(-2.0,1.0); + coeff_dxx_p1 = t4; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order3.smooth0/coeff-I.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order3.smooth0/coeff-I.compute.c new file mode 100644 index 0000000..2df6cd1 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order3.smooth0/coeff-I.compute.c @@ -0,0 +1,16 @@ +fp t10, + t9, + t8, + t7, + t6, + t5; + t10 = x*x; + t9 = x*t10; + t8 = RATIONAL(-1.0,2.0); + t7 = RATIONAL(1.0,2.0); + t6 = RATIONAL(-1.0,6.0); + t5 = t7*t10; + coeff_I_m1 = RATIONAL(-1.0,3.0)*x+t5+t6*t9; + coeff_I_0 = RATIONAL(1.0,1.0)+t8*x-t10+t7*t9; + coeff_I_p1 = x+t5+t8*t9; + coeff_I_p2 = t6*x+RATIONAL(1.0,6.0)*t9; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order3.smooth0/coeff-dx.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order3.smooth0/coeff-dx.compute.c new file mode 100644 index 0000000..f0f513b --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order3.smooth0/coeff-dx.compute.c @@ -0,0 +1,8 @@ +fp t13, + t12; + t13 = x*x; + t12 = RATIONAL(-1.0,2.0); + coeff_dx_m1 = x+t12*t13+RATIONAL(-1.0,3.0); + coeff_dx_0 = t12+RATIONAL(-2.0,1.0)*x+RATIONAL(3.0,2.0)*t13; + coeff_dx_p1 = x+RATIONAL(1.0,1.0)+RATIONAL(-3.0,2.0)*t13; + coeff_dx_p2 = RATIONAL(1.0,2.0)*t13+RATIONAL(-1.0,6.0); diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order3.smooth0/coeff-dxx.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order3.smooth0/coeff-dxx.compute.c new file mode 100644 index 0000000..24ecaca --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order3.smooth0/coeff-dxx.compute.c @@ -0,0 +1,6 @@ +fp t14; + t14 = RATIONAL(1.0,1.0); + coeff_dxx_m1 = t14-x; + coeff_dxx_0 = RATIONAL(-2.0,1.0)+RATIONAL(3.0,1.0)*x; + coeff_dxx_p1 = t14+RATIONAL(-3.0,1.0)*x; + coeff_dxx_p2 = x; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order4.smooth0/coeff-I.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order4.smooth0/coeff-I.compute.c new file mode 100644 index 0000000..80df8da --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order4.smooth0/coeff-I.compute.c @@ -0,0 +1,24 @@ +fp t23, + t24, + t29, + t21, + t22, + t28, + t25, + t20, + t19; + t23 = x*x; + t24 = t23*t23; + t29 = RATIONAL(1.0,24.0)*t24+RATIONAL(-1.0,24.0)*t23; + t21 = RATIONAL(2.0,3.0); + t22 = RATIONAL(-1.0,6.0); + t28 = t21*t23+t22*t24; + t25 = x*t23; + t20 = RATIONAL(-1.0,12.0); + t19 = RATIONAL(1.0,12.0); + coeff_I_m2 = t19*x+t20*t25+t29; + coeff_I_m1 = RATIONAL(-2.0,3.0)*x+RATIONAL(1.0,6.0)*t25+t28; + coeff_I_0 = RATIONAL(-5.0,4.0)*t23+RATIONAL(1.0,1.0)+RATIONAL(1.0,4.0)* +t24; + coeff_I_p1 = t22*t25+t21*x+t28; + coeff_I_p2 = t19*t25+t20*x+t29; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order4.smooth0/coeff-dx.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order4.smooth0/coeff-dx.compute.c new file mode 100644 index 0000000..4ea29d1 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order4.smooth0/coeff-dx.compute.c @@ -0,0 +1,17 @@ +fp t34, + t36, + t37, + t40, + t35, + t39; + t34 = RATIONAL(-1.0,12.0); + t36 = x*x; + t37 = x*t36; + t40 = t34*x+RATIONAL(1.0,6.0)*t37; + t35 = RATIONAL(-2.0,3.0); + t39 = t35*t37+RATIONAL(4.0,3.0)*x; + coeff_dx_m2 = RATIONAL(-1.0,4.0)*t36+RATIONAL(1.0,12.0)+t40; + coeff_dx_m1 = t35+RATIONAL(1.0,2.0)*t36+t39; + coeff_dx_0 = RATIONAL(-5.0,2.0)*x+t37; + coeff_dx_p1 = RATIONAL(-1.0,2.0)*t36+RATIONAL(2.0,3.0)+t39; + coeff_dx_p2 = t34+RATIONAL(1.0,4.0)*t36+t40; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order4.smooth0/coeff-dxx.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order4.smooth0/coeff-dxx.compute.c new file mode 100644 index 0000000..c38d414 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order4.smooth0/coeff-dxx.compute.c @@ -0,0 +1,13 @@ +fp t45, + t46, + t48, + t47; + t45 = RATIONAL(1.0,2.0); + t46 = x*x; + t48 = t45*t46+RATIONAL(-1.0,12.0); + t47 = RATIONAL(-2.0,1.0)*t46+RATIONAL(4.0,3.0); + coeff_dxx_m2 = RATIONAL(-1.0,2.0)*x+t48; + coeff_dxx_m1 = x+t47; + coeff_dxx_0 = RATIONAL(-5.0,2.0)+RATIONAL(3.0,1.0)*t46; + coeff_dxx_p1 = -x+t47; + coeff_dxx_p2 = t45*x+t48; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order5.smooth0/coeff-I.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order5.smooth0/coeff-I.compute.c new file mode 100644 index 0000000..1cbc2d0 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order5.smooth0/coeff-I.compute.c @@ -0,0 +1,25 @@ +fp t56, + t61, + t64, + t55, + t54, + t63, + t59, + t57, + t51; + t56 = x*x; + t61 = t56*t56; + t64 = RATIONAL(-1.0,6.0)*t61+RATIONAL(2.0,3.0)*t56; + t55 = RATIONAL(-1.0,24.0); + t54 = RATIONAL(1.0,24.0); + t63 = t54*t61+t55*t56; + t59 = t61*x; + t57 = x*t56; + t51 = t55*t57; + coeff_I_m2 = RATIONAL(1.0,20.0)*x+t51+RATIONAL(-1.0,120.0)*t59+t63; + coeff_I_m1 = RATIONAL(-1.0,2.0)*x+t51+t54*t59+t64; + coeff_I_0 = RATIONAL(1.0,1.0)+RATIONAL(-1.0,3.0)*x+RATIONAL(-5.0,4.0)*t56 ++RATIONAL(5.0,12.0)*t57+RATIONAL(1.0,4.0)*t61+RATIONAL(-1.0,12.0)*t59; + coeff_I_p1 = x+RATIONAL(-7.0,12.0)*t57+RATIONAL(1.0,12.0)*t59+t64; + coeff_I_p2 = RATIONAL(-1.0,4.0)*x+RATIONAL(7.0,24.0)*t57+t55*t59+t63; + coeff_I_p3 = RATIONAL(1.0,30.0)*x+RATIONAL(1.0,120.0)*t59+t51; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order5.smooth0/coeff-dx.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order5.smooth0/coeff-dx.compute.c new file mode 100644 index 0000000..7f435ef --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order5.smooth0/coeff-dx.compute.c @@ -0,0 +1,21 @@ +fp t70, + t71, + t76, + t75, + t72, + t69; + t70 = x*x; + t71 = t70*x; + t76 = RATIONAL(-2.0,3.0)*t71+RATIONAL(4.0,3.0)*x; + t75 = RATIONAL(-1.0,12.0)*x+RATIONAL(1.0,6.0)*t71; + t72 = t70*t70; + t69 = RATIONAL(-1.0,8.0)*t70; + coeff_dx_m2 = t69+RATIONAL(1.0,20.0)+RATIONAL(-1.0,24.0)*t72+t75; + coeff_dx_m1 = RATIONAL(5.0,24.0)*t72+RATIONAL(-1.0,2.0)+t69+t76; + coeff_dx_0 = RATIONAL(5.0,4.0)*t70+RATIONAL(-5.0,12.0)*t72+t71+RATIONAL( +-1.0,3.0)+RATIONAL(-5.0,2.0)*x; + coeff_dx_p1 = RATIONAL(5.0,12.0)*t72+RATIONAL(-7.0,4.0)*t70+RATIONAL(1.0, +1.0)+t76; + coeff_dx_p2 = RATIONAL(-1.0,4.0)+RATIONAL(-5.0,24.0)*t72+RATIONAL(7.0,8.0 +)*t70+t75; + coeff_dx_p3 = RATIONAL(1.0,24.0)*t72+RATIONAL(1.0,30.0)+t69; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order5.smooth0/coeff-dxx.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order5.smooth0/coeff-dxx.compute.c new file mode 100644 index 0000000..22c1283 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order5.smooth0/coeff-dxx.compute.c @@ -0,0 +1,17 @@ +fp t82, + t86, + t85, + t83, + t78; + t82 = x*x; + t86 = RATIONAL(-2.0,1.0)*t82+RATIONAL(4.0,3.0); + t85 = RATIONAL(-1.0,12.0)+RATIONAL(1.0,2.0)*t82; + t83 = x*t82; + t78 = RATIONAL(-1.0,4.0)*x; + coeff_dxx_m2 = RATIONAL(-1.0,6.0)*t83+t78+t85; + coeff_dxx_m1 = RATIONAL(5.0,6.0)*t83+t78+t86; + coeff_dxx_0 = RATIONAL(-5.0,3.0)*t83+RATIONAL(3.0,1.0)*t82+RATIONAL(5.0, +2.0)*x+RATIONAL(-5.0,2.0); + coeff_dxx_p1 = RATIONAL(5.0,3.0)*t83+RATIONAL(-7.0,2.0)*x+t86; + coeff_dxx_p2 = RATIONAL(7.0,4.0)*x+RATIONAL(-5.0,6.0)*t83+t85; + coeff_dxx_p3 = RATIONAL(1.0,6.0)*t83+t78; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order6.smooth0/coeff-I.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order6.smooth0/coeff-I.compute.c new file mode 100644 index 0000000..adcda00 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order6.smooth0/coeff-I.compute.c @@ -0,0 +1,38 @@ +fp t104, + t107, + t102, + t108, + t113, + t112, + t101, + t99, + t96, + t111, + t103, + t100, + t98, + t97; + t104 = x*x; + t107 = x*t104; + t102 = t107*t107; + t108 = t104*t104; + t113 = RATIONAL(1.0,720.0)*t102+RATIONAL(1.0,180.0)*t104+RATIONAL(-1.0, +144.0)*t108; + t112 = RATIONAL(-1.0,120.0)*t102+RATIONAL(-3.0,40.0)*t104+RATIONAL(1.0, +12.0)*t108; + t101 = RATIONAL(3.0,4.0); + t99 = RATIONAL(1.0,48.0); + t96 = RATIONAL(-13.0,48.0); + t111 = t99*t102+t96*t108+t101*t104; + t103 = t108*x; + t100 = RATIONAL(-1.0,60.0); + t98 = RATIONAL(1.0,60.0); + t97 = RATIONAL(-1.0,48.0); + coeff_I_m3 = t100*x+t99*t107+RATIONAL(-1.0,240.0)*t103+t113; + coeff_I_m2 = RATIONAL(3.0,20.0)*x+RATIONAL(-1.0,6.0)*t107+t98*t103+t112; + coeff_I_m1 = RATIONAL(-3.0,4.0)*x+RATIONAL(13.0,48.0)*t107+t97*t103+t111; + coeff_I_0 = RATIONAL(7.0,18.0)*t108+RATIONAL(-49.0,36.0)*t104+RATIONAL( +1.0,1.0)+RATIONAL(-1.0,36.0)*t102; + coeff_I_p1 = t96*t107+t101*x+t99*t103+t111; + coeff_I_p2 = RATIONAL(1.0,6.0)*t107+RATIONAL(-3.0,20.0)*x+t100*t103+t112; + coeff_I_p3 = t97*t107+t98*x+RATIONAL(1.0,240.0)*t103+t113; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order6.smooth0/coeff-dx.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order6.smooth0/coeff-dx.compute.c new file mode 100644 index 0000000..f4d8d04 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order6.smooth0/coeff-dx.compute.c @@ -0,0 +1,31 @@ +fp t125, + t129, + t124, + t126, + t133, + t123, + t132, + t131; + t125 = x*x; + t129 = t125*t125; + t124 = x*t129; + t126 = x*t125; + t133 = RATIONAL(1.0,90.0)*x+RATIONAL(-1.0,36.0)*t126+RATIONAL(1.0,120.0)* +t124; + t123 = RATIONAL(-3.0,20.0); + t132 = RATIONAL(1.0,3.0)*t126+RATIONAL(-1.0,20.0)*t124+t123*x; + t131 = RATIONAL(3.0,2.0)*x+RATIONAL(1.0,8.0)*t124+RATIONAL(-13.0,12.0)* +t126; + coeff_dx_m3 = RATIONAL(1.0,16.0)*t125+RATIONAL(-1.0,60.0)+RATIONAL(-1.0, +48.0)*t129+t133; + coeff_dx_m2 = RATIONAL(1.0,12.0)*t129+RATIONAL(-1.0,2.0)*t125+RATIONAL( +3.0,20.0)+t132; + coeff_dx_m1 = RATIONAL(13.0,16.0)*t125+RATIONAL(-3.0,4.0)+RATIONAL(-5.0, +48.0)*t129+t131; + coeff_dx_0 = RATIONAL(-1.0,6.0)*t124+RATIONAL(14.0,9.0)*t126+RATIONAL( +-49.0,18.0)*x; + coeff_dx_p1 = RATIONAL(3.0,4.0)+RATIONAL(5.0,48.0)*t129+RATIONAL(-13.0, +16.0)*t125+t131; + coeff_dx_p2 = t123+RATIONAL(-1.0,12.0)*t129+RATIONAL(1.0,2.0)*t125+t132; + coeff_dx_p3 = RATIONAL(-1.0,16.0)*t125+RATIONAL(1.0,60.0)+RATIONAL(1.0, +48.0)*t129+t133; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order6.smooth0/coeff-dxx.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order6.smooth0/coeff-dxx.compute.c new file mode 100644 index 0000000..d76489a --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.order6.smooth0/coeff-dxx.compute.c @@ -0,0 +1,22 @@ +fp t143, + t140, + t145, + t150, + t149, + t148, + t144; + t143 = x*x; + t140 = RATIONAL(-1.0,12.0); + t145 = t143*t143; + t150 = RATIONAL(1.0,24.0)*t145+t140*t143+RATIONAL(1.0,90.0); + t149 = t143+RATIONAL(-3.0,20.0)+RATIONAL(-1.0,4.0)*t145; + t148 = RATIONAL(-13.0,4.0)*t143+RATIONAL(5.0,8.0)*t145+RATIONAL(3.0,2.0); + t144 = t143*x; + coeff_dxx_m3 = RATIONAL(1.0,8.0)*x+t140*t144+t150; + coeff_dxx_m2 = RATIONAL(1.0,3.0)*t144-x+t149; + coeff_dxx_m1 = RATIONAL(13.0,8.0)*x+RATIONAL(-5.0,12.0)*t144+t148; + coeff_dxx_0 = RATIONAL(-5.0,6.0)*t145+RATIONAL(-49.0,18.0)+RATIONAL(14.0, +3.0)*t143; + coeff_dxx_p1 = RATIONAL(-13.0,8.0)*x+RATIONAL(5.0,12.0)*t144+t148; + coeff_dxx_p2 = x+RATIONAL(-1.0,3.0)*t144+t149; + coeff_dxx_p3 = RATIONAL(1.0,12.0)*t144+RATIONAL(-1.0,8.0)*x+t150; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size2/coeff-I.dcl.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size2/coeff-I.dcl.c new file mode 100644 index 0000000..0069517 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size2/coeff-I.dcl.c @@ -0,0 +1,2 @@ +fp coeff_I_0, + coeff_I_p1; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size2/coeff-dx.dcl.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size2/coeff-dx.dcl.c new file mode 100644 index 0000000..e5b0620 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size2/coeff-dx.dcl.c @@ -0,0 +1,2 @@ +fp coeff_dx_0, + coeff_dx_p1; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size2/data-var.assign.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size2/data-var.assign.c new file mode 100644 index 0000000..652f644 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size2/data-var.assign.c @@ -0,0 +1,2 @@ +data_0 = DATA(0); +data_p1 = DATA(1); diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size2/data-var.dcl.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size2/data-var.dcl.c new file mode 100644 index 0000000..3719a9b --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size2/data-var.dcl.c @@ -0,0 +1,2 @@ +fp data_0, + data_p1; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size2/interp-I.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size2/interp-I.compute.c new file mode 100644 index 0000000..276ea36 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size2/interp-I.compute.c @@ -0,0 +1,3 @@ +result = + coeff_I_0*data_0 + + coeff_I_p1*data_p1; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size2/interp-dx.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size2/interp-dx.compute.c new file mode 100644 index 0000000..eb6b63a --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size2/interp-dx.compute.c @@ -0,0 +1,3 @@ +result = + coeff_dx_0*data_0 + + coeff_dx_p1*data_p1; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size3/coeff-I.dcl.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size3/coeff-I.dcl.c new file mode 100644 index 0000000..01c8883 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size3/coeff-I.dcl.c @@ -0,0 +1,3 @@ +fp coeff_I_m1, + coeff_I_0, + coeff_I_p1; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size3/coeff-dx.dcl.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size3/coeff-dx.dcl.c new file mode 100644 index 0000000..5c4daf6 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size3/coeff-dx.dcl.c @@ -0,0 +1,3 @@ +fp coeff_dx_m1, + coeff_dx_0, + coeff_dx_p1; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size3/coeff-dxx.dcl.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size3/coeff-dxx.dcl.c new file mode 100644 index 0000000..36c909e --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size3/coeff-dxx.dcl.c @@ -0,0 +1,3 @@ +fp coeff_dxx_m1, + coeff_dxx_0, + coeff_dxx_p1; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size3/data-var.assign.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size3/data-var.assign.c new file mode 100644 index 0000000..0229a3c --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size3/data-var.assign.c @@ -0,0 +1,3 @@ +data_m1 = DATA(-1); +data_0 = DATA(0); +data_p1 = DATA(1); diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size3/data-var.dcl.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size3/data-var.dcl.c new file mode 100644 index 0000000..a38b9e6 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size3/data-var.dcl.c @@ -0,0 +1,3 @@ +fp data_m1, + data_0, + data_p1; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size3/interp-I.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size3/interp-I.compute.c new file mode 100644 index 0000000..46cfcbc --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size3/interp-I.compute.c @@ -0,0 +1,4 @@ +result = + coeff_I_m1*data_m1 + + coeff_I_0*data_0 + + coeff_I_p1*data_p1; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size3/interp-dx.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size3/interp-dx.compute.c new file mode 100644 index 0000000..cd754c6 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size3/interp-dx.compute.c @@ -0,0 +1,4 @@ +result = + coeff_dx_m1*data_m1 + + coeff_dx_0*data_0 + + coeff_dx_p1*data_p1; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size3/interp-dxx.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size3/interp-dxx.compute.c new file mode 100644 index 0000000..a4a5b16 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size3/interp-dxx.compute.c @@ -0,0 +1,4 @@ +result = + coeff_dxx_m1*data_m1 + + coeff_dxx_0*data_0 + + coeff_dxx_p1*data_p1; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size4/coeff-I.dcl.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size4/coeff-I.dcl.c new file mode 100644 index 0000000..c79add1 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size4/coeff-I.dcl.c @@ -0,0 +1,4 @@ +fp coeff_I_m1, + coeff_I_0, + coeff_I_p1, + coeff_I_p2; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size4/coeff-dx.dcl.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size4/coeff-dx.dcl.c new file mode 100644 index 0000000..ab7b0cf --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size4/coeff-dx.dcl.c @@ -0,0 +1,4 @@ +fp coeff_dx_m1, + coeff_dx_0, + coeff_dx_p1, + coeff_dx_p2; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size4/coeff-dxx.dcl.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size4/coeff-dxx.dcl.c new file mode 100644 index 0000000..6e56e96 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size4/coeff-dxx.dcl.c @@ -0,0 +1,4 @@ +fp coeff_dxx_m1, + coeff_dxx_0, + coeff_dxx_p1, + coeff_dxx_p2; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size4/data-var.assign.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size4/data-var.assign.c new file mode 100644 index 0000000..946cb6d --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size4/data-var.assign.c @@ -0,0 +1,4 @@ +data_m1 = DATA(-1); +data_0 = DATA(0); +data_p1 = DATA(1); +data_p2 = DATA(2); diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size4/data-var.dcl.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size4/data-var.dcl.c new file mode 100644 index 0000000..8f598d5 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size4/data-var.dcl.c @@ -0,0 +1,4 @@ +fp data_m1, + data_0, + data_p1, + data_p2; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size4/interp-I.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size4/interp-I.compute.c new file mode 100644 index 0000000..82eee03 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size4/interp-I.compute.c @@ -0,0 +1,5 @@ +result = + coeff_I_m1*data_m1 + + coeff_I_0*data_0 + + coeff_I_p1*data_p1 + + coeff_I_p2*data_p2; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size4/interp-dx.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size4/interp-dx.compute.c new file mode 100644 index 0000000..791ca6b --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size4/interp-dx.compute.c @@ -0,0 +1,5 @@ +result = + coeff_dx_m1*data_m1 + + coeff_dx_0*data_0 + + coeff_dx_p1*data_p1 + + coeff_dx_p2*data_p2; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size4/interp-dxx.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size4/interp-dxx.compute.c new file mode 100644 index 0000000..c2d6460 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size4/interp-dxx.compute.c @@ -0,0 +1,5 @@ +result = + coeff_dxx_m1*data_m1 + + coeff_dxx_0*data_0 + + coeff_dxx_p1*data_p1 + + coeff_dxx_p2*data_p2; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size5/coeff-I.dcl.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size5/coeff-I.dcl.c new file mode 100644 index 0000000..cadcf4f --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size5/coeff-I.dcl.c @@ -0,0 +1,5 @@ +fp coeff_I_m2, + coeff_I_m1, + coeff_I_0, + coeff_I_p1, + coeff_I_p2; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size5/coeff-dx.dcl.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size5/coeff-dx.dcl.c new file mode 100644 index 0000000..ca9bbfe --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size5/coeff-dx.dcl.c @@ -0,0 +1,5 @@ +fp coeff_dx_m2, + coeff_dx_m1, + coeff_dx_0, + coeff_dx_p1, + coeff_dx_p2; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size5/coeff-dxx.dcl.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size5/coeff-dxx.dcl.c new file mode 100644 index 0000000..b0aadfc --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size5/coeff-dxx.dcl.c @@ -0,0 +1,5 @@ +fp coeff_dxx_m2, + coeff_dxx_m1, + coeff_dxx_0, + coeff_dxx_p1, + coeff_dxx_p2; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size5/data-var.assign.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size5/data-var.assign.c new file mode 100644 index 0000000..ee87b78 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size5/data-var.assign.c @@ -0,0 +1,5 @@ +data_m2 = DATA(-2); +data_m1 = DATA(-1); +data_0 = DATA(0); +data_p1 = DATA(1); +data_p2 = DATA(2); diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size5/data-var.dcl.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size5/data-var.dcl.c new file mode 100644 index 0000000..2fdf4d9 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size5/data-var.dcl.c @@ -0,0 +1,5 @@ +fp data_m2, + data_m1, + data_0, + data_p1, + data_p2; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size5/interp-I.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size5/interp-I.compute.c new file mode 100644 index 0000000..f283cb6 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size5/interp-I.compute.c @@ -0,0 +1,6 @@ +result = + coeff_I_m2*data_m2 + + coeff_I_m1*data_m1 + + coeff_I_0*data_0 + + coeff_I_p1*data_p1 + + coeff_I_p2*data_p2; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size5/interp-dx.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size5/interp-dx.compute.c new file mode 100644 index 0000000..f6673ec --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size5/interp-dx.compute.c @@ -0,0 +1,6 @@ +result = + coeff_dx_m2*data_m2 + + coeff_dx_m1*data_m1 + + coeff_dx_0*data_0 + + coeff_dx_p1*data_p1 + + coeff_dx_p2*data_p2; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size5/interp-dxx.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size5/interp-dxx.compute.c new file mode 100644 index 0000000..ab21a19 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size5/interp-dxx.compute.c @@ -0,0 +1,6 @@ +result = + coeff_dxx_m2*data_m2 + + coeff_dxx_m1*data_m1 + + coeff_dxx_0*data_0 + + coeff_dxx_p1*data_p1 + + coeff_dxx_p2*data_p2; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size6/coeff-I.dcl.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size6/coeff-I.dcl.c new file mode 100644 index 0000000..2b98276 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size6/coeff-I.dcl.c @@ -0,0 +1,6 @@ +fp coeff_I_m2, + coeff_I_m1, + coeff_I_0, + coeff_I_p1, + coeff_I_p2, + coeff_I_p3; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size6/coeff-dx.dcl.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size6/coeff-dx.dcl.c new file mode 100644 index 0000000..82378bc --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size6/coeff-dx.dcl.c @@ -0,0 +1,6 @@ +fp coeff_dx_m2, + coeff_dx_m1, + coeff_dx_0, + coeff_dx_p1, + coeff_dx_p2, + coeff_dx_p3; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size6/coeff-dxx.dcl.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size6/coeff-dxx.dcl.c new file mode 100644 index 0000000..b903ceb --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size6/coeff-dxx.dcl.c @@ -0,0 +1,6 @@ +fp coeff_dxx_m2, + coeff_dxx_m1, + coeff_dxx_0, + coeff_dxx_p1, + coeff_dxx_p2, + coeff_dxx_p3; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size6/data-var.assign.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size6/data-var.assign.c new file mode 100644 index 0000000..3b1063a --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size6/data-var.assign.c @@ -0,0 +1,6 @@ +data_m2 = DATA(-2); +data_m1 = DATA(-1); +data_0 = DATA(0); +data_p1 = DATA(1); +data_p2 = DATA(2); +data_p3 = DATA(3); diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size6/data-var.dcl.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size6/data-var.dcl.c new file mode 100644 index 0000000..fa8151e --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size6/data-var.dcl.c @@ -0,0 +1,6 @@ +fp data_m2, + data_m1, + data_0, + data_p1, + data_p2, + data_p3; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size6/interp-I.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size6/interp-I.compute.c new file mode 100644 index 0000000..d5f93a0 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size6/interp-I.compute.c @@ -0,0 +1,7 @@ +result = + coeff_I_m2*data_m2 + + coeff_I_m1*data_m1 + + coeff_I_0*data_0 + + coeff_I_p1*data_p1 + + coeff_I_p2*data_p2 + + coeff_I_p3*data_p3; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size6/interp-dx.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size6/interp-dx.compute.c new file mode 100644 index 0000000..54a4c39 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size6/interp-dx.compute.c @@ -0,0 +1,7 @@ +result = + coeff_dx_m2*data_m2 + + coeff_dx_m1*data_m1 + + coeff_dx_0*data_0 + + coeff_dx_p1*data_p1 + + coeff_dx_p2*data_p2 + + coeff_dx_p3*data_p3; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size6/interp-dxx.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size6/interp-dxx.compute.c new file mode 100644 index 0000000..842312e --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size6/interp-dxx.compute.c @@ -0,0 +1,7 @@ +result = + coeff_dxx_m2*data_m2 + + coeff_dxx_m1*data_m1 + + coeff_dxx_0*data_0 + + coeff_dxx_p1*data_p1 + + coeff_dxx_p2*data_p2 + + coeff_dxx_p3*data_p3; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size7/coeff-I.dcl.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size7/coeff-I.dcl.c new file mode 100644 index 0000000..ce86fb9 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size7/coeff-I.dcl.c @@ -0,0 +1,7 @@ +fp coeff_I_m3, + coeff_I_m2, + coeff_I_m1, + coeff_I_0, + coeff_I_p1, + coeff_I_p2, + coeff_I_p3; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size7/coeff-dx.dcl.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size7/coeff-dx.dcl.c new file mode 100644 index 0000000..a7cebad --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size7/coeff-dx.dcl.c @@ -0,0 +1,7 @@ +fp coeff_dx_m3, + coeff_dx_m2, + coeff_dx_m1, + coeff_dx_0, + coeff_dx_p1, + coeff_dx_p2, + coeff_dx_p3; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size7/coeff-dxx.dcl.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size7/coeff-dxx.dcl.c new file mode 100644 index 0000000..58c0568 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size7/coeff-dxx.dcl.c @@ -0,0 +1,7 @@ +fp coeff_dxx_m3, + coeff_dxx_m2, + coeff_dxx_m1, + coeff_dxx_0, + coeff_dxx_p1, + coeff_dxx_p2, + coeff_dxx_p3; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size7/data-var.assign.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size7/data-var.assign.c new file mode 100644 index 0000000..5375f17 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size7/data-var.assign.c @@ -0,0 +1,7 @@ +data_m3 = DATA(-3); +data_m2 = DATA(-2); +data_m1 = DATA(-1); +data_0 = DATA(0); +data_p1 = DATA(1); +data_p2 = DATA(2); +data_p3 = DATA(3); diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size7/data-var.dcl.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size7/data-var.dcl.c new file mode 100644 index 0000000..cdf1c5c --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size7/data-var.dcl.c @@ -0,0 +1,7 @@ +fp data_m3, + data_m2, + data_m1, + data_0, + data_p1, + data_p2, + data_p3; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size7/interp-I.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size7/interp-I.compute.c new file mode 100644 index 0000000..0405d21 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size7/interp-I.compute.c @@ -0,0 +1,8 @@ +result = + coeff_I_m3*data_m3 + + coeff_I_m2*data_m2 + + coeff_I_m1*data_m1 + + coeff_I_0*data_0 + + coeff_I_p1*data_p1 + + coeff_I_p2*data_p2 + + coeff_I_p3*data_p3; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size7/interp-dx.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size7/interp-dx.compute.c new file mode 100644 index 0000000..425e3d8 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size7/interp-dx.compute.c @@ -0,0 +1,8 @@ +result = + coeff_dx_m3*data_m3 + + coeff_dx_m2*data_m2 + + coeff_dx_m1*data_m1 + + coeff_dx_0*data_0 + + coeff_dx_p1*data_p1 + + coeff_dx_p2*data_p2 + + coeff_dx_p3*data_p3; diff --git a/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size7/interp-dxx.compute.c b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size7/interp-dxx.compute.c new file mode 100644 index 0000000..045a2b6 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.coeffs/1d.cube.size7/interp-dxx.compute.c @@ -0,0 +1,8 @@ +result = + coeff_dxx_m3*data_m3 + + coeff_dxx_m2*data_m2 + + coeff_dxx_m1*data_m1 + + coeff_dxx_0*data_0 + + coeff_dxx_p1*data_p1 + + coeff_dxx_p2*data_p2 + + coeff_dxx_p3*data_p3; diff --git a/src/GeneralizedPolynomial-Uniform/1d.cube.order1.smooth0.c b/src/GeneralizedPolynomial-Uniform/1d.cube.order1.smooth0.c new file mode 100644 index 0000000..4641453 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.cube.order1.smooth0.c @@ -0,0 +1,35 @@ +#include <math.h> +#include <limits.h> +#include <stdlib.h> +#include <string.h> +#include <stdio.h> + +#include "util_ErrorCodes.h" +#include "cctk.h" +#include "InterpLocalUniform.h" + +/* function prototype */ +#define FUNCTION_NAME LocalInterp_ILU_1d_cube_o1_s0 +#include "template.h" + +#define N_DIMS 1 +#define MOLECULE_SIZE 2 + +/* which derivative ops do we support? */ +#define HAVE_OP_I +#define HAVE_OP_DX + +#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_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" + +#define INTERP_I_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.size2/interp-I.compute.c" +#define INTERP_DX_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.size2/interp-dx.compute.c" + +#define COEFF_I_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.order1.smooth0/coeff-I.compute.c" +#define COEFF_DX_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.order1.smooth0/coeff-dx.compute.c" + +/* actual code */ +#include "template.c" diff --git a/src/GeneralizedPolynomial-Uniform/1d.cube.order2.smooth0.c b/src/GeneralizedPolynomial-Uniform/1d.cube.order2.smooth0.c new file mode 100644 index 0000000..61ed45c --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.cube.order2.smooth0.c @@ -0,0 +1,39 @@ +#include <math.h> +#include <limits.h> +#include <stdlib.h> +#include <string.h> +#include <stdio.h> + +#include "util_ErrorCodes.h" +#include "cctk.h" +#include "InterpLocalUniform.h" + +/* function prototype */ +#define FUNCTION_NAME LocalInterp_ILU_1d_cube_o2_s0 +#include "template.h" + +#define N_DIMS 1 +#define MOLECULE_SIZE 3 + +/* which derivative ops do we support? */ +#define HAVE_OP_I +#define HAVE_OP_DX +#define HAVE_OP_DXX + +#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_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" + +#define INTERP_I_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.size3/interp-I.compute.c" +#define INTERP_DX_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.size3/interp-dx.compute.c" +#define INTERP_DXX_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.size3/interp-dxx.compute.c" + +#define COEFF_I_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.order2.smooth0/coeff-I.compute.c" +#define COEFF_DX_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.order2.smooth0/coeff-dx.compute.c" +#define COEFF_DXX_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.order2.smooth0/coeff-dxx.compute.c" + +/* actual code */ +#include "template.c" diff --git a/src/GeneralizedPolynomial-Uniform/1d.cube.order3.smooth0.c b/src/GeneralizedPolynomial-Uniform/1d.cube.order3.smooth0.c new file mode 100644 index 0000000..7908d41 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.cube.order3.smooth0.c @@ -0,0 +1,39 @@ +#include <math.h> +#include <limits.h> +#include <stdlib.h> +#include <string.h> +#include <stdio.h> + +#include "util_ErrorCodes.h" +#include "cctk.h" +#include "InterpLocalUniform.h" + +/* function prototype */ +#define FUNCTION_NAME LocalInterp_ILU_1d_cube_o3_s0 +#include "template.h" + +#define N_DIMS 1 +#define MOLECULE_SIZE 4 + +/* which derivative ops do we support? */ +#define HAVE_OP_I +#define HAVE_OP_DX +#define HAVE_OP_DXX + +#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_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" + +#define INTERP_I_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.size4/interp-I.compute.c" +#define INTERP_DX_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.size4/interp-dx.compute.c" +#define INTERP_DXX_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.size4/interp-dxx.compute.c" + +#define COEFF_I_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.order3.smooth0/coeff-I.compute.c" +#define COEFF_DX_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.order3.smooth0/coeff-dx.compute.c" +#define COEFF_DXX_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.order3.smooth0/coeff-dxx.compute.c" + +/* actual code */ +#include "template.c" diff --git a/src/GeneralizedPolynomial-Uniform/1d.cube.order4.smooth0.c b/src/GeneralizedPolynomial-Uniform/1d.cube.order4.smooth0.c new file mode 100644 index 0000000..89b8cac --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.cube.order4.smooth0.c @@ -0,0 +1,39 @@ +#include <math.h> +#include <limits.h> +#include <stdlib.h> +#include <string.h> +#include <stdio.h> + +#include "util_ErrorCodes.h" +#include "cctk.h" +#include "InterpLocalUniform.h" + +/* function prototype */ +#define FUNCTION_NAME LocalInterp_ILU_1d_cube_o4_s0 +#include "template.h" + +#define N_DIMS 1 +#define MOLECULE_SIZE 5 + +/* which derivative ops do we support? */ +#define HAVE_OP_I +#define HAVE_OP_DX +#define HAVE_OP_DXX + +#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_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" + +#define INTERP_I_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.size5/interp-I.compute.c" +#define INTERP_DX_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.size5/interp-dx.compute.c" +#define INTERP_DXX_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.size5/interp-dxx.compute.c" + +#define COEFF_I_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.order4.smooth0/coeff-I.compute.c" +#define COEFF_DX_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.order4.smooth0/coeff-dx.compute.c" +#define COEFF_DXX_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.order4.smooth0/coeff-dxx.compute.c" + +/* actual code */ +#include "template.c" diff --git a/src/GeneralizedPolynomial-Uniform/1d.cube.order5.smooth0.c b/src/GeneralizedPolynomial-Uniform/1d.cube.order5.smooth0.c new file mode 100644 index 0000000..8de7043 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.cube.order5.smooth0.c @@ -0,0 +1,39 @@ +#include <math.h> +#include <limits.h> +#include <stdlib.h> +#include <string.h> +#include <stdio.h> + +#include "util_ErrorCodes.h" +#include "cctk.h" +#include "InterpLocalUniform.h" + +/* function prototype */ +#define FUNCTION_NAME LocalInterp_ILU_1d_cube_o5_s0 +#include "template.h" + +#define N_DIMS 1 +#define MOLECULE_SIZE 6 + +/* which derivative ops do we support? */ +#define HAVE_OP_I +#define HAVE_OP_DX +#define HAVE_OP_DXX + +#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_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" + +#define INTERP_I_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.size6/interp-I.compute.c" +#define INTERP_DX_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.size6/interp-dx.compute.c" +#define INTERP_DXX_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.size6/interp-dxx.compute.c" + +#define COEFF_I_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.order5.smooth0/coeff-I.compute.c" +#define COEFF_DX_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.order5.smooth0/coeff-dx.compute.c" +#define COEFF_DXX_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.order5.smooth0/coeff-dxx.compute.c" + +/* actual code */ +#include "template.c" diff --git a/src/GeneralizedPolynomial-Uniform/1d.cube.order6.smooth0.c b/src/GeneralizedPolynomial-Uniform/1d.cube.order6.smooth0.c new file mode 100644 index 0000000..2f5a7e4 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.cube.order6.smooth0.c @@ -0,0 +1,39 @@ +#include <math.h> +#include <limits.h> +#include <stdlib.h> +#include <string.h> +#include <stdio.h> + +#include "util_ErrorCodes.h" +#include "cctk.h" +#include "InterpLocalUniform.h" + +/* function prototype */ +#define FUNCTION_NAME LocalInterp_ILU_1d_cube_o6_s0 +#include "template.h" + +#define N_DIMS 1 +#define MOLECULE_SIZE 7 + +/* which derivative ops do we support? */ +#define HAVE_OP_I +#define HAVE_OP_DX +#define HAVE_OP_DXX + +#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_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" + +#define INTERP_I_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.size7/interp-I.compute.c" +#define INTERP_DX_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.size7/interp-dx.compute.c" +#define INTERP_DXX_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.size7/interp-dxx.compute.c" + +#define COEFF_I_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.order6.smooth0/coeff-I.compute.c" +#define COEFF_DX_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.order6.smooth0/coeff-dx.compute.c" +#define COEFF_DXX_COMPUTE_FILE_NAME "1d.coeffs/1d.cube.order6.smooth0/coeff-dxx.compute.c" + +/* actual code */ +#include "template.c" diff --git a/src/GeneralizedPolynomial-Uniform/1d.log b/src/GeneralizedPolynomial-Uniform/1d.log new file mode 100644 index 0000000..4f589e4 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.log @@ -0,0 +1,1779 @@ + |\^/| Maple 7 (IBM INTEL LINUX) +._|\| |/|_. Copyright (c) 2001 by Waterloo Maple Inc. + \ MAPLE / All rights reserved. Maple is a registered trademark of + <____ ____> Waterloo Maple Inc. + | Type ? for help. +# util.maple -- misc utility routines +# $Id: util.maple,v 1.1 2001/06/29 09:36:22 jthorn Exp $ +> +# +# C_str - codegen[C](), but returning its result as a Maple string +# fix_rationals - convert numbers to RATIONAL() calls +# nonmatching_names - find names in a list which *don't* have a specified prefix +# sprint_numeric_list - convert a numeric list to a valid C identifier suffix +# print_name_list_dcl - print a C declaration for a list of names +# +# hypercube_points - compute all (integer) points in an N-dimensional hypercube +# +# ftruncate - truncate a file to zero length +# +> +################################################################################ +################################################################################ +################################################################################ +> +# +# This function is a wrapper around codegen[C]() which returns the +# genenerated code explictly as a Maple string. +# +# Arguments: +# expr = (in) The expression for which code is to be generated. +# ... = (in) Any further arguments are taken as options to be passed +# to codegen[C]() +# +# Results: +# The function returns a maple string of C code. +# +> C_str := +> proc(expr::algebraic) +> local tempname, str, temp; +> +# name of temp file +# FIXME: should use process number to ensure uniqueness +> tempname := "/tmp/C_str.tmp.c"; +> +# truncate temp file to zero length +> fopen(tempname, WRITE); +> fclose(tempname); +> +# generate the code +> codegen[C](args, filename=tempname); +> +# read the code back in +> str := ""; +> while true +> do +> temp := readline(tempname); +> if (temp = 0) +> then break; +> end if; +> str := cat(str, temp); +> end do; +> fclose(tempname); +> +# strip off the leading " t0 = " +> return op(2,sscanf(str, "%s = %[^;];")); +> end proc; +C_str := proc(expr::algebraic) +local tempname, str, temp; + tempname := "/tmp/C_str.tmp.c"; + fopen(tempname, WRITE); + fclose(tempname); + codegen[C](args, filename = tempname); + str := ""; + do + temp := readline(tempname); + if temp = 0 then break end if; + str := cat(str, temp) + end do; + fclose(tempname); + return op(2, sscanf(str, "%s = %[^;];")) +end proc + +> +################################################################################ +> +# +# This function converts all {integer, rational} subexpressions of its +# input except integer exponents and -1 factors in products, into function +# calls +# RATIONAL(num,den) +# This is useful in conjunction with the C() library function, since +# +# C( (1/3) * foo * bar ) +# t0 = foo*bar/3; +# +# generates a (slow) division (and runs the risk of mixed-mode-arithmetic +# problems), while +# +# C((1.0/3.0) * foo * bar); +# t0 = 0.3333333333*foo*bar; +# +# suffers from roundoff error. With this function, +# +# fix_rationals((1/3) * foo * bar); +# RATIONAL(1,3) foo bar +# C(%); +# t0 = RATIONAL(1.0,3.0)*foo*bar; +# +# which a C preprocessor macro can easily convert to the desired +# +# t0 = (1.0/3.0)*foo*bar; +# +# Additionally, this function can be told to leave certain types of +# subexpressions unconverged. For example, +# fix_rationals(expr, type, specfunc(integer, DATA)); +# will leave all subexpressions of the form DATA(integer arguments) +# unconverted. +# +# Arguments: +# expr = (in) The expression to be converted. +# inert_fn = (optional in) +# If specified, this argument should be a Boolean procedure +# or the name of a Boolean procedure. This procedure should +# take one or more argument, and return true if and only if +# the first argument should *not* be converted, i.e. if we +# should leave this expression unchanged. See the last +# example above. +# ... = (optional in) +# Any further arguments are passed as additional arguments to +# the inert_fn procedure. +# +> fix_rationals := +> proc( +> expr::{ +> algebraic, name = algebraic, +> list({algebraic, name = algebraic}), +> set ({algebraic, name = algebraic}) +> }, +> inert_fn::{name, procedure} +> ) +> local nn, k, +> base, power, fbase, fpower, +> fn, fn_args_list, +> num, den, mult; +> +# do we want to convert this expression? +> if ((nargs >= 2) and inert_fn(expr, args[3..nargs])) +> then return expr; +> end if; +> +# recurse over lists and sets +> if (type(expr, {list,set})) +> then return map(fix_rationals, expr, args[2..nargs]); +> end if; +> +# recurse over equation right hand sides +> if (type(expr, name = algebraic)) +> then return ( lhs(expr) = fix_rationals(rhs(expr), args[2..nargs]) ); +> end if; +> +# recurse over functions other than RATIONAL() +> if (type(expr, function)) +> then +> fn := op(0, expr); +> if (fn <> 'RATIONAL') +> then +> fn_args_list := [op(expr)]; +> fn_args_list := map(fix_rationals, fn_args_list, args[2..nargs]); +> fn; return '%'( op(fn_args_list) ); +> end if; +> end if; +> +> nn := nops(expr); +> +# recurse over sums +> if (type(expr, `+`)) +> then return sum('fix_rationals(op(k,expr), args[2..nargs])', 'k'=1..nn); +> end if; +> +# recurse over products +# ... leaving leading -1 factors intact, i.e. not converted to RATIONAL(-1,1) +> if (type(expr, `*`)) +> then +> if (op(1, expr) = -1) +> then return -1*fix_rationals(remove(type, expr, 'identical(-1)'), +> args[2..nargs]); +> else return product('fix_rationals(op(k,expr), args[2..nargs])', +> 'k'=1..nn); +> end if; +> end if; +> +# recurse over powers +# ... leaving integer exponents intact +> if (type(expr, `^`)) +> then +> base := op(1, expr); +> power := op(2, expr); +> +> fbase := fix_rationals(base, args[2..nargs]); +> if (type(power, integer)) +> then fpower := power; +> else fpower := fix_rationals(power, args[2..nargs]); +> end if; +> return fbase ^ fpower; +> end if; +> +# fix integers and fractions +> if (type(expr, integer)) +> then return 'RATIONAL'(expr, 1); +> end if; +> if (type(expr, fraction)) +> then +> num := op(1, expr); +> den := op(2, expr); +> +> return 'RATIONAL'(num, den); +> end if; +> +# turn Maple floating-point into integer fraction, then recursively fix that +> if (type(expr, float)) +> then +> mult := op(1, expr); +> power := op(2, expr); +> return fix_rationals(mult * 10^power, args[2..nargs]); +> end if; +> +# identity op on names +> if (type(expr, name)) +> then return expr; +> end if; +> +# unknown type +> error "%0", +> "unknown type for expr!", +> " whattype(expr) = ", whattype(expr), +> " expr = ", expr; +> end proc; +fix_rationals := proc(expr::{algebraic, name = algebraic, +list({algebraic, name = algebraic}), set({algebraic, name = algebraic})}, +inert_fn::{procedure, name}) +local nn, k, base, power, fbase, fpower, fn, fn_args_list, num, den, mult; + if 2 <= nargs and inert_fn(expr, args[3 .. nargs]) then return expr + end if; + if type(expr, {set, list}) then + return map(fix_rationals, expr, args[2 .. nargs]) + end if; + if type(expr, name = algebraic) then + return lhs(expr) = fix_rationals(rhs(expr), args[2 .. nargs]) + end if; + if type(expr, function) then + fn := op(0, expr); + if fn <> 'RATIONAL' then + fn_args_list := [op(expr)]; + fn_args_list := + map(fix_rationals, fn_args_list, args[2 .. nargs]); + fn; + return '%'(op(fn_args_list)) + end if + end if; + nn := nops(expr); + if type(expr, `+`) then return + sum('fix_rationals(op(k, expr), args[2 .. nargs])', 'k' = 1 .. nn) + end if; + if type(expr, `*`) then + if op(1, expr) = -1 then return -fix_rationals( + remove(type, expr, 'identical(-1)'), args[2 .. nargs]) + else return product('fix_rationals(op(k, expr), args[2 .. nargs])', + 'k' = 1 .. nn) + end if + end if; + if type(expr, `^`) then + base := op(1, expr); + power := op(2, expr); + fbase := fix_rationals(base, args[2 .. nargs]); + if type(power, integer) then fpower := power + else fpower := fix_rationals(power, args[2 .. nargs]) + end if; + return fbase^fpower + end if; + if type(expr, integer) then return 'RATIONAL'(expr, 1) end if; + if type(expr, fraction) then + num := op(1, expr); den := op(2, expr); return 'RATIONAL'(num, den) + end if; + if type(expr, float) then + mult := op(1, expr); + power := op(2, expr); + return fix_rationals(mult*10^power, args[2 .. nargs]) + end if; + if type(expr, name) then return expr end if; + error "%0", "unknown type for expr!", " whattype(expr) = ", + whattype(expr), " expr = ", expr +end proc + +> +################################################################################ +> +# +# This function finds names in a list which *don't* have a specified prefix. +# +# Arguments: +# name_list = A list of the names. +# prefix = The prefix we want to filter out. +# +# Results: +# This function returns the subset list of names which don't have the +# specified prefix. +# +> nonmatching_names := +> proc( name_list::list({name,string}), prefix::{name,string} ) +> +> select( proc(n) +> evalb(not StringTools[IsPrefix](prefix,n)); +> end proc +> , +> name_list +> ); +> end proc; +nonmatching_names := proc( +name_list::list({name, string}), prefix::{name, string}) + select(proc(n) evalb(not StringTools[IsPrefix](prefix, n)) end proc, + name_list) +end proc + +> +################################################################################ +> +# +# This function converts a numeric list to a string which is a valid +# C identifier suffix: elements are separated by "_", decimal points are +# replaced by "x", and all nonzero values have explicit +/- signs, which +# are replaced by "p"/"m". +# +# For example, [0,-3.5,+4] --> "0_m3x5_p4". +# +> sprint_numeric_list := +> proc(nlist::list(numeric)) +> +# generate preliminary string, eg "+0_-3.5_+4" +> map2(sprintf, "%+a", nlist); +> ListTools[Join](%, "_"); +> cat(op(%)); +> +# fixup bad characters +> StringTools[SubstituteAll](%, "+0", "0"); +> StringTools[CharacterMap](".+-", "xpm", %); +> +> return %; +> end proc; +sprint_numeric_list := proc(nlist::list(numeric)) + map2(sprintf, "%+a", nlist); + ListTools[Join](%, "_"); + cat(op(%)); + StringTools[SubstituteAll](%, "+0", "0"); + StringTools[CharacterMap](".+-", "xpm", %); + return % +end proc + +> +################################################################################ +> +# +# This function prints a C declaration for a list of names. +# +# Argument: +# name_list = A list of the names. +# name_type = The C type of the names, eg. "double". +# file_name = The file name to write the declaration to. This is +# truncated before writing. +# +> print_name_list_dcl := +> proc( name_list::list({name,string}), +> name_type::string, +> file_name::string ) +> local blanks, separator_string; +> +> ftruncate(file_name); +> +# a sequence of blanks with the same length as name_type +> seq(" ", i=1..length(name_type)); +> +# string to separate names +> separator_string := cat(",\n", %, " "); +> +> map(convert, name_list, string); +> ListTools[Join](%, separator_string); +> cat(op(%)); +> +> fprintf(file_name, +> "%s %s;\n", +> name_type, %); +> NULL; +> end proc; +print_name_list_dcl := proc( +name_list::list({name, string}), name_type::string, file_name::string) +local blanks, separator_string; + ftruncate(file_name); + seq(" ", i = 1 .. length(name_type)); + separator_string := cat(",\n", %, " "); + map(convert, name_list, string); + ListTools[Join](%, separator_string); + cat(op(%)); + fprintf(file_name, "%s %s;\n", name_type, %); + NULL +end proc + +> +################################################################################ +################################################################################ +################################################################################ +> +# +# This function computes a list of all the (integer) points in an +# N-dimensional hypercube, in lexicographic order. The present +# implementation requires N <= 4. +# +# Arguments: +# cmin,cmax = N-element lists of cube minimum/maximum coordinates. +# +# Results: +# The function returns a set of d-element lists giving the coordinates. +# For example, +# hypercube([0,0], [2,1] +# returns +# { [0,0], [0,1], [1,0], [1,1], [2,0], [2,1] } +> hypercube_points := +> proc(cmin::list(integer), cmax::list(integer)) +> local N, i,j,k,l; +> +> N := nops(cmin); +> if (nops(cmax) <> N) +> then error +> "must have same number of dimensions for min and max coordinates!"; +> fi; +> +> if (N = 1) +> then return [seq([i], i=cmin[1]..cmax[1])]; +> elif (N = 2) +> then return [ +> seq( +> seq([i,j], j=cmin[2]..cmax[2]), +> i=cmin[1]..cmax[1]) +> ]; +> elif (N = 3) +> then return [ +> seq( +> seq( +> seq([i,j,k], k=cmin[3]..cmax[3]), +> j=cmin[2]..cmax[2] ), +> i=cmin[1]..cmax[1]) +> ]; +> elif (N = 4) +> then return [ +> seq( +> seq( +> seq( +> seq([i,j,k,l], l=cmin[4]..cmax[4]), +> k=cmin[3]..cmax[3] ), +> j=cmin[2]..cmax[2]), +> i=cmin[1]..cmax[1]) +> ]; +> else +> error "implementation restriction: must have N <= 4, got %1!", N; +> fi; +> end proc; +hypercube_points := proc(cmin::list(integer), cmax::list(integer)) +local N, i, j, k, l; + N := nops(cmin); + if nops(cmax) <> N then error + "must have same number of dimensions for min and max coordinates!" + end if; + if N = 1 then return [seq([i], i = cmin[1] .. cmax[1])] + elif N = 2 then return + [seq(seq([i, j], j = cmin[2] .. cmax[2]), i = cmin[1] .. cmax[1])] + elif N = 3 then return [seq( + seq(seq([i, j, k], k = cmin[3] .. cmax[3]), j = cmin[2] .. cmax[2]) + , i = cmin[1] .. cmax[1])] + elif N = 4 then return [seq(seq(seq( + seq([i, j, k, l], l = cmin[4] .. cmax[4]), k = cmin[3] .. cmax[3]), + j = cmin[2] .. cmax[2]), i = cmin[1] .. cmax[1])] + else error "implementation restriction: must have N <= 4, got %1!", N + end if +end proc + +> +################################################################################ +################################################################################ +################################################################################ +> +# +# This function truncates a file to 0 length if it exists, or creates +# it at that length if it doesn't exist. +# +# Arguments: +# file_name = (in) The name of the file. +# +> ftruncate := +> proc(file_name::string) +> fopen(file_name, 'WRITE'); +> fclose(%); +> NULL; +> end proc; +ftruncate := + + proc(file_name::string) fopen(file_name, 'WRITE'); fclose(%); NULL end proc + +# GInterpolate.maple -- compute generalized interpolation formulas/coefficients +# $Id$ +> +# +# <<<representation of numbers, data values, etc>>> +# polynomial_interpolant - compute polynomial interpolant +# coeff_as_lc_of_data - coefficients of ... (linear combination of data) +# +# print_coeff__lc_of_data - print C code to compute coefficients +# print_data_var_assign - print C code to assign data-value variables +# print_interp_cmpt__lc_of_data - print C code for computation of interpolant +# +# coeff_name - name of coefficient of data at a given [m] coordinate +# data_var_name - name of variable storing data value at a given [m] coordinate +# +> +################################################################################ +> +# +# ***** representation of numbers, data values, etc ***** +# +# We use RATIONAL(p.0,q.0) to denote the rational number p/q. +# +# We use DATA(...) to represent the data values being interpolated at a +# specified [m] coordinate, where the arguments are the [m] coordinates. +# +# We use COEFF(...) to represent the molecule coefficient at a specified +# [m] coordinate, where the arguments are the [m] coordinates. +# +# For example, the usual 1-D centered 2nd order 1st derivative molecule +# would be written +# RATIONAL(-1.0,2.0)*DATA(-1) + RATIONA(1.0,2.0)*DATA(1) +# and its coefficients as +# COEFF(-1) = RATIONAL(-1.0,2.0) +# COEFF(1) = RATIONAL(1.0,2.0) +# +> +################################################################################ +################################################################################ +################################################################################ +> +# +# This function computes a polynomial interpolant in any number of dimensions. +# +# Arguments: +# fn = The interpolation function. This should be a procedure in the +# coordinates, having the coefficients as global variables. For +# example, +# proc(x,y) c00 + c10*x + c01*y end proc +# coeff_list = A set of the interpolation coefficients (coefficients in +# the interpolation function), for example [c00, c10, c01]. +# coord_list = A list of the coordinates (independent variables in the +# interpolation function), for example [x,y]. +# posn_list = A list of positions (each a list of numeric values) where the +# interpolant is to use data, for example hypercube([0,0], [1,1]). +# Any positions may be used; if they're redundant (as in the +# example) the least-squares interpolant is computed. +# +# Results: +# This function returns the interpolating polynomial, in the form of +# an algebraic expression in the coordinates and the data values. +# +> polynomial_interpolant := +> proc( +> fn::procedure, coeff_list::list(name), +> coord_list::list(name), posn_list::list(list(numeric)) +> ) +> local posn, data_eqns, coeff_eqns; +> +# coefficients of interpolating polynomial +> data_eqns := { seq( fn(op(posn))='DATA'(op(posn)) , posn=posn_list ) }; +> coeff_eqns := linalg[leastsqrs](data_eqns, {op(coeff_list)}); +> if (has(coeff_eqns, '_t')) +> then error "interpolation coefficients aren't uniquely determined!"; +> end if; +> +# interpolant as a polynomial in the coordinates +> return subs(coeff_eqns, eval(fn))(op(coord_list)); +> end proc; +polynomial_interpolant := proc(fn::procedure, coeff_list::list(name), +coord_list::list(name), posn_list::list(list(numeric))) +local posn, data_eqns, coeff_eqns; + data_eqns := {seq(fn(op(posn)) = 'DATA'(op(posn)), posn = posn_list)}; + coeff_eqns := linalg[leastsqrs](data_eqns, {op(coeff_list)}); + if has(coeff_eqns, '_t') then + error "interpolation coefficients aren't uniquely determined!" + end if; + return subs(coeff_eqns, eval(fn))(op(coord_list)) +end proc + +> +################################################################################ +> +# +# This function takes as input an interpolating polynomial, expresses +# it as a linear combination of the data values, and returns the coefficeints +# of that form. +# +# Arguments: +# interpolant = The interpolating polynomial (an algebraic expression +# in the coordinates and the data values). +# posn_list = The same list of positions as was used to compute the +# interpolating polynomial. +# +# Results: +# This function returns the coefficients, as a list of equations of the +# form COEFF(...) = value , where each value is a polynomial in the +# coordinates. The order of the list matches that of posn_list. +# +> coeff_as_lc_of_data := +> proc( +> interpolant::algebraic, +> posn_list::list(list(numeric)) +> ) +> local data_list, interpolant_as_lc_of_data; +> +# interpolant as a linear combination of the data values +> data_list := [ seq( 'DATA'(op(posn)) , posn=posn_list ) ]; +> interpolant_as_lc_of_data := collect(interpolant, data_list); +> +# coefficients of the data values in the linear combination +> return map( +> proc(posn::list(numeric)) +> coeff(interpolant_as_lc_of_data, DATA(op(posn))); +> 'COEFF'(op(posn)) = %; +> end proc +> , +> posn_list +> ); +> end proc; +coeff_as_lc_of_data := proc( +interpolant::algebraic, posn_list::list(list(numeric))) +local data_list, interpolant_as_lc_of_data; + data_list := [seq('DATA'(op(posn)), posn = posn_list)]; + interpolant_as_lc_of_data := collect(interpolant, data_list); + return map(proc(posn::list(numeric)) + coeff(interpolant_as_lc_of_data, DATA(op(posn))); + 'COEFF'(op(posn)) = % + end proc, posn_list) +end proc + +> +################################################################################ +################################################################################ +################################################################################ +> +# +# This function prints C expressions for the coefficients of an +# interpolating polynomial. (The polynomial is expressed as linear +# combinations of the data values with coefficients which are +# RATIONAL(p,q) calls.) +# +# Arguments: +# coeff_list = A list of the coefficients, as returned from +# coeff_as_lc_of_data() . +# coeff_name_prefix = A prefix string for the coefficient names. +# temp_name_type = The C type to be used for Maple-introduced temporary +# names, eg. "double". +# file_name = The file name to write the coefficients to. This is +# truncated before writing. +# +> print_coeff__lc_of_data := +> proc( coeff_list::list(specfunc(numeric,COEFF) = algebraic), +> coeff_name_prefix::string, +> temp_name_type::string, +> file_name::string ) +> global `codegen/C/function/informed`; +> local coeff_list2, cmpt_list, temp_name_list; +> +# convert LHS of each equation from a COEFF() call (eg COEFF(-1,+1)) +# to a Maple/C variable name (eg coeff_I_m1_p1) +> coeff_list2 := map( +> proc(coeff_eqn::specfunc(numeric,COEFF) = algebraic) +> local posn; +> posn := [op(lhs(coeff_eqn))]; +> coeff_name(posn,coeff_name_prefix); +> convert(%, name); # codegen[C] wants LHS +> # to be an actual Maple *name* +> % = fix_rationals(rhs(coeff_eqn)); +> end proc +> , +> coeff_list +> ); +> +# +# generate the C code +# +> +# tell codegen[C] not to warn about unknown RATIONAL() and DATA() "fn calls" +# via undocumented :( global table +> `codegen/C/function/informed`['RATIONAL'] := true; +> `codegen/C/function/informed`['DATA'] := true; +> +> ftruncate(file_name); +> +# optimized computation sequence for all the coefficients +# (may use local variables t0,t1,t2,...) +> cmpt_list := [codegen[optimize](coeff_list2, tryhard)]; +> +# list of the t0,t1,t2,... local variables +> temp_name_list := nonmatching_names(map(lhs,cmpt_list), coeff_name_prefix); +> +# declare the t0,t1,t2,... local variables (if there are any) +> if (nops(temp_name_list) > 0) +> then print_name_list_dcl(%, temp_name_type, file_name); +> fi; +> +# now print the optimized computation sequence +> codegen[C](cmpt_list, filename=file_name); +> +> NULL; +> end proc; +print_coeff__lc_of_data := proc( +coeff_list::list(specfunc(numeric, COEFF) = algebraic), +coeff_name_prefix::string, temp_name_type::string, file_name::string) +local coeff_list2, cmpt_list, temp_name_list; +global `codegen/C/function/informed`; + coeff_list2 := map(proc( + coeff_eqn::(specfunc(numeric, COEFF) = algebraic)) + local posn; + posn := [op(lhs(coeff_eqn))]; + coeff_name(posn, coeff_name_prefix); + convert(%, name); + % = fix_rationals(rhs(coeff_eqn)) + end proc, coeff_list); + `codegen/C/function/informed`['RATIONAL'] := true; + `codegen/C/function/informed`['DATA'] := true; + ftruncate(file_name); + cmpt_list := [codegen[optimize](coeff_list2, tryhard)]; + temp_name_list := + nonmatching_names(map(lhs, cmpt_list), coeff_name_prefix); + if 0 < nops(temp_name_list) then + print_name_list_dcl(%, temp_name_type, file_name) + end if; + codegen[C](cmpt_list, filename = file_name); + NULL +end proc + +> +################################################################################ +> +# +# This function prints a sequence of C expression to assign the data-value +# variables. +# +# Arguments: +# posn_list = The same list of positions as was used to compute the +# interpolating polynomial. +# data_var_name_prefix = A prefix string for the data variable names. +# file_name = The file name to write the coefficients to. This is +# truncated before writing. +# +> print_data_var_assign := +> proc( +> posn_list::list(list(numeric)), +> data_var_name_prefix::string, +> file_name::string +> ) +> +> ftruncate(file_name); +> +> map( +> proc(posn::list(numeric)) +> fprintf(file_name, +> "%s = %a;\n", +> data_var_name(posn,data_var_name_prefix), +> DATA(op(posn))); +> end proc +> , +> posn_list +> ); +> +> NULL; +> end proc; +print_data_var_assign := proc(posn_list::list(list(numeric)), +data_var_name_prefix::string, file_name::string) + ftruncate(file_name); + map(proc(posn::list(numeric)) + fprintf(file_name, "%s = %a;\n", + data_var_name(posn, data_var_name_prefix), DATA(op(posn))) + end proc, posn_list); + NULL +end proc + +> +################################################################################ +> +# +# This function prints a C expression to compute the interpolant, +# using the coefficients computed by print_coeff__lc_of_data() +# (i.e. expressing the interpolant as a linear combination of the +# data values). +# +# Arguments: +# posn_list = The same list of positions as was used to compute the +# interpolating polynomial. +# result_var_name = The (string) name of the variable to which the +# result is to be assigned. +# coeff_name_prefix = A prefix string for the coefficient names. +# data_var_name_prefix = A prefix string for the data variable names. +# file_name = The file name to write the coefficients to. This is +# truncated before writing. +# +> print_interp_cmpt__lc_of_data := +> proc( +> posn_list::list(list(numeric)), +> result_var_name::string, +> coeff_name_prefix::string, +> data_var_name_prefix::string, +> file_name::string +> ) +> +> ftruncate(file_name); +> fprintf(file_name, "%s =\n", result_var_name); +> +# list of "coeff*data_var" terms +> map( +> proc(posn::list(numeric)) +> sprintf("%s*%s", +> coeff_name(posn,coeff_name_prefix), +> data_var_name(posn,data_var_name_prefix)); +> end proc +> , +> posn_list +> ); +> +> ListTools[Join](%, "\n\t+ "); +> cat(op(%)); +> +> fprintf(file_name, "\t%s;\n", %); +> NULL; +> end proc; +print_interp_cmpt__lc_of_data := proc(posn_list::list(list(numeric)), +result_var_name::string, coeff_name_prefix::string, +data_var_name_prefix::string, file_name::string) + ftruncate(file_name); + fprintf(file_name, "%s =\n", result_var_name); + map(proc(posn::list(numeric)) + sprintf("%s*%s", coeff_name(posn, coeff_name_prefix), + data_var_name(posn, data_var_name_prefix)) + end proc, posn_list); + ListTools[Join](%, "\n\t+ "); + cat(op(%)); + fprintf(file_name, "\t%s;\n", %); + NULL +end proc + +> +################################################################################ +################################################################################ +################################################################################ +> +# +# This function computes the name of the coefficient of the data at a +# given [m] position, i.e. it encapsulates our naming convention for this. +# +# Arguments: +# posn = (in) The [m] coordinates. +# name_prefix = A prefix string for the coefficient name. +# +# Results: +# The function returns the coefficient, as a Maple string. +# +> coeff_name := +> proc(posn::list(numeric), name_prefix::string) +> cat(name_prefix, sprint_numeric_list(posn)); +> end proc; +coeff_name := proc(posn::list(numeric), name_prefix::string) + cat(name_prefix, sprint_numeric_list(posn)) +end proc + +> +################################################################################ +> +# +# This function computes the name of the variable in which the C code +# will store the input data at a given [m] position, i.e. it encapsulates +# our naming convention for this. +# +# Arguments: +# posn = (in) The [m] coordinates. +# name_prefix = A prefix string for the variable name. +# +# Results: +# The function returns the variable name, as a Maple string. +# +> data_var_name := +> proc(posn::list(numeric), name_prefix::string) +> cat(name_prefix, sprint_numeric_list(posn)); +> end proc; +data_var_name := proc(posn::list(numeric), name_prefix::string) + cat(name_prefix, sprint_numeric_list(posn)) +end proc + +# Maple code to compute 1-D Lagrange interpolation coefficients (orders 1-4) +# $Id$ +> +################################################################################ +> +# +# interpolating functions +# +> +> fn_1d_order1 := +> proc(x) +> + c0 + c1*x +> end proc; + fn_1d_order1 := proc(x) c0 + c1*x end proc + +> +> fn_1d_order2 := +> proc(x) +> + c0 + c1*x + c2*x^2 +> end proc; + fn_1d_order2 := proc(x) c0 + c1*x + c2*x^2 end proc + +> +> fn_1d_order3 := +> proc(x) +> + c0 + c1*x + c2*x^2 + c3*x^3 +> end proc; + fn_1d_order3 := proc(x) c0 + c1*x + c2*x^2 + c3*x^3 end proc + +> +> fn_1d_order4 := +> proc(x) +> + c0 + c1*x + c2*x^2 + c3*x^3 + c4*x^4 +> end; + fn_1d_order4 := proc(x) c0 + c1*x + c2*x^2 + c3*x^3 + c4*x^4 end proc + +> +> fn_1d_order5 := +> proc(x) +> + c0 + c1*x + c2*x^2 + c3*x^3 + c4*x^4 + c5*x^5 +> end; + fn_1d_order5 := proc(x) c0 + c1*x + c2*x^2 + c3*x^3 + c4*x^4 + c5*x^5 end proc + +> +> fn_1d_order6 := +> proc(x) +> + c0 + c1*x + c2*x^2 + c3*x^3 + c4*x^4 + c5*x^5 + c6*x^6 +> end; +fn_1d_order6 := + + proc(x) c0 + c1*x + c2*x^2 + c3*x^3 + c4*x^4 + c5*x^5 + c6*x^6 end proc + +> +######################################## +> +# +# coefficients in interpolating functions +# +> +> coeff_list_1d_order1 := [c0, c1]; + coeff_list_1d_order1 := [c0, c1] + +> coeff_list_1d_order2 := [c0, c1, c2]; + coeff_list_1d_order2 := [c0, c1, c2] + +> coeff_list_1d_order3 := [c0, c1, c2, c3]; + coeff_list_1d_order3 := [c0, c1, c2, c3] + +> coeff_list_1d_order4 := [c0, c1, c2, c3, c4]; + coeff_list_1d_order4 := [c0, c1, c2, c3, c4] + +> coeff_list_1d_order5 := [c0, c1, c2, c3, c4, c5]; + coeff_list_1d_order5 := [c0, c1, c2, c3, c4, c5] + +> coeff_list_1d_order6 := [c0, c1, c2, c3, c4, c5, c6]; + coeff_list_1d_order6 := [c0, c1, c2, c3, c4, c5, c6] + +> +######################################## +> +# +# coordinates and interpolation points +# +> +> coord_list_1d := [x]; + coord_list_1d := [x] + +> +# generate points in Fortran ordering +> posn_list_1d_size2 := map(ListTools[Reverse], hypercube_points([ 0], [+1])); + posn_list_1d_size2 := [[0], [1]] + +> posn_list_1d_size3 := map(ListTools[Reverse], hypercube_points([-1], [+1])); + posn_list_1d_size3 := [[-1], [0], [1]] + +> posn_list_1d_size4 := map(ListTools[Reverse], hypercube_points([-1], [+2])); + posn_list_1d_size4 := [[-1], [0], [1], [2]] + +> posn_list_1d_size5 := map(ListTools[Reverse], hypercube_points([-2], [+2])); + posn_list_1d_size5 := [[-2], [-1], [0], [1], [2]] + +> posn_list_1d_size6 := map(ListTools[Reverse], hypercube_points([-2], [+3])); + posn_list_1d_size6 := [[-2], [-1], [0], [1], [2], [3]] + +> posn_list_1d_size7 := map(ListTools[Reverse], hypercube_points([-3], [+3])); + posn_list_1d_size7 := [[-3], [-2], [-1], [0], [1], [2], [3]] + +> +################################################################################ +> +# +# generic stuff for 1d, cube, size=2 +# +> +> data_var_list_1d_size2 := map(data_var_name, posn_list_1d_size2, "data_"); + data_var_list_1d_size2 := ["data_0", "data_p1"] + +> +> print_name_list_dcl(data_var_list_1d_size2, +> "fp", "1d.coeffs/1d.cube.size2/data-var.dcl.c"); +> print_data_var_assign(posn_list_1d_size2, +> "data_", "1d.coeffs/1d.cube.size2/data-var.assign.c"); +> +> print_name_list_dcl(map(coeff_name, posn_list_1d_size2, "coeff_I_"), +> "fp", "1d.coeffs/1d.cube.size2/coeff-I.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_1d_size2, "coeff_dx_"), +> "fp", "1d.coeffs/1d.cube.size2/coeff-dx.dcl.c"); +> +> print_interp_cmpt__lc_of_data(posn_list_1d_size2, +> "result", "coeff_I_", "data_", +> "1d.coeffs/1d.cube.size2/interp-I.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_1d_size2, +> "result", "coeff_dx_", "data_", +> "1d.coeffs/1d.cube.size2/interp-dx.compute.c"); +> +######################################## +> +# +# generic stuff for 1d, cube, size=3 +# +> +> data_var_list_1d_size3 := map(data_var_name, posn_list_1d_size3, "data_"); + data_var_list_1d_size3 := ["data_m1", "data_0", "data_p1"] + +> +> print_name_list_dcl(data_var_list_1d_size3, +> "fp", "1d.coeffs/1d.cube.size3/data-var.dcl.c"); +> print_data_var_assign(posn_list_1d_size3, +> "data_", "1d.coeffs/1d.cube.size3/data-var.assign.c"); +> +> print_name_list_dcl(map(coeff_name, posn_list_1d_size3, "coeff_I_"), +> "fp", "1d.coeffs/1d.cube.size3/coeff-I.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_1d_size3, "coeff_dx_"), +> "fp", "1d.coeffs/1d.cube.size3/coeff-dx.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_1d_size3, "coeff_dxx_"), +> "fp", "1d.coeffs/1d.cube.size3/coeff-dxx.dcl.c"); +> +> print_interp_cmpt__lc_of_data(posn_list_1d_size3, +> "result", "coeff_I_", "data_", +> "1d.coeffs/1d.cube.size3/interp-I.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_1d_size3, +> "result", "coeff_dx_", "data_", +> "1d.coeffs/1d.cube.size3/interp-dx.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_1d_size3, +> "result", "coeff_dxx_", "data_", +> "1d.coeffs/1d.cube.size3/interp-dxx.compute.c"); +> +######################################## +> +# +# generic stuff for 1d, cube, size=4 +# +> +> data_var_list_1d_size4 := map(data_var_name, posn_list_1d_size4, "data_"); + data_var_list_1d_size4 := ["data_m1", "data_0", "data_p1", "data_p2"] + +> +> print_name_list_dcl(data_var_list_1d_size4, +> "fp", "1d.coeffs/1d.cube.size4/data-var.dcl.c"); +> print_data_var_assign(posn_list_1d_size4, +> "data_", "1d.coeffs/1d.cube.size4/data-var.assign.c"); +> +> print_name_list_dcl(map(coeff_name, posn_list_1d_size4, "coeff_I_"), +> "fp", "1d.coeffs/1d.cube.size4/coeff-I.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_1d_size4, "coeff_dx_"), +> "fp", "1d.coeffs/1d.cube.size4/coeff-dx.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_1d_size4, "coeff_dxx_"), +> "fp", "1d.coeffs/1d.cube.size4/coeff-dxx.dcl.c"); +> +> print_interp_cmpt__lc_of_data(posn_list_1d_size4, +> "result", "coeff_I_", "data_", +> "1d.coeffs/1d.cube.size4/interp-I.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_1d_size4, +> "result", "coeff_dx_", "data_", +> "1d.coeffs/1d.cube.size4/interp-dx.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_1d_size4, +> "result", "coeff_dxx_", "data_", +> "1d.coeffs/1d.cube.size4/interp-dxx.compute.c"); +> +######################################## +> +# +# generic stuff for 1d, cube, size=5 +# +> +> data_var_list_1d_size5 := map(data_var_name, posn_list_1d_size5, "data_"); +data_var_list_1d_size5 := + + ["data_m2", "data_m1", "data_0", "data_p1", "data_p2"] + +> +> print_name_list_dcl(data_var_list_1d_size5, +> "fp", "1d.coeffs/1d.cube.size5/data-var.dcl.c"); +> print_data_var_assign(posn_list_1d_size5, +> "data_", "1d.coeffs/1d.cube.size5/data-var.assign.c"); +> +> print_name_list_dcl(map(coeff_name, posn_list_1d_size5, "coeff_I_"), +> "fp", "1d.coeffs/1d.cube.size5/coeff-I.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_1d_size5, "coeff_dx_"), +> "fp", "1d.coeffs/1d.cube.size5/coeff-dx.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_1d_size5, "coeff_dxx_"), +> "fp", "1d.coeffs/1d.cube.size5/coeff-dxx.dcl.c"); +> +> print_interp_cmpt__lc_of_data(posn_list_1d_size5, +> "result", "coeff_I_", "data_", +> "1d.coeffs/1d.cube.size5/interp-I.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_1d_size5, +> "result", "coeff_dx_", "data_", +> "1d.coeffs/1d.cube.size5/interp-dx.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_1d_size5, +> "result", "coeff_dxx_", "data_", +> "1d.coeffs/1d.cube.size5/interp-dxx.compute.c"); +> +######################################## +> +# +# generic stuff for 1d, cube, size=6 +# +> +> data_var_list_1d_size6 := map(data_var_name, posn_list_1d_size6, "data_"); +data_var_list_1d_size6 := + + ["data_m2", "data_m1", "data_0", "data_p1", "data_p2", "data_p3"] + +> +> print_name_list_dcl(data_var_list_1d_size6, +> "fp", "1d.coeffs/1d.cube.size6/data-var.dcl.c"); +> print_data_var_assign(posn_list_1d_size6, +> "data_", "1d.coeffs/1d.cube.size6/data-var.assign.c"); +> +> print_name_list_dcl(map(coeff_name, posn_list_1d_size6, "coeff_I_"), +> "fp", "1d.coeffs/1d.cube.size6/coeff-I.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_1d_size6, "coeff_dx_"), +> "fp", "1d.coeffs/1d.cube.size6/coeff-dx.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_1d_size6, "coeff_dxx_"), +> "fp", "1d.coeffs/1d.cube.size6/coeff-dxx.dcl.c"); +> +> print_interp_cmpt__lc_of_data(posn_list_1d_size6, +> "result", "coeff_I_", "data_", +> "1d.coeffs/1d.cube.size6/interp-I.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_1d_size6, +> "result", "coeff_dx_", "data_", +> "1d.coeffs/1d.cube.size6/interp-dx.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_1d_size6, +> "result", "coeff_dxx_", "data_", +> "1d.coeffs/1d.cube.size6/interp-dxx.compute.c"); +> +######################################## +> +# +# generic stuff for 1d, cube, size=7 +# +> +> data_var_list_1d_size7 := map(data_var_name, posn_list_1d_size7, "data_"); +data_var_list_1d_size7 := [ + + "data_m3", "data_m2", "data_m1", "data_0", "data_p1", "data_p2", "data_p3"] + +> +> print_name_list_dcl(data_var_list_1d_size7, +> "fp", "1d.coeffs/1d.cube.size7/data-var.dcl.c"); +> print_data_var_assign(posn_list_1d_size7, +> "data_", "1d.coeffs/1d.cube.size7/data-var.assign.c"); +> +> print_name_list_dcl(map(coeff_name, posn_list_1d_size7, "coeff_I_"), +> "fp", "1d.coeffs/1d.cube.size7/coeff-I.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_1d_size7, "coeff_dx_"), +> "fp", "1d.coeffs/1d.cube.size7/coeff-dx.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_1d_size7, "coeff_dxx_"), +> "fp", "1d.coeffs/1d.cube.size7/coeff-dxx.dcl.c"); +> +> print_interp_cmpt__lc_of_data(posn_list_1d_size7, +> "result", "coeff_I_", "data_", +> "1d.coeffs/1d.cube.size7/interp-I.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_1d_size7, +> "result", "coeff_dx_", "data_", +> "1d.coeffs/1d.cube.size7/interp-dx.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_1d_size7, +> "result", "coeff_dxx_", "data_", +> "1d.coeffs/1d.cube.size7/interp-dxx.compute.c"); +> +################################################################################ +> +# +# 1d, cube, order=1, smoothing=0 (size=2) +# +> +# interpolating polynomial +> interp_1d_cube_order1_smooth0 +> := polynomial_interpolant(fn_1d_order1, coeff_list_1d_order1, +> coord_list_1d, posn_list_1d_size2); + interp_1d_cube_order1_smooth0 := DATA(0) + (DATA(1) - DATA(0)) x + +> +# I +> coeff_as_lc_of_data(%, posn_list_1d_size2); + [COEFF(0) = 1 - x, COEFF(1) = x] + +> print_coeff__lc_of_data(%, "coeff_I_", "fp", +> "1d.coeffs/1d.cube.order1.smooth0/coeff-I.compute.c"); +bytes used=1000308, alloc=917336, time=0.08 +> +# d/dx +> simplify( diff(interp_1d_cube_order1_smooth0,x) ); + DATA(1) - DATA(0) + +> coeff_as_lc_of_data(%, posn_list_1d_size2); + [COEFF(0) = -1, COEFF(1) = 1] + +> print_coeff__lc_of_data(%, "coeff_dx_", "fp", +> "1d.coeffs/1d.cube.order1.smooth0/coeff-dx.compute.c"); +> +######################################## +> +# +# 1d, cube, order=2, smoothing=0 (size=3) +# +> +# interpolating polynomial +> interp_1d_cube_order2_smooth0 +> := polynomial_interpolant(fn_1d_order2, coeff_list_1d_order2, +> coord_list_1d, posn_list_1d_size3); +interp_1d_cube_order2_smooth0 := DATA(0) + (- 1/2 DATA(-1) + 1/2 DATA(1)) x + + 2 + + (1/2 DATA(-1) + 1/2 DATA(1) - DATA(0)) x + +> +# I +> coeff_as_lc_of_data(%, posn_list_1d_size3); + 2 2 2 + [COEFF(-1) = - 1/2 x + 1/2 x , COEFF(0) = 1 - x , COEFF(1) = 1/2 x + 1/2 x ] + +> print_coeff__lc_of_data(%, "coeff_I_", "fp", +> "1d.coeffs/1d.cube.order2.smooth0/coeff-I.compute.c"); +> +# d/dx +> simplify( diff(interp_1d_cube_order2_smooth0,x) ); + - 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); + [COEFF(-1) = x - 1/2, COEFF(0) = -2 x, COEFF(1) = 1/2 + x] + +> print_coeff__lc_of_data(%, "coeff_dx_", "fp", +> "1d.coeffs/1d.cube.order2.smooth0/coeff-dx.compute.c"); +bytes used=2000620, alloc=1376004, time=0.11 +> +# d^2/dx^2 +> simplify( diff(interp_1d_cube_order2_smooth0,x,x) ); + DATA(-1) + DATA(1) - 2 DATA(0) + +> coeff_as_lc_of_data(%, posn_list_1d_size3); + [COEFF(-1) = 1, COEFF(0) = -2, COEFF(1) = 1] + +> print_coeff__lc_of_data(%, "coeff_dxx_", "fp", +> "1d.coeffs/1d.cube.order2.smooth0/coeff-dxx.compute.c"); +> +######################################## +> +# +# 1d, cube, order=3, smoothing=0 (size=4) +# +> +# interpolating polynomial +> interp_1d_cube_order3_smooth0 +> := polynomial_interpolant(fn_1d_order3, coeff_list_1d_order3, +> coord_list_1d, posn_list_1d_size4); +interp_1d_cube_order3_smooth0 := DATA(0) + + + (- 1/2 DATA(0) - 1/3 DATA(-1) + DATA(1) - 1/6 DATA(2)) x + + 2 + + (1/2 DATA(-1) + 1/2 DATA(1) - DATA(0)) x + + 3 + + (1/2 DATA(0) - 1/6 DATA(-1) - 1/2 DATA(1) + 1/6 DATA(2)) x + +> +# I +> coeff_as_lc_of_data(%, posn_list_1d_size4); + 2 3 2 3 +[COEFF(-1) = - 1/3 x + 1/2 x - 1/6 x , COEFF(0) = 1 - 1/2 x - x + 1/2 x , + + 2 3 3 + COEFF(1) = x + 1/2 x - 1/2 x , COEFF(2) = - 1/6 x + 1/6 x ] + +> print_coeff__lc_of_data(%, "coeff_I_", "fp", +> "1d.coeffs/1d.cube.order3.smooth0/coeff-I.compute.c"); +bytes used=3000928, alloc=1703624, time=0.18 +> +# 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) + 3/2 x DATA(0) - 1/2 x DATA(-1) - 3/2 x DATA(1) + + 2 + + 1/2 x DATA(2) + +> coeff_as_lc_of_data(%, posn_list_1d_size4); + 2 2 +[COEFF(-1) = x - 1/2 x - 1/3, COEFF(0) = - 1/2 - 2 x + 3/2 x , + + 2 2 + COEFF(1) = x + 1 - 3/2 x , COEFF(2) = 1/2 x - 1/6] + +> print_coeff__lc_of_data(%, "coeff_dx_", "fp", +> "1d.coeffs/1d.cube.order3.smooth0/coeff-dx.compute.c"); +> +# d^2/dx^2 +> simplify( diff(interp_1d_cube_order3_smooth0,x,x) ); +DATA(-1) + DATA(1) - 2 DATA(0) + 3 x DATA(0) - x DATA(-1) - 3 x DATA(1) + + + 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"); +> +######################################## +> +# +# 1d, cube, order=4, smoothing=0 (size=5) +# +> +# interpolating polynomial +> interp_1d_cube_order4_smooth0 +> := polynomial_interpolant(fn_1d_order4, coeff_list_1d_order4, +> coord_list_1d, posn_list_1d_size5); +bytes used=4001224, alloc=1769148, time=0.25 +interp_1d_cube_order4_smooth0 := DATA(0) + + + (- 1/12 DATA(2) + 1/12 DATA(-2) - 2/3 DATA(-1) + 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 + x + (1/12 DATA(2) - 1/12 DATA(-2) + 1/6 DATA(-1) - 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)) + + 4 + x + +> +# I +> coeff_as_lc_of_data(%, posn_list_1d_size5); + 2 3 4 +[COEFF(-2) = 1/12 x - 1/24 x - 1/12 x + 1/24 x , + + 2 3 4 + COEFF(-1) = - 2/3 x + 2/3 x + 1/6 x - 1/6 x , + + 2 4 + COEFF(0) = - 5/4 x + 1 + 1/4 x , + + 3 2 4 + COEFF(1) = - 1/6 x + 2/3 x + 2/3 x - 1/6 x , + + 3 2 4 + COEFF(2) = 1/12 x - 1/12 x - 1/24 x + 1/24 x ] + +> print_coeff__lc_of_data(%, "coeff_I_", "fp", +> "1d.coeffs/1d.cube.order4.smooth0/coeff-I.compute.c"); +bytes used=5001468, alloc=1834672, time=0.33 +> +# 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) + + - 1/12 x DATA(2) - 1/12 x DATA(-2) + 4/3 x DATA(-1) + 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) + + 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 + + x DATA(0) + +> coeff_as_lc_of_data(%, posn_list_1d_size5); + 2 3 +[COEFF(-2) = - 1/12 x - 1/4 x + 1/6 x + 1/12, + + 3 2 3 + COEFF(-1) = - 2/3 + 4/3 x - 2/3 x + 1/2 x , COEFF(0) = - 5/2 x + x , + + 2 3 + COEFF(1) = - 1/2 x - 2/3 x + 4/3 x + 2/3, + + 3 2 + COEFF(2) = - 1/12 - 1/12 x + 1/6 x + 1/4 x ] + +> print_coeff__lc_of_data(%, "coeff_dx_", "fp", +> "1d.coeffs/1d.cube.order4.smooth0/coeff-dx.compute.c"); +bytes used=6001700, alloc=1900196, time=0.40 +> +# 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) + + 2 + + 1/2 x DATA(2) - 1/2 x DATA(-2) + x DATA(-1) - x DATA(1) + 1/2 x DATA(2) + + 2 2 2 2 + + 1/2 x DATA(-2) - 2 x DATA(-1) - 2 x DATA(1) + 3 x DATA(0) + +> coeff_as_lc_of_data(%, posn_list_1d_size5); + 2 2 +[COEFF(-2) = - 1/12 - 1/2 x + 1/2 x , COEFF(-1) = -2 x + x + 4/3, + + 2 2 + COEFF(0) = - 5/2 + 3 x , COEFF(1) = -x + 4/3 - 2 x , + + 2 + COEFF(2) = 1/2 x - 1/12 + 1/2 x ] + +> print_coeff__lc_of_data(%, "coeff_dxx_", "fp", +> "1d.coeffs/1d.cube.order4.smooth0/coeff-dxx.compute.c"); +bytes used=7001904, alloc=1900196, time=0.47 +> +######################################## +> +# +# 1d, cube, order=5, smoothing=0 (size=6) +# +> +# interpolating polynomial +> interp_1d_cube_order5_smooth0 +> := polynomial_interpolant(fn_1d_order5, coeff_list_1d_order5, +> coord_list_1d, posn_list_1d_size6); +bytes used=8002732, alloc=1900196, time=0.54 +interp_1d_cube_order5_smooth0 := DATA(0) + (- 1/2 DATA(-1) - 1/4 DATA(2) + + - 1/3 DATA(0) + 1/20 DATA(-2) + DATA(1) + 1/30 DATA(3)) x + + + (- 5/4 DATA(0) - 1/24 DATA(2) - 1/24 DATA(-2) + 2/3 DATA(-1) + 2/3 DATA(1)) + + 2 + x + (- 1/24 DATA(-1) + 7/24 DATA(2) + 5/12 DATA(0) - 1/24 DATA(-2) + + 3 + - 7/12 DATA(1) - 1/24 DATA(3)) x + + + (1/24 DATA(2) + 1/24 DATA(-2) - 1/6 DATA(-1) - 1/6 DATA(1) + 1/4 DATA(0)) + + 4 + x + (1/24 DATA(-1) - 1/24 DATA(2) - 1/12 DATA(0) - 1/120 DATA(-2) + + 5 + + 1/12 DATA(1) + 1/120 DATA(3)) x + +> +# I +> coeff_as_lc_of_data(%, posn_list_1d_size6); + 2 3 4 5 +[COEFF(-2) = 1/20 x - 1/24 x - 1/24 x + 1/24 x - 1/120 x , + + 2 3 4 5 + COEFF(-1) = - 1/2 x + 2/3 x - 1/24 x - 1/6 x + 1/24 x , + + 2 3 4 5 + COEFF(0) = 1 - 1/3 x - 5/4 x + 5/12 x + 1/4 x - 1/12 x , + + 2 3 4 5 + COEFF(1) = x + 2/3 x - 7/12 x - 1/6 x + 1/12 x , + + 3 4 2 5 + COEFF(2) = - 1/4 x + 7/24 x + 1/24 x - 1/24 x - 1/24 x , + + 5 3 + COEFF(3) = 1/30 x + 1/120 x - 1/24 x ] + +> print_coeff__lc_of_data(%, "coeff_I_", "fp", +> "1d.coeffs/1d.cube.order5.smooth0/coeff-I.compute.c"); +bytes used=9002940, alloc=1965720, time=0.63 +> +# d/dx +> simplify( diff(interp_1d_cube_order5_smooth0,x) ); +- 1/3 DATA(0) + DATA(1) - 1/2 DATA(-1) - 1/4 DATA(2) + 1/30 DATA(3) + + 2 2 3 3 + - 7/4 x DATA(1) - 1/8 x DATA(3) + 1/6 x DATA(2) + 1/6 x DATA(-2) + + 3 3 3 4 + - 2/3 x DATA(-1) - 2/3 x DATA(1) + x DATA(0) + 5/24 x DATA(-1) + + 4 4 + - 5/24 x DATA(2) - 5/12 x DATA(0) - 5/2 x DATA(0) - 1/12 x DATA(2) + + 2 + - 1/12 x DATA(-2) + 4/3 x DATA(-1) + 4/3 x DATA(1) - 1/8 x DATA(-1) + + 2 2 2 4 + + 7/8 x DATA(2) + 5/4 x DATA(0) - 1/8 x DATA(-2) - 1/24 x DATA(-2) + + 4 4 + + 5/12 x DATA(1) + 1/24 x DATA(3) + 1/20 DATA(-2) + +> coeff_as_lc_of_data(%, posn_list_1d_size6); +bytes used=10003740, alloc=1965720, time=0.71 + 2 3 4 +[COEFF(-2) = - 1/8 x - 1/12 x + 1/6 x + 1/20 - 1/24 x , + + 4 3 2 + COEFF(-1) = 5/24 x - 2/3 x + 4/3 x - 1/2 - 1/8 x , + + 2 4 3 + COEFF(0) = 5/4 x - 5/12 x + x - 1/3 - 5/2 x, + + 4 2 3 + COEFF(1) = 5/12 x + 4/3 x - 7/4 x + 1 - 2/3 x , + + 4 2 3 + COEFF(2) = - 1/4 - 5/24 x - 1/12 x + 7/8 x + 1/6 x , + + 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=11004108, alloc=1965720, time=0.78 +> +# 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) + + - 1/4 x DATA(-1) + 7/4 x DATA(2) + 5/2 x DATA(0) - 1/4 x DATA(-2) + + 2 2 + - 7/2 x DATA(1) - 1/4 x DATA(3) + 1/2 x DATA(2) + 1/2 x DATA(-2) + + 2 2 2 3 + - 2 x DATA(-1) - 2 x DATA(1) + 3 x DATA(0) + 5/6 x DATA(-1) + + 3 3 3 3 + - 5/6 x DATA(2) - 5/3 x DATA(0) - 1/6 x DATA(-2) + 5/3 x DATA(1) + + 3 + + 1/6 x DATA(3) + +> 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(-1) = 5/6 x - 1/4 x + 4/3 - 2 x , + + 3 2 + COEFF(0) = - 5/3 x + 3 x + 5/2 x - 5/2, + + 3 2 + COEFF(1) = 5/3 x - 7/2 x + 4/3 - 2 x , + + 3 2 3 + COEFF(2) = - 1/12 + 7/4 x - 5/6 x + 1/2 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=12004376, alloc=1965720, time=0.86 +> +######################################## +> +# +# 1d, cube, order=6, smoothing=0 (size=7) +# +> +# interpolating polynomial +> interp_1d_cube_order6_smooth0 +> := polynomial_interpolant(fn_1d_order6, coeff_list_1d_order6, +> coord_list_1d, posn_list_1d_size7); +bytes used=13004532, alloc=1965720, time=0.95 +interp_1d_cube_order6_smooth0 := DATA(0) + (- 3/4 DATA(-1) - 3/20 DATA(2) + + / + - 1/60 DATA(-3) + 3/20 DATA(-2) + 3/4 DATA(1) + 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) + + 49 \ 2 /13 + - -- DATA(0) - 3/40 DATA(2)| x + |-- DATA(-1) + 1/6 DATA(2) + 36 / \48 + + 13 \ 3 / + + 1/48 DATA(-3) - 1/6 DATA(-2) - -- DATA(1) - 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 + + \ 4 + + 7/18 DATA(0) + 1/12 DATA(2)| x + (- 1/48 DATA(-1) - 1/60 DATA(2) + / + + 5 + - 1/240 DATA(-3) + 1/60 DATA(-2) + 1/48 DATA(1) + 1/240 DATA(3)) x + ( + + 1/48 DATA(-1) + 1/720 DATA(3) - 1/120 DATA(-2) + 1/720 DATA(-3) + + 6 + + 1/48 DATA(1) - 1/36 DATA(0) - 1/120 DATA(2)) x + +> +# I +> coeff_as_lc_of_data(%, posn_list_1d_size7); + 2 3 4 5 6 +[COEFF(-3) = - 1/60 x + 1/180 x + 1/48 x - 1/144 x - 1/240 x + 1/720 x , + + 2 3 4 5 6 + COEFF(-2) = 3/20 x - 3/40 x - 1/6 x + 1/12 x + 1/60 x - 1/120 x , + + 2 13 3 13 4 5 6 + COEFF(-1) = - 3/4 x + 3/4 x + -- x - -- x - 1/48 x + 1/48 x , + 48 48 + + 4 49 2 6 + COEFF(0) = 7/18 x - -- x + 1 - 1/36 x , + 36 + + 13 3 2 5 6 13 4 + COEFF(1) = - -- x + 3/4 x + 3/4 x + 1/48 x + 1/48 x - -- x , + 48 48 + + 3 2 5 6 4 + COEFF(2) = 1/6 x - 3/20 x - 3/40 x - 1/60 x - 1/120 x + 1/12 x , + + 3 2 5 6 4 + COEFF(3) = - 1/48 x + 1/60 x + 1/180 x + 1/240 x + 1/720 x - 1/144 x ] + +> print_coeff__lc_of_data(%, "coeff_I_", "fp", +> "1d.coeffs/1d.cube.order6.smooth0/coeff-I.compute.c"); +bytes used=14004752, alloc=1965720, time=1.02 +bytes used=15005080, alloc=1965720, time=1.11 +> +# d/dx +> simplify( diff(interp_1d_cube_order6_smooth0,x) ); +bytes used=16005600, alloc=1965720, time=1.19 + 2 +3/4 DATA(1) - 3/4 DATA(-1) - 3/20 DATA(2) - 1/60 DATA(-3) + 1/16 x DATA(-3) + + 13 2 2 13 3 3 + - -- x DATA(1) - 1/16 x DATA(3) - -- x DATA(-1) - 1/36 x DATA(3) + 16 12 + + 3 3 13 3 3 + + 1/3 x DATA(-2) - 1/36 x DATA(-3) - -- x DATA(1) + 14/9 x DATA(0) + 12 + + 3 4 4 4 + + 1/3 x DATA(2) - 5/48 x DATA(-1) - 1/12 x DATA(2) - 1/48 x DATA(-3) + + 4 4 4 5 + + 1/12 x DATA(-2) + 5/48 x DATA(1) + 1/48 x DATA(3) + 1/8 x DATA(-1) + + 5 5 5 5 + + 1/120 x DATA(3) - 1/20 x DATA(-2) + 1/120 x DATA(-3) + 1/8 x DATA(1) + + 5 5 2 + - 1/6 x DATA(0) - 1/20 x DATA(2) - 1/2 x DATA(-2) + 3/2 x DATA(-1) + + + 1/90 x DATA(3) - 3/20 x DATA(-2) + 1/90 x DATA(-3) + 3/2 x DATA(1) + + 49 13 2 2 + - -- x DATA(0) - 3/20 x DATA(2) + -- x DATA(-1) + 1/2 x DATA(2) + 18 16 + + + 1/60 DATA(3) + 3/20 DATA(-2) + +> coeff_as_lc_of_data(%, posn_list_1d_size7); + 2 5 3 4 +[COEFF(-3) = 1/16 x + 1/120 x - 1/60 + 1/90 x - 1/36 x - 1/48 x , + + 4 5 2 3 + COEFF(-2) = 1/12 x - 1/20 x - 3/20 x - 1/2 x + 3/20 + 1/3 x , + + 5 13 2 4 13 3 + COEFF(-1) = 1/8 x + -- x - 3/4 - 5/48 x - -- x + 3/2 x, + 16 12 + + 5 3 49 + COEFF(0) = - 1/6 x + 14/9 x - -- x, + 18 + + 4 13 3 5 13 2 + COEFF(1) = 3/4 + 5/48 x - -- x + 1/8 x + 3/2 x - -- x , + 12 16 + + 5 3 4 2 + COEFF(2) = - 3/20 - 1/20 x + 1/3 x - 1/12 x + 1/2 x - 3/20 x, + + 5 3 2 4 + COEFF(3) = 1/90 x + 1/120 x - 1/36 x - 1/16 x + 1/60 + 1/48 x ] + +> print_coeff__lc_of_data(%, "coeff_dx_", "fp", +> "1d.coeffs/1d.cube.order6.smooth0/coeff-dx.compute.c"); +bytes used=17005760, alloc=1965720, time=1.28 +> +# d^2/dx^2 +> simplify( diff(interp_1d_cube_order6_smooth0,x,x) ); +bytes used=18008016, alloc=1965720, time=1.37 + 49 +- -- DATA(0) + 3/2 DATA(1) + 3/2 DATA(-1) - 3/20 DATA(2) + 1/90 DATA(-3) + 18 + + 2 2 2 3 + - 1/12 x DATA(-3) - 13/4 x DATA(1) - 1/12 x DATA(3) - 5/12 x DATA(-1) + + 3 3 3 3 + + 1/12 x DATA(3) + 1/3 x DATA(-2) - 1/12 x DATA(-3) + 5/12 x DATA(1) + + 3 4 4 4 + - 1/3 x DATA(2) + 5/8 x DATA(-1) - 1/4 x DATA(2) + 1/24 x DATA(-3) + + 4 4 4 2 + - 1/4 x DATA(-2) + 5/8 x DATA(1) + 1/24 x DATA(3) + x DATA(-2) + + + 13/8 x DATA(-1) - 1/8 x DATA(3) - x DATA(-2) + 1/8 x DATA(-3) + + 2 2 + - 13/8 x DATA(1) + x DATA(2) - 13/4 x DATA(-1) + x DATA(2) + + 2 4 + + 1/90 DATA(3) - 3/20 DATA(-2) + 14/3 x DATA(0) - 5/6 x DATA(0) + +> coeff_as_lc_of_data(%, posn_list_1d_size7); + 2 3 4 +[COEFF(-3) = - 1/12 x + 1/8 x - 1/12 x + 1/90 + 1/24 x , + + 3 2 4 + COEFF(-2) = 1/3 x + x - x - 1/4 x - 3/20, + + 4 2 3 + COEFF(-1) = 5/8 x + 13/8 x - 13/4 x - 5/12 x + 3/2, + + 4 49 2 + COEFF(0) = - 5/6 x - -- + 14/3 x , + 18 + + 3 2 4 + COEFF(1) = - 13/8 x + 5/12 x - 13/4 x + 3/2 + 5/8 x , + + 2 3 4 + COEFF(2) = x + x - 1/3 x - 3/20 - 1/4 x , + + 3 2 4 + COEFF(3) = 1/12 x - 1/12 x + 1/90 + 1/24 x - 1/8 x] + +> print_coeff__lc_of_data(%, "coeff_dxx_", "fp", +> "1d.coeffs/1d.cube.order6.smooth0/coeff-dxx.compute.c"); +bytes used=19008232, alloc=1965720, time=1.45 +> +######################################## +> quit +bytes used=19846220, alloc=1965720, time=1.53 diff --git a/src/GeneralizedPolynomial-Uniform/1d.maple b/src/GeneralizedPolynomial-Uniform/1d.maple new file mode 100644 index 0000000..5125fe8 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/1d.maple @@ -0,0 +1,406 @@ +# Maple code to compute 1-D Lagrange interpolation coefficients (orders 1-4) +# $Id$ + +################################################################################ + +# +# interpolating functions +# + +fn_1d_order1 := +proc(x) ++ c0 + c1*x +end proc; + +fn_1d_order2 := +proc(x) ++ c0 + c1*x + c2*x^2 +end proc; + +fn_1d_order3 := +proc(x) ++ c0 + c1*x + c2*x^2 + c3*x^3 +end proc; + +fn_1d_order4 := +proc(x) ++ c0 + c1*x + c2*x^2 + c3*x^3 + c4*x^4 +end; + +fn_1d_order5 := +proc(x) ++ c0 + c1*x + c2*x^2 + c3*x^3 + c4*x^4 + c5*x^5 +end; + +fn_1d_order6 := +proc(x) ++ c0 + c1*x + c2*x^2 + c3*x^3 + c4*x^4 + c5*x^5 + c6*x^6 +end; + +######################################## + +# +# coefficients in interpolating functions +# + +coeff_list_1d_order1 := [c0, c1]; +coeff_list_1d_order2 := [c0, c1, c2]; +coeff_list_1d_order3 := [c0, c1, c2, c3]; +coeff_list_1d_order4 := [c0, c1, c2, c3, c4]; +coeff_list_1d_order5 := [c0, c1, c2, c3, c4, c5]; +coeff_list_1d_order6 := [c0, c1, c2, c3, c4, c5, c6]; + +######################################## + +# +# coordinates and interpolation points +# + +coord_list_1d := [x]; + +# generate points in Fortran ordering +posn_list_1d_size2 := map(ListTools[Reverse], hypercube_points([ 0], [+1])); +posn_list_1d_size3 := map(ListTools[Reverse], hypercube_points([-1], [+1])); +posn_list_1d_size4 := map(ListTools[Reverse], hypercube_points([-1], [+2])); +posn_list_1d_size5 := map(ListTools[Reverse], hypercube_points([-2], [+2])); +posn_list_1d_size6 := map(ListTools[Reverse], hypercube_points([-2], [+3])); +posn_list_1d_size7 := map(ListTools[Reverse], hypercube_points([-3], [+3])); + +################################################################################ + +# +# generic stuff for 1d, cube, size=2 +# + +data_var_list_1d_size2 := map(data_var_name, posn_list_1d_size2, "data_"); + +print_name_list_dcl(data_var_list_1d_size2, + "fp", "1d.coeffs/1d.cube.size2/data-var.dcl.c"); +print_data_var_assign(posn_list_1d_size2, + "data_", "1d.coeffs/1d.cube.size2/data-var.assign.c"); + +print_name_list_dcl(map(coeff_name, posn_list_1d_size2, "coeff_I_"), + "fp", "1d.coeffs/1d.cube.size2/coeff-I.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_1d_size2, "coeff_dx_"), + "fp", "1d.coeffs/1d.cube.size2/coeff-dx.dcl.c"); + +print_interp_cmpt__lc_of_data(posn_list_1d_size2, + "result", "coeff_I_", "data_", + "1d.coeffs/1d.cube.size2/interp-I.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_1d_size2, + "result", "coeff_dx_", "data_", + "1d.coeffs/1d.cube.size2/interp-dx.compute.c"); + +######################################## + +# +# generic stuff for 1d, cube, size=3 +# + +data_var_list_1d_size3 := map(data_var_name, posn_list_1d_size3, "data_"); + +print_name_list_dcl(data_var_list_1d_size3, + "fp", "1d.coeffs/1d.cube.size3/data-var.dcl.c"); +print_data_var_assign(posn_list_1d_size3, + "data_", "1d.coeffs/1d.cube.size3/data-var.assign.c"); + +print_name_list_dcl(map(coeff_name, posn_list_1d_size3, "coeff_I_"), + "fp", "1d.coeffs/1d.cube.size3/coeff-I.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_1d_size3, "coeff_dx_"), + "fp", "1d.coeffs/1d.cube.size3/coeff-dx.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_1d_size3, "coeff_dxx_"), + "fp", "1d.coeffs/1d.cube.size3/coeff-dxx.dcl.c"); + +print_interp_cmpt__lc_of_data(posn_list_1d_size3, + "result", "coeff_I_", "data_", + "1d.coeffs/1d.cube.size3/interp-I.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_1d_size3, + "result", "coeff_dx_", "data_", + "1d.coeffs/1d.cube.size3/interp-dx.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_1d_size3, + "result", "coeff_dxx_", "data_", + "1d.coeffs/1d.cube.size3/interp-dxx.compute.c"); + +######################################## + +# +# generic stuff for 1d, cube, size=4 +# + +data_var_list_1d_size4 := map(data_var_name, posn_list_1d_size4, "data_"); + +print_name_list_dcl(data_var_list_1d_size4, + "fp", "1d.coeffs/1d.cube.size4/data-var.dcl.c"); +print_data_var_assign(posn_list_1d_size4, + "data_", "1d.coeffs/1d.cube.size4/data-var.assign.c"); + +print_name_list_dcl(map(coeff_name, posn_list_1d_size4, "coeff_I_"), + "fp", "1d.coeffs/1d.cube.size4/coeff-I.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_1d_size4, "coeff_dx_"), + "fp", "1d.coeffs/1d.cube.size4/coeff-dx.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_1d_size4, "coeff_dxx_"), + "fp", "1d.coeffs/1d.cube.size4/coeff-dxx.dcl.c"); + +print_interp_cmpt__lc_of_data(posn_list_1d_size4, + "result", "coeff_I_", "data_", + "1d.coeffs/1d.cube.size4/interp-I.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_1d_size4, + "result", "coeff_dx_", "data_", + "1d.coeffs/1d.cube.size4/interp-dx.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_1d_size4, + "result", "coeff_dxx_", "data_", + "1d.coeffs/1d.cube.size4/interp-dxx.compute.c"); + +######################################## + +# +# generic stuff for 1d, cube, size=5 +# + +data_var_list_1d_size5 := map(data_var_name, posn_list_1d_size5, "data_"); + +print_name_list_dcl(data_var_list_1d_size5, + "fp", "1d.coeffs/1d.cube.size5/data-var.dcl.c"); +print_data_var_assign(posn_list_1d_size5, + "data_", "1d.coeffs/1d.cube.size5/data-var.assign.c"); + +print_name_list_dcl(map(coeff_name, posn_list_1d_size5, "coeff_I_"), + "fp", "1d.coeffs/1d.cube.size5/coeff-I.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_1d_size5, "coeff_dx_"), + "fp", "1d.coeffs/1d.cube.size5/coeff-dx.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_1d_size5, "coeff_dxx_"), + "fp", "1d.coeffs/1d.cube.size5/coeff-dxx.dcl.c"); + +print_interp_cmpt__lc_of_data(posn_list_1d_size5, + "result", "coeff_I_", "data_", + "1d.coeffs/1d.cube.size5/interp-I.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_1d_size5, + "result", "coeff_dx_", "data_", + "1d.coeffs/1d.cube.size5/interp-dx.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_1d_size5, + "result", "coeff_dxx_", "data_", + "1d.coeffs/1d.cube.size5/interp-dxx.compute.c"); + +######################################## + +# +# generic stuff for 1d, cube, size=6 +# + +data_var_list_1d_size6 := map(data_var_name, posn_list_1d_size6, "data_"); + +print_name_list_dcl(data_var_list_1d_size6, + "fp", "1d.coeffs/1d.cube.size6/data-var.dcl.c"); +print_data_var_assign(posn_list_1d_size6, + "data_", "1d.coeffs/1d.cube.size6/data-var.assign.c"); + +print_name_list_dcl(map(coeff_name, posn_list_1d_size6, "coeff_I_"), + "fp", "1d.coeffs/1d.cube.size6/coeff-I.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_1d_size6, "coeff_dx_"), + "fp", "1d.coeffs/1d.cube.size6/coeff-dx.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_1d_size6, "coeff_dxx_"), + "fp", "1d.coeffs/1d.cube.size6/coeff-dxx.dcl.c"); + +print_interp_cmpt__lc_of_data(posn_list_1d_size6, + "result", "coeff_I_", "data_", + "1d.coeffs/1d.cube.size6/interp-I.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_1d_size6, + "result", "coeff_dx_", "data_", + "1d.coeffs/1d.cube.size6/interp-dx.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_1d_size6, + "result", "coeff_dxx_", "data_", + "1d.coeffs/1d.cube.size6/interp-dxx.compute.c"); + +######################################## + +# +# generic stuff for 1d, cube, size=7 +# + +data_var_list_1d_size7 := map(data_var_name, posn_list_1d_size7, "data_"); + +print_name_list_dcl(data_var_list_1d_size7, + "fp", "1d.coeffs/1d.cube.size7/data-var.dcl.c"); +print_data_var_assign(posn_list_1d_size7, + "data_", "1d.coeffs/1d.cube.size7/data-var.assign.c"); + +print_name_list_dcl(map(coeff_name, posn_list_1d_size7, "coeff_I_"), + "fp", "1d.coeffs/1d.cube.size7/coeff-I.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_1d_size7, "coeff_dx_"), + "fp", "1d.coeffs/1d.cube.size7/coeff-dx.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_1d_size7, "coeff_dxx_"), + "fp", "1d.coeffs/1d.cube.size7/coeff-dxx.dcl.c"); + +print_interp_cmpt__lc_of_data(posn_list_1d_size7, + "result", "coeff_I_", "data_", + "1d.coeffs/1d.cube.size7/interp-I.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_1d_size7, + "result", "coeff_dx_", "data_", + "1d.coeffs/1d.cube.size7/interp-dx.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_1d_size7, + "result", "coeff_dxx_", "data_", + "1d.coeffs/1d.cube.size7/interp-dxx.compute.c"); + +################################################################################ + +# +# 1d, cube, order=1, smoothing=0 (size=2) +# + +# interpolating polynomial +interp_1d_cube_order1_smooth0 + := polynomial_interpolant(fn_1d_order1, coeff_list_1d_order1, + coord_list_1d, posn_list_1d_size2); + +# I +coeff_as_lc_of_data(%, posn_list_1d_size2); +print_coeff__lc_of_data(%, "coeff_I_", "fp", + "1d.coeffs/1d.cube.order1.smooth0/coeff-I.compute.c"); + +# d/dx +simplify( diff(interp_1d_cube_order1_smooth0,x) ); +coeff_as_lc_of_data(%, posn_list_1d_size2); +print_coeff__lc_of_data(%, "coeff_dx_", "fp", + "1d.coeffs/1d.cube.order1.smooth0/coeff-dx.compute.c"); + +######################################## + +# +# 1d, cube, order=2, smoothing=0 (size=3) +# + +# interpolating polynomial +interp_1d_cube_order2_smooth0 + := polynomial_interpolant(fn_1d_order2, coeff_list_1d_order2, + coord_list_1d, posn_list_1d_size3); + +# I +coeff_as_lc_of_data(%, posn_list_1d_size3); +print_coeff__lc_of_data(%, "coeff_I_", "fp", + "1d.coeffs/1d.cube.order2.smooth0/coeff-I.compute.c"); + +# d/dx +simplify( diff(interp_1d_cube_order2_smooth0,x) ); +coeff_as_lc_of_data(%, posn_list_1d_size3); +print_coeff__lc_of_data(%, "coeff_dx_", "fp", + "1d.coeffs/1d.cube.order2.smooth0/coeff-dx.compute.c"); + +# d^2/dx^2 +simplify( diff(interp_1d_cube_order2_smooth0,x,x) ); +coeff_as_lc_of_data(%, posn_list_1d_size3); +print_coeff__lc_of_data(%, "coeff_dxx_", "fp", + "1d.coeffs/1d.cube.order2.smooth0/coeff-dxx.compute.c"); + +######################################## + +# +# 1d, cube, order=3, smoothing=0 (size=4) +# + +# interpolating polynomial +interp_1d_cube_order3_smooth0 + := polynomial_interpolant(fn_1d_order3, coeff_list_1d_order3, + coord_list_1d, posn_list_1d_size4); + +# I +coeff_as_lc_of_data(%, posn_list_1d_size4); +print_coeff__lc_of_data(%, "coeff_I_", "fp", + "1d.coeffs/1d.cube.order3.smooth0/coeff-I.compute.c"); + +# d/dx +simplify( diff(interp_1d_cube_order3_smooth0,x) ); +coeff_as_lc_of_data(%, posn_list_1d_size4); +print_coeff__lc_of_data(%, "coeff_dx_", "fp", + "1d.coeffs/1d.cube.order3.smooth0/coeff-dx.compute.c"); + +# d^2/dx^2 +simplify( diff(interp_1d_cube_order3_smooth0,x,x) ); +coeff_as_lc_of_data(%, posn_list_1d_size4); +print_coeff__lc_of_data(%, "coeff_dxx_", "fp", + "1d.coeffs/1d.cube.order3.smooth0/coeff-dxx.compute.c"); + +######################################## + +# +# 1d, cube, order=4, smoothing=0 (size=5) +# + +# interpolating polynomial +interp_1d_cube_order4_smooth0 + := polynomial_interpolant(fn_1d_order4, coeff_list_1d_order4, + coord_list_1d, posn_list_1d_size5); + +# I +coeff_as_lc_of_data(%, posn_list_1d_size5); +print_coeff__lc_of_data(%, "coeff_I_", "fp", + "1d.coeffs/1d.cube.order4.smooth0/coeff-I.compute.c"); + +# d/dx +simplify( diff(interp_1d_cube_order4_smooth0,x) ); +coeff_as_lc_of_data(%, posn_list_1d_size5); +print_coeff__lc_of_data(%, "coeff_dx_", "fp", + "1d.coeffs/1d.cube.order4.smooth0/coeff-dx.compute.c"); + +# d^2/dx^2 +simplify( diff(interp_1d_cube_order4_smooth0,x,x) ); +coeff_as_lc_of_data(%, posn_list_1d_size5); +print_coeff__lc_of_data(%, "coeff_dxx_", "fp", + "1d.coeffs/1d.cube.order4.smooth0/coeff-dxx.compute.c"); + +######################################## + +# +# 1d, cube, order=5, smoothing=0 (size=6) +# + +# interpolating polynomial +interp_1d_cube_order5_smooth0 + := polynomial_interpolant(fn_1d_order5, coeff_list_1d_order5, + coord_list_1d, posn_list_1d_size6); + +# I +coeff_as_lc_of_data(%, posn_list_1d_size6); +print_coeff__lc_of_data(%, "coeff_I_", "fp", + "1d.coeffs/1d.cube.order5.smooth0/coeff-I.compute.c"); + +# d/dx +simplify( diff(interp_1d_cube_order5_smooth0,x) ); +coeff_as_lc_of_data(%, posn_list_1d_size6); +print_coeff__lc_of_data(%, "coeff_dx_", "fp", + "1d.coeffs/1d.cube.order5.smooth0/coeff-dx.compute.c"); + +# d^2/dx^2 +simplify( diff(interp_1d_cube_order5_smooth0,x,x) ); +coeff_as_lc_of_data(%, posn_list_1d_size6); +print_coeff__lc_of_data(%, "coeff_dxx_", "fp", + "1d.coeffs/1d.cube.order5.smooth0/coeff-dxx.compute.c"); + +######################################## + +# +# 1d, cube, order=6, smoothing=0 (size=7) +# + +# interpolating polynomial +interp_1d_cube_order6_smooth0 + := polynomial_interpolant(fn_1d_order6, coeff_list_1d_order6, + coord_list_1d, posn_list_1d_size7); + +# I +coeff_as_lc_of_data(%, posn_list_1d_size7); +print_coeff__lc_of_data(%, "coeff_I_", "fp", + "1d.coeffs/1d.cube.order6.smooth0/coeff-I.compute.c"); + +# d/dx +simplify( diff(interp_1d_cube_order6_smooth0,x) ); +coeff_as_lc_of_data(%, posn_list_1d_size7); +print_coeff__lc_of_data(%, "coeff_dx_", "fp", + "1d.coeffs/1d.cube.order6.smooth0/coeff-dx.compute.c"); + +# d^2/dx^2 +simplify( diff(interp_1d_cube_order6_smooth0,x,x) ); +coeff_as_lc_of_data(%, posn_list_1d_size7); +print_coeff__lc_of_data(%, "coeff_dxx_", "fp", + "1d.coeffs/1d.cube.order6.smooth0/coeff-dxx.compute.c"); + +######################################## diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order1.smooth0/coeff-I.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order1.smooth0/coeff-I.compute.c new file mode 100644 index 0000000..221b33b --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order1.smooth0/coeff-I.compute.c @@ -0,0 +1,18 @@ +fp t7, + t6, + t5, + t4, + t3, + t2, + t1; + t7 = RATIONAL(-1.0,2.0); + t6 = RATIONAL(1.0,4.0); + t5 = RATIONAL(1.0,2.0); + t4 = t7*y; + t3 = t7*x; + t2 = t5*x; + t1 = t5*y; + coeff_I_0_0 = RATIONAL(3.0,4.0)+t4+t3; + coeff_I_p1_0 = t6+t4+t2; + coeff_I_0_p1 = t3+t6+t1; + coeff_I_p1_p1 = t1+RATIONAL(-1.0,4.0)+t2; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order1.smooth0/coeff-dx.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order1.smooth0/coeff-dx.compute.c new file mode 100644 index 0000000..3d89f01 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order1.smooth0/coeff-dx.compute.c @@ -0,0 +1,8 @@ +fp t9, + t8; + t9 = RATIONAL(-1.0,2.0); + t8 = RATIONAL(1.0,2.0); + coeff_dx_0_0 = t9; + coeff_dx_p1_0 = t8; + coeff_dx_0_p1 = t9; + coeff_dx_p1_p1 = t8; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order1.smooth0/coeff-dy.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order1.smooth0/coeff-dy.compute.c new file mode 100644 index 0000000..42819a8 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order1.smooth0/coeff-dy.compute.c @@ -0,0 +1,8 @@ +fp t11, + t10; + t11 = RATIONAL(-1.0,2.0); + t10 = RATIONAL(1.0,2.0); + coeff_dy_0_0 = t11; + coeff_dy_p1_0 = t11; + coeff_dy_0_p1 = t10; + coeff_dy_p1_p1 = t10; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order2.smooth0/coeff-I.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order2.smooth0/coeff-I.compute.c new file mode 100644 index 0000000..eae89ba --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order2.smooth0/coeff-I.compute.c @@ -0,0 +1,53 @@ +fp t27, + t23, + t17, + t28, + t19, + t34, + t33, + t22, + t15, + t26, + t32, + t21, + t31, + t24, + t16, + t30, + t14, + t29, + t20, + t18, + t13, + t12; + t27 = x*x; + t23 = RATIONAL(1.0,6.0); + t17 = t23*t27; + t28 = y*y; + t19 = t23*t28; + t34 = t17+t19+RATIONAL(-1.0,9.0); + t33 = x*y; + t22 = RATIONAL(-1.0,3.0); + t15 = t22*t28; + t26 = RATIONAL(2.0,9.0); + t32 = t15+t17+t26; + t21 = t22*t27; + t31 = t19+t21+t26; + t24 = RATIONAL(-1.0,6.0); + t16 = t24*y; + t30 = t16+t34; + t14 = t23*y; + t29 = t14+t34; + t20 = t23*x; + t18 = t24*x; + t13 = RATIONAL(-1.0,4.0)*t33; + t12 = RATIONAL(1.0,4.0)*t33; + coeff_I_m1_m1 = t18+t12+t30; + coeff_I_0_m1 = t16+t31; + coeff_I_p1_m1 = t20+t13+t30; + coeff_I_m1_0 = t18+t32; + coeff_I_0_0 = t15+t21+RATIONAL(5.0,9.0); + coeff_I_p1_0 = t20+t32; + coeff_I_m1_p1 = t18+t13+t29; + coeff_I_0_p1 = t14+t31; + coeff_I_p1_p1 = t12+t20+t29; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order2.smooth0/coeff-dx.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order2.smooth0/coeff-dx.compute.c new file mode 100644 index 0000000..795310a --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order2.smooth0/coeff-dx.compute.c @@ -0,0 +1,21 @@ +fp t35, + t42, + t41, + t40, + t39, + t36; + t35 = RATIONAL(1.0,3.0)*x; + t42 = t35+RATIONAL(-1.0,4.0)*y; + t41 = t35+RATIONAL(1.0,4.0)*y; + t40 = RATIONAL(-1.0,6.0); + t39 = RATIONAL(1.0,6.0); + t36 = RATIONAL(-2.0,3.0)*x; + coeff_dx_m1_m1 = t40+t41; + coeff_dx_0_m1 = t36; + coeff_dx_p1_m1 = t39+t42; + coeff_dx_m1_0 = t40+t35; + coeff_dx_0_0 = t36; + coeff_dx_p1_0 = t35+t39; + coeff_dx_m1_p1 = t40+t42; + coeff_dx_0_p1 = t36; + coeff_dx_p1_p1 = t39+t41; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order2.smooth0/coeff-dxx.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order2.smooth0/coeff-dxx.compute.c new file mode 100644 index 0000000..3381569 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order2.smooth0/coeff-dxx.compute.c @@ -0,0 +1,13 @@ +fp t52, + t51; + t52 = RATIONAL(-2.0,3.0); + t51 = RATIONAL(1.0,3.0); + coeff_dxx_m1_m1 = t51; + coeff_dxx_0_m1 = t52; + coeff_dxx_p1_m1 = t51; + coeff_dxx_m1_0 = t51; + coeff_dxx_0_0 = t52; + coeff_dxx_p1_0 = t51; + coeff_dxx_m1_p1 = t51; + coeff_dxx_0_p1 = t52; + coeff_dxx_p1_p1 = t51; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order2.smooth0/coeff-dxy.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order2.smooth0/coeff-dxy.compute.c new file mode 100644 index 0000000..c795e1d --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order2.smooth0/coeff-dxy.compute.c @@ -0,0 +1,15 @@ +fp t55, + t54, + t53; + t55 = RATIONAL(0.0,1.0); + t54 = RATIONAL(1.0,4.0); + t53 = RATIONAL(-1.0,4.0); + coeff_dxy_m1_m1 = t54; + coeff_dxy_0_m1 = t55; + coeff_dxy_p1_m1 = t53; + coeff_dxy_m1_0 = t55; + coeff_dxy_0_0 = t55; + coeff_dxy_p1_0 = t55; + coeff_dxy_m1_p1 = t53; + coeff_dxy_0_p1 = t55; + coeff_dxy_p1_p1 = t54; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order2.smooth0/coeff-dy.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order2.smooth0/coeff-dy.compute.c new file mode 100644 index 0000000..c4f9522 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order2.smooth0/coeff-dy.compute.c @@ -0,0 +1,21 @@ +fp t43, + t50, + t49, + t46, + t45, + t44; + t43 = RATIONAL(1.0,3.0)*y; + t50 = RATIONAL(1.0,6.0)+t43; + t49 = RATIONAL(-1.0,6.0)+t43; + t46 = RATIONAL(-1.0,4.0)*x; + t45 = RATIONAL(-2.0,3.0)*y; + t44 = RATIONAL(1.0,4.0)*x; + coeff_dy_m1_m1 = t44+t49; + coeff_dy_0_m1 = t49; + coeff_dy_p1_m1 = t46+t49; + coeff_dy_m1_0 = t45; + coeff_dy_0_0 = t45; + coeff_dy_p1_0 = t45; + coeff_dy_m1_p1 = t46+t50; + coeff_dy_0_p1 = t50; + coeff_dy_p1_p1 = t44+t50; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order2.smooth0/coeff-dyy.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order2.smooth0/coeff-dyy.compute.c new file mode 100644 index 0000000..5d0b896 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order2.smooth0/coeff-dyy.compute.c @@ -0,0 +1,13 @@ +fp t57, + t56; + t57 = RATIONAL(-2.0,3.0); + t56 = RATIONAL(1.0,3.0); + coeff_dyy_m1_m1 = t56; + coeff_dyy_0_m1 = t56; + coeff_dyy_p1_m1 = t56; + coeff_dyy_m1_0 = t57; + coeff_dyy_0_0 = t57; + coeff_dyy_p1_0 = t57; + coeff_dyy_m1_p1 = t56; + coeff_dyy_0_p1 = t56; + coeff_dyy_p1_p1 = t56; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order3.smooth0/coeff-I.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order3.smooth0/coeff-I.compute.c new file mode 100644 index 0000000..5a2fe9b --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order3.smooth0/coeff-I.compute.c @@ -0,0 +1,192 @@ +fp t159, + t132, + t158, + t131, + t157, + t125, + t63, + t118, + t130, + t76, + t156, + t126, + t82, + t122, + t70, + t155, + t133, + t78, + t67, + t154, + t153, + t128, + t84, + t124, + t66, + t152, + t151, + t83, + t62, + t150, + t87, + t69, + t149, + t148, + t121, + t120, + t68, + t147, + t65, + t146, + t129, + t86, + t145, + t144, + t85, + t143, + t123, + t142, + t141, + t140, + t139, + t105, + t138, + t137, + t136, + t119, + t117, + t116, + t114, + t113, + t112, + t111, + t108, + t107, + t106, + t104, + t103, + t101, + t99, + t98, + t97, + t96, + t95, + t94, + t93, + t92, + t91, + t90, + t89, + t88, + t80, + t79, + t75, + t74, + t73, + t72; + t159 = x*y; + t132 = y*y; + t158 = x*t132; + t131 = x*x; + t157 = y*t131; + t125 = RATIONAL(-3.0,40.0); + t63 = t125*t157; + t118 = RATIONAL(1.0,24.0); + t130 = t132*y; + t76 = t118*t130; + t156 = t63+t76; + t126 = RATIONAL(-1.0,24.0); + t82 = t126*t130; + t122 = RATIONAL(3.0,40.0); + t70 = t122*t157; + t155 = t82+t70; + t133 = x*t131; + t78 = t118*t133; + t67 = t122*t158; + t154 = t78+t67; + t153 = t70+t76; + t128 = RATIONAL(-1.0,8.0); + t84 = t128*t130; + t124 = RATIONAL(-1.0,40.0); + t66 = t124*t157; + t152 = t84+t66; + t151 = t82+t63; + t83 = t126*t133; + t62 = t125*t158; + t150 = t83+t62; + t87 = t128*t133; + t69 = t124*t158; + t149 = t87+t69; + t148 = t83+t67; + t121 = RATIONAL(9.0,80.0); + t120 = RATIONAL(1.0,40.0); + t68 = t120*t158; + t147 = t121*t132+t68; + t65 = t120*t157; + t146 = t121*t131+t65; + t129 = RATIONAL(1.0,8.0); + t86 = t129*t133; + t145 = t86+t69; + t144 = t78+t62; + t85 = t129*t130; + t143 = t85+t66; + t123 = RATIONAL(-1.0,50.0); + t142 = RATIONAL(11.0,50.0)+t123*t159; + t141 = RATIONAL(-2.0,25.0)+RATIONAL(2.0,25.0)*t159; + t140 = RATIONAL(-13.0,100.0)*t159+t123; + t139 = RATIONAL(37.0,200.0)+RATIONAL(-1.0,100.0)*t159; + t105 = RATIONAL(-17.0,200.0); + t138 = t105+RATIONAL(-9.0,100.0)*t159; + t137 = RATIONAL(13.0,100.0)+RATIONAL(7.0,100.0)*t159; + t136 = t131+t132; + t119 = RATIONAL(7.0,80.0); + t117 = RATIONAL(3.0,80.0); + t116 = RATIONAL(1.0,80.0); + t114 = RATIONAL(-1.0,80.0); + t113 = RATIONAL(13.0,80.0); + t112 = RATIONAL(11.0,80.0); + t111 = RATIONAL(-23.0,80.0); + t108 = RATIONAL(-19.0,80.0); + t107 = RATIONAL(-17.0,80.0); + t106 = RATIONAL(-31.0,400.0); + t104 = RATIONAL(-57.0,400.0); + t103 = RATIONAL(-63.0,400.0); + t101 = RATIONAL(-49.0,400.0); + t99 = RATIONAL(69.0,400.0); + t98 = RATIONAL(111.0,400.0); + t97 = RATIONAL(89.0,1200.0); + t96 = RATIONAL(117.0,400.0); + t95 = RATIONAL(43.0,1200.0); + t94 = RATIONAL(103.0,400.0); + t93 = RATIONAL(37.0,1200.0); + t92 = RATIONAL(-149.0,1200.0); + t91 = RATIONAL(-109.0,1200.0); + t90 = RATIONAL(-223.0,1200.0); + t89 = RATIONAL(-157.0,1200.0); + t88 = RATIONAL(-131.0,1200.0); + t80 = t119*t131; + t79 = t119*t132; + t75 = t113*t132; + t74 = t113*t131; + t73 = t112*t132; + t72 = t112*t131; + coeff_I_m1_m1 = RATIONAL(-23.0,200.0)+t74+t75+t91*y+(RATIONAL(6.0,25.0)*y ++t91)*x+t150+t151; + coeff_I_0_m1 = t73+t90*y+t111*t131+t106*x+t142+t145+t155; + coeff_I_p1_m1 = t87+t80+t98*x+t89*y+t140+t147+t155; + coeff_I_p2_m1 = t117*t131+t88*x+t79+t97*y+t138+t151+t154; + coeff_I_m1_0 = t111*t132+t106*y+t72+t90*x+t142+t143+t148; + coeff_I_0_0 = t85+RATIONAL(93.0,200.0)+t86+t104*y+t68+t65+t136*RATIONAL( +-21.0,80.0)+(RATIONAL(-1.0,25.0)*y+t104)*x; + coeff_I_p1_0 = t85+t108*t132+t96*x+t103*y+t139+t146+t149; + coeff_I_p2_0 = t95*x+t116*t131+t107*t132+t101*y+t137+t143+t144; + coeff_I_m1_p1 = t89*x+t84+t79+t98*y+t140+t146+t148; + coeff_I_0_p1 = t86+t96*y+t103*x+t108*t131+t139+t147+t152; + coeff_I_p1_p1 = t105+t73+t94*y+t72+(t94+RATIONAL(3.0,50.0)*y)*x+t149+t152 +; + coeff_I_p2_p1 = t99*y+t84+t93*x+t65+t75+t114*t131+t141+t144; + coeff_I_m1_p2 = t97*x+t117*t132+t80+t88*y+t138+t150+t153; + coeff_I_0_p2 = t95*y+t107*t131+t101*x+t116*t132+t137+t145+t156; + coeff_I_p1_p2 = t93*y+t68+t87+t114*t132+t74+t99*x+t141+t156; + coeff_I_p2_p2 = t92*y+RATIONAL(7.0,200.0)+t136*RATIONAL(-3.0,80.0)+( +RATIONAL(-3.0,50.0)*y+t92)*x+t153+t154; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order3.smooth0/coeff-dx.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order3.smooth0/coeff-dx.compute.c new file mode 100644 index 0000000..f6d13a5 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order3.smooth0/coeff-dx.compute.c @@ -0,0 +1,95 @@ +fp t200, + t184, + t187, + t170, + t186, + t178, + t199, + t181, + t198, + t180, + t183, + t175, + t197, + t185, + t172, + t196, + t182, + t176, + t195, + t161, + t194, + t179, + t193, + t163, + t192, + t162, + t191, + t190, + t189, + t160, + t188, + t173, + t171, + t169, + t167, + t166, + t164; + t200 = x*y; + t184 = RATIONAL(-1.0,40.0); + t187 = y*y; + t170 = t184*t187; + t186 = x*x; + t178 = RATIONAL(3.0,8.0)*t186; + t199 = t170+t178; + t181 = RATIONAL(-3.0,8.0)*t186; + t198 = t170+t181; + t180 = RATIONAL(1.0,8.0)*t186; + t183 = RATIONAL(3.0,40.0); + t175 = t183*t187; + t197 = t180+t175; + t185 = RATIONAL(-3.0,40.0); + t172 = t185*t187; + t196 = t172+t180; + t182 = RATIONAL(1.0,40.0); + t176 = t182*t187; + t195 = t176+t181; + t161 = RATIONAL(-3.0,20.0)*t200; + t194 = t161+RATIONAL(13.0,40.0)*x; + t179 = RATIONAL(-1.0,8.0)*t186; + t193 = t172+t179; + t163 = RATIONAL(-1.0,20.0)*t200; + t192 = t163+RATIONAL(11.0,40.0)*x; + t162 = RATIONAL(1.0,20.0)*t200; + t191 = t162+RATIONAL(9.0,40.0)*x; + t190 = t175+t179; + t189 = t178+t176; + t160 = RATIONAL(3.0,20.0)*t200; + t188 = t160+RATIONAL(7.0,40.0)*x; + t173 = RATIONAL(2.0,25.0)*y; + t171 = RATIONAL(-1.0,50.0)*y; + t169 = RATIONAL(-9.0,100.0)*y; + t167 = RATIONAL(-1.0,100.0)*y; + t166 = RATIONAL(7.0,100.0)*y; + t164 = RATIONAL(-13.0,100.0)*y; + coeff_dx_m1_m1 = RATIONAL(-109.0,1200.0)+RATIONAL(6.0,25.0)*y+t193+t194; + coeff_dx_0_m1 = RATIONAL(-31.0,400.0)+t171+t160+RATIONAL(-23.0,40.0)*x+ +t199; + coeff_dx_p1_m1 = t164+RATIONAL(111.0,400.0)+t188+t195; + coeff_dx_p2_m1 = t161+t183*x+RATIONAL(-131.0,1200.0)+t169+t197; + coeff_dx_m1_0 = t171+RATIONAL(-223.0,1200.0)+t190+t192; + coeff_dx_0_0 = RATIONAL(-1.0,25.0)*y+RATIONAL(-57.0,400.0)+RATIONAL(-21.0 +,40.0)*x+t162+t189; + coeff_dx_p1_0 = RATIONAL(117.0,400.0)+t167+t191+t198; + coeff_dx_p2_0 = t163+t166+t182*x+RATIONAL(43.0,1200.0)+t196; + coeff_dx_m1_p1 = RATIONAL(-157.0,1200.0)+t164+t190+t191; + coeff_dx_0_p1 = t163+RATIONAL(-19.0,40.0)*x+t167+RATIONAL(-63.0,400.0)+ +t189; + coeff_dx_p1_p1 = RATIONAL(103.0,400.0)+RATIONAL(3.0,50.0)*y+t192+t198; + coeff_dx_p2_p1 = t173+RATIONAL(37.0,1200.0)+t162+t184*x+t196; + coeff_dx_m1_p2 = RATIONAL(89.0,1200.0)+t169+t188+t193; + coeff_dx_0_p2 = RATIONAL(-49.0,400.0)+RATIONAL(-17.0,40.0)*x+t166+t161+ +t199; + coeff_dx_p1_p2 = RATIONAL(69.0,400.0)+t173+t194+t195; + coeff_dx_p2_p2 = t160+RATIONAL(-149.0,1200.0)+RATIONAL(-3.0,50.0)*y+t185* +x+t197; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order3.smooth0/coeff-dxx.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order3.smooth0/coeff-dxx.compute.c new file mode 100644 index 0000000..b113dfe --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order3.smooth0/coeff-dxx.compute.c @@ -0,0 +1,40 @@ +fp t244, + t257, + t243, + t256, + t242, + t255, + t245, + t254, + t249, + t248, + t247, + t246; + t244 = RATIONAL(3.0,20.0)*y; + t257 = t244+RATIONAL(7.0,40.0); + t243 = RATIONAL(1.0,20.0)*y; + t256 = RATIONAL(9.0,40.0)+t243; + t242 = RATIONAL(-1.0,20.0)*y; + t255 = t242+RATIONAL(11.0,40.0); + t245 = RATIONAL(-3.0,20.0)*y; + t254 = t245+RATIONAL(13.0,40.0); + t249 = RATIONAL(-1.0,4.0)*x; + t248 = RATIONAL(3.0,4.0)*x; + t247 = RATIONAL(-3.0,4.0)*x; + t246 = RATIONAL(1.0,4.0)*x; + coeff_dxx_m1_m1 = t249+t254; + coeff_dxx_0_m1 = RATIONAL(-23.0,40.0)+t248+t244; + coeff_dxx_p1_m1 = t247+t257; + coeff_dxx_p2_m1 = t246+RATIONAL(3.0,40.0)+t245; + coeff_dxx_m1_0 = t249+t255; + coeff_dxx_0_0 = t248+t243+RATIONAL(-21.0,40.0); + coeff_dxx_p1_0 = t247+t256; + coeff_dxx_p2_0 = t242+RATIONAL(1.0,40.0)+t246; + coeff_dxx_m1_p1 = t249+t256; + coeff_dxx_0_p1 = t242+t248+RATIONAL(-19.0,40.0); + coeff_dxx_p1_p1 = t247+t255; + coeff_dxx_p2_p1 = RATIONAL(-1.0,40.0)+t243+t246; + coeff_dxx_m1_p2 = t249+t257; + coeff_dxx_0_p2 = RATIONAL(-17.0,40.0)+t248+t245; + coeff_dxx_p1_p2 = t247+t254; + coeff_dxx_p2_p2 = t244+RATIONAL(-3.0,40.0)+t246; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order3.smooth0/coeff-dxy.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order3.smooth0/coeff-dxy.compute.c new file mode 100644 index 0000000..f0c2888 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order3.smooth0/coeff-dxy.compute.c @@ -0,0 +1,52 @@ +fp t275, + t274, + t273, + t272, + t271, + t270, + t269, + t268, + t267, + t266, + t265, + t264, + t263, + t262, + t261, + t260, + t259, + t258; + t275 = RATIONAL(-1.0,20.0); + t274 = RATIONAL(1.0,20.0); + t273 = RATIONAL(-1.0,50.0); + t272 = RATIONAL(-3.0,20.0); + t271 = RATIONAL(3.0,20.0); + t270 = RATIONAL(2.0,25.0); + t269 = RATIONAL(-9.0,100.0); + t268 = RATIONAL(7.0,100.0); + t267 = RATIONAL(-1.0,100.0); + t266 = RATIONAL(-13.0,100.0); + t265 = t272*y; + t264 = t271*y; + t263 = t274*y; + t262 = t275*y; + t261 = t271*x; + t260 = t272*x; + t259 = t274*x; + t258 = t275*x; + coeff_dxy_m1_m1 = t260+t265+RATIONAL(6.0,25.0); + coeff_dxy_0_m1 = t273+t262+t261; + coeff_dxy_p1_m1 = t266+t261+t263; + coeff_dxy_p2_m1 = t260+t269+t264; + coeff_dxy_m1_0 = t264+t273+t258; + coeff_dxy_0_0 = t263+RATIONAL(-1.0,25.0)+t259; + coeff_dxy_p1_0 = t262+t267+t259; + coeff_dxy_p2_0 = t258+t265+t268; + coeff_dxy_m1_p1 = t264+t259+t266; + coeff_dxy_0_p1 = t258+t263+t267; + coeff_dxy_p1_p1 = t262+t258+RATIONAL(3.0,50.0); + coeff_dxy_p2_p1 = t265+t259+t270; + coeff_dxy_m1_p2 = t265+t261+t269; + coeff_dxy_0_p2 = t268+t262+t260; + coeff_dxy_p1_p2 = t263+t270+t260; + coeff_dxy_p2_p2 = RATIONAL(-3.0,50.0)+t261+t264; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order3.smooth0/coeff-dy.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order3.smooth0/coeff-dy.compute.c new file mode 100644 index 0000000..017eadf --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order3.smooth0/coeff-dy.compute.c @@ -0,0 +1,95 @@ +fp t241, + t227, + t224, + t213, + t228, + t221, + t240, + t202, + t239, + t223, + t215, + t222, + t238, + t201, + t237, + t225, + t216, + t236, + t204, + t235, + t203, + t234, + t226, + t214, + t233, + t219, + t232, + t231, + t220, + t230, + t229, + t217, + t212, + t210, + t209, + t206, + t205; + t241 = x*y; + t227 = x*x; + t224 = RATIONAL(3.0,40.0); + t213 = t224*t227; + t228 = y*y; + t221 = RATIONAL(-1.0,8.0)*t228; + t240 = t213+t221; + t202 = RATIONAL(3.0,20.0)*t241; + t239 = t202+RATIONAL(7.0,40.0)*y; + t223 = RATIONAL(1.0,40.0); + t215 = t223*t227; + t222 = RATIONAL(-3.0,8.0)*t228; + t238 = t215+t222; + t201 = RATIONAL(1.0,20.0)*t241; + t237 = t201+RATIONAL(9.0,40.0)*y; + t225 = RATIONAL(-1.0,40.0); + t216 = t225*t227; + t236 = t216+t222; + t204 = RATIONAL(-3.0,20.0)*t241; + t235 = t204+RATIONAL(13.0,40.0)*y; + t203 = RATIONAL(-1.0,20.0)*t241; + t234 = t203+RATIONAL(11.0,40.0)*y; + t226 = RATIONAL(-3.0,40.0); + t214 = t226*t227; + t233 = t214+t221; + t219 = RATIONAL(3.0,8.0)*t228; + t232 = t215+t219; + t231 = t216+t219; + t220 = RATIONAL(1.0,8.0)*t228; + t230 = t213+t220; + t229 = t214+t220; + t217 = RATIONAL(2.0,25.0)*x; + t212 = RATIONAL(-1.0,50.0)*x; + t210 = RATIONAL(7.0,100.0)*x; + t209 = RATIONAL(-9.0,100.0)*x; + t206 = RATIONAL(-1.0,100.0)*x; + t205 = RATIONAL(-13.0,100.0)*x; + coeff_dy_m1_m1 = RATIONAL(6.0,25.0)*x+RATIONAL(-109.0,1200.0)+t233+t235; + coeff_dy_0_m1 = RATIONAL(-223.0,1200.0)+t212+t234+t240; + coeff_dy_p1_m1 = t205+RATIONAL(-157.0,1200.0)+t237+t240; + coeff_dy_p2_m1 = t209+RATIONAL(89.0,1200.0)+t233+t239; + coeff_dy_m1_0 = t202+RATIONAL(-23.0,40.0)*y+RATIONAL(-31.0,400.0)+t212+ +t231; + coeff_dy_0_0 = t201+RATIONAL(-1.0,25.0)*x+RATIONAL(-57.0,400.0)+RATIONAL( +-21.0,40.0)*y+t232; + coeff_dy_p1_0 = t206+RATIONAL(-19.0,40.0)*y+RATIONAL(-63.0,400.0)+t203+ +t232; + coeff_dy_p2_0 = t204+RATIONAL(-49.0,400.0)+RATIONAL(-17.0,40.0)*y+t210+ +t231; + coeff_dy_m1_p1 = t205+RATIONAL(111.0,400.0)+t238+t239; + coeff_dy_0_p1 = t206+RATIONAL(117.0,400.0)+t236+t237; + coeff_dy_p1_p1 = RATIONAL(3.0,50.0)*x+RATIONAL(103.0,400.0)+t234+t236; + coeff_dy_p2_p1 = t217+RATIONAL(69.0,400.0)+t235+t238; + coeff_dy_m1_p2 = RATIONAL(-131.0,1200.0)+t224*y+t209+t204+t230; + coeff_dy_0_p2 = t223*y+t210+t203+RATIONAL(43.0,1200.0)+t229; + coeff_dy_p1_p2 = RATIONAL(37.0,1200.0)+t201+t225*y+t217+t229; + coeff_dy_p2_p2 = t226*y+RATIONAL(-3.0,50.0)*x+t202+RATIONAL(-149.0,1200.0 +)+t230; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order3.smooth0/coeff-dyy.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order3.smooth0/coeff-dyy.compute.c new file mode 100644 index 0000000..822ddd4 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order3.smooth0/coeff-dyy.compute.c @@ -0,0 +1,40 @@ +fp t279, + t291, + t276, + t290, + t277, + t289, + t278, + t288, + t283, + t282, + t281, + t280; + t279 = RATIONAL(-3.0,20.0)*x; + t291 = t279+RATIONAL(13.0,40.0); + t276 = RATIONAL(-1.0,20.0)*x; + t290 = RATIONAL(11.0,40.0)+t276; + t277 = RATIONAL(1.0,20.0)*x; + t289 = RATIONAL(9.0,40.0)+t277; + t278 = RATIONAL(3.0,20.0)*x; + t288 = RATIONAL(7.0,40.0)+t278; + t283 = RATIONAL(-1.0,4.0)*y; + t282 = RATIONAL(3.0,4.0)*y; + t281 = RATIONAL(-3.0,4.0)*y; + t280 = RATIONAL(1.0,4.0)*y; + coeff_dyy_m1_m1 = t283+t291; + coeff_dyy_0_m1 = t283+t290; + coeff_dyy_p1_m1 = t283+t289; + coeff_dyy_p2_m1 = t283+t288; + coeff_dyy_m1_0 = RATIONAL(-23.0,40.0)+t282+t278; + coeff_dyy_0_0 = RATIONAL(-21.0,40.0)+t277+t282; + coeff_dyy_p1_0 = t276+t282+RATIONAL(-19.0,40.0); + coeff_dyy_p2_0 = t282+t279+RATIONAL(-17.0,40.0); + coeff_dyy_m1_p1 = t281+t288; + coeff_dyy_0_p1 = t281+t289; + coeff_dyy_p1_p1 = t281+t290; + coeff_dyy_p2_p1 = t281+t291; + coeff_dyy_m1_p2 = t280+t279+RATIONAL(3.0,40.0); + coeff_dyy_0_p2 = t276+t280+RATIONAL(1.0,40.0); + coeff_dyy_p1_p2 = t280+t277+RATIONAL(-1.0,40.0); + coeff_dyy_p2_p2 = RATIONAL(-3.0,40.0)+t280+t278; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order4.smooth0/coeff-I.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order4.smooth0/coeff-I.compute.c new file mode 100644 index 0000000..e30de22 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order4.smooth0/coeff-I.compute.c @@ -0,0 +1,251 @@ +fp t412, + t413, + t471, + t449, + t404, + t417, + t359, + t414, + t358, + t444, + t470, + t469, + t406, + t367, + t362, + t437, + t468, + t467, + t443, + t466, + t383, + t409, + t371, + t446, + t402, + t310, + t465, + t384, + t405, + t313, + t464, + t403, + t366, + t389, + t399, + t463, + t292, + t397, + t445, + t462, + t396, + t400, + t461, + t381, + t382, + t415, + t355, + t460, + t370, + t398, + t297, + t447, + t459, + t411, + t329, + t401, + t458, + t457, + t407, + t456, + t369, + t455, + t360, + t454, + t410, + t323, + t390, + t453, + t385, + t452, + t314, + t451, + t450, + t448, + t442, + t441, + t416, + t356, + t440, + t363, + t439, + t438, + t436, + t322, + t435, + t332, + t434, + t391, + t393, + t408, + t364, + t433, + t368, + t432, + t374, + t392, + t431, + t430, + t429, + t330, + t428, + t318, + t427, + t426, + t425, + t424, + t423, + t422, + t395, + t394, + t387, + t386; + t412 = x*x; + t413 = y*y; + t471 = t412+t413; + t449 = x*y; + t404 = RATIONAL(-1.0,60.0); + t417 = y*t413; + t359 = t404*t417; + t414 = t412*x; + t358 = t404*t414; + t444 = y*t358+x*t359; + t470 = RATIONAL(11.0,150.0)*t449+t444; + t469 = RATIONAL(37.0,300.0)*t449+t444; + t406 = RATIONAL(1.0,60.0); + t367 = t406*t414; + t362 = t406*t417; + t437 = y*t367+x*t362; + t468 = t437+RATIONAL(-37.0,300.0)*t449; + t467 = RATIONAL(-11.0,150.0)*t449+t437; + t443 = t412*t413; + t466 = RATIONAL(-1.0,98.0)*t443+RATIONAL(-99.0,1225.0); + t383 = RATIONAL(-11.0,105.0); + t409 = RATIONAL(1.0,30.0); + t371 = t409*t414; + t446 = x*t413; + t402 = RATIONAL(-1.0,70.0); + t310 = t402*t446; + t465 = t371+t383*x+t310; + t384 = RATIONAL(31.0,420.0); + t405 = RATIONAL(-1.0,35.0); + t313 = t405*t446; + t464 = t384*x+t358+t313; + t403 = RATIONAL(-1.0,30.0); + t366 = t403*t414; + t389 = RATIONAL(31.0,210.0); + t399 = RATIONAL(-1.0,140.0); + t463 = t366+t389*x+t399*t446; + t292 = RATIONAL(21.0,200.0)*t449; + t397 = RATIONAL(1.0,120.0); + t445 = x*t417; + t462 = t292+t397*t445+y*t366; + t396 = RATIONAL(-31.0,210.0); + t400 = RATIONAL(1.0,140.0); + t461 = t400*t446+t371+t396*x; + t381 = RATIONAL(71.0,5880.0); + t382 = RATIONAL(113.0,735.0); + t415 = t412*t412; + t355 = t397*t415; + t460 = t381*t412+t382*t413+t355; + t370 = t409*t417; + t398 = RATIONAL(-1.0,120.0); + t297 = RATIONAL(-21.0,200.0)*t449; + t447 = y*t414; + t459 = t297+t398*t447+x*t370; + t411 = RATIONAL(1.0,70.0); + t329 = t411*t446; + t401 = RATIONAL(-1.0,84.0); + t458 = t329+t401*x+t358; + t457 = y*t371+t398*t445+t297; + t407 = RATIONAL(1.0,84.0); + t456 = t407*x+t367+t310; + t369 = t403*t415; + t455 = t369+t382*t412+t381*t413; + t360 = t403*t417; + t454 = x*t360+t292+t397*t447; + t410 = RATIONAL(1.0,35.0); + t323 = t410*t446; + t390 = RATIONAL(-31.0,420.0); + t453 = t323+t367+t390*x; + t385 = RATIONAL(11.0,105.0); + t452 = t366+t329+t385*x; + t314 = RATIONAL(1.0,49.0)*t443; + t451 = RATIONAL(51.0,1225.0)+t355+t314+t471*RATIONAL(-289.0,5880.0); + t450 = RATIONAL(1.0,196.0)*t443+t369+RATIONAL(-24.0,1225.0)+t471*RATIONAL +(181.0,1470.0); + t448 = y*t412; + t442 = RATIONAL(246.0,1225.0)+RATIONAL(1.0,98.0)*t443; + t441 = RATIONAL(-1.0,49.0)*t443+RATIONAL(96.0,1225.0); + t416 = t413*t413; + t356 = t397*t416; + t440 = t356+t362; + t363 = t403*t416; + t439 = t360+t363; + t438 = t370+t363; + t436 = t356+t359; + t322 = t402*t448; + t435 = t322+t466; + t332 = t411*t448; + t434 = t332+t466; + t391 = RATIONAL(-53.0,196.0); + t393 = RATIONAL(83.0,735.0); + t408 = RATIONAL(1.0,20.0); + t364 = t408*t416; + t433 = t369+t393*t412+t391*t413+t364+t442; + t368 = t408*t415; + t432 = t368+t393*t413+t391*t412+t363+t442; + t374 = RATIONAL(191.0,5880.0); + t392 = RATIONAL(-41.0,196.0); + t431 = t374*t413+t368+t392*t412+t356+t441; + t430 = t392*t413+t355+t374*t412+t364+t441; + t429 = t400*t448+t396*y+t438+t450; + t330 = t410*t448; + t428 = t330+t390*y+t440+t451; + t318 = t405*t448; + t427 = t318+t384*y+t436+t451; + t426 = t407*y+t435+t440+t455; + t425 = t385*y+t434+t439+t460; + t424 = t383*y+t435+t438+t460; + t423 = t401*y+t434+t436+t455; + t422 = t389*y+t399*t448+t439+t450; + t395 = RATIONAL(-17.0,420.0); + t394 = RATIONAL(-17.0,105.0); + t387 = RATIONAL(17.0,105.0); + t386 = RATIONAL(17.0,420.0); + coeff_I_m2_m2 = t427+t464+t467; + coeff_I_m1_m2 = t423+t462+t465; + coeff_I_0_m2 = t395*y+t330+t359+t431; + coeff_I_p1_m2 = t423+t452+t457; + coeff_I_p2_m2 = t427+t453+t470; + coeff_I_m2_m1 = t424+t454+t458; + coeff_I_m1_m1 = t429+t461+t469; + coeff_I_0_m1 = t332+t394*y+t370+t432; + coeff_I_p1_m1 = t429+t463+t468; + coeff_I_p2_m1 = t424+t456+t459; + coeff_I_m2_0 = t395*x+t358+t323+t430; + coeff_I_m1_0 = t394*x+t371+t329+t433; + coeff_I_0_0 = t314+t368+t364+RATIONAL(541.0,1225.0)+t471*RATIONAL(-57.0, +196.0); + coeff_I_p1_0 = t366+t310+t387*x+t433; + coeff_I_p2_0 = t386*x+t367+t313+t430; + coeff_I_m2_p1 = t425+t458+t459; + coeff_I_m1_p1 = t422+t461+t468; + coeff_I_0_p1 = t322+t387*y+t360+t432; + coeff_I_p1_p1 = t422+t463+t469; + coeff_I_p2_p1 = t425+t454+t456; + coeff_I_m2_p2 = t428+t464+t470; + coeff_I_m1_p2 = t426+t457+t465; + coeff_I_0_p2 = t318+t386*y+t362+t431; + coeff_I_p1_p2 = t426+t452+t462; + coeff_I_p2_p2 = t428+t453+t467; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order4.smooth0/coeff-dx.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order4.smooth0/coeff-dx.compute.c new file mode 100644 index 0000000..242cdc8 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order4.smooth0/coeff-dx.compute.c @@ -0,0 +1,151 @@ +fp t536, + t539, + t541, + t515, + t575, + t509, + t574, + t540, + t542, + t495, + t510, + t573, + t530, + t512, + t514, + t572, + t562, + t497, + t571, + t570, + t561, + t569, + t508, + t568, + t567, + t566, + t537, + t518, + t519, + t565, + t481, + t564, + t563, + t477, + t529, + t511, + t560, + t538, + t507, + t559, + t558, + t557, + t521, + t474, + t556, + t475, + t555, + t554, + t553, + t552, + t551, + t550, + t549, + t548, + t547, + t546, + t545, + t487, + t484, + t482, + t478, + t476, + t473; + t536 = RATIONAL(1.0,30.0); + t539 = x*x; + t541 = t539*x; + t515 = t536*t541; + t575 = RATIONAL(71.0,2940.0)*x+t515; + t509 = RATIONAL(-2.0,15.0)*t541; + t574 = RATIONAL(226.0,735.0)*x+t509; + t540 = y*y; + t542 = t540*y; + t495 = RATIONAL(-21.0,200.0)*y; + t510 = RATIONAL(1.0,10.0)*t539; + t573 = y*t510+RATIONAL(-1.0,120.0)*t542+t495; + t530 = RATIONAL(-1.0,35.0); + t512 = t530*t540; + t514 = RATIONAL(-1.0,20.0)*t539; + t572 = RATIONAL(31.0,420.0)+t512+t514; + t562 = y*t539; + t497 = RATIONAL(21.0,200.0)*y; + t571 = RATIONAL(1.0,40.0)*t562+t497+RATIONAL(-1.0,30.0)*t542; + t570 = RATIONAL(-1.0,40.0)*t562+t495+t536*t542; + t561 = x*t540; + t569 = RATIONAL(1.0,98.0)*t561+RATIONAL(181.0,735.0)*x+t509; + t508 = RATIONAL(-1.0,10.0)*t539; + t568 = RATIONAL(31.0,210.0)+RATIONAL(-1.0,140.0)*t540+t508; + t567 = RATIONAL(-31.0,210.0)+RATIONAL(1.0,140.0)*t540+t510; + t566 = y*t508+RATIONAL(1.0,120.0)*t542+t497; + t537 = RATIONAL(1.0,35.0); + t518 = t537*t540; + t519 = RATIONAL(1.0,20.0)*t539; + t565 = RATIONAL(-31.0,420.0)+t518+t519; + t481 = RATIONAL(2.0,49.0)*t561; + t564 = t481+RATIONAL(-289.0,2940.0)*x+t515; + t563 = x*y; + t477 = RATIONAL(-1.0,49.0)*t561; + t529 = RATIONAL(-1.0,70.0); + t511 = t529*t540; + t560 = t477+t511; + t538 = RATIONAL(1.0,70.0); + t507 = t538*t540; + t559 = t477+t507; + t558 = y*t514+RATIONAL(-1.0,60.0)*t542; + t557 = y*t519+RATIONAL(1.0,60.0)*t542; + t521 = RATIONAL(1.0,5.0)*t541; + t474 = RATIONAL(-2.0,49.0)*t561; + t556 = t521+t474+RATIONAL(-41.0,98.0)*x; + t475 = RATIONAL(1.0,49.0)*t561; + t555 = t521+t475+RATIONAL(-53.0,98.0)*x; + t554 = t475+RATIONAL(166.0,735.0)*x+t509; + t553 = t474+RATIONAL(191.0,2940.0)*x+t515; + t552 = RATIONAL(-11.0,105.0)+t510+t560+t574; + t551 = RATIONAL(-1.0,84.0)+t514+t559+t575; + t550 = RATIONAL(-37.0,300.0)*y+t557+t569; + t549 = RATIONAL(1.0,84.0)+t519+t560+t575; + t548 = RATIONAL(11.0,105.0)+t508+t559+t574; + t547 = RATIONAL(11.0,150.0)*y+t558+t564; + t546 = RATIONAL(-11.0,150.0)*y+t557+t564; + t545 = RATIONAL(37.0,300.0)*y+t558+t569; + t487 = t529*t563; + t484 = RATIONAL(-2.0,35.0)*t563; + t482 = t530*t563; + t478 = t538*t563; + t476 = RATIONAL(2.0,35.0)*t563; + t473 = t537*t563; + coeff_dx_m2_m2 = t484+t546+t572; + coeff_dx_m1_m2 = t473+t552+t566; + coeff_dx_0_m2 = t476+t556; + coeff_dx_p1_m2 = t473+t548+t573; + coeff_dx_p2_m2 = t484+t547+t565; + coeff_dx_m2_m1 = t482+t551+t571; + coeff_dx_m1_m1 = t478+t545+t567; + coeff_dx_0_m1 = t473+t555; + coeff_dx_p1_m1 = t478+t550+t568; + coeff_dx_p2_m1 = t482+t549+t570; + coeff_dx_m2_0 = t514+RATIONAL(-17.0,420.0)+t518+t553; + coeff_dx_m1_0 = t510+t507+RATIONAL(-17.0,105.0)+t554; + coeff_dx_0_0 = t481+RATIONAL(-57.0,98.0)*x+t521; + coeff_dx_p1_0 = RATIONAL(17.0,105.0)+t511+t508+t554; + coeff_dx_p2_0 = t519+t512+RATIONAL(17.0,420.0)+t553; + coeff_dx_m2_p1 = t473+t551+t570; + coeff_dx_m1_p1 = t487+t550+t567; + coeff_dx_0_p1 = t482+t555; + coeff_dx_p1_p1 = t487+t545+t568; + coeff_dx_p2_p1 = t473+t549+t571; + coeff_dx_m2_p2 = t476+t547+t572; + coeff_dx_m1_p2 = t482+t552+t573; + coeff_dx_0_p2 = t484+t556; + coeff_dx_p1_p2 = t482+t548+t566; + coeff_dx_p2_p2 = t476+t546+t565; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order4.smooth0/coeff-dxx.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order4.smooth0/coeff-dxx.compute.c new file mode 100644 index 0000000..51c1f78 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order4.smooth0/coeff-dxx.compute.c @@ -0,0 +1,103 @@ +fp t717, + t694, + t716, + t702, + t734, + t696, + t712, + t695, + t733, + t732, + t731, + t730, + t700, + t703, + t697, + t691, + t693, + t729, + t701, + t728, + t687, + t727, + t726, + t699, + t725, + t692, + t724, + t698, + t723, + t722, + t721, + t720, + t719, + t690, + t718, + t685, + t684, + t683, + t680; + t717 = y*y; + t694 = RATIONAL(-1.0,49.0)*t717; + t716 = x*x; + t702 = RATIONAL(-2.0,5.0)*t716; + t734 = t694+t702+RATIONAL(226.0,735.0); + t696 = RATIONAL(2.0,49.0)*t717; + t712 = RATIONAL(1.0,10.0); + t695 = t712*t716; + t733 = t696+t695+RATIONAL(-289.0,2940.0); + t732 = RATIONAL(1.0,98.0)*t717+t702+RATIONAL(181.0,735.0); + t731 = t694+t695+RATIONAL(71.0,2940.0); + t730 = x*y; + t700 = RATIONAL(-1.0,5.0)*x; + t703 = RATIONAL(1.0,5.0)*x; + t697 = RATIONAL(-1.0,10.0)*x; + t691 = t712*x; + t693 = RATIONAL(-2.0,49.0)*t717; + t729 = t693+t695+RATIONAL(191.0,2940.0); + t701 = RATIONAL(3.0,5.0)*t716; + t728 = t693+t701+RATIONAL(-41.0,98.0); + t687 = RATIONAL(1.0,49.0)*t717; + t727 = t687+t701+RATIONAL(-53.0,98.0); + t726 = t687+t702+RATIONAL(166.0,735.0); + t699 = RATIONAL(1.0,35.0)*y; + t725 = t699+t734; + t692 = RATIONAL(2.0,35.0)*y; + t724 = t692+t733; + t698 = RATIONAL(-2.0,35.0)*y; + t723 = t698+t733; + t722 = RATIONAL(1.0,20.0)*t730+t731; + t721 = RATIONAL(-1.0,70.0)*y+t732; + t720 = RATIONAL(1.0,70.0)*y+t732; + t719 = RATIONAL(-1.0,20.0)*t730+t731; + t690 = RATIONAL(-1.0,35.0)*y; + t718 = t690+t734; + t685 = y*t703; + t684 = y*t700; + t683 = y*t697; + t680 = y*t691; + coeff_dxx_m2_m2 = t697+t680+t723; + coeff_dxx_m1_m2 = t684+t703+t725; + coeff_dxx_0_m2 = t692+t728; + coeff_dxx_p1_m2 = t700+t685+t725; + coeff_dxx_p2_m2 = t691+t683+t723; + coeff_dxx_m2_m1 = t697+t690+t722; + coeff_dxx_m1_m1 = t683+t703+t720; + coeff_dxx_0_m1 = t699+t727; + coeff_dxx_p1_m1 = t680+t700+t720; + coeff_dxx_p2_m1 = t691+t690+t719; + coeff_dxx_m2_0 = t697+t729; + coeff_dxx_m1_0 = t703+t726; + coeff_dxx_0_0 = t701+RATIONAL(-57.0,98.0)+t696; + coeff_dxx_p1_0 = t700+t726; + coeff_dxx_p2_0 = t691+t729; + coeff_dxx_m2_p1 = t699+t697+t719; + coeff_dxx_m1_p1 = t680+t703+t721; + coeff_dxx_0_p1 = t690+t727; + coeff_dxx_p1_p1 = t683+t700+t721; + coeff_dxx_p2_p1 = t691+t699+t722; + coeff_dxx_m2_p2 = t697+t683+t724; + coeff_dxx_m1_p2 = t685+t703+t718; + coeff_dxx_0_p2 = t698+t728; + coeff_dxx_p1_p2 = t684+t700+t718; + coeff_dxx_p2_p2 = t691+t680+t724; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order4.smooth0/coeff-dxy.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order4.smooth0/coeff-dxy.compute.c new file mode 100644 index 0000000..3f68e3b --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order4.smooth0/coeff-dxy.compute.c @@ -0,0 +1,119 @@ +fp t783, + t782, + t801, + t780, + t753, + t763, + t800, + t771, + t744, + t759, + t799, + t798, + t797, + t796, + t738, + t795, + t794, + t793, + t792, + t773, + t777, + t791, + t790, + t739, + t789, + t736, + t788, + t774, + t778, + t787, + t786, + t785, + t784, + t781, + t776, + t772, + t770, + t762, + t761, + t760, + t758, + t756, + t749, + t743, + t742, + t737, + t735; + t783 = y*y; + t782 = x*x; + t801 = t783+t782; + t780 = RATIONAL(1.0,35.0); + t753 = t780*x; + t763 = t780*y; + t800 = t753+t763; + t771 = RATIONAL(-1.0,35.0); + t744 = t771*x; + t759 = t771*y; + t799 = t744+t759; + t798 = t753+t759; + t797 = t744+t763; + t796 = x*y; + t738 = RATIONAL(-2.0,49.0)*t796; + t795 = t738+RATIONAL(-21.0,200.0); + t794 = t801*RATIONAL(-1.0,20.0); + t793 = t738+RATIONAL(21.0,200.0); + t792 = t801*RATIONAL(1.0,20.0); + t773 = RATIONAL(1.0,10.0); + t777 = RATIONAL(-1.0,40.0); + t791 = t777*t782+t773*t783+t795; + t790 = t777*t783+t773*t782+t795; + t739 = RATIONAL(4.0,49.0)*t796; + t789 = t739+RATIONAL(11.0,150.0)+t794; + t736 = RATIONAL(1.0,49.0)*t796; + t788 = t736+RATIONAL(37.0,300.0)+t794; + t774 = RATIONAL(-1.0,10.0); + t778 = RATIONAL(1.0,40.0); + t787 = t774*t782+t778*t783+t793; + t786 = t739+RATIONAL(-11.0,150.0)+t792; + t785 = t736+RATIONAL(-37.0,300.0)+t792; + t784 = t774*t783+t778*t782+t793; + t781 = RATIONAL(1.0,70.0); + t776 = RATIONAL(-2.0,35.0); + t772 = RATIONAL(2.0,35.0); + t770 = RATIONAL(-1.0,70.0); + t762 = t776*y; + t761 = t770*x; + t760 = t772*y; + t758 = t781*y; + t756 = t776*x; + t749 = t772*x; + t743 = t781*x; + t742 = t770*y; + t737 = RATIONAL(-4.0,49.0)*t796; + t735 = RATIONAL(2.0,49.0)*t796; + coeff_dxy_m2_m2 = t756+t762+t786; + coeff_dxy_m1_m2 = t787+t798; + coeff_dxy_0_m2 = t737+t749; + coeff_dxy_p1_m2 = t790+t800; + coeff_dxy_p2_m2 = t760+t756+t789; + coeff_dxy_m2_m1 = t784+t797; + coeff_dxy_m1_m1 = t758+t743+t788; + coeff_dxy_0_m1 = t735+t753; + coeff_dxy_p1_m1 = t743+t742+t785; + coeff_dxy_p2_m1 = t791+t799; + coeff_dxy_m2_0 = t760+t737; + coeff_dxy_m1_0 = t763+t735; + coeff_dxy_0_0 = t739; + coeff_dxy_p1_0 = t759+t735; + coeff_dxy_p2_0 = t762+t737; + coeff_dxy_m2_p1 = t791+t800; + coeff_dxy_m1_p1 = t758+t761+t785; + coeff_dxy_0_p1 = t744+t735; + coeff_dxy_p1_p1 = t761+t742+t788; + coeff_dxy_p2_p1 = t784+t798; + coeff_dxy_m2_p2 = t749+t762+t789; + coeff_dxy_m1_p2 = t790+t799; + coeff_dxy_0_p2 = t756+t737; + coeff_dxy_p1_p2 = t787+t797; + coeff_dxy_p2_p2 = t760+t749+t786; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order4.smooth0/coeff-dy.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order4.smooth0/coeff-dy.compute.c new file mode 100644 index 0000000..a3866a1 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order4.smooth0/coeff-dy.compute.c @@ -0,0 +1,147 @@ +fp t644, + t646, + t623, + t679, + t643, + t645, + t618, + t661, + t678, + t624, + t662, + t677, + t640, + t620, + t676, + t633, + t621, + t675, + t634, + t616, + t674, + t641, + t613, + t673, + t642, + t615, + t619, + t672, + t671, + t666, + t670, + t588, + t669, + t622, + t668, + t667, + t665, + t584, + t664, + t663, + t582, + t625, + t660, + t586, + t659, + t658, + t657, + t656, + t655, + t654, + t653, + t652, + t651, + t650, + t649, + t593, + t591, + t590, + t583, + t578, + t577; + t644 = y*y; + t646 = y*t644; + t623 = RATIONAL(-2.0,15.0)*t646; + t679 = RATIONAL(226.0,735.0)*y+t623; + t643 = x*x; + t645 = t643*x; + t618 = RATIONAL(-1.0,20.0)*t644; + t661 = x*t618+RATIONAL(-1.0,60.0)*t645; + t678 = t661+RATIONAL(37.0,300.0)*x; + t624 = RATIONAL(1.0,20.0)*t644; + t662 = x*t624+RATIONAL(1.0,60.0)*t645; + t677 = t662+RATIONAL(-37.0,300.0)*x; + t640 = RATIONAL(1.0,30.0); + t620 = t640*t646; + t676 = RATIONAL(71.0,2940.0)*y+t620; + t633 = RATIONAL(-1.0,70.0); + t621 = t633*t643; + t675 = RATIONAL(1.0,84.0)+t621+t624; + t634 = RATIONAL(-1.0,35.0); + t616 = t634*t643; + t674 = RATIONAL(31.0,420.0)+t616+t618; + t641 = RATIONAL(1.0,35.0); + t613 = t641*t643; + t673 = RATIONAL(-31.0,420.0)+t613+t624; + t642 = RATIONAL(1.0,70.0); + t615 = t642*t643; + t619 = RATIONAL(-1.0,10.0)*t644; + t672 = RATIONAL(11.0,105.0)+t615+t619; + t671 = RATIONAL(-1.0,84.0)+t615+t618; + t666 = y*t643; + t670 = RATIONAL(1.0,98.0)*t666+RATIONAL(181.0,735.0)*y+t623; + t588 = RATIONAL(2.0,49.0)*t666; + t669 = RATIONAL(-289.0,2940.0)*y+t588+t620; + t622 = RATIONAL(1.0,10.0)*t644; + t668 = RATIONAL(-11.0,105.0)+t621+t622; + t667 = x*y; + t665 = x*t644; + t584 = RATIONAL(-1.0,49.0)*t666; + t664 = t584+RATIONAL(-21.0,200.0)*x; + t663 = t584+RATIONAL(21.0,200.0)*x; + t582 = RATIONAL(-2.0,49.0)*t666; + t625 = RATIONAL(1.0,5.0)*t646; + t660 = t582+RATIONAL(-41.0,98.0)*y+t625; + t586 = RATIONAL(1.0,49.0)*t666; + t659 = t586+RATIONAL(-53.0,98.0)*y+t625; + t658 = RATIONAL(191.0,2940.0)*y+t582+t620; + t657 = t586+RATIONAL(166.0,735.0)*y+t623; + t656 = t640*t645+RATIONAL(-1.0,40.0)*t665+t664+t676; + t655 = RATIONAL(1.0,40.0)*t665+RATIONAL(-1.0,30.0)*t645+t663+t676; + t654 = x*t622+RATIONAL(-1.0,120.0)*t645+t664+t679; + t653 = RATIONAL(1.0,120.0)*t645+x*t619+t663+t679; + t652 = RATIONAL(-11.0,150.0)*x+t662+t669; + t651 = RATIONAL(31.0,210.0)+RATIONAL(-1.0,140.0)*t643+t619+t670; + t650 = RATIONAL(-31.0,210.0)+RATIONAL(1.0,140.0)*t643+t622+t670; + t649 = RATIONAL(11.0,150.0)*x+t661+t669; + t593 = t634*t667; + t591 = RATIONAL(-2.0,35.0)*t667; + t590 = t642*t667; + t583 = t633*t667; + t578 = t641*t667; + t577 = RATIONAL(2.0,35.0)*t667; + coeff_dy_m2_m2 = t591+t652+t674; + coeff_dy_m1_m2 = t593+t655+t671; + coeff_dy_0_m2 = RATIONAL(-17.0,420.0)+t618+t613+t658; + coeff_dy_p1_m2 = t578+t656+t671; + coeff_dy_p2_m2 = t577+t649+t674; + coeff_dy_m2_m1 = t578+t653+t668; + coeff_dy_m1_m1 = t590+t650+t678; + coeff_dy_0_m1 = RATIONAL(-17.0,105.0)+t622+t615+t657; + coeff_dy_p1_m1 = t583+t650+t677; + coeff_dy_p2_m1 = t593+t654+t668; + coeff_dy_m2_0 = t577+t660; + coeff_dy_m1_0 = t578+t659; + coeff_dy_0_0 = RATIONAL(-57.0,98.0)*y+t625+t588; + coeff_dy_p1_0 = t593+t659; + coeff_dy_p2_0 = t591+t660; + coeff_dy_m2_p1 = t578+t654+t672; + coeff_dy_m1_p1 = t590+t651+t677; + coeff_dy_0_p1 = RATIONAL(17.0,105.0)+t621+t619+t657; + coeff_dy_p1_p1 = t583+t651+t678; + coeff_dy_p2_p1 = t593+t653+t672; + coeff_dy_m2_p2 = t591+t649+t673; + coeff_dy_m1_p2 = t593+t656+t675; + coeff_dy_0_p2 = t616+t624+RATIONAL(17.0,420.0)+t658; + coeff_dy_p1_p2 = t578+t655+t675; + coeff_dy_p2_p2 = t577+t652+t673; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order4.smooth0/coeff-dyy.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order4.smooth0/coeff-dyy.compute.c new file mode 100644 index 0000000..f7dc31e --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.order4.smooth0/coeff-dyy.compute.c @@ -0,0 +1,107 @@ +fp t838, + t818, + t839, + t824, + t856, + t855, + t834, + t816, + t854, + t820, + t853, + t852, + t823, + t808, + t821, + t825, + t815, + t851, + t810, + t850, + t822, + t849, + t848, + t802, + t847, + t805, + t846, + t845, + t844, + t843, + t842, + t841, + t840, + t819, + t817, + t814, + t813, + t807, + t806, + t804, + t803; + t838 = x*x; + t818 = RATIONAL(-1.0,49.0)*t838; + t839 = y*y; + t824 = RATIONAL(-2.0,5.0)*t839; + t856 = RATIONAL(226.0,735.0)+t818+t824; + t855 = RATIONAL(181.0,735.0)+RATIONAL(1.0,98.0)*t838+t824; + t834 = RATIONAL(1.0,10.0); + t816 = t834*t839; + t854 = RATIONAL(71.0,2940.0)+t816+t818; + t820 = RATIONAL(2.0,49.0)*t838; + t853 = RATIONAL(-289.0,2940.0)+t816+t820; + t852 = x*y; + t823 = RATIONAL(1.0,5.0)*y; + t808 = t834*y; + t821 = RATIONAL(-1.0,10.0)*y; + t825 = RATIONAL(-1.0,5.0)*y; + t815 = RATIONAL(-2.0,49.0)*t838; + t851 = RATIONAL(191.0,2940.0)+t815+t816; + t810 = RATIONAL(1.0,49.0)*t838; + t850 = RATIONAL(166.0,735.0)+t810+t824; + t822 = RATIONAL(3.0,5.0)*t839; + t849 = RATIONAL(-53.0,98.0)+t810+t822; + t848 = RATIONAL(-41.0,98.0)+t815+t822; + t802 = x*t821; + t847 = t802+t853; + t805 = x*t808; + t846 = t805+t853; + t845 = RATIONAL(1.0,70.0)*x+t855; + t844 = RATIONAL(-1.0,70.0)*x+t855; + t843 = t823+t856; + t842 = t825+t856; + t841 = t821+t854; + t840 = t808+t854; + t819 = RATIONAL(-2.0,35.0)*x; + t817 = RATIONAL(-1.0,35.0)*x; + t814 = RATIONAL(1.0,35.0)*x; + t813 = RATIONAL(2.0,35.0)*x; + t807 = x*t825; + t806 = x*t823; + t804 = RATIONAL(1.0,20.0)*t852; + t803 = RATIONAL(-1.0,20.0)*t852; + coeff_dyy_m2_m2 = t821+t819+t846; + coeff_dyy_m1_m2 = t817+t804+t841; + coeff_dyy_0_m2 = t821+t851; + coeff_dyy_p1_m2 = t803+t814+t841; + coeff_dyy_p2_m2 = t813+t821+t847; + coeff_dyy_m2_m1 = t807+t814+t843; + coeff_dyy_m1_m1 = t802+t823+t845; + coeff_dyy_0_m1 = t823+t850; + coeff_dyy_p1_m1 = t823+t805+t844; + coeff_dyy_p2_m1 = t817+t806+t843; + coeff_dyy_m2_0 = t813+t848; + coeff_dyy_m1_0 = t814+t849; + coeff_dyy_0_0 = t820+RATIONAL(-57.0,98.0)+t822; + coeff_dyy_p1_0 = t817+t849; + coeff_dyy_p2_0 = t819+t848; + coeff_dyy_m2_p1 = t806+t814+t842; + coeff_dyy_m1_p1 = t825+t805+t845; + coeff_dyy_0_p1 = t825+t850; + coeff_dyy_p1_p1 = t802+t825+t844; + coeff_dyy_p2_p1 = t817+t807+t842; + coeff_dyy_m2_p2 = t819+t808+t847; + coeff_dyy_m1_p2 = t803+t817+t840; + coeff_dyy_0_p2 = t808+t851; + coeff_dyy_p1_p2 = t814+t804+t840; + coeff_dyy_p2_p2 = t808+t813+t846; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size2/coeff-I.dcl.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size2/coeff-I.dcl.c new file mode 100644 index 0000000..af64cc9 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size2/coeff-I.dcl.c @@ -0,0 +1,4 @@ +fp coeff_I_0_0, + coeff_I_p1_0, + coeff_I_0_p1, + coeff_I_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size2/coeff-dx.dcl.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size2/coeff-dx.dcl.c new file mode 100644 index 0000000..7d73499 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size2/coeff-dx.dcl.c @@ -0,0 +1,4 @@ +fp coeff_dx_0_0, + coeff_dx_p1_0, + coeff_dx_0_p1, + coeff_dx_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size2/coeff-dy.dcl.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size2/coeff-dy.dcl.c new file mode 100644 index 0000000..6f95065 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size2/coeff-dy.dcl.c @@ -0,0 +1,4 @@ +fp coeff_dy_0_0, + coeff_dy_p1_0, + coeff_dy_0_p1, + coeff_dy_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size2/data-var.assign.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size2/data-var.assign.c new file mode 100644 index 0000000..9aceea0 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size2/data-var.assign.c @@ -0,0 +1,4 @@ +data_0_0 = DATA(0,0); +data_p1_0 = DATA(1,0); +data_0_p1 = DATA(0,1); +data_p1_p1 = DATA(1,1); diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size2/data-var.dcl.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size2/data-var.dcl.c new file mode 100644 index 0000000..b2090e4 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size2/data-var.dcl.c @@ -0,0 +1,4 @@ +fp data_0_0, + data_p1_0, + data_0_p1, + data_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size2/interp-I.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size2/interp-I.compute.c new file mode 100644 index 0000000..9253b6c --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size2/interp-I.compute.c @@ -0,0 +1,5 @@ +result = + coeff_I_0_0*data_0_0 + + coeff_I_p1_0*data_p1_0 + + coeff_I_0_p1*data_0_p1 + + coeff_I_p1_p1*data_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size2/interp-dx.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size2/interp-dx.compute.c new file mode 100644 index 0000000..c29ba6d --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size2/interp-dx.compute.c @@ -0,0 +1,5 @@ +result = + coeff_dx_0_0*data_0_0 + + coeff_dx_p1_0*data_p1_0 + + coeff_dx_0_p1*data_0_p1 + + coeff_dx_p1_p1*data_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size2/interp-dy.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size2/interp-dy.compute.c new file mode 100644 index 0000000..ca30ad0 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size2/interp-dy.compute.c @@ -0,0 +1,5 @@ +result = + coeff_dy_0_0*data_0_0 + + coeff_dy_p1_0*data_p1_0 + + coeff_dy_0_p1*data_0_p1 + + coeff_dy_p1_p1*data_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/coeff-I.dcl.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/coeff-I.dcl.c new file mode 100644 index 0000000..3f4b0cb --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/coeff-I.dcl.c @@ -0,0 +1,9 @@ +fp coeff_I_m1_m1, + coeff_I_0_m1, + coeff_I_p1_m1, + coeff_I_m1_0, + coeff_I_0_0, + coeff_I_p1_0, + coeff_I_m1_p1, + coeff_I_0_p1, + coeff_I_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/coeff-dx.dcl.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/coeff-dx.dcl.c new file mode 100644 index 0000000..3efed8a --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/coeff-dx.dcl.c @@ -0,0 +1,9 @@ +fp coeff_dx_m1_m1, + coeff_dx_0_m1, + coeff_dx_p1_m1, + coeff_dx_m1_0, + coeff_dx_0_0, + coeff_dx_p1_0, + coeff_dx_m1_p1, + coeff_dx_0_p1, + coeff_dx_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/coeff-dxx.dcl.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/coeff-dxx.dcl.c new file mode 100644 index 0000000..2c62a96 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/coeff-dxx.dcl.c @@ -0,0 +1,9 @@ +fp coeff_dxx_m1_m1, + coeff_dxx_0_m1, + coeff_dxx_p1_m1, + coeff_dxx_m1_0, + coeff_dxx_0_0, + coeff_dxx_p1_0, + coeff_dxx_m1_p1, + coeff_dxx_0_p1, + coeff_dxx_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/coeff-dxy.dcl.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/coeff-dxy.dcl.c new file mode 100644 index 0000000..0b6a45b --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/coeff-dxy.dcl.c @@ -0,0 +1,9 @@ +fp coeff_dxy_m1_m1, + coeff_dxy_0_m1, + coeff_dxy_p1_m1, + coeff_dxy_m1_0, + coeff_dxy_0_0, + coeff_dxy_p1_0, + coeff_dxy_m1_p1, + coeff_dxy_0_p1, + coeff_dxy_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/coeff-dy.dcl.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/coeff-dy.dcl.c new file mode 100644 index 0000000..1aebea8 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/coeff-dy.dcl.c @@ -0,0 +1,9 @@ +fp coeff_dy_m1_m1, + coeff_dy_0_m1, + coeff_dy_p1_m1, + coeff_dy_m1_0, + coeff_dy_0_0, + coeff_dy_p1_0, + coeff_dy_m1_p1, + coeff_dy_0_p1, + coeff_dy_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/coeff-dyy.dcl.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/coeff-dyy.dcl.c new file mode 100644 index 0000000..52b76c9 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/coeff-dyy.dcl.c @@ -0,0 +1,9 @@ +fp coeff_dyy_m1_m1, + coeff_dyy_0_m1, + coeff_dyy_p1_m1, + coeff_dyy_m1_0, + coeff_dyy_0_0, + coeff_dyy_p1_0, + coeff_dyy_m1_p1, + coeff_dyy_0_p1, + coeff_dyy_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/data-var.assign.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/data-var.assign.c new file mode 100644 index 0000000..bb68189 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/data-var.assign.c @@ -0,0 +1,9 @@ +data_m1_m1 = DATA(-1,-1); +data_0_m1 = DATA(0,-1); +data_p1_m1 = DATA(1,-1); +data_m1_0 = DATA(-1,0); +data_0_0 = DATA(0,0); +data_p1_0 = DATA(1,0); +data_m1_p1 = DATA(-1,1); +data_0_p1 = DATA(0,1); +data_p1_p1 = DATA(1,1); diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/data-var.dcl.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/data-var.dcl.c new file mode 100644 index 0000000..77a064e --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/data-var.dcl.c @@ -0,0 +1,9 @@ +fp data_m1_m1, + data_0_m1, + data_p1_m1, + data_m1_0, + data_0_0, + data_p1_0, + data_m1_p1, + data_0_p1, + data_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/interp-I.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/interp-I.compute.c new file mode 100644 index 0000000..b9249fa --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/interp-I.compute.c @@ -0,0 +1,10 @@ +result = + coeff_I_m1_m1*data_m1_m1 + + coeff_I_0_m1*data_0_m1 + + coeff_I_p1_m1*data_p1_m1 + + coeff_I_m1_0*data_m1_0 + + coeff_I_0_0*data_0_0 + + coeff_I_p1_0*data_p1_0 + + coeff_I_m1_p1*data_m1_p1 + + coeff_I_0_p1*data_0_p1 + + coeff_I_p1_p1*data_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/interp-dx.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/interp-dx.compute.c new file mode 100644 index 0000000..f7d5f3a --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/interp-dx.compute.c @@ -0,0 +1,10 @@ +result = + coeff_dx_m1_m1*data_m1_m1 + + coeff_dx_0_m1*data_0_m1 + + coeff_dx_p1_m1*data_p1_m1 + + coeff_dx_m1_0*data_m1_0 + + coeff_dx_0_0*data_0_0 + + coeff_dx_p1_0*data_p1_0 + + coeff_dx_m1_p1*data_m1_p1 + + coeff_dx_0_p1*data_0_p1 + + coeff_dx_p1_p1*data_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/interp-dxx.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/interp-dxx.compute.c new file mode 100644 index 0000000..9764dbc --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/interp-dxx.compute.c @@ -0,0 +1,10 @@ +result = + coeff_dxx_m1_m1*data_m1_m1 + + coeff_dxx_0_m1*data_0_m1 + + coeff_dxx_p1_m1*data_p1_m1 + + coeff_dxx_m1_0*data_m1_0 + + coeff_dxx_0_0*data_0_0 + + coeff_dxx_p1_0*data_p1_0 + + coeff_dxx_m1_p1*data_m1_p1 + + coeff_dxx_0_p1*data_0_p1 + + coeff_dxx_p1_p1*data_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/interp-dxy.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/interp-dxy.compute.c new file mode 100644 index 0000000..5c9faa7 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/interp-dxy.compute.c @@ -0,0 +1,10 @@ +result = + coeff_dxy_m1_m1*data_m1_m1 + + coeff_dxy_0_m1*data_0_m1 + + coeff_dxy_p1_m1*data_p1_m1 + + coeff_dxy_m1_0*data_m1_0 + + coeff_dxy_0_0*data_0_0 + + coeff_dxy_p1_0*data_p1_0 + + coeff_dxy_m1_p1*data_m1_p1 + + coeff_dxy_0_p1*data_0_p1 + + coeff_dxy_p1_p1*data_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/interp-dy.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/interp-dy.compute.c new file mode 100644 index 0000000..d4eb9ca --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/interp-dy.compute.c @@ -0,0 +1,10 @@ +result = + coeff_dy_m1_m1*data_m1_m1 + + coeff_dy_0_m1*data_0_m1 + + coeff_dy_p1_m1*data_p1_m1 + + coeff_dy_m1_0*data_m1_0 + + coeff_dy_0_0*data_0_0 + + coeff_dy_p1_0*data_p1_0 + + coeff_dy_m1_p1*data_m1_p1 + + coeff_dy_0_p1*data_0_p1 + + coeff_dy_p1_p1*data_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/interp-dyy.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/interp-dyy.compute.c new file mode 100644 index 0000000..6ee2445 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size3/interp-dyy.compute.c @@ -0,0 +1,10 @@ +result = + coeff_dyy_m1_m1*data_m1_m1 + + coeff_dyy_0_m1*data_0_m1 + + coeff_dyy_p1_m1*data_p1_m1 + + coeff_dyy_m1_0*data_m1_0 + + coeff_dyy_0_0*data_0_0 + + coeff_dyy_p1_0*data_p1_0 + + coeff_dyy_m1_p1*data_m1_p1 + + coeff_dyy_0_p1*data_0_p1 + + coeff_dyy_p1_p1*data_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/coeff-I.dcl.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/coeff-I.dcl.c new file mode 100644 index 0000000..d35d81b --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/coeff-I.dcl.c @@ -0,0 +1,16 @@ +fp coeff_I_m1_m1, + coeff_I_0_m1, + coeff_I_p1_m1, + coeff_I_p2_m1, + coeff_I_m1_0, + coeff_I_0_0, + coeff_I_p1_0, + coeff_I_p2_0, + coeff_I_m1_p1, + coeff_I_0_p1, + coeff_I_p1_p1, + coeff_I_p2_p1, + coeff_I_m1_p2, + coeff_I_0_p2, + coeff_I_p1_p2, + coeff_I_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/coeff-dx.dcl.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/coeff-dx.dcl.c new file mode 100644 index 0000000..edfc9bb --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/coeff-dx.dcl.c @@ -0,0 +1,16 @@ +fp coeff_dx_m1_m1, + coeff_dx_0_m1, + coeff_dx_p1_m1, + coeff_dx_p2_m1, + coeff_dx_m1_0, + coeff_dx_0_0, + coeff_dx_p1_0, + coeff_dx_p2_0, + coeff_dx_m1_p1, + coeff_dx_0_p1, + coeff_dx_p1_p1, + coeff_dx_p2_p1, + coeff_dx_m1_p2, + coeff_dx_0_p2, + coeff_dx_p1_p2, + coeff_dx_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/coeff-dxx.dcl.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/coeff-dxx.dcl.c new file mode 100644 index 0000000..b5add16 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/coeff-dxx.dcl.c @@ -0,0 +1,16 @@ +fp coeff_dxx_m1_m1, + coeff_dxx_0_m1, + coeff_dxx_p1_m1, + coeff_dxx_p2_m1, + coeff_dxx_m1_0, + coeff_dxx_0_0, + coeff_dxx_p1_0, + coeff_dxx_p2_0, + coeff_dxx_m1_p1, + coeff_dxx_0_p1, + coeff_dxx_p1_p1, + coeff_dxx_p2_p1, + coeff_dxx_m1_p2, + coeff_dxx_0_p2, + coeff_dxx_p1_p2, + coeff_dxx_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/coeff-dxy.dcl.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/coeff-dxy.dcl.c new file mode 100644 index 0000000..853b503 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/coeff-dxy.dcl.c @@ -0,0 +1,16 @@ +fp coeff_dxy_m1_m1, + coeff_dxy_0_m1, + coeff_dxy_p1_m1, + coeff_dxy_p2_m1, + coeff_dxy_m1_0, + coeff_dxy_0_0, + coeff_dxy_p1_0, + coeff_dxy_p2_0, + coeff_dxy_m1_p1, + coeff_dxy_0_p1, + coeff_dxy_p1_p1, + coeff_dxy_p2_p1, + coeff_dxy_m1_p2, + coeff_dxy_0_p2, + coeff_dxy_p1_p2, + coeff_dxy_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/coeff-dy.dcl.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/coeff-dy.dcl.c new file mode 100644 index 0000000..e27b5ff --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/coeff-dy.dcl.c @@ -0,0 +1,16 @@ +fp coeff_dy_m1_m1, + coeff_dy_0_m1, + coeff_dy_p1_m1, + coeff_dy_p2_m1, + coeff_dy_m1_0, + coeff_dy_0_0, + coeff_dy_p1_0, + coeff_dy_p2_0, + coeff_dy_m1_p1, + coeff_dy_0_p1, + coeff_dy_p1_p1, + coeff_dy_p2_p1, + coeff_dy_m1_p2, + coeff_dy_0_p2, + coeff_dy_p1_p2, + coeff_dy_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/coeff-dyy.dcl.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/coeff-dyy.dcl.c new file mode 100644 index 0000000..ee37cfe --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/coeff-dyy.dcl.c @@ -0,0 +1,16 @@ +fp coeff_dyy_m1_m1, + coeff_dyy_0_m1, + coeff_dyy_p1_m1, + coeff_dyy_p2_m1, + coeff_dyy_m1_0, + coeff_dyy_0_0, + coeff_dyy_p1_0, + coeff_dyy_p2_0, + coeff_dyy_m1_p1, + coeff_dyy_0_p1, + coeff_dyy_p1_p1, + coeff_dyy_p2_p1, + coeff_dyy_m1_p2, + coeff_dyy_0_p2, + coeff_dyy_p1_p2, + coeff_dyy_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/data-var.assign.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/data-var.assign.c new file mode 100644 index 0000000..d0316f1 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/data-var.assign.c @@ -0,0 +1,16 @@ +data_m1_m1 = DATA(-1,-1); +data_0_m1 = DATA(0,-1); +data_p1_m1 = DATA(1,-1); +data_p2_m1 = DATA(2,-1); +data_m1_0 = DATA(-1,0); +data_0_0 = DATA(0,0); +data_p1_0 = DATA(1,0); +data_p2_0 = DATA(2,0); +data_m1_p1 = DATA(-1,1); +data_0_p1 = DATA(0,1); +data_p1_p1 = DATA(1,1); +data_p2_p1 = DATA(2,1); +data_m1_p2 = DATA(-1,2); +data_0_p2 = DATA(0,2); +data_p1_p2 = DATA(1,2); +data_p2_p2 = DATA(2,2); diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/data-var.dcl.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/data-var.dcl.c new file mode 100644 index 0000000..abbfb5d --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/data-var.dcl.c @@ -0,0 +1,16 @@ +fp data_m1_m1, + data_0_m1, + data_p1_m1, + data_p2_m1, + data_m1_0, + data_0_0, + data_p1_0, + data_p2_0, + data_m1_p1, + data_0_p1, + data_p1_p1, + data_p2_p1, + data_m1_p2, + data_0_p2, + data_p1_p2, + data_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/interp-I.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/interp-I.compute.c new file mode 100644 index 0000000..cf13e49 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/interp-I.compute.c @@ -0,0 +1,17 @@ +result = + coeff_I_m1_m1*data_m1_m1 + + coeff_I_0_m1*data_0_m1 + + coeff_I_p1_m1*data_p1_m1 + + coeff_I_p2_m1*data_p2_m1 + + coeff_I_m1_0*data_m1_0 + + coeff_I_0_0*data_0_0 + + coeff_I_p1_0*data_p1_0 + + coeff_I_p2_0*data_p2_0 + + coeff_I_m1_p1*data_m1_p1 + + coeff_I_0_p1*data_0_p1 + + coeff_I_p1_p1*data_p1_p1 + + coeff_I_p2_p1*data_p2_p1 + + coeff_I_m1_p2*data_m1_p2 + + coeff_I_0_p2*data_0_p2 + + coeff_I_p1_p2*data_p1_p2 + + coeff_I_p2_p2*data_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/interp-dx.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/interp-dx.compute.c new file mode 100644 index 0000000..69f9f56 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/interp-dx.compute.c @@ -0,0 +1,17 @@ +result = + coeff_dx_m1_m1*data_m1_m1 + + coeff_dx_0_m1*data_0_m1 + + coeff_dx_p1_m1*data_p1_m1 + + coeff_dx_p2_m1*data_p2_m1 + + coeff_dx_m1_0*data_m1_0 + + coeff_dx_0_0*data_0_0 + + coeff_dx_p1_0*data_p1_0 + + coeff_dx_p2_0*data_p2_0 + + coeff_dx_m1_p1*data_m1_p1 + + coeff_dx_0_p1*data_0_p1 + + coeff_dx_p1_p1*data_p1_p1 + + coeff_dx_p2_p1*data_p2_p1 + + coeff_dx_m1_p2*data_m1_p2 + + coeff_dx_0_p2*data_0_p2 + + coeff_dx_p1_p2*data_p1_p2 + + coeff_dx_p2_p2*data_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/interp-dxx.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/interp-dxx.compute.c new file mode 100644 index 0000000..9ce20a1 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/interp-dxx.compute.c @@ -0,0 +1,17 @@ +result = + coeff_dxx_m1_m1*data_m1_m1 + + coeff_dxx_0_m1*data_0_m1 + + coeff_dxx_p1_m1*data_p1_m1 + + coeff_dxx_p2_m1*data_p2_m1 + + coeff_dxx_m1_0*data_m1_0 + + coeff_dxx_0_0*data_0_0 + + coeff_dxx_p1_0*data_p1_0 + + coeff_dxx_p2_0*data_p2_0 + + coeff_dxx_m1_p1*data_m1_p1 + + coeff_dxx_0_p1*data_0_p1 + + coeff_dxx_p1_p1*data_p1_p1 + + coeff_dxx_p2_p1*data_p2_p1 + + coeff_dxx_m1_p2*data_m1_p2 + + coeff_dxx_0_p2*data_0_p2 + + coeff_dxx_p1_p2*data_p1_p2 + + coeff_dxx_p2_p2*data_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/interp-dxy.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/interp-dxy.compute.c new file mode 100644 index 0000000..5130c7b --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/interp-dxy.compute.c @@ -0,0 +1,17 @@ +result = + coeff_dxy_m1_m1*data_m1_m1 + + coeff_dxy_0_m1*data_0_m1 + + coeff_dxy_p1_m1*data_p1_m1 + + coeff_dxy_p2_m1*data_p2_m1 + + coeff_dxy_m1_0*data_m1_0 + + coeff_dxy_0_0*data_0_0 + + coeff_dxy_p1_0*data_p1_0 + + coeff_dxy_p2_0*data_p2_0 + + coeff_dxy_m1_p1*data_m1_p1 + + coeff_dxy_0_p1*data_0_p1 + + coeff_dxy_p1_p1*data_p1_p1 + + coeff_dxy_p2_p1*data_p2_p1 + + coeff_dxy_m1_p2*data_m1_p2 + + coeff_dxy_0_p2*data_0_p2 + + coeff_dxy_p1_p2*data_p1_p2 + + coeff_dxy_p2_p2*data_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/interp-dy.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/interp-dy.compute.c new file mode 100644 index 0000000..f671033 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/interp-dy.compute.c @@ -0,0 +1,17 @@ +result = + coeff_dy_m1_m1*data_m1_m1 + + coeff_dy_0_m1*data_0_m1 + + coeff_dy_p1_m1*data_p1_m1 + + coeff_dy_p2_m1*data_p2_m1 + + coeff_dy_m1_0*data_m1_0 + + coeff_dy_0_0*data_0_0 + + coeff_dy_p1_0*data_p1_0 + + coeff_dy_p2_0*data_p2_0 + + coeff_dy_m1_p1*data_m1_p1 + + coeff_dy_0_p1*data_0_p1 + + coeff_dy_p1_p1*data_p1_p1 + + coeff_dy_p2_p1*data_p2_p1 + + coeff_dy_m1_p2*data_m1_p2 + + coeff_dy_0_p2*data_0_p2 + + coeff_dy_p1_p2*data_p1_p2 + + coeff_dy_p2_p2*data_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/interp-dyy.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/interp-dyy.compute.c new file mode 100644 index 0000000..112e958 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size4/interp-dyy.compute.c @@ -0,0 +1,17 @@ +result = + coeff_dyy_m1_m1*data_m1_m1 + + coeff_dyy_0_m1*data_0_m1 + + coeff_dyy_p1_m1*data_p1_m1 + + coeff_dyy_p2_m1*data_p2_m1 + + coeff_dyy_m1_0*data_m1_0 + + coeff_dyy_0_0*data_0_0 + + coeff_dyy_p1_0*data_p1_0 + + coeff_dyy_p2_0*data_p2_0 + + coeff_dyy_m1_p1*data_m1_p1 + + coeff_dyy_0_p1*data_0_p1 + + coeff_dyy_p1_p1*data_p1_p1 + + coeff_dyy_p2_p1*data_p2_p1 + + coeff_dyy_m1_p2*data_m1_p2 + + coeff_dyy_0_p2*data_0_p2 + + coeff_dyy_p1_p2*data_p1_p2 + + coeff_dyy_p2_p2*data_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/coeff-I.dcl.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/coeff-I.dcl.c new file mode 100644 index 0000000..64d7a53 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/coeff-I.dcl.c @@ -0,0 +1,25 @@ +fp coeff_I_m2_m2, + coeff_I_m1_m2, + coeff_I_0_m2, + coeff_I_p1_m2, + coeff_I_p2_m2, + coeff_I_m2_m1, + coeff_I_m1_m1, + coeff_I_0_m1, + coeff_I_p1_m1, + coeff_I_p2_m1, + coeff_I_m2_0, + coeff_I_m1_0, + coeff_I_0_0, + coeff_I_p1_0, + coeff_I_p2_0, + coeff_I_m2_p1, + coeff_I_m1_p1, + coeff_I_0_p1, + coeff_I_p1_p1, + coeff_I_p2_p1, + coeff_I_m2_p2, + coeff_I_m1_p2, + coeff_I_0_p2, + coeff_I_p1_p2, + coeff_I_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/coeff-dx.dcl.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/coeff-dx.dcl.c new file mode 100644 index 0000000..965e5ab --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/coeff-dx.dcl.c @@ -0,0 +1,25 @@ +fp coeff_dx_m2_m2, + coeff_dx_m1_m2, + coeff_dx_0_m2, + coeff_dx_p1_m2, + coeff_dx_p2_m2, + coeff_dx_m2_m1, + coeff_dx_m1_m1, + coeff_dx_0_m1, + coeff_dx_p1_m1, + coeff_dx_p2_m1, + coeff_dx_m2_0, + coeff_dx_m1_0, + coeff_dx_0_0, + coeff_dx_p1_0, + coeff_dx_p2_0, + coeff_dx_m2_p1, + coeff_dx_m1_p1, + coeff_dx_0_p1, + coeff_dx_p1_p1, + coeff_dx_p2_p1, + coeff_dx_m2_p2, + coeff_dx_m1_p2, + coeff_dx_0_p2, + coeff_dx_p1_p2, + coeff_dx_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/coeff-dxx.dcl.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/coeff-dxx.dcl.c new file mode 100644 index 0000000..9aa0041 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/coeff-dxx.dcl.c @@ -0,0 +1,25 @@ +fp coeff_dxx_m2_m2, + coeff_dxx_m1_m2, + coeff_dxx_0_m2, + coeff_dxx_p1_m2, + coeff_dxx_p2_m2, + coeff_dxx_m2_m1, + coeff_dxx_m1_m1, + coeff_dxx_0_m1, + coeff_dxx_p1_m1, + coeff_dxx_p2_m1, + coeff_dxx_m2_0, + coeff_dxx_m1_0, + coeff_dxx_0_0, + coeff_dxx_p1_0, + coeff_dxx_p2_0, + coeff_dxx_m2_p1, + coeff_dxx_m1_p1, + coeff_dxx_0_p1, + coeff_dxx_p1_p1, + coeff_dxx_p2_p1, + coeff_dxx_m2_p2, + coeff_dxx_m1_p2, + coeff_dxx_0_p2, + coeff_dxx_p1_p2, + coeff_dxx_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/coeff-dxy.dcl.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/coeff-dxy.dcl.c new file mode 100644 index 0000000..37cd8db --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/coeff-dxy.dcl.c @@ -0,0 +1,25 @@ +fp coeff_dxy_m2_m2, + coeff_dxy_m1_m2, + coeff_dxy_0_m2, + coeff_dxy_p1_m2, + coeff_dxy_p2_m2, + coeff_dxy_m2_m1, + coeff_dxy_m1_m1, + coeff_dxy_0_m1, + coeff_dxy_p1_m1, + coeff_dxy_p2_m1, + coeff_dxy_m2_0, + coeff_dxy_m1_0, + coeff_dxy_0_0, + coeff_dxy_p1_0, + coeff_dxy_p2_0, + coeff_dxy_m2_p1, + coeff_dxy_m1_p1, + coeff_dxy_0_p1, + coeff_dxy_p1_p1, + coeff_dxy_p2_p1, + coeff_dxy_m2_p2, + coeff_dxy_m1_p2, + coeff_dxy_0_p2, + coeff_dxy_p1_p2, + coeff_dxy_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/coeff-dy.dcl.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/coeff-dy.dcl.c new file mode 100644 index 0000000..b90bf19 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/coeff-dy.dcl.c @@ -0,0 +1,25 @@ +fp coeff_dy_m2_m2, + coeff_dy_m1_m2, + coeff_dy_0_m2, + coeff_dy_p1_m2, + coeff_dy_p2_m2, + coeff_dy_m2_m1, + coeff_dy_m1_m1, + coeff_dy_0_m1, + coeff_dy_p1_m1, + coeff_dy_p2_m1, + coeff_dy_m2_0, + coeff_dy_m1_0, + coeff_dy_0_0, + coeff_dy_p1_0, + coeff_dy_p2_0, + coeff_dy_m2_p1, + coeff_dy_m1_p1, + coeff_dy_0_p1, + coeff_dy_p1_p1, + coeff_dy_p2_p1, + coeff_dy_m2_p2, + coeff_dy_m1_p2, + coeff_dy_0_p2, + coeff_dy_p1_p2, + coeff_dy_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/coeff-dyy.dcl.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/coeff-dyy.dcl.c new file mode 100644 index 0000000..45b91b2 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/coeff-dyy.dcl.c @@ -0,0 +1,25 @@ +fp coeff_dyy_m2_m2, + coeff_dyy_m1_m2, + coeff_dyy_0_m2, + coeff_dyy_p1_m2, + coeff_dyy_p2_m2, + coeff_dyy_m2_m1, + coeff_dyy_m1_m1, + coeff_dyy_0_m1, + coeff_dyy_p1_m1, + coeff_dyy_p2_m1, + coeff_dyy_m2_0, + coeff_dyy_m1_0, + coeff_dyy_0_0, + coeff_dyy_p1_0, + coeff_dyy_p2_0, + coeff_dyy_m2_p1, + coeff_dyy_m1_p1, + coeff_dyy_0_p1, + coeff_dyy_p1_p1, + coeff_dyy_p2_p1, + coeff_dyy_m2_p2, + coeff_dyy_m1_p2, + coeff_dyy_0_p2, + coeff_dyy_p1_p2, + coeff_dyy_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/data-var.assign.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/data-var.assign.c new file mode 100644 index 0000000..054be56 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/data-var.assign.c @@ -0,0 +1,25 @@ +data_m2_m2 = DATA(-2,-2); +data_m1_m2 = DATA(-1,-2); +data_0_m2 = DATA(0,-2); +data_p1_m2 = DATA(1,-2); +data_p2_m2 = DATA(2,-2); +data_m2_m1 = DATA(-2,-1); +data_m1_m1 = DATA(-1,-1); +data_0_m1 = DATA(0,-1); +data_p1_m1 = DATA(1,-1); +data_p2_m1 = DATA(2,-1); +data_m2_0 = DATA(-2,0); +data_m1_0 = DATA(-1,0); +data_0_0 = DATA(0,0); +data_p1_0 = DATA(1,0); +data_p2_0 = DATA(2,0); +data_m2_p1 = DATA(-2,1); +data_m1_p1 = DATA(-1,1); +data_0_p1 = DATA(0,1); +data_p1_p1 = DATA(1,1); +data_p2_p1 = DATA(2,1); +data_m2_p2 = DATA(-2,2); +data_m1_p2 = DATA(-1,2); +data_0_p2 = DATA(0,2); +data_p1_p2 = DATA(1,2); +data_p2_p2 = DATA(2,2); diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/data-var.dcl.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/data-var.dcl.c new file mode 100644 index 0000000..006894f --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/data-var.dcl.c @@ -0,0 +1,25 @@ +fp data_m2_m2, + data_m1_m2, + data_0_m2, + data_p1_m2, + data_p2_m2, + data_m2_m1, + data_m1_m1, + data_0_m1, + data_p1_m1, + data_p2_m1, + data_m2_0, + data_m1_0, + data_0_0, + data_p1_0, + data_p2_0, + data_m2_p1, + data_m1_p1, + data_0_p1, + data_p1_p1, + data_p2_p1, + data_m2_p2, + data_m1_p2, + data_0_p2, + data_p1_p2, + data_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/interp-I.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/interp-I.compute.c new file mode 100644 index 0000000..63096fa --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/interp-I.compute.c @@ -0,0 +1,26 @@ +result = + coeff_I_m2_m2*data_m2_m2 + + coeff_I_m1_m2*data_m1_m2 + + coeff_I_0_m2*data_0_m2 + + coeff_I_p1_m2*data_p1_m2 + + coeff_I_p2_m2*data_p2_m2 + + coeff_I_m2_m1*data_m2_m1 + + coeff_I_m1_m1*data_m1_m1 + + coeff_I_0_m1*data_0_m1 + + coeff_I_p1_m1*data_p1_m1 + + coeff_I_p2_m1*data_p2_m1 + + coeff_I_m2_0*data_m2_0 + + coeff_I_m1_0*data_m1_0 + + coeff_I_0_0*data_0_0 + + coeff_I_p1_0*data_p1_0 + + coeff_I_p2_0*data_p2_0 + + coeff_I_m2_p1*data_m2_p1 + + coeff_I_m1_p1*data_m1_p1 + + coeff_I_0_p1*data_0_p1 + + coeff_I_p1_p1*data_p1_p1 + + coeff_I_p2_p1*data_p2_p1 + + coeff_I_m2_p2*data_m2_p2 + + coeff_I_m1_p2*data_m1_p2 + + coeff_I_0_p2*data_0_p2 + + coeff_I_p1_p2*data_p1_p2 + + coeff_I_p2_p2*data_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/interp-dx.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/interp-dx.compute.c new file mode 100644 index 0000000..f92b558 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/interp-dx.compute.c @@ -0,0 +1,26 @@ +result = + coeff_dx_m2_m2*data_m2_m2 + + coeff_dx_m1_m2*data_m1_m2 + + coeff_dx_0_m2*data_0_m2 + + coeff_dx_p1_m2*data_p1_m2 + + coeff_dx_p2_m2*data_p2_m2 + + coeff_dx_m2_m1*data_m2_m1 + + coeff_dx_m1_m1*data_m1_m1 + + coeff_dx_0_m1*data_0_m1 + + coeff_dx_p1_m1*data_p1_m1 + + coeff_dx_p2_m1*data_p2_m1 + + coeff_dx_m2_0*data_m2_0 + + coeff_dx_m1_0*data_m1_0 + + coeff_dx_0_0*data_0_0 + + coeff_dx_p1_0*data_p1_0 + + coeff_dx_p2_0*data_p2_0 + + coeff_dx_m2_p1*data_m2_p1 + + coeff_dx_m1_p1*data_m1_p1 + + coeff_dx_0_p1*data_0_p1 + + coeff_dx_p1_p1*data_p1_p1 + + coeff_dx_p2_p1*data_p2_p1 + + coeff_dx_m2_p2*data_m2_p2 + + coeff_dx_m1_p2*data_m1_p2 + + coeff_dx_0_p2*data_0_p2 + + coeff_dx_p1_p2*data_p1_p2 + + coeff_dx_p2_p2*data_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/interp-dxx.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/interp-dxx.compute.c new file mode 100644 index 0000000..699eb00 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/interp-dxx.compute.c @@ -0,0 +1,26 @@ +result = + coeff_dxx_m2_m2*data_m2_m2 + + coeff_dxx_m1_m2*data_m1_m2 + + coeff_dxx_0_m2*data_0_m2 + + coeff_dxx_p1_m2*data_p1_m2 + + coeff_dxx_p2_m2*data_p2_m2 + + coeff_dxx_m2_m1*data_m2_m1 + + coeff_dxx_m1_m1*data_m1_m1 + + coeff_dxx_0_m1*data_0_m1 + + coeff_dxx_p1_m1*data_p1_m1 + + coeff_dxx_p2_m1*data_p2_m1 + + coeff_dxx_m2_0*data_m2_0 + + coeff_dxx_m1_0*data_m1_0 + + coeff_dxx_0_0*data_0_0 + + coeff_dxx_p1_0*data_p1_0 + + coeff_dxx_p2_0*data_p2_0 + + coeff_dxx_m2_p1*data_m2_p1 + + coeff_dxx_m1_p1*data_m1_p1 + + coeff_dxx_0_p1*data_0_p1 + + coeff_dxx_p1_p1*data_p1_p1 + + coeff_dxx_p2_p1*data_p2_p1 + + coeff_dxx_m2_p2*data_m2_p2 + + coeff_dxx_m1_p2*data_m1_p2 + + coeff_dxx_0_p2*data_0_p2 + + coeff_dxx_p1_p2*data_p1_p2 + + coeff_dxx_p2_p2*data_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/interp-dxy.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/interp-dxy.compute.c new file mode 100644 index 0000000..57a6b8e --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/interp-dxy.compute.c @@ -0,0 +1,26 @@ +result = + coeff_dxy_m2_m2*data_m2_m2 + + coeff_dxy_m1_m2*data_m1_m2 + + coeff_dxy_0_m2*data_0_m2 + + coeff_dxy_p1_m2*data_p1_m2 + + coeff_dxy_p2_m2*data_p2_m2 + + coeff_dxy_m2_m1*data_m2_m1 + + coeff_dxy_m1_m1*data_m1_m1 + + coeff_dxy_0_m1*data_0_m1 + + coeff_dxy_p1_m1*data_p1_m1 + + coeff_dxy_p2_m1*data_p2_m1 + + coeff_dxy_m2_0*data_m2_0 + + coeff_dxy_m1_0*data_m1_0 + + coeff_dxy_0_0*data_0_0 + + coeff_dxy_p1_0*data_p1_0 + + coeff_dxy_p2_0*data_p2_0 + + coeff_dxy_m2_p1*data_m2_p1 + + coeff_dxy_m1_p1*data_m1_p1 + + coeff_dxy_0_p1*data_0_p1 + + coeff_dxy_p1_p1*data_p1_p1 + + coeff_dxy_p2_p1*data_p2_p1 + + coeff_dxy_m2_p2*data_m2_p2 + + coeff_dxy_m1_p2*data_m1_p2 + + coeff_dxy_0_p2*data_0_p2 + + coeff_dxy_p1_p2*data_p1_p2 + + coeff_dxy_p2_p2*data_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/interp-dy.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/interp-dy.compute.c new file mode 100644 index 0000000..74bfb00 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/interp-dy.compute.c @@ -0,0 +1,26 @@ +result = + coeff_dy_m2_m2*data_m2_m2 + + coeff_dy_m1_m2*data_m1_m2 + + coeff_dy_0_m2*data_0_m2 + + coeff_dy_p1_m2*data_p1_m2 + + coeff_dy_p2_m2*data_p2_m2 + + coeff_dy_m2_m1*data_m2_m1 + + coeff_dy_m1_m1*data_m1_m1 + + coeff_dy_0_m1*data_0_m1 + + coeff_dy_p1_m1*data_p1_m1 + + coeff_dy_p2_m1*data_p2_m1 + + coeff_dy_m2_0*data_m2_0 + + coeff_dy_m1_0*data_m1_0 + + coeff_dy_0_0*data_0_0 + + coeff_dy_p1_0*data_p1_0 + + coeff_dy_p2_0*data_p2_0 + + coeff_dy_m2_p1*data_m2_p1 + + coeff_dy_m1_p1*data_m1_p1 + + coeff_dy_0_p1*data_0_p1 + + coeff_dy_p1_p1*data_p1_p1 + + coeff_dy_p2_p1*data_p2_p1 + + coeff_dy_m2_p2*data_m2_p2 + + coeff_dy_m1_p2*data_m1_p2 + + coeff_dy_0_p2*data_0_p2 + + coeff_dy_p1_p2*data_p1_p2 + + coeff_dy_p2_p2*data_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/interp-dyy.compute.c b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/interp-dyy.compute.c new file mode 100644 index 0000000..aaec7a2 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.coeffs/2d.cube.size5/interp-dyy.compute.c @@ -0,0 +1,26 @@ +result = + coeff_dyy_m2_m2*data_m2_m2 + + coeff_dyy_m1_m2*data_m1_m2 + + coeff_dyy_0_m2*data_0_m2 + + coeff_dyy_p1_m2*data_p1_m2 + + coeff_dyy_p2_m2*data_p2_m2 + + coeff_dyy_m2_m1*data_m2_m1 + + coeff_dyy_m1_m1*data_m1_m1 + + coeff_dyy_0_m1*data_0_m1 + + coeff_dyy_p1_m1*data_p1_m1 + + coeff_dyy_p2_m1*data_p2_m1 + + coeff_dyy_m2_0*data_m2_0 + + coeff_dyy_m1_0*data_m1_0 + + coeff_dyy_0_0*data_0_0 + + coeff_dyy_p1_0*data_p1_0 + + coeff_dyy_p2_0*data_p2_0 + + coeff_dyy_m2_p1*data_m2_p1 + + coeff_dyy_m1_p1*data_m1_p1 + + coeff_dyy_0_p1*data_0_p1 + + coeff_dyy_p1_p1*data_p1_p1 + + coeff_dyy_p2_p1*data_p2_p1 + + coeff_dyy_m2_p2*data_m2_p2 + + coeff_dyy_m1_p2*data_m1_p2 + + coeff_dyy_0_p2*data_0_p2 + + coeff_dyy_p1_p2*data_p1_p2 + + coeff_dyy_p2_p2*data_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/2d.cube.order1.smooth0.c b/src/GeneralizedPolynomial-Uniform/2d.cube.order1.smooth0.c new file mode 100644 index 0000000..cc8c695 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.cube.order1.smooth0.c @@ -0,0 +1,39 @@ +#include <math.h> +#include <limits.h> +#include <stdlib.h> +#include <string.h> +#include <stdio.h> + +#include "util_ErrorCodes.h" +#include "cctk.h" +#include "InterpLocalUniform.h" + +/* function prototype */ +#define FUNCTION_NAME LocalInterp_ILU_2d_cube_o1_s0 +#include "template.h" + +#define N_DIMS 2 +#define MOLECULE_SIZE 2 + +/* which derivative ops do we support? */ +#define HAVE_OP_I +#define HAVE_OP_DX +#define HAVE_OP_DY + +#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_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" + +#define INTERP_I_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.size2/interp-I.compute.c" +#define INTERP_DX_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.size2/interp-dx.compute.c" +#define INTERP_DY_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.size2/interp-dy.compute.c" + +#define COEFF_I_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.order1.smooth0/coeff-I.compute.c" +#define COEFF_DX_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.order1.smooth0/coeff-dx.compute.c" +#define COEFF_DY_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.order1.smooth0/coeff-dy.compute.c" + +/* actual code */ +#include "template.c" diff --git a/src/GeneralizedPolynomial-Uniform/2d.cube.order2.smooth0.c b/src/GeneralizedPolynomial-Uniform/2d.cube.order2.smooth0.c new file mode 100644 index 0000000..4e320d9 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.cube.order2.smooth0.c @@ -0,0 +1,51 @@ +#include <math.h> +#include <limits.h> +#include <stdlib.h> +#include <string.h> +#include <stdio.h> + +#include "util_ErrorCodes.h" +#include "cctk.h" +#include "InterpLocalUniform.h" + +/* function prototype */ +#define FUNCTION_NAME LocalInterp_ILU_2d_cube_o2_s0 +#include "template.h" + +#define N_DIMS 2 +#define MOLECULE_SIZE 3 + +/* which derivative ops do we support? */ +#define HAVE_OP_I +#define HAVE_OP_DX +#define HAVE_OP_DY +#define HAVE_OP_DXX +#define HAVE_OP_DXY +#define HAVE_OP_DYY + +#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_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" +#define COEFF_DXX_DCL_FILE_NAME "2d.coeffs/2d.cube.size3/coeff-dxx.dcl.c" +#define COEFF_DXY_DCL_FILE_NAME "2d.coeffs/2d.cube.size3/coeff-dxy.dcl.c" +#define COEFF_DYY_DCL_FILE_NAME "2d.coeffs/2d.cube.size3/coeff-dyy.dcl.c" + +#define INTERP_I_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.size3/interp-I.compute.c" +#define INTERP_DX_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.size3/interp-dx.compute.c" +#define INTERP_DY_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.size3/interp-dy.compute.c" +#define INTERP_DXX_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.size3/interp-dxx.compute.c" +#define INTERP_DXY_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.size3/interp-dxy.compute.c" +#define INTERP_DYY_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.size3/interp-dyy.compute.c" + +#define COEFF_I_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.order2.smooth0/coeff-I.compute.c" +#define COEFF_DX_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.order2.smooth0/coeff-dx.compute.c" +#define COEFF_DY_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.order2.smooth0/coeff-dy.compute.c" +#define COEFF_DXX_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.order2.smooth0/coeff-dxx.compute.c" +#define COEFF_DXY_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.order2.smooth0/coeff-dxy.compute.c" +#define COEFF_DYY_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.order2.smooth0/coeff-dyy.compute.c" + +/* actual code */ +#include "template.c" diff --git a/src/GeneralizedPolynomial-Uniform/2d.cube.order3.smooth0.c b/src/GeneralizedPolynomial-Uniform/2d.cube.order3.smooth0.c new file mode 100644 index 0000000..d75eaad --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.cube.order3.smooth0.c @@ -0,0 +1,51 @@ +#include <math.h> +#include <limits.h> +#include <stdlib.h> +#include <string.h> +#include <stdio.h> + +#include "util_ErrorCodes.h" +#include "cctk.h" +#include "InterpLocalUniform.h" + +/* function prototype */ +#define FUNCTION_NAME LocalInterp_ILU_2d_cube_o3_s0 +#include "template.h" + +#define N_DIMS 2 +#define MOLECULE_SIZE 4 + +/* which derivative ops do we support? */ +#define HAVE_OP_I +#define HAVE_OP_DX +#define HAVE_OP_DY +#define HAVE_OP_DXX +#define HAVE_OP_DXY +#define HAVE_OP_DYY + +#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_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" +#define COEFF_DXX_DCL_FILE_NAME "2d.coeffs/2d.cube.size4/coeff-dxx.dcl.c" +#define COEFF_DXY_DCL_FILE_NAME "2d.coeffs/2d.cube.size4/coeff-dxy.dcl.c" +#define COEFF_DYY_DCL_FILE_NAME "2d.coeffs/2d.cube.size4/coeff-dyy.dcl.c" + +#define INTERP_I_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.size4/interp-I.compute.c" +#define INTERP_DX_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.size4/interp-dx.compute.c" +#define INTERP_DY_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.size4/interp-dy.compute.c" +#define INTERP_DXX_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.size4/interp-dxx.compute.c" +#define INTERP_DXY_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.size4/interp-dxy.compute.c" +#define INTERP_DYY_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.size4/interp-dyy.compute.c" + +#define COEFF_I_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.order3.smooth0/coeff-I.compute.c" +#define COEFF_DX_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.order3.smooth0/coeff-dx.compute.c" +#define COEFF_DY_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.order3.smooth0/coeff-dy.compute.c" +#define COEFF_DXX_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.order3.smooth0/coeff-dxx.compute.c" +#define COEFF_DXY_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.order3.smooth0/coeff-dxy.compute.c" +#define COEFF_DYY_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.order3.smooth0/coeff-dyy.compute.c" + +/* actual code */ +#include "template.c" diff --git a/src/GeneralizedPolynomial-Uniform/2d.cube.order4.smooth0.c b/src/GeneralizedPolynomial-Uniform/2d.cube.order4.smooth0.c new file mode 100644 index 0000000..73d70e7 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.cube.order4.smooth0.c @@ -0,0 +1,51 @@ +#include <math.h> +#include <limits.h> +#include <stdlib.h> +#include <string.h> +#include <stdio.h> + +#include "util_ErrorCodes.h" +#include "cctk.h" +#include "InterpLocalUniform.h" + +/* function prototype */ +#define FUNCTION_NAME LocalInterp_ILU_2d_cube_o4_s0 +#include "template.h" + +#define N_DIMS 2 +#define MOLECULE_SIZE 5 + +/* which derivative ops do we support? */ +#define HAVE_OP_I +#define HAVE_OP_DX +#define HAVE_OP_DY +#define HAVE_OP_DXX +#define HAVE_OP_DXY +#define HAVE_OP_DYY + +#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_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" +#define COEFF_DXX_DCL_FILE_NAME "2d.coeffs/2d.cube.size5/coeff-dxx.dcl.c" +#define COEFF_DXY_DCL_FILE_NAME "2d.coeffs/2d.cube.size5/coeff-dxy.dcl.c" +#define COEFF_DYY_DCL_FILE_NAME "2d.coeffs/2d.cube.size5/coeff-dyy.dcl.c" + +#define INTERP_I_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.size5/interp-I.compute.c" +#define INTERP_DX_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.size5/interp-dx.compute.c" +#define INTERP_DY_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.size5/interp-dy.compute.c" +#define INTERP_DXX_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.size5/interp-dxx.compute.c" +#define INTERP_DXY_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.size5/interp-dxy.compute.c" +#define INTERP_DYY_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.size5/interp-dyy.compute.c" + +#define COEFF_I_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.order4.smooth0/coeff-I.compute.c" +#define COEFF_DX_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.order4.smooth0/coeff-dx.compute.c" +#define COEFF_DY_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.order4.smooth0/coeff-dy.compute.c" +#define COEFF_DXX_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.order4.smooth0/coeff-dxx.compute.c" +#define COEFF_DXY_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.order4.smooth0/coeff-dxy.compute.c" +#define COEFF_DYY_COMPUTE_FILE_NAME "2d.coeffs/2d.cube.order4.smooth0/coeff-dyy.compute.c" + +/* actual code */ +#include "template.c" diff --git a/src/GeneralizedPolynomial-Uniform/2d.log b/src/GeneralizedPolynomial-Uniform/2d.log new file mode 100644 index 0000000..d98cc6d --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.log @@ -0,0 +1,4246 @@ + |\^/| Maple 7 (IBM INTEL LINUX) +._|\| |/|_. Copyright (c) 2001 by Waterloo Maple Inc. + \ MAPLE / All rights reserved. Maple is a registered trademark of + <____ ____> Waterloo Maple Inc. + | Type ? for help. +# util.maple -- misc utility routines +# $Id: util.maple,v 1.1 2001/06/29 09:36:22 jthorn Exp $ +> +# +# C_str - codegen[C](), but returning its result as a Maple string +# fix_rationals - convert numbers to RATIONAL() calls +# nonmatching_names - find names in a list which *don't* have a specified prefix +# sprint_numeric_list - convert a numeric list to a valid C identifier suffix +# print_name_list_dcl - print a C declaration for a list of names +# +# hypercube_points - compute all (integer) points in an N-dimensional hypercube +# +# ftruncate - truncate a file to zero length +# +> +################################################################################ +################################################################################ +################################################################################ +> +# +# This function is a wrapper around codegen[C]() which returns the +# genenerated code explictly as a Maple string. +# +# Arguments: +# expr = (in) The expression for which code is to be generated. +# ... = (in) Any further arguments are taken as options to be passed +# to codegen[C]() +# +# Results: +# The function returns a maple string of C code. +# +> C_str := +> proc(expr::algebraic) +> local tempname, str, temp; +> +# name of temp file +# FIXME: should use process number to ensure uniqueness +> tempname := "/tmp/C_str.tmp.c"; +> +# truncate temp file to zero length +> fopen(tempname, WRITE); +> fclose(tempname); +> +# generate the code +> codegen[C](args, filename=tempname); +> +# read the code back in +> str := ""; +> while true +> do +> temp := readline(tempname); +> if (temp = 0) +> then break; +> end if; +> str := cat(str, temp); +> end do; +> fclose(tempname); +> +# strip off the leading " t0 = " +> return op(2,sscanf(str, "%s = %[^;];")); +> end proc; +C_str := proc(expr::algebraic) +local tempname, str, temp; + tempname := "/tmp/C_str.tmp.c"; + fopen(tempname, WRITE); + fclose(tempname); + codegen[C](args, filename = tempname); + str := ""; + do + temp := readline(tempname); + if temp = 0 then break end if; + str := cat(str, temp) + end do; + fclose(tempname); + return op(2, sscanf(str, "%s = %[^;];")) +end proc + +> +################################################################################ +> +# +# This function converts all {integer, rational} subexpressions of its +# input except integer exponents and -1 factors in products, into function +# calls +# RATIONAL(num,den) +# This is useful in conjunction with the C() library function, since +# +# C( (1/3) * foo * bar ) +# t0 = foo*bar/3; +# +# generates a (slow) division (and runs the risk of mixed-mode-arithmetic +# problems), while +# +# C((1.0/3.0) * foo * bar); +# t0 = 0.3333333333*foo*bar; +# +# suffers from roundoff error. With this function, +# +# fix_rationals((1/3) * foo * bar); +# RATIONAL(1,3) foo bar +# C(%); +# t0 = RATIONAL(1.0,3.0)*foo*bar; +# +# which a C preprocessor macro can easily convert to the desired +# +# t0 = (1.0/3.0)*foo*bar; +# +# Additionally, this function can be told to leave certain types of +# subexpressions unconverged. For example, +# fix_rationals(expr, type, specfunc(integer, DATA)); +# will leave all subexpressions of the form DATA(integer arguments) +# unconverted. +# +# Arguments: +# expr = (in) The expression to be converted. +# inert_fn = (optional in) +# If specified, this argument should be a Boolean procedure +# or the name of a Boolean procedure. This procedure should +# take one or more argument, and return true if and only if +# the first argument should *not* be converted, i.e. if we +# should leave this expression unchanged. See the last +# example above. +# ... = (optional in) +# Any further arguments are passed as additional arguments to +# the inert_fn procedure. +# +> fix_rationals := +> proc( +> expr::{ +> algebraic, name = algebraic, +> list({algebraic, name = algebraic}), +> set ({algebraic, name = algebraic}) +> }, +> inert_fn::{name, procedure} +> ) +> local nn, k, +> base, power, fbase, fpower, +> fn, fn_args_list, +> num, den, mult; +> +# do we want to convert this expression? +> if ((nargs >= 2) and inert_fn(expr, args[3..nargs])) +> then return expr; +> end if; +> +# recurse over lists and sets +> if (type(expr, {list,set})) +> then return map(fix_rationals, expr, args[2..nargs]); +> end if; +> +# recurse over equation right hand sides +> if (type(expr, name = algebraic)) +> then return ( lhs(expr) = fix_rationals(rhs(expr), args[2..nargs]) ); +> end if; +> +# recurse over functions other than RATIONAL() +> if (type(expr, function)) +> then +> fn := op(0, expr); +> if (fn <> 'RATIONAL') +> then +> fn_args_list := [op(expr)]; +> fn_args_list := map(fix_rationals, fn_args_list, args[2..nargs]); +> fn; return '%'( op(fn_args_list) ); +> end if; +> end if; +> +> nn := nops(expr); +> +# recurse over sums +> if (type(expr, `+`)) +> then return sum('fix_rationals(op(k,expr), args[2..nargs])', 'k'=1..nn); +> end if; +> +# recurse over products +# ... leaving leading -1 factors intact, i.e. not converted to RATIONAL(-1,1) +> if (type(expr, `*`)) +> then +> if (op(1, expr) = -1) +> then return -1*fix_rationals(remove(type, expr, 'identical(-1)'), +> args[2..nargs]); +> else return product('fix_rationals(op(k,expr), args[2..nargs])', +> 'k'=1..nn); +> end if; +> end if; +> +# recurse over powers +# ... leaving integer exponents intact +> if (type(expr, `^`)) +> then +> base := op(1, expr); +> power := op(2, expr); +> +> fbase := fix_rationals(base, args[2..nargs]); +> if (type(power, integer)) +> then fpower := power; +> else fpower := fix_rationals(power, args[2..nargs]); +> end if; +> return fbase ^ fpower; +> end if; +> +# fix integers and fractions +> if (type(expr, integer)) +> then return 'RATIONAL'(expr, 1); +> end if; +> if (type(expr, fraction)) +> then +> num := op(1, expr); +> den := op(2, expr); +> +> return 'RATIONAL'(num, den); +> end if; +> +# turn Maple floating-point into integer fraction, then recursively fix that +> if (type(expr, float)) +> then +> mult := op(1, expr); +> power := op(2, expr); +> return fix_rationals(mult * 10^power, args[2..nargs]); +> end if; +> +# identity op on names +> if (type(expr, name)) +> then return expr; +> end if; +> +# unknown type +> error "%0", +> "unknown type for expr!", +> " whattype(expr) = ", whattype(expr), +> " expr = ", expr; +> end proc; +fix_rationals := proc(expr::{algebraic, name = algebraic, +list({algebraic, name = algebraic}), set({algebraic, name = algebraic})}, +inert_fn::{procedure, name}) +local nn, k, base, power, fbase, fpower, fn, fn_args_list, num, den, mult; + if 2 <= nargs and inert_fn(expr, args[3 .. nargs]) then return expr + end if; + if type(expr, {set, list}) then + return map(fix_rationals, expr, args[2 .. nargs]) + end if; + if type(expr, name = algebraic) then + return lhs(expr) = fix_rationals(rhs(expr), args[2 .. nargs]) + end if; + if type(expr, function) then + fn := op(0, expr); + if fn <> 'RATIONAL' then + fn_args_list := [op(expr)]; + fn_args_list := + map(fix_rationals, fn_args_list, args[2 .. nargs]); + fn; + return '%'(op(fn_args_list)) + end if + end if; + nn := nops(expr); + if type(expr, `+`) then return + sum('fix_rationals(op(k, expr), args[2 .. nargs])', 'k' = 1 .. nn) + end if; + if type(expr, `*`) then + if op(1, expr) = -1 then return -fix_rationals( + remove(type, expr, 'identical(-1)'), args[2 .. nargs]) + else return product('fix_rationals(op(k, expr), args[2 .. nargs])', + 'k' = 1 .. nn) + end if + end if; + if type(expr, `^`) then + base := op(1, expr); + power := op(2, expr); + fbase := fix_rationals(base, args[2 .. nargs]); + if type(power, integer) then fpower := power + else fpower := fix_rationals(power, args[2 .. nargs]) + end if; + return fbase^fpower + end if; + if type(expr, integer) then return 'RATIONAL'(expr, 1) end if; + if type(expr, fraction) then + num := op(1, expr); den := op(2, expr); return 'RATIONAL'(num, den) + end if; + if type(expr, float) then + mult := op(1, expr); + power := op(2, expr); + return fix_rationals(mult*10^power, args[2 .. nargs]) + end if; + if type(expr, name) then return expr end if; + error "%0", "unknown type for expr!", " whattype(expr) = ", + whattype(expr), " expr = ", expr +end proc + +> +################################################################################ +> +# +# This function finds names in a list which *don't* have a specified prefix. +# +# Arguments: +# name_list = A list of the names. +# prefix = The prefix we want to filter out. +# +# Results: +# This function returns the subset list of names which don't have the +# specified prefix. +# +> nonmatching_names := +> proc( name_list::list({name,string}), prefix::{name,string} ) +> +> select( proc(n) +> evalb(not StringTools[IsPrefix](prefix,n)); +> end proc +> , +> name_list +> ); +> end proc; +nonmatching_names := proc( +name_list::list({name, string}), prefix::{name, string}) + select(proc(n) evalb(not StringTools[IsPrefix](prefix, n)) end proc, + name_list) +end proc + +> +################################################################################ +> +# +# This function converts a numeric list to a string which is a valid +# C identifier suffix: elements are separated by "_", decimal points are +# replaced by "x", and all nonzero values have explicit +/- signs, which +# are replaced by "p"/"m". +# +# For example, [0,-3.5,+4] --> "0_m3x5_p4". +# +> sprint_numeric_list := +> proc(nlist::list(numeric)) +> +# generate preliminary string, eg "+0_-3.5_+4" +> map2(sprintf, "%+a", nlist); +> ListTools[Join](%, "_"); +> cat(op(%)); +> +# fixup bad characters +> StringTools[SubstituteAll](%, "+0", "0"); +> StringTools[CharacterMap](".+-", "xpm", %); +> +> return %; +> end proc; +sprint_numeric_list := proc(nlist::list(numeric)) + map2(sprintf, "%+a", nlist); + ListTools[Join](%, "_"); + cat(op(%)); + StringTools[SubstituteAll](%, "+0", "0"); + StringTools[CharacterMap](".+-", "xpm", %); + return % +end proc + +> +################################################################################ +> +# +# This function prints a C declaration for a list of names. +# +# Argument: +# name_list = A list of the names. +# name_type = The C type of the names, eg. "double". +# file_name = The file name to write the declaration to. This is +# truncated before writing. +# +> print_name_list_dcl := +> proc( name_list::list({name,string}), +> name_type::string, +> file_name::string ) +> local blanks, separator_string; +> +> ftruncate(file_name); +> +# a sequence of blanks with the same length as name_type +> seq(" ", i=1..length(name_type)); +> +# string to separate names +> separator_string := cat(",\n", %, " "); +> +> map(convert, name_list, string); +> ListTools[Join](%, separator_string); +> cat(op(%)); +> +> fprintf(file_name, +> "%s %s;\n", +> name_type, %); +> NULL; +> end proc; +print_name_list_dcl := proc( +name_list::list({name, string}), name_type::string, file_name::string) +local blanks, separator_string; + ftruncate(file_name); + seq(" ", i = 1 .. length(name_type)); + separator_string := cat(",\n", %, " "); + map(convert, name_list, string); + ListTools[Join](%, separator_string); + cat(op(%)); + fprintf(file_name, "%s %s;\n", name_type, %); + NULL +end proc + +> +################################################################################ +################################################################################ +################################################################################ +> +# +# This function computes a list of all the (integer) points in an +# N-dimensional hypercube, in lexicographic order. The present +# implementation requires N <= 4. +# +# Arguments: +# cmin,cmax = N-element lists of cube minimum/maximum coordinates. +# +# Results: +# The function returns a set of d-element lists giving the coordinates. +# For example, +# hypercube([0,0], [2,1] +# returns +# { [0,0], [0,1], [1,0], [1,1], [2,0], [2,1] } +> hypercube_points := +> proc(cmin::list(integer), cmax::list(integer)) +> local N, i,j,k,l; +> +> N := nops(cmin); +> if (nops(cmax) <> N) +> then error +> "must have same number of dimensions for min and max coordinates!"; +> fi; +> +> if (N = 1) +> then return [seq([i], i=cmin[1]..cmax[1])]; +> elif (N = 2) +> then return [ +> seq( +> seq([i,j], j=cmin[2]..cmax[2]), +> i=cmin[1]..cmax[1]) +> ]; +> elif (N = 3) +> then return [ +> seq( +> seq( +> seq([i,j,k], k=cmin[3]..cmax[3]), +> j=cmin[2]..cmax[2] ), +> i=cmin[1]..cmax[1]) +> ]; +> elif (N = 4) +> then return [ +> seq( +> seq( +> seq( +> seq([i,j,k,l], l=cmin[4]..cmax[4]), +> k=cmin[3]..cmax[3] ), +> j=cmin[2]..cmax[2]), +> i=cmin[1]..cmax[1]) +> ]; +> else +> error "implementation restriction: must have N <= 4, got %1!", N; +> fi; +> end proc; +hypercube_points := proc(cmin::list(integer), cmax::list(integer)) +local N, i, j, k, l; + N := nops(cmin); + if nops(cmax) <> N then error + "must have same number of dimensions for min and max coordinates!" + end if; + if N = 1 then return [seq([i], i = cmin[1] .. cmax[1])] + elif N = 2 then return + [seq(seq([i, j], j = cmin[2] .. cmax[2]), i = cmin[1] .. cmax[1])] + elif N = 3 then return [seq( + seq(seq([i, j, k], k = cmin[3] .. cmax[3]), j = cmin[2] .. cmax[2]) + , i = cmin[1] .. cmax[1])] + elif N = 4 then return [seq(seq(seq( + seq([i, j, k, l], l = cmin[4] .. cmax[4]), k = cmin[3] .. cmax[3]), + j = cmin[2] .. cmax[2]), i = cmin[1] .. cmax[1])] + else error "implementation restriction: must have N <= 4, got %1!", N + end if +end proc + +> +################################################################################ +################################################################################ +################################################################################ +> +# +# This function truncates a file to 0 length if it exists, or creates +# it at that length if it doesn't exist. +# +# Arguments: +# file_name = (in) The name of the file. +# +> ftruncate := +> proc(file_name::string) +> fopen(file_name, 'WRITE'); +> fclose(%); +> NULL; +> end proc; +ftruncate := + + proc(file_name::string) fopen(file_name, 'WRITE'); fclose(%); NULL end proc + +# GInterpolate.maple -- compute generalized interpolation formulas/coefficients +# $Id$ +> +# +# <<<representation of numbers, data values, etc>>> +# polynomial_interpolant - compute polynomial interpolant +# coeff_as_lc_of_data - coefficients of ... (linear combination of data) +# +# print_coeff__lc_of_data - print C code to compute coefficients +# print_data_var_assign - print C code to assign data-value variables +# print_interp_cmpt__lc_of_data - print C code for computation of interpolant +# +# coeff_name - name of coefficient of data at a given [m] coordinate +# data_var_name - name of variable storing data value at a given [m] coordinate +# +> +################################################################################ +> +# +# ***** representation of numbers, data values, etc ***** +# +# We use RATIONAL(p.0,q.0) to denote the rational number p/q. +# +# We use DATA(...) to represent the data values being interpolated at a +# specified [m] coordinate, where the arguments are the [m] coordinates. +# +# We use COEFF(...) to represent the molecule coefficient at a specified +# [m] coordinate, where the arguments are the [m] coordinates. +# +# For example, the usual 1-D centered 2nd order 1st derivative molecule +# would be written +# RATIONAL(-1.0,2.0)*DATA(-1) + RATIONA(1.0,2.0)*DATA(1) +# and its coefficients as +# COEFF(-1) = RATIONAL(-1.0,2.0) +# COEFF(1) = RATIONAL(1.0,2.0) +# +> +################################################################################ +################################################################################ +################################################################################ +> +# +# This function computes a polynomial interpolant in any number of dimensions. +# +# Arguments: +# fn = The interpolation function. This should be a procedure in the +# coordinates, having the coefficients as global variables. For +# example, +# proc(x,y) c00 + c10*x + c01*y end proc +# coeff_list = A set of the interpolation coefficients (coefficients in +# the interpolation function), for example [c00, c10, c01]. +# coord_list = A list of the coordinates (independent variables in the +# interpolation function), for example [x,y]. +# posn_list = A list of positions (each a list of numeric values) where the +# interpolant is to use data, for example hypercube([0,0], [1,1]). +# Any positions may be used; if they're redundant (as in the +# example) the least-squares interpolant is computed. +# +# Results: +# This function returns the interpolating polynomial, in the form of +# an algebraic expression in the coordinates and the data values. +# +> polynomial_interpolant := +> proc( +> fn::procedure, coeff_list::list(name), +> coord_list::list(name), posn_list::list(list(numeric)) +> ) +> local posn, data_eqns, coeff_eqns; +> +# coefficients of interpolating polynomial +> data_eqns := { seq( fn(op(posn))='DATA'(op(posn)) , posn=posn_list ) }; +> coeff_eqns := linalg[leastsqrs](data_eqns, {op(coeff_list)}); +> if (has(coeff_eqns, '_t')) +> then error "interpolation coefficients aren't uniquely determined!"; +> end if; +> +# interpolant as a polynomial in the coordinates +> return subs(coeff_eqns, eval(fn))(op(coord_list)); +> end proc; +polynomial_interpolant := proc(fn::procedure, coeff_list::list(name), +coord_list::list(name), posn_list::list(list(numeric))) +local posn, data_eqns, coeff_eqns; + data_eqns := {seq(fn(op(posn)) = 'DATA'(op(posn)), posn = posn_list)}; + coeff_eqns := linalg[leastsqrs](data_eqns, {op(coeff_list)}); + if has(coeff_eqns, '_t') then + error "interpolation coefficients aren't uniquely determined!" + end if; + return subs(coeff_eqns, eval(fn))(op(coord_list)) +end proc + +> +################################################################################ +> +# +# This function takes as input an interpolating polynomial, expresses +# it as a linear combination of the data values, and returns the coefficeints +# of that form. +# +# Arguments: +# interpolant = The interpolating polynomial (an algebraic expression +# in the coordinates and the data values). +# posn_list = The same list of positions as was used to compute the +# interpolating polynomial. +# +# Results: +# This function returns the coefficients, as a list of equations of the +# form COEFF(...) = value , where each value is a polynomial in the +# coordinates. The order of the list matches that of posn_list. +# +> coeff_as_lc_of_data := +> proc( +> interpolant::algebraic, +> posn_list::list(list(numeric)) +> ) +> local data_list, interpolant_as_lc_of_data; +> +# interpolant as a linear combination of the data values +> data_list := [ seq( 'DATA'(op(posn)) , posn=posn_list ) ]; +> interpolant_as_lc_of_data := collect(interpolant, data_list); +> +# coefficients of the data values in the linear combination +> return map( +> proc(posn::list(numeric)) +> coeff(interpolant_as_lc_of_data, DATA(op(posn))); +> 'COEFF'(op(posn)) = %; +> end proc +> , +> posn_list +> ); +> end proc; +coeff_as_lc_of_data := proc( +interpolant::algebraic, posn_list::list(list(numeric))) +local data_list, interpolant_as_lc_of_data; + data_list := [seq('DATA'(op(posn)), posn = posn_list)]; + interpolant_as_lc_of_data := collect(interpolant, data_list); + return map(proc(posn::list(numeric)) + coeff(interpolant_as_lc_of_data, DATA(op(posn))); + 'COEFF'(op(posn)) = % + end proc, posn_list) +end proc + +> +################################################################################ +################################################################################ +################################################################################ +> +# +# This function prints C expressions for the coefficients of an +# interpolating polynomial. (The polynomial is expressed as linear +# combinations of the data values with coefficients which are +# RATIONAL(p,q) calls.) +# +# Arguments: +# coeff_list = A list of the coefficients, as returned from +# coeff_as_lc_of_data() . +# coeff_name_prefix = A prefix string for the coefficient names. +# temp_name_type = The C type to be used for Maple-introduced temporary +# names, eg. "double". +# file_name = The file name to write the coefficients to. This is +# truncated before writing. +# +> print_coeff__lc_of_data := +> proc( coeff_list::list(specfunc(numeric,COEFF) = algebraic), +> coeff_name_prefix::string, +> temp_name_type::string, +> file_name::string ) +> global `codegen/C/function/informed`; +> local coeff_list2, cmpt_list, temp_name_list; +> +# convert LHS of each equation from a COEFF() call (eg COEFF(-1,+1)) +# to a Maple/C variable name (eg coeff_I_m1_p1) +> coeff_list2 := map( +> proc(coeff_eqn::specfunc(numeric,COEFF) = algebraic) +> local posn; +> posn := [op(lhs(coeff_eqn))]; +> coeff_name(posn,coeff_name_prefix); +> convert(%, name); # codegen[C] wants LHS +> # to be an actual Maple *name* +> % = fix_rationals(rhs(coeff_eqn)); +> end proc +> , +> coeff_list +> ); +> +# +# generate the C code +# +> +# tell codegen[C] not to warn about unknown RATIONAL() and DATA() "fn calls" +# via undocumented :( global table +> `codegen/C/function/informed`['RATIONAL'] := true; +> `codegen/C/function/informed`['DATA'] := true; +> +> ftruncate(file_name); +> +# optimized computation sequence for all the coefficients +# (may use local variables t0,t1,t2,...) +> cmpt_list := [codegen[optimize](coeff_list2, tryhard)]; +> +# list of the t0,t1,t2,... local variables +> temp_name_list := nonmatching_names(map(lhs,cmpt_list), coeff_name_prefix); +> +# declare the t0,t1,t2,... local variables (if there are any) +> if (nops(temp_name_list) > 0) +> then print_name_list_dcl(%, temp_name_type, file_name); +> fi; +> +# now print the optimized computation sequence +> codegen[C](cmpt_list, filename=file_name); +> +> NULL; +> end proc; +print_coeff__lc_of_data := proc( +coeff_list::list(specfunc(numeric, COEFF) = algebraic), +coeff_name_prefix::string, temp_name_type::string, file_name::string) +local coeff_list2, cmpt_list, temp_name_list; +global `codegen/C/function/informed`; + coeff_list2 := map(proc( + coeff_eqn::(specfunc(numeric, COEFF) = algebraic)) + local posn; + posn := [op(lhs(coeff_eqn))]; + coeff_name(posn, coeff_name_prefix); + convert(%, name); + % = fix_rationals(rhs(coeff_eqn)) + end proc, coeff_list); + `codegen/C/function/informed`['RATIONAL'] := true; + `codegen/C/function/informed`['DATA'] := true; + ftruncate(file_name); + cmpt_list := [codegen[optimize](coeff_list2, tryhard)]; + temp_name_list := + nonmatching_names(map(lhs, cmpt_list), coeff_name_prefix); + if 0 < nops(temp_name_list) then + print_name_list_dcl(%, temp_name_type, file_name) + end if; + codegen[C](cmpt_list, filename = file_name); + NULL +end proc + +> +################################################################################ +> +# +# This function prints a sequence of C expression to assign the data-value +# variables. +# +# Arguments: +# posn_list = The same list of positions as was used to compute the +# interpolating polynomial. +# data_var_name_prefix = A prefix string for the data variable names. +# file_name = The file name to write the coefficients to. This is +# truncated before writing. +# +> print_data_var_assign := +> proc( +> posn_list::list(list(numeric)), +> data_var_name_prefix::string, +> file_name::string +> ) +> +> ftruncate(file_name); +> +> map( +> proc(posn::list(numeric)) +> fprintf(file_name, +> "%s = %a;\n", +> data_var_name(posn,data_var_name_prefix), +> DATA(op(posn))); +> end proc +> , +> posn_list +> ); +> +> NULL; +> end proc; +print_data_var_assign := proc(posn_list::list(list(numeric)), +data_var_name_prefix::string, file_name::string) + ftruncate(file_name); + map(proc(posn::list(numeric)) + fprintf(file_name, "%s = %a;\n", + data_var_name(posn, data_var_name_prefix), DATA(op(posn))) + end proc, posn_list); + NULL +end proc + +> +################################################################################ +> +# +# This function prints a C expression to compute the interpolant, +# using the coefficients computed by print_coeff__lc_of_data() +# (i.e. expressing the interpolant as a linear combination of the +# data values). +# +# Arguments: +# posn_list = The same list of positions as was used to compute the +# interpolating polynomial. +# result_var_name = The (string) name of the variable to which the +# result is to be assigned. +# coeff_name_prefix = A prefix string for the coefficient names. +# data_var_name_prefix = A prefix string for the data variable names. +# file_name = The file name to write the coefficients to. This is +# truncated before writing. +# +> print_interp_cmpt__lc_of_data := +> proc( +> posn_list::list(list(numeric)), +> result_var_name::string, +> coeff_name_prefix::string, +> data_var_name_prefix::string, +> file_name::string +> ) +> +> ftruncate(file_name); +> fprintf(file_name, "%s =\n", result_var_name); +> +# list of "coeff*data_var" terms +> map( +> proc(posn::list(numeric)) +> sprintf("%s*%s", +> coeff_name(posn,coeff_name_prefix), +> data_var_name(posn,data_var_name_prefix)); +> end proc +> , +> posn_list +> ); +> +> ListTools[Join](%, "\n\t+ "); +> cat(op(%)); +> +> fprintf(file_name, "\t%s;\n", %); +> NULL; +> end proc; +print_interp_cmpt__lc_of_data := proc(posn_list::list(list(numeric)), +result_var_name::string, coeff_name_prefix::string, +data_var_name_prefix::string, file_name::string) + ftruncate(file_name); + fprintf(file_name, "%s =\n", result_var_name); + map(proc(posn::list(numeric)) + sprintf("%s*%s", coeff_name(posn, coeff_name_prefix), + data_var_name(posn, data_var_name_prefix)) + end proc, posn_list); + ListTools[Join](%, "\n\t+ "); + cat(op(%)); + fprintf(file_name, "\t%s;\n", %); + NULL +end proc + +> +################################################################################ +################################################################################ +################################################################################ +> +# +# This function computes the name of the coefficient of the data at a +# given [m] position, i.e. it encapsulates our naming convention for this. +# +# Arguments: +# posn = (in) The [m] coordinates. +# name_prefix = A prefix string for the coefficient name. +# +# Results: +# The function returns the coefficient, as a Maple string. +# +> coeff_name := +> proc(posn::list(numeric), name_prefix::string) +> cat(name_prefix, sprint_numeric_list(posn)); +> end proc; +coeff_name := proc(posn::list(numeric), name_prefix::string) + cat(name_prefix, sprint_numeric_list(posn)) +end proc + +> +################################################################################ +> +# +# This function computes the name of the variable in which the C code +# will store the input data at a given [m] position, i.e. it encapsulates +# our naming convention for this. +# +# Arguments: +# posn = (in) The [m] coordinates. +# name_prefix = A prefix string for the variable name. +# +# Results: +# The function returns the variable name, as a Maple string. +# +> data_var_name := +> proc(posn::list(numeric), name_prefix::string) +> cat(name_prefix, sprint_numeric_list(posn)); +> end proc; +data_var_name := proc(posn::list(numeric), name_prefix::string) + cat(name_prefix, sprint_numeric_list(posn)) +end proc + +# Maple code to compute 2-D Lagrange interpolation coefficients (orders 1-4) +# $Id$ +> +################################################################################ +> +# +# interpolating functions +# +> +> fn_2d_order1 := +> proc(x,y) +> + c01*y +> + c00 + c10*x +> end proc; + fn_2d_order1 := proc(x, y) c01*y + c00 + c10*x end proc + +> +> fn_2d_order2 := +> proc(x,y) +> + c02*y^2 +> + c01*y + c11*x*y +> + c00 + c10*x + c20*x^2 +> end proc; +fn_2d_order2 := + + proc(x, y) c02*y^2 + c01*y + c11*x*y + c00 + c10*x + c20*x^2 end proc + +> +> fn_2d_order3 := +> proc(x,y) +> + c03*y^3 +> + c02*y^2 + c12*x*y^2 +> + c01*y + c11*x*y + c21*x^2*y +> + c00 + c10*x + c20*x^2 + c30*x^3 +> end proc; +fn_2d_order3 := proc(x, y) + c03*y^3 + c02*y^2 + c12*x*y^2 + c01*y + c11*x*y + c21*x^2*y + c00 + + c10*x + c20*x^2 + c30*x^3 +end proc + +> +> fn_2d_order4 := +> proc(x,y) +> + c04*y^4 +> + c03*y^3 + c13*x*y^3 +> + c02*y^2 + c12*x*y^2 + c22*x^2*y^2 +> + c01*y + c11*x*y + c21*x^2*y + c31*x^3*y +> + c00 + c10*x + c20*x^2 + c30*x^3 + c40*x^4 +> end; +fn_2d_order4 := proc(x, y) + c04*y^4 + c03*y^3 + c13*x*y^3 + c02*y^2 + c12*x*y^2 + c22*x^2*y^2 + + c01*y + c11*x*y + c21*x^2*y + c31*x^3*y + c00 + c10*x + c20*x^2 + + c30*x^3 + c40*x^4 +end proc + +> +######################################## +> +# +# coefficients in interpolating functions +# +> +> coeff_list_2d_order1 := [ +> c01, +> c00, c10 +> ]; + coeff_list_2d_order1 := [c01, c00, c10] + +> coeff_list_2d_order2 := [ +> c02, +> c01, c11, +> c00, c10, c20 +> ]; + coeff_list_2d_order2 := [c02, c01, c11, c00, c10, c20] + +> coeff_list_2d_order3 := [ +> c03, +> c02, c12, +> c01, c11, c21, +> c00, c10, c20, c30 +> ]; + coeff_list_2d_order3 := [c03, c02, c12, c01, c11, c21, c00, c10, c20, c30] + +> coeff_list_2d_order4 := [ +> c04, +> c03, c13, +> c02, c12, c22, +> c01, c11, c21, c31, +> c00, c10, c20, c30, c40 +> ]; +coeff_list_2d_order4 := + + [c04, c03, c13, c02, c12, c22, c01, c11, c21, c31, c00, c10, c20, c30, c40] + +> +######################################## +> +# +# coordinates and interpolation points +# +> +> coord_list_2d := [x,y]; + coord_list_2d := [x, y] + +> +# generate points in Fortran ordering +> posn_list_2d_size2 := map(ListTools[Reverse], hypercube_points([ 0, 0], [+1,+1])); + posn_list_2d_size2 := [[0, 0], [1, 0], [0, 1], [1, 1]] + +> posn_list_2d_size3 := map(ListTools[Reverse], hypercube_points([-1,-1], [+1,+1])); +posn_list_2d_size3 := [[-1, -1], [0, -1], [1, -1], [-1, 0], [0, 0], [1, 0], + + [-1, 1], [0, 1], [1, 1]] + +> posn_list_2d_size4 := map(ListTools[Reverse], hypercube_points([-1,-1], [+2,+2])); +posn_list_2d_size4 := [[-1, -1], [0, -1], [1, -1], [2, -1], [-1, 0], [0, 0], + + [1, 0], [2, 0], [-1, 1], [0, 1], [1, 1], [2, 1], [-1, 2], [0, 2], [1, 2], + + [2, 2]] + +> posn_list_2d_size5 := map(ListTools[Reverse], hypercube_points([-2,-2], [+2,+2])); +posn_list_2d_size5 := [[-2, -2], [-1, -2], [0, -2], [1, -2], [2, -2], [-2, -1], + + [-1, -1], [0, -1], [1, -1], [2, -1], [-2, 0], [-1, 0], [0, 0], [1, 0], + + [2, 0], [-2, 1], [-1, 1], [0, 1], [1, 1], [2, 1], [-2, 2], [-1, 2], [0, 2], + + [1, 2], [2, 2]] + +> +################################################################################ +> +# +# generic stuff for 2d, cube, size=2 +# +> +> data_var_list_2d_size2 := map(data_var_name, posn_list_2d_size2, "data_"); + data_var_list_2d_size2 := ["data_0_0", "data_p1_0", "data_0_p1", "data_p1_p1"] + +> +> print_name_list_dcl(data_var_list_2d_size2, +> "fp", "2d.coeffs/2d.cube.size2/data-var.dcl.c"); +> print_data_var_assign(posn_list_2d_size2, +> "data_", "2d.coeffs/2d.cube.size2/data-var.assign.c"); +> +> print_name_list_dcl(map(coeff_name, posn_list_2d_size2, "coeff_I_"), +> "fp", "2d.coeffs/2d.cube.size2/coeff-I.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_2d_size2, "coeff_dx_"), +> "fp", "2d.coeffs/2d.cube.size2/coeff-dx.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_2d_size2, "coeff_dy_"), +> "fp", "2d.coeffs/2d.cube.size2/coeff-dy.dcl.c"); +> +> print_interp_cmpt__lc_of_data(posn_list_2d_size2, +> "result", "coeff_I_", "data_", +> "2d.coeffs/2d.cube.size2/interp-I.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_2d_size2, +> "result", "coeff_dx_", "data_", +> "2d.coeffs/2d.cube.size2/interp-dx.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_2d_size2, +> "result", "coeff_dy_", "data_", +> "2d.coeffs/2d.cube.size2/interp-dy.compute.c"); +> +######################################## +> +# +# generic stuff for 2d, cube, size=3 +# +> +> data_var_list_2d_size3 := map(data_var_name, posn_list_2d_size3, "data_"); +data_var_list_2d_size3 := ["data_m1_m1", "data_0_m1", "data_p1_m1", "data_m1_0", + + "data_0_0", "data_p1_0", "data_m1_p1", "data_0_p1", "data_p1_p1"] + +> +> print_name_list_dcl(data_var_list_2d_size3, +> "fp", "2d.coeffs/2d.cube.size3/data-var.dcl.c"); +> print_data_var_assign(posn_list_2d_size3, +> "data_", "2d.coeffs/2d.cube.size3/data-var.assign.c"); +> +> print_name_list_dcl(map(coeff_name, posn_list_2d_size3, "coeff_I_"), +> "fp", "2d.coeffs/2d.cube.size3/coeff-I.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_2d_size3, "coeff_dx_"), +> "fp", "2d.coeffs/2d.cube.size3/coeff-dx.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_2d_size3, "coeff_dy_"), +> "fp", "2d.coeffs/2d.cube.size3/coeff-dy.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_2d_size3, "coeff_dxx_"), +> "fp", "2d.coeffs/2d.cube.size3/coeff-dxx.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_2d_size3, "coeff_dxy_"), +> "fp", "2d.coeffs/2d.cube.size3/coeff-dxy.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_2d_size3, "coeff_dyy_"), +> "fp", "2d.coeffs/2d.cube.size3/coeff-dyy.dcl.c"); +> +> print_interp_cmpt__lc_of_data(posn_list_2d_size3, +> "result", "coeff_I_", "data_", +> "2d.coeffs/2d.cube.size3/interp-I.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_2d_size3, +> "result", "coeff_dx_", "data_", +> "2d.coeffs/2d.cube.size3/interp-dx.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_2d_size3, +> "result", "coeff_dy_", "data_", +> "2d.coeffs/2d.cube.size3/interp-dy.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_2d_size3, +> "result", "coeff_dxx_", "data_", +> "2d.coeffs/2d.cube.size3/interp-dxx.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_2d_size3, +> "result", "coeff_dxy_", "data_", +> "2d.coeffs/2d.cube.size3/interp-dxy.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_2d_size3, +> "result", "coeff_dyy_", "data_", +> "2d.coeffs/2d.cube.size3/interp-dyy.compute.c"); +> +######################################## +> +# +# generic stuff for 2d, cube, size=4 +# +> +> data_var_list_2d_size4 := map(data_var_name, posn_list_2d_size4, "data_"); +data_var_list_2d_size4 := ["data_m1_m1", "data_0_m1", "data_p1_m1", + + "data_p2_m1", "data_m1_0", "data_0_0", "data_p1_0", "data_p2_0", + + "data_m1_p1", "data_0_p1", "data_p1_p1", "data_p2_p1", "data_m1_p2", + + "data_0_p2", "data_p1_p2", "data_p2_p2"] + +> +> print_name_list_dcl(data_var_list_2d_size4, +> "fp", "2d.coeffs/2d.cube.size4/data-var.dcl.c"); +> print_data_var_assign(posn_list_2d_size4, +> "data_", "2d.coeffs/2d.cube.size4/data-var.assign.c"); +> +> print_name_list_dcl(map(coeff_name, posn_list_2d_size4, "coeff_I_"), +> "fp", "2d.coeffs/2d.cube.size4/coeff-I.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_2d_size4, "coeff_dx_"), +> "fp", "2d.coeffs/2d.cube.size4/coeff-dx.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_2d_size4, "coeff_dy_"), +> "fp", "2d.coeffs/2d.cube.size4/coeff-dy.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_2d_size4, "coeff_dxx_"), +> "fp", "2d.coeffs/2d.cube.size4/coeff-dxx.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_2d_size4, "coeff_dxy_"), +> "fp", "2d.coeffs/2d.cube.size4/coeff-dxy.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_2d_size4, "coeff_dyy_"), +> "fp", "2d.coeffs/2d.cube.size4/coeff-dyy.dcl.c"); +> +> print_interp_cmpt__lc_of_data(posn_list_2d_size4, +> "result", "coeff_I_", "data_", +> "2d.coeffs/2d.cube.size4/interp-I.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_2d_size4, +> "result", "coeff_dx_", "data_", +> "2d.coeffs/2d.cube.size4/interp-dx.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_2d_size4, +> "result", "coeff_dy_", "data_", +> "2d.coeffs/2d.cube.size4/interp-dy.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_2d_size4, +> "result", "coeff_dxx_", "data_", +> "2d.coeffs/2d.cube.size4/interp-dxx.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_2d_size4, +> "result", "coeff_dxy_", "data_", +> "2d.coeffs/2d.cube.size4/interp-dxy.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_2d_size4, +> "result", "coeff_dyy_", "data_", +> "2d.coeffs/2d.cube.size4/interp-dyy.compute.c"); +> +######################################## +> +# +# generic stuff for 2d, cube, size=5 +# +> +> data_var_list_2d_size5 := map(data_var_name, posn_list_2d_size5, "data_"); +data_var_list_2d_size5 := ["data_m2_m2", "data_m1_m2", "data_0_m2", + + "data_p1_m2", "data_p2_m2", "data_m2_m1", "data_m1_m1", "data_0_m1", + + "data_p1_m1", "data_p2_m1", "data_m2_0", "data_m1_0", "data_0_0", + + "data_p1_0", "data_p2_0", "data_m2_p1", "data_m1_p1", "data_0_p1", + + "data_p1_p1", "data_p2_p1", "data_m2_p2", "data_m1_p2", "data_0_p2", + + "data_p1_p2", "data_p2_p2"] + +> +> print_name_list_dcl(data_var_list_2d_size5, +> "fp", "2d.coeffs/2d.cube.size5/data-var.dcl.c"); +> print_data_var_assign(posn_list_2d_size5, +> "data_", "2d.coeffs/2d.cube.size5/data-var.assign.c"); +> +> print_name_list_dcl(map(coeff_name, posn_list_2d_size5, "coeff_I_"), +> "fp", "2d.coeffs/2d.cube.size5/coeff-I.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_2d_size5, "coeff_dx_"), +> "fp", "2d.coeffs/2d.cube.size5/coeff-dx.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_2d_size5, "coeff_dy_"), +> "fp", "2d.coeffs/2d.cube.size5/coeff-dy.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_2d_size5, "coeff_dxx_"), +> "fp", "2d.coeffs/2d.cube.size5/coeff-dxx.dcl.c"); +bytes used=1000040, alloc=917336, time=0.09 +> print_name_list_dcl(map(coeff_name, posn_list_2d_size5, "coeff_dxy_"), +> "fp", "2d.coeffs/2d.cube.size5/coeff-dxy.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_2d_size5, "coeff_dyy_"), +> "fp", "2d.coeffs/2d.cube.size5/coeff-dyy.dcl.c"); +> +> print_interp_cmpt__lc_of_data(posn_list_2d_size5, +> "result", "coeff_I_", "data_", +> "2d.coeffs/2d.cube.size5/interp-I.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_2d_size5, +> "result", "coeff_dx_", "data_", +> "2d.coeffs/2d.cube.size5/interp-dx.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_2d_size5, +> "result", "coeff_dy_", "data_", +> "2d.coeffs/2d.cube.size5/interp-dy.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_2d_size5, +> "result", "coeff_dxx_", "data_", +> "2d.coeffs/2d.cube.size5/interp-dxx.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_2d_size5, +> "result", "coeff_dxy_", "data_", +> "2d.coeffs/2d.cube.size5/interp-dxy.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_2d_size5, +> "result", "coeff_dyy_", "data_", +> "2d.coeffs/2d.cube.size5/interp-dyy.compute.c"); +> +> +################################################################################ +> +# +# 2d, cube, order=1, smoothing=0 (size=2) +# +> +# interpolating polynomial +> interp_2d_cube_order1_smooth0 +> := polynomial_interpolant(fn_2d_order1, coeff_list_2d_order1, +> coord_list_2d, posn_list_2d_size2); +interp_2d_cube_order1_smooth0 := + + (1/2 DATA(1, 1) - 1/2 DATA(0, 0) - 1/2 DATA(1, 0) + 1/2 DATA(0, 1)) y + + - 1/4 DATA(1, 1) + 3/4 DATA(0, 0) + 1/4 DATA(1, 0) + 1/4 DATA(0, 1) + + + (1/2 DATA(1, 1) - 1/2 DATA(0, 0) + 1/2 DATA(1, 0) - 1/2 DATA(0, 1)) x + +> +# I +> coeff_as_lc_of_data(%, posn_list_2d_size2); +[COEFF(0, 0) = 3/4 - 1/2 y - 1/2 x, COEFF(1, 0) = 1/4 - 1/2 y + 1/2 x, + + COEFF(0, 1) = - 1/2 x + 1/4 + 1/2 y, COEFF(1, 1) = 1/2 y - 1/4 + 1/2 x] + +> print_coeff__lc_of_data(%, "coeff_I_", "fp", +> "2d.coeffs/2d.cube.order1.smooth0/coeff-I.compute.c"); +bytes used=2002236, alloc=1179432, time=0.17 +> +# d/dx +> simplify( diff(interp_2d_cube_order1_smooth0,x) ); + 1/2 DATA(1, 1) - 1/2 DATA(0, 0) + 1/2 DATA(1, 0) - 1/2 DATA(0, 1) + +> coeff_as_lc_of_data(%, posn_list_2d_size2); + [COEFF(0, 0) = -1/2, COEFF(1, 0) = 1/2, COEFF(0, 1) = -1/2, COEFF(1, 1) = 1/2] + +> print_coeff__lc_of_data(%, "coeff_dx_", "fp", +> "2d.coeffs/2d.cube.order1.smooth0/coeff-dx.compute.c"); +> +# d/dy +> simplify( diff(interp_2d_cube_order1_smooth0,y) ); + 1/2 DATA(1, 1) - 1/2 DATA(0, 0) - 1/2 DATA(1, 0) + 1/2 DATA(0, 1) + +> coeff_as_lc_of_data(%, posn_list_2d_size2); + [COEFF(0, 0) = -1/2, COEFF(1, 0) = -1/2, COEFF(0, 1) = 1/2, COEFF(1, 1) = 1/2] + +> print_coeff__lc_of_data(%, "coeff_dy_", "fp", +> "2d.coeffs/2d.cube.order1.smooth0/coeff-dy.compute.c"); +> +######################################## +> +# +# 2d, cube, order=2, smoothing=0 (size=3) +# +> +# interpolating polynomial +> interp_2d_cube_order2_smooth0 +> := polynomial_interpolant(fn_2d_order2, coeff_list_2d_order2, +> coord_list_2d, posn_list_2d_size3); +bytes used=3002576, alloc=1441528, time=0.27 +interp_2d_cube_order2_smooth0 := (1/6 DATA(1, 1) + 1/6 DATA(0, -1) + + - 1/3 DATA(0, 0) + 1/6 DATA(0, 1) - 1/3 DATA(1, 0) + 1/6 DATA(-1, -1) + + 2 + + 1/6 DATA(1, -1) - 1/3 DATA(-1, 0) + 1/6 DATA(-1, 1)) y + ( + + - 1/6 DATA(1, -1) + 1/6 DATA(1, 1) - 1/6 DATA(-1, -1) - 1/6 DATA(0, -1) + + + 1/6 DATA(-1, 1) + 1/6 DATA(0, 1)) y + + + (- 1/4 DATA(-1, 1) + 1/4 DATA(1, 1) + 1/4 DATA(-1, -1) - 1/4 DATA(1, -1)) x + + y - 1/9 DATA(1, 1) + 2/9 DATA(0, -1) + 5/9 DATA(0, 0) + 2/9 DATA(0, 1) + + + 2/9 DATA(1, 0) - 1/9 DATA(-1, -1) - 1/9 DATA(1, -1) + 2/9 DATA(-1, 0) + + - 1/9 DATA(-1, 1) + (- 1/6 DATA(-1, 0) + 1/6 DATA(1, 1) - 1/6 DATA(-1, -1) + + + 1/6 DATA(1, -1) + 1/6 DATA(1, 0) - 1/6 DATA(-1, 1)) x + (1/6 DATA(1, 1) + + - 1/3 DATA(0, -1) - 1/3 DATA(0, 0) - 1/3 DATA(0, 1) + 1/6 DATA(1, 0) + + + 1/6 DATA(-1, -1) + 1/6 DATA(1, -1) + 1/6 DATA(-1, 0) + 1/6 DATA(-1, 1)) + + 2 + x + +> +# I +> coeff_as_lc_of_data(%, posn_list_2d_size3); + 2 2 +[COEFF(-1, -1) = - 1/6 y + 1/6 y - 1/9 - 1/6 x + 1/4 x y + 1/6 x , + + 2 2 + COEFF(0, -1) = - 1/6 y + 2/9 + 1/6 y - 1/3 x , + + 2 2 + COEFF(1, -1) = 1/6 y - 1/6 y + 1/6 x - 1/9 - 1/4 x y + 1/6 x , + + 2 2 + COEFF(-1, 0) = - 1/3 y - 1/6 x + 1/6 x + 2/9, + + 2 2 + COEFF(0, 0) = - 1/3 y - 1/3 x + 5/9, + + 2 2 + COEFF(1, 0) = 2/9 - 1/3 y + 1/6 x + 1/6 x, + + 2 2 + COEFF(-1, 1) = 1/6 y - 1/6 x + 1/6 x - 1/9 - 1/4 x y + 1/6 y, + + 2 2 + COEFF(0, 1) = 1/6 y - 1/3 x + 2/9 + 1/6 y, + + 2 2 + COEFF(1, 1) = 1/6 y + 1/4 x y + 1/6 x - 1/9 + 1/6 y + 1/6 x] + +> print_coeff__lc_of_data(%, "coeff_I_", "fp", +> "2d.coeffs/2d.cube.order2.smooth0/coeff-I.compute.c"); +bytes used=4002748, alloc=1769148, time=0.34 +bytes used=5002944, alloc=1834672, time=0.41 +> +# d/dx +> simplify( diff(interp_2d_cube_order2_smooth0,x) ); +- 1/4 y DATA(-1, 1) + 1/4 y DATA(1, 1) + 1/4 y DATA(-1, -1) - 1/4 y DATA(1, -1) + + - 1/6 DATA(-1, 0) + 1/6 DATA(1, 1) - 1/6 DATA(-1, -1) + 1/6 DATA(1, -1) + + + 1/6 DATA(1, 0) - 1/6 DATA(-1, 1) + 1/3 x DATA(1, 1) - 2/3 x DATA(0, -1) + + - 2/3 x DATA(0, 0) - 2/3 x DATA(0, 1) + 1/3 x DATA(1, 0) + + + 1/3 x DATA(-1, -1) + 1/3 x DATA(1, -1) + 1/3 x DATA(-1, 0) + + + 1/3 x DATA(-1, 1) + +> coeff_as_lc_of_data(%, posn_list_2d_size3); +[COEFF(-1, -1) = 1/4 y + 1/3 x - 1/6, COEFF(0, -1) = - 2/3 x, + + COEFF(1, -1) = - 1/4 y + 1/6 + 1/3 x, COEFF(-1, 0) = - 1/6 + 1/3 x, + + COEFF(0, 0) = - 2/3 x, COEFF(1, 0) = 1/3 x + 1/6, + + COEFF(-1, 1) = - 1/4 y - 1/6 + 1/3 x, COEFF(0, 1) = - 2/3 x, + + COEFF(1, 1) = 1/4 y + 1/3 x + 1/6] + +> print_coeff__lc_of_data(%, "coeff_dx_", "fp", +> "2d.coeffs/2d.cube.order2.smooth0/coeff-dx.compute.c"); +> +# d/dy +> simplify( diff(interp_2d_cube_order2_smooth0,y) ); +bytes used=6003572, alloc=1834672, time=0.50 +1/3 y DATA(1, 1) + 1/3 y DATA(0, -1) - 2/3 y DATA(0, 0) + 1/3 y DATA(0, 1) + + - 2/3 y DATA(1, 0) + 1/3 y DATA(-1, -1) + 1/3 y DATA(1, -1) + + - 2/3 y DATA(-1, 0) + 1/3 y DATA(-1, 1) - 1/6 DATA(1, -1) + 1/6 DATA(1, 1) + + - 1/6 DATA(-1, -1) - 1/6 DATA(0, -1) + 1/6 DATA(-1, 1) + 1/6 DATA(0, 1) + + - 1/4 x DATA(-1, 1) + 1/4 x DATA(1, 1) + 1/4 x DATA(-1, -1) + + - 1/4 x DATA(1, -1) + +> coeff_as_lc_of_data(%, posn_list_2d_size3); +[COEFF(-1, -1) = - 1/6 + 1/4 x + 1/3 y, COEFF(0, -1) = - 1/6 + 1/3 y, + + COEFF(1, -1) = - 1/4 x + 1/3 y - 1/6, COEFF(-1, 0) = - 2/3 y, + + COEFF(0, 0) = - 2/3 y, COEFF(1, 0) = - 2/3 y, + + COEFF(-1, 1) = 1/6 + 1/3 y - 1/4 x, COEFF(0, 1) = 1/6 + 1/3 y, + + COEFF(1, 1) = 1/3 y + 1/6 + 1/4 x] + +> print_coeff__lc_of_data(%, "coeff_dy_", "fp", +> "2d.coeffs/2d.cube.order2.smooth0/coeff-dy.compute.c"); +> +# d^2/dx^2 +> simplify( diff(interp_2d_cube_order2_smooth0,x,x) ); +1/3 DATA(1, 1) - 2/3 DATA(0, -1) - 2/3 DATA(0, 0) - 2/3 DATA(0, 1) + + + 1/3 DATA(1, 0) + 1/3 DATA(-1, -1) + 1/3 DATA(1, -1) + 1/3 DATA(-1, 0) + + + 1/3 DATA(-1, 1) + +> coeff_as_lc_of_data(%, posn_list_2d_size3); +[COEFF(-1, -1) = 1/3, COEFF(0, -1) = -2/3, COEFF(1, -1) = 1/3, + + COEFF(-1, 0) = 1/3, COEFF(0, 0) = -2/3, COEFF(1, 0) = 1/3, + + COEFF(-1, 1) = 1/3, COEFF(0, 1) = -2/3, COEFF(1, 1) = 1/3] + +> print_coeff__lc_of_data(%, "coeff_dxx_", "fp", +> "2d.coeffs/2d.cube.order2.smooth0/coeff-dxx.compute.c"); +bytes used=7003768, alloc=1834672, time=0.59 +> +# d^2/dxdy +> simplify( diff(interp_2d_cube_order2_smooth0,x,y) ); + - 1/4 DATA(-1, 1) + 1/4 DATA(1, 1) + 1/4 DATA(-1, -1) - 1/4 DATA(1, -1) + +> coeff_as_lc_of_data(%, posn_list_2d_size3); +[COEFF(-1, -1) = 1/4, COEFF(0, -1) = 0, COEFF(1, -1) = -1/4, COEFF(-1, 0) = 0, + + COEFF(0, 0) = 0, COEFF(1, 0) = 0, COEFF(-1, 1) = -1/4, COEFF(0, 1) = 0, + + COEFF(1, 1) = 1/4] + +> print_coeff__lc_of_data(%, "coeff_dxy_", "fp", +> "2d.coeffs/2d.cube.order2.smooth0/coeff-dxy.compute.c"); +> +# d^2/dy^2 +> simplify( diff(interp_2d_cube_order2_smooth0,y,y) ); +1/3 DATA(1, 1) + 1/3 DATA(0, -1) - 2/3 DATA(0, 0) + 1/3 DATA(0, 1) + + - 2/3 DATA(1, 0) + 1/3 DATA(-1, -1) + 1/3 DATA(1, -1) - 2/3 DATA(-1, 0) + + + 1/3 DATA(-1, 1) + +> coeff_as_lc_of_data(%, posn_list_2d_size3); +[COEFF(-1, -1) = 1/3, COEFF(0, -1) = 1/3, COEFF(1, -1) = 1/3, + + COEFF(-1, 0) = -2/3, COEFF(0, 0) = -2/3, COEFF(1, 0) = -2/3, + + COEFF(-1, 1) = 1/3, COEFF(0, 1) = 1/3, COEFF(1, 1) = 1/3] + +> print_coeff__lc_of_data(%, "coeff_dyy_", "fp", +> "2d.coeffs/2d.cube.order2.smooth0/coeff-dyy.compute.c"); +> +######################################## +> +# +# 2d, cube, order=3, smoothing=0 (size=4) +# +> +# interpolating polynomial +> interp_2d_cube_order3_smooth0 +> := polynomial_interpolant(fn_2d_order3, coeff_list_2d_order3, +> coord_list_2d, posn_list_2d_size4); +bytes used=8004052, alloc=1834672, time=0.69 +bytes used=9004712, alloc=1900196, time=0.74 +bytes used=10004884, alloc=1900196, time=0.81 +bytes used=11005104, alloc=1965720, time=0.87 +bytes used=12006440, alloc=1965720, time=0.93 +bytes used=13006792, alloc=1965720, time=0.99 +interp_2d_cube_order3_smooth0 := (1/40 DATA(0, 0) - 1/40 DATA(1, 0) + + + 1/40 DATA(0, 1) - 1/40 DATA(1, 1) - 3/40 DATA(-1, -1) - 1/40 DATA(0, -1) + + + 1/40 DATA(1, -1) + 3/40 DATA(-1, 0) + 3/40 DATA(-1, 1) - 3/40 DATA(2, 1) + + - 3/40 DATA(-1, 2) - 1/40 DATA(0, 2) + 1/40 DATA(1, 2) + 3/40 DATA(2, 2) + + 2 / + + 3/40 DATA(2, -1) - 3/40 DATA(2, 0)) x y + |- 1/25 DATA(0, 0) + \ + + - 1/100 DATA(1, 0) - 1/100 DATA(0, 1) + 3/50 DATA(1, 1) + + 13 + + 6/25 DATA(-1, -1) - 1/50 DATA(0, -1) - --- DATA(1, -1) + 100 + + 13 + - 1/50 DATA(-1, 0) - --- DATA(-1, 1) + 2/25 DATA(2, 1) - 9/100 DATA(-1, 2) + 100 + + + 7/100 DATA(0, 2) + 2/25 DATA(1, 2) - 3/50 DATA(2, 2) - 9/100 DATA(2, -1) + + \ + + 7/100 DATA(2, 0)| x y + (1/40 DATA(0, 0) + 1/40 DATA(1, 0) + / + + - 1/40 DATA(0, 1) - 1/40 DATA(1, 1) - 3/40 DATA(-1, -1) + 3/40 DATA(0, -1) + + + 3/40 DATA(1, -1) - 1/40 DATA(-1, 0) + 1/40 DATA(-1, 1) + 1/40 DATA(2, 1) + + + 3/40 DATA(-1, 2) - 3/40 DATA(0, 2) - 3/40 DATA(1, 2) + 3/40 DATA(2, 2) + + 2 93 + - 3/40 DATA(2, -1) - 1/40 DATA(2, 0)) x y + --- DATA(0, 0) + 200 + + 37 37 17 23 + + --- DATA(1, 0) + --- DATA(0, 1) - --- DATA(1, 1) - --- DATA(-1, -1) + 200 200 200 200 + + 11 11 + + -- DATA(0, -1) - 1/50 DATA(1, -1) + -- DATA(-1, 0) - 1/50 DATA(-1, 1) + 50 50 + + 17 13 + - 2/25 DATA(2, 1) - --- DATA(-1, 2) + --- DATA(0, 2) - 2/25 DATA(1, 2) + 200 100 + + 17 13 + + 7/200 DATA(2, 2) - --- DATA(2, -1) + --- DATA(2, 0) + (1/8 DATA(0, 0) + 200 100 + + + 1/8 DATA(1, 0) - 1/8 DATA(0, 1) - 1/8 DATA(1, 1) - 1/24 DATA(-1, -1) + + - 1/24 DATA(0, -1) - 1/24 DATA(1, -1) + 1/8 DATA(-1, 0) - 1/8 DATA(-1, 1) + + - 1/8 DATA(2, 1) + 1/24 DATA(-1, 2) + 1/24 DATA(0, 2) + 1/24 DATA(1, 2) + + 3 / + + 1/24 DATA(2, 2) - 1/24 DATA(2, -1) + 1/8 DATA(2, 0)) y + | + \ + + 21 19 11 + - -- DATA(0, 0) - -- DATA(1, 0) + 9/80 DATA(0, 1) + -- DATA(1, 1) + 80 80 80 + + 23 13 11 + - -- DATA(-1, 0) + -- DATA(-1, -1) + -- DATA(0, -1) + 9/80 DATA(1, -1) + 80 80 80 + + 13 + + 1/80 DATA(0, 2) + 7/80 DATA(-1, 1) + -- DATA(2, 1) + 3/80 DATA(-1, 2) + 80 + + 17 \ 2 + - -- DATA(2, 0) - 1/80 DATA(1, 2) - 3/80 DATA(2, 2) + 7/80 DATA(2, -1)| y + 80 / + + / 57 63 117 103 + + |- --- DATA(0, 0) - --- DATA(1, 0) + --- DATA(0, 1) + --- DATA(1, 1) + \ 400 400 400 400 + + 109 223 157 + - ---- DATA(-1, -1) - ---- DATA(0, -1) - ---- DATA(1, -1) + 1200 1200 1200 + + 31 111 69 131 + - --- DATA(-1, 0) + --- DATA(-1, 1) + --- DATA(2, 1) - ---- DATA(-1, 2) + 400 400 400 1200 + + 43 37 149 89 + + ---- DATA(0, 2) + ---- DATA(1, 2) - ---- DATA(2, 2) + ---- DATA(2, -1) + 1200 1200 1200 1200 + + 49 \ / 57 117 63 + - --- DATA(2, 0)| y + |- --- DATA(0, 0) + --- DATA(1, 0) - --- DATA(0, 1) + 400 / \ 400 400 400 + + 103 223 109 31 + + --- DATA(1, 1) - ---- DATA(-1, 0) - ---- DATA(-1, -1) - --- DATA(0, -1) + 400 1200 1200 400 + + 111 49 157 37 + + --- DATA(1, -1) - --- DATA(0, 2) - ---- DATA(-1, 1) + ---- DATA(2, 1) + 400 400 1200 1200 + + 89 43 69 149 + + ---- DATA(-1, 2) + ---- DATA(2, 0) + --- DATA(1, 2) - ---- DATA(2, 2) + 1200 1200 400 1200 + + 131 \ / 21 19 + - ---- DATA(2, -1)| x + |- -- DATA(0, 0) + 9/80 DATA(1, 0) - -- DATA(0, 1) + 1200 / \ 80 80 + + 11 11 13 23 + + -- DATA(1, 1) + -- DATA(-1, 0) + -- DATA(-1, -1) - -- DATA(0, -1) + 80 80 80 80 + + 17 + + 7/80 DATA(1, -1) - -- DATA(0, 2) + 9/80 DATA(-1, 1) - 1/80 DATA(2, 1) + 80 + + 13 + + 7/80 DATA(-1, 2) + 1/80 DATA(2, 0) + -- DATA(1, 2) - 3/80 DATA(2, 2) + 80 + + \ 2 + + 3/80 DATA(2, -1)| x + (1/8 DATA(0, 0) - 1/8 DATA(1, 0) + 1/8 DATA(0, 1) + / + + - 1/8 DATA(1, 1) - 1/24 DATA(-1, 0) - 1/24 DATA(-1, -1) + 1/8 DATA(0, -1) + + - 1/8 DATA(1, -1) + 1/8 DATA(0, 2) - 1/24 DATA(-1, 1) + 1/24 DATA(2, 1) + + - 1/24 DATA(-1, 2) + 1/24 DATA(2, 0) - 1/8 DATA(1, 2) + 1/24 DATA(2, 2) + + 3 + + 1/24 DATA(2, -1)) x + +> +# I +> coeff_as_lc_of_data(%, posn_list_2d_size4); +bytes used=14007112, alloc=1965720, time=1.04 + 2 23 2 13 2 3 +[COEFF(-1, -1) = - 3/40 x y - --- - 3/40 x y + -- x + 6/25 x y - 1/24 x + 200 80 + + 13 2 109 3 109 2 11 2 + + -- y - ---- y - 1/24 y - ---- x, COEFF(0, -1) = - 1/40 x y + -- y + 80 1200 1200 80 + + 223 3 2 3 11 23 2 31 + - ---- y - 1/24 y + 3/40 x y + 1/8 x + -- - 1/50 x y - -- x - --- x, + 1200 50 80 400 + + 3 2 2 2 2 + COEFF(1, -1) = - 1/50 - 1/8 x + 9/80 y + 7/80 x + 1/40 x y + 3/40 x y + + 3 111 157 13 17 + - 1/24 y + --- x - ---- y - --- x y, COEFF(2, -1) = - --- - 9/100 x y + 400 1200 100 200 + + 2 2 3 131 2 2 3 + - 3/40 x y + 3/80 x + 1/24 x - ---- x + 3/40 x y + 7/80 y - 1/24 y + 1200 + + 89 23 2 3 31 2 + + ---- y, COEFF(-1, 0) = - 1/50 x y - -- y - 1/24 x - --- y + 3/40 x y + 1200 80 400 + + 3 11 2 2 223 11 21 2 93 + + 1/8 y + -- x - 1/40 x y - ---- x + --, COEFF(0, 0) = - -- x + --- + 80 1200 50 80 200 + + 3 3 21 2 2 57 2 + + 1/8 x - 1/25 x y + 1/8 y - -- y + 1/40 x y - --- y + 1/40 x y + 80 400 + + 57 2 3 3 37 19 2 117 + - --- x, COEFF(1, 0) = 1/40 x y - 1/8 x + 1/8 y + --- - -- y + --- x + 400 200 80 400 + + 2 63 2 2 + - 1/40 x y - --- y - 1/100 x y + 9/80 x , COEFF(2, 0) = - 1/40 x y + 400 + + 3 3 13 43 2 2 17 2 49 + + 1/24 x + 1/8 y + --- + ---- x + 1/80 x - 3/40 x y - -- y - --- y + 100 1200 80 400 + + 2 157 13 3 + + 7/100 x y, COEFF(-1, 1) = 3/40 x y - 1/50 - ---- x - --- x y - 1/24 x + 1200 100 + + 3 2 2 2 111 + - 1/8 y + 1/40 x y + 9/80 x + 7/80 y + --- y, COEFF(0, 1) = + 400 + + 2 37 3 3 117 2 63 + - 1/40 x y + --- - 1/8 y + 1/8 x + --- y + 1/40 x y - 1/100 x y - --- x + 200 400 400 + + 19 2 2 3 2 17 2 + - -- x + 9/80 y , COEFF(1, 1) = - 1/8 x - 1/40 x y - --- - 1/40 x y + 80 200 + + 103 11 2 3 11 2 103 + + --- x + 3/50 x y + -- x - 1/8 y + -- y + --- y, COEFF(2, 1) = - 2/25 + 400 80 80 400 + + 3 69 3 37 2 2 + + 1/24 x + --- y - 1/8 y + ---- x + 1/40 x y - 3/40 x y + 2/25 x y + 400 1200 + + 13 2 2 2 2 + + -- y - 1/80 x , COEFF(-1, 2) = - 3/40 x y - 9/100 x y + 3/40 x y + 80 + + 89 3 2 17 2 3 131 + + ---- x + 1/24 y + 3/80 y - --- + 7/80 x - 1/24 x - ---- y, + 1200 200 1200 + + 2 3 13 43 17 2 + COEFF(0, 2) = - 3/40 x y + 1/24 y + 7/100 x y + --- + ---- y - -- x + 100 1200 80 + + 49 3 2 2 37 + - --- x + 1/8 x - 1/40 x y + 1/80 y , COEFF(1, 2) = ---- y - 2/25 + 400 1200 + + 3 2 2 3 2 13 2 + + 1/24 y + 2/25 x y - 3/40 x y + 1/40 x y - 1/8 x - 1/80 y + -- x + 80 + + 69 2 2 3 2 2 + + --- x, COEFF(2, 2) = 3/40 x y + 3/40 x y + 1/24 x - 3/80 y - 3/80 x + 400 + + 149 3 149 + - ---- x + 7/200 + 1/24 y - 3/50 x y - ---- y] + 1200 1200 + +> print_coeff__lc_of_data(%, "coeff_I_", "fp", +> "2d.coeffs/2d.cube.order3.smooth0/coeff-I.compute.c"); +bytes used=15007264, alloc=1965720, time=1.10 +bytes used=16016240, alloc=1965720, time=1.19 +bytes used=17016640, alloc=1965720, time=1.27 +bytes used=18016852, alloc=1965720, time=1.35 +bytes used=19017112, alloc=2096768, time=1.43 +bytes used=20017312, alloc=2096768, time=1.51 +bytes used=21017520, alloc=2096768, time=1.60 +bytes used=22017796, alloc=2096768, time=1.69 +> +# d/dx +> simplify( diff(interp_2d_cube_order3_smooth0,x) ); +bytes used=23018572, alloc=2096768, time=1.77 +bytes used=24020728, alloc=2096768, time=1.83 + 2 2 2 +- 1/8 x DATA(-1, 2) + 3/8 x DATA(0, 1) - 1/8 x DATA(-1, 0) + + 2 2 2 + - 1/8 x DATA(-1, -1) - 3/8 x DATA(1, -1) + 3/8 x DATA(0, 2) + + 2 2 2 + - 3/8 x DATA(1, 1) - 1/40 y DATA(1, 0) + 1/40 y DATA(0, 1) + + + 1/20 x y DATA(0, 0) - 1/20 x y DATA(0, 1) - 1/20 x y DATA(1, 1) + + - 3/20 x y DATA(-1, -1) + 3/20 x y DATA(0, -1) + 1/20 x y DATA(1, 0) + + 2 2 2 + - 1/40 y DATA(0, 2) + 1/40 y DATA(1, 2) + 3/40 y DATA(2, 2) + + 2 2 2 + - 1/40 y DATA(1, 1) - 1/40 y DATA(0, -1) + 1/40 y DATA(1, -1) + + 2 2 2 + + 3/40 y DATA(-1, 0) + 3/40 y DATA(-1, 1) - 3/40 y DATA(-1, -1) + + 2 13 + + 1/40 y DATA(0, 0) + 6/25 y DATA(-1, -1) - --- y DATA(1, -1) + 100 + + 13 + - 1/50 y DATA(-1, 0) - --- y DATA(-1, 1) + 2/25 y DATA(2, 1) + 100 + + 2 2 + - 9/100 y DATA(-1, 2) - 3/40 y DATA(2, 0) - 3/40 y DATA(2, 1) + + 2 11 + - 3/40 y DATA(-1, 2) - 1/50 y DATA(0, -1) + -- x DATA(-1, 0) + 40 + + + 2/25 y DATA(1, 2) - 3/50 y DATA(2, 2) - 9/100 y DATA(2, -1) + + 2 + + 7/100 y DATA(2, 0) + 7/100 y DATA(0, 2) + 3/40 y DATA(2, -1) + + - 1/25 y DATA(0, 0) - 1/100 y DATA(1, 0) - 1/100 y DATA(0, 1) + + 13 + + 3/50 y DATA(1, 1) + -- x DATA(-1, -1) - 1/20 x y DATA(2, 0) + 40 + + + 3/20 x y DATA(1, -1) - 1/20 x y DATA(-1, 0) + 1/20 x y DATA(-1, 1) + + + 1/20 x y DATA(2, 1) - 3/20 x y DATA(0, 2) - 3/40 x DATA(2, 2) + + 2 + + 3/40 x DATA(2, -1) + 3/8 x DATA(0, 0) + 1/40 x DATA(2, 0) + + 21 19 11 + - -- x DATA(0, 0) + 9/40 x DATA(1, 0) - -- x DATA(0, 1) + -- x DATA(1, 1) + 40 40 40 + + 2 2 + + 3/20 x y DATA(-1, 2) - 1/8 x DATA(-1, 1) + 1/8 x DATA(2, 1) + + 2 23 + + 3/8 x DATA(0, -1) - -- x DATA(0, -1) + 7/40 x DATA(1, -1) + 40 + + 17 + - -- x DATA(0, 2) + 9/40 x DATA(-1, 1) - 1/40 x DATA(2, 1) + 40 + + 13 2 + + 7/40 x DATA(-1, 2) + -- x DATA(1, 2) + 1/8 x DATA(2, 0) + 40 + + 2 2 2 + - 3/8 x DATA(1, 2) + 1/8 x DATA(2, 2) + 1/8 x DATA(2, -1) + + 2 + - 3/8 x DATA(1, 0) - 3/20 x y DATA(1, 2) + 3/20 x y DATA(2, 2) + + 57 117 63 + - 3/20 x y DATA(2, -1) - --- DATA(0, 0) + --- DATA(1, 0) - --- DATA(0, 1) + 400 400 400 + + 103 109 31 111 + + --- DATA(1, 1) - ---- DATA(-1, -1) - --- DATA(0, -1) + --- DATA(1, -1) + 400 1200 400 400 + + 223 157 37 89 + - ---- DATA(-1, 0) - ---- DATA(-1, 1) + ---- DATA(2, 1) + ---- DATA(-1, 2) + 1200 1200 1200 1200 + + 49 69 149 131 + - --- DATA(0, 2) + --- DATA(1, 2) - ---- DATA(2, 2) - ---- DATA(2, -1) + 400 400 1200 1200 + + 43 + + ---- DATA(2, 0) + 1200 + +> coeff_as_lc_of_data(%, posn_list_2d_size4); + 109 2 2 13 +[COEFF(-1, -1) = - ---- - 3/40 y + 6/25 y - 1/8 x + -- x - 3/20 x y, + 1200 40 + + 2 31 23 2 + COEFF(0, -1) = - 1/40 y - --- - 1/50 y + 3/20 x y - -- x + 3/8 x , + 400 40 + + 13 2 111 2 + COEFF(1, -1) = - --- y + 3/20 x y - 3/8 x + --- + 7/40 x + 1/40 y , + 100 400 + + 2 2 131 + COEFF(2, -1) = - 3/20 x y + 3/40 x + 1/8 x + 3/40 y - ---- - 9/100 y, + 1200 + + 223 2 2 11 + COEFF(-1, 0) = - 1/50 y - 1/20 x y - ---- + 3/40 y - 1/8 x + -- x, + 1200 40 + + 2 57 21 2 + COEFF(0, 0) = - 1/25 y + 3/8 x - --- - -- x + 1/20 x y + 1/40 y , + 400 40 + + 117 2 2 + COEFF(1, 0) = --- + 9/40 x + 1/20 x y - 1/100 y - 3/8 x - 1/40 y , + 400 + + 2 2 43 + COEFF(2, 0) = - 3/40 y - 1/20 x y + 1/8 x + 7/100 y + 1/40 x + ----, + 1200 + + 157 13 2 2 + COEFF(-1, 1) = - ---- - --- y + 9/40 x - 1/8 x + 1/20 x y + 3/40 y , + 1200 100 + + 2 19 63 2 + COEFF(0, 1) = 1/40 y - 1/20 x y - -- x - 1/100 y - --- + 3/8 x , + 40 400 + + 103 2 2 11 + COEFF(1, 1) = --- - 1/40 y - 1/20 x y - 3/8 x + -- x + 3/50 y, + 400 40 + + 2 37 2 + COEFF(2, 1) = - 3/40 y + 2/25 y + ---- + 1/20 x y + 1/8 x - 1/40 x, + 1200 + + 89 2 2 + COEFF(-1, 2) = ---- + 3/20 x y - 3/40 y - 1/8 x - 9/100 y + 7/40 x, + 1200 + + 2 49 17 2 + COEFF(0, 2) = 3/8 x - --- - -- x - 1/40 y + 7/100 y - 3/20 x y, + 400 40 + + 69 2 2 13 + COEFF(1, 2) = - 3/20 x y + --- - 3/8 x + 2/25 y + 1/40 y + -- x, + 400 40 + + 2 149 2 + COEFF(2, 2) = 3/40 y + 3/20 x y - ---- - 3/50 y + 1/8 x - 3/40 x] + 1200 + +> print_coeff__lc_of_data(%, "coeff_dx_", "fp", +> "2d.coeffs/2d.cube.order3.smooth0/coeff-dx.compute.c"); +bytes used=25020932, alloc=2096768, time=1.91 +bytes used=26021388, alloc=2096768, time=1.99 +bytes used=27021592, alloc=2096768, time=2.09 +bytes used=28021964, alloc=2096768, time=2.20 +> +# d/dy +> simplify( diff(interp_2d_cube_order3_smooth0,y) ); +bytes used=29022180, alloc=2096768, time=2.29 + 2 2 2 +3/40 x DATA(-1, 2) - 1/40 x DATA(0, 1) - 1/40 x DATA(-1, 0) + + 2 2 2 + - 3/40 x DATA(-1, -1) + 3/40 x DATA(1, -1) - 3/40 x DATA(0, 2) + + 2 2 2 + - 1/40 x DATA(1, 1) + 3/8 y DATA(1, 0) - 3/8 y DATA(0, 1) + + + 1/20 x y DATA(0, 0) + 1/20 x y DATA(0, 1) - 1/20 x y DATA(1, 1) + + - 3/20 x y DATA(-1, -1) - 1/20 x y DATA(0, -1) - 1/20 x y DATA(1, 0) + + 2 2 2 + + 1/8 y DATA(0, 2) + 1/8 y DATA(1, 2) + 1/8 y DATA(2, 2) + + 2 2 2 + - 3/8 y DATA(1, 1) - 1/8 y DATA(0, -1) - 1/8 y DATA(1, -1) + + 2 2 2 + + 3/8 y DATA(-1, 0) - 3/8 y DATA(-1, 1) - 1/8 y DATA(-1, -1) + + 2 13 + + 3/8 y DATA(0, 0) + -- y DATA(-1, -1) + 9/40 y DATA(1, -1) + 40 + + 23 13 + - -- y DATA(-1, 0) + 7/40 y DATA(-1, 1) + -- y DATA(2, 1) + 40 40 + + 2 2 + + 3/40 y DATA(-1, 2) + 3/8 y DATA(2, 0) - 3/8 y DATA(2, 1) + + 2 11 + + 1/8 y DATA(-1, 2) + -- y DATA(0, -1) - 1/50 x DATA(-1, 0) + 40 + + - 1/40 y DATA(1, 2) - 3/40 y DATA(2, 2) + 7/40 y DATA(2, -1) + + 17 2 + - -- y DATA(2, 0) + 1/40 y DATA(0, 2) - 1/8 y DATA(2, -1) + 40 + + 21 19 11 + - -- y DATA(0, 0) - -- y DATA(1, 0) + 9/40 y DATA(0, 1) + -- y DATA(1, 1) + 40 40 40 + + + 6/25 x DATA(-1, -1) - 3/20 x y DATA(2, 0) + 1/20 x y DATA(1, -1) + + + 3/20 x y DATA(-1, 0) + 3/20 x y DATA(-1, 1) - 3/20 x y DATA(2, 1) + + - 1/20 x y DATA(0, 2) - 3/50 x DATA(2, 2) - 9/100 x DATA(2, -1) + + 2 + + 1/40 x DATA(0, 0) + 7/100 x DATA(2, 0) - 1/25 x DATA(0, 0) + + - 1/100 x DATA(1, 0) - 1/100 x DATA(0, 1) + 3/50 x DATA(1, 1) + + 2 2 + - 3/20 x y DATA(-1, 2) + 1/40 x DATA(-1, 1) + 1/40 x DATA(2, 1) + + 2 13 + + 3/40 x DATA(0, -1) - 1/50 x DATA(0, -1) - --- x DATA(1, -1) + 100 + + 13 + + 7/100 x DATA(0, 2) - --- x DATA(-1, 1) + 2/25 x DATA(2, 1) + 100 + + 2 + - 9/100 x DATA(-1, 2) + 2/25 x DATA(1, 2) - 1/40 x DATA(2, 0) + + 2 2 2 + - 3/40 x DATA(1, 2) + 3/40 x DATA(2, 2) - 3/40 x DATA(2, -1) + + 2 + + 1/40 x DATA(1, 0) + 1/20 x y DATA(1, 2) + 3/20 x y DATA(2, 2) + + 57 63 117 + + 3/20 x y DATA(2, -1) - --- DATA(0, 0) - --- DATA(1, 0) + --- DATA(0, 1) + 400 400 400 + + 103 109 223 157 + + --- DATA(1, 1) - ---- DATA(-1, -1) - ---- DATA(0, -1) - ---- DATA(1, -1) + 400 1200 1200 1200 + + 31 111 69 131 + - --- DATA(-1, 0) + --- DATA(-1, 1) + --- DATA(2, 1) - ---- DATA(-1, 2) + 400 400 400 1200 + + 43 37 149 89 + + ---- DATA(0, 2) + ---- DATA(1, 2) - ---- DATA(2, 2) + ---- DATA(2, -1) + 1200 1200 1200 1200 + + 49 + - --- DATA(2, 0) + 400 + +> coeff_as_lc_of_data(%, posn_list_2d_size4); +bytes used=30023228, alloc=2096768, time=2.36 + 2 109 13 2 +[COEFF(-1, -1) = 6/25 x - 1/8 y - ---- - 3/20 x y + -- y - 3/40 x , + 1200 40 + + 11 2 223 2 + COEFF(0, -1) = -- y + 3/40 x - ---- - 1/50 x - 1/20 x y - 1/8 y , + 40 1200 + + 13 157 2 2 + COEFF(1, -1) = - --- x + 9/40 y - ---- + 3/40 x + 1/20 x y - 1/8 y , + 100 1200 + + 2 2 89 + COEFF(2, -1) = - 9/100 x - 1/8 y + 3/20 x y - 3/40 x + 7/40 y + ----, + 1200 + + 23 31 2 2 + COEFF(-1, 0) = 3/20 x y - -- y - --- - 1/50 x - 1/40 x + 3/8 y , + 40 400 + + 2 2 57 21 + COEFF(0, 0) = 1/40 x + 1/20 x y - 1/25 x + 3/8 y - --- - -- y, + 400 40 + + 2 2 19 63 + COEFF(1, 0) = 1/40 x - 1/100 x + 3/8 y - -- y - --- - 1/20 x y, + 40 400 + + 2 49 17 2 + COEFF(2, 0) = - 3/20 x y - 1/40 x - --- - -- y + 3/8 y + 7/100 x, + 400 40 + + 2 13 2 111 + COEFF(-1, 1) = - 3/8 y + 3/20 x y + 7/40 y - --- x + 1/40 x + ---, + 100 400 + + 2 117 2 + COEFF(0, 1) = 9/40 y - 3/8 y + 1/20 x y - 1/100 x + --- - 1/40 x , + 400 + + 2 11 2 103 + COEFF(1, 1) = - 3/8 y + 3/50 x + -- y - 1/40 x + --- - 1/20 x y, + 40 400 + + 13 2 69 2 + COEFF(2, 1) = 2/25 x + -- y - 3/20 x y - 3/8 y + --- + 1/40 x , + 40 400 + + 2 131 2 + COEFF(-1, 2) = 3/40 x - ---- + 3/40 y - 9/100 x + 1/8 y - 3/20 x y, + 1200 + + 2 43 2 + COEFF(0, 2) = 1/40 y + 7/100 x - 3/40 x - 1/20 x y + ---- + 1/8 y , + 1200 + + 2 37 2 + COEFF(1, 2) = 1/8 y + ---- + 1/20 x y - 1/40 y + 2/25 x - 3/40 x , + 1200 + + 2 2 149 + COEFF(2, 2) = 3/40 x - 3/40 y + 1/8 y - 3/50 x + 3/20 x y - ----] + 1200 + +> print_coeff__lc_of_data(%, "coeff_dy_", "fp", +> "2d.coeffs/2d.cube.order3.smooth0/coeff-dy.compute.c"); +bytes used=31023544, alloc=2096768, time=2.43 +bytes used=32023964, alloc=2096768, time=2.51 +bytes used=33024296, alloc=2096768, time=2.61 +> +# d^2/dx^2 +> simplify( diff(interp_2d_cube_order3_smooth0,x,x) ); +- 3/20 y DATA(-1, -1) + 3/20 y DATA(1, -1) - 1/20 y DATA(-1, 0) + + + 1/20 y DATA(-1, 1) + 1/20 y DATA(2, 1) + 3/20 y DATA(-1, 2) + + + 3/20 y DATA(0, -1) - 1/4 x DATA(-1, 0) - 3/20 y DATA(1, 2) + + + 3/20 y DATA(2, 2) - 3/20 y DATA(2, -1) - 1/20 y DATA(2, 0) + + - 3/20 y DATA(0, 2) + 1/20 y DATA(0, 0) + 1/20 y DATA(1, 0) + + - 1/20 y DATA(0, 1) - 1/20 y DATA(1, 1) - 1/4 x DATA(-1, -1) + + + 1/4 x DATA(2, 2) + 1/4 x DATA(2, -1) + 1/4 x DATA(2, 0) + + + 3/4 x DATA(0, 0) - 3/4 x DATA(1, 0) + 3/4 x DATA(0, 1) + + - 3/4 x DATA(1, 1) + 3/4 x DATA(0, -1) - 3/4 x DATA(1, -1) + + + 3/4 x DATA(0, 2) - 1/4 x DATA(-1, 1) + 1/4 x DATA(2, 1) + + 21 + - 1/4 x DATA(-1, 2) - 3/4 x DATA(1, 2) - -- DATA(0, 0) + 9/40 DATA(1, 0) + 40 + + 19 11 13 23 + - -- DATA(0, 1) + -- DATA(1, 1) + -- DATA(-1, -1) - -- DATA(0, -1) + 40 40 40 40 + + 11 + + 7/40 DATA(1, -1) + -- DATA(-1, 0) + 9/40 DATA(-1, 1) - 1/40 DATA(2, 1) + 40 + + 17 13 + + 7/40 DATA(-1, 2) - -- DATA(0, 2) + -- DATA(1, 2) - 3/40 DATA(2, 2) + 40 40 + + + 3/40 DATA(2, -1) + 1/40 DATA(2, 0) + +> coeff_as_lc_of_data(%, posn_list_2d_size4); +bytes used=34024524, alloc=2096768, time=2.73 + 13 23 +[COEFF(-1, -1) = - 3/20 y + -- - 1/4 x, COEFF(0, -1) = - -- + 3/4 x + 3/20 y, + 40 40 + + COEFF(1, -1) = - 3/4 x + 7/40 + 3/20 y, + + 11 + COEFF(2, -1) = 1/4 x + 3/40 - 3/20 y, COEFF(-1, 0) = - 1/4 x - 1/20 y + --, + 40 + + 21 + COEFF(0, 0) = 3/4 x + 1/20 y - --, COEFF(1, 0) = - 3/4 x + 9/40 + 1/20 y, + 40 + + COEFF(2, 0) = - 1/20 y + 1/40 + 1/4 x, COEFF(-1, 1) = 1/20 y - 1/4 x + 9/40, + + 19 11 + COEFF(0, 1) = - 1/20 y + 3/4 x - --, COEFF(1, 1) = -- - 3/4 x - 1/20 y, + 40 40 + + COEFF(2, 1) = - 1/40 + 1/20 y + 1/4 x, + + 17 + COEFF(-1, 2) = - 1/4 x + 7/40 + 3/20 y, COEFF(0, 2) = - -- + 3/4 x - 3/20 y, + 40 + + 13 + COEFF(1, 2) = - 3/20 y - 3/4 x + --, COEFF(2, 2) = 3/20 y - 3/40 + 1/4 x] + 40 + +> print_coeff__lc_of_data(%, "coeff_dxx_", "fp", +> "2d.coeffs/2d.cube.order3.smooth0/coeff-dxx.compute.c"); +bytes used=35024704, alloc=2096768, time=2.82 +bytes used=36025012, alloc=2096768, time=2.93 +> +# d^2/dxdy +> simplify( diff(interp_2d_cube_order3_smooth0,x,y) ); +- 3/20 y DATA(-1, -1) + 1/20 y DATA(1, -1) + 3/20 y DATA(-1, 0) + + + 3/20 y DATA(-1, 1) - 3/20 y DATA(2, 1) - 3/20 y DATA(-1, 2) + + - 1/20 y DATA(0, -1) - 1/20 x DATA(-1, 0) + 1/20 y DATA(1, 2) + + + 3/20 y DATA(2, 2) + 3/20 y DATA(2, -1) - 3/20 y DATA(2, 0) + + - 1/20 y DATA(0, 2) + 1/20 y DATA(0, 0) - 1/20 y DATA(1, 0) + + + 1/20 y DATA(0, 1) - 1/20 y DATA(1, 1) - 3/20 x DATA(-1, -1) + + + 3/20 x DATA(2, 2) - 3/20 x DATA(2, -1) - 1/20 x DATA(2, 0) + + + 1/20 x DATA(0, 0) + 1/20 x DATA(1, 0) - 1/20 x DATA(0, 1) + + - 1/20 x DATA(1, 1) + 3/20 x DATA(0, -1) + 3/20 x DATA(1, -1) + + - 3/20 x DATA(0, 2) + 1/20 x DATA(-1, 1) + 1/20 x DATA(2, 1) + + + 3/20 x DATA(-1, 2) - 3/20 x DATA(1, 2) - 1/25 DATA(0, 0) + + - 1/100 DATA(1, 0) - 1/100 DATA(0, 1) + 3/50 DATA(1, 1) + + 13 + + 6/25 DATA(-1, -1) - 1/50 DATA(0, -1) - --- DATA(1, -1) + 100 + + 13 + - 1/50 DATA(-1, 0) - --- DATA(-1, 1) + 2/25 DATA(2, 1) - 9/100 DATA(-1, 2) + 100 + + + 7/100 DATA(0, 2) + 2/25 DATA(1, 2) - 3/50 DATA(2, 2) - 9/100 DATA(2, -1) + + + 7/100 DATA(2, 0) + +> coeff_as_lc_of_data(%, posn_list_2d_size4); +[COEFF(-1, -1) = - 3/20 x - 3/20 y + 6/25, + + COEFF(0, -1) = - 1/50 - 1/20 y + 3/20 x, + + 13 + COEFF(1, -1) = - --- + 3/20 x + 1/20 y, + 100 + + COEFF(2, -1) = - 3/20 x - 9/100 + 3/20 y, + + COEFF(-1, 0) = 3/20 y - 1/50 - 1/20 x, COEFF(0, 0) = 1/20 y - 1/25 + 1/20 x, + + COEFF(1, 0) = - 1/20 y - 1/100 + 1/20 x, + + COEFF(2, 0) = - 1/20 x - 3/20 y + 7/100, + + 13 + COEFF(-1, 1) = 3/20 y + 1/20 x - ---, + 100 + + COEFF(0, 1) = - 1/20 x + 1/20 y - 1/100, + + COEFF(1, 1) = - 1/20 y - 1/20 x + 3/50, + + COEFF(2, 1) = - 3/20 y + 1/20 x + 2/25, + + COEFF(-1, 2) = - 3/20 y + 3/20 x - 9/100, + + COEFF(0, 2) = 7/100 - 1/20 y - 3/20 x, COEFF(1, 2) = 1/20 y + 2/25 - 3/20 x, + + COEFF(2, 2) = - 3/50 + 3/20 x + 3/20 y] + +> print_coeff__lc_of_data(%, "coeff_dxy_", "fp", +> "2d.coeffs/2d.cube.order3.smooth0/coeff-dxy.compute.c"); +bytes used=37025336, alloc=2096768, time=3.00 +> +# d^2/dy^2 +> simplify( diff(interp_2d_cube_order3_smooth0,y,y) ); +- 1/4 y DATA(-1, -1) - 1/4 y DATA(1, -1) + 3/4 y DATA(-1, 0) + + - 3/4 y DATA(-1, 1) - 3/4 y DATA(2, 1) + 1/4 y DATA(-1, 2) + + - 1/4 y DATA(0, -1) + 3/20 x DATA(-1, 0) + 1/4 y DATA(1, 2) + + + 1/4 y DATA(2, 2) - 1/4 y DATA(2, -1) + 3/4 y DATA(2, 0) + + + 1/4 y DATA(0, 2) + 3/4 y DATA(0, 0) + 3/4 y DATA(1, 0) + + - 3/4 y DATA(0, 1) - 3/4 y DATA(1, 1) - 3/20 x DATA(-1, -1) + + + 3/20 x DATA(2, 2) + 3/20 x DATA(2, -1) - 3/20 x DATA(2, 0) + + + 1/20 x DATA(0, 0) - 1/20 x DATA(1, 0) + 1/20 x DATA(0, 1) + + - 1/20 x DATA(1, 1) - 1/20 x DATA(0, -1) + 1/20 x DATA(1, -1) + + - 1/20 x DATA(0, 2) + 3/20 x DATA(-1, 1) - 3/20 x DATA(2, 1) + + 21 19 + - 3/20 x DATA(-1, 2) + 1/20 x DATA(1, 2) - -- DATA(0, 0) - -- DATA(1, 0) + 40 40 + + 11 13 11 + + 9/40 DATA(0, 1) + -- DATA(1, 1) + -- DATA(-1, -1) + -- DATA(0, -1) + 40 40 40 + + 23 13 + + 9/40 DATA(1, -1) - -- DATA(-1, 0) + 7/40 DATA(-1, 1) + -- DATA(2, 1) + 40 40 + + + 3/40 DATA(-1, 2) + 1/40 DATA(0, 2) - 1/40 DATA(1, 2) - 3/40 DATA(2, 2) + + 17 + + 7/40 DATA(2, -1) - -- DATA(2, 0) + 40 + +> coeff_as_lc_of_data(%, posn_list_2d_size4); +bytes used=38025736, alloc=2096768, time=3.12 + 13 11 +[COEFF(-1, -1) = -- - 3/20 x - 1/4 y, COEFF(0, -1) = - 1/4 y + -- - 1/20 x, + 40 40 + + COEFF(1, -1) = 1/20 x - 1/4 y + 9/40, COEFF(2, -1) = 3/20 x - 1/4 y + 7/40, + + 23 21 + COEFF(-1, 0) = - -- + 3/4 y + 3/20 x, COEFF(0, 0) = - -- + 1/20 x + 3/4 y, + 40 40 + + 19 17 + COEFF(1, 0) = - 1/20 x + 3/4 y - --, COEFF(2, 0) = 3/4 y - 3/20 x - --, + 40 40 + + COEFF(-1, 1) = - 3/4 y + 7/40 + 3/20 x, + + 11 + COEFF(0, 1) = - 3/4 y + 1/20 x + 9/40, COEFF(1, 1) = - 3/4 y - 1/20 x + --, + 40 + + 13 + COEFF(2, 1) = - 3/20 x - 3/4 y + --, COEFF(-1, 2) = 1/4 y - 3/20 x + 3/40, + 40 + + COEFF(0, 2) = - 1/20 x + 1/4 y + 1/40, COEFF(1, 2) = 1/4 y + 1/20 x - 1/40, + + COEFF(2, 2) = - 3/40 + 1/4 y + 3/20 x] + +> print_coeff__lc_of_data(%, "coeff_dyy_", "fp", +> "2d.coeffs/2d.cube.order3.smooth0/coeff-dyy.compute.c"); +bytes used=39026068, alloc=2096768, time=3.20 +bytes used=40026480, alloc=2096768, time=3.32 +> +######################################## +> +# +# 2d, cube, order=4, smoothing=0 (size=5) +# +> +# interpolating polynomial +> interp_2d_cube_order4_smooth0 +> := polynomial_interpolant(fn_2d_order4, coeff_list_2d_order4, +> coord_list_2d, posn_list_2d_size5); +bytes used=41027392, alloc=2096768, time=3.38 +bytes used=42027828, alloc=2162292, time=3.44 +bytes used=43029804, alloc=2162292, time=3.51 +bytes used=44031380, alloc=2162292, time=3.56 +bytes used=45032232, alloc=2162292, time=3.62 +interp_2d_cube_order4_smooth0 := (- 1/49 DATA(0, -2) - 1/98 DATA(-1, -2) + + + 1/49 DATA(-2, -2) + 1/49 DATA(0, 0) + 1/98 DATA(1, 0) + 1/98 DATA(0, 1) + + + 1/196 DATA(1, 1) - 1/98 DATA(-2, -1) + 1/49 DATA(2, -2) + + - 1/98 DATA(1, -2) + 1/49 DATA(-2, 2) - 1/98 DATA(-2, 1) + + - 1/49 DATA(-2, 0) + 1/196 DATA(-1, -1) + 1/98 DATA(0, -1) + + + 1/196 DATA(1, -1) + 1/98 DATA(-1, 0) + 1/196 DATA(-1, 1) + + - 1/98 DATA(2, 1) - 1/98 DATA(-1, 2) - 1/49 DATA(0, 2) - 1/98 DATA(1, 2) + + 2 2 / + + 1/49 DATA(2, 2) - 1/98 DATA(2, -1) - 1/49 DATA(2, 0)) x y + | + \ + + 21 11 37 21 + --- DATA(-1, -2) - --- DATA(-2, -2) + --- DATA(1, 1) + --- DATA(-2, -1) + 200 150 300 200 + + 11 21 11 21 + + --- DATA(2, -2) - --- DATA(1, -2) + --- DATA(-2, 2) - --- DATA(-2, 1) + 150 200 150 200 + + 37 37 37 21 + + --- DATA(-1, -1) - --- DATA(1, -1) - --- DATA(-1, 1) + --- DATA(2, 1) + 300 300 300 200 + + 21 21 11 21 \ + - --- DATA(-1, 2) + --- DATA(1, 2) - --- DATA(2, 2) - --- DATA(2, -1)| x y + 200 200 150 200 / + + + (1/35 DATA(0, -2) + 1/70 DATA(-1, -2) - 1/35 DATA(-2, -2) + + - 1/70 DATA(0, 1) - 1/140 DATA(1, 1) - 1/70 DATA(-2, -1) + + - 1/35 DATA(2, -2) + 1/70 DATA(1, -2) + 1/35 DATA(-2, 2) + + + 1/70 DATA(-2, 1) + 1/140 DATA(-1, -1) + 1/70 DATA(0, -1) + + + 1/140 DATA(1, -1) - 1/140 DATA(-1, 1) + 1/70 DATA(2, 1) + + - 1/70 DATA(-1, 2) - 1/35 DATA(0, 2) - 1/70 DATA(1, 2) + 1/35 DATA(2, 2) + + 2 + - 1/70 DATA(2, -1)) x y + (- 1/70 DATA(-1, -2) - 1/35 DATA(-2, -2) + + - 1/70 DATA(1, 0) - 1/140 DATA(1, 1) + 1/70 DATA(-2, -1) + + + 1/35 DATA(2, -2) + 1/70 DATA(1, -2) - 1/35 DATA(-2, 2) + + + 1/70 DATA(-2, 1) + 1/35 DATA(-2, 0) + 1/140 DATA(-1, -1) + + - 1/140 DATA(1, -1) + 1/70 DATA(-1, 0) + 1/140 DATA(-1, 1) + + - 1/70 DATA(2, 1) - 1/70 DATA(-1, 2) + 1/70 DATA(1, 2) + 1/35 DATA(2, 2) + + 2 96 + - 1/70 DATA(2, -1) - 1/35 DATA(2, 0)) x y + ---- DATA(0, -2) + 1225 + + 99 + - ---- DATA(-1, -2) + (- 1/30 DATA(-1, -2) + 1/60 DATA(-2, -2) + 1225 + + - 1/60 DATA(1, 1) + 1/120 DATA(-2, -1) - 1/60 DATA(2, -2) + + + 1/30 DATA(1, -2) - 1/60 DATA(-2, 2) - 1/120 DATA(-2, 1) + + - 1/60 DATA(-1, -1) + 1/60 DATA(1, -1) + 1/60 DATA(-1, 1) + + + 1/120 DATA(2, 1) + 1/30 DATA(-1, 2) - 1/30 DATA(1, 2) + 1/60 DATA(2, 2) + + 3 51 541 + - 1/120 DATA(2, -1)) x y + ---- DATA(-2, -2) + ---- DATA(0, 0) + 1225 1225 + + 246 246 24 99 + + ---- DATA(1, 0) + ---- DATA(0, 1) - ---- DATA(1, 1) - ---- DATA(-2, -1) + 1225 1225 1225 1225 + + 51 99 51 + + ---- DATA(2, -2) - ---- DATA(1, -2) + ---- DATA(-2, 2) + 1225 1225 1225 + + 99 96 / 41 + - ---- DATA(-2, 1) + ---- DATA(-2, 0) + |- --- DATA(0, -2) + 1225 1225 \ 196 + + 113 289 57 83 + + --- DATA(-1, -2) - ---- DATA(-2, -2) - --- DATA(0, 0) + --- DATA(1, 0) + 735 5880 196 735 + + 53 181 71 289 + - --- DATA(0, 1) + ---- DATA(1, 1) + ---- DATA(-2, -1) - ---- DATA(2, -2) + 196 1470 5880 5880 + + 113 289 71 191 + + --- DATA(1, -2) - ---- DATA(-2, 2) + ---- DATA(-2, 1) + ---- DATA(-2, 0) + 735 5880 5880 5880 + + 181 53 181 83 + + ---- DATA(-1, -1) - --- DATA(0, -1) + ---- DATA(1, -1) + --- DATA(-1, 0) + 1470 196 1470 735 + + 181 71 113 41 + + ---- DATA(-1, 1) + ---- DATA(2, 1) + --- DATA(-1, 2) - --- DATA(0, 2) + 1470 5880 735 196 + + 113 289 71 191 \ + + --- DATA(1, 2) - ---- DATA(2, 2) + ---- DATA(2, -1) + ---- DATA(2, 0)| + 735 5880 5880 5880 / + + 2 + x + (1/30 DATA(-1, -2) - 1/60 DATA(-2, -2) - 1/30 DATA(1, 0) + + - 1/30 DATA(1, 1) - 1/60 DATA(-2, -1) + 1/60 DATA(2, -2) + + - 1/30 DATA(1, -2) - 1/60 DATA(-2, 2) - 1/60 DATA(-2, 1) + + - 1/60 DATA(-2, 0) + 1/30 DATA(-1, -1) - 1/30 DATA(1, -1) + + + 1/30 DATA(-1, 0) + 1/30 DATA(-1, 1) + 1/60 DATA(2, 1) + 1/30 DATA(-1, 2) + + - 1/30 DATA(1, 2) + 1/60 DATA(2, 2) + 1/60 DATA(2, -1) + 1/60 DATA(2, 0)) + + 3 + x + (1/20 DATA(0, -2) - 1/30 DATA(-1, -2) + 1/120 DATA(-2, -2) + + + 1/20 DATA(0, 0) - 1/30 DATA(1, 0) + 1/20 DATA(0, 1) - 1/30 DATA(1, 1) + + + 1/120 DATA(-2, -1) + 1/120 DATA(2, -2) - 1/30 DATA(1, -2) + + + 1/120 DATA(-2, 2) + 1/120 DATA(-2, 1) + 1/120 DATA(-2, 0) + + - 1/30 DATA(-1, -1) + 1/20 DATA(0, -1) - 1/30 DATA(1, -1) + + - 1/30 DATA(-1, 0) - 1/30 DATA(-1, 1) + 1/120 DATA(2, 1) + + - 1/30 DATA(-1, 2) + 1/20 DATA(0, 2) - 1/30 DATA(1, 2) + 1/120 DATA(2, 2) + + 4 + + 1/120 DATA(2, -1) + 1/120 DATA(2, 0)) x + (1/120 DATA(0, -2) + + + 1/120 DATA(-1, -2) + 1/120 DATA(-2, -2) + 1/20 DATA(0, 0) + + + 1/20 DATA(1, 0) - 1/30 DATA(0, 1) - 1/30 DATA(1, 1) - 1/30 DATA(-2, -1) + + + 1/120 DATA(2, -2) + 1/120 DATA(1, -2) + 1/120 DATA(-2, 2) + + - 1/30 DATA(-2, 1) + 1/20 DATA(-2, 0) - 1/30 DATA(-1, -1) + + - 1/30 DATA(0, -1) - 1/30 DATA(1, -1) + 1/20 DATA(-1, 0) + + - 1/30 DATA(-1, 1) - 1/30 DATA(2, 1) + 1/120 DATA(-1, 2) + + + 1/120 DATA(0, 2) + 1/120 DATA(1, 2) + 1/120 DATA(2, 2) + + 4 + - 1/30 DATA(2, -1) + 1/20 DATA(2, 0)) y + (- 1/60 DATA(0, -2) + + - 1/60 DATA(-1, -2) - 1/60 DATA(-2, -2) - 1/30 DATA(0, 1) + + - 1/30 DATA(1, 1) + 1/30 DATA(-2, -1) - 1/60 DATA(2, -2) + + - 1/60 DATA(1, -2) + 1/60 DATA(-2, 2) - 1/30 DATA(-2, 1) + + + 1/30 DATA(-1, -1) + 1/30 DATA(0, -1) + 1/30 DATA(1, -1) + + - 1/30 DATA(-1, 1) - 1/30 DATA(2, 1) + 1/60 DATA(-1, 2) + 1/60 DATA(0, 2) + + 3 / + + 1/60 DATA(1, 2) + 1/60 DATA(2, 2) + 1/30 DATA(2, -1)) y + | + \ + + 191 71 289 57 + ---- DATA(0, -2) + ---- DATA(-1, -2) - ---- DATA(-2, -2) - --- DATA(0, 0) + 5880 5880 5880 196 + + 53 83 181 113 + - --- DATA(1, 0) + --- DATA(0, 1) + ---- DATA(1, 1) + --- DATA(-2, -1) + 196 735 1470 735 + + 289 71 289 113 + - ---- DATA(2, -2) + ---- DATA(1, -2) - ---- DATA(-2, 2) + --- DATA(-2, 1) + 5880 5880 5880 735 + + 41 181 83 181 + - --- DATA(-2, 0) + ---- DATA(-1, -1) + --- DATA(0, -1) + ---- DATA(1, -1) + 196 1470 735 1470 + + 53 181 113 71 + - --- DATA(-1, 0) + ---- DATA(-1, 1) + --- DATA(2, 1) + ---- DATA(-1, 2) + 196 1470 735 5880 + + 191 71 289 113 + + ---- DATA(0, 2) + ---- DATA(1, 2) - ---- DATA(2, 2) + --- DATA(2, -1) + 5880 5880 5880 735 + + 41 \ 2 / 17 + - --- DATA(2, 0)| y + |- --- DATA(0, -2) - 1/84 DATA(-1, -2) + 196 / \ 420 + + 31 17 31 11 + + --- DATA(-2, -2) + --- DATA(0, 1) + --- DATA(1, 1) - --- DATA(-2, -1) + 420 105 210 105 + + 31 31 11 + + --- DATA(2, -2) - 1/84 DATA(1, -2) - --- DATA(-2, 2) + --- DATA(-2, 1) + 420 420 105 + + 31 17 31 31 + - --- DATA(-1, -1) - --- DATA(0, -1) - --- DATA(1, -1) + --- DATA(-1, 1) + 210 105 210 210 + + 11 17 + + --- DATA(2, 1) + 1/84 DATA(-1, 2) + --- DATA(0, 2) + 1/84 DATA(1, 2) + 105 420 + + 31 11 \ / 11 + - --- DATA(2, 2) - --- DATA(2, -1)| y + |- --- DATA(-1, -2) + 420 105 / \ 105 + + 31 17 31 + + --- DATA(-2, -2) + --- DATA(1, 0) + --- DATA(1, 1) - 1/84 DATA(-2, -1) + 420 105 210 + + 31 11 31 + - --- DATA(2, -2) + --- DATA(1, -2) + --- DATA(-2, 2) - 1/84 DATA(-2, 1) + 420 105 420 + + 17 31 31 17 + - --- DATA(-2, 0) - --- DATA(-1, -1) + --- DATA(1, -1) - --- DATA(-1, 0) + 420 210 210 105 + + 31 11 11 + - --- DATA(-1, 1) + 1/84 DATA(2, 1) - --- DATA(-1, 2) + --- DATA(1, 2) + 210 105 105 + + 31 17 \ + - --- DATA(2, 2) + 1/84 DATA(2, -1) + --- DATA(2, 0)| x + ( + 420 420 / + + 1/120 DATA(-1, -2) + 1/60 DATA(-2, -2) - 1/60 DATA(1, 1) + + - 1/30 DATA(-2, -1) - 1/60 DATA(2, -2) - 1/120 DATA(1, -2) + + - 1/60 DATA(-2, 2) + 1/30 DATA(-2, 1) - 1/60 DATA(-1, -1) + + + 1/60 DATA(1, -1) + 1/60 DATA(-1, 1) - 1/30 DATA(2, 1) + + - 1/120 DATA(-1, 2) + 1/120 DATA(1, 2) + 1/60 DATA(2, 2) + + 3 24 246 + + 1/30 DATA(2, -1)) x y - ---- DATA(-1, -1) + ---- DATA(0, -1) + 1225 1225 + + 24 246 24 99 + - ---- DATA(1, -1) + ---- DATA(-1, 0) - ---- DATA(-1, 1) - ---- DATA(2, 1) + 1225 1225 1225 1225 + + 99 96 99 51 + - ---- DATA(-1, 2) + ---- DATA(0, 2) - ---- DATA(1, 2) + ---- DATA(2, 2) + 1225 1225 1225 1225 + + 99 96 + - ---- DATA(2, -1) + ---- DATA(2, 0) + 1225 1225 + +> +# I +> coeff_as_lc_of_data(%, posn_list_2d_size5); +bytes used=46032680, alloc=2162292, time=3.68 + 3 2 31 3 2 31 +[COEFF(-2, -2) = 1/60 x y - 1/35 x y + --- x + 1/60 x y - 1/35 x y + --- y + 420 420 + + 289 2 289 2 4 3 4 11 3 + - ---- x - ---- y + 1/120 y - 1/60 y + 1/120 x - --- x y - 1/60 x + 5880 5880 150 + + 2 2 51 4 3 3 + + 1/49 x y + ----, COEFF(-1, -2) = 1/120 y - 1/30 x y + 1/120 x y + 1225 + + 2 21 11 2 2 3 3 + - 1/70 x y + --- x y - --- x - 1/84 y - 1/98 x y + 1/30 x - 1/60 y + 200 105 + + 113 2 71 2 2 99 4 17 + + --- x + ---- y + 1/70 x y - ---- - 1/30 x , COEFF(0, -2) = - --- y + 735 5880 1225 420 + + 2 4 41 2 2 2 191 2 4 3 + + 1/35 x y + 1/20 x - --- x - 1/49 x y + ---- y + 1/120 y - 1/60 y + 196 5880 + + 96 3 21 2 2 3 + + ----, COEFF(1, -2) = - 1/30 x - --- x y - 1/98 x y - 1/120 x y + 1225 200 + + 71 2 3 3 99 4 11 113 2 + + ---- y + 1/30 x y - 1/60 y - ---- + 1/120 y + --- x + --- x + 5880 1225 105 735 + + 2 4 2 2 2 + + 1/70 x y - 1/30 x + 1/70 x y - 1/84 y, COEFF(2, -2) = 1/49 x y + + 2 11 3 4 3 31 31 + - 1/35 x y + --- x y + 1/60 x + 1/120 x - 1/60 y + --- y - --- x + 150 420 420 + + 2 4 3 289 2 289 2 51 3 + + 1/35 x y + 1/120 y - 1/60 x y - ---- x - ---- y + ---- - 1/60 x y , + 5880 5880 1225 + + 3 3 99 71 2 2 + COEFF(-2, -1) = - 1/30 x y + 1/120 x y - ---- + ---- x - 1/70 x y + 1225 5880 + + 4 2 2 2 4 113 2 3 21 + - 1/30 y + 1/70 x y - 1/98 x y + 1/120 x + --- y - 1/60 x + --- x y + 735 200 + + 11 3 2 3 31 + - 1/84 x - --- y + 1/30 y , COEFF(-1, -1) = 1/140 x y - 1/60 x y - --- x + 105 210 + + 3 181 2 24 4 2 3 + - 1/60 x y + ---- x - ---- - 1/30 y + 1/140 x y + 1/30 y + 1470 1225 + + 2 2 181 2 31 3 37 4 + + 1/196 x y + ---- y - --- y + 1/30 x + --- x y - 1/30 x , + 1470 210 300 + + 2 246 2 2 4 17 4 + COEFF(0, -1) = 1/70 x y + ---- + 1/98 x y - 1/30 y - --- y + 1/20 x + 1225 105 + + 53 2 3 83 2 24 4 3 + - --- x + 1/30 y + --- y , COEFF(1, -1) = - ---- - 1/30 y + 1/30 y + 196 735 1225 + + 31 4 3 2 37 181 2 3 + - --- y - 1/30 x + 1/60 x y - 1/140 x y - --- x y + ---- y + 1/60 x y + 210 300 1470 + + 181 2 2 3 2 2 31 + + ---- x + 1/140 x y - 1/30 x + 1/196 x y + --- x, COEFF(2, -1) = + 1470 210 + + 2 99 2 11 3 2 2 71 2 + - 1/70 x y - ---- - 1/70 x y - --- y - 1/120 x y - 1/98 x y + ---- x + 1225 105 5880 + + 3 113 2 4 4 3 3 + + 1/30 y + --- y - 1/30 y + 1/84 x + 1/120 x + 1/30 x y + 1/60 x + 735 + + 21 4 17 2 2 191 2 3 + - --- x y, COEFF(-2, 0) = 1/20 y - --- x - 1/49 x y + ---- x - 1/60 x + 200 420 5880 + + 41 2 2 4 96 2 2 + - --- y + 1/35 x y + 1/120 x + ----, COEFF(-1, 0) = 1/98 x y + 196 1225 + + 4 4 17 53 2 83 2 246 3 2 + - 1/30 x + 1/20 y - --- x - --- y + --- x + ---- + 1/30 x + 1/70 x y + 105 196 735 1225 + + 57 2 2 2 4 4 57 2 541 + , COEFF(0, 0) = - --- x + 1/49 x y + 1/20 x + 1/20 y - --- y + ----, + 196 196 1225 + + 3 2 17 246 4 53 2 + COEFF(1, 0) = - 1/30 x - 1/70 x y + --- x + ---- + 1/20 y - --- y + 105 1225 196 + + 2 2 4 83 2 191 2 17 41 2 + + 1/98 x y - 1/30 x + --- x , COEFF(2, 0) = ---- x + --- x - --- y + 735 5880 420 196 + + 3 4 2 4 2 2 96 + + 1/60 x + 1/120 x - 1/35 x y + 1/20 y - 1/49 x y + ----, + 1225 + + 2 3 71 2 11 + COEFF(-2, 1) = 1/70 x y + 1/30 x y - 1/84 x + ---- x + --- y + 5880 105 + + 2 2 3 113 2 3 4 3 + - 1/98 x y - 1/120 x y + --- y - 1/60 x - 1/30 y - 1/30 y + 735 + + 2 99 21 4 181 2 + + 1/70 x y - ---- - --- x y + 1/120 x , COEFF(-1, 1) = ---- x + 1225 200 1470 + + 2 2 2 3 31 3 4 + - 1/140 x y + 1/196 x y + 1/60 x y - --- x - 1/30 y - 1/30 y + 210 + + 37 3 4 181 2 3 24 2 + - --- x y + 1/30 x - 1/30 x + ---- y + 1/60 x y - ---- + 1/140 x y + 300 1470 1225 + + 31 4 246 83 2 2 2 4 + + --- y, COEFF(0, 1) = 1/20 x + ---- + --- y + 1/98 x y - 1/30 y + 210 1225 735 + + 2 53 2 17 3 31 24 + - 1/70 x y - --- x + --- y - 1/30 y , COEFF(1, 1) = --- x - ---- + 196 105 210 1225 + + 3 4 2 2 181 2 3 181 2 + - 1/30 x - 1/30 y + 1/196 x y + ---- y - 1/30 y + ---- x + 1470 1470 + + 2 4 3 2 37 31 + - 1/140 x y - 1/30 x - 1/60 x y - 1/140 x y + --- x y + --- y + 300 210 + + 3 71 2 3 4 3 + - 1/60 x y , COEFF(2, 1) = ---- x - 1/30 y + 1/120 x + 1/60 x + 5880 + + 3 4 99 2 2 21 + + 1/120 x y - 1/30 y - ---- - 1/70 x y + 1/70 x y + --- x y + 1/84 x + 1225 200 + + 3 11 2 2 113 2 2 + - 1/30 x y + --- y - 1/98 x y + --- y , COEFF(-2, 2) = 1/35 x y + 105 735 + + 2 2 289 2 3 31 3 2 + + 1/49 x y - ---- x - 1/60 x - --- y - 1/60 x y - 1/35 x y + 5880 420 + + 4 289 2 11 4 3 3 31 + + 1/120 y - ---- y + --- x y + 1/120 x + 1/60 y - 1/60 x y + --- x + 5880 150 420 + + 51 3 3 4 2 2 + + ----, COEFF(-1, 2) = 1/30 x + 1/60 y + 1/120 y - 1/98 x y + 1/84 y + 1225 + + 11 71 2 3 21 113 2 2 2 + - --- x + ---- y + 1/30 x y - --- x y + --- x - 1/70 x y - 1/70 x y + 105 5880 200 735 + + 4 3 99 2 17 + - 1/30 x - 1/120 x y - ----, COEFF(0, 2) = - 1/35 x y + --- y + 1225 420 + + 2 2 191 2 4 4 3 96 41 2 + - 1/49 x y + ---- y + 1/120 y + 1/20 x + 1/60 y + ---- - --- x , + 5880 1225 196 + + 2 71 2 3 4 11 + COEFF(1, 2) = - 1/70 x y + ---- y + 1/60 y + 1/120 y + --- x + 5880 105 + + 3 3 4 113 2 2 21 + - 1/30 x y + 1/120 x y - 1/30 x + --- x + 1/70 x y + --- x y + 1/84 y + 735 200 + + 2 2 3 99 2 3 289 2 + - 1/98 x y - 1/30 x - ----, COEFF(2, 2) = 1/35 x y + 1/60 x - ---- y + 1225 5880 + + 3 4 31 3 3 4 289 2 + + 1/60 y + 1/120 y - --- x + 1/60 x y + 1/60 x y + 1/120 x - ---- x + 420 5880 + + 2 11 31 2 2 51 + + 1/35 x y - --- x y - --- y + 1/49 x y + ----] + 150 420 1225 + +> print_coeff__lc_of_data(%, "coeff_I_", "fp", +> "2d.coeffs/2d.cube.order4.smooth0/coeff-I.compute.c"); +bytes used=47032968, alloc=2227816, time=3.74 +bytes used=48033144, alloc=2227816, time=3.79 +bytes used=49033372, alloc=2227816, time=3.87 +bytes used=50040780, alloc=2227816, time=3.93 +bytes used=51056180, alloc=2227816, time=4.00 +bytes used=52056432, alloc=2227816, time=4.08 +bytes used=53056900, alloc=2227816, time=4.23 +bytes used=54058848, alloc=2227816, time=4.32 +bytes used=55061220, alloc=2227816, time=4.40 +bytes used=56061400, alloc=2227816, time=4.48 +bytes used=57061672, alloc=2227816, time=4.65 +bytes used=58061836, alloc=2227816, time=4.71 +bytes used=59061988, alloc=2227816, time=4.82 +bytes used=60062168, alloc=2227816, time=4.99 +bytes used=61062588, alloc=2227816, time=5.06 +bytes used=62063004, alloc=2227816, time=5.15 +bytes used=63063436, alloc=2227816, time=5.28 +bytes used=64063660, alloc=2227816, time=5.36 +bytes used=65063896, alloc=2227816, time=5.53 +bytes used=66064164, alloc=2227816, time=5.57 +bytes used=67064372, alloc=2227816, time=5.77 +bytes used=68064544, alloc=2227816, time=5.89 +> +# d/dx +> simplify( diff(interp_2d_cube_order4_smooth0,x) ); +bytes used=69064760, alloc=2293340, time=5.99 +bytes used=70065912, alloc=2293340, time=6.05 +bytes used=71066204, alloc=2358864, time=6.12 + 11 31 17 31 +- --- DATA(-1, -2) + --- DATA(-2, -2) + --- DATA(1, 0) + --- DATA(1, 1) + 105 420 105 210 + + 31 11 31 + - 1/84 DATA(-2, -1) - --- DATA(2, -2) + --- DATA(1, -2) + --- DATA(-2, 2) + 420 105 420 + + 17 31 31 + - 1/84 DATA(-2, 1) - --- DATA(-2, 0) - --- DATA(-1, -1) + --- DATA(1, -1) + 420 210 210 + + 17 31 + - --- DATA(-1, 0) - --- DATA(-1, 1) - 1/35 x y DATA(0, 1) + 105 210 + + 3 191 + + 1/5 x DATA(0, -1) - 2/35 x y DATA(0, 2) + ---- x DATA(2, 0) + 2940 + + 3 3 3 + + 1/30 x DATA(-2, -2) - 2/15 x DATA(1, -1) - 2/15 x DATA(-1, 1) + + 3 3 3 + + 1/30 x DATA(2, 1) - 2/15 x DATA(-1, 2) + 1/5 x DATA(0, 2) + + 3 3 3 + + 1/5 x DATA(0, -2) - 2/15 x DATA(-1, 0) - 2/15 x DATA(1, -2) + + 3 3 3 + + 1/30 x DATA(-2, 2) + 1/30 x DATA(-2, 1) + 1/30 x DATA(-2, 0) + + 3 191 181 + - 2/15 x DATA(-1, -1) + ---- x DATA(-2, 0) + --- x DATA(-1, -1) + 2940 735 + + 53 181 3 + - -- x DATA(0, -1) + --- x DATA(1, -1) - 2/15 x DATA(-1, -2) + 98 735 + + 3 226 289 + + 1/5 x DATA(0, 0) + --- x DATA(1, 2) - ---- x DATA(2, 2) + 735 2940 + + 71 41 226 + + ---- x DATA(2, -1) - -- x DATA(0, -2) + --- x DATA(-1, -2) + 2940 98 735 + + 289 57 2 + - ---- x DATA(-2, -2) - -- x DATA(0, 0) + 1/10 x DATA(-1, -2) + 2940 98 + + 2 2 2 + - 1/20 x DATA(-2, -2) - 1/10 x DATA(1, 0) - 1/10 x DATA(1, 1) + + 2 2 2 + - 1/20 x DATA(-2, -1) + 1/20 x DATA(2, -2) - 1/10 x DATA(1, -2) + + 2 181 166 + - 1/20 x DATA(-2, 2) + --- x DATA(-1, 1) + --- x DATA(1, 0) + 735 735 + + 53 181 71 + - -- x DATA(0, 1) + --- x DATA(1, 1) + ---- x DATA(-2, -1) + 98 735 2940 + + 289 226 289 + - ---- x DATA(2, -2) + --- x DATA(1, -2) - ---- x DATA(-2, 2) + 2940 735 2940 + + 71 2 2 + + ---- x DATA(-2, 1) + 1/10 x DATA(-1, -1) - 1/10 x DATA(1, -1) + 2940 + + 2 2 166 + + 1/10 x DATA(-1, 0) + 1/10 x DATA(-1, 1) + --- x DATA(-1, 0) + 735 + + 71 226 41 + + ---- x DATA(2, 1) + --- x DATA(-1, 2) - -- x DATA(0, 2) + 2940 735 98 + + 2 2 + + 1/35 x y DATA(1, -2) - 1/35 y DATA(-2, -2) - 1/70 y DATA(1, 0) + + 2 2 2 + - 1/140 y DATA(1, 1) + 1/70 y DATA(-2, -1) + 1/35 y DATA(2, -2) + + 2 2 2 + + 1/70 y DATA(1, -2) + 1/20 x DATA(2, 1) + 1/10 x DATA(-1, 2) + + 2 2 2 + - 1/10 x DATA(1, 2) + 1/20 x DATA(2, 2) + 1/20 x DATA(2, -1) + + 2 2 2 + + 1/20 x DATA(2, 0) - 1/20 x DATA(-2, 1) - 1/20 x DATA(-2, 0) + + 2 2 2 + - 1/49 x y DATA(-1, 2) - 2/49 x y DATA(0, 2) - 2/49 x y DATA(0, -2) + + 2 2 2 + + 2/49 x y DATA(-2, 2) - 2/49 x y DATA(2, 0) + 1/49 x y DATA(1, 0) + + 2 2 2 + + 1/49 x y DATA(0, 1) + 1/98 x y DATA(1, 1) - 1/49 x y DATA(-2, -1) + + 2 2 2 + + 2/49 x y DATA(2, -2) - 1/49 x y DATA(1, 2) + 1/40 x y DATA(-2, -1) + + 2 2 2 + - 1/20 x y DATA(2, -2) - 1/49 x y DATA(1, -2) - 1/49 x y DATA(-2, 1) + + 2 2 2 + - 2/49 x y DATA(-2, 0) + 1/98 x y DATA(-1, -1) + 1/49 x y DATA(0, -1) + + 2 2 2 + + 1/98 x y DATA(1, -1) + 1/49 x y DATA(-1, 0) + 1/98 x y DATA(-1, 1) + + 2 2 2 + - 1/49 x y DATA(2, 1) - 1/70 y DATA(-1, -2) - 1/35 y DATA(-2, 2) + + 2 2 2 + + 1/70 y DATA(-2, 1) + 1/35 y DATA(-2, 0) + 1/140 y DATA(-1, -1) + + 2 2 2 + - 1/140 y DATA(1, -1) + 1/70 y DATA(-1, 0) - 1/70 y DATA(-1, 2) + + 2 2 2 + + 1/35 y DATA(2, 2) - 1/70 y DATA(2, -1) - 1/35 y DATA(2, 0) + + 2 2 2 + - 1/70 y DATA(2, 1) + 1/70 y DATA(1, 2) + 1/20 x y DATA(1, -1) + + 2 2 2 + + 1/20 x y DATA(-1, 1) + 1/40 x y DATA(2, 1) + 1/10 x y DATA(-1, 2) + + 2 2 2 + - 1/10 x y DATA(-1, -2) - 1/49 x y DATA(-1, -2) + 2/49 x y DATA(-2, -2) + + 2 2 2 + + 2/49 x y DATA(0, 0) + 1/20 x y DATA(-2, -2) - 1/20 x y DATA(1, 1) + + 11 37 37 + + --- y DATA(-2, 2) + --- y DATA(-1, -1) - --- y DATA(1, -1) + 150 300 300 + + 37 21 21 + - --- y DATA(-1, 1) + --- y DATA(2, 1) - --- y DATA(-1, 2) + 300 200 200 + + 21 11 3 + + --- y DATA(1, 2) - --- y DATA(2, 2) + 1/60 y DATA(-1, 1) + 200 150 + + 3 3 3 + - 1/30 y DATA(2, 1) + 1/120 y DATA(-1, -2) + 1/60 y DATA(-2, -2) + + 3 3 3 + - 1/60 y DATA(1, 1) - 1/30 y DATA(-2, -1) - 1/60 y DATA(2, -2) + + 3 3 3 + - 1/120 y DATA(1, -2) - 1/60 y DATA(-2, 2) + 1/30 y DATA(-2, 1) + + 3 3 2 + - 1/60 y DATA(-1, -1) + 1/60 y DATA(1, -1) + 1/140 y DATA(-1, 1) + + 21 21 11 + - --- y DATA(-2, 1) + --- y DATA(-1, -2) - --- y DATA(-2, -2) + 200 200 150 + + 37 21 11 + + --- y DATA(1, 1) + --- y DATA(-2, -1) + --- y DATA(2, -2) + 300 200 150 + + 21 + - --- y DATA(1, -2) - 1/35 x y DATA(-2, -1) - 1/70 x y DATA(-1, 1) + 200 + + + 1/35 x y DATA(2, 1) - 2/35 x y DATA(2, -2) + 2/35 x y DATA(-2, 2) + + + 2/35 x y DATA(0, -2) + 1/35 x y DATA(-1, -2) + 2/35 x y DATA(2, 2) + + 2 2 + + 1/70 x y DATA(-1, -1) - 1/10 x y DATA(1, 2) + 1/20 x y DATA(2, 2) + + 2 2 2 + - 1/40 x y DATA(2, -1) + 1/10 x y DATA(1, -2) - 1/20 x y DATA(-2, 2) + + 2 2 3 + - 1/40 x y DATA(-2, 1) - 1/20 x y DATA(-1, -1) - 2/15 x DATA(1, 2) + + 3 3 3 + + 1/30 x DATA(2, 2) + 1/30 x DATA(2, -1) + 1/30 x DATA(2, 0) + + 3 3 3 + - 2/15 x DATA(1, 0) + 1/5 x DATA(0, 1) - 2/15 x DATA(1, 1) + + 3 3 21 + + 1/30 x DATA(-2, -1) + 1/30 x DATA(2, -2) - --- y DATA(2, -1) + 200 + + 3 3 3 + - 1/120 y DATA(-1, 2) + 1/120 y DATA(1, 2) + 1/60 y DATA(2, 2) + + 3 + + 1/30 y DATA(2, -1) + 1/35 x y DATA(-2, 1) - 1/35 x y DATA(1, 2) + + - 1/35 x y DATA(-1, 2) - 1/35 x y DATA(2, -1) - 2/35 x y DATA(-2, -2) + + 2 2 + - 1/70 x y DATA(1, 1) + 2/49 x y DATA(2, 2) - 1/49 x y DATA(2, -1) + + + 1/70 x y DATA(1, -1) + 1/35 x y DATA(0, -1) + 1/84 DATA(2, 1) + + 11 11 31 + - --- DATA(-1, 2) + --- DATA(1, 2) - --- DATA(2, 2) + 1/84 DATA(2, -1) + 105 105 420 + + 17 + + --- DATA(2, 0) + 420 + +> coeff_as_lc_of_data(%, posn_list_2d_size5); +bytes used=72071248, alloc=2424388, time=6.19 + 289 2 2 2 +[COEFF(-2, -2) = - ---- x + 2/49 x y + 1/20 x y - 2/35 x y - 1/35 y + 2940 + + 3 2 11 31 3 3 + + 1/60 y - 1/20 x - --- y + --- + 1/30 x , COEFF(-1, -2) = 1/120 y + 150 420 + + 2 2 21 2 226 2 + - 1/49 x y + 1/10 x + --- y - 1/70 y + --- x - 1/10 x y + 1/35 x y + 200 735 + + 11 3 41 2 3 + - --- - 2/15 x , COEFF(0, -2) = - -- x - 2/49 x y + 2/35 x y + 1/5 x , + 105 98 + + 3 21 11 2 2 3 + COEFF(1, -2) = - 1/120 y - --- y + --- - 1/10 x + 1/10 x y - 2/15 x + 200 105 + + 2 226 2 11 2 + - 1/49 x y + --- x + 1/35 x y + 1/70 y , COEFF(2, -2) = --- y + 1/35 y + 735 150 + + 2 2 2 289 31 3 + + 1/20 x - 1/20 x y + 2/49 x y - ---- x - --- - 2/35 x y + 1/30 x + 2940 420 + + 3 21 2 3 2 + - 1/60 y , COEFF(-2, -1) = --- y + 1/70 y - 1/30 y + 1/40 x y - 1/84 + 200 + + 71 3 2 2 + + ---- x + 1/30 x - 1/20 x - 1/35 x y - 1/49 x y , COEFF(-1, -1) = + 2940 + + 2 2 181 3 2 2 3 + 1/140 y + 1/98 x y + --- x - 2/15 x - 1/20 x y + 1/10 x - 1/60 y + 735 + + 31 37 + - --- + --- y + 1/70 x y, + 210 300 + + 53 2 3 + COEFF(0, -1) = - -- x + 1/49 x y + 1/35 x y + 1/5 x , COEFF(1, -1) = + 98 + + 3 2 2 2 3 181 37 + - 2/15 x + 1/98 x y - 1/140 y + 1/20 x y + 1/60 y + --- x - --- y + 735 300 + + 2 31 2 71 3 + - 1/10 x + --- + 1/70 x y, COEFF(2, -1) = 1/20 x + ---- x + 1/30 x + 210 2940 + + 21 2 3 2 2 + - 1/35 x y - --- y - 1/49 x y + 1/30 y + 1/84 - 1/40 x y - 1/70 y , + 200 + + 2 2 191 3 17 2 + COEFF(-2, 0) = - 1/20 x - 2/49 x y + ---- x + 1/30 x - --- + 1/35 y , + 2940 420 + + 166 2 2 2 3 17 + COEFF(-1, 0) = --- x + 1/10 x + 1/70 y + 1/49 x y - 2/15 x - ---, + 735 105 + + 2 57 3 + COEFF(0, 0) = 2/49 x y - -- x + 1/5 x , + 98 + + 3 17 166 2 2 2 + COEFF(1, 0) = - 2/15 x + --- + --- x - 1/70 y - 1/10 x + 1/49 x y , + 105 735 + + 3 2 2 191 17 2 + COEFF(2, 0) = 1/30 x + 1/20 x - 1/35 y + ---- x + --- - 2/49 x y , + 2940 420 + + 3 71 21 3 2 + COEFF(-2, 1) = 1/30 y + ---- x - --- y - 1/84 + 1/30 x - 1/20 x + 2940 200 + + 2 2 2 2 + - 1/49 x y + 1/70 y - 1/40 x y + 1/35 x y, COEFF(-1, 1) = 1/20 x y + + 181 37 3 2 2 31 + + --- x - --- y + 1/60 y + 1/98 x y + 1/10 x - 1/70 x y - --- + 735 300 210 + + 2 3 2 53 3 + + 1/140 y - 2/15 x , COEFF(0, 1) = 1/49 x y - -- x + 1/5 x - 1/35 x y, + 98 + + 2 2 3 3 181 31 + COEFF(1, 1) = - 1/140 y - 1/20 x y - 1/60 y - 2/15 x + --- x + --- + 735 210 + + 2 2 37 3 + - 1/10 x - 1/70 x y + 1/98 x y + --- y, COEFF(2, 1) = - 1/30 y + 300 + + 3 2 2 21 2 2 + + 1/30 x - 1/70 y + 1/40 x y + --- y + 1/84 - 1/49 x y + 1/20 x + 200 + + 71 2 289 3 2 + + ---- x + 1/35 x y, COEFF(-2, 2) = - 1/20 x - ---- x - 1/60 y - 1/35 y + 2940 2940 + + 2 31 11 3 2 + - 1/20 x y + --- + 2/35 x y + --- y + 1/30 x + 2/49 x y , COEFF(-1, 2) + 420 150 + + 2 226 21 2 11 3 + = - 1/70 y + --- x - --- y + 1/10 x - --- - 1/120 y - 1/35 x y + 735 200 105 + + 3 2 2 + - 2/15 x - 1/49 x y + 1/10 x y, + + 2 3 41 + COEFF(0, 2) = - 2/35 x y - 2/49 x y + 1/5 x - -- x, COEFF(1, 2) = + 98 + + 3 3 21 2 226 11 2 + - 2/15 x + 1/120 y + --- y + 1/70 y + --- x - 1/35 x y + --- - 1/10 x y + 200 735 105 + + 2 2 2 2 + - 1/49 x y - 1/10 x , COEFF(2, 2) = 2/35 x y + 2/49 x y + 1/20 x y + + 3 31 3 2 289 11 2 + + 1/30 x - --- + 1/60 y + 1/35 y - ---- x - --- y + 1/20 x ] + 420 2940 150 + +> print_coeff__lc_of_data(%, "coeff_dx_", "fp", +> "2d.coeffs/2d.cube.order4.smooth0/coeff-dx.compute.c"); +bytes used=73071424, alloc=2424388, time=6.27 +bytes used=74071732, alloc=2424388, time=6.34 +bytes used=75080180, alloc=2424388, time=6.41 +bytes used=76080488, alloc=2424388, time=6.57 +bytes used=77080972, alloc=2424388, time=6.64 +bytes used=78086448, alloc=2424388, time=6.81 +bytes used=79086664, alloc=2424388, time=6.92 +bytes used=80089584, alloc=2424388, time=7.07 +bytes used=81089868, alloc=2424388, time=7.17 +bytes used=82090156, alloc=2424388, time=7.32 +> +# d/dy +> simplify( diff(interp_2d_cube_order4_smooth0,y) ); +bytes used=83090332, alloc=2424388, time=7.44 +bytes used=84090836, alloc=2424388, time=7.51 +bytes used=85091040, alloc=2424388, time=7.57 + 17 31 17 +- --- DATA(0, -2) - 1/84 DATA(-1, -2) + --- DATA(-2, -2) + --- DATA(0, 1) + 420 420 105 + + 31 11 31 + + --- DATA(1, 1) - --- DATA(-2, -1) + --- DATA(2, -2) - 1/84 DATA(1, -2) + 210 105 420 + + 31 11 2 + - --- DATA(-2, 2) + --- DATA(-2, 1) - 1/35 x DATA(0, 2) + 420 105 + + 31 17 31 31 + - --- DATA(-1, -1) - --- DATA(0, -1) - --- DATA(1, -1) + --- DATA(-1, 1) + 210 105 210 210 + + 41 53 191 + - -- y DATA(-2, 0) - -- y DATA(-1, 0) + ---- y DATA(0, -2) + 98 98 2940 + + 166 166 191 + + --- y DATA(0, 1) + --- y DATA(0, -1) + ---- y DATA(0, 2) + 735 735 2940 + + 57 41 53 3 + - -- y DATA(0, 0) - -- y DATA(2, 0) - -- y DATA(1, 0) + 1/5 y DATA(1, 0) + 98 98 98 + + 2 2 2 + - 1/20 y DATA(0, -2) - 1/10 y DATA(0, 1) + 1/10 y DATA(0, -1) + + 2 3 3 + + 1/20 y DATA(0, 2) + 1/5 y DATA(-2, 0) + 1/5 y DATA(-1, 0) + + 3 3 3 + + 1/5 y DATA(2, 0) + 1/30 y DATA(0, -2) - 2/15 y DATA(0, 1) + + 3 3 3 + - 2/15 y DATA(0, -1) + 1/30 y DATA(0, 2) + 1/5 y DATA(0, 0) + + 2 2 2 + + 1/35 x DATA(0, -2) - 1/70 x DATA(0, 1) + 1/70 x DATA(0, -1) + + - 1/35 x y DATA(1, 0) - 2/35 x y DATA(2, 0) + 2/35 x y DATA(-2, 0) + + 2 2 + + 1/35 x y DATA(-1, 0) + 1/49 x y DATA(-1, 0) - 2/49 x y DATA(2, 0) + + 2 2 2 + - 2/49 x y DATA(0, -2) + 1/49 x y DATA(0, 1) + 1/49 x y DATA(0, -1) + + 2 2 2 + - 2/49 x y DATA(0, 2) - 2/49 x y DATA(-2, 0) + 2/49 x y DATA(0, 0) + + 2 3 3 + + 1/49 x y DATA(1, 0) + 1/60 x DATA(-2, -2) + 1/60 x DATA(1, -1) + + 3 3 3 + + 1/60 x DATA(-1, 1) + 1/120 x DATA(2, 1) + 1/30 x DATA(-1, 2) + + 3 3 3 + + 1/30 x DATA(1, -2) - 1/60 x DATA(-2, 2) - 1/120 x DATA(-2, 1) + + 3 37 37 + - 1/60 x DATA(-1, -1) + --- x DATA(-1, -1) - --- x DATA(1, -1) + 300 300 + + 3 21 11 + - 1/30 x DATA(-1, -2) + --- x DATA(1, 2) - --- x DATA(2, 2) + 200 150 + + 21 21 11 + - --- x DATA(2, -1) + --- x DATA(-1, -2) - --- x DATA(-2, -2) + 200 200 150 + + 2 2 2 + + 1/70 x DATA(-1, -2) - 1/35 x DATA(-2, -2) - 1/140 x DATA(1, 1) + + 2 2 2 + - 1/70 x DATA(-2, -1) - 1/35 x DATA(2, -2) + 1/70 x DATA(1, -2) + + 2 37 37 + + 1/35 x DATA(-2, 2) - --- x DATA(-1, 1) + --- x DATA(1, 1) + 300 300 + + 21 11 21 + + --- x DATA(-2, -1) + --- x DATA(2, -2) - --- x DATA(1, -2) + 200 150 200 + + 11 21 2 + + --- x DATA(-2, 2) - --- x DATA(-2, 1) + 1/140 x DATA(-1, -1) + 150 200 + + 2 2 21 + + 1/140 x DATA(1, -1) - 1/140 x DATA(-1, 1) + --- x DATA(2, 1) + 200 + + 21 2 + - --- x DATA(-1, 2) + 1/35 x y DATA(1, -2) - 1/20 y DATA(-2, -2) + 200 + + 2 2 2 + - 1/10 y DATA(1, 1) + 1/10 y DATA(-2, -1) - 1/20 y DATA(2, -2) + + 2 2 2 + - 1/20 y DATA(1, -2) + 1/70 x DATA(2, 1) - 1/70 x DATA(-1, 2) + + 2 2 2 + - 1/70 x DATA(1, 2) + 1/35 x DATA(2, 2) - 1/70 x DATA(2, -1) + + 2 2 2 + + 1/70 x DATA(-2, 1) - 1/40 x y DATA(-1, 2) - 1/20 x y DATA(-2, 2) + + 2 2 2 + - 1/20 x y DATA(1, 1) - 1/10 x y DATA(-2, -1) - 1/20 x y DATA(2, -2) + + 2 2 2 + + 1/40 x y DATA(1, 2) - 1/49 x y DATA(-2, -1) + 2/49 x y DATA(2, -2) + + 2 2 2 + - 1/40 x y DATA(1, -2) + 1/10 x y DATA(-2, 1) - 1/20 x y DATA(-1, -1) + + 2 2 2 + + 1/20 x y DATA(1, -1) + 1/20 x y DATA(-1, 1) - 1/10 x y DATA(2, 1) + + 2 2 2 + - 1/20 y DATA(-1, -2) + 1/20 y DATA(-2, 2) - 1/10 y DATA(-2, 1) + + 2 2 2 + + 1/10 y DATA(-1, -1) + 1/10 y DATA(1, -1) + 1/20 y DATA(-1, 2) + + 2 2 2 + + 1/20 y DATA(2, 2) + 1/10 y DATA(2, -1) - 1/10 y DATA(2, 1) + + 2 2 2 + + 1/20 y DATA(1, 2) + 1/98 x y DATA(1, -1) + 1/98 x y DATA(-1, 1) + + 2 2 2 + - 1/49 x y DATA(2, 1) - 1/49 x y DATA(-1, 2) - 1/49 x y DATA(-1, -2) + + 2 2 2 + + 1/40 x y DATA(-1, -2) + 1/20 x y DATA(-2, -2) + 2/49 x y DATA(-2, -2) + + 2 289 181 + + 1/98 x y DATA(1, 1) - ---- y DATA(-2, 2) + --- y DATA(-1, -1) + 2940 735 + + 181 181 226 + + --- y DATA(1, -1) + --- y DATA(-1, 1) + --- y DATA(2, 1) + 735 735 735 + + 71 71 289 + + ---- y DATA(-1, 2) + ---- y DATA(1, 2) - ---- y DATA(2, 2) + 2940 2940 2940 + + 3 3 3 + - 2/15 y DATA(-1, 1) - 2/15 y DATA(2, 1) + 1/30 y DATA(-1, -2) + + 3 3 3 + + 1/30 y DATA(-2, -2) - 2/15 y DATA(1, 1) - 2/15 y DATA(-2, -1) + + 3 3 3 + + 1/30 y DATA(2, -2) + 1/30 y DATA(1, -2) + 1/30 y DATA(-2, 2) + + 3 3 3 + - 2/15 y DATA(-2, 1) - 2/15 y DATA(-1, -1) - 2/15 y DATA(1, -1) + + 2 226 71 + - 1/10 y DATA(-1, 1) + --- y DATA(-2, 1) + ---- y DATA(-1, -2) + 735 2940 + + 289 181 226 + - ---- y DATA(-2, -2) + --- y DATA(1, 1) + --- y DATA(-2, -1) + 2940 735 735 + + 289 71 + - ---- y DATA(2, -2) + ---- y DATA(1, -2) + 1/35 x y DATA(-2, -1) + 2940 2940 + + + 1/70 x y DATA(-1, 1) - 1/35 x y DATA(2, 1) + 2/35 x y DATA(2, -2) + + - 2/35 x y DATA(-2, 2) - 1/35 x y DATA(-1, -2) + 2/35 x y DATA(2, 2) + + 2 2 + + 1/70 x y DATA(-1, -1) - 1/49 x y DATA(1, 2) + 2/49 x y DATA(2, 2) + + 2 2 2 + - 1/49 x y DATA(2, -1) - 1/49 x y DATA(1, -2) + 2/49 x y DATA(-2, 2) + + 2 2 3 + - 1/49 x y DATA(-2, 1) + 1/98 x y DATA(-1, -1) - 1/30 x DATA(1, 2) + + 3 3 3 + + 1/60 x DATA(2, 2) - 1/120 x DATA(2, -1) - 1/60 x DATA(1, 1) + + 3 3 226 + + 1/120 x DATA(-2, -1) - 1/60 x DATA(2, -2) + --- y DATA(2, -1) + 735 + + 3 3 3 + + 1/30 y DATA(-1, 2) + 1/30 y DATA(1, 2) + 1/30 y DATA(2, 2) + + 3 + - 2/15 y DATA(2, -1) + 1/35 x y DATA(-2, 1) + 1/35 x y DATA(1, 2) + + - 1/35 x y DATA(-1, 2) - 1/35 x y DATA(2, -1) - 2/35 x y DATA(-2, -2) + + 2 2 + - 1/70 x y DATA(1, 1) + 1/20 x y DATA(2, 2) + 1/10 x y DATA(2, -1) + + 11 + - 1/70 x y DATA(1, -1) + --- DATA(2, 1) + 1/84 DATA(-1, 2) + 105 + + 17 31 11 + + --- DATA(0, 2) + 1/84 DATA(1, 2) - --- DATA(2, 2) - --- DATA(2, -1) + 420 420 105 + +> coeff_as_lc_of_data(%, posn_list_2d_size5); +bytes used=86091376, alloc=2424388, time=7.63 + 3 2 31 2 2 289 +[COEFF(-2, -2) = 1/30 y + 2/49 x y + --- + 1/20 x y - 1/35 x - ---- y + 420 2940 + + 11 3 2 21 2 + - --- x + 1/60 x - 2/35 x y - 1/20 y , COEFF(-1, -2) = --- x + 1/40 x y + 150 200 + + 2 2 71 2 3 + - 1/35 x y - 1/20 y + 1/70 x - 1/84 + ---- y - 1/49 x y + 1/30 y + 2940 + + 3 + - 1/30 x , + + 17 3 2 2 191 2 + COEFF(0, -2) = - --- + 1/30 y - 1/20 y + 1/35 x + ---- y - 2/49 x y, + 420 2940 + + 3 2 2 2 + COEFF(1, -2) = 1/30 y - 1/49 x y + 1/70 x + 1/35 x y - 1/84 - 1/40 x y + + 71 3 21 2 289 + + ---- y + 1/30 x - --- x - 1/20 y , COEFF(2, -2) = 2/35 x y - ---- y + 2940 200 2940 + + 3 2 11 3 2 2 31 + - 1/60 x - 1/20 y + --- x + 1/30 y + 2/49 x y - 1/20 x y + --- + 150 420 + + 2 3 21 11 226 + - 1/35 x , COEFF(-2, -1) = - 2/15 y + --- x - --- + 1/35 x y + --- y + 200 105 735 + + 2 3 2 2 2 + - 1/70 x + 1/120 x - 1/10 x y - 1/49 x y + 1/10 y , COEFF(-1, -1) = + + 2 3 2 3 2 2 + 1/140 x - 2/15 y + 1/10 y + 1/70 x y - 1/60 x + 1/98 x y - 1/20 x y + + 37 31 181 + + --- x - --- + --- y, + 300 210 735 + + 166 17 3 2 2 2 + COEFF(0, -1) = --- y - --- - 2/15 y + 1/49 x y + 1/10 y + 1/70 x , + 735 105 + + 181 31 2 37 2 + COEFF(1, -1) = --- y - 1/70 x y - --- + 1/20 x y - --- x + 1/140 x + 735 210 300 + + 3 3 2 2 2 + - 2/15 y + 1/60 x + 1/10 y + 1/98 x y, COEFF(2, -1) = - 1/49 x y + + 2 3 11 3 2 21 + + 1/10 x y - 1/35 x y - 1/120 x - --- - 2/15 y - 1/70 x - --- x + 105 200 + + 226 2 2 3 41 + + --- y + 1/10 y , COEFF(-2, 0) = - 2/49 x y + 2/35 x y + 1/5 y - -- y, + 735 98 + + 53 2 3 + COEFF(-1, 0) = - -- y + 1/35 x y + 1/49 x y + 1/5 y , + 98 + + 57 3 2 + COEFF(0, 0) = - -- y + 1/5 y + 2/49 x y, + 98 + + 2 3 53 + COEFF(1, 0) = 1/49 x y - 1/35 x y + 1/5 y - -- y, + 98 + + 3 41 2 2 + COEFF(2, 0) = 1/5 y - -- y - 2/35 x y - 2/49 x y, COEFF(-2, 1) = 1/70 x + 98 + + 3 2 2 21 2 226 + - 2/15 y + 1/10 x y - 1/49 x y - --- x - 1/10 y + 1/35 x y + --- y + 200 735 + + 3 11 3 181 31 + - 1/120 x + ---, COEFF(-1, 1) = 1/60 x + --- y + 1/70 x y + --- + 105 735 210 + + 2 3 2 37 2 2 + - 1/140 x - 2/15 y + 1/98 x y - --- x - 1/10 y + 1/20 x y , + 300 + + 2 166 17 3 2 2 + COEFF(0, 1) = 1/49 x y + --- y + --- - 2/15 y - 1/70 x - 1/10 y , + 735 105 + + 3 37 2 3 + COEFF(1, 1) = - 1/60 x + --- x - 1/20 x y - 2/15 y - 1/70 x y + 300 + + 2 2 31 2 181 2 + + 1/98 x y - 1/140 x + --- - 1/10 y + --- y, COEFF(2, 1) = - 1/10 y + 210 735 + + 3 226 3 21 2 11 + + 1/120 x + --- y - 2/15 y + --- x - 1/49 x y + --- - 1/35 x y + 735 200 105 + + 2 2 2 289 31 + + 1/70 x - 1/10 x y , COEFF(-2, 2) = 1/35 x - ---- y - 2/35 x y - --- + 2940 420 + + 3 2 2 3 2 11 + + 1/30 y + 2/49 x y + 1/20 y - 1/60 x - 1/20 x y + --- x, + 150 + + 21 2 71 3 2 + COEFF(-1, 2) = - --- x - 1/49 x y + ---- y + 1/30 x - 1/40 x y + 1/84 + 200 2940 + + 2 3 2 + + 1/20 y + 1/30 y - 1/70 x - 1/35 x y, + + 3 191 2 2 17 2 + COEFF(0, 2) = 1/30 y + ---- y - 1/35 x + 1/20 y + --- - 2/49 x y, + 2940 420 + + 71 2 2 2 + COEFF(1, 2) = ---- y + 1/20 y + 1/35 x y + 1/84 - 1/49 x y + 1/40 x y + 2940 + + 21 3 2 3 3 + + --- x - 1/30 x - 1/70 x + 1/30 y , COEFF(2, 2) = 2/35 x y + 1/60 x + 200 + + 2 11 2 2 31 2 3 + + 2/49 x y - --- x + 1/35 x + 1/20 x y - --- + 1/20 y + 1/30 y + 150 420 + + 289 + - ---- y] + 2940 + +> print_coeff__lc_of_data(%, "coeff_dy_", "fp", +> "2d.coeffs/2d.cube.order4.smooth0/coeff-dy.compute.c"); +bytes used=87092024, alloc=2424388, time=7.70 +bytes used=88092208, alloc=2424388, time=7.78 +bytes used=89094012, alloc=2424388, time=7.84 +bytes used=90094172, alloc=2424388, time=8.01 +bytes used=91094348, alloc=2424388, time=8.09 +bytes used=92098472, alloc=2424388, time=8.22 +bytes used=93098676, alloc=2424388, time=8.32 +bytes used=94098888, alloc=2424388, time=8.43 +bytes used=95099056, alloc=2424388, time=8.55 +bytes used=96099324, alloc=2424388, time=8.68 +bytes used=97099576, alloc=2424388, time=8.80 +> +# d^2/dx^2 +> simplify( diff(interp_2d_cube_order4_smooth0,x,x) ); +bytes used=98099784, alloc=2424388, time=8.86 + 41 226 2 2 +- -- DATA(0, -2) + --- DATA(-1, -2) - 2/5 x DATA(1, 0) + 3/5 x DATA(0, 0) + 98 735 + + 289 57 166 53 + - ---- DATA(-2, -2) - -- DATA(0, 0) + --- DATA(1, 0) - -- DATA(0, 1) + 2940 98 735 98 + + 181 71 2 + + --- DATA(1, 1) + ---- DATA(-2, -1) + 2/49 y DATA(0, 0) + 735 2940 + + 2 2 2 + - 2/49 y DATA(2, 0) + 1/49 y DATA(-1, 0) - 2/49 y DATA(-2, 0) + + 2 289 226 + + 1/49 y DATA(1, 0) - ---- DATA(2, -2) + --- DATA(1, -2) + 2940 735 + + 289 71 191 + - ---- DATA(-2, 2) + ---- DATA(-2, 1) + ---- DATA(-2, 0) + 2940 2940 2940 + + 2 181 53 181 + + 3/5 x DATA(0, 2) + --- DATA(-1, -1) - -- DATA(0, -1) + --- DATA(1, -1) + 735 98 735 + + 166 181 + + --- DATA(-1, 0) + --- DATA(-1, 1) + 2/35 y DATA(0, -2) + 735 735 + + - 1/35 y DATA(0, 1) + 1/35 y DATA(0, -1) - 2/35 y DATA(0, 2) + + 2 2 2 + - 2/49 y DATA(0, -2) + 1/49 y DATA(0, 1) + 1/49 y DATA(0, -1) + + 2 2 2 + - 2/49 y DATA(0, 2) + 3/5 x DATA(0, -2) + 3/5 x DATA(0, 1) + + 2 2 + + 3/5 x DATA(0, -1) + 1/10 x DATA(-2, 0) + 1/5 x DATA(-1, -1) + + 2 + - 2/5 x DATA(-1, 0) - 1/5 x DATA(1, -1) - 1/5 x DATA(1, 2) + + + 1/10 x DATA(2, 2) + 1/10 x DATA(2, -1) + 1/5 x DATA(-1, -2) + + 2 2 + - 1/10 x DATA(-2, -2) - 2/5 x DATA(-1, -2) + 1/10 x DATA(-2, -2) + + 2 2 2 + - 2/5 x DATA(1, 1) + 1/10 x DATA(-2, -1) + 1/10 x DATA(2, -2) + + 2 2 + - 2/5 x DATA(1, -2) + 1/10 x DATA(-2, 2) + 1/5 x DATA(-1, 1) + + - 1/5 x DATA(1, 1) - 1/10 x DATA(-2, -1) + 1/10 x DATA(2, -2) + + - 1/5 x DATA(1, -2) - 1/10 x DATA(-2, 2) - 1/10 x DATA(-2, 1) + + 2 2 2 + - 2/5 x DATA(-1, -1) - 2/5 x DATA(1, -1) - 2/5 x DATA(-1, 1) + + + 1/10 x DATA(2, 1) + 1/5 x DATA(-1, 2) + 1/5 x y DATA(1, -2) + + 2 2 2 + + 2/49 y DATA(-2, -2) + 1/98 y DATA(1, 1) - 1/49 y DATA(-2, -1) + + 2 2 2 + + 2/49 y DATA(2, -2) - 1/49 y DATA(1, -2) + 1/10 x DATA(2, 1) + + 2 2 2 + - 2/5 x DATA(-1, 2) - 2/5 x DATA(1, 2) + 1/10 x DATA(2, 2) + + 2 2 2 + + 1/10 x DATA(2, -1) + 1/10 x DATA(-2, 1) - 1/49 y DATA(-1, -2) + + 2 2 2 + + 2/49 y DATA(-2, 2) - 1/49 y DATA(-2, 1) + 1/10 x DATA(2, 0) + + 2 2 2 + + 1/98 y DATA(-1, -1) + 1/98 y DATA(1, -1) - 1/49 y DATA(-1, 2) + + 2 2 2 + + 2/49 y DATA(2, 2) - 1/49 y DATA(2, -1) - 1/49 y DATA(2, 1) + + 2 + - 1/49 y DATA(1, 2) + 2/35 y DATA(-2, 2) + 1/70 y DATA(-1, -1) + + + 1/70 y DATA(1, -1) - 1/70 y DATA(-1, 1) + 1/35 y DATA(2, 1) + + - 1/35 y DATA(-1, 2) - 1/35 y DATA(1, 2) + 2/35 y DATA(2, 2) + + 2 + + 1/98 y DATA(-1, 1) + 1/35 y DATA(-2, 1) + 1/35 y DATA(-1, -2) + + - 2/35 y DATA(-2, -2) - 1/70 y DATA(1, 1) - 1/35 y DATA(-2, -1) + + - 2/35 y DATA(2, -2) + 1/35 y DATA(1, -2) + 1/20 x y DATA(-2, -1) + + + 1/10 x y DATA(-1, 1) + 1/20 x y DATA(2, 1) - 1/10 x y DATA(2, -2) + + - 1/10 x y DATA(-2, 2) - 1/5 x y DATA(-1, -2) + 1/10 x y DATA(2, 2) + + - 1/10 x y DATA(-1, -1) - 1/35 y DATA(2, -1) - 1/20 x y DATA(-2, 1) + + - 1/5 x y DATA(1, 2) + 1/5 x y DATA(-1, 2) - 1/20 x y DATA(2, -1) + + + 1/10 x y DATA(-2, -2) - 1/10 x y DATA(1, 1) + 1/10 x y DATA(1, -1) + + 71 226 41 226 + + ---- DATA(2, 1) + --- DATA(-1, 2) - -- DATA(0, 2) + --- DATA(1, 2) + 2940 735 98 735 + + 289 71 191 + - ---- DATA(2, 2) - 1/5 x DATA(1, 0) + ---- DATA(2, -1) + ---- DATA(2, 0) + 2940 2940 2940 + + - 1/10 x DATA(-2, 0) + 1/5 x DATA(-1, 0) + 1/10 x DATA(2, 0) + +> coeff_as_lc_of_data(%, posn_list_2d_size5); +bytes used=99100008, alloc=2424388, time=8.92 + 289 2 2 +[COEFF(-2, -2) = - ---- + 1/10 x + 2/49 y - 1/10 x + 1/10 x y - 2/35 y, + 2940 + + 2 2 226 + COEFF(-1, -2) = - 1/5 x y + 1/35 y - 1/49 y - 2/5 x + 1/5 x + ---, + 735 + + 2 41 2 + COEFF(0, -2) = - 2/49 y - -- + 2/35 y + 3/5 x , + 98 + + 2 2 226 + COEFF(1, -2) = 1/35 y - 1/49 y - 2/5 x + --- - 1/5 x + 1/5 x y, + 735 + + 2 289 2 + COEFF(2, -2) = 2/49 y - ---- + 1/10 x + 1/10 x - 2/35 y - 1/10 x y, + 2940 + + 71 2 2 + COEFF(-2, -1) = - 1/10 x + ---- - 1/49 y + 1/20 x y - 1/35 y + 1/10 x , + 2940 + + 181 2 2 + COEFF(-1, -1) = - 1/10 x y + --- + 1/5 x - 2/5 x + 1/98 y + 1/70 y, + 735 + + 53 2 2 + COEFF(0, -1) = 1/35 y - -- + 3/5 x + 1/49 y , + 98 + + 181 2 2 + COEFF(1, -1) = --- + 1/70 y - 2/5 x + 1/98 y + 1/10 x y - 1/5 x, + 735 + + 71 2 2 + COEFF(2, -1) = ---- + 1/10 x + 1/10 x - 1/20 x y - 1/35 y - 1/49 y , + 2940 + + 191 2 2 + COEFF(-2, 0) = ---- - 1/10 x - 2/49 y + 1/10 x , + 2940 + + 166 2 2 + COEFF(-1, 0) = --- - 2/5 x + 1/5 x + 1/49 y , + 735 + + 2 57 2 + COEFF(0, 0) = 3/5 x - -- + 2/49 y , + 98 + + 2 166 2 + COEFF(1, 0) = - 2/5 x - 1/5 x + --- + 1/49 y , + 735 + + 2 191 2 + COEFF(2, 0) = - 2/49 y + ---- + 1/10 x + 1/10 x , + 2940 + + 2 71 2 + COEFF(-2, 1) = 1/35 y - 1/49 y - 1/10 x + ---- - 1/20 x y + 1/10 x , + 2940 + + 2 2 181 + COEFF(-1, 1) = 1/10 x y + 1/98 y - 2/5 x + --- - 1/70 y + 1/5 x, + 735 + + 53 2 2 + COEFF(0, 1) = - 1/35 y - -- + 3/5 x + 1/49 y , + 98 + + 2 2 181 + COEFF(1, 1) = - 2/5 x - 1/10 x y - 1/5 x + 1/98 y + --- - 1/70 y, + 735 + + 2 2 71 + COEFF(2, 1) = 1/10 x + 1/10 x - 1/49 y + 1/20 x y + ---- + 1/35 y, + 2940 + + 289 2 2 + COEFF(-2, 2) = - ---- - 1/10 x + 1/10 x + 2/35 y + 2/49 y - 1/10 x y, + 2940 + + 226 2 2 + COEFF(-1, 2) = - 1/35 y + 1/5 x y + --- - 1/49 y - 2/5 x + 1/5 x, + 735 + + 2 2 41 + COEFF(0, 2) = - 2/35 y + 3/5 x - 2/49 y - --, + 98 + + 2 2 226 + COEFF(1, 2) = - 1/5 x y - 1/5 x - 2/5 x - 1/49 y - 1/35 y + ---, + 735 + + 289 2 2 + COEFF(2, 2) = 1/10 x - ---- + 2/49 y + 1/10 x y + 1/10 x + 2/35 y] + 2940 + +> print_coeff__lc_of_data(%, "coeff_dxx_", "fp", +> "2d.coeffs/2d.cube.order4.smooth0/coeff-dxx.compute.c"); +bytes used=100100196, alloc=2424388, time=8.99 +bytes used=101100416, alloc=2424388, time=9.11 +bytes used=102100664, alloc=2424388, time=9.22 +bytes used=103101008, alloc=2424388, time=9.36 +bytes used=104101236, alloc=2424388, time=9.51 +bytes used=105103668, alloc=2424388, time=9.65 +> +# d^2/dxdy +> simplify( diff(interp_2d_cube_order4_smooth0,x,y) ); +bytes used=106103824, alloc=2424388, time=9.74 +21 11 37 21 +--- DATA(-1, -2) - --- DATA(-2, -2) + --- DATA(1, 1) + --- DATA(-2, -1) +200 150 300 200 + + 11 21 11 21 + + --- DATA(2, -2) - --- DATA(1, -2) + --- DATA(-2, 2) - --- DATA(-2, 1) + 150 200 150 200 + + 37 37 + + 1/35 x DATA(0, -1) + --- DATA(-1, -1) - --- DATA(1, -1) + 300 300 + + 37 + - --- DATA(-1, 1) + 2/49 x y DATA(0, -1) - 4/49 x y DATA(0, 2) + 300 + + + 1/70 x DATA(-1, -1) + 1/70 x DATA(1, -1) - 1/35 x DATA(1, 2) + + + 2/35 x DATA(2, 2) - 1/35 x DATA(2, -1) + 1/35 x DATA(-1, -2) + + 2 2 + - 2/35 x DATA(-2, -2) - 1/10 x DATA(-1, -2) + 1/20 x DATA(-2, -2) + + 2 2 2 + - 1/20 x DATA(1, 1) + 1/40 x DATA(-2, -1) - 1/20 x DATA(2, -2) + + 2 2 + + 1/10 x DATA(1, -2) - 1/20 x DATA(-2, 2) - 1/70 x DATA(-1, 1) + + - 1/70 x DATA(1, 1) - 1/35 x DATA(-2, -1) - 2/35 x DATA(2, -2) + + + 1/35 x DATA(1, -2) + 2/35 x DATA(-2, 2) + 1/35 x DATA(-2, 1) + + 2 2 2 + - 1/20 x DATA(-1, -1) + 1/20 x DATA(1, -1) + 1/20 x DATA(-1, 1) + + + 1/35 x DATA(2, 1) - 1/35 x DATA(-1, 2) - 2/49 x y DATA(1, -2) + + 2 2 2 + + 1/20 y DATA(-2, -2) - 1/20 y DATA(1, 1) - 1/10 y DATA(-2, -1) + + 2 2 2 + - 1/20 y DATA(2, -2) - 1/40 y DATA(1, -2) + 1/40 x DATA(2, 1) + + 2 2 2 + + 1/10 x DATA(-1, 2) - 1/10 x DATA(1, 2) + 1/20 x DATA(2, 2) + + 2 2 2 + - 1/40 x DATA(2, -1) - 1/40 x DATA(-2, 1) + 1/40 y DATA(-1, -2) + + 2 2 2 + - 1/20 y DATA(-2, 2) + 1/10 y DATA(-2, 1) - 1/20 y DATA(-1, -1) + + 2 2 2 + + 1/20 y DATA(1, -1) - 1/40 y DATA(-1, 2) + 1/20 y DATA(2, 2) + + 2 2 2 + + 1/10 y DATA(2, -1) - 1/10 y DATA(2, 1) + 1/40 y DATA(1, 2) + + - 2/35 y DATA(-2, 2) + 1/70 y DATA(-1, -1) - 1/70 y DATA(1, -1) + + + 1/70 y DATA(-1, 1) - 1/35 y DATA(2, 1) - 1/35 y DATA(-1, 2) + + 2 + + 1/35 y DATA(1, 2) + 2/35 y DATA(2, 2) + 1/20 y DATA(-1, 1) + + + 1/35 y DATA(-2, 1) - 1/35 y DATA(-1, -2) - 2/35 y DATA(-2, -2) + + - 1/70 y DATA(1, 1) + 1/35 y DATA(-2, -1) + 2/35 y DATA(2, -2) + + + 1/35 y DATA(1, -2) - 2/49 x y DATA(-2, -1) + 1/49 x y DATA(-1, 1) + + - 2/49 x y DATA(2, 1) + 4/49 x y DATA(2, -2) + 4/49 x y DATA(-2, 2) + + + 4/49 x y DATA(0, 0) - 2/49 x y DATA(-1, -2) + 4/49 x y DATA(2, 2) + + + 1/49 x y DATA(-1, -1) + 2/49 x y DATA(-1, 0) - 1/35 y DATA(2, -1) + + - 2/49 x y DATA(-2, 1) - 2/49 x y DATA(1, 2) - 2/49 x y DATA(-1, 2) + + - 2/49 x y DATA(2, -1) + 4/49 x y DATA(-2, -2) + 1/49 x y DATA(1, 1) + + + 1/49 x y DATA(1, -1) + 2/49 x y DATA(1, 0) + 2/49 x y DATA(0, 1) + + 21 21 21 11 + + --- DATA(2, 1) - --- DATA(-1, 2) + --- DATA(1, 2) - --- DATA(2, 2) + 200 200 200 150 + + 21 + - --- DATA(2, -1) - 1/35 y DATA(1, 0) - 2/35 x DATA(0, 2) + 200 + + + 2/35 y DATA(-2, 0) + 1/35 y DATA(-1, 0) - 2/35 y DATA(2, 0) + + + 2/35 x DATA(0, -2) - 4/49 x y DATA(-2, 0) - 1/35 x DATA(0, 1) + + - 4/49 x y DATA(2, 0) - 4/49 x y DATA(0, -2) + +> coeff_as_lc_of_data(%, posn_list_2d_size5); +bytes used=107106016, alloc=2424388, time=9.81 + 2 11 2 +[COEFF(-2, -2) = 1/20 y + 4/49 x y - 2/35 x - 2/35 y - --- + 1/20 x , + 150 + + 2 21 2 + COEFF(-1, -2) = - 2/49 x y - 1/35 y - 1/10 x + 1/35 x + --- + 1/40 y , + 200 + + COEFF(0, -2) = - 4/49 x y + 2/35 x, + + 2 21 2 + COEFF(1, -2) = 1/35 y - 2/49 x y + 1/35 x + 1/10 x - --- - 1/40 y , + 200 + + 2 2 11 + COEFF(2, -2) = - 1/20 x + 2/35 y - 1/20 y - 2/35 x + --- + 4/49 x y, + 150 + + 21 2 2 + COEFF(-2, -1) = - 2/49 x y + --- - 1/35 x - 1/10 y + 1/35 y + 1/40 x , + 200 + + 37 2 2 + COEFF(-1, -1) = 1/49 x y + 1/70 y + 1/70 x + --- - 1/20 y - 1/20 x , + 300 + + COEFF(0, -1) = 2/49 x y + 1/35 x, + + 2 37 2 + COEFF(1, -1) = 1/20 y - --- + 1/20 x + 1/70 x - 1/70 y + 1/49 x y, + 300 + + 2 2 21 + COEFF(2, -1) = 1/10 y - 1/35 y - 1/35 x - 1/40 x - --- - 2/49 x y, + 200 + + COEFF(-2, 0) = 2/35 y - 4/49 x y, COEFF(-1, 0) = 1/35 y + 2/49 x y, + + COEFF(0, 0) = 4/49 x y, COEFF(1, 0) = - 1/35 y + 2/49 x y, + + COEFF(2, 0) = - 2/35 y - 4/49 x y, + + 2 2 21 + COEFF(-2, 1) = 1/35 y + 1/10 y - 1/40 x + 1/35 x - 2/49 x y - ---, + 200 + + 2 37 2 + COEFF(-1, 1) = 1/70 y + 1/20 y + 1/49 x y - --- - 1/70 x + 1/20 x , + 300 + + COEFF(0, 1) = - 1/35 x + 2/49 x y, + + 2 2 37 + COEFF(1, 1) = - 1/70 x + 1/49 x y - 1/70 y - 1/20 x - 1/20 y + ---, + 300 + + 2 2 21 + COEFF(2, 1) = 1/35 x - 1/10 y - 1/35 y - 2/49 x y + 1/40 x + ---, + 200 + + 2 2 11 + COEFF(-2, 2) = - 1/20 x + 4/49 x y - 1/20 y + --- + 2/35 x - 2/35 y, + 150 + + 2 2 21 + COEFF(-1, 2) = - 1/40 y + 1/10 x - 2/49 x y - --- - 1/35 x - 1/35 y, + 200 + + COEFF(0, 2) = - 2/35 x - 4/49 x y, + + 2 2 21 + COEFF(1, 2) = - 1/35 x + 1/35 y + 1/40 y - 2/49 x y - 1/10 x + ---, + 200 + + 2 11 2 + COEFF(2, 2) = 1/20 y + 4/49 x y + 2/35 y + 2/35 x - --- + 1/20 x ] + 150 + +> print_coeff__lc_of_data(%, "coeff_dxy_", "fp", +> "2d.coeffs/2d.cube.order4.smooth0/coeff-dxy.compute.c"); +bytes used=108106268, alloc=2424388, time=9.87 +bytes used=109106456, alloc=2424388, time=9.97 +bytes used=110108000, alloc=2424388, time=10.08 +bytes used=111108304, alloc=2424388, time=10.22 +bytes used=112108480, alloc=2424388, time=10.40 +bytes used=113108824, alloc=2424388, time=10.56 +bytes used=114109048, alloc=2424388, time=10.72 +> +# d^2/dy^2 +> simplify( diff(interp_2d_cube_order4_smooth0,y,y) ); +bytes used=115109200, alloc=2424388, time=10.80 +191 71 289 57 +---- DATA(0, -2) + ---- DATA(-1, -2) - ---- DATA(-2, -2) - -- DATA(0, 0) +2940 2940 2940 98 + + 53 166 181 226 + - -- DATA(1, 0) + --- DATA(0, 1) + --- DATA(1, 1) + --- DATA(-2, -1) + 98 735 735 735 + + 289 71 289 226 + - ---- DATA(2, -2) + ---- DATA(1, -2) - ---- DATA(-2, 2) + --- DATA(-2, 1) + 2940 2940 2940 735 + + 41 2 2 + - -- DATA(-2, 0) + 3/5 y DATA(-1, 0) + 3/5 y DATA(0, 0) + 98 + + 2 2 2 + + 1/10 y DATA(0, 2) + 3/5 y DATA(-2, 0) - 2/5 y DATA(0, -1) + + 2 2 + - 2/5 y DATA(0, 1) + 3/5 y DATA(2, 0) - 1/35 x DATA(1, 0) + + 2 2 + + 3/5 y DATA(1, 0) - 2/35 x DATA(2, 0) - 2/49 x DATA(0, 2) + + 2 2 2 + + 1/10 y DATA(0, -2) + 1/49 x DATA(1, 0) + 1/49 x DATA(0, 1) + + 2 + + 2/35 x DATA(-2, 0) + 1/35 x DATA(-1, 0) - 2/49 x DATA(-2, 0) + + 2 2 2 + + 1/49 x DATA(0, -1) - 2/49 x DATA(0, -2) + 1/49 x DATA(-1, 0) + + 2 2 + - 2/49 x DATA(2, 0) + 2/49 x DATA(0, 0) + 1/10 y DATA(0, 2) + + - 1/10 y DATA(0, -2) - 1/5 y DATA(0, 1) + 1/5 y DATA(0, -1) + + 181 166 181 53 + + --- DATA(-1, -1) + --- DATA(0, -1) + --- DATA(1, -1) - -- DATA(-1, 0) + 735 735 735 98 + + 181 + + --- DATA(-1, 1) + 1/70 x DATA(-1, -1) - 1/70 x DATA(1, -1) + 735 + + + 1/35 x DATA(1, 2) + 2/35 x DATA(2, 2) - 1/35 x DATA(2, -1) + + 2 + - 1/35 x DATA(-1, -2) - 2/35 x DATA(-2, -2) - 1/49 x DATA(-1, -2) + + 2 2 2 + + 2/49 x DATA(-2, -2) + 1/98 x DATA(1, 1) - 1/49 x DATA(-2, -1) + + 2 2 2 + + 2/49 x DATA(2, -2) - 1/49 x DATA(1, -2) + 2/49 x DATA(-2, 2) + + + 1/70 x DATA(-1, 1) - 1/70 x DATA(1, 1) + 1/35 x DATA(-2, -1) + + + 2/35 x DATA(2, -2) + 1/35 x DATA(1, -2) - 2/35 x DATA(-2, 2) + + 2 2 + + 1/35 x DATA(-2, 1) + 1/98 x DATA(-1, -1) + 1/98 x DATA(1, -1) + + 2 + + 1/98 x DATA(-1, 1) - 1/35 x DATA(2, 1) - 1/35 x DATA(-1, 2) + + 2 2 + - 1/20 x y DATA(1, -2) + 1/10 y DATA(-2, -2) - 2/5 y DATA(1, 1) + + 2 2 2 + - 2/5 y DATA(-2, -1) + 1/10 y DATA(2, -2) + 1/10 y DATA(1, -2) + + 2 2 2 + - 1/49 x DATA(2, 1) - 1/49 x DATA(-1, 2) - 1/49 x DATA(1, 2) + + 2 2 2 + + 2/49 x DATA(2, 2) - 1/49 x DATA(2, -1) - 1/49 x DATA(-2, 1) + + 2 2 2 + + 1/10 y DATA(-1, -2) + 1/10 y DATA(-2, 2) - 2/5 y DATA(-2, 1) + + 2 2 2 + - 2/5 y DATA(-1, -1) - 2/5 y DATA(1, -1) + 1/10 y DATA(-1, 2) + + 2 2 2 + + 1/10 y DATA(2, 2) - 2/5 y DATA(2, -1) - 2/5 y DATA(2, 1) + + 2 + + 1/10 y DATA(1, 2) + 1/10 y DATA(-2, 2) + 1/5 y DATA(-1, -1) + + + 1/5 y DATA(1, -1) - 1/5 y DATA(-1, 1) - 1/5 y DATA(2, 1) + + + 1/10 y DATA(-1, 2) + 1/10 y DATA(1, 2) + 1/10 y DATA(2, 2) + + 2 + - 2/5 y DATA(-1, 1) - 1/5 y DATA(-2, 1) - 1/10 y DATA(-1, -2) + + - 1/10 y DATA(-2, -2) - 1/5 y DATA(1, 1) + 1/5 y DATA(-2, -1) + + - 1/10 y DATA(2, -2) - 1/10 y DATA(1, -2) - 1/5 x y DATA(-2, -1) + + + 1/10 x y DATA(-1, 1) - 1/5 x y DATA(2, 1) - 1/10 x y DATA(2, -2) + + - 1/10 x y DATA(-2, 2) + 1/20 x y DATA(-1, -2) + 1/10 x y DATA(2, 2) + + - 1/10 x y DATA(-1, -1) + 1/5 y DATA(2, -1) + 1/5 x y DATA(-2, 1) + + + 1/20 x y DATA(1, 2) - 1/20 x y DATA(-1, 2) + 1/5 x y DATA(2, -1) + + + 1/10 x y DATA(-2, -2) - 1/10 x y DATA(1, 1) + 1/10 x y DATA(1, -1) + + 226 71 191 71 + + --- DATA(2, 1) + ---- DATA(-1, 2) + ---- DATA(0, 2) + ---- DATA(1, 2) + 735 2940 2940 2940 + + 289 226 41 + - ---- DATA(2, 2) + --- DATA(2, -1) - -- DATA(2, 0) + 2940 735 98 + +> coeff_as_lc_of_data(%, posn_list_2d_size5); +bytes used=116109468, alloc=2424388, time=10.86 + 2 289 2 +[COEFF(-2, -2) = - 1/10 y - 2/35 x + 2/49 x - ---- + 1/10 x y + 1/10 y , + 2940 + + 2 2 71 + COEFF(-1, -2) = 1/10 y - 1/35 x - 1/49 x + ---- + 1/20 x y - 1/10 y, + 2940 + + 191 2 2 + COEFF(0, -2) = - 1/10 y + ---- - 2/49 x + 1/10 y , + 2940 + + 2 71 2 + COEFF(1, -2) = - 1/20 x y + 1/10 y + ---- + 1/35 x - 1/10 y - 1/49 x , + 2940 + + 2 289 2 + COEFF(2, -2) = 2/49 x - 1/10 x y + 2/35 x - ---- - 1/10 y + 1/10 y , + 2940 + + 2 2 226 + COEFF(-2, -1) = - 1/5 x y - 2/5 y - 1/49 x + --- + 1/35 x + 1/5 y, + 735 + + 2 181 2 + COEFF(-1, -1) = - 2/5 y + --- + 1/70 x + 1/98 x - 1/10 x y + 1/5 y, + 735 + + 2 166 2 + COEFF(0, -1) = - 2/5 y + --- + 1/5 y + 1/49 x , + 735 + + 2 2 181 + COEFF(1, -1) = 1/5 y + 1/98 x - 2/5 y + --- - 1/70 x + 1/10 x y, + 735 + + 2 226 2 + COEFF(2, -1) = - 1/35 x + 1/5 x y + 1/5 y - 2/5 y + --- - 1/49 x , + 735 + + 2 2 41 + COEFF(-2, 0) = 3/5 y + 2/35 x - 2/49 x - --, + 98 + + 53 2 2 + COEFF(-1, 0) = - -- + 1/35 x + 3/5 y + 1/49 x , + 98 + + 2 57 2 + COEFF(0, 0) = 2/49 x - -- + 3/5 y , + 98 + + 2 2 53 + COEFF(1, 0) = - 1/35 x + 1/49 x + 3/5 y - --, + 98 + + 2 2 41 + COEFF(2, 0) = - 2/49 x - 2/35 x + 3/5 y - --, + 98 + + 2 2 226 + COEFF(-2, 1) = - 1/5 y - 2/5 y - 1/49 x + 1/5 x y + 1/35 x + ---, + 735 + + 2 181 2 + COEFF(-1, 1) = 1/98 x - 1/5 y + 1/70 x + --- - 2/5 y + 1/10 x y, + 735 + + 2 166 2 + COEFF(0, 1) = - 1/5 y + 1/49 x + --- - 2/5 y , + 735 + + 2 181 2 + COEFF(1, 1) = - 2/5 y - 1/10 x y - 1/70 x - 1/5 y + --- + 1/98 x , + 735 + + 2 226 2 + COEFF(2, 1) = - 1/35 x - 2/5 y - 1/5 x y - 1/5 y + --- - 1/49 x , + 735 + + 2 2 289 + COEFF(-2, 2) = 2/49 x - 2/35 x + 1/10 y + 1/10 y - 1/10 x y - ----, + 2940 + + 2 71 2 + COEFF(-1, 2) = 1/10 y + 1/10 y + ---- - 1/20 x y - 1/49 x - 1/35 x, + 2940 + + 2 2 191 + COEFF(0, 2) = 1/10 y + 1/10 y - 2/49 x + ----, + 2940 + + 2 71 2 + COEFF(1, 2) = 1/10 y + 1/35 x + 1/20 x y - 1/49 x + ---- + 1/10 y , + 2940 + + 2 2 289 + COEFF(2, 2) = 1/10 y + 1/10 y + 2/35 x + 2/49 x + 1/10 x y - ----] + 2940 + +> print_coeff__lc_of_data(%, "coeff_dyy_", "fp", +> "2d.coeffs/2d.cube.order4.smooth0/coeff-dyy.compute.c"); +bytes used=117109700, alloc=2424388, time=10.93 +bytes used=118109892, alloc=2424388, time=11.00 +bytes used=119110028, alloc=2424388, time=11.16 +bytes used=120110160, alloc=2424388, time=11.28 +bytes used=121110344, alloc=2424388, time=11.37 +bytes used=122110608, alloc=2424388, time=11.52 +> +######################################## +> quit +bytes used=123087056, alloc=2424388, time=11.65 diff --git a/src/GeneralizedPolynomial-Uniform/2d.maple b/src/GeneralizedPolynomial-Uniform/2d.maple new file mode 100644 index 0000000..719c913 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/2d.maple @@ -0,0 +1,415 @@ +# Maple code to compute 2-D Lagrange interpolation coefficients (orders 1-4) +# $Id$ + +################################################################################ + +# +# interpolating functions +# + +fn_2d_order1 := +proc(x,y) ++ c01*y ++ c00 + c10*x +end proc; + +fn_2d_order2 := +proc(x,y) ++ c02*y^2 ++ c01*y + c11*x*y ++ c00 + c10*x + c20*x^2 +end proc; + +fn_2d_order3 := +proc(x,y) ++ c03*y^3 ++ c02*y^2 + c12*x*y^2 ++ c01*y + c11*x*y + c21*x^2*y ++ c00 + c10*x + c20*x^2 + c30*x^3 +end proc; + +fn_2d_order4 := +proc(x,y) ++ c04*y^4 ++ c03*y^3 + c13*x*y^3 ++ c02*y^2 + c12*x*y^2 + c22*x^2*y^2 ++ c01*y + c11*x*y + c21*x^2*y + c31*x^3*y ++ c00 + c10*x + c20*x^2 + c30*x^3 + c40*x^4 +end; + +######################################## + +# +# coefficients in interpolating functions +# + +coeff_list_2d_order1 := [ + c01, + c00, c10 + ]; +coeff_list_2d_order2 := [ + c02, + c01, c11, + c00, c10, c20 + ]; +coeff_list_2d_order3 := [ + c03, + c02, c12, + c01, c11, c21, + c00, c10, c20, c30 + ]; +coeff_list_2d_order4 := [ + c04, + c03, c13, + c02, c12, c22, + c01, c11, c21, c31, + c00, c10, c20, c30, c40 + ]; + +######################################## + +# +# coordinates and interpolation points +# + +coord_list_2d := [x,y]; + +# generate points in Fortran ordering +posn_list_2d_size2 := map(ListTools[Reverse], hypercube_points([ 0, 0], [+1,+1])); +posn_list_2d_size3 := map(ListTools[Reverse], hypercube_points([-1,-1], [+1,+1])); +posn_list_2d_size4 := map(ListTools[Reverse], hypercube_points([-1,-1], [+2,+2])); +posn_list_2d_size5 := map(ListTools[Reverse], hypercube_points([-2,-2], [+2,+2])); + +################################################################################ + +# +# generic stuff for 2d, cube, size=2 +# + +data_var_list_2d_size2 := map(data_var_name, posn_list_2d_size2, "data_"); + +print_name_list_dcl(data_var_list_2d_size2, + "fp", "2d.coeffs/2d.cube.size2/data-var.dcl.c"); +print_data_var_assign(posn_list_2d_size2, + "data_", "2d.coeffs/2d.cube.size2/data-var.assign.c"); + +print_name_list_dcl(map(coeff_name, posn_list_2d_size2, "coeff_I_"), + "fp", "2d.coeffs/2d.cube.size2/coeff-I.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_2d_size2, "coeff_dx_"), + "fp", "2d.coeffs/2d.cube.size2/coeff-dx.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_2d_size2, "coeff_dy_"), + "fp", "2d.coeffs/2d.cube.size2/coeff-dy.dcl.c"); + +print_interp_cmpt__lc_of_data(posn_list_2d_size2, + "result", "coeff_I_", "data_", + "2d.coeffs/2d.cube.size2/interp-I.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_2d_size2, + "result", "coeff_dx_", "data_", + "2d.coeffs/2d.cube.size2/interp-dx.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_2d_size2, + "result", "coeff_dy_", "data_", + "2d.coeffs/2d.cube.size2/interp-dy.compute.c"); + +######################################## + +# +# generic stuff for 2d, cube, size=3 +# + +data_var_list_2d_size3 := map(data_var_name, posn_list_2d_size3, "data_"); + +print_name_list_dcl(data_var_list_2d_size3, + "fp", "2d.coeffs/2d.cube.size3/data-var.dcl.c"); +print_data_var_assign(posn_list_2d_size3, + "data_", "2d.coeffs/2d.cube.size3/data-var.assign.c"); + +print_name_list_dcl(map(coeff_name, posn_list_2d_size3, "coeff_I_"), + "fp", "2d.coeffs/2d.cube.size3/coeff-I.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_2d_size3, "coeff_dx_"), + "fp", "2d.coeffs/2d.cube.size3/coeff-dx.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_2d_size3, "coeff_dy_"), + "fp", "2d.coeffs/2d.cube.size3/coeff-dy.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_2d_size3, "coeff_dxx_"), + "fp", "2d.coeffs/2d.cube.size3/coeff-dxx.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_2d_size3, "coeff_dxy_"), + "fp", "2d.coeffs/2d.cube.size3/coeff-dxy.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_2d_size3, "coeff_dyy_"), + "fp", "2d.coeffs/2d.cube.size3/coeff-dyy.dcl.c"); + +print_interp_cmpt__lc_of_data(posn_list_2d_size3, + "result", "coeff_I_", "data_", + "2d.coeffs/2d.cube.size3/interp-I.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_2d_size3, + "result", "coeff_dx_", "data_", + "2d.coeffs/2d.cube.size3/interp-dx.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_2d_size3, + "result", "coeff_dy_", "data_", + "2d.coeffs/2d.cube.size3/interp-dy.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_2d_size3, + "result", "coeff_dxx_", "data_", + "2d.coeffs/2d.cube.size3/interp-dxx.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_2d_size3, + "result", "coeff_dxy_", "data_", + "2d.coeffs/2d.cube.size3/interp-dxy.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_2d_size3, + "result", "coeff_dyy_", "data_", + "2d.coeffs/2d.cube.size3/interp-dyy.compute.c"); + +######################################## + +# +# generic stuff for 2d, cube, size=4 +# + +data_var_list_2d_size4 := map(data_var_name, posn_list_2d_size4, "data_"); + +print_name_list_dcl(data_var_list_2d_size4, + "fp", "2d.coeffs/2d.cube.size4/data-var.dcl.c"); +print_data_var_assign(posn_list_2d_size4, + "data_", "2d.coeffs/2d.cube.size4/data-var.assign.c"); + +print_name_list_dcl(map(coeff_name, posn_list_2d_size4, "coeff_I_"), + "fp", "2d.coeffs/2d.cube.size4/coeff-I.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_2d_size4, "coeff_dx_"), + "fp", "2d.coeffs/2d.cube.size4/coeff-dx.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_2d_size4, "coeff_dy_"), + "fp", "2d.coeffs/2d.cube.size4/coeff-dy.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_2d_size4, "coeff_dxx_"), + "fp", "2d.coeffs/2d.cube.size4/coeff-dxx.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_2d_size4, "coeff_dxy_"), + "fp", "2d.coeffs/2d.cube.size4/coeff-dxy.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_2d_size4, "coeff_dyy_"), + "fp", "2d.coeffs/2d.cube.size4/coeff-dyy.dcl.c"); + +print_interp_cmpt__lc_of_data(posn_list_2d_size4, + "result", "coeff_I_", "data_", + "2d.coeffs/2d.cube.size4/interp-I.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_2d_size4, + "result", "coeff_dx_", "data_", + "2d.coeffs/2d.cube.size4/interp-dx.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_2d_size4, + "result", "coeff_dy_", "data_", + "2d.coeffs/2d.cube.size4/interp-dy.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_2d_size4, + "result", "coeff_dxx_", "data_", + "2d.coeffs/2d.cube.size4/interp-dxx.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_2d_size4, + "result", "coeff_dxy_", "data_", + "2d.coeffs/2d.cube.size4/interp-dxy.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_2d_size4, + "result", "coeff_dyy_", "data_", + "2d.coeffs/2d.cube.size4/interp-dyy.compute.c"); + +######################################## + +# +# generic stuff for 2d, cube, size=5 +# + +data_var_list_2d_size5 := map(data_var_name, posn_list_2d_size5, "data_"); + +print_name_list_dcl(data_var_list_2d_size5, + "fp", "2d.coeffs/2d.cube.size5/data-var.dcl.c"); +print_data_var_assign(posn_list_2d_size5, + "data_", "2d.coeffs/2d.cube.size5/data-var.assign.c"); + +print_name_list_dcl(map(coeff_name, posn_list_2d_size5, "coeff_I_"), + "fp", "2d.coeffs/2d.cube.size5/coeff-I.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_2d_size5, "coeff_dx_"), + "fp", "2d.coeffs/2d.cube.size5/coeff-dx.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_2d_size5, "coeff_dy_"), + "fp", "2d.coeffs/2d.cube.size5/coeff-dy.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_2d_size5, "coeff_dxx_"), + "fp", "2d.coeffs/2d.cube.size5/coeff-dxx.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_2d_size5, "coeff_dxy_"), + "fp", "2d.coeffs/2d.cube.size5/coeff-dxy.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_2d_size5, "coeff_dyy_"), + "fp", "2d.coeffs/2d.cube.size5/coeff-dyy.dcl.c"); + +print_interp_cmpt__lc_of_data(posn_list_2d_size5, + "result", "coeff_I_", "data_", + "2d.coeffs/2d.cube.size5/interp-I.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_2d_size5, + "result", "coeff_dx_", "data_", + "2d.coeffs/2d.cube.size5/interp-dx.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_2d_size5, + "result", "coeff_dy_", "data_", + "2d.coeffs/2d.cube.size5/interp-dy.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_2d_size5, + "result", "coeff_dxx_", "data_", + "2d.coeffs/2d.cube.size5/interp-dxx.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_2d_size5, + "result", "coeff_dxy_", "data_", + "2d.coeffs/2d.cube.size5/interp-dxy.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_2d_size5, + "result", "coeff_dyy_", "data_", + "2d.coeffs/2d.cube.size5/interp-dyy.compute.c"); + + +################################################################################ + +# +# 2d, cube, order=1, smoothing=0 (size=2) +# + +# interpolating polynomial +interp_2d_cube_order1_smooth0 + := polynomial_interpolant(fn_2d_order1, coeff_list_2d_order1, + coord_list_2d, posn_list_2d_size2); + +# I +coeff_as_lc_of_data(%, posn_list_2d_size2); +print_coeff__lc_of_data(%, "coeff_I_", "fp", + "2d.coeffs/2d.cube.order1.smooth0/coeff-I.compute.c"); + +# d/dx +simplify( diff(interp_2d_cube_order1_smooth0,x) ); +coeff_as_lc_of_data(%, posn_list_2d_size2); +print_coeff__lc_of_data(%, "coeff_dx_", "fp", + "2d.coeffs/2d.cube.order1.smooth0/coeff-dx.compute.c"); + +# d/dy +simplify( diff(interp_2d_cube_order1_smooth0,y) ); +coeff_as_lc_of_data(%, posn_list_2d_size2); +print_coeff__lc_of_data(%, "coeff_dy_", "fp", + "2d.coeffs/2d.cube.order1.smooth0/coeff-dy.compute.c"); + +######################################## + +# +# 2d, cube, order=2, smoothing=0 (size=3) +# + +# interpolating polynomial +interp_2d_cube_order2_smooth0 + := polynomial_interpolant(fn_2d_order2, coeff_list_2d_order2, + coord_list_2d, posn_list_2d_size3); + +# I +coeff_as_lc_of_data(%, posn_list_2d_size3); +print_coeff__lc_of_data(%, "coeff_I_", "fp", + "2d.coeffs/2d.cube.order2.smooth0/coeff-I.compute.c"); + +# d/dx +simplify( diff(interp_2d_cube_order2_smooth0,x) ); +coeff_as_lc_of_data(%, posn_list_2d_size3); +print_coeff__lc_of_data(%, "coeff_dx_", "fp", + "2d.coeffs/2d.cube.order2.smooth0/coeff-dx.compute.c"); + +# d/dy +simplify( diff(interp_2d_cube_order2_smooth0,y) ); +coeff_as_lc_of_data(%, posn_list_2d_size3); +print_coeff__lc_of_data(%, "coeff_dy_", "fp", + "2d.coeffs/2d.cube.order2.smooth0/coeff-dy.compute.c"); + +# d^2/dx^2 +simplify( diff(interp_2d_cube_order2_smooth0,x,x) ); +coeff_as_lc_of_data(%, posn_list_2d_size3); +print_coeff__lc_of_data(%, "coeff_dxx_", "fp", + "2d.coeffs/2d.cube.order2.smooth0/coeff-dxx.compute.c"); + +# d^2/dxdy +simplify( diff(interp_2d_cube_order2_smooth0,x,y) ); +coeff_as_lc_of_data(%, posn_list_2d_size3); +print_coeff__lc_of_data(%, "coeff_dxy_", "fp", + "2d.coeffs/2d.cube.order2.smooth0/coeff-dxy.compute.c"); + +# d^2/dy^2 +simplify( diff(interp_2d_cube_order2_smooth0,y,y) ); +coeff_as_lc_of_data(%, posn_list_2d_size3); +print_coeff__lc_of_data(%, "coeff_dyy_", "fp", + "2d.coeffs/2d.cube.order2.smooth0/coeff-dyy.compute.c"); + +######################################## + +# +# 2d, cube, order=3, smoothing=0 (size=4) +# + +# interpolating polynomial +interp_2d_cube_order3_smooth0 + := polynomial_interpolant(fn_2d_order3, coeff_list_2d_order3, + coord_list_2d, posn_list_2d_size4); + +# I +coeff_as_lc_of_data(%, posn_list_2d_size4); +print_coeff__lc_of_data(%, "coeff_I_", "fp", + "2d.coeffs/2d.cube.order3.smooth0/coeff-I.compute.c"); + +# d/dx +simplify( diff(interp_2d_cube_order3_smooth0,x) ); +coeff_as_lc_of_data(%, posn_list_2d_size4); +print_coeff__lc_of_data(%, "coeff_dx_", "fp", + "2d.coeffs/2d.cube.order3.smooth0/coeff-dx.compute.c"); + +# d/dy +simplify( diff(interp_2d_cube_order3_smooth0,y) ); +coeff_as_lc_of_data(%, posn_list_2d_size4); +print_coeff__lc_of_data(%, "coeff_dy_", "fp", + "2d.coeffs/2d.cube.order3.smooth0/coeff-dy.compute.c"); + +# d^2/dx^2 +simplify( diff(interp_2d_cube_order3_smooth0,x,x) ); +coeff_as_lc_of_data(%, posn_list_2d_size4); +print_coeff__lc_of_data(%, "coeff_dxx_", "fp", + "2d.coeffs/2d.cube.order3.smooth0/coeff-dxx.compute.c"); + +# d^2/dxdy +simplify( diff(interp_2d_cube_order3_smooth0,x,y) ); +coeff_as_lc_of_data(%, posn_list_2d_size4); +print_coeff__lc_of_data(%, "coeff_dxy_", "fp", + "2d.coeffs/2d.cube.order3.smooth0/coeff-dxy.compute.c"); + +# d^2/dy^2 +simplify( diff(interp_2d_cube_order3_smooth0,y,y) ); +coeff_as_lc_of_data(%, posn_list_2d_size4); +print_coeff__lc_of_data(%, "coeff_dyy_", "fp", + "2d.coeffs/2d.cube.order3.smooth0/coeff-dyy.compute.c"); + +######################################## + +# +# 2d, cube, order=4, smoothing=0 (size=5) +# + +# interpolating polynomial +interp_2d_cube_order4_smooth0 + := polynomial_interpolant(fn_2d_order4, coeff_list_2d_order4, + coord_list_2d, posn_list_2d_size5); + +# I +coeff_as_lc_of_data(%, posn_list_2d_size5); +print_coeff__lc_of_data(%, "coeff_I_", "fp", + "2d.coeffs/2d.cube.order4.smooth0/coeff-I.compute.c"); + +# d/dx +simplify( diff(interp_2d_cube_order4_smooth0,x) ); +coeff_as_lc_of_data(%, posn_list_2d_size5); +print_coeff__lc_of_data(%, "coeff_dx_", "fp", + "2d.coeffs/2d.cube.order4.smooth0/coeff-dx.compute.c"); + +# d/dy +simplify( diff(interp_2d_cube_order4_smooth0,y) ); +coeff_as_lc_of_data(%, posn_list_2d_size5); +print_coeff__lc_of_data(%, "coeff_dy_", "fp", + "2d.coeffs/2d.cube.order4.smooth0/coeff-dy.compute.c"); + +# d^2/dx^2 +simplify( diff(interp_2d_cube_order4_smooth0,x,x) ); +coeff_as_lc_of_data(%, posn_list_2d_size5); +print_coeff__lc_of_data(%, "coeff_dxx_", "fp", + "2d.coeffs/2d.cube.order4.smooth0/coeff-dxx.compute.c"); + +# d^2/dxdy +simplify( diff(interp_2d_cube_order4_smooth0,x,y) ); +coeff_as_lc_of_data(%, posn_list_2d_size5); +print_coeff__lc_of_data(%, "coeff_dxy_", "fp", + "2d.coeffs/2d.cube.order4.smooth0/coeff-dxy.compute.c"); + +# d^2/dy^2 +simplify( diff(interp_2d_cube_order4_smooth0,y,y) ); +coeff_as_lc_of_data(%, posn_list_2d_size5); +print_coeff__lc_of_data(%, "coeff_dyy_", "fp", + "2d.coeffs/2d.cube.order4.smooth0/coeff-dyy.compute.c"); + +######################################## diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order1.smooth0/coeff-I.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order1.smooth0/coeff-I.compute.c new file mode 100644 index 0000000..f67cecc --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order1.smooth0/coeff-I.compute.c @@ -0,0 +1,30 @@ +fp t7, + t3, + t8, + t11, + t6, + t5, + t10, + t2, + t9, + t4, + t1; + t7 = RATIONAL(-1.0,4.0); + t3 = t7*x; + t8 = RATIONAL(1.0,4.0); + t11 = t3+t8; + t6 = t8*x; + t5 = t8*y; + t10 = t6+t5; + t2 = t7*y; + t9 = t2+t6; + t4 = t7*z; + t1 = t8*z; + coeff_I_0_0_0 = RATIONAL(1.0,2.0)+t3+t2+t4; + coeff_I_p1_0_0 = t8+t4+t9; + coeff_I_0_p1_0 = t5+t4+t11; + coeff_I_p1_p1_0 = t4+t10; + coeff_I_0_0_p1 = t2+t1+t11; + coeff_I_p1_0_p1 = t1+t9; + coeff_I_0_p1_p1 = t3+t5+t1; + coeff_I_p1_p1_p1 = t1+t7+t10; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order1.smooth0/coeff-dx.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order1.smooth0/coeff-dx.compute.c new file mode 100644 index 0000000..ed69d03 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order1.smooth0/coeff-dx.compute.c @@ -0,0 +1,12 @@ +fp t13, + t12; + t13 = RATIONAL(1.0,4.0); + t12 = RATIONAL(-1.0,4.0); + coeff_dx_0_0_0 = t12; + coeff_dx_p1_0_0 = t13; + coeff_dx_0_p1_0 = t12; + coeff_dx_p1_p1_0 = t13; + coeff_dx_0_0_p1 = t12; + coeff_dx_p1_0_p1 = t13; + coeff_dx_0_p1_p1 = t12; + coeff_dx_p1_p1_p1 = t13; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order1.smooth0/coeff-dy.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order1.smooth0/coeff-dy.compute.c new file mode 100644 index 0000000..3ef3521 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order1.smooth0/coeff-dy.compute.c @@ -0,0 +1,12 @@ +fp t15, + t14; + t15 = RATIONAL(1.0,4.0); + t14 = RATIONAL(-1.0,4.0); + coeff_dy_0_0_0 = t14; + coeff_dy_p1_0_0 = t14; + coeff_dy_0_p1_0 = t15; + coeff_dy_p1_p1_0 = t15; + coeff_dy_0_0_p1 = t14; + coeff_dy_p1_0_p1 = t14; + coeff_dy_0_p1_p1 = t15; + coeff_dy_p1_p1_p1 = t15; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order1.smooth0/coeff-dz.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order1.smooth0/coeff-dz.compute.c new file mode 100644 index 0000000..660271c --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order1.smooth0/coeff-dz.compute.c @@ -0,0 +1,12 @@ +fp t17, + t16; + t17 = RATIONAL(1.0,4.0); + t16 = RATIONAL(-1.0,4.0); + coeff_dz_0_0_0 = t16; + coeff_dz_p1_0_0 = t16; + coeff_dz_0_p1_0 = t16; + coeff_dz_p1_p1_0 = t16; + coeff_dz_0_0_p1 = t17; + coeff_dz_p1_0_p1 = t17; + coeff_dz_0_p1_p1 = t17; + coeff_dz_p1_p1_p1 = t17; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-I.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-I.compute.c new file mode 100644 index 0000000..6189157 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-I.compute.c @@ -0,0 +1,153 @@ +fp t37, + t71, + t20, + t40, + t28, + t81, + t39, + t72, + t23, + t36, + t25, + t80, + t45, + t24, + t41, + t79, + t21, + t29, + t78, + t18, + t31, + t77, + t43, + t46, + t35, + t38, + t76, + t33, + t75, + t30, + t66, + t44, + t34, + t74, + t73, + t27, + t32, + t70, + t69, + t67, + t26, + t65, + t42, + t64, + t63, + t62, + t61, + t60, + t59, + t58, + t22, + t57, + t19, + t56, + t55, + t54, + t53, + t52, + t51, + t50, + t49, + t48, + t47; + t37 = RATIONAL(1.0,12.0); + t71 = z*t37; + t20 = x*t71; + t40 = RATIONAL(-1.0,18.0); + t28 = t40*x; + t81 = t20+t28; + t39 = RATIONAL(-1.0,12.0); + t72 = x*t39; + t23 = z*t72; + t36 = RATIONAL(1.0,18.0); + t25 = t36*x; + t80 = t23+t25; + t45 = x*x; + t24 = t36*t45; + t41 = RATIONAL(-2.0,27.0); + t79 = t24+t41; + t21 = t39*y*z; + t29 = t40*y; + t78 = t21+t29; + t18 = y*t71; + t31 = t36*y; + t77 = t18+t31; + t43 = RATIONAL(-1.0,9.0); + t46 = y*y; + t35 = t43*t46; + t38 = RATIONAL(1.0,27.0); + t76 = t35+t38; + t33 = t43*t45; + t75 = t33+t38; + t30 = t36*t46; + t66 = t30+t38; + t44 = z*z; + t34 = t43*t44; + t74 = t66+t24+t34; + t73 = t30+t41; + t27 = t36*t44; + t32 = t36*z; + t70 = t27+t32; + t69 = t33+t35; + t67 = t24+t35; + t26 = t40*z; + t65 = t26+t27; + t42 = RATIONAL(4.0,27.0); + t64 = t34+t42; + t63 = t24+t70; + t62 = t30+t65; + t61 = t27+t42+t69; + t60 = t64+t67; + t59 = t30+t33+t64; + t58 = t33+t66+t70; + t22 = y*t72; + t57 = t22+t74; + t19 = t37*x*y; + t56 = t19+t74; + t55 = t23+t28+t63; + t54 = t18+t29+t62; + t53 = t38+t65+t67; + t52 = t21+t31+t62; + t51 = t20+t25+t63; + t50 = t54+t79; + t49 = t52+t79; + t48 = t55+t73; + t47 = t51+t73; + coeff_I_m1_m1_m1 = t19+t50+t81; + coeff_I_0_m1_m1 = t54+t75; + coeff_I_p1_m1_m1 = t22+t50+t80; + coeff_I_m1_0_m1 = t53+t81; + coeff_I_0_0_m1 = t26+t61; + coeff_I_p1_0_m1 = t53+t80; + coeff_I_m1_p1_m1 = t22+t49+t81; + coeff_I_0_p1_m1 = t52+t75; + coeff_I_p1_p1_m1 = t19+t49+t80; + coeff_I_m1_m1_0 = t28+t29+t56; + coeff_I_0_m1_0 = t29+t59; + coeff_I_p1_m1_0 = t29+t25+t57; + coeff_I_m1_0_0 = t28+t60; + coeff_I_0_0_0 = t34+RATIONAL(7.0,27.0)+t69; + coeff_I_p1_0_0 = t25+t60; + coeff_I_m1_p1_0 = t28+t31+t57; + coeff_I_0_p1_0 = t31+t59; + coeff_I_p1_p1_0 = t31+t25+t56; + coeff_I_m1_m1_p1 = t19+t48+t78; + coeff_I_0_m1_p1 = t58+t78; + coeff_I_p1_m1_p1 = t22+t47+t78; + coeff_I_m1_0_p1 = t55+t76; + coeff_I_0_0_p1 = t32+t61; + coeff_I_p1_0_p1 = t51+t76; + coeff_I_m1_p1_p1 = t22+t48+t77; + coeff_I_0_p1_p1 = t58+t77; + coeff_I_p1_p1_p1 = t19+t47+t77; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-dx.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-dx.compute.c new file mode 100644 index 0000000..b568e61 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-dx.compute.c @@ -0,0 +1,59 @@ +fp t87, + t99, + t98, + t90, + t83, + t97, + t89, + t82, + t96, + t85, + t95, + t94, + t93, + t92, + t86, + t84; + t87 = RATIONAL(1.0,9.0)*x; + t99 = t87+RATIONAL(-1.0,18.0); + t98 = t87+RATIONAL(1.0,18.0); + t90 = RATIONAL(-1.0,12.0); + t83 = t90*y; + t97 = t83+t99; + t89 = RATIONAL(1.0,12.0); + t82 = t89*y; + t96 = t82+t99; + t85 = t89*z; + t95 = t85+t99; + t94 = t83+t98; + t93 = t82+t98; + t92 = t85+t98; + t86 = RATIONAL(-2.0,9.0)*x; + t84 = t90*z; + coeff_dx_m1_m1_m1 = t82+t95; + coeff_dx_0_m1_m1 = t86; + coeff_dx_p1_m1_m1 = t84+t94; + coeff_dx_m1_0_m1 = t95; + coeff_dx_0_0_m1 = t86; + coeff_dx_p1_0_m1 = t84+t98; + coeff_dx_m1_p1_m1 = t83+t95; + coeff_dx_0_p1_m1 = t86; + coeff_dx_p1_p1_m1 = t84+t93; + coeff_dx_m1_m1_0 = t96; + coeff_dx_0_m1_0 = t86; + coeff_dx_p1_m1_0 = t94; + coeff_dx_m1_0_0 = t99; + coeff_dx_0_0_0 = t86; + coeff_dx_p1_0_0 = t98; + coeff_dx_m1_p1_0 = t97; + coeff_dx_0_p1_0 = t86; + coeff_dx_p1_p1_0 = t93; + coeff_dx_m1_m1_p1 = t84+t96; + coeff_dx_0_m1_p1 = t86; + coeff_dx_p1_m1_p1 = t83+t92; + coeff_dx_m1_0_p1 = t84+t99; + coeff_dx_0_0_p1 = t86; + coeff_dx_p1_0_p1 = t92; + coeff_dx_m1_p1_p1 = t84+t97; + coeff_dx_0_p1_p1 = t86; + coeff_dx_p1_p1_p1 = t82+t92; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-dxx.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-dxx.compute.c new file mode 100644 index 0000000..87755fa --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-dxx.compute.c @@ -0,0 +1,31 @@ +fp t138, + t137; + t138 = RATIONAL(1.0,9.0); + t137 = RATIONAL(-2.0,9.0); + coeff_dxx_m1_m1_m1 = t138; + coeff_dxx_0_m1_m1 = t137; + coeff_dxx_p1_m1_m1 = t138; + coeff_dxx_m1_0_m1 = t138; + coeff_dxx_0_0_m1 = t137; + coeff_dxx_p1_0_m1 = t138; + coeff_dxx_m1_p1_m1 = t138; + coeff_dxx_0_p1_m1 = t137; + coeff_dxx_p1_p1_m1 = t138; + coeff_dxx_m1_m1_0 = t138; + coeff_dxx_0_m1_0 = t137; + coeff_dxx_p1_m1_0 = t138; + coeff_dxx_m1_0_0 = t138; + coeff_dxx_0_0_0 = t137; + coeff_dxx_p1_0_0 = t138; + coeff_dxx_m1_p1_0 = t138; + coeff_dxx_0_p1_0 = t137; + coeff_dxx_p1_p1_0 = t138; + coeff_dxx_m1_m1_p1 = t138; + coeff_dxx_0_m1_p1 = t137; + coeff_dxx_p1_m1_p1 = t138; + coeff_dxx_m1_0_p1 = t138; + coeff_dxx_0_0_p1 = t137; + coeff_dxx_p1_0_p1 = t138; + coeff_dxx_m1_p1_p1 = t138; + coeff_dxx_0_p1_p1 = t137; + coeff_dxx_p1_p1_p1 = t138; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-dxy.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-dxy.compute.c new file mode 100644 index 0000000..ac55ad0 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-dxy.compute.c @@ -0,0 +1,33 @@ +fp t141, + t140, + t139; + t141 = RATIONAL(0.0,1.0); + t140 = RATIONAL(-1.0,12.0); + t139 = RATIONAL(1.0,12.0); + coeff_dxy_m1_m1_m1 = t139; + coeff_dxy_0_m1_m1 = t141; + coeff_dxy_p1_m1_m1 = t140; + coeff_dxy_m1_0_m1 = t141; + coeff_dxy_0_0_m1 = t141; + coeff_dxy_p1_0_m1 = t141; + coeff_dxy_m1_p1_m1 = t140; + coeff_dxy_0_p1_m1 = t141; + coeff_dxy_p1_p1_m1 = t139; + coeff_dxy_m1_m1_0 = t139; + coeff_dxy_0_m1_0 = t141; + coeff_dxy_p1_m1_0 = t140; + coeff_dxy_m1_0_0 = t141; + coeff_dxy_0_0_0 = t141; + coeff_dxy_p1_0_0 = t141; + coeff_dxy_m1_p1_0 = t140; + coeff_dxy_0_p1_0 = t141; + coeff_dxy_p1_p1_0 = t139; + coeff_dxy_m1_m1_p1 = t139; + coeff_dxy_0_m1_p1 = t141; + coeff_dxy_p1_m1_p1 = t140; + coeff_dxy_m1_0_p1 = t141; + coeff_dxy_0_0_p1 = t141; + coeff_dxy_p1_0_p1 = t141; + coeff_dxy_m1_p1_p1 = t140; + coeff_dxy_0_p1_p1 = t141; + coeff_dxy_p1_p1_p1 = t139; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-dxz.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-dxz.compute.c new file mode 100644 index 0000000..2d102b8 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-dxz.compute.c @@ -0,0 +1,33 @@ +fp t144, + t143, + t142; + t144 = RATIONAL(0.0,1.0); + t143 = RATIONAL(-1.0,12.0); + t142 = RATIONAL(1.0,12.0); + coeff_dxz_m1_m1_m1 = t142; + coeff_dxz_0_m1_m1 = t144; + coeff_dxz_p1_m1_m1 = t143; + coeff_dxz_m1_0_m1 = t142; + coeff_dxz_0_0_m1 = t144; + coeff_dxz_p1_0_m1 = t143; + coeff_dxz_m1_p1_m1 = t142; + coeff_dxz_0_p1_m1 = t144; + coeff_dxz_p1_p1_m1 = t143; + coeff_dxz_m1_m1_0 = t144; + coeff_dxz_0_m1_0 = t144; + coeff_dxz_p1_m1_0 = t144; + coeff_dxz_m1_0_0 = t144; + coeff_dxz_0_0_0 = t144; + coeff_dxz_p1_0_0 = t144; + coeff_dxz_m1_p1_0 = t144; + coeff_dxz_0_p1_0 = t144; + coeff_dxz_p1_p1_0 = t144; + coeff_dxz_m1_m1_p1 = t143; + coeff_dxz_0_m1_p1 = t144; + coeff_dxz_p1_m1_p1 = t142; + coeff_dxz_m1_0_p1 = t143; + coeff_dxz_0_0_p1 = t144; + coeff_dxz_p1_0_p1 = t142; + coeff_dxz_m1_p1_p1 = t143; + coeff_dxz_0_p1_p1 = t144; + coeff_dxz_p1_p1_p1 = t142; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-dy.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-dy.compute.c new file mode 100644 index 0000000..269ff50 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-dy.compute.c @@ -0,0 +1,61 @@ +fp t104, + t108, + t103, + t117, + t101, + t116, + t107, + t100, + t115, + t114, + t113, + t112, + t111, + t110, + t109, + t106, + t105; + t104 = RATIONAL(1.0,9.0)*y; + t108 = RATIONAL(-1.0,12.0); + t103 = t108*z; + t117 = t104+t103; + t101 = t108*x; + t116 = t101+t104; + t107 = RATIONAL(1.0,12.0); + t100 = t107*x; + t115 = t100+t104; + t114 = t104+t107*z; + t113 = t100+t114; + t112 = t101+t114; + t111 = t103+t115; + t110 = t103+t116; + t109 = RATIONAL(-1.0,18.0); + t106 = RATIONAL(1.0,18.0); + t105 = RATIONAL(-2.0,9.0)*y; + coeff_dy_m1_m1_m1 = t109+t113; + coeff_dy_0_m1_m1 = t109+t114; + coeff_dy_p1_m1_m1 = t109+t112; + coeff_dy_m1_0_m1 = t105; + coeff_dy_0_0_m1 = t105; + coeff_dy_p1_0_m1 = t105; + coeff_dy_m1_p1_m1 = t106+t110; + coeff_dy_0_p1_m1 = t106+t117; + coeff_dy_p1_p1_m1 = t106+t111; + coeff_dy_m1_m1_0 = t109+t115; + coeff_dy_0_m1_0 = t104+t109; + coeff_dy_p1_m1_0 = t109+t116; + coeff_dy_m1_0_0 = t105; + coeff_dy_0_0_0 = t105; + coeff_dy_p1_0_0 = t105; + coeff_dy_m1_p1_0 = t106+t116; + coeff_dy_0_p1_0 = t104+t106; + coeff_dy_p1_p1_0 = t106+t115; + coeff_dy_m1_m1_p1 = t109+t111; + coeff_dy_0_m1_p1 = t109+t117; + coeff_dy_p1_m1_p1 = t109+t110; + coeff_dy_m1_0_p1 = t105; + coeff_dy_0_0_p1 = t105; + coeff_dy_p1_0_p1 = t105; + coeff_dy_m1_p1_p1 = t106+t112; + coeff_dy_0_p1_p1 = t106+t114; + coeff_dy_p1_p1_p1 = t106+t113; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-dyy.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-dyy.compute.c new file mode 100644 index 0000000..1863390 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-dyy.compute.c @@ -0,0 +1,31 @@ +fp t146, + t145; + t146 = RATIONAL(1.0,9.0); + t145 = RATIONAL(-2.0,9.0); + coeff_dyy_m1_m1_m1 = t146; + coeff_dyy_0_m1_m1 = t146; + coeff_dyy_p1_m1_m1 = t146; + coeff_dyy_m1_0_m1 = t145; + coeff_dyy_0_0_m1 = t145; + coeff_dyy_p1_0_m1 = t145; + coeff_dyy_m1_p1_m1 = t146; + coeff_dyy_0_p1_m1 = t146; + coeff_dyy_p1_p1_m1 = t146; + coeff_dyy_m1_m1_0 = t146; + coeff_dyy_0_m1_0 = t146; + coeff_dyy_p1_m1_0 = t146; + coeff_dyy_m1_0_0 = t145; + coeff_dyy_0_0_0 = t145; + coeff_dyy_p1_0_0 = t145; + coeff_dyy_m1_p1_0 = t146; + coeff_dyy_0_p1_0 = t146; + coeff_dyy_p1_p1_0 = t146; + coeff_dyy_m1_m1_p1 = t146; + coeff_dyy_0_m1_p1 = t146; + coeff_dyy_p1_m1_p1 = t146; + coeff_dyy_m1_0_p1 = t145; + coeff_dyy_0_0_p1 = t145; + coeff_dyy_p1_0_p1 = t145; + coeff_dyy_m1_p1_p1 = t146; + coeff_dyy_0_p1_p1 = t146; + coeff_dyy_p1_p1_p1 = t146; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-dyz.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-dyz.compute.c new file mode 100644 index 0000000..c13a538 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-dyz.compute.c @@ -0,0 +1,33 @@ +fp t149, + t148, + t147; + t149 = RATIONAL(0.0,1.0); + t148 = RATIONAL(1.0,12.0); + t147 = RATIONAL(-1.0,12.0); + coeff_dyz_m1_m1_m1 = t148; + coeff_dyz_0_m1_m1 = t148; + coeff_dyz_p1_m1_m1 = t148; + coeff_dyz_m1_0_m1 = t149; + coeff_dyz_0_0_m1 = t149; + coeff_dyz_p1_0_m1 = t149; + coeff_dyz_m1_p1_m1 = t147; + coeff_dyz_0_p1_m1 = t147; + coeff_dyz_p1_p1_m1 = t147; + coeff_dyz_m1_m1_0 = t149; + coeff_dyz_0_m1_0 = t149; + coeff_dyz_p1_m1_0 = t149; + coeff_dyz_m1_0_0 = t149; + coeff_dyz_0_0_0 = t149; + coeff_dyz_p1_0_0 = t149; + coeff_dyz_m1_p1_0 = t149; + coeff_dyz_0_p1_0 = t149; + coeff_dyz_p1_p1_0 = t149; + coeff_dyz_m1_m1_p1 = t147; + coeff_dyz_0_m1_p1 = t147; + coeff_dyz_p1_m1_p1 = t147; + coeff_dyz_m1_0_p1 = t149; + coeff_dyz_0_0_p1 = t149; + coeff_dyz_p1_0_p1 = t149; + coeff_dyz_m1_p1_p1 = t148; + coeff_dyz_0_p1_p1 = t148; + coeff_dyz_p1_p1_p1 = t148; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-dz.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-dz.compute.c new file mode 100644 index 0000000..5786753 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-dz.compute.c @@ -0,0 +1,63 @@ +fp t123, + t126, + t119, + t136, + t118, + t135, + t125, + t120, + t134, + t133, + t124, + t132, + t131, + t130, + t127, + t129, + t128, + t122; + t123 = RATIONAL(1.0,9.0)*z; + t126 = RATIONAL(-1.0,12.0); + t119 = t126*x; + t136 = t123+t119; + t118 = t126*y; + t135 = t123+t118; + t125 = RATIONAL(1.0,12.0); + t120 = t125*y; + t134 = t123+t120; + t133 = t123+t125*x; + t124 = RATIONAL(1.0,18.0); + t132 = t124+t135; + t131 = t124+t134; + t130 = t124+t133; + t127 = RATIONAL(-1.0,18.0); + t129 = t127+t136; + t128 = t127+t133; + t122 = RATIONAL(-2.0,9.0)*z; + coeff_dz_m1_m1_m1 = t120+t128; + coeff_dz_0_m1_m1 = t127+t134; + coeff_dz_p1_m1_m1 = t120+t129; + coeff_dz_m1_0_m1 = t128; + coeff_dz_0_0_m1 = t127+t123; + coeff_dz_p1_0_m1 = t129; + coeff_dz_m1_p1_m1 = t118+t128; + coeff_dz_0_p1_m1 = t127+t135; + coeff_dz_p1_p1_m1 = t118+t129; + coeff_dz_m1_m1_0 = t122; + coeff_dz_0_m1_0 = t122; + coeff_dz_p1_m1_0 = t122; + coeff_dz_m1_0_0 = t122; + coeff_dz_0_0_0 = t122; + coeff_dz_p1_0_0 = t122; + coeff_dz_m1_p1_0 = t122; + coeff_dz_0_p1_0 = t122; + coeff_dz_p1_p1_0 = t122; + coeff_dz_m1_m1_p1 = t119+t132; + coeff_dz_0_m1_p1 = t132; + coeff_dz_p1_m1_p1 = t118+t130; + coeff_dz_m1_0_p1 = t124+t136; + coeff_dz_0_0_p1 = t123+t124; + coeff_dz_p1_0_p1 = t130; + coeff_dz_m1_p1_p1 = t119+t131; + coeff_dz_0_p1_p1 = t131; + coeff_dz_p1_p1_p1 = t120+t130; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-dzz.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-dzz.compute.c new file mode 100644 index 0000000..8dbd41a --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order2.smooth0/coeff-dzz.compute.c @@ -0,0 +1,31 @@ +fp t151, + t150; + t151 = RATIONAL(1.0,9.0); + t150 = RATIONAL(-2.0,9.0); + coeff_dzz_m1_m1_m1 = t151; + coeff_dzz_0_m1_m1 = t151; + coeff_dzz_p1_m1_m1 = t151; + coeff_dzz_m1_0_m1 = t151; + coeff_dzz_0_0_m1 = t151; + coeff_dzz_p1_0_m1 = t151; + coeff_dzz_m1_p1_m1 = t151; + coeff_dzz_0_p1_m1 = t151; + coeff_dzz_p1_p1_m1 = t151; + coeff_dzz_m1_m1_0 = t150; + coeff_dzz_0_m1_0 = t150; + coeff_dzz_p1_m1_0 = t150; + coeff_dzz_m1_0_0 = t150; + coeff_dzz_0_0_0 = t150; + coeff_dzz_p1_0_0 = t150; + coeff_dzz_m1_p1_0 = t150; + coeff_dzz_0_p1_0 = t150; + coeff_dzz_p1_p1_0 = t150; + coeff_dzz_m1_m1_p1 = t151; + coeff_dzz_0_m1_p1 = t151; + coeff_dzz_p1_m1_p1 = t151; + coeff_dzz_m1_0_p1 = t151; + coeff_dzz_0_0_p1 = t151; + coeff_dzz_p1_0_p1 = t151; + coeff_dzz_m1_p1_p1 = t151; + coeff_dzz_0_p1_p1 = t151; + coeff_dzz_p1_p1_p1 = t151; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-I.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-I.compute.c new file mode 100644 index 0000000..e5b267c --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-I.compute.c @@ -0,0 +1,905 @@ +fp t505, + t502, + t494, + t386, + t503, + t481, + t340, + t259, + t706, + t487, + t590, + t265, + t504, + t486, + t339, + t239, + t594, + t601, + t267, + t729, + t331, + t246, + t498, + t501, + t381, + t728, + t644, + t609, + t157, + t727, + t488, + t346, + t262, + t726, + t496, + t379, + t500, + t352, + t725, + t472, + t612, + t465, + t724, + t723, + t214, + t159, + t722, + t369, + t721, + t506, + t350, + t222, + t332, + t236, + t579, + t720, + t415, + t433, + t633, + t719, + t497, + t380, + t718, + t384, + t356, + t717, + t152, + t716, + t221, + t371, + t715, + t156, + t714, + t467, + t615, + t196, + t158, + t713, + t333, + t251, + t608, + t712, + t711, + t240, + t580, + t373, + t710, + t709, + t708, + t342, + t264, + t581, + t707, + t344, + t268, + t359, + t705, + t410, + t440, + t638, + t704, + t595, + t272, + t703, + t471, + t647, + t395, + t702, + t701, + t271, + t578, + t700, + t480, + t641, + t396, + t699, + t243, + t576, + t698, + t343, + t230, + t697, + t696, + t273, + t270, + t597, + t354, + t695, + t694, + t392, + t470, + t643, + t693, + t692, + t691, + t453, + t454, + t690, + t628, + t689, + t688, + t687, + t686, + t685, + t419, + t489, + t420, + t684, + t490, + t355, + t431, + t425, + t683, + t377, + t682, + t478, + t630, + t390, + t681, + t402, + t437, + t680, + t403, + t463, + t616, + t464, + t328, + t679, + t485, + t345, + t412, + t483, + t642, + t678, + t441, + t493, + t468, + t677, + t474, + t398, + t676, + t632, + t675, + t636, + t353, + t674, + t458, + t623, + t422, + t673, + t634, + t672, + t619, + t671, + t418, + t491, + t370, + t670, + t479, + t428, + t625, + t194, + t492, + t669, + t668, + t372, + t637, + t667, + t430, + t499, + t382, + t426, + t631, + t165, + t666, + t406, + t434, + t611, + t665, + t329, + t646, + t664, + t663, + t662, + t365, + t661, + t660, + t659, + t658, + t326, + t657, + t349, + t162, + t656, + t166, + t655, + t164, + t368, + t654, + t387, + t653, + t341, + t652, + t385, + t651, + t650, + t621, + t649, + t648, + t645, + t417, + t640, + t456, + t639, + t475, + t635, + t457, + t629, + t448, + t627, + t439, + t626, + t455, + t624, + t473, + t622, + t476, + t620, + t442, + t618, + t450, + t617, + t446, + t614, + t407, + t613, + t462, + t610, + t607, + t263, + t225, + t606, + t261, + t605, + t603, + t602, + t383, + t600, + t599, + t477, + t334, + t337, + t598, + t596, + t593, + t255, + t592, + t591, + t589, + t219, + t588, + t587, + t586, + t585, + t584, + t583, + t582, + t577, + t575, + t181, + t197, + t574, + t367, + t573, + t572, + t571, + t570, + t569, + t568, + t154, + t567, + t566, + t565, + t155, + t564, + t563, + t562, + t561, + t560, + t559, + t558, + t557, + t556, + t153, + t555, + t554, + t553, + t552, + t551, + t550, + t549, + t548, + t547, + t546, + t545, + t544, + t543, + t542, + t541, + t177, + t540, + t539, + t348, + t538, + t537, + t536, + t535, + t534, + t533, + t532, + t347, + t531, + t530, + t529, + t528, + t527, + t421, + t526, + t525, + t524, + t436, + t523, + t391, + t522, + t429, + t521, + t520, + t404, + t519, + t518, + t517, + t516, + t515, + t399, + t514, + t513, + t512, + t511, + t510, + t495, + t482, + t469, + t466, + t460, + t459, + t451, + t443, + t435, + t424, + t416, + t413, + t411, + t409, + t405, + t400, + t397, + t394, + t393, + t389, + t388, + t378, + t362, + t360, + t191, + t174, + t173; + t505 = z*z; + t502 = t505*z; + t494 = RATIONAL(1.0,32.0); + t386 = t494*t502; + t503 = x*x; + t481 = RATIONAL(-1.0,160.0); + t340 = t481*t503; + t259 = z*t340; + t706 = t386+t259; + t487 = RATIONAL(-3.0,160.0); + t590 = t487*t505; + t265 = x*t590; + t504 = y*y; + t486 = RATIONAL(3.0,160.0); + t339 = t486*t504; + t239 = x*t339; + t594 = t265+t239; + t601 = t487*t503; + t267 = z*t601; + t729 = t594+t267; + t331 = t481*t505; + t246 = x*t331; + t498 = RATIONAL(-1.0,32.0); + t501 = t503*x; + t381 = t498*t501; + t728 = t246+t381; + t644 = x*z; + t609 = y*t644; + t157 = RATIONAL(9.0,1000.0)*t609; + t727 = RATIONAL(73.0,4000.0)+t157; + t488 = RATIONAL(1.0,160.0); + t346 = t488*t505; + t262 = x*t346; + t726 = t381+t262; + t496 = RATIONAL(-1.0,96.0); + t379 = t496*t501; + t500 = RATIONAL(3.0,80.0); + t352 = t500*t503; + t725 = t379+t352; + t472 = RATIONAL(-9.0,1000.0); + t612 = y*t472; + t465 = RATIONAL(-41.0,750.0); + t724 = t465*z+x*t612; + t723 = RATIONAL(-67.0,4000.0)+t157; + t214 = z*t612; + t159 = x*t214; + t722 = RATIONAL(71.0,2000.0)+t159; + t369 = t494*t501; + t721 = t246+t369; + t506 = t504*y; + t350 = t498*t506; + t222 = y*t346; + t332 = t488*t503; + t236 = y*t332; + t579 = t222+t236; + t720 = t350+t579; + t415 = RATIONAL(183.0,4000.0); + t433 = RATIONAL(37.0,2000.0); + t633 = y*t433; + t719 = t415*x+z*t633; + t497 = RATIONAL(1.0,96.0); + t380 = t497*t501; + t718 = t380+t265; + t384 = t500*t504; + t356 = t496*t506; + t717 = t384+t356; + t152 = RATIONAL(27.0,1000.0)*t609; + t716 = RATIONAL(-59.0,1000.0)+t152; + t221 = z*t332; + t371 = t498*t502; + t715 = t221+t371; + t156 = RATIONAL(3.0,1000.0)*t609; + t714 = RATIONAL(49.0,1000.0)+t156; + t467 = RATIONAL(-3.0,1000.0); + t615 = x*t467; + t196 = z*t615; + t158 = y*t196; + t713 = RATIONAL(469.0,4000.0)+t158; + t333 = t486*t505; + t251 = x*t333; + t608 = t239+t251; + t712 = t608+t380; + t711 = t159+RATIONAL(-59.0,2000.0); + t240 = y*t340; + t580 = t222+t240; + t373 = t494*t506; + t710 = t580+t373; + t709 = t371+t259; + t708 = RATIONAL(49.0,4000.0)+t158; + t342 = t481*t504; + t264 = x*t342; + t581 = t264+t262; + t707 = t581+t386; + t344 = t486*t503; + t268 = z*t344; + t359 = t497*t502; + t705 = t268+t359; + t410 = RATIONAL(141.0,2000.0); + t440 = RATIONAL(-31.0,1000.0); + t638 = y*t440; + t704 = x*t638+t410*z; + t595 = t487*t504; + t272 = z*t595; + t703 = t246+t272; + t471 = RATIONAL(11.0,500.0); + t647 = x*y; + t395 = RATIONAL(-167.0,12000.0); + t702 = t471*t647+t395*z; + t701 = t415*z+x*t633; + t271 = x*t595; + t578 = t271+t265; + t700 = t380+t578; + t480 = RATIONAL(-9.0,250.0); + t641 = z*t480; + t396 = RATIONAL(281.0,12000.0); + t699 = y*t641+t396*x; + t243 = y*t331; + t576 = t243+t236; + t698 = t576+t373; + t343 = t488*t504; + t230 = z*t343; + t697 = t230+t706; + t696 = t156+RATIONAL(-23.0,500.0); + t273 = y*t590; + t270 = y*t601; + t597 = t273+t270; + t354 = t497*t506; + t695 = t597+t354; + t694 = z*t638+t410*x; + t392 = RATIONAL(-607.0,12000.0); + t470 = RATIONAL(-1.0,2000.0); + t643 = z*t470; + t693 = y*t643+t392*x; + t692 = t470*t647+t392*z; + t691 = t157+RATIONAL(-97.0,4000.0); + t453 = RATIONAL(-97.0,3000.0); + t454 = RATIONAL(-37.0,1000.0); + t690 = t453*y+t454*t644; + t628 = z*t471; + t689 = t395*x+y*t628; + t688 = t472*t644+t465*y; + t687 = RATIONAL(7.0,250.0)+t159; + t686 = t267+t359; + t685 = RATIONAL(143.0,2000.0)+t156; + t419 = RATIONAL(-79.0,2000.0); + t489 = RATIONAL(-1.0,20.0); + t420 = RATIONAL(43.0,2000.0); + t684 = t420*t644+t419*y+t489*t504; + t490 = RATIONAL(1.0,40.0); + t355 = t490*t505; + t431 = RATIONAL(13.0,1000.0); + t425 = RATIONAL(-29.0,6000.0); + t683 = t355+t425*z+t431*t647; + t377 = t494*t505; + t682 = t396*z+t377+t480*t647; + t478 = RATIONAL(-7.0,250.0); + t630 = y*t478; + t390 = RATIONAL(-137.0,12000.0); + t681 = t390*z+x*t630+t346; + t402 = RATIONAL(323.0,4000.0); + t437 = RATIONAL(-13.0,2000.0); + t680 = t402*y+t339+t437*t644; + t403 = RATIONAL(-107.0,4000.0); + t463 = RATIONAL(-17.0,500.0); + t616 = x*t463; + t464 = RATIONAL(-11.0,160.0); + t328 = t464*t505; + t679 = y*t616+t403*z+t328; + t485 = RATIONAL(-9.0,160.0); + t345 = t485*t505; + t412 = RATIONAL(-137.0,4000.0); + t483 = RATIONAL(2.0,125.0); + t642 = y*t483; + t678 = t345+t412*z+x*t642; + t441 = RATIONAL(-49.0,2000.0); + t493 = RATIONAL(-3.0,40.0); + t468 = RATIONAL(-7.0,2000.0); + t677 = t468*t647+t493*t505+t441*z; + t474 = RATIONAL(-1.0,500.0); + t398 = RATIONAL(299.0,4000.0); + t676 = t377+t474*t647+t398*z; + t632 = y*t420; + t675 = x*t632+t489*t505+t419*z; + t636 = z*t474; + t353 = t494*t503; + t674 = t398*x+t353+y*t636; + t458 = RATIONAL(19.0,1000.0); + t623 = z*t458; + t422 = RATIONAL(53.0,1000.0); + t673 = t422*y+t384+x*t623; + t634 = z*t468; + t672 = x*t634+t441*y+t493*t504; + t619 = y*t437; + t671 = x*t619+t333+t402*z; + t418 = RATIONAL(-87.0,2000.0); + t491 = RATIONAL(-1.0,16.0); + t370 = t491*t505; + t670 = t370+y*t615+t418*z; + t479 = RATIONAL(-4.0,375.0); + t428 = RATIONAL(31.0,2000.0); + t625 = y*t428; + t194 = z*t625; + t492 = RATIONAL(-1.0,80.0); + t669 = t492*t503+t479*x+t194; + t668 = z*t632+t419*x+t489*t503; + t372 = t490*t504; + t637 = z*t431; + t667 = t372+x*t637+t425*y; + t430 = RATIONAL(-17.0,3000.0); + t499 = RATIONAL(1.0,80.0); + t382 = t499*t503; + t426 = RATIONAL(-19.0,2000.0); + t631 = y*t426; + t165 = z*t631; + t666 = t430*x+t382+t165; + t406 = RATIONAL(53.0,12000.0); + t434 = RATIONAL(49.0,2000.0); + t611 = z*t434; + t665 = y*t611+t344+t406*x; + t329 = t464*t503; + t646 = y*z; + t664 = t329+t403*x+t463*t646; + t663 = t478*t644+t390*y+t343; + t662 = t344+t402*x+z*t619; + t365 = t490*t503; + t661 = t365+t425*x+y*t637; + t660 = t434*t647+t406*z+t333; + t659 = t422*x+t352+y*t623; + t658 = t332+z*t630+t390*x; + t326 = t464*t504; + t657 = z*t616+t403*y+t326; + t349 = t499*t504; + t162 = t426*t644; + t656 = t430*y+t349+t162; + t166 = x*t625; + t655 = t166+t479*z+t492*t505; + t164 = x*t631; + t368 = t499*t505; + t654 = t164+t430*z+t368; + t387 = t491*t503; + t653 = t467*t646+t387+t418*x; + t341 = t485*t504; + t652 = t483*t644+t412*y+t341; + t385 = t500*t505; + t651 = t458*t647+t385+t422*z; + t650 = t406*y+t339+x*t611; + t621 = y*t454; + t649 = z*t621+t453*x+t725; + t648 = t365+t355+t372+RATIONAL(-61.0,4000.0)+t158; + t645 = z+y; + t417 = RATIONAL(111.0,2000.0); + t640 = z*t417; + t456 = RATIONAL(-21.0,2000.0); + t639 = y*t456; + t475 = RATIONAL(-9.0,500.0); + t635 = x*t475; + t457 = RATIONAL(27.0,2000.0); + t629 = z*t457; + t448 = RATIONAL(-23.0,2000.0); + t627 = z*t448; + t439 = RATIONAL(-39.0,2000.0); + t626 = y*t439; + t455 = RATIONAL(-27.0,1000.0); + t624 = x*t455; + t473 = RATIONAL(-3.0,2000.0); + t622 = z*t473; + t476 = RATIONAL(-1.0,250.0); + t620 = y*t476; + t442 = RATIONAL(-17.0,2000.0); + t618 = x*t442; + t450 = RATIONAL(93.0,2000.0); + t617 = z*t450; + t446 = RATIONAL(33.0,2000.0); + t614 = y*t446; + t407 = RATIONAL(129.0,2000.0); + t613 = y*t407; + t462 = RATIONAL(-1.0,1000.0); + t610 = z*t462; + t607 = t264+t230; + t263 = y*t344; + t225 = y*t333; + t606 = t263+t225; + t261 = x*t343; + t605 = t246+t261; + t603 = t270+t268; + t602 = t273+t263; + t383 = t494*t504; + t600 = t383+t356; + t599 = t271+t251; + t477 = RATIONAL(7.0,160.0); + t334 = t477*t505; + t337 = t477*t503; + t598 = t334+t337; + t596 = t261+t262; + t593 = t243+t240; + t255 = z*t342; + t592 = t261+t255; + t591 = t270+t225; + t589 = t272+t267; + t219 = z*t339; + t588 = t219+t271; + t587 = t373+t491*t504; + t586 = t383+t350; + t585 = t263+t267; + t584 = t239+t272; + t583 = t219+t268; + t582 = t379+t353; + t577 = t221+t255; + t575 = t221+t230; + t181 = y*t624; + t197 = t462*t647; + t574 = t379+t251+t255; + t367 = t496*t502; + t573 = t264+t367+t268; + t572 = t272+t726; + t571 = t239+t715; + t570 = t219+t726; + t569 = t261+t686; + t568 = t709+t728; + t154 = RATIONAL(1.0,1000.0)*t609; + t567 = t154+t350+t593; + t566 = t221+t386+t728; + t565 = t380+t367+t267+t251; + t155 = z*t197; + t564 = t155+t373+t579; + t563 = t221+t225+t717; + t562 = t272+t367+t225+t354; + t561 = t243+t219+t367+t373; + t560 = t219+t273+t356+t359; + t559 = t265+t379+t705; + t558 = t262+t369+t709; + t557 = t340+t255+t718; + t556 = t331+t264+t686; + t153 = z*t181; + t555 = t153+t379+t578; + t554 = t350+t576+t697; + t553 = t558+t607; + t552 = t380+t356+t591+t594; + t551 = t560+t585; + t550 = t386+t369+t575+t596; + t549 = t380+t272+t599+t705; + t548 = t566+t592; + t547 = t264+t255+t568; + t546 = t566+t607; + t545 = t261+t230+t568; + t544 = t559+t584; + t543 = t558+t592; + t542 = t697+t710; + t541 = t562+t603; + t177 = t428*t644; + t540 = t492*t504+t479*y+t177+t354+t723; + t539 = t354+t359+t583+t606; + t348 = t477*t504; + t538 = x*t643+t356+t348+t392*y+t722; + t537 = t441*x+t493*t503+t369+y*t634+t713; + t536 = t350+t369+t580+t605; + t535 = t565+t588; + t534 = t562+t585; + t533 = t381+t581+t698; + t532 = t379+t354+t599+t602; + t347 = t485*t503; + t531 = t347+t369+z*t642+t412*x+t685; + t530 = t453*z+x*t621+t385+t367+t691; + t529 = t371+t577+t710; + t528 = t395*y+x*t628+t354+t342+t687; + t527 = t433*t644+t350+t348+t415*y+t696; + t421 = RATIONAL(79.0,3000.0); + t526 = x*t610+t421*y+t695+t708; + t525 = t421*x+y*t610+t700+t708; + t524 = t197+t421*z+t359+t589+t708; + t436 = RATIONAL(-59.0,4000.0); + t523 = t436+t153+t465*x+t214+t712; + t391 = RATIONAL(-691.0,12000.0); + t522 = t391*y+t476*t644+t600+t606+t714; + t429 = RATIONAL(-33.0,2000.0); + t521 = t264+t429*x+t387+t455*t646+t721+t727; + t520 = t155+t398*y+x*t636+t434+t586+t593; + t404 = RATIONAL(191.0,4000.0); + t519 = t475*t646+t404*x+t381+t353+t596+t711; + t518 = t429*y+z*t624+t587+t593+t727; + t517 = z*t635+t404*y+t579+t586+t711; + t516 = t370+t181+t429*z+t255+t706+t727; + t515 = t396*y+x*t641+t597+t600+t716; + t399 = RATIONAL(397.0,4000.0); + t514 = t154+t418*y+t196+t399+t579+t587; + t513 = t377+y*t635+t404*z+t371+t575+t711; + t512 = t377+t391*z+t367+x*t620+t583+t714; + t511 = t391*x+z*t620+t582+t608+t714; + t510 = t410*y+t350+t440*t644+t648; + t495 = RATIONAL(1.0,20.0); + t482 = RATIONAL(-7.0,160.0); + t469 = RATIONAL(-17.0,375.0); + t466 = RATIONAL(13.0,500.0); + t460 = RATIONAL(-13.0,160.0); + t459 = RATIONAL(21.0,250.0); + t451 = RATIONAL(-47.0,1500.0); + t443 = RATIONAL(-39.0,4000.0); + t435 = RATIONAL(29.0,2000.0); + t424 = RATIONAL(-57.0,2000.0); + t416 = RATIONAL(147.0,2000.0); + t413 = RATIONAL(157.0,2000.0); + t411 = RATIONAL(-129.0,4000.0); + t409 = RATIONAL(-437.0,6000.0); + t405 = RATIONAL(133.0,2000.0); + t400 = RATIONAL(-191.0,4000.0); + t397 = RATIONAL(307.0,6000.0); + t394 = RATIONAL(-449.0,12000.0); + t393 = RATIONAL(349.0,12000.0); + t389 = RATIONAL(-539.0,12000.0); + t388 = RATIONAL(319.0,12000.0); + t378 = t495*t504; + t362 = t495*t503; + t360 = t495*t505; + t191 = z*t639; + t174 = x*t639; + t173 = t456*t644; + coeff_I_m1_m1_m1 = t362+t360+t451*z+t378+t356+t367+RATIONAL(-269.0,4000.0 +)+(t451+t416*z)*y+(t451+t645*t416)*x+t555+t589+t597; + coeff_I_0_m1_m1 = t460*t503+z*t613+t334+t443*x+t538+t369+t573+t602+t692+ +t703; + coeff_I_p1_m1_m1 = t413*x+t530+t261+y*t640+t382+t268+t572+t602+t690+t717; + coeff_I_p2_m1_m1 = t344+t515+y*t617+t394*x+t565+t584+t682; + coeff_I_m1_0_m1 = t460*t504+t407*t644+t443*y+t379+t561+t240+t598+t692+ +t693+t722+t729; + coeff_I_0_0_m1 = y*t618+t409*z+t385+t236+t268+t537+t561+t605+t672; + coeff_I_p1_0_m1 = t512+t533+t657+t662; + coeff_I_p2_0_m1 = t518+t535+t666+t683; + coeff_I_m1_p1_m1 = t219+t530+t349+t413*y+x*t640+t649+t720+t729; + coeff_I_0_p1_m1 = t512+t536+t664+t680; + coeff_I_p1_p1_m1 = x*t614+t469*z+t510+t570+t573+t580+t694; + coeff_I_p2_p1_m1 = t517+t535+t658+t660; + coeff_I_m1_p2_m1 = x*t617+t394*y+t534+t339+t578+t582+t682+t699+t716; + coeff_I_0_p2_m1 = t521+t541+t656+t683; + coeff_I_p1_p2_m1 = t519+t541+t660+t663; + coeff_I_p2_p2_m1 = t473*t647+t368+t523+t397*z+t534+t688; + coeff_I_m1_m1_0 = t271+x*t613+t460*t505+t443*z+t538+t337+t574+t591+t693+ +t706; + coeff_I_0_m1_0 = z*t618+t409*y+t263+t255+t537+t563+t677+t707; + coeff_I_p1_m1_0 = t522+t548+t662+t679; + coeff_I_p2_m1_0 = t516+t552+t666+t667; + coeff_I_m1_0_0 = t442*t646+t409*x+t542+t608+t672+t677+t713+t725; + coeff_I_0_0_0 = t164+t329+t326+RATIONAL(177.0,1000.0)+(x+t645)*RATIONAL( +-161.0,4000.0)+t550+t165+t162+t328+t564; + coeff_I_p1_0_0 = t514+t365+t191+t459*x+t546+t670; + coeff_I_p2_0_0 = t332+y*t627+t393*x+t542+t652+t678+t685+t700; + coeff_I_m1_p1_0 = t511+t554+t679+t680; + coeff_I_0_p1_0 = t372+t550+t459*y+t173+t399+t567+t653+t670; + coeff_I_p1_p1_0 = t345+t520+t166+t400*z+t546+t674; + coeff_I_p2_p1_0 = t525+t554+t673+t675; + coeff_I_m1_p2_0 = t516+t532+t656+t661; + coeff_I_0_p2_0 = x*t627+t393*y+t531+t343+t577+t678+t695+t707; + coeff_I_p1_p2_0 = t526+t548+t659+t675; + coeff_I_p2_p2_0 = t528+t239+t482*t505+t411*z+t174+t557+t602+t689+t706; + coeff_I_m1_m1_p1 = t270+t413*z+t417*t647+t368+t371+t230+t563+t599+t649+ +t690+t691; + coeff_I_0_m1_p1 = t522+t553+t664+t671; + coeff_I_p1_m1_p1 = t446*t644+t545+t356+t469*y+t606+t648+t694+t704; + coeff_I_p2_m1_p1 = t513+t552+t650+t658; + coeff_I_m1_0_p1 = t511+t529+t657+t671; + coeff_I_0_0_p1 = t514+t355+t459*z+t174+t543+t653; + coeff_I_p1_0_p1 = t177+t547+t341+t434+t400*y+t564+t674+t676; + coeff_I_p2_0_p1 = t525+t529+t651+t684; + coeff_I_m1_p1_p1 = t469*x+z*t614+t510+t571+t574+t576+t704; + coeff_I_0_p1_p1 = t347+t520+t194+t400*x+t543+t676; + coeff_I_p1_p1_p1 = t405*z+t352+RATIONAL(-193.0,4000.0)+t384+t385+(t405+ +t435*z)*y+(t405+t645*t435)*x+t547+t567; + coeff_I_p2_p1_p1 = t271+t334+t527+y*t629+t388*x+t557+t576+t701+t715; + coeff_I_m1_p2_p1 = t513+t532+t663+t665; + coeff_I_0_p2_p1 = t526+t553+t651+t668; + coeff_I_p1_p2_p1 = t545+x*t629+t388*y+t342+t598+t695+t696+t701+t719; + coeff_I_p2_p2_p1 = t360+t540+x*t626+t466*z+t230+t571+t602+t669+t718; + coeff_I_m1_m1_p2 = t515+t450*t647+t394*z+t353+t333+t559+t588+t699; + coeff_I_0_m1_p2 = t521+t551+t654+t667; + coeff_I_p1_m1_p2 = t519+t551+t650+t681; + coeff_I_p2_m1_p2 = t349+x*t622+t523+t397*y+t560+t603+t724; + coeff_I_m1_0_p2 = t518+t544+t654+t661; + coeff_I_0_0_p2 = t448*t647+t393*z+t346+t531+t569+t652+t698+t703; + coeff_I_p1_0_p2 = t524+t533+t659+t684; + coeff_I_p2_0_p2 = t331+t482*t504+t340+t549+t373+t411*y+t173+t593+t687+ +t689+t702; + coeff_I_m1_p1_p2 = t517+t544+t665+t681; + coeff_I_0_p1_p2 = t524+t536+t668+t673; + coeff_I_p1_p1_p2 = t527+t337+t457*t647+t388*z+t556+t572+t580+t719; + coeff_I_p2_p1_p2 = t378+t549+t439*t644+t466*y+t655+t669+t720+t723; + coeff_I_m1_p2_p2 = t436+t382+y*t622+t539+t397*x+t555+t688+t724; + coeff_I_0_p2_p2 = t219+t528+t482*t503+t411*x+t191+t556+t591+t702+t721; + coeff_I_p1_p2_p2 = t540+z*t626+t362+t466*x+t569+t570+t591+t655; + coeff_I_p2_p2_p2 = t389*z+t152+RATIONAL(77.0,2000.0)+(t424*z+t389)*y+( +t504+t503+t505)*t487+(t389+t645*t424)*x+t539+t712; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-dx.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-dx.compute.c new file mode 100644 index 0000000..a19f612 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-dx.compute.c @@ -0,0 +1,501 @@ +fp t893, + t883, + t804, + t892, + t816, + t989, + t894, + t800, + t988, + t818, + t987, + t871, + t778, + t735, + t821, + t986, + t806, + t886, + t784, + t953, + t785, + t985, + t813, + t984, + t887, + t794, + t983, + t811, + t982, + t796, + t935, + t981, + t817, + t980, + t809, + t979, + t885, + t789, + t791, + t810, + t951, + t978, + t977, + t801, + t976, + t975, + t948, + t974, + t970, + t736, + t808, + t973, + t972, + t971, + t969, + t864, + t766, + t868, + t776, + t875, + t780, + t968, + t812, + t967, + t743, + t745, + t966, + t738, + t739, + t965, + t819, + t964, + t742, + t963, + t962, + t961, + t960, + t959, + t740, + t744, + t958, + t955, + t741, + t954, + t952, + t950, + t949, + t947, + t946, + t945, + t944, + t943, + t940, + t939, + t865, + t938, + t937, + t936, + t878, + t732, + t934, + t933, + t932, + t931, + t733, + t930, + t929, + t928, + t927, + t926, + t925, + t924, + t730, + t923, + t922, + t921, + t734, + t920, + t919, + t918, + t917, + t916, + t731, + t915, + t914, + t913, + t912, + t911, + t910, + t909, + t908, + t907, + t737, + t906, + t905, + t904, + t903, + t902, + t901, + t814, + t900, + t899, + t898, + t897, + t896, + t895, + t884, + t882, + t880, + t879, + t877, + t876, + t874, + t873, + t872, + t869, + t867, + t866, + t863, + t861, + t860, + t859, + t858, + t856, + t855, + t854, + t852, + t851, + t850, + t847, + t846, + t841, + t838, + t833, + t803, + t802, + t799, + t797, + t795, + t793, + t792, + t790, + t788, + t787, + t783, + t782, + t781, + t779, + t777, + t775, + t774, + t773, + t772, + t771, + t770, + t769, + t768, + t767, + t765, + t764, + t763, + t762, + t761, + t760, + t759, + t758, + t756, + t755, + t754, + t753, + t752, + t751, + t750, + t749, + t747, + t746; + t893 = y*y; + t883 = RATIONAL(-1.0,160.0); + t804 = t883*t893; + t892 = x*x; + t816 = RATIONAL(-3.0,32.0)*t892; + t989 = t804+t816; + t894 = z*z; + t800 = t883*t894; + t988 = t800+t989; + t818 = RATIONAL(1.0,40.0)*x; + t987 = RATIONAL(-17.0,3000.0)+t818; + t871 = RATIONAL(-3.0,1000.0); + t778 = t871*z; + t735 = y*t778; + t821 = RATIONAL(3.0,40.0)*x; + t986 = t735+t821+RATIONAL(53.0,1000.0); + t806 = RATIONAL(-1.0,32.0)*t892; + t886 = RATIONAL(-3.0,160.0); + t784 = t886*t894; + t953 = t806+t784; + t785 = t886*t893; + t985 = t953+t785; + t813 = RATIONAL(-9.0,80.0)*x; + t984 = RATIONAL(-137.0,4000.0)+t813; + t887 = RATIONAL(1.0,160.0); + t794 = t887*t894; + t983 = t794+t989; + t811 = RATIONAL(3.0,80.0)*x; + t982 = RATIONAL(53.0,12000.0)+t811; + t796 = t887*t893; + t935 = t796+t816; + t981 = t935+t794; + t817 = RATIONAL(1.0,20.0)*x; + t980 = RATIONAL(-29.0,6000.0)+t817; + t809 = RATIONAL(1.0,80.0)*x; + t979 = RATIONAL(-137.0,12000.0)+t809; + t885 = RATIONAL(3.0,160.0); + t789 = t885*t894; + t791 = t885*t893; + t810 = RATIONAL(1.0,32.0)*t892; + t951 = t791+t810; + t978 = t789+t951; + t977 = t784+t785+t810; + t801 = RATIONAL(-11.0,80.0)*x; + t976 = RATIONAL(-107.0,4000.0)+t801; + t975 = t800+t935; + t948 = t789+t806; + t974 = t791+t948; + t970 = y*z; + t736 = RATIONAL(3.0,1000.0)*t970; + t808 = RATIONAL(7.0,80.0)*x; + t973 = t736+RATIONAL(183.0,4000.0)+t808; + t972 = RATIONAL(323.0,4000.0)+t736+t811; + t971 = t735+RATIONAL(141.0,2000.0)+t817; + t969 = z+y; + t864 = RATIONAL(-27.0,1000.0); + t766 = t864*y; + t868 = RATIONAL(-1.0,1000.0); + t776 = t868*y; + t875 = RATIONAL(-9.0,1000.0); + t780 = t875*y; + t968 = RATIONAL(-3.0,80.0)*x; + t812 = RATIONAL(-1.0,80.0)*x; + t967 = t791+t784; + t743 = y*t809; + t745 = z*t812; + t966 = t743+t745; + t738 = z*t968; + t739 = y*t968; + t965 = t738+t739; + t819 = RATIONAL(3.0,32.0)*t892; + t964 = t735+t819; + t742 = y*t812; + t963 = t742+t738; + t962 = t800+t796; + t961 = t745+t739; + t960 = t804+t794; + t959 = t800+t804; + t740 = y*t811; + t744 = z*t809; + t958 = t740+t744; + t955 = t742+t745; + t741 = z*t811; + t954 = t741+t743; + t952 = t740+t738; + t950 = t789+t785; + t949 = t736+t819; + t947 = t740+t745; + t946 = t742+t744; + t945 = t740+t741; + t944 = t743+t738; + t943 = RATIONAL(-1.0,8.0)*x+t819; + t940 = t744+t739; + t939 = t796+t794; + t865 = RATIONAL(-21.0,2000.0); + t938 = t742+t865*z; + t937 = t743+t744; + t936 = t741+t739; + t878 = RATIONAL(-9.0,500.0); + t732 = z*t780; + t934 = t878*z+t743+t732; + t933 = RATIONAL(1.0,10.0)*x+t965; + t932 = t744+t732+t878*y; + t931 = t821+t955; + t733 = RATIONAL(9.0,1000.0)*t970; + t930 = t733+t745+t766; + t929 = t817+t937; + t928 = t733+t742+t864*z; + t927 = t818+t945; + t926 = t738+t810+t950; + t925 = t741+t791+t953; + t924 = RATIONAL(-79.0,2000.0)+RATIONAL(-1.0,10.0)*x+t964; + t730 = z*t766; + t923 = t730+t985; + t922 = t739+t784+t951; + t921 = RATIONAL(-49.0,2000.0)+RATIONAL(-3.0,20.0)*x+t964; + t734 = RATIONAL(1.0,1000.0)*t970; + t920 = t734+t988; + t919 = t949+t962; + t918 = t736+t977; + t917 = RATIONAL(-607.0,12000.0)+t806+t808+t732; + t916 = t740+t785+t948; + t731 = RATIONAL(27.0,1000.0)*t970; + t915 = t731+t978; + t914 = t949+t960; + t913 = t745+t975; + t912 = t738+t983; + t911 = RATIONAL(-167.0,12000.0)+t810+t812+t732; + t910 = t733+t981; + t909 = t733+t810+RATIONAL(-4.0,375.0)+RATIONAL(-1.0,40.0)*x; + t908 = t741+t983; + t907 = t732+t819+t959; + t737 = z*t776; + t906 = t737+t819+t939; + t905 = t744+t975; + t904 = t735+t974; + t903 = t733+RATIONAL(-97.0,3000.0)+t806+t821; + t902 = t735+RATIONAL(79.0,3000.0)+t977; + t901 = RATIONAL(-41.0,750.0)+t730+t978; + t814 = RATIONAL(1.0,16.0)*x; + t900 = RATIONAL(299.0,4000.0)+t737+t814+t988; + t899 = RATIONAL(281.0,12000.0)+t731+t814+t985; + t898 = RATIONAL(-691.0,12000.0)+t736+t814+t974; + t897 = RATIONAL(191.0,4000.0)+t732+t814+t981; + t896 = t733+RATIONAL(-33.0,2000.0)+t943+t959; + t895 = t734+RATIONAL(-87.0,2000.0)+t939+t943; + t884 = RATIONAL(2.0,125.0); + t882 = RATIONAL(-9.0,250.0); + t880 = RATIONAL(-7.0,250.0); + t879 = RATIONAL(-1.0,250.0); + t877 = RATIONAL(-1.0,500.0); + t876 = RATIONAL(-3.0,2000.0); + t874 = RATIONAL(11.0,500.0); + t873 = RATIONAL(-1.0,2000.0); + t872 = RATIONAL(-7.0,2000.0); + t869 = RATIONAL(-17.0,500.0); + t867 = RATIONAL(19.0,1000.0); + t866 = RATIONAL(27.0,2000.0); + t863 = RATIONAL(-37.0,1000.0); + t861 = RATIONAL(93.0,2000.0); + t860 = RATIONAL(-23.0,2000.0); + t859 = RATIONAL(33.0,2000.0); + t858 = RATIONAL(-17.0,2000.0); + t856 = RATIONAL(-31.0,1000.0); + t855 = RATIONAL(-39.0,2000.0); + t854 = RATIONAL(-13.0,2000.0); + t852 = RATIONAL(49.0,2000.0); + t851 = RATIONAL(37.0,2000.0); + t850 = RATIONAL(13.0,1000.0); + t847 = RATIONAL(31.0,2000.0); + t846 = RATIONAL(-19.0,2000.0); + t841 = RATIONAL(43.0,2000.0); + t838 = RATIONAL(111.0,2000.0); + t833 = RATIONAL(129.0,2000.0); + t803 = t879*z; + t802 = t880*y; + t799 = t884*y; + t797 = t884*z; + t795 = t880*z; + t793 = t877*z; + t792 = t882*z; + t790 = t882*y; + t788 = t877*y; + t787 = t879*y; + t783 = t872*y; + t782 = t873*z; + t781 = t869*y; + t779 = t871*y; + t777 = t873*y; + t775 = t874*y; + t774 = t875*z; + t773 = t868*z; + t772 = t874*z; + t771 = t872*z; + t770 = t869*z; + t769 = t850*y; + t768 = t847*z; + t767 = t841*z; + t765 = t867*y; + t764 = t850*z; + t763 = t846*y; + t762 = t851*y; + t761 = t846*z; + t760 = t854*z; + t759 = t863*y; + t758 = t847*y; + t756 = t841*y; + t755 = t856*z; + t754 = t863*z; + t753 = t867*z; + t752 = t851*z; + t751 = t865*y; + t750 = t852*y; + t749 = t854*y; + t747 = t856*y; + t746 = t852*z; + coeff_dx_m1_m1_m1 = RATIONAL(-47.0,1500.0)+t969*RATIONAL(147.0,2000.0)+ +t923+t933; + coeff_dx_0_m1_m1 = t782+RATIONAL(-13.0,80.0)*x+t777+RATIONAL(-39.0,4000.0 +)+t907+t945; + coeff_dx_p1_m1_m1 = t759+RATIONAL(157.0,2000.0)+t754+t910+t927; + coeff_dx_p2_m1_m1 = t792+t790+t811+RATIONAL(-449.0,12000.0)+t915+t965; + coeff_dx_m1_0_m1 = t777+t833*z+t917+t963+t967; + coeff_dx_0_0_m1 = t771+t858*y+t921+t954+t962; + coeff_dx_p1_0_m1 = t787+t770+t743+t908+t972; + coeff_dx_p2_0_m1 = t769+t926+t928+t987; + coeff_dx_m1_p1_m1 = t838*z+t759+t903+t944+t967; + coeff_dx_0_p1_m1 = t760+t742+t787+t741+t919+t976; + coeff_dx_p1_p1_m1 = t859*y+t742+t755+t908+t971; + coeff_dx_p2_p1_m1 = t750+t926+t934+t979; + coeff_dx_m1_p2_m1 = t861*z+t790+t899+t952; + coeff_dx_0_p2_m1 = t761+t769+t896+t936; + coeff_dx_p1_p2_m1 = t795+t750+t897+t936; + coeff_dx_p2_p2_m1 = t876*y+t774+t901+t952; + coeff_dx_m1_m1_0 = t782+t833*y+t917+t950+t961; + coeff_dx_0_m1_0 = t858*z+t783+t921+t958+t960; + coeff_dx_p1_m1_0 = t781+t803+t740+t905+t972; + coeff_dx_p2_m1_0 = t764+t922+t930+t987; + coeff_dx_m1_0_0 = t771+RATIONAL(-437.0,6000.0)+t783+t904+t931; + coeff_dx_0_0_0 = t761+t763+t801+RATIONAL(-161.0,4000.0)+t906+t937; + coeff_dx_p1_0_0 = t778+t779+RATIONAL(21.0,250.0)+t920+t929; + coeff_dx_p2_0_0 = RATIONAL(349.0,12000.0)+t799+t809+t797+t918+t955; + coeff_dx_m1_p1_0 = t760+t781+t898+t966; + coeff_dx_0_p1_0 = t779+t744+t895+t938; + coeff_dx_p1_p1_0 = t758+t793+t900+t946; + coeff_dx_p2_p1_0 = t756+t753+t902+t966; + coeff_dx_m1_p2_0 = t761+t916+t930+t980; + coeff_dx_0_p2_0 = t860*z+t799+t914+t940+t984; + coeff_dx_p1_p2_0 = t773+t739+t756+t905+t986; + coeff_dx_p2_p2_0 = t772+t751+t911+t947+t967; + coeff_dx_m1_m1_p1 = t838*y+t754+t903+t940+t950; + coeff_dx_0_m1_p1 = t803+t749+t914+t947+t976; + coeff_dx_p1_m1_p1 = t859*z+t747+t740+t913+t971; + coeff_dx_p2_m1_p1 = t746+t922+t932+t979; + coeff_dx_m1_0_p1 = t770+t749+t898+t946; + coeff_dx_0_0_p1 = t751+t778+t895+t966; + coeff_dx_p1_0_p1 = t788+t768+t900+t966; + coeff_dx_p2_0_p1 = t767+t765+t902+t946; + coeff_dx_m1_p1_p1 = RATIONAL(-17.0,375.0)+t755+t747+t904+t929; + coeff_dx_0_p1_p1 = t813+t788+t793+RATIONAL(-191.0,4000.0)+t906+t955; + coeff_dx_p1_p1_p1 = RATIONAL(133.0,2000.0)+t969*RATIONAL(29.0,2000.0)+ +t920+t931; + coeff_dx_p2_p1_p1 = RATIONAL(319.0,12000.0)+t812+t752+t762+t918+t937; + coeff_dx_m1_p2_p1 = t795+t916+t932+t982; + coeff_dx_0_p2_p1 = t765+t773+t924+t960+t961; + coeff_dx_p1_p2_p1 = t739+t866*z+t762+t913+t973; + coeff_dx_p2_p2_p1 = t768+t855*y+t909+t958+t967; + coeff_dx_m1_m1_p2 = t792+t861*y+t899+t936; + coeff_dx_0_m1_p2 = t764+t763+t896+t952; + coeff_dx_p1_m1_p2 = t746+t802+t897+t952; + coeff_dx_p2_m1_p2 = t780+t876*z+t901+t936; + coeff_dx_m1_0_p2 = t763+t925+t928+t980; + coeff_dx_0_0_p2 = t860*y+t797+t919+t944+t984; + coeff_dx_p1_0_p2 = t743+t776+t767+t912+t986; + coeff_dx_p2_0_p2 = t741+t775+t911+t938+t950; + coeff_dx_m1_p1_p2 = t802+t925+t934+t982; + coeff_dx_0_p1_p2 = t753+t776+t924+t962+t963; + coeff_dx_p1_p1_p2 = t742+t752+t866*y+t912+t973; + coeff_dx_p2_p1_p2 = t855*z+t758+t909+t950+t954; + coeff_dx_m1_p2_p2 = t774+t780+RATIONAL(307.0,6000.0)+t923+t927; + coeff_dx_0_p2_p2 = RATIONAL(-129.0,4000.0)+t775+RATIONAL(-7.0,80.0)*x+ +t772+t907+t965; + coeff_dx_p1_p2_p2 = t768+RATIONAL(13.0,500.0)+t758+t910+t933; + coeff_dx_p2_p2_p2 = RATIONAL(-539.0,12000.0)+t968+t969*RATIONAL(-57.0, +2000.0)+t915+t945; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-dxx.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-dxx.compute.c new file mode 100644 index 0000000..d6ac5f0 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-dxx.compute.c @@ -0,0 +1,192 @@ +fp t1525, + t1517, + t1533, + t1520, + t1577, + t1534, + t1515, + t1518, + t1576, + t1510, + t1575, + t1529, + t1514, + t1574, + t1535, + t1512, + t1530, + t1573, + t1511, + t1572, + t1521, + t1571, + t1570, + t1569, + t1568, + t1567, + t1566, + t1519, + t1565, + t1564, + t1563, + t1562, + t1561, + t1560, + t1559, + t1558, + t1557, + t1556, + t1555, + t1554, + t1528, + t1553, + t1552, + t1527, + t1551, + t1550, + t1532, + t1549, + t1548, + t1547, + t1523, + t1546, + t1545, + t1544, + t1543, + t1542, + t1541, + t1540, + t1539, + t1538, + t1526, + t1522, + t1516, + t1513; + t1525 = RATIONAL(-3.0,80.0); + t1517 = t1525*y; + t1533 = RATIONAL(1.0,80.0); + t1520 = t1533*z; + t1577 = t1517+t1520; + t1534 = RATIONAL(3.0,80.0); + t1515 = t1534*y; + t1518 = t1534*z; + t1576 = t1515+t1518; + t1510 = t1533*y; + t1575 = t1518+t1510; + t1529 = RATIONAL(-9.0,80.0); + t1514 = RATIONAL(3.0,16.0)*x; + t1574 = t1529+t1514; + t1535 = RATIONAL(1.0,16.0); + t1512 = t1535*x; + t1530 = RATIONAL(-1.0,80.0); + t1573 = t1512+t1530; + t1511 = t1530*y; + t1572 = t1511+t1520; + t1521 = t1530*z; + t1571 = t1521+t1517; + t1570 = t1521+t1510; + t1569 = t1521+t1515; + t1568 = RATIONAL(-1.0,10.0)+t1514; + t1567 = t1510+t1520; + t1566 = t1514+t1520; + t1519 = t1525*z; + t1565 = t1519+t1511; + t1564 = t1518+t1514; + t1563 = t1519+t1510; + t1562 = t1512+t1533; + t1561 = t1515+t1520; + t1560 = t1515+t1519; + t1559 = RATIONAL(-1.0,40.0)+t1512; + t1558 = t1517+t1519; + t1557 = t1514+RATIONAL(-1.0,8.0); + t1556 = t1521+t1511; + t1555 = t1517+t1518; + t1554 = t1512+t1511; + t1528 = RATIONAL(1.0,40.0); + t1553 = t1528+t1576; + t1552 = t1535+t1570; + t1527 = RATIONAL(7.0,80.0); + t1551 = t1527+t1571; + t1550 = t1527+t1565; + t1532 = RATIONAL(1.0,20.0); + t1549 = t1532+t1569; + t1548 = t1532+t1567; + t1547 = t1535+t1555; + t1523 = RATIONAL(3.0,40.0); + t1546 = t1523+t1563; + t1545 = t1518+t1532+t1511; + t1544 = t1535+t1560; + t1543 = RATIONAL(1.0,10.0)+t1558; + t1542 = t1534+t1561; + t1541 = t1523+t1556; + t1540 = t1534+t1575; + t1539 = t1523+t1577; + t1538 = t1535+t1572; + t1526 = RATIONAL(-3.0,20.0); + t1522 = RATIONAL(-11.0,80.0); + t1516 = RATIONAL(-1.0,16.0)*x; + t1513 = RATIONAL(-3.0,16.0)*x; + coeff_dxx_m1_m1_m1 = t1516+t1543; + coeff_dxx_0_m1_m1 = RATIONAL(-13.0,80.0)+t1515+t1564; + coeff_dxx_p1_m1_m1 = t1513+t1553; + coeff_dxx_p2_m1_m1 = t1534+t1512+t1558; + coeff_dxx_m1_0_m1 = t1516+t1550; + coeff_dxx_0_0_m1 = t1510+t1526+t1564; + coeff_dxx_p1_0_m1 = t1513+t1540; + coeff_dxx_p2_0_m1 = t1519+t1528+t1554; + coeff_dxx_m1_p1_m1 = t1516+t1546; + coeff_dxx_0_p1_m1 = t1511+t1522+t1564; + coeff_dxx_p1_p1_m1 = t1513+t1545; + coeff_dxx_p2_p1_m1 = t1562+t1563; + coeff_dxx_m1_p2_m1 = t1516+t1544; + coeff_dxx_0_p2_m1 = t1555+t1557; + coeff_dxx_p1_p2_m1 = t1513+t1547; + coeff_dxx_p2_p2_m1 = t1512+t1560; + coeff_dxx_m1_m1_0 = t1516+t1551; + coeff_dxx_0_m1_0 = t1514+t1526+t1561; + coeff_dxx_p1_m1_0 = t1513+t1542; + coeff_dxx_p2_m1_0 = t1528+t1512+t1571; + coeff_dxx_m1_0_0 = t1516+t1541; + coeff_dxx_0_0_0 = t1522+t1510+t1566; + coeff_dxx_p1_0_0 = t1513+t1548; + coeff_dxx_p2_0_0 = t1533+t1521+t1554; + coeff_dxx_m1_p1_0 = t1516+t1552; + coeff_dxx_0_p1_0 = t1557+t1572; + coeff_dxx_p1_p1_0 = t1513+t1538; + coeff_dxx_p2_p1_0 = t1512+t1570; + coeff_dxx_m1_p2_0 = t1516+t1549; + coeff_dxx_0_p2_0 = t1529+t1517+t1566; + coeff_dxx_p1_p2_0 = t1513+t1539; + coeff_dxx_p2_p2_0 = t1569+t1573; + coeff_dxx_m1_m1_p1 = t1516+t1539; + coeff_dxx_0_m1_p1 = t1522+t1514+t1569; + coeff_dxx_p1_m1_p1 = t1513+t1549; + coeff_dxx_p2_m1_p1 = t1562+t1577; + coeff_dxx_m1_0_p1 = t1516+t1538; + coeff_dxx_0_0_p1 = t1557+t1570; + coeff_dxx_p1_0_p1 = t1513+t1552; + coeff_dxx_p2_0_p1 = t1520+t1554; + coeff_dxx_m1_p1_p1 = t1516+t1548; + coeff_dxx_0_p1_p1 = t1556+t1574; + coeff_dxx_p1_p1_p1 = t1513+t1541; + coeff_dxx_p2_p1_p1 = t1567+t1573; + coeff_dxx_m1_p2_p1 = t1516+t1542; + coeff_dxx_0_p2_p1 = t1568+t1571; + coeff_dxx_p1_p2_p1 = t1513+t1551; + coeff_dxx_p2_p2_p1 = t1559+t1561; + coeff_dxx_m1_m1_p2 = t1516+t1547; + coeff_dxx_0_m1_p2 = t1557+t1560; + coeff_dxx_p1_m1_p2 = t1513+t1544; + coeff_dxx_p2_m1_p2 = t1512+t1555; + coeff_dxx_m1_0_p2 = t1516+t1545; + coeff_dxx_0_0_p2 = t1563+t1574; + coeff_dxx_p1_0_p2 = t1513+t1546; + coeff_dxx_p2_0_p2 = t1518+t1530+t1554; + coeff_dxx_m1_p1_p2 = t1516+t1540; + coeff_dxx_0_p1_p2 = t1565+t1568; + coeff_dxx_p1_p1_p2 = t1513+t1550; + coeff_dxx_p2_p1_p2 = t1559+t1575; + coeff_dxx_m1_p2_p2 = t1516+t1553; + coeff_dxx_0_p2_p2 = RATIONAL(-7.0,80.0)+t1514+t1558; + coeff_dxx_p1_p2_p2 = t1513+t1543; + coeff_dxx_p2_p2_p2 = t1525+t1512+t1576; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-dxy.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-dxy.compute.c new file mode 100644 index 0000000..873d369 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-dxy.compute.c @@ -0,0 +1,212 @@ +fp t1609, + t1582, + t1661, + t1606, + t1580, + t1660, + t1659, + t1619, + t1589, + t1590, + t1658, + t1585, + t1657, + t1621, + t1591, + t1656, + t1620, + t1592, + t1586, + t1655, + t1622, + t1593, + t1654, + t1583, + t1653, + t1587, + t1652, + t1581, + t1651, + t1588, + t1650, + t1649, + t1648, + t1647, + t1646, + t1645, + t1644, + t1643, + t1642, + t1641, + t1640, + t1639, + t1638, + t1637, + t1610, + t1584, + t1636, + t1635, + t1634, + t1633, + t1594, + t1632, + t1631, + t1630, + t1629, + t1628, + t1579, + t1627, + t1626, + t1578, + t1625, + t1602, + t1624, + t1623, + t1618, + t1614, + t1613, + t1611, + t1607, + t1604, + t1601, + t1598, + t1597, + t1595; + t1609 = RATIONAL(-3.0,1000.0); + t1582 = t1609*z; + t1661 = RATIONAL(43.0,2000.0)+t1582; + t1606 = RATIONAL(-9.0,1000.0); + t1580 = t1606*z; + t1660 = t1580+RATIONAL(-9.0,500.0); + t1659 = t1580+RATIONAL(11.0,500.0); + t1619 = RATIONAL(-3.0,80.0); + t1589 = t1619*y; + t1590 = t1619*x; + t1658 = t1589+t1590; + t1585 = RATIONAL(9.0,1000.0)*z; + t1657 = RATIONAL(-37.0,1000.0)+t1585; + t1621 = RATIONAL(1.0,80.0); + t1591 = t1621*x; + t1656 = t1589+t1591; + t1620 = RATIONAL(-1.0,80.0); + t1592 = t1620*x; + t1586 = t1621*y; + t1655 = t1592+t1586; + t1622 = RATIONAL(3.0,80.0); + t1593 = t1622*y; + t1654 = t1591+t1593; + t1583 = RATIONAL(1.0,1000.0)*z; + t1653 = t1609+t1583; + t1587 = t1620*y; + t1652 = t1591+t1587; + t1581 = RATIONAL(3.0,1000.0)*z; + t1651 = t1581+RATIONAL(2.0,125.0); + t1588 = t1622*x; + t1650 = t1588+t1587; + t1649 = t1588+t1586; + t1648 = RATIONAL(-31.0,1000.0)+t1582; + t1647 = t1589+t1592; + t1646 = t1588+t1580; + t1645 = t1588+t1593; + t1644 = t1592+t1582; + t1643 = t1590+t1587; + t1642 = t1582+t1587; + t1641 = t1592+t1593; + t1640 = t1591+t1586; + t1639 = t1581+t1586; + t1638 = RATIONAL(-7.0,2000.0)+t1582; + t1637 = t1592+t1587; + t1610 = RATIONAL(-1.0,1000.0); + t1584 = t1610*z; + t1636 = t1592+t1584; + t1635 = t1585+t1587; + t1634 = t1581+RATIONAL(-1.0,250.0); + t1633 = t1588+t1589; + t1594 = RATIONAL(-27.0,1000.0); + t1632 = t1594+t1585; + t1631 = t1592+t1585; + t1630 = t1581+RATIONAL(37.0,2000.0); + t1629 = t1580+t1591; + t1628 = t1590+t1593; + t1579 = RATIONAL(27.0,1000.0)*z; + t1627 = t1579+t1593; + t1626 = RATIONAL(-13.0,2000.0)+t1581; + t1578 = t1594*z; + t1625 = t1589+t1578; + t1602 = RATIONAL(31.0,2000.0); + t1624 = t1602+t1585; + t1623 = t1590+t1586; + t1618 = RATIONAL(-9.0,250.0); + t1614 = RATIONAL(-1.0,500.0); + t1613 = RATIONAL(-7.0,250.0); + t1611 = RATIONAL(-17.0,500.0); + t1607 = RATIONAL(-1.0,2000.0); + t1604 = RATIONAL(-19.0,2000.0); + t1601 = RATIONAL(-21.0,2000.0); + t1598 = RATIONAL(19.0,1000.0); + t1597 = RATIONAL(13.0,1000.0); + t1595 = RATIONAL(49.0,2000.0); + coeff_dxy_m1_m1_m1 = t1590+RATIONAL(147.0,2000.0)+t1625; + coeff_dxy_0_m1_m1 = t1607+t1587+t1646; + coeff_dxy_p1_m1_m1 = t1649+t1657; + coeff_dxy_p2_m1_m1 = t1618+t1590+t1627; + coeff_dxy_m1_0_m1 = t1580+t1607+t1641; + coeff_dxy_0_0_m1 = t1582+RATIONAL(-17.0,2000.0)+t1640; + coeff_dxy_p1_0_m1 = t1634+t1652; + coeff_dxy_p2_0_m1 = t1589+t1597+t1631; + coeff_dxy_m1_p1_m1 = t1654+t1657; + coeff_dxy_0_p1_m1 = t1634+t1655; + coeff_dxy_p1_p1_m1 = t1582+RATIONAL(33.0,2000.0)+t1637; + coeff_dxy_p2_p1_m1 = t1595+t1589+t1629; + coeff_dxy_m1_p2_m1 = t1579+t1618+t1633; + coeff_dxy_0_p2_m1 = t1590+t1597+t1635; + coeff_dxy_p1_p2_m1 = t1580+t1595+t1623; + coeff_dxy_p2_p2_m1 = RATIONAL(-3.0,2000.0)+t1578+t1645; + coeff_dxy_m1_m1_0 = RATIONAL(129.0,2000.0)+t1580+t1658; + coeff_dxy_0_m1_0 = t1638+t1650; + coeff_dxy_p1_m1_0 = t1588+t1611+t1639; + coeff_dxy_p2_m1_0 = t1628+t1632; + coeff_dxy_m1_0_0 = t1638+t1641; + coeff_dxy_0_0_0 = t1604+t1584+t1640; + coeff_dxy_p1_0_0 = t1652+t1653; + coeff_dxy_p2_0_0 = t1647+t1651; + coeff_dxy_m1_p1_0 = t1611+t1581+t1654; + coeff_dxy_0_p1_0 = t1653+t1655; + coeff_dxy_p1_p1_0 = t1602+t1587+t1636; + coeff_dxy_p2_p1_0 = t1656+t1661; + coeff_dxy_m1_p2_0 = t1632+t1633; + coeff_dxy_0_p2_0 = t1643+t1651; + coeff_dxy_p1_p2_0 = t1623+t1661; + coeff_dxy_p2_p2_0 = t1580+t1601+t1645; + coeff_dxy_m1_m1_p1 = t1585+RATIONAL(111.0,2000.0)+t1658; + coeff_dxy_0_m1_p1 = t1626+t1650; + coeff_dxy_p1_m1_p1 = t1648+t1649; + coeff_dxy_p2_m1_p1 = t1628+t1660; + coeff_dxy_m1_0_p1 = t1626+t1641; + coeff_dxy_0_0_p1 = t1583+t1601+t1640; + coeff_dxy_p1_0_p1 = t1614+t1584+t1652; + coeff_dxy_p2_0_p1 = t1589+t1598+t1644; + coeff_dxy_m1_p1_p1 = t1648+t1654; + coeff_dxy_0_p1_p1 = t1614+t1586+t1636; + coeff_dxy_p1_p1_p1 = t1583+RATIONAL(29.0,2000.0)+t1637; + coeff_dxy_p2_p1_p1 = t1630+t1656; + coeff_dxy_m1_p2_p1 = t1633+t1660; + coeff_dxy_0_p2_p1 = t1590+t1598+t1642; + coeff_dxy_p1_p2_p1 = t1623+t1630; + coeff_dxy_p2_p2_p1 = RATIONAL(-39.0,2000.0)+t1585+t1645; + coeff_dxy_m1_m1_p2 = RATIONAL(93.0,2000.0)+t1579+t1658; + coeff_dxy_0_m1_p2 = t1604+t1588+t1635; + coeff_dxy_p1_m1_p2 = t1613+t1586+t1646; + coeff_dxy_p2_m1_p2 = t1578+t1606+t1628; + coeff_dxy_m1_0_p2 = t1593+t1604+t1631; + coeff_dxy_0_0_p2 = t1591+RATIONAL(-23.0,2000.0)+t1639; + coeff_dxy_p1_0_p2 = t1610+t1591+t1642; + coeff_dxy_p2_0_p2 = t1647+t1659; + coeff_dxy_m1_p1_p2 = t1593+t1613+t1629; + coeff_dxy_0_p1_p2 = t1610+t1586+t1644; + coeff_dxy_p1_p1_p2 = RATIONAL(27.0,2000.0)+t1581+t1637; + coeff_dxy_p2_p1_p2 = t1624+t1656; + coeff_dxy_m1_p2_p2 = t1588+t1606+t1625; + coeff_dxy_0_p2_p2 = t1643+t1659; + coeff_dxy_p1_p2_p2 = t1623+t1624; + coeff_dxy_p2_p2_p2 = t1588+RATIONAL(-57.0,2000.0)+t1627; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-dxz.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-dxz.compute.c new file mode 100644 index 0000000..be15ad8 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-dxz.compute.c @@ -0,0 +1,210 @@ +fp t1706, + t1670, + t1705, + t1676, + t1742, + t1703, + t1671, + t1741, + t1675, + t1740, + t1672, + t1739, + t1704, + t1673, + t1738, + t1690, + t1667, + t1737, + t1677, + t1736, + t1693, + t1665, + t1735, + t1734, + t1733, + t1674, + t1732, + t1731, + t1730, + t1729, + t1728, + t1727, + t1694, + t1669, + t1726, + t1666, + t1725, + t1724, + t1723, + t1664, + t1722, + t1721, + t1720, + t1719, + t1662, + t1718, + t1688, + t1717, + t1716, + t1715, + t1714, + t1713, + t1678, + t1663, + t1712, + t1711, + t1710, + t1668, + t1709, + t1708, + t1707, + t1700, + t1699, + t1698, + t1697, + t1696, + t1695, + t1686, + t1685, + t1684, + t1681, + t1680, + t1679; + t1706 = RATIONAL(3.0,80.0); + t1670 = t1706*z; + t1705 = RATIONAL(1.0,80.0); + t1676 = t1705*x; + t1742 = t1670+t1676; + t1703 = RATIONAL(-3.0,80.0); + t1671 = t1703*z; + t1741 = t1671+t1676; + t1675 = t1706*x; + t1740 = t1671+t1675; + t1672 = t1703*x; + t1739 = t1671+t1672; + t1704 = RATIONAL(-1.0,80.0); + t1673 = t1704*z; + t1738 = t1673+t1675; + t1690 = RATIONAL(-9.0,1000.0); + t1667 = t1690*y; + t1737 = t1667+t1671; + t1677 = t1704*x; + t1736 = t1670+t1677; + t1693 = RATIONAL(-3.0,1000.0); + t1665 = t1693*y; + t1735 = t1677+t1665; + t1734 = RATIONAL(-31.0,1000.0)+t1665; + t1733 = t1670+t1675; + t1674 = t1705*z; + t1732 = t1674+t1675; + t1731 = t1667+t1670; + t1730 = RATIONAL(19.0,1000.0)+t1665; + t1729 = t1672+t1673; + t1728 = t1674+t1677; + t1727 = t1673+t1676; + t1694 = RATIONAL(-1.0,1000.0); + t1669 = t1694*y; + t1726 = t1669+t1673; + t1666 = RATIONAL(3.0,1000.0)*y; + t1725 = t1666+t1674; + t1724 = t1666+t1677; + t1723 = t1674+t1676; + t1664 = RATIONAL(9.0,1000.0)*y; + t1722 = t1664+t1672; + t1721 = t1664+t1671; + t1720 = t1666+t1673; + t1719 = RATIONAL(43.0,2000.0)+t1665; + t1662 = RATIONAL(27.0,1000.0)*y; + t1718 = RATIONAL(-9.0,250.0)+t1662; + t1688 = RATIONAL(-19.0,2000.0); + t1717 = t1664+t1688; + t1716 = t1670+t1672; + t1715 = t1664+RATIONAL(-37.0,1000.0); + t1714 = t1667+t1672; + t1713 = t1667+RATIONAL(-1.0,2000.0); + t1678 = RATIONAL(-27.0,1000.0); + t1663 = t1678*y; + t1712 = t1663+t1690; + t1711 = RATIONAL(2.0,125.0)+t1666; + t1710 = t1667+RATIONAL(11.0,500.0); + t1668 = RATIONAL(1.0,1000.0)*y; + t1709 = t1668+t1693; + t1708 = t1671+t1677; + t1707 = t1665+t1694; + t1700 = RATIONAL(-9.0,500.0); + t1699 = RATIONAL(-1.0,250.0); + t1698 = RATIONAL(-1.0,500.0); + t1697 = RATIONAL(-7.0,250.0); + t1696 = RATIONAL(-7.0,2000.0); + t1695 = RATIONAL(-17.0,500.0); + t1686 = RATIONAL(31.0,2000.0); + t1685 = RATIONAL(-21.0,2000.0); + t1684 = RATIONAL(-13.0,2000.0); + t1681 = RATIONAL(13.0,1000.0); + t1680 = RATIONAL(37.0,2000.0); + t1679 = RATIONAL(49.0,2000.0); + coeff_dxz_m1_m1_m1 = RATIONAL(147.0,2000.0)+t1663+t1739; + coeff_dxz_0_m1_m1 = t1713+t1738; + coeff_dxz_p1_m1_m1 = t1715+t1732; + coeff_dxz_p2_m1_m1 = t1716+t1718; + coeff_dxz_m1_0_m1 = RATIONAL(129.0,2000.0)+t1671+t1714; + coeff_dxz_0_0_m1 = t1665+t1696+t1738; + coeff_dxz_p1_0_m1 = t1675+t1695+t1725; + coeff_dxz_p2_0_m1 = t1664+t1678+t1716; + coeff_dxz_m1_p1_m1 = t1672+RATIONAL(111.0,2000.0)+t1721; + coeff_dxz_0_p1_m1 = t1675+t1684+t1720; + coeff_dxz_p1_p1_m1 = t1732+t1734; + coeff_dxz_p2_p1_m1 = t1670+t1700+t1714; + coeff_dxz_m1_p2_m1 = t1662+RATIONAL(93.0,2000.0)+t1739; + coeff_dxz_0_p2_m1 = t1717+t1738; + coeff_dxz_p1_p2_m1 = t1697+t1667+t1732; + coeff_dxz_p2_p2_m1 = t1712+t1716; + coeff_dxz_m1_m1_0 = t1713+t1736; + coeff_dxz_0_m1_0 = RATIONAL(-17.0,2000.0)+t1665+t1723; + coeff_dxz_p1_m1_0 = t1676+t1699+t1720; + coeff_dxz_p2_m1_0 = t1664+t1681+t1708; + coeff_dxz_m1_0_0 = t1696+t1670+t1735; + coeff_dxz_0_0_0 = t1688+t1669+t1723; + coeff_dxz_p1_0_0 = t1709+t1727; + coeff_dxz_p2_0_0 = t1708+t1711; + coeff_dxz_m1_p1_0 = t1670+t1684+t1724; + coeff_dxz_0_p1_0 = t1685+t1668+t1723; + coeff_dxz_p1_p1_0 = t1676+t1698+t1726; + coeff_dxz_p2_p1_0 = t1708+t1730; + coeff_dxz_m1_p2_0 = t1717+t1736; + coeff_dxz_0_p2_0 = t1666+RATIONAL(-23.0,2000.0)+t1723; + coeff_dxz_p1_p2_0 = t1707+t1727; + coeff_dxz_p2_p2_0 = t1708+t1710; + coeff_dxz_m1_m1_p1 = t1715+t1742; + coeff_dxz_0_m1_p1 = t1699+t1674+t1724; + coeff_dxz_p1_m1_p1 = t1673+RATIONAL(33.0,2000.0)+t1735; + coeff_dxz_p2_m1_p1 = t1676+t1679+t1737; + coeff_dxz_m1_0_p1 = t1695+t1666+t1742; + coeff_dxz_0_0_p1 = t1709+t1728; + coeff_dxz_p1_0_p1 = t1677+t1686+t1726; + coeff_dxz_p2_0_p1 = t1719+t1741; + coeff_dxz_m1_p1_p1 = t1734+t1742; + coeff_dxz_0_p1_p1 = t1698+t1669+t1728; + coeff_dxz_p1_p1_p1 = t1677+t1668+t1673+RATIONAL(29.0,2000.0); + coeff_dxz_p2_p1_p1 = t1666+t1680+t1741; + coeff_dxz_m1_p2_p1 = t1676+t1697+t1731; + coeff_dxz_0_p2_p1 = t1707+t1728; + coeff_dxz_p1_p2_p1 = t1677+RATIONAL(27.0,2000.0)+t1720; + coeff_dxz_p2_p2_p1 = t1686+t1676+t1721; + coeff_dxz_m1_m1_p2 = t1718+t1740; + coeff_dxz_0_m1_p2 = t1673+t1681+t1722; + coeff_dxz_p1_m1_p2 = t1679+t1674+t1714; + coeff_dxz_p2_m1_p2 = t1663+RATIONAL(-3.0,2000.0)+t1733; + coeff_dxz_m1_0_p2 = t1678+t1675+t1721; + coeff_dxz_0_0_p2 = t1711+t1729; + coeff_dxz_p1_0_p2 = t1672+t1674+t1719; + coeff_dxz_p2_0_p2 = t1675+t1685+t1731; + coeff_dxz_m1_p1_p2 = t1675+t1700+t1737; + coeff_dxz_0_p1_p2 = t1729+t1730; + coeff_dxz_p1_p1_p2 = t1672+t1680+t1725; + coeff_dxz_p2_p1_p2 = RATIONAL(-39.0,2000.0)+t1664+t1733; + coeff_dxz_m1_p2_p2 = t1712+t1740; + coeff_dxz_0_p2_p2 = t1710+t1729; + coeff_dxz_p1_p2_p2 = t1674+t1686+t1722; + coeff_dxz_p2_p2_p2 = RATIONAL(-57.0,2000.0)+t1662+t1733; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-dy.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-dy.compute.c new file mode 100644 index 0000000..b81fc93 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-dy.compute.c @@ -0,0 +1,511 @@ +fp t1152, + t1146, + t1046, + t1154, + t1045, + t1255, + t1147, + t1053, + t1143, + t1055, + t1254, + t1145, + t1061, + t1253, + t1252, + t1153, + t1066, + t1251, + t1078, + t1064, + t1199, + t1250, + t1069, + t1249, + t1076, + t1248, + t1068, + t1247, + t1246, + t1191, + t1245, + t1059, + t1244, + t1071, + t1051, + t1057, + t1243, + t1242, + t1241, + t1080, + t1240, + t1239, + t1081, + t1238, + t1223, + t997, + t1070, + t1237, + t1204, + t1236, + t1235, + t1131, + t1033, + t995, + t1079, + t1234, + t1233, + t1232, + t1135, + t1043, + t992, + t1231, + t1230, + t1077, + t1229, + t1228, + t1074, + t1227, + t1226, + t1225, + t1224, + t1222, + t1128, + t1036, + t1124, + t1015, + t998, + t999, + t1221, + t996, + t1220, + t1219, + t1218, + t1217, + t1000, + t1215, + t1003, + t1214, + t1213, + t1125, + t1212, + t1210, + t1001, + t1005, + t1209, + t1208, + t1205, + t1203, + t1002, + t1004, + t1201, + t1200, + t1196, + t1073, + t1195, + t1192, + t1190, + t1189, + t1188, + t1187, + t993, + t1186, + t990, + t1185, + t1184, + t1183, + t1182, + t991, + t1181, + t994, + t1180, + t1179, + t1178, + t1177, + t1176, + t1175, + t1174, + t1173, + t1172, + t1171, + t1170, + t1169, + t1168, + t1167, + t1166, + t1165, + t1164, + t1163, + t1162, + t1161, + t1160, + t1159, + t1158, + t1157, + t1156, + t1155, + t1144, + t1142, + t1140, + t1139, + t1138, + t1137, + t1136, + t1134, + t1133, + t1132, + t1129, + t1127, + t1126, + t1123, + t1121, + t1120, + t1119, + t1118, + t1116, + t1115, + t1114, + t1112, + t1111, + t1110, + t1107, + t1106, + t1101, + t1098, + t1093, + t1063, + t1062, + t1060, + t1058, + t1056, + t1054, + t1052, + t1050, + t1049, + t1048, + t1047, + t1044, + t1042, + t1041, + t1040, + t1039, + t1038, + t1037, + t1035, + t1034, + t1032, + t1031, + t1030, + t1029, + t1028, + t1027, + t1026, + t1025, + t1024, + t1023, + t1022, + t1021, + t1020, + t1019, + t1018, + t1017, + t1016, + t1014, + t1013, + t1012, + t1010, + t1009, + t1008, + t1007, + t1006; + t1152 = x*x; + t1146 = RATIONAL(-3.0,160.0); + t1046 = t1146*t1152; + t1154 = z*z; + t1045 = t1146*t1154; + t1255 = t1046+t1045; + t1147 = RATIONAL(1.0,160.0); + t1053 = t1147*t1154; + t1143 = RATIONAL(-1.0,160.0); + t1055 = t1143*t1152; + t1254 = t1053+t1055; + t1145 = RATIONAL(3.0,160.0); + t1061 = t1145*t1154; + t1253 = t1046+t1061; + t1252 = RATIONAL(-79.0,2000.0)+RATIONAL(-1.0,10.0)*y; + t1153 = y*y; + t1066 = RATIONAL(-1.0,32.0)*t1153; + t1251 = t1066+t1255; + t1078 = RATIONAL(1.0,32.0)*t1153; + t1064 = t1145*t1152; + t1199 = t1078+t1064; + t1250 = t1199+t1061; + t1069 = RATIONAL(-9.0,80.0)*y; + t1249 = RATIONAL(-137.0,4000.0)+t1069; + t1076 = RATIONAL(3.0,32.0)*t1153; + t1248 = t1076+t1254; + t1068 = RATIONAL(3.0,80.0)*y; + t1247 = RATIONAL(323.0,4000.0)+t1068; + t1246 = t1078+t1253; + t1191 = t1066+t1064; + t1245 = t1191+t1045; + t1059 = RATIONAL(-11.0,80.0)*y; + t1244 = RATIONAL(-107.0,4000.0)+t1059; + t1071 = RATIONAL(-3.0,32.0)*t1153; + t1051 = t1143*t1154; + t1057 = t1147*t1152; + t1243 = t1051+t1071+t1057; + t1242 = t1078+t1255; + t1241 = t1071+t1254; + t1080 = RATIONAL(1.0,20.0)*y; + t1240 = t1080+RATIONAL(141.0,2000.0); + t1239 = t1199+t1045; + t1081 = RATIONAL(7.0,80.0)*y; + t1238 = RATIONAL(183.0,4000.0)+t1081; + t1223 = x*z; + t997 = RATIONAL(9.0,1000.0)*t1223; + t1070 = RATIONAL(1.0,40.0)*y; + t1237 = t997+t1070+RATIONAL(-17.0,3000.0); + t1204 = t1051+t1076; + t1236 = t1204+t1057; + t1235 = t1066+t1253; + t1131 = RATIONAL(-3.0,1000.0); + t1033 = t1131*z; + t995 = x*t1033; + t1079 = RATIONAL(3.0,40.0)*y; + t1234 = RATIONAL(53.0,1000.0)+t995+t1079; + t1233 = t1191+t1061; + t1232 = RATIONAL(-4.0,375.0)+RATIONAL(-1.0,40.0)*y+t997; + t1135 = RATIONAL(-9.0,1000.0); + t1043 = t1135*z; + t992 = x*t1043; + t1231 = RATIONAL(-607.0,12000.0)+t1081+t992; + t1230 = t1080+t997+RATIONAL(-29.0,6000.0); + t1077 = RATIONAL(1.0,80.0)*y; + t1229 = t992+t1077+RATIONAL(-137.0,12000.0); + t1228 = RATIONAL(53.0,12000.0)+t992+t1068; + t1074 = RATIONAL(-1.0,80.0)*y; + t1227 = RATIONAL(-167.0,12000.0)+t1074+t992; + t1226 = t995+RATIONAL(-3.0,20.0)*y+RATIONAL(-49.0,2000.0); + t1225 = t997+t1079+RATIONAL(-97.0,3000.0); + t1224 = z+x; + t1222 = RATIONAL(-3.0,80.0)*y; + t1128 = RATIONAL(-1.0,1000.0); + t1036 = t1128*x; + t1124 = RATIONAL(-27.0,1000.0); + t1015 = t1124*x; + t998 = x*t1074; + t999 = z*t1074; + t1221 = t998+t999; + t996 = RATIONAL(3.0,1000.0)*t1223; + t1220 = t996+t999; + t1219 = t996+t998; + t1218 = t995+t999; + t1217 = t995+t998; + t1000 = z*t1077; + t1215 = t996+t1000; + t1003 = x*t1077; + t1214 = t996+t1003; + t1213 = t998+t1000; + t1125 = RATIONAL(-21.0,2000.0); + t1212 = t998+t1125*z; + t1210 = t999+t1003; + t1001 = x*t1222; + t1005 = z*t1222; + t1209 = t1001+t1005; + t1208 = t1051+t1055; + t1205 = t1000+t1003; + t1203 = t1076+RATIONAL(-1.0,8.0)*y; + t1002 = z*t1068; + t1004 = x*t1068; + t1201 = t1002+t1004; + t1200 = t1001+t1002; + t1196 = t1005+t1004; + t1073 = RATIONAL(1.0,16.0)*y; + t1195 = t1071+t1073; + t1192 = t1053+t1057; + t1190 = t1079+t1221; + t1189 = RATIONAL(1.0,10.0)*y+t1209; + t1188 = t1070+t1201; + t1187 = t1080+t1205; + t993 = RATIONAL(1.0,1000.0)*t1223; + t1186 = t1071+t993+t1208; + t990 = z*t1015; + t1185 = t990+t1251; + t1184 = t999+t1235; + t1183 = t998+t1245; + t1182 = t996+t1242; + t991 = RATIONAL(27.0,1000.0)*t1223; + t1181 = t991+t1250; + t994 = z*t1036; + t1180 = t994+t1076+t1192; + t1179 = t1071+t997+t1192; + t1178 = t992+t1055+t1204; + t1177 = t995+t1233; + t1176 = t1005+t1241; + t1175 = t1001+t1239; + t1174 = t1004+t1248; + t1173 = t1004+t1243; + t1172 = t1005+t1246; + t1171 = t1003+t1245; + t1170 = t1000+t1235; + t1169 = t1002+t1241; + t1168 = t1001+t1248; + t1167 = t1002+t1236; + t1166 = t1002+t1246; + t1165 = t1004+t1239; + t1164 = t1001+t1243; + t1163 = t1005+t1236; + t1162 = RATIONAL(-41.0,750.0)+t990+t1250; + t1161 = t995+RATIONAL(79.0,3000.0)+t1242; + t1160 = t1073+t991+RATIONAL(281.0,12000.0)+t1251; + t1159 = RATIONAL(191.0,4000.0)+t992+t1192+t1195; + t1158 = t997+RATIONAL(-33.0,2000.0)+t1203+t1208; + t1157 = t1073+t996+RATIONAL(-691.0,12000.0)+t1233; + t1156 = t993+RATIONAL(-87.0,2000.0)+t1192+t1203; + t1155 = t994+RATIONAL(299.0,4000.0)+t1195+t1208; + t1144 = RATIONAL(2.0,125.0); + t1142 = RATIONAL(-9.0,250.0); + t1140 = RATIONAL(-7.0,250.0); + t1139 = RATIONAL(-1.0,250.0); + t1138 = RATIONAL(-9.0,500.0); + t1137 = RATIONAL(-1.0,500.0); + t1136 = RATIONAL(-3.0,2000.0); + t1134 = RATIONAL(11.0,500.0); + t1133 = RATIONAL(-1.0,2000.0); + t1132 = RATIONAL(-7.0,2000.0); + t1129 = RATIONAL(-17.0,500.0); + t1127 = RATIONAL(19.0,1000.0); + t1126 = RATIONAL(27.0,2000.0); + t1123 = RATIONAL(-37.0,1000.0); + t1121 = RATIONAL(93.0,2000.0); + t1120 = RATIONAL(-23.0,2000.0); + t1119 = RATIONAL(33.0,2000.0); + t1118 = RATIONAL(-17.0,2000.0); + t1116 = RATIONAL(-31.0,1000.0); + t1115 = RATIONAL(-39.0,2000.0); + t1114 = RATIONAL(-13.0,2000.0); + t1112 = RATIONAL(49.0,2000.0); + t1111 = RATIONAL(37.0,2000.0); + t1110 = RATIONAL(13.0,1000.0); + t1107 = RATIONAL(31.0,2000.0); + t1106 = RATIONAL(-19.0,2000.0); + t1101 = RATIONAL(43.0,2000.0); + t1098 = RATIONAL(111.0,2000.0); + t1093 = RATIONAL(129.0,2000.0); + t1063 = t1140*z; + t1062 = t1142*z; + t1060 = t1138*z; + t1058 = t1142*x; + t1056 = t1140*x; + t1054 = t1137*x; + t1052 = t1138*x; + t1050 = t1144*x; + t1049 = t1139*z; + t1048 = t1139*x; + t1047 = t1137*z; + t1044 = t1144*z; + t1042 = t1132*x; + t1041 = t1134*z; + t1040 = t1129*x; + t1039 = t1133*z; + t1038 = t1135*x; + t1037 = t1131*x; + t1035 = t1129*z; + t1034 = t1134*x; + t1032 = t1128*z; + t1031 = t1133*x; + t1030 = t1132*z; + t1029 = t1116*z; + t1028 = t1123*x; + t1027 = t1107*z; + t1026 = t1112*x; + t1025 = t1114*x; + t1024 = t1111*x; + t1023 = t1124*z; + t1022 = t1112*z; + t1021 = t1101*z; + t1020 = t1111*z; + t1019 = t1125*x; + t1018 = t1116*x; + t1017 = t1106*z; + t1016 = t1110*x; + t1014 = t1106*x; + t1013 = t1123*z; + t1012 = t1127*x; + t1010 = t1107*x; + t1009 = t1101*x; + t1008 = t1110*z; + t1007 = t1114*z; + t1006 = t1127*z; + coeff_dy_m1_m1_m1 = RATIONAL(-47.0,1500.0)+t1224*RATIONAL(147.0,2000.0)+ +t1185+t1189; + coeff_dy_0_m1_m1 = t1005+t1031+t1093*z+t1183+t1231; + coeff_dy_p1_m1_m1 = t1005+t1028+t1098*z+t1171+t1225; + coeff_dy_p2_m1_m1 = t1058+t1121*z+t1160+t1196; + coeff_dy_m1_0_m1 = RATIONAL(-13.0,80.0)*y+t1039+RATIONAL(-39.0,4000.0)+ +t1031+t1178+t1201; + coeff_dy_0_0_m1 = t1118*x+t1030+t1003+t1167+t1226; + coeff_dy_p1_0_m1 = t1048+t1007+t1167+t1219+t1244; + coeff_dy_p2_0_m1 = t1017+t1016+t1158+t1200; + coeff_dy_m1_p1_m1 = t1013+RATIONAL(157.0,2000.0)+t1028+t1179+t1188; + coeff_dy_0_p1_m1 = t1035+t1048+t1169+t1214+t1247; + coeff_dy_p1_p1_m1 = t1119*x+t1029+t1169+t1217+t1240; + coeff_dy_p2_p1_m1 = t1026+t1063+t1159+t1200; + coeff_dy_m1_p2_m1 = t1068+t1062+RATIONAL(-449.0,12000.0)+t1058+t1181+ +t1209; + coeff_dy_0_p2_m1 = t998+t1023+t1016+t1172+t1237; + coeff_dy_p1_p2_m1 = t1026+t1060+t1003+t1172+t1229; + coeff_dy_p2_p2_m1 = t1136*x+t1043+t1162+t1196; + coeff_dy_m1_m1_0 = t1039+t1093*x+t1001+t1184+t1231; + coeff_dy_0_m1_0 = t1042+RATIONAL(-437.0,6000.0)+t1030+t1177+t1190; + coeff_dy_p1_m1_0 = t1007+t1040+t1157+t1210; + coeff_dy_p2_m1_0 = t1004+t1015+t1017+t1184+t1230; + coeff_dy_m1_0_0 = t1042+t1118*z+t1000+t1174+t1226; + coeff_dy_0_0_0 = RATIONAL(-161.0,4000.0)+t1059+t1017+t1014+t1180+t1205; + coeff_dy_p1_0_0 = t1037+t1000+t1156+t1212; + coeff_dy_p2_0_0 = t1120*z+t1050+t1168+t1215+t1249; + coeff_dy_m1_p1_0 = t1049+t1040+t1173+t1215+t1247; + coeff_dy_0_p1_0 = RATIONAL(21.0,250.0)+t1037+t1033+t1186+t1187; + coeff_dy_p1_p1_0 = t1010+t1047+t1155+t1213; + coeff_dy_p2_p1_0 = t1000+t1032+t1009+t1164+t1234; + coeff_dy_m1_p2_0 = t1008+t999+t1015+t1175+t1237; + coeff_dy_0_p2_0 = RATIONAL(349.0,12000.0)+t1050+t1077+t1044+t1182+t1221; + coeff_dy_p1_p2_0 = t1009+t1006+t1161+t1210; + coeff_dy_p2_p2_0 = t1041+t1019+t999+t1165+t1227; + coeff_dy_m1_m1_p1 = t1013+t1098*x+t1001+t1170+t1225; + coeff_dy_0_m1_p1 = t1025+t1035+t1157+t1213; + coeff_dy_p1_m1_p1 = t1018+t1029+RATIONAL(-17.0,375.0)+t1177+t1187; + coeff_dy_p2_m1_p1 = t1052+t1004+t1063+t1170+t1228; + coeff_dy_m1_0_p1 = t1049+t1025+t1174+t1220+t1244; + coeff_dy_0_0_p1 = t1019+t1033+t1156+t1210; + coeff_dy_p1_0_p1 = t1047+RATIONAL(-191.0,4000.0)+t1069+t1054+t1180+t1221; + coeff_dy_p2_0_p1 = t1012+t1032+t1168+t1218+t1252; + coeff_dy_m1_p1_p1 = t1018+t1119*z+t1173+t1218+t1240; + coeff_dy_0_p1_p1 = t1054+t1027+t1155+t1210; + coeff_dy_p1_p1_p1 = RATIONAL(133.0,2000.0)+t1224*RATIONAL(29.0,2000.0)+ +t1186+t1190; + coeff_dy_p2_p1_p1 = t1126*z+t1024+t1164+t1220+t1238; + coeff_dy_m1_p2_p1 = t1000+t1052+t1022+t1175+t1229; + coeff_dy_0_p2_p1 = t1021+t1012+t1161+t1213; + coeff_dy_p1_p2_p1 = t1024+RATIONAL(319.0,12000.0)+t1020+t1074+t1182+t1205 +; + coeff_dy_p2_p2_p1 = t1115*x+t1027+t1000+t1165+t1232; + coeff_dy_m1_m1_p2 = t1121*x+t1062+t1160+t1200; + coeff_dy_0_m1_p2 = t1014+t1023+t1002+t1183+t1230; + coeff_dy_p1_m1_p2 = t1056+t1002+t1060+t1171+t1228; + coeff_dy_p2_m1_p2 = RATIONAL(307.0,6000.0)+t1043+t1038+t1185+t1188; + coeff_dy_m1_0_p2 = t1014+t1008+t1158+t1196; + coeff_dy_0_0_p2 = t1120*x+t1044+t1163+t1214+t1249; + coeff_dy_p1_0_p2 = t1036+t1006+t1163+t1217+t1252; + coeff_dy_p2_0_p2 = RATIONAL(-7.0,80.0)*y+t1034+t1041+RATIONAL(-129.0, +4000.0)+t1178+t1209; + coeff_dy_m1_p1_p2 = t1056+t1022+t1159+t1196; + coeff_dy_0_p1_p2 = t1036+t1003+t1021+t1176+t1234; + coeff_dy_p1_p1_p2 = t1020+t1126*x+t1176+t1219+t1238; + coeff_dy_p2_p1_p2 = t1027+RATIONAL(13.0,500.0)+t1010+t1179+t1189; + coeff_dy_m1_p2_p2 = t1038+t1136*z+t1162+t1200; + coeff_dy_0_p2_p2 = t1034+t1166+t1212+t1227; + coeff_dy_p1_p2_p2 = t1010+t1115*z+t1003+t1166+t1232; + coeff_dy_p2_p2_p2 = RATIONAL(-539.0,12000.0)+t1222+t1224*RATIONAL(-57.0, +2000.0)+t1181+t1201; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-dyy.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-dyy.compute.c new file mode 100644 index 0000000..8a4901e --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-dyy.compute.c @@ -0,0 +1,192 @@ +fp t1751, + t1810, + t1809, + t1767, + t1750, + t1743, + t1808, + t1766, + t1749, + t1807, + t1768, + t1746, + t1806, + t1764, + t1745, + t1805, + t1763, + t1754, + t1753, + t1804, + t1770, + t1803, + t1752, + t1802, + t1801, + t1744, + t1800, + t1799, + t1798, + t1797, + t1796, + t1795, + t1794, + t1793, + t1792, + t1755, + t1791, + t1790, + t1789, + t1788, + t1787, + t1786, + t1762, + t1785, + t1784, + t1783, + t1782, + t1759, + t1781, + t1757, + t1780, + t1779, + t1761, + t1778, + t1777, + t1776, + t1775, + t1774, + t1773, + t1772, + t1771, + t1758, + t1748, + t1747; + t1751 = RATIONAL(3.0,16.0)*y; + t1810 = t1751+RATIONAL(-1.0,10.0); + t1809 = t1751+RATIONAL(-9.0,80.0); + t1767 = RATIONAL(1.0,80.0); + t1750 = t1767*x; + t1743 = t1767*z; + t1808 = t1750+t1743; + t1766 = RATIONAL(-1.0,80.0); + t1749 = t1766*x; + t1807 = t1749+t1743; + t1768 = RATIONAL(3.0,80.0); + t1746 = t1768*z; + t1806 = t1746+t1749; + t1764 = RATIONAL(1.0,16.0); + t1745 = t1764*y; + t1805 = t1766+t1745; + t1763 = RATIONAL(-3.0,80.0); + t1754 = t1763*z; + t1753 = t1763*x; + t1804 = t1754+t1753; + t1770 = RATIONAL(-1.0,8.0); + t1803 = t1751+t1770; + t1752 = t1768*x; + t1802 = t1752+t1754; + t1801 = t1750+t1754; + t1744 = t1766*z; + t1800 = t1749+t1744; + t1799 = t1750+t1744; + t1798 = t1753+t1744; + t1797 = t1749+t1754; + t1796 = t1752+t1743; + t1795 = t1753+t1743; + t1794 = t1746+t1750; + t1793 = t1750+t1745; + t1792 = t1753+t1745; + t1755 = RATIONAL(-11.0,80.0); + t1791 = t1751+t1755; + t1790 = t1752+t1744; + t1789 = RATIONAL(-1.0,40.0)+t1745; + t1788 = t1746+t1751; + t1787 = t1746+t1752; + t1786 = t1768+t1794; + t1762 = RATIONAL(3.0,40.0); + t1785 = t1762+t1800; + t1784 = t1768+t1796; + t1783 = t1762+t1795; + t1782 = RATIONAL(1.0,10.0)+t1804; + t1759 = RATIONAL(1.0,40.0); + t1781 = t1759+t1787; + t1757 = RATIONAL(1.0,20.0); + t1780 = t1757+t1806; + t1779 = t1757+t1790; + t1761 = RATIONAL(7.0,80.0); + t1778 = t1761+t1797; + t1777 = t1764+t1802; + t1776 = t1757+t1808; + t1775 = t1764+t1807; + t1774 = t1764+t1799; + t1773 = t1746+t1753+t1764; + t1772 = t1761+t1798; + t1771 = t1762+t1801; + t1758 = RATIONAL(-3.0,20.0); + t1748 = RATIONAL(-1.0,16.0)*y; + t1747 = RATIONAL(-3.0,16.0)*y; + coeff_dyy_m1_m1_m1 = t1748+t1782; + coeff_dyy_0_m1_m1 = t1748+t1778; + coeff_dyy_p1_m1_m1 = t1748+t1771; + coeff_dyy_p2_m1_m1 = t1748+t1777; + coeff_dyy_m1_0_m1 = t1751+RATIONAL(-13.0,80.0)+t1787; + coeff_dyy_0_0_m1 = t1758+t1750+t1788; + coeff_dyy_p1_0_m1 = t1749+t1755+t1788; + coeff_dyy_p2_0_m1 = t1753+t1770+t1788; + coeff_dyy_m1_p1_m1 = t1747+t1781; + coeff_dyy_0_p1_m1 = t1747+t1786; + coeff_dyy_p1_p1_m1 = t1747+t1780; + coeff_dyy_p2_p1_m1 = t1747+t1773; + coeff_dyy_m1_p2_m1 = t1768+t1754+t1792; + coeff_dyy_0_p2_m1 = t1745+t1759+t1797; + coeff_dyy_p1_p2_m1 = t1754+t1767+t1793; + coeff_dyy_p2_p2_m1 = t1745+t1802; + coeff_dyy_m1_m1_0 = t1748+t1772; + coeff_dyy_0_m1_0 = t1748+t1785; + coeff_dyy_p1_m1_0 = t1748+t1774; + coeff_dyy_p2_m1_0 = t1748+t1779; + coeff_dyy_m1_0_0 = t1751+t1758+t1796; + coeff_dyy_0_0_0 = t1791+t1808; + coeff_dyy_p1_0_0 = t1803+t1807; + coeff_dyy_p2_0_0 = t1795+t1809; + coeff_dyy_m1_p1_0 = t1747+t1784; + coeff_dyy_0_p1_0 = t1747+t1776; + coeff_dyy_p1_p1_0 = t1747+t1775; + coeff_dyy_p2_p1_0 = t1747+t1783; + coeff_dyy_m1_p2_0 = t1744+t1759+t1792; + coeff_dyy_0_p2_0 = t1767+t1745+t1800; + coeff_dyy_p1_p2_0 = t1744+t1793; + coeff_dyy_p2_p2_0 = t1790+t1805; + coeff_dyy_m1_m1_p1 = t1748+t1783; + coeff_dyy_0_m1_p1 = t1748+t1775; + coeff_dyy_p1_m1_p1 = t1748+t1776; + coeff_dyy_p2_m1_p1 = t1748+t1784; + coeff_dyy_m1_0_p1 = t1790+t1791; + coeff_dyy_0_0_p1 = t1799+t1803; + coeff_dyy_p1_0_p1 = t1800+t1809; + coeff_dyy_p2_0_p1 = t1798+t1810; + coeff_dyy_m1_p1_p1 = t1747+t1779; + coeff_dyy_0_p1_p1 = t1747+t1774; + coeff_dyy_p1_p1_p1 = t1747+t1785; + coeff_dyy_p2_p1_p1 = t1747+t1772; + coeff_dyy_m1_p2_p1 = t1743+t1767+t1792; + coeff_dyy_0_p2_p1 = t1745+t1807; + coeff_dyy_p1_p2_p1 = t1766+t1743+t1793; + coeff_dyy_p2_p2_p1 = t1789+t1796; + coeff_dyy_m1_m1_p2 = t1748+t1773; + coeff_dyy_0_m1_p2 = t1748+t1780; + coeff_dyy_p1_m1_p2 = t1748+t1786; + coeff_dyy_p2_m1_p2 = t1748+t1781; + coeff_dyy_m1_0_p2 = t1802+t1803; + coeff_dyy_0_0_p2 = t1801+t1809; + coeff_dyy_p1_0_p2 = t1797+t1810; + coeff_dyy_p2_0_p2 = RATIONAL(-7.0,80.0)+t1751+t1804; + coeff_dyy_m1_p1_p2 = t1747+t1777; + coeff_dyy_0_p1_p2 = t1747+t1771; + coeff_dyy_p1_p1_p2 = t1747+t1778; + coeff_dyy_p2_p1_p2 = t1747+t1782; + coeff_dyy_m1_p2_p2 = t1746+t1792; + coeff_dyy_0_p2_p2 = t1805+t1806; + coeff_dyy_p1_p2_p2 = t1789+t1794; + coeff_dyy_p2_p2_p2 = t1763+t1745+t1787; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-dyz.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-dyz.compute.c new file mode 100644 index 0000000..d56dfe9 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-dyz.compute.c @@ -0,0 +1,206 @@ +fp t1855, + t1823, + t1852, + t1824, + t1893, + t1853, + t1819, + t1822, + t1892, + t1820, + t1825, + t1891, + t1813, + t1890, + t1854, + t1826, + t1889, + t1888, + t1843, + t1816, + t1887, + t1886, + t1831, + t1812, + t1885, + t1815, + t1884, + t1883, + t1841, + t1814, + t1882, + t1821, + t1881, + t1880, + t1879, + t1878, + t1877, + t1817, + t1876, + t1875, + t1874, + t1845, + t1873, + t1872, + t1871, + t1870, + t1869, + t1868, + t1867, + t1866, + t1865, + t1864, + t1863, + t1811, + t1862, + t1861, + t1860, + t1859, + t1858, + t1818, + t1857, + t1856, + t1850, + t1838, + t1835, + t1834, + t1833, + t1832, + t1829, + t1828, + t1827; + t1855 = RATIONAL(3.0,80.0); + t1823 = t1855*y; + t1852 = RATIONAL(-3.0,80.0); + t1824 = t1852*z; + t1893 = t1823+t1824; + t1853 = RATIONAL(-1.0,80.0); + t1819 = t1853*y; + t1822 = t1853*z; + t1892 = t1819+t1822; + t1820 = t1855*z; + t1825 = t1852*y; + t1891 = t1820+t1825; + t1813 = RATIONAL(3.0,1000.0)*x; + t1890 = t1813+RATIONAL(37.0,2000.0); + t1854 = RATIONAL(1.0,80.0); + t1826 = t1854*y; + t1889 = t1820+t1826; + t1888 = t1820+t1823; + t1843 = RATIONAL(-9.0,1000.0); + t1816 = t1843*x; + t1887 = t1816+RATIONAL(-1.0,2000.0); + t1886 = t1813+RATIONAL(-17.0,500.0); + t1831 = RATIONAL(-27.0,1000.0); + t1812 = t1831*x; + t1885 = t1812+t1820; + t1815 = RATIONAL(9.0,1000.0)*x; + t1884 = t1815+t1823; + t1883 = t1822+t1825; + t1841 = RATIONAL(-3.0,1000.0); + t1814 = t1841*x; + t1882 = t1814+RATIONAL(19.0,1000.0); + t1821 = t1854*z; + t1881 = t1821+t1823; + t1880 = t1814+RATIONAL(-7.0,2000.0); + t1879 = t1816+t1825; + t1878 = t1819+t1821; + t1877 = t1815+t1825; + t1817 = RATIONAL(1.0,1000.0)*x; + t1876 = t1817+t1841; + t1875 = t1814+t1821; + t1874 = t1822+t1826; + t1845 = RATIONAL(-1.0,1000.0); + t1873 = t1814+t1845; + t1872 = t1819+t1824; + t1871 = t1816+RATIONAL(11.0,500.0); + t1870 = t1813+RATIONAL(-13.0,2000.0); + t1869 = t1813+RATIONAL(2.0,125.0); + t1868 = t1812+t1824; + t1867 = t1816+RATIONAL(-7.0,250.0); + t1866 = t1819+t1820; + t1865 = t1824+t1826; + t1864 = t1816+RATIONAL(-9.0,500.0); + t1863 = t1815+t1819; + t1811 = RATIONAL(27.0,1000.0)*x; + t1862 = t1811+RATIONAL(-9.0,250.0); + t1861 = t1813+RATIONAL(-1.0,250.0); + t1860 = t1821+t1826; + t1859 = t1815+t1826; + t1858 = t1823+t1822; + t1818 = t1845*x; + t1857 = t1818+t1826; + t1856 = t1815+t1822; + t1850 = RATIONAL(-1.0,500.0); + t1838 = RATIONAL(49.0,2000.0); + t1835 = RATIONAL(43.0,2000.0); + t1834 = RATIONAL(-21.0,2000.0); + t1833 = RATIONAL(13.0,1000.0); + t1832 = RATIONAL(31.0,2000.0); + t1829 = RATIONAL(-31.0,1000.0); + t1828 = RATIONAL(-37.0,1000.0); + t1827 = RATIONAL(-19.0,2000.0); + coeff_dyz_m1_m1_m1 = RATIONAL(147.0,2000.0)+t1825+t1868; + coeff_dyz_0_m1_m1 = t1824+RATIONAL(129.0,2000.0)+t1879; + coeff_dyz_p1_m1_m1 = RATIONAL(111.0,2000.0)+t1824+t1877; + coeff_dyz_p2_m1_m1 = RATIONAL(93.0,2000.0)+t1811+t1824+t1825; + coeff_dyz_m1_0_m1 = t1858+t1887; + coeff_dyz_0_0_m1 = t1858+t1880; + coeff_dyz_p1_0_m1 = t1858+t1870; + coeff_dyz_p2_0_m1 = t1827+t1823+t1856; + coeff_dyz_m1_p1_m1 = t1815+t1828+t1881; + coeff_dyz_0_p1_m1 = t1881+t1886; + coeff_dyz_p1_p1_m1 = t1823+t1829+t1875; + coeff_dyz_p2_p1_m1 = t1867+t1881; + coeff_dyz_m1_p2_m1 = t1862+t1891; + coeff_dyz_0_p2_m1 = t1831+t1820+t1877; + coeff_dyz_p1_p2_m1 = t1864+t1891; + coeff_dyz_p2_p2_m1 = t1825+t1843+t1885; + coeff_dyz_m1_m1_0 = t1866+t1887; + coeff_dyz_0_m1_0 = t1866+t1880; + coeff_dyz_p1_m1_0 = t1866+t1870; + coeff_dyz_p2_m1_0 = t1820+t1827+t1863; + coeff_dyz_m1_0_0 = t1814+RATIONAL(-17.0,2000.0)+t1860; + coeff_dyz_0_0_0 = t1827+t1821+t1857; + coeff_dyz_p1_0_0 = t1834+t1817+t1860; + coeff_dyz_p2_0_0 = t1813+RATIONAL(-23.0,2000.0)+t1860; + coeff_dyz_m1_p1_0 = t1861+t1874; + coeff_dyz_0_p1_0 = t1874+t1876; + coeff_dyz_p1_p1_0 = t1822+t1850+t1857; + coeff_dyz_p2_p1_0 = t1873+t1874; + coeff_dyz_m1_p2_0 = t1833+t1824+t1863; + coeff_dyz_0_p2_0 = t1869+t1872; + coeff_dyz_p1_p2_0 = t1872+t1882; + coeff_dyz_p2_p2_0 = t1871+t1872; + coeff_dyz_m1_m1_p1 = t1828+t1820+t1859; + coeff_dyz_0_m1_p1 = t1886+t1889; + coeff_dyz_p1_m1_p1 = t1829+t1814+t1889; + coeff_dyz_p2_m1_p1 = t1867+t1889; + coeff_dyz_m1_0_p1 = t1861+t1878; + coeff_dyz_0_0_p1 = t1876+t1878; + coeff_dyz_p1_0_p1 = t1818+t1850+t1878; + coeff_dyz_p2_0_p1 = t1873+t1878; + coeff_dyz_m1_p1_p1 = RATIONAL(33.0,2000.0)+t1814+t1892; + coeff_dyz_0_p1_p1 = t1818+t1832+t1892; + coeff_dyz_p1_p1_p1 = t1817+RATIONAL(29.0,2000.0)+t1892; + coeff_dyz_p2_p1_p1 = t1813+RATIONAL(27.0,2000.0)+t1892; + coeff_dyz_m1_p2_p1 = t1816+t1838+t1865; + coeff_dyz_0_p2_p1 = t1814+t1835+t1865; + coeff_dyz_p1_p2_p1 = t1865+t1890; + coeff_dyz_p2_p2_p1 = t1832+t1824+t1859; + coeff_dyz_m1_m1_p2 = t1862+t1893; + coeff_dyz_0_m1_p2 = t1831+t1824+t1884; + coeff_dyz_p1_m1_p2 = t1864+t1893; + coeff_dyz_p2_m1_p2 = t1843+t1823+t1868; + coeff_dyz_m1_0_p2 = t1825+t1833+t1856; + coeff_dyz_0_0_p2 = t1869+t1883; + coeff_dyz_p1_0_p2 = t1882+t1883; + coeff_dyz_p2_0_p2 = t1871+t1883; + coeff_dyz_m1_p1_p2 = t1821+t1838+t1879; + coeff_dyz_0_p1_p2 = t1825+t1835+t1875; + coeff_dyz_p1_p1_p2 = t1825+t1821+t1890; + coeff_dyz_p2_p1_p2 = t1832+t1821+t1877; + coeff_dyz_m1_p2_p2 = RATIONAL(-3.0,2000.0)+t1823+t1885; + coeff_dyz_0_p2_p2 = t1816+t1834+t1888; + coeff_dyz_p1_p2_p2 = RATIONAL(-39.0,2000.0)+t1820+t1884; + coeff_dyz_p2_p2_p2 = RATIONAL(-57.0,2000.0)+t1811+t1888; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-dz.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-dz.compute.c new file mode 100644 index 0000000..28f410c --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-dz.compute.c @@ -0,0 +1,503 @@ +fp t1411, + t1418, + t1317, + t1419, + t1312, + t1509, + t1420, + t1340, + t1412, + t1321, + t1460, + t1508, + t1404, + t1401, + t1305, + t1258, + t1507, + t1343, + t1506, + t1335, + t1505, + t1332, + t1504, + t1503, + t1331, + t1502, + t1337, + t1501, + t1500, + t1499, + t1347, + t1498, + t1319, + t1474, + t1497, + t1409, + t1322, + t1413, + t1320, + t1339, + t1470, + t1496, + t1495, + t1494, + t1493, + t1342, + t1492, + t1341, + t1465, + t1491, + t1490, + t1489, + t1488, + t1487, + t1394, + t1304, + t1397, + t1308, + t1486, + t1346, + t1390, + t1277, + t1336, + t1265, + t1267, + t1484, + t1264, + t1483, + t1482, + t1268, + t1269, + t1481, + t1270, + t1479, + t1266, + t1478, + t1477, + t1271, + t1476, + t1318, + t1475, + t1473, + t1316, + t1472, + t1471, + t1468, + t1467, + t1466, + t1464, + t1259, + t1463, + t1462, + t1461, + t1459, + t1334, + t1458, + t1457, + t1262, + t1456, + t1455, + t1454, + t1453, + t1452, + t1263, + t1451, + t1450, + t1449, + t1257, + t1448, + t1447, + t1446, + t1445, + t1444, + t1443, + t1260, + t1442, + t1441, + t1440, + t1256, + t1439, + t1438, + t1261, + t1437, + t1436, + t1435, + t1434, + t1433, + t1432, + t1431, + t1430, + t1326, + t1429, + t1428, + t1427, + t1426, + t1425, + t1424, + t1423, + t1422, + t1421, + t1410, + t1408, + t1406, + t1405, + t1403, + t1402, + t1400, + t1399, + t1398, + t1395, + t1393, + t1392, + t1391, + t1389, + t1387, + t1386, + t1385, + t1384, + t1382, + t1381, + t1380, + t1378, + t1377, + t1376, + t1373, + t1372, + t1367, + t1364, + t1359, + t1358, + t1355, + t1330, + t1329, + t1327, + t1325, + t1324, + t1323, + t1315, + t1314, + t1313, + t1311, + t1310, + t1309, + t1307, + t1306, + t1303, + t1302, + t1301, + t1300, + t1299, + t1298, + t1297, + t1296, + t1295, + t1294, + t1293, + t1292, + t1291, + t1290, + t1289, + t1288, + t1287, + t1286, + t1285, + t1284, + t1283, + t1282, + t1281, + t1280, + t1279, + t1278, + t1276, + t1275, + t1274, + t1273, + t1272; + t1411 = RATIONAL(3.0,160.0); + t1418 = x*x; + t1317 = t1411*t1418; + t1419 = y*y; + t1312 = t1411*t1419; + t1509 = t1317+t1312; + t1420 = z*z; + t1340 = RATIONAL(-1.0,32.0)*t1420; + t1412 = RATIONAL(-3.0,160.0); + t1321 = t1412*t1418; + t1460 = t1321+t1312; + t1508 = t1340+t1460; + t1404 = RATIONAL(-9.0,500.0); + t1401 = RATIONAL(-9.0,1000.0); + t1305 = t1401*x; + t1258 = y*t1305; + t1507 = t1404*y+t1258; + t1343 = RATIONAL(1.0,40.0)*z; + t1506 = RATIONAL(-17.0,3000.0)+t1343; + t1335 = RATIONAL(3.0,40.0)*z; + t1505 = t1335+RATIONAL(-97.0,3000.0); + t1332 = RATIONAL(1.0,20.0)*z; + t1504 = t1332+RATIONAL(141.0,2000.0); + t1503 = t1340+t1509; + t1331 = RATIONAL(1.0,32.0)*t1420; + t1502 = t1331+t1509; + t1337 = RATIONAL(7.0,80.0)*z; + t1501 = t1337+RATIONAL(-607.0,12000.0); + t1500 = RATIONAL(-4.0,375.0)+RATIONAL(-1.0,40.0)*z; + t1499 = t1331+t1460; + t1347 = RATIONAL(-9.0,80.0)*z; + t1498 = RATIONAL(-137.0,4000.0)+t1347; + t1319 = t1412*t1419; + t1474 = t1319+t1340; + t1497 = t1321+t1474; + t1409 = RATIONAL(-1.0,160.0); + t1322 = t1409*t1418; + t1413 = RATIONAL(1.0,160.0); + t1320 = t1413*t1419; + t1339 = RATIONAL(-3.0,32.0)*t1420; + t1470 = t1320+t1339; + t1496 = t1322+t1470; + t1495 = RATIONAL(53.0,1000.0)+t1335; + t1494 = t1319+t1321+t1331; + t1493 = RATIONAL(183.0,4000.0)+t1337; + t1342 = RATIONAL(1.0,80.0)*z; + t1492 = t1342+RATIONAL(-137.0,12000.0); + t1341 = RATIONAL(3.0,32.0)*t1420; + t1465 = t1322+t1341; + t1491 = t1320+t1465; + t1490 = RATIONAL(-79.0,2000.0)+RATIONAL(-1.0,10.0)*z; + t1489 = RATIONAL(-49.0,2000.0)+RATIONAL(-3.0,20.0)*z; + t1488 = x*y; + t1487 = x+y; + t1394 = RATIONAL(-1.0,1000.0); + t1304 = t1394*x; + t1397 = RATIONAL(-3.0,1000.0); + t1308 = t1397*y; + t1486 = RATIONAL(-3.0,80.0)*z; + t1346 = RATIONAL(-1.0,80.0)*z; + t1390 = RATIONAL(-27.0,1000.0); + t1277 = t1390*y; + t1336 = RATIONAL(3.0,80.0)*z; + t1265 = x*t1336; + t1267 = y*t1336; + t1484 = t1265+t1267; + t1264 = y*t1342; + t1483 = t1264+t1265; + t1482 = t1319+t1317; + t1268 = y*t1486; + t1269 = x*t1346; + t1481 = t1268+t1269; + t1270 = x*t1342; + t1479 = t1264+t1270; + t1266 = x*t1486; + t1478 = t1264+t1266; + t1477 = t1269+t1267; + t1271 = y*t1346; + t1476 = t1271+t1265; + t1318 = t1409*t1419; + t1475 = t1322+t1318; + t1473 = t1268+t1266; + t1316 = t1413*t1418; + t1472 = t1320+t1316; + t1471 = t1271+t1269; + t1468 = t1316+t1318; + t1467 = t1264+t1269; + t1466 = t1271+t1270; + t1464 = t1268+t1265; + t1259 = RATIONAL(9.0,1000.0)*t1488; + t1463 = t1268+t1259; + t1462 = t1341+RATIONAL(-1.0,8.0)*z; + t1461 = t1271+t1266; + t1459 = t1266+t1267; + t1334 = RATIONAL(1.0,16.0)*z; + t1458 = t1334+t1339; + t1457 = t1336+t1483; + t1262 = RATIONAL(3.0,1000.0)*t1488; + t1456 = t1262+t1468; + t1455 = t1332+t1479; + t1454 = t1258+t1482; + t1453 = t1335+t1471; + t1452 = RATIONAL(1.0,10.0)*z+t1473; + t1263 = x*t1308; + t1451 = t1263+t1468; + t1450 = t1343+t1484; + t1449 = t1339+t1456; + t1257 = RATIONAL(27.0,1000.0)*t1488; + t1448 = t1257+t1502; + t1447 = t1316+t1259+t1470; + t1446 = t1266+t1491; + t1445 = t1332+RATIONAL(-29.0,6000.0)+t1340+t1259; + t1444 = t1263+t1503; + t1443 = t1339+t1451; + t1260 = RATIONAL(1.0,1000.0)*t1488; + t1442 = t1339+t1260+t1475; + t1441 = t1267+t1496; + t1440 = t1258+t1318+t1465; + t1256 = x*t1277; + t1439 = t1256+t1497; + t1438 = t1331+t1259+t1482; + t1261 = y*t1304; + t1437 = t1261+t1341+t1472; + t1436 = t1270+t1317+t1474; + t1435 = t1341+t1451; + t1434 = t1262+t1494; + t1433 = t1270+t1499; + t1432 = t1266+t1508; + t1431 = t1331+RATIONAL(-167.0,12000.0)+t1258+t1346; + t1430 = t1268+t1496; + t1326 = RATIONAL(-11.0,80.0)*z; + t1429 = t1341+t1326+t1262+RATIONAL(-107.0,4000.0); + t1428 = RATIONAL(-41.0,750.0)+t1256+t1502; + t1427 = t1263+RATIONAL(79.0,3000.0)+t1494; + t1426 = t1334+t1257+RATIONAL(281.0,12000.0)+t1497; + t1425 = t1258+RATIONAL(191.0,4000.0)+t1458+t1472; + t1424 = RATIONAL(-87.0,2000.0)+t1260+t1462+t1472; + t1423 = t1334+t1262+RATIONAL(-691.0,12000.0)+t1503; + t1422 = RATIONAL(-33.0,2000.0)+t1259+t1462+t1475; + t1421 = t1261+RATIONAL(299.0,4000.0)+t1458+t1475; + t1410 = RATIONAL(2.0,125.0); + t1408 = RATIONAL(-9.0,250.0); + t1406 = RATIONAL(-7.0,250.0); + t1405 = RATIONAL(-1.0,250.0); + t1403 = RATIONAL(-1.0,500.0); + t1402 = RATIONAL(-3.0,2000.0); + t1400 = RATIONAL(11.0,500.0); + t1399 = RATIONAL(-1.0,2000.0); + t1398 = RATIONAL(-7.0,2000.0); + t1395 = RATIONAL(-17.0,500.0); + t1393 = RATIONAL(19.0,1000.0); + t1392 = RATIONAL(27.0,2000.0); + t1391 = RATIONAL(-21.0,2000.0); + t1389 = RATIONAL(-37.0,1000.0); + t1387 = RATIONAL(93.0,2000.0); + t1386 = RATIONAL(-23.0,2000.0); + t1385 = RATIONAL(33.0,2000.0); + t1384 = RATIONAL(-17.0,2000.0); + t1382 = RATIONAL(-31.0,1000.0); + t1381 = RATIONAL(-39.0,2000.0); + t1380 = RATIONAL(-13.0,2000.0); + t1378 = RATIONAL(49.0,2000.0); + t1377 = RATIONAL(37.0,2000.0); + t1376 = RATIONAL(13.0,1000.0); + t1373 = RATIONAL(31.0,2000.0); + t1372 = RATIONAL(-19.0,2000.0); + t1367 = RATIONAL(43.0,2000.0); + t1364 = RATIONAL(111.0,2000.0); + t1359 = RATIONAL(129.0,2000.0); + t1358 = RATIONAL(53.0,12000.0); + t1355 = RATIONAL(323.0,4000.0); + t1330 = t1410*x; + t1329 = t1406*x; + t1327 = t1405*y; + t1325 = t1403*x; + t1324 = t1403*y; + t1323 = t1410*y; + t1315 = t1404*x; + t1314 = t1408*x; + t1313 = t1406*y; + t1311 = t1408*y; + t1310 = t1405*x; + t1309 = t1395*y; + t1307 = t1394*y; + t1306 = t1401*y; + t1303 = t1400*y; + t1302 = t1400*x; + t1301 = t1399*x; + t1300 = t1398*x; + t1299 = t1399*y; + t1298 = t1398*y; + t1297 = t1397*x; + t1296 = t1395*x; + t1295 = t1380*x; + t1294 = t1378*y; + t1293 = t1391*x; + t1292 = t1367*y; + t1291 = t1393*x; + t1290 = t1376*x; + t1289 = t1382*x; + t1288 = t1376*y; + t1287 = t1393*y; + t1286 = t1382*y; + t1285 = t1377*x; + t1284 = t1377*y; + t1283 = t1389*x; + t1282 = t1378*x; + t1281 = t1373*x; + t1280 = t1372*x; + t1279 = t1380*y; + t1278 = t1367*x; + t1276 = t1372*y; + t1275 = t1390*x; + t1274 = t1391*y; + t1273 = t1389*y; + t1272 = t1373*y; + coeff_dz_m1_m1_m1 = RATIONAL(-47.0,1500.0)+t1487*RATIONAL(147.0,2000.0)+ +t1439+t1452; + coeff_dz_0_m1_m1 = t1301+t1359*y+t1340+t1454+t1481+t1501; + coeff_dz_p1_m1_m1 = t1364*y+t1283+t1436+t1463+t1505; + coeff_dz_p2_m1_m1 = t1314+t1387*y+t1426+t1464; + coeff_dz_m1_0_m1 = t1359*x+t1258+t1299+t1271+t1432+t1501; + coeff_dz_0_0_m1 = t1300+t1298+RATIONAL(-437.0,6000.0)+t1444+t1453; + coeff_dz_p1_0_m1 = t1296+t1279+t1423+t1466; + coeff_dz_p2_0_m1 = t1276+t1275+t1445+t1460+t1476; + coeff_dz_m1_p1_m1 = t1273+t1259+t1264+t1364*x+t1432+t1505; + coeff_dz_0_p1_m1 = t1309+t1295+t1423+t1467; + coeff_dz_p1_p1_m1 = RATIONAL(-17.0,375.0)+t1289+t1286+t1444+t1455; + coeff_dz_p2_p1_m1 = t1358+t1258+t1315+t1313+t1457+t1508; + coeff_dz_m1_p2_m1 = t1387*x+t1311+t1426+t1459; + coeff_dz_0_p2_m1 = t1277+t1280+t1445+t1477+t1482; + coeff_dz_p1_p2_m1 = t1358+t1336+t1329+t1267+t1436+t1507; + coeff_dz_p2_p2_m1 = RATIONAL(307.0,6000.0)+t1306+t1305+t1439+t1450; + coeff_dz_m1_m1_0 = RATIONAL(-13.0,80.0)*z+t1301+RATIONAL(-39.0,4000.0)+ +t1299+t1440+t1484; + coeff_dz_0_m1_0 = t1384*x+t1267+t1298+t1270+t1435+t1489; + coeff_dz_p1_m1_0 = t1279+t1310+t1429+t1468+t1477; + coeff_dz_p2_m1_0 = t1276+t1290+t1422+t1459; + coeff_dz_m1_0_0 = t1300+t1384*y+t1263+t1483+t1489+t1491; + coeff_dz_0_0_0 = t1276+t1280+RATIONAL(-161.0,4000.0)+t1326+t1437+t1479; + coeff_dz_p1_0_0 = t1297+t1274+t1424+t1467; + coeff_dz_p2_0_0 = t1262+t1386*y+t1330+t1264+t1446+t1498; + coeff_dz_m1_p1_0 = t1322+t1295+t1327+t1320+t1429+t1476; + coeff_dz_0_p1_0 = t1293+t1308+t1424+t1466; + coeff_dz_p1_p1_0 = RATIONAL(-191.0,4000.0)+t1324+t1325+t1347+t1437+t1471; + coeff_dz_p2_p1_0 = t1307+t1291+t1263+t1271+t1446+t1490; + coeff_dz_m1_p2_0 = t1288+t1280+t1422+t1464; + coeff_dz_0_p2_0 = t1323+t1386*x+t1341+t1270+t1268+t1456+t1498; + coeff_dz_p1_p2_0 = t1287+t1304+t1435+t1481+t1490; + coeff_dz_p2_p2_0 = t1303+RATIONAL(-7.0,80.0)*z+t1302+RATIONAL(-129.0, +4000.0)+t1440+t1473; + coeff_dz_m1_m1_p1 = RATIONAL(157.0,2000.0)+t1283+t1273+t1447+t1450; + coeff_dz_0_m1_p1 = t1309+t1270+t1336+t1262+t1355+t1310+t1441; + coeff_dz_p1_m1_p1 = t1286+t1269+t1263+t1385*x+t1441+t1504; + coeff_dz_p2_m1_p1 = t1282+t1313+t1425+t1459; + coeff_dz_m1_0_p1 = t1327+t1355+t1296+t1449+t1457; + coeff_dz_0_0_p1 = t1297+t1308+RATIONAL(21.0,250.0)+t1442+t1455; + coeff_dz_p1_0_p1 = t1324+t1281+t1421+t1467; + coeff_dz_p2_0_p1 = t1278+t1307+t1443+t1478+t1495; + coeff_dz_m1_p1_p1 = t1385*y+t1289+t1443+t1476+t1504; + coeff_dz_0_p1_p1 = t1325+t1272+t1421+t1466; + coeff_dz_p1_p1_p1 = RATIONAL(133.0,2000.0)+t1487*RATIONAL(29.0,2000.0)+ +t1442+t1453; + coeff_dz_p2_p1_p1 = t1285+t1392*y+t1449+t1461+t1493; + coeff_dz_m1_p2_p1 = t1329+t1294+t1425+t1464; + coeff_dz_0_p2_p1 = t1304+t1270+t1292+t1263+t1430+t1495; + coeff_dz_p1_p2_p1 = t1262+t1269+t1284+t1392*x+t1430+t1493; + coeff_dz_p2_p2_p1 = t1281+t1272+RATIONAL(13.0,500.0)+t1447+t1452; + coeff_dz_m1_m1_p2 = t1336+RATIONAL(-449.0,12000.0)+t1311+t1314+t1448+ +t1473; + coeff_dz_0_m1_p2 = t1290+t1277+t1269+t1463+t1499+t1506; + coeff_dz_p1_m1_p2 = t1268+t1282+t1433+t1492+t1507; + coeff_dz_p2_m1_p2 = t1402*x+t1306+t1428+t1464; + coeff_dz_m1_0_p2 = t1288+t1275+t1438+t1461+t1506; + coeff_dz_0_0_p2 = RATIONAL(349.0,12000.0)+t1342+t1330+t1323+t1434+t1471; + coeff_dz_p1_0_p2 = t1278+t1287+t1427+t1466; + coeff_dz_p2_0_p2 = t1303+t1293+t1431+t1476+t1482; + coeff_dz_m1_p1_p2 = t1331+t1315+t1294+t1454+t1478+t1492; + coeff_dz_0_p1_p2 = t1291+t1292+t1427+t1467; + coeff_dz_p1_p1_p2 = RATIONAL(319.0,12000.0)+t1346+t1285+t1284+t1434+t1479 +; + coeff_dz_p2_p1_p2 = t1272+t1381*x+t1438+t1483+t1500; + coeff_dz_m1_p2_p2 = t1402*y+t1305+t1428+t1459; + coeff_dz_0_p2_p2 = t1302+t1274+t1431+t1460+t1477; + coeff_dz_p1_p2_p2 = t1381*y+t1281+t1267+t1259+t1433+t1500; + coeff_dz_p2_p2_p2 = RATIONAL(-539.0,12000.0)+t1486+t1487*RATIONAL(-57.0, +2000.0)+t1448+t1484; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-dzz.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-dzz.compute.c new file mode 100644 index 0000000..5b9cd3e --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order3.smooth0/coeff-dzz.compute.c @@ -0,0 +1,190 @@ +fp t1917, + t1899, + t1914, + t1895, + t1962, + t1905, + t1961, + t1919, + t1900, + t1960, + t1959, + t1894, + t1897, + t1958, + t1957, + t1896, + t1956, + t1955, + t1954, + t1912, + t1901, + t1953, + t1902, + t1952, + t1951, + t1950, + t1949, + t1948, + t1911, + t1904, + t1920, + t1947, + t1946, + t1945, + t1944, + t1943, + t1942, + t1941, + t1940, + t1939, + t1938, + t1937, + t1907, + t1936, + t1935, + t1934, + t1933, + t1932, + t1910, + t1931, + t1930, + t1929, + t1928, + t1927, + t1926, + t1925, + t1924, + t1909, + t1923, + t1922, + t1915, + t1903, + t1898; + t1917 = RATIONAL(1.0,80.0); + t1899 = t1917*x; + t1914 = RATIONAL(-1.0,80.0); + t1895 = t1914*y; + t1962 = t1899+t1895; + t1905 = RATIONAL(3.0,16.0)*z; + t1961 = t1905+RATIONAL(-9.0,80.0); + t1919 = RATIONAL(3.0,80.0); + t1900 = t1919*x; + t1960 = t1900+t1895; + t1959 = t1905+RATIONAL(-11.0,80.0); + t1894 = t1919*y; + t1897 = t1914*x; + t1958 = t1894+t1897; + t1957 = t1905+RATIONAL(-1.0,10.0); + t1896 = t1917*y; + t1956 = t1896+t1899; + t1955 = t1894+t1899; + t1954 = t1896+t1900; + t1912 = RATIONAL(-3.0,80.0); + t1901 = t1912*y; + t1953 = t1901+t1900; + t1902 = t1912*x; + t1952 = t1901+t1902; + t1951 = t1905+RATIONAL(-3.0,20.0); + t1950 = t1894+t1900; + t1949 = t1899+t1901; + t1948 = t1905+RATIONAL(-1.0,8.0); + t1911 = RATIONAL(1.0,16.0); + t1904 = t1911*z; + t1920 = RATIONAL(1.0,40.0); + t1947 = t1904+t1920; + t1946 = t1896+t1902; + t1945 = t1895+t1897; + t1944 = t1894+t1902; + t1943 = t1896+t1897; + t1942 = t1896+t1904; + t1941 = t1904+t1897; + t1940 = t1902+t1895; + t1939 = t1894+t1904; + t1938 = t1901+t1897; + t1937 = t1911+t1953; + t1907 = RATIONAL(1.0,20.0); + t1936 = t1907+t1956; + t1935 = t1907+t1960; + t1934 = t1911+t1943; + t1933 = t1911+t1944; + t1932 = RATIONAL(1.0,10.0)+t1952; + t1910 = RATIONAL(3.0,40.0); + t1931 = t1910+t1949; + t1930 = t1919+t1955; + t1929 = t1920+t1950; + t1928 = t1910+t1946; + t1927 = t1919+t1954; + t1926 = t1910+t1945; + t1925 = t1911+t1962; + t1924 = t1907+t1958; + t1909 = RATIONAL(7.0,80.0); + t1923 = t1909+t1940; + t1922 = t1909+t1938; + t1915 = RATIONAL(-1.0,40.0); + t1903 = RATIONAL(-3.0,16.0)*z; + t1898 = RATIONAL(-1.0,16.0)*z; + coeff_dzz_m1_m1_m1 = t1898+t1932; + coeff_dzz_0_m1_m1 = t1898+t1922; + coeff_dzz_p1_m1_m1 = t1898+t1931; + coeff_dzz_p2_m1_m1 = t1898+t1937; + coeff_dzz_m1_0_m1 = t1898+t1923; + coeff_dzz_0_0_m1 = t1898+t1926; + coeff_dzz_p1_0_m1 = t1898+t1925; + coeff_dzz_p2_0_m1 = t1898+t1935; + coeff_dzz_m1_p1_m1 = t1898+t1928; + coeff_dzz_0_p1_m1 = t1898+t1934; + coeff_dzz_p1_p1_m1 = t1898+t1936; + coeff_dzz_p2_p1_m1 = t1898+t1927; + coeff_dzz_m1_p2_m1 = t1898+t1933; + coeff_dzz_0_p2_m1 = t1898+t1924; + coeff_dzz_p1_p2_m1 = t1898+t1930; + coeff_dzz_p2_p2_m1 = t1898+t1929; + coeff_dzz_m1_m1_0 = RATIONAL(-13.0,80.0)+t1905+t1950; + coeff_dzz_0_m1_0 = t1951+t1955; + coeff_dzz_p1_m1_0 = t1958+t1959; + coeff_dzz_p2_m1_0 = t1944+t1948; + coeff_dzz_m1_0_0 = t1951+t1954; + coeff_dzz_0_0_0 = t1956+t1959; + coeff_dzz_p1_0_0 = t1943+t1948; + coeff_dzz_p2_0_0 = t1946+t1961; + coeff_dzz_m1_p1_0 = t1959+t1960; + coeff_dzz_0_p1_0 = t1948+t1962; + coeff_dzz_p1_p1_0 = t1945+t1961; + coeff_dzz_p2_p1_0 = t1940+t1957; + coeff_dzz_m1_p2_0 = t1948+t1953; + coeff_dzz_0_p2_0 = t1949+t1961; + coeff_dzz_p1_p2_0 = t1938+t1957; + coeff_dzz_p2_p2_0 = t1905+RATIONAL(-7.0,80.0)+t1952; + coeff_dzz_m1_m1_p1 = t1903+t1929; + coeff_dzz_0_m1_p1 = t1903+t1930; + coeff_dzz_p1_m1_p1 = t1903+t1924; + coeff_dzz_p2_m1_p1 = t1903+t1933; + coeff_dzz_m1_0_p1 = t1903+t1927; + coeff_dzz_0_0_p1 = t1903+t1936; + coeff_dzz_p1_0_p1 = t1903+t1934; + coeff_dzz_p2_0_p1 = t1903+t1928; + coeff_dzz_m1_p1_p1 = t1903+t1935; + coeff_dzz_0_p1_p1 = t1903+t1925; + coeff_dzz_p1_p1_p1 = t1903+t1926; + coeff_dzz_p2_p1_p1 = t1903+t1923; + coeff_dzz_m1_p2_p1 = t1903+t1937; + coeff_dzz_0_p2_p1 = t1903+t1931; + coeff_dzz_p1_p2_p1 = t1903+t1922; + coeff_dzz_p2_p2_p1 = t1903+t1932; + coeff_dzz_m1_m1_p2 = t1919+t1904+t1952; + coeff_dzz_0_m1_p2 = t1938+t1947; + coeff_dzz_p1_m1_p2 = t1917+t1904+t1949; + coeff_dzz_p2_m1_p2 = t1904+t1953; + coeff_dzz_m1_0_p2 = t1940+t1947; + coeff_dzz_0_0_p2 = t1895+t1917+t1941; + coeff_dzz_p1_0_p2 = t1904+t1962; + coeff_dzz_p2_0_p2 = t1904+t1914+t1960; + coeff_dzz_m1_p1_p2 = t1902+t1917+t1942; + coeff_dzz_0_p1_p2 = t1896+t1941; + coeff_dzz_p1_p1_p2 = t1914+t1899+t1942; + coeff_dzz_p2_p1_p2 = t1900+t1915+t1942; + coeff_dzz_m1_p2_p2 = t1902+t1939; + coeff_dzz_0_p2_p2 = t1914+t1897+t1939; + coeff_dzz_p1_p2_p2 = t1915+t1899+t1939; + coeff_dzz_p2_p2_p2 = t1900+t1912+t1939; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-I.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-I.compute.c new file mode 100644 index 0000000..a8f0873 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-I.compute.c @@ -0,0 +1,1596 @@ +fp t2350, + t2351, + t2352, + t2842, + t2337, + t2483, + t2119, + t2347, + t2322, + t2209, + t2843, + t2345, + t2321, + t2210, + t2329, + t2493, + t2112, + t2841, + t2328, + t2123, + t2278, + t2840, + t2325, + t2530, + t2045, + t1975, + t2315, + t2481, + t2101, + t2346, + t2318, + t2208, + t2839, + t2332, + t2229, + t2301, + t2838, + t2270, + t2837, + t2344, + t2205, + t2836, + t2334, + t2502, + t2128, + t2473, + t2333, + t2835, + t2489, + t2132, + t2348, + t2211, + t2787, + t2092, + t2295, + t2165, + t2834, + t2212, + t2275, + t2263, + t2062, + t2833, + t2323, + t2240, + t2235, + t2510, + t2216, + t2492, + t2743, + t2512, + t2049, + t1987, + t2279, + t2569, + t2726, + t2832, + t2335, + t2225, + t2349, + t2224, + t2514, + t2265, + t2560, + t1986, + t2831, + t2316, + t2519, + t2074, + t2515, + t2079, + t2830, + t2330, + t2324, + t2541, + t2091, + t2476, + t2051, + t2525, + t2214, + t2829, + t2054, + t2537, + t2326, + t2828, + t2480, + t2756, + t2563, + t2016, + t2827, + t2090, + t2826, + t2213, + t2297, + t2825, + t2217, + t2824, + t2470, + t2085, + t1994, + t2283, + t2551, + t2823, + t2285, + t2570, + t2026, + t2822, + t2568, + t2554, + t1964, + t2543, + t2308, + t1966, + t2821, + t2220, + t2475, + t2820, + t2277, + t2565, + t2549, + t2099, + t1982, + t2819, + t2511, + t2078, + t1977, + t2282, + t2818, + t1988, + t2317, + t2469, + t2059, + t1978, + t2817, + t2292, + t2816, + t2342, + t2815, + t1970, + t2814, + t2813, + t2812, + t2533, + t2810, + t2494, + t2087, + t2809, + t2327, + t2491, + t2073, + t2808, + t2271, + t2552, + t2528, + t2084, + t2003, + t2807, + t2276, + t2014, + t2544, + t2805, + t2527, + t2804, + t2226, + t2803, + t2487, + t2113, + t1985, + t2802, + t2336, + t2125, + t2207, + t2801, + t2498, + t2800, + t2343, + t2799, + t2474, + t2126, + t2798, + t2797, + t2268, + t2564, + t2796, + t2496, + t2093, + t2006, + t2795, + t2071, + t2794, + t2070, + t2793, + t2236, + t2175, + t2792, + t2500, + t2791, + t2066, + t2320, + t2790, + t2789, + t2788, + t1992, + t2274, + t2557, + t2023, + t2786, + t1993, + t2785, + t2783, + t2782, + t2118, + t2781, + t2556, + t2477, + t2780, + t2095, + t1979, + t1971, + t2779, + t2266, + t2558, + t1989, + t2778, + t2777, + t2539, + t2566, + t2013, + t2776, + t2136, + t2775, + t2774, + t2773, + t2310, + t2772, + t2302, + t2180, + t2771, + t2468, + t2108, + t2770, + t2769, + t2768, + t2241, + t2313, + t2767, + t2766, + t2067, + t2765, + t2135, + t2764, + t2289, + t2763, + t2546, + t2131, + t2762, + t2291, + t2559, + t2761, + t2124, + t2760, + t2524, + t2065, + t2759, + t2233, + t2758, + t2757, + t2540, + t2755, + t2754, + t2060, + t2753, + t2752, + t2339, + t2245, + t2751, + t2286, + t2750, + t2749, + t2748, + t2137, + t2747, + t2340, + t2247, + t2746, + t2745, + t2172, + t2744, + t2742, + t2164, + t2741, + t2259, + t2740, + t2009, + t1980, + t2739, + t2075, + t2738, + t2064, + t2737, + t2272, + t2273, + t2736, + t2300, + t2174, + t2735, + t2734, + t2733, + t2141, + t2732, + t2731, + t2338, + t2730, + t2536, + t2729, + t2471, + t2130, + t2728, + t2077, + t2088, + t2727, + t2562, + t2021, + t2725, + t2139, + t2724, + t2306, + t2723, + t2304, + t2553, + t2722, + t2294, + t2567, + t2002, + t2721, + t1991, + t2720, + t2719, + t2718, + t2008, + t2717, + t2007, + t2716, + t2715, + t2027, + t2714, + t2156, + t2713, + t2296, + t2166, + t2127, + t2712, + t2181, + t2711, + t2710, + t2146, + t2262, + t2709, + t2167, + t2708, + t2244, + t2707, + t2097, + t2706, + t1972, + t2705, + t2052, + t2704, + t2307, + t1968, + t2703, + t2702, + t2001, + t2701, + t2309, + t2700, + t2109, + t2532, + t2170, + t2699, + t2311, + t2698, + t2697, + t2145, + t2696, + t2695, + t2694, + t2693, + t1974, + t2692, + t2691, + t2157, + t2508, + t2690, + t2689, + t2688, + t2687, + t2312, + t2150, + t2686, + t2685, + t2234, + t2684, + t2683, + t1976, + t2682, + t2231, + t2681, + t2680, + t1999, + t2679, + t2299, + t2179, + t2138, + t2678, + t2677, + t2676, + t2675, + t2674, + t2171, + t2673, + t2168, + t2050, + t2672, + t2671, + t2261, + t2670, + t2669, + t2668, + t2043, + t2239, + t2667, + t2666, + t2665, + t2664, + t2663, + t2182, + t2662, + t2223, + t2661, + t2660, + t2659, + t2658, + t2657, + t2656, + t2655, + t2654, + t2653, + t2652, + t2651, + t2650, + t2649, + t2206, + t2648, + t2647, + t2646, + t2018, + t2645, + t2644, + t2643, + t2642, + t2641, + t2122, + t2640, + t2639, + t2638, + t2258, + t2637, + t2238, + t2636, + t2635, + t2634, + t2633, + t2632, + t2173, + t2631, + t2630, + t2629, + t2218, + t2628, + t2627, + t2193, + t2626, + t2190, + t2625, + t2624, + t2623, + t2622, + t2621, + t2620, + t2619, + t2192, + t2466, + t1969, + t2618, + t1963, + t2617, + t2616, + t2615, + t2614, + t2467, + t1967, + t2613, + t2612, + t2611, + t2610, + t1965, + t2609, + t2608, + t2607, + t2606, + t2605, + t2153, + t2604, + t2260, + t2603, + t2314, + t2602, + t2222, + t2601, + t2042, + t2600, + t2287, + t2561, + t2038, + t2599, + t2232, + t2598, + t2227, + t2597, + t2596, + t2516, + t2162, + t2243, + t2595, + t2594, + t2593, + t2465, + t2592, + t2037, + t2591, + t2590, + t2589, + t2253, + t2588, + t2587, + t2221, + t2535, + t2586, + t2456, + t2585, + t2584, + t2583, + t2463, + t2582, + t2581, + t2580, + t2484, + t2248, + t2579, + t2578, + t2577, + t2576, + t2534, + t2440, + t2246, + t2575, + t2574, + t2573, + t2572, + t2571, + t2269, + t2555, + t2550, + t2547, + t2545, + t2542, + t2538, + t2531, + t2529, + t2526, + t2523, + t2522, + t2520, + t2518, + t2517, + t2513, + t2507, + t2506, + t2505, + t2504, + t2501, + t2497, + t2495, + t2490, + t2486, + t2485, + t2482, + t2479, + t2478, + t2472, + t2464, + t2462, + t2460, + t2459, + t2458, + t2457, + t2455, + t2454, + t2280, + t2341, + t2452, + t2281, + t2451, + t2447, + t2445, + t2444, + t2443, + t2442, + t2441, + t2439, + t2438, + t2437, + t2436, + t2435, + t2434, + t2433, + t2432, + t2431, + t2430, + t2429, + t2428, + t2427, + t2426, + t2425, + t2424, + t2423, + t2422, + t2421, + t2267, + t2250, + t2420, + t2252, + t2419, + t2303, + t2418, + t2417, + t2416, + t2415, + t2414, + t2413, + t2412, + t2411, + t2410, + t2409, + t2408, + t2407, + t2406, + t2177, + t2405, + t2404, + t2403, + t2402, + t2401, + t2400, + t2399, + t2398, + t2397, + t2169, + t2396, + t2395, + t2394, + t2393, + t2392, + t2391, + t2390, + t2389, + t2388, + t2387, + t2386, + t1983, + t2385, + t2384, + t2383, + t2382, + t2381, + t2380, + t2379, + t2378, + t2377, + t2376, + t2375, + t2374, + t2373, + t2372, + t2371, + t2370, + t2369, + t2368, + t2367, + t2366, + t2365, + t2364, + t1984, + t2363, + t2362, + t2361, + t2360, + t2359, + t2331, + t2319, + t2298, + t2290, + t2005, + t2004, + t1973; + t2350 = x*x; + t2351 = y*y; + t2352 = z*z; + t2842 = t2352+t2351+t2350; + t2337 = RATIONAL(-1.0,175.0); + t2483 = t2337*t2350; + t2119 = z*t2483; + t2347 = z*t2352; + t2322 = RATIONAL(-1.0,300.0); + t2209 = t2322*t2347; + t2843 = t2119+t2209; + t2345 = t2350*t2350; + t2321 = RATIONAL(-1.0,150.0); + t2210 = t2321*t2345; + t2329 = RATIONAL(1.0,980.0); + t2493 = t2350*t2351; + t2112 = t2329*t2493; + t2841 = t2210+t2112; + t2328 = RATIONAL(1.0,490.0); + t2123 = t2328*t2351*t2352; + t2278 = RATIONAL(151.0,7350.0); + t2840 = t2123+t2278*t2350; + t2325 = RATIONAL(-1.0,350.0); + t2530 = t2325*t2352; + t2045 = x*t2530; + t1975 = y*t2045; + t2315 = RATIONAL(-1.0,490.0); + t2481 = t2352*t2315; + t2101 = t2350*t2481; + t2346 = t2351*t2351; + t2318 = RATIONAL(1.0,600.0); + t2208 = t2318*t2346; + t2839 = t2101+t1975+t2208; + t2332 = RATIONAL(1.0,100.0); + t2229 = t2332*t2345; + t2301 = RATIONAL(47.0,6125.0); + t2838 = t2229+t2301; + t2270 = RATIONAL(311.0,29400.0); + t2837 = t2123+t2270*t2350+t2301; + t2344 = t2352*t2352; + t2205 = t2318*t2344; + t2836 = t2205+t2843; + t2334 = RATIONAL(-1.0,245.0); + t2502 = t2352*t2334; + t2128 = t2351*t2502; + t2473 = t2128+t2301; + t2333 = RATIONAL(-1.0,600.0); + t2835 = t2473+t2333*t2350; + t2489 = t2337*t2352; + t2132 = y*t2489; + t2348 = y*t2351; + t2211 = t2322*t2348; + t2787 = t2132+t2211; + t2092 = t2315*t2493; + t2295 = RATIONAL(-19.0,2100.0); + t2165 = t2295*z; + t2834 = t2092+t2165; + t2212 = t2321*t2346; + t2275 = RATIONAL(128.0,3675.0); + t2263 = RATIONAL(-169.0,29400.0); + t2062 = t2263*t2352; + t2833 = t2212+t2275*t2351+t2062; + t2323 = RATIONAL(1.0,150.0); + t2240 = t2323*t2347; + t2235 = t2321*t2344; + t2510 = t2240+t2235; + t2216 = t2323*t2348; + t2492 = t2333*t2347; + t2743 = z*t2216+y*t2492; + t2512 = t2325*t2350; + t2049 = y*t2512; + t1987 = z*t2049; + t2279 = RATIONAL(-107.0,7000.0); + t2569 = y*z; + t2726 = t1987+t2279*t2569; + t2832 = t2743+t2726; + t2335 = RATIONAL(1.0,300.0); + t2225 = t2335*t2347; + t2349 = t2350*x; + t2224 = t2335*t2349; + t2514 = z*t2224+x*t2225; + t2265 = RATIONAL(-229.0,10500.0); + t2560 = z*t2265; + t1986 = x*t2560; + t2831 = t2514+t1986; + t2316 = RATIONAL(1.0,700.0); + t2519 = t2316*t2351; + t2074 = z*t2519; + t2515 = t2329*t2352; + t2079 = t2351*t2515; + t2830 = t2074+t2079+t2510; + t2330 = RATIONAL(8.0,525.0); + t2324 = RATIONAL(1.0,350.0); + t2541 = t2324*t2350; + t2091 = y*t2541; + t2476 = t2324*t2352; + t2051 = y*t2476; + t2525 = t2091+t2051; + t2214 = t2321*t2348; + t2829 = t2525+t2214+t2330*y; + t2054 = y*t2530; + t2537 = t2054+t2049; + t2326 = RATIONAL(-8.0,525.0); + t2828 = t2216+t2537+t2326*y; + t2480 = t2349*t2333; + t2756 = x*t2216+y*t2480; + t2563 = x*t2279; + t2016 = y*t2563; + t2827 = t1975+t2756+t2016; + t2090 = t2350*t2515; + t2826 = RATIONAL(-23.0,6125.0)+t2090+t2842*RATIONAL(83.0,3675.0); + t2213 = t2322*t2349; + t2297 = RATIONAL(-29.0,2100.0); + t2825 = t2213+t2297*x; + t2217 = t2323*t2349; + t2824 = z*t2217+x*t2492; + t2470 = t2325*t2351; + t2085 = x*t2470; + t1994 = z*t2085; + t2283 = RATIONAL(187.0,7000.0); + t2551 = z*t2283; + t2823 = t1994+x*t2551; + t2285 = RATIONAL(-137.0,5250.0); + t2570 = x*z; + t2026 = t2285*t2570; + t2822 = t2026+t2514; + t2568 = x*y; + t2554 = z*t2568; + t1964 = RATIONAL(-1.0,1000.0)*t2554; + t2543 = t2352*t2568; + t2308 = RATIONAL(1.0,1400.0); + t1966 = t2308*t2543; + t2821 = t1964+t1966; + t2220 = t2321*t2347; + t2475 = t2348*t2318; + t2820 = z*t2475+y*t2220; + t2277 = RATIONAL(-187.0,7000.0); + t2565 = x*t2277; + t2549 = t2324*t2351; + t2099 = x*t2549; + t1982 = z*t2099; + t2819 = t1982+z*t2565; + t2511 = t2316*t2352; + t2078 = y*t2511; + t1977 = x*t2078; + t2282 = RATIONAL(-167.0,7000.0); + t2818 = t2282*t2568+t1977; + t1988 = RATIONAL(1.0,500.0)*t2554; + t2317 = RATIONAL(-1.0,700.0); + t2469 = t2351*t2317; + t2059 = z*t2469; + t1978 = x*t2059; + t2817 = t1988+t1978; + t2292 = RATIONAL(17.0,2100.0); + t2816 = t2225+t2292*z; + t2342 = RATIONAL(2.0,75.0); + t2815 = t2342*y+t2214; + t1970 = RATIONAL(1.0,1000.0)*t2554; + t2814 = t1970+t1966; + t2813 = t1975+t2283*t2568; + t2812 = t2054+t2091; + t2533 = t2101+t2045; + t2810 = t2205+t2533; + t2494 = t2235+t2220; + t2087 = z*t2541; + t2809 = t2494+t2101+t2087; + t2327 = RATIONAL(1.0,175.0); + t2491 = t2350*t2327; + t2073 = z*t2491; + t2808 = t2209+t2073; + t2271 = RATIONAL(167.0,7000.0); + t2552 = y*t2271; + t2528 = t2317*t2352; + t2084 = x*t2528; + t2003 = y*t2084; + t2807 = t2003+x*t2552; + t2276 = RATIONAL(137.0,5250.0); + t2014 = t2276*t2570; + t2544 = z*t2213+x*t2209; + t2805 = t2014+t2544; + t2527 = t2318*t2347; + t2804 = y*t2527+z*t2214; + t2226 = t2321*t2349; + t2803 = x*t2527+z*t2226; + t2487 = t2350*t2317; + t2113 = z*t2487; + t1985 = y*t2113; + t2802 = t1988+t1985; + t2336 = RATIONAL(1.0,245.0); + t2125 = t2336*t2493; + t2207 = t2318*t2345; + t2801 = t2125+t2207; + t2498 = t2349*t2318; + t2800 = y*t2498+x*t2214; + t2343 = RATIONAL(-2.0,75.0); + t2799 = t2343*y+t2216; + t2474 = t2337*t2351; + t2126 = z*t2474; + t2798 = t2225+t2126; + t2797 = t2212+t2112; + t2268 = RATIONAL(289.0,10500.0); + t2564 = y*t2268; + t2796 = z*t2564+t1985; + t2496 = t2327*t2351; + t2093 = z*t2496; + t2006 = x*t2093; + t2795 = t2026+t2006; + t2071 = y*t2487; + t2794 = t2071+t2214; + t2070 = t2350*t2502; + t2793 = t2333*t2351+t2070; + t2236 = t2335*t2348; + t2175 = t2295*y; + t2792 = t2236+t2175; + t2500 = t2348*t2333; + t2791 = z*t2500+y*t2240; + t2066 = t2263*t2351; + t2320 = RATIONAL(-2.0,125.0); + t2790 = t2066+t2320; + t2789 = t2225+t2073; + t2788 = t2070+t2205; + t1992 = x*t2051; + t2274 = RATIONAL(107.0,7000.0); + t2557 = x*t2274; + t2023 = y*t2557; + t2786 = t1992+t2023; + t1993 = x*t2126; + t2785 = t1993+t2014; + t2783 = t1982+z*t2557; + t2782 = y*t2217+x*t2500; + t2118 = x*t2474; + t2781 = t2118+t2224; + t2556 = y*t2285; + t2477 = z*t2236+y*t2225; + t2780 = z*t2556+t2477; + t2095 = x*t2519; + t1979 = z*t2095; + t1971 = RATIONAL(-1.0,500.0)*t2554; + t2779 = t1979+t1971; + t2266 = RATIONAL(229.0,10500.0); + t2558 = z*t2266; + t1989 = x*t2558; + t2778 = t1989+t2544; + t2777 = t2132+t2236; + t2539 = y*t2213+x*t2211; + t2566 = y*t2276; + t2013 = x*t2566; + t2776 = t2539+t2013; + t2136 = x*t2511; + t2775 = t2217+t2136; + t2774 = t1992+y*t2565; + t2773 = t2225+t2093; + t2310 = RATIONAL(11.0,420.0); + t2772 = t2126+t2310*z; + t2302 = RATIONAL(-37.0,1050.0); + t2180 = t2302*x; + t2771 = t2217+t2180; + t2468 = t2350*t2328; + t2108 = t2352*t2468; + t2770 = t2235+t2108; + t2769 = t2275*t2350+t2062; + t2768 = t2113+t2220; + t2241 = t2332*t2344; + t2313 = RATIONAL(-61.0,980.0); + t2767 = t2241+t2313*t2352; + t2766 = t1977+t2266*t2568; + t2067 = y*t2528; + t2765 = t2067+t2214; + t2135 = x*t2489; + t2764 = t2135+t2213; + t2289 = RATIONAL(-17.0,2100.0); + t2763 = t2289*y+t2211; + t2546 = t2336*t2352; + t2131 = t2351*t2546; + t2762 = t2205+t2131; + t2291 = RATIONAL(-47.0,5250.0); + t2559 = y*t2291; + t2761 = t1987+z*t2559; + t2124 = t2350*t2546; + t2760 = t2124+t2207; + t2524 = t2327*t2352; + t2065 = y*t2524; + t2759 = t2065+t2211; + t2233 = t2332*t2346; + t2758 = t2313*t2351+t2233; + t2757 = t2209+t2289*z; + t2540 = y*t2209+z*t2211; + t2755 = t2540+z*t2566; + t2754 = z*t2480+x*t2240; + t2060 = t2263*t2350; + t2753 = t2060+t2320; + t2752 = t2473+t2342*t2350; + t2339 = RATIONAL(-1.0,42.0); + t2245 = t2339*y; + t2751 = t2245+t2216; + t2286 = RATIONAL(272.0,6125.0); + t2750 = t2286+t2278*t2351; + t2749 = t2049+t2051; + t2748 = x*t2475+y*t2226; + t2137 = x*t2469; + t2747 = t2226+t2137; + t2340 = RATIONAL(1.0,42.0); + t2247 = t2340*z; + t2746 = t2247+t2220; + t2745 = x*t2220+z*t2498; + t2172 = t2302*y; + t2744 = t2216+t2172; + t2742 = t2265*t2568+t2003; + t2164 = t2295*x; + t2741 = t2164+t2224; + t2259 = t2339*z; + t2740 = t2240+t2259; + t2009 = t2274*t2569; + t1980 = y*t2087; + t2739 = t2009+t1980; + t2075 = y*t2491; + t2738 = t2075+t2065; + t2064 = t2334*t2493; + t2737 = t2064+t2233; + t2272 = RATIONAL(-173.0,6125.0); + t2273 = RATIONAL(211.0,7350.0); + t2736 = t2272+t2273*t2352; + t2300 = RATIONAL(37.0,1050.0); + t2174 = t2300*x; + t2735 = t2226+t2174; + t2734 = t2135+t2118; + t2733 = t2084+t2544; + t2141 = t2351*t2468; + t2732 = t2212+t2141; + t2731 = t2064+t2208; + t2338 = RATIONAL(-9.0,196.0); + t2730 = t2338*t2351+t2233; + t2536 = y*t2224+x*t2236; + t2729 = t2536+x*t2556; + t2471 = t2350*t2316; + t2130 = z*t2471; + t2728 = t2084+t2130; + t2077 = x*t2496; + t2088 = x*t2524; + t2727 = t2077+t2088; + t2562 = z*t2282; + t2021 = y*t2562; + t2725 = t2021+t2791; + t2139 = z*t2512; + t2724 = t2101+t2139+t2510; + t2306 = RATIONAL(-17.0,525.0); + t2723 = t2095+t2306*x+t2136; + t2304 = RATIONAL(-17.0,5250.0); + t2553 = z*t2304; + t2722 = t1993+t2514+x*t2553; + t2294 = RATIONAL(17.0,5250.0); + t2567 = y*t2294; + t2002 = z*t2075; + t2721 = t2540+z*t2567+t2002; + t1991 = x*t2132; + t2720 = t1991+t2304*t2568+t2536; + t2719 = t2165+t2773; + t2718 = t2494+t2059+t2079; + t2008 = t2271*t2570; + t2717 = t2008+t2745; + t2007 = z*t2552; + t2716 = t2007+t2820; + t2715 = t2075+t2792; + t2027 = x*t2562; + t2714 = t2027+t2754; + t2156 = t2300*y; + t2713 = t2156+t2794; + t2296 = RATIONAL(19.0,2100.0); + t2166 = t2296*y; + t2127 = y*t2483; + t2712 = t2166+t2211+t2127; + t2181 = t2292*y; + t2711 = t2537+t2181+t2236; + t2710 = t1992+t2739; + t2146 = t2273*t2351; + t2262 = RATIONAL(191.0,29400.0); + t2709 = t2079+t2262*t2350+t2146; + t2167 = t2296*z; + t2708 = t2126+t2209+t2167; + t2244 = t2340*y; + t2707 = t2244+t2794; + t2097 = y*t2471; + t2706 = t2097+t2306*y+t2078; + t1972 = y*t2119; + t2705 = t1972+t2755; + t2052 = t2351*t2481; + t2704 = t2052+t2820; + t2307 = RATIONAL(-1.0,1400.0); + t1968 = t2307*t2543; + t2703 = t1968+t2776; + t2702 = t2095+t2771; + t2001 = y*t2088; + t2701 = x*t2567+t2001+t2539; + t2309 = RATIONAL(17.0,525.0); + t2700 = t2309*y+t2071+t2067; + t2109 = x*t2476; + t2532 = t2109+t2099; + t2170 = t2289*x; + t2699 = t2532+t2213+t2170; + t2311 = RATIONAL(-11.0,420.0); + t2698 = t2311*y+t2738; + t2697 = y*t2553+t1972+t2477; + t2145 = t2273*t2350; + t2696 = t2262*t2351+t2090+t2145; + t2695 = t2156+t2765; + t2694 = t2244+t2765; + t2693 = t1994+t2753; + t1974 = z*t2097; + t2692 = t2216+t1974+t2078; + t2691 = t2006+t2544+t2294*t2570; + t2157 = t2292*x; + t2508 = t2085+t2045; + t2690 = t2157+t2508+t2224; + t2689 = t2208+t2131+t2787; + t2688 = t2525+t2763; + t2687 = t2108+t2750; + t2312 = RATIONAL(-57.0,980.0); + t2150 = t2278*t2352; + t2686 = t2312*t2350+t2150+t2229; + t2685 = t2745+t2823; + t2234 = t2335*x; + t2684 = t2234+t2077+t2764; + t2683 = t2812+t2815; + t1976 = RATIONAL(-1.0,250.0)*t2554; + t2682 = t1976+t2708; + t2231 = t2335*z; + t2681 = t2126+t2231+t2808; + t2680 = t2748+t2813; + t1999 = RATIONAL(1.0,250.0)*t2554; + t2679 = t1999+t2828; + t2299 = RATIONAL(29.0,2100.0); + t2179 = t2299*z; + t2138 = z*t2470; + t2678 = t2179+t2225+t2119+t2138; + t2677 = t2749+t2815; + t2676 = t2088+t2099+t2825; + t2675 = t2021+t1974+t2743; + t2674 = t2338*t2350+t2052+t2838; + t2171 = t2299*y; + t2673 = t2171+t2054+t2236+t2127; + t2168 = t2297*z; + t2050 = z*t2549; + t2672 = t2168+t2050+t2808; + t2671 = t2772+t2843; + t2261 = t2342*z; + t2670 = t2261+t2139+t2220+t2050; + t2669 = t2799+t2812; + t2668 = t1976+t2712; + t2043 = t2270*t2351; + t2239 = t2338*t2352; + t2667 = t2241+t2108+t2043+t2239; + t2666 = t2748+t2807; + t2665 = t2756+t2818; + t2664 = t1985+t2007+t2804; + t2663 = t2109+t2077+t2825; + t2182 = t2297*y; + t2662 = t2091+t2182+t2759; + t2223 = t2322*y; + t2661 = t2075+t2223+t2777; + t2660 = t2179+t2139+t2798; + t2659 = t2726+t2791; + t2658 = t2139+t2719; + t2657 = t1978+t2008+t2803; + t2656 = t2782+t2818; + t2655 = t2800+t2807; + t2654 = t1999+t2712; + t2653 = t2171+t2049+t2777; + t2652 = RATIONAL(202.0,6125.0)+t2842*RATIONAL(-529.0,29400.0); + t2651 = t1976+t2829; + t2650 = t1999+t2715; + t2649 = t1999+t2829; + t2206 = t2322*z; + t2648 = t2119+t2206+t2773; + t2647 = t2774+t2782; + t2646 = t1979+t2027+t2824; + t2018 = z*t2563; + t2645 = t1994+t2018+t2824; + t2644 = t2272+t2262*t2352+t2146+t2145; + t2643 = t1999+t2708; + t2642 = t2168+t2209+t2087+t2093; + t2641 = t1976+t2715; + t2122 = t2270*t2352; + t2640 = t2122+t2141+t2730; + t2639 = t2240+t2130+t2775; + t2638 = t2051+t2075+t2182+t2211; + t2258 = t2343*z; + t2637 = t2240+t2258+t2087+t2138; + t2238 = t2335*y; + t2636 = t2238+t2127+t2759; + t2635 = t2803+t2823; + t2634 = t2236+t2698; + t2633 = t2749+t2799; + t2632 = t2819+t2824; + t2173 = t2299*x; + t2631 = t2135+t2085+t2173+t2224; + t2630 = t2084+t2226+t2768; + t2629 = t1976+t2828; + t2218 = t2322*x; + t2628 = t2218+t2088+t2781; + t2627 = t2783+t2790; + t2193 = t2311*z; + t2626 = t2193+t2073+t2773; + t2190 = t2310*x; + t2625 = t2213+t2190+t2734; + t2624 = t2224+t2311*x+t2727; + t2623 = t2216+t2097+t2747; + t2622 = t2173+t2045+t2781; + t2621 = t2754+t2819; + t2620 = t2241+t2312*t2352+t2840; + t2619 = t2310*y+t2127+t2787; + t2192 = t2309*x; + t2466 = t2351*t2570; + t1969 = t2308*t2466; + t2618 = t2084+t2192+t1969+t2747; + t1963 = t2307*t2466; + t2617 = t2217+t1963+t2723; + t2616 = t1971+t2675; + t2615 = t2210+t2208+t2696; + t2614 = t1988+t2664; + t2467 = t2350*t2569; + t1967 = t2308*t2467; + t2613 = t1967+t2216+t2706; + t2612 = t1988+t1979+t1974+t2740; + t2611 = t1988+t2675; + t2610 = t2131+t2652; + t1965 = t2307*t2467; + t2609 = t2214+t1965+t2700; + t2608 = t2101+t2207+t2709; + t2607 = t1971+t1985+t1978+t2746; + t2606 = t2514+t2124+t2291*t2570+t2833; + t2605 = t1971+t2664; + t2153 = t2275*t2352; + t2604 = t2235+t2153+t2060+t2745; + t2260 = t2342*t2352; + t2603 = t2064+t2207+t2260+t2730+t2837; + t2314 = RATIONAL(-33.0,980.0); + t2602 = t2314*t2352+t2125+t2241+t2208+t2793+t2835; + t2222 = t2326*x; + t2601 = t2217+t2222+t2065+t2508+t2792; + t2042 = x*t2559; + t2600 = t1975+t2042+t2659; + t2287 = RATIONAL(47.0,5250.0); + t2561 = y*t2287; + t2038 = z*t2561; + t2599 = t1980+t2038+t2645; + t2232 = t2333*t2352; + t2598 = t2314*t2350+t2232+t2064+t2793+t2838; + t2227 = t2330*x; + t2597 = t2227+t2532+t2226+t2166+t2787; + t2596 = t2125+t2153+t2066+t2018+t2754; + t2516 = t2139+t2138; + t2162 = t2296*x; + t2243 = t2326*z; + t2595 = t2516+t2240+t2213+t2162+t2118+t2243; + t2594 = t2761+t2783+t2803; + t2593 = t2043+t2260+t2731+t2770; + t2465 = t2054+t2539; + t2592 = t2097+t2465+t2751+t2766; + t2037 = x*t2561; + t2591 = t2037+t2710+t2820; + t2590 = t2286+t2210+t2312*t2351+t2090+t2150+t2141+t2233+t2840; + t2589 = t2125+t2610; + t2253 = t2342*t2351; + t2588 = t2122+t2253+t2732+t2788; + t2587 = t2232+t2314*t2351+t2737+t2835; + t2221 = t2330*z; + t2535 = t2087+t2050; + t2586 = t2221+t2220+t2077+t2535+t2741; + t2456 = t2051+t2536; + t2585 = t2456+t2707+t2742; + t2584 = t2113+t2309*z+t2826; + t2583 = t2516+t2657+t2816; + t2463 = t2241+t2070+t2207; + t2582 = t2212+t2463+t2092+t2253+t2239+t2837; + t2581 = t1982+t2287*t2570+t2753+t2833; + t2580 = t2535+t2646+t2757; + t2484 = t2101+t2052; + t2248 = t2340*x; + t2579 = t2484+t2248+t2205+t2644; + t2578 = t2748+t2769+t2786+t2790; + t2577 = t2827+t2832; + t2576 = t2786+t2800+t2832; + t2534 = t2217+t2210; + t2440 = t2534+t2810; + t2246 = t2339*x; + t2575 = t2440+t2095+t2246+t2112+t2644; + t2574 = t2023+t2710+t2800+t2804; + t2573 = t2739+t2804+t2827; + t2572 = t2306*z+t2130+t2826+t2830+t2841; + t2571 = t2210+t2016+t2092+t2762+t2769+t2782; + t2269 = RATIONAL(-289.0,10500.0); + t2555 = z*t2269; + t2550 = t2207+t2224; + t2547 = t2085+t2138; + t2545 = t2213+t2207; + t2542 = t2052+t2138; + t2538 = t1979+t2235; + t2531 = t2092+t2099; + t2529 = t2085+t2092; + t2526 = t2109+t2208; + t2523 = t2216+t2212; + t2522 = t2109+t2101; + t2520 = t2054+t2109; + t2518 = t2138+t2099; + t2517 = t2091+t2092; + t2513 = t2049+t2092; + t2507 = t2054+t2045; + t2506 = t2212+t2214; + t2505 = t2108+t2141; + t2504 = t2208+t2045; + t2501 = t2049+t2087; + t2497 = t2050+t2052; + t2495 = t2212+t2139; + t2490 = t2051+t2045; + t2486 = t2085+t2205; + t2485 = t2139+t2091; + t2482 = t2109+t2051; + t2479 = t2050+t2099; + t2478 = t2208+t2236; + t2472 = t2226+t2210; + t2464 = t2051+t2539; + t2462 = t2087+t2477; + t2460 = t2125+t2124+t2131; + t2459 = t2049+t2540; + t2458 = t2087+t2540; + t2457 = t2139+t2540; + t2455 = t2091+t2477; + t2454 = t2208+t2514; + t2280 = RATIONAL(292.0,6125.0); + t2341 = RATIONAL(-1.0,20.0); + t2452 = t2341*t2350+t2128+t2280+t2229; + t2281 = RATIONAL(592.0,6125.0); + t2451 = t2281+t2313*t2350+t2123+t2229; + t2447 = t2212+t2687; + t2445 = t2205+t2760+t2789; + t2444 = t2212+t2718; + t2443 = t2208+t2539+t2801; + t2442 = t2065+t2478+t2762; + t2441 = t2760+t2836; + t2439 = t2137+t2472+t2797; + t2438 = t2210+t2536+t2797; + t2437 = t1980+t2277*t2569+t2674; + t2436 = y*t2551+t1987+t2674; + t2435 = t2342*x+t2472+t2752; + t2434 = t2729+t2805; + t2433 = t2729+t2780; + t2432 = t2343*x+t2534+t2752; + t2431 = t2729+t2755; + t2430 = t2776+t2822; + t2429 = t2776+t2780; + t2428 = t1985+t2092+t2538+t2736+t2807; + t2427 = t2162+t2497+t2545+t2693; + t2426 = t1978+t2259+t2510+t2531+t2736; + t2425 = t2164+t2542+t2550+t2693; + t2424 = t2235+t2085+t2513+t2736+t2818; + t2423 = t2247+t1974+t2494+t2517+t2736; + t2422 = t1980+t2627+t2839; + t2421 = t2445+t2544+t2764; + t2267 = RATIONAL(431.0,29400.0); + t2250 = t2341*t2352; + t2420 = t2267*t2351+t2241+t2250+t2124+t2452+t2731; + t2252 = t2341*t2351; + t2419 = t2252+t2250+t2267*t2350+t2280+t2131+t2463+t2737; + t2303 = RATIONAL(68.0,3675.0); + t2418 = t2303*t2351+t2124+t2451+t2732+t2767; + t2417 = t2125+t2252+t2267*t2352+t2233+t2452+t2788; + t2416 = t2125+t2303*t2352+t2451+t2758+t2770; + t2415 = t2303*t2350+t2281+t2210+t2131+t2505+t2758+t2767; + t2414 = t2582+t2756+t2774; + t2413 = t2234+t2088+t2118+t2545+t2602; + t2412 = t2436+t2588+t2804; + t2411 = t2435+t2504+t2531+t2667; + t2410 = x*t2555+t2514+t2538+t2590; + t2409 = t2435+t2486+t2522+t2640; + t2408 = t2238+t2075+t2205+t2598+t2689; + t2407 = t2126+t2206+t2445+t2587; + t2406 = t2258+t2050+t2603+t2724; + t2177 = t2302*z; + t2405 = t2177+t2087+t2141+t2447+t2686+t2830; + t2404 = t2235+t1978+t2268*t2570+t2544+t2590; + t2403 = t2432+t2526+t2529+t2667; + t2402 = x*t2564+t2003+t2447+t2539+t2620+t2841; + t2401 = t2437+t2593+t2791; + t2400 = t2582+t2800+t2813; + t2399 = t2437+t2588+t2743; + t2398 = t2261+t2138+t2603+t2809; + t2397 = t2099+t2432+t2640+t2810; + t2169 = t2300*z; + t2396 = t2139+t2169+t2444+t2505+t2686+t2750; + t2395 = t2436+t2593+t2820; + t2394 = t2223+t2127+t2442+t2598; + t2393 = t2269*t2568+t1977+t2438+t2620+t2687; + t2392 = t2093+t2231+t2441+t2587; + t2391 = t2218+t2135+t2077+t2550+t2602; + t2390 = t1991+t2443+t2205+t2124+t2013+t2610+t2619+t2624; + t2389 = t1992+t2443+t2037+t2484+t2604+t2627+t2659; + t2388 = t2440+t2578+t2085+t2222+t2166+t2517+t2689; + t2387 = t2441+t2478+t2589+t2698+t2705+t2772; + t2386 = t2109+t2439+t2464+t2579+t2707+t2766; + t1983 = y*t2560; + t2385 = t1983+t2212+t2428+t2477+t2608+t2714+t2800; + t2384 = t2088+t2425+t2486+t2606+t2789+t2834; + t2383 = t2212+t2575+t2087+t2497+t2657+t2757; + t2382 = t2221+t2427+t2118+t2526+t2596+t2809; + t2381 = t2426+t2248+t1986+t2454+t2472+t2542+t2696+t2728; + t2380 = t2426+t2074+t2170+t2495+t2522+t2545+t2709+t2717; + t2379 = t2523+t2572+t1965+t2706+t2755; + t2378 = t2077+t2243+t2425+t2504+t2596+t2724; + t2377 = t2162+t2052+t2421+t2518+t2581+t2834; + t2376 = t2227+t2442+t2175+t2099+t2472+t2513+t2522+t2578; + t2375 = t2571+t2477+t2645+t2761+t2790+t2839; + t2374 = t2441+t2088+t2167+t2497+t2529+t2544+t2581+t2741; + t2373 = t2428+t2007+t2615+t2704+t2748+t2778; + t2372 = t1969+t2444+t2112+t2534+t2584+t2723+t2822; + t2371 = t2245+t2438+t2520+t2579+t2623+t2742; + t2370 = t2245+t2424+t2157+t2078+t2523+t2533+t2550+t2709+t2756; + t2369 = t2054+t2424+t2246+t2136+t2181+t2052+t2478+t2534+t2696+t2782; + t2368 = t2423+t2051+t2113+t2497+t2615+t2725+t2763; + t2367 = t2422+t2038+t2540+t2571+t2803; + t2366 = t2009+t2422+t2042+t2536+t2604+t2704+t2801; + t2365 = t2427+t2135+t2167+t2531+t2606+t2836; + t2364 = t2001+t2205+t2207+t2433+t2002+t2454+t2460+t2652+t2795; + t1984 = y*t2558; + t2363 = t1984+t2423+t2059+t2244+t2067+t2458+t2506+t2608; + t2362 = t2208+t2193+t2190+t2093+t2118+t2421+t2589+t2785; + t2361 = t2495+t2575+t2542+t2646+t2816; + t2360 = t1967+t2506+t2572+t2700+t2780; + t2359 = t2014+t2192+t1963+t2439+t2584+t2718+t2733; + t2331 = RATIONAL(-4.0,105.0); + t2319 = RATIONAL(4.0,105.0); + t2298 = RATIONAL(-41.0,2100.0); + t2290 = RATIONAL(41.0,2100.0); + t2005 = RATIONAL(-1.0,125.0)*t2554; + t2004 = RATIONAL(1.0,125.0)*t2554; + t1973 = y*t2555; + coeff_I_m2_m2_m2 = t2005+t2364+t2619+t2625+t2671; + coeff_I_m1_m2_m2 = t2388+t2462+t2594+t2682; + coeff_I_0_m2_m2 = t2408+t2681+t2697; + coeff_I_p1_m2_m2 = t2091+t2375+t2087+t2597+t2643; + coeff_I_p2_m2_m2 = t2004+t2390+t2002+t2544+t2671+t2780+t2785; + coeff_I_m2_m1_m2 = t2365+t2574+t2629; + coeff_I_m1_m1_m2 = t2383+t2592+t2605; + coeff_I_0_m1_m2 = t2412+t2669+t2672; + coeff_I_p1_m1_m2 = t2371+t2580+t2614; + coeff_I_p2_m1_m2 = t2374+t2573+t2679; + coeff_I_m2_0_m2 = t2392+t2684+t2722; + coeff_I_m1_0_m2 = t2397+t2635+t2642; + coeff_I_0_0_m2 = t2298*z+t2417+t2093+t2808; + coeff_I_p1_0_m2 = t2409+t2632+t2642; + coeff_I_p2_0_m2 = t2392+t2628+t2691; + coeff_I_m2_p1_m2 = t2365+t2577+t2649; + coeff_I_m1_p1_m2 = t2383+t2585+t2611; + coeff_I_0_p1_m2 = t2399+t2672+t2677; + coeff_I_p1_p1_m2 = t2386+t2580+t2616; + coeff_I_p2_p1_m2 = t2374+t2576+t2651; + coeff_I_m2_p2_m2 = t1991+t2004+t2006+t2387+t2430+t2625; + coeff_I_m1_p2_m2 = t2367+t2501+t2601+t2643; + coeff_I_0_p2_m2 = t2394+t2681+t2721; + coeff_I_p1_p2_m2 = t2376+t2458+t2599+t2682; + coeff_I_p2_p2_m2 = t2005+t1993+t2001+t2387+t2434+t2624; + coeff_I_m2_m2_m1 = t2366+t2482+t2595+t2668; + coeff_I_m1_m2_m1 = t1971+t2246+t2259+t2373+t2547+t2639+t2688; + coeff_I_0_m2_m1 = t2395+t2637+t2638; + coeff_I_p1_m2_m1 = t2381+t2656+t2688+t2716+t2802; + coeff_I_p2_m2_m1 = t2378+t2464+t2591+t2654; + coeff_I_m2_m1_m1 = t1984+t2245+t1971+t2380+t2459+t2655+t2692; + coeff_I_m1_m1_m1 = t1964+t2379+t2617+t2703+t2805; + coeff_I_0_m1_m1 = t2091+t2405+t2078+t2540+t2744+t2796; + coeff_I_p1_m1_m1 = t2379+t2618+t2729+t2814+t2822; + coeff_I_p2_m1_m1 = t1984+t2074+t2370+t2457+t2612+t2714; + coeff_I_m2_0_m1 = t2406+t2663+t2685; + coeff_I_m1_0_m1 = t2404+t2180+t2177+t2479+t2639; + coeff_I_0_0_m1 = t2240+t2331*z+t2416+t2535; + coeff_I_p1_0_m1 = t2240+t2085+t2177+t2050+t2410+t2728+t2735; + coeff_I_p2_0_m1 = t2406+t2621+t2622; + coeff_I_m2_p1_m1 = t1983+t2380+t2455+t2665+t2694+t2802; + coeff_I_m1_p1_m1 = t2360+t2434+t2617+t2814; + coeff_I_0_p1_m1 = t2049+t1973+t2405+t1974+t2477+t2695; + coeff_I_p1_p1_m1 = t1968+t1964+t2360+t2430+t2618; + coeff_I_p2_p1_m1 = t2074+t1971+t2385+t2485+t2690+t2694+t2740; + coeff_I_m2_p2_m1 = t2389+t2520+t2595+t2650; + coeff_I_m1_p2_m1 = t2369+t2130+t2138+t2612+t2725+t2778; + coeff_I_0_p2_m1 = t2401+t2637+t2673; + coeff_I_p1_p2_m1 = t1971+t2381+t1974+t2666+t2711+t2725; + coeff_I_p2_p2_m1 = t2054+t2378+t2536+t2600+t2641; + coeff_I_m2_m2_0 = t2413+t2636+t2720; + coeff_I_m1_m2_0 = t2403+t2662+t2680; + coeff_I_0_m2_0 = t2298*y+t2420+t2211+t2738; + coeff_I_p1_m2_0 = t2411+t2647+t2662; + coeff_I_p2_m2_0 = t2391+t2636+t2701; + coeff_I_m2_m1_0 = t2400+t2633+t2676; + coeff_I_m1_m1_0 = t2097+t2402+t2482+t2702+t2744; + coeff_I_0_m1_0 = t2216+t2418+t2331*y+t2525; + coeff_I_p1_m1_0 = t2172+t2174+t2393+t2490+t2623; + coeff_I_p2_m1_0 = t2414+t2631+t2633; + coeff_I_m2_0_0 = t2213+t2298*x+t2419+t2727; + coeff_I_m1_0_0 = t2415+t2217+t2331*x+t2532; + coeff_I_0_0_0 = t2233+RATIONAL(937.0,6125.0)+t2241+t2229+t2842*RATIONAL( +-13.0,196.0)+t2460; + coeff_I_p1_0_0 = t2415+t2226+t2319*x+t2508; + coeff_I_p2_0_0 = t2290*x+t2224+t2419+t2734; + coeff_I_m2_p1_0 = t2414+t2676+t2683; + coeff_I_m1_p1_0 = t2393+t2520+t2702+t2713; + coeff_I_0_p1_0 = t2418+t2319*y+t2214+t2537; + coeff_I_p1_p1_0 = t2402+t2137+t2507+t2713+t2735; + coeff_I_p2_p1_0 = t2400+t2631+t2683; + coeff_I_m2_p2_0 = t2413+t2661+t2701; + coeff_I_m1_p2_0 = t2403+t2647+t2653; + coeff_I_0_p2_0 = t2290*y+t2420+t2127+t2777; + coeff_I_p1_p2_0 = t2411+t2653+t2680; + coeff_I_p2_p2_0 = t2391+t2661+t2720; + coeff_I_m2_m2_p1 = t2382+t2456+t2600+t2654; + coeff_I_m1_m2_p1 = t2368+t2085+t2246+t2666+t2775+t2817+t2831; + coeff_I_0_m2_p1 = t2401+t2638+t2670; + coeff_I_p1_m2_p1 = t1989+t2226+t2368+t2248+t2099+t2656+t2733+t2779; + coeff_I_p2_m2_p1 = t2389+t2490+t2586+t2668; + coeff_I_m2_m1_p1 = t1988+t2059+t2078+t2385+t2501+t2699+t2746+t2751; + coeff_I_m1_m1_p1 = t1968+t2372+t1970+t2429+t2613; + coeff_I_0_m1_p1 = t2396+t2172+t1973+t2455+t2692; + coeff_I_p1_m1_p1 = t2359+t2433+t2613+t2821; + coeff_I_p2_m1_p1 = t1983+t2059+t2370+t2462+t2607+t2717; + coeff_I_m2_0_p1 = t2398+t2621+t2663; + coeff_I_m1_0_p1 = t2169+t2136+t2410+t2518+t2768+t2771; + coeff_I_0_0_p1 = t2319*z+t2220+t2416+t2516; + coeff_I_p1_0_p1 = t2404+t2169+t2174+t2547+t2630; + coeff_I_p2_0_p1 = t2398+t2622+t2685; + coeff_I_m2_p1_p1 = t2363+t2665+t2699+t2714+t2779; + coeff_I_m1_p1_p1 = t2372+t2431+t2609+t2821; + coeff_I_0_p1_p1 = t2396+t2459+t2695+t2796; + coeff_I_p1_p1_p1 = t2359+t1970+t2609+t2703+t2755; + coeff_I_p2_p1_p1 = t2363+t2655+t2690+t2717+t2817; + coeff_I_m2_p2_p1 = t2382+t2465+t2591+t2641; + coeff_I_m1_p2_p1 = t2369+t2113+t2050+t2607+t2716+t2831; + coeff_I_0_p2_p1 = t2395+t2670+t2673; + coeff_I_p1_p2_p1 = t1988+t2247+t2248+t2373+t2479+t2630+t2711; + coeff_I_p2_p2_p1 = t2366+t2507+t2586+t2650; + coeff_I_m2_m2_p2 = t1972+t2004+t2362+t2001+t2431+t2619; + coeff_I_m1_m2_p2 = t1999+t2388+t2457+t2599+t2719; + coeff_I_0_m2_p2 = t2408+t2648+t2721; + coeff_I_p1_m2_p2 = t1976+t2367+t2485+t2597+t2719; + coeff_I_p2_m2_p2 = t2005+t2390+t2514+t2626+t2705+t2795; + coeff_I_m2_m1_p2 = t2377+t2576+t2679; + coeff_I_m1_m1_p2 = t2361+t2592+t2611; + coeff_I_0_m1_p2 = t2399+t2669+t2678; + coeff_I_p1_m1_p2 = t2371+t2583+t2616; + coeff_I_p2_m1_p2 = t2384+t2577+t2629; + coeff_I_m2_0_p2 = t2407+t2684+t2691; + coeff_I_m1_0_p2 = t2397+t2632+t2660; + coeff_I_0_0_p2 = t2290*z+t2119+t2417+t2798; + coeff_I_p1_0_p2 = t2409+t2635+t2660; + coeff_I_p2_0_p2 = t2407+t2628+t2722; + coeff_I_m2_p1_p2 = t2377+t2573+t2651; + coeff_I_m1_p1_p2 = t2361+t2585+t2605; + coeff_I_0_p1_p2 = t2412+t2677+t2678; + coeff_I_p1_p1_p2 = t2386+t2583+t2614; + coeff_I_p2_p1_p2 = t2384+t2574+t2649; + coeff_I_m2_p2_p2 = t2005+t1991+t2362+t2002+t2429+t2634; + coeff_I_m1_p2_p2 = t1976+t2049+t2375+t2601+t2658; + coeff_I_0_p2_p2 = t2394+t2648+t2697; + coeff_I_p1_p2_p2 = t1999+t2376+t2477+t2594+t2658; + coeff_I_p2_p2_p2 = t2364+t2004+t2624+t2626+t2634; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-dx.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-dx.compute.c new file mode 100644 index 0000000..567d333 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-dx.compute.c @@ -0,0 +1,983 @@ +fp t3205, + t2864, + t3027, + t3198, + t2868, + t2846, + t3044, + t3202, + t2863, + t3345, + t3203, + t3056, + t2906, + t3054, + t3053, + t3025, + t2978, + t3325, + t3028, + t3196, + t2894, + t2849, + t2876, + t3030, + t3204, + t2903, + t3344, + t3055, + t2913, + t3343, + t2973, + t2960, + t3342, + t2963, + t2912, + t2997, + t3341, + t3045, + t2923, + t3340, + t2883, + t3339, + t3201, + t2908, + t3338, + t3189, + t3052, + t3337, + t2896, + t3199, + t2880, + t3336, + t2966, + t2902, + t3335, + t3024, + t2977, + t3178, + t2996, + t2927, + t3150, + t2979, + t2895, + t3334, + t3022, + t2985, + t3333, + t3332, + t3197, + t2866, + t3331, + t2897, + t2998, + t2928, + t3330, + t3195, + t2879, + t2984, + t3329, + t3020, + t2957, + t2862, + t2999, + t2919, + t3328, + t2932, + t3327, + t3050, + t2987, + t3326, + t2898, + t3324, + t3051, + t3179, + t2925, + t3152, + t3200, + t3015, + t2856, + t3323, + t3002, + t3322, + t2887, + t3192, + t2915, + t3321, + t2909, + t3320, + t2995, + t3319, + t2988, + t3039, + t3318, + t2990, + t3021, + t2967, + t2861, + t3317, + t3316, + t3023, + t3175, + t3315, + t3194, + t2859, + t3314, + t2956, + t2882, + t3313, + t2974, + t2901, + t3312, + t2976, + t3311, + t3310, + t3309, + t3042, + t3187, + t3001, + t3153, + t2962, + t2907, + t3308, + t2918, + t3307, + t2959, + t3306, + t2941, + t3305, + t2885, + t3304, + t3303, + t3302, + t3301, + t3300, + t3299, + t2994, + t2924, + t2869, + t3298, + t2971, + t2899, + t2929, + t3297, + t3171, + t3004, + t3296, + t2982, + t3295, + t3294, + t3293, + t3292, + t3291, + t3290, + t2871, + t3289, + t3288, + t3000, + t3287, + t3286, + t2983, + t3285, + t2917, + t3284, + t3283, + t2935, + t3282, + t3281, + t3280, + t3279, + t3278, + t3191, + t3016, + t2853, + t3277, + t2889, + t3276, + t3275, + t3274, + t3273, + t2904, + t3272, + t3046, + t3271, + t3270, + t3168, + t3269, + t3268, + t2873, + t2920, + t3252, + t3142, + t3267, + t3266, + t3265, + t2992, + t3264, + t2914, + t3006, + t3263, + t3013, + t2892, + t3262, + t3261, + t3180, + t3260, + t2931, + t3133, + t3259, + t2986, + t3159, + t3258, + t3257, + t3256, + t3255, + t3036, + t3254, + t3253, + t3029, + t3251, + t3250, + t2858, + t2993, + t3249, + t3127, + t3248, + t3247, + t3246, + t3009, + t3245, + t3007, + t3244, + t3010, + t3243, + t3242, + t3049, + t3241, + t3240, + t3239, + t3238, + t3237, + t3236, + t2991, + t2867, + t3235, + t3234, + t3233, + t2911, + t3232, + t3231, + t3230, + t3229, + t3012, + t3228, + t3227, + t2872, + t3226, + t3225, + t3011, + t3224, + t3223, + t3222, + t3221, + t3220, + t3219, + t3014, + t3218, + t3217, + t2848, + t3216, + t3215, + t3214, + t3213, + t3018, + t2905, + t3212, + t2847, + t3211, + t3210, + t2900, + t3209, + t2910, + t3208, + t3207, + t3206, + t3193, + t3190, + t3188, + t3186, + t3185, + t3184, + t3182, + t3181, + t2850, + t3177, + t3176, + t3172, + t3170, + t3169, + t3167, + t3166, + t3165, + t3164, + t3163, + t3162, + t3161, + t2844, + t3160, + t3158, + t3157, + t3156, + t3155, + t3154, + t3151, + t3149, + t2989, + t3148, + t3147, + t3146, + t3145, + t3144, + t2953, + t3143, + t3141, + t3140, + t3139, + t3138, + t3137, + t3136, + t3135, + t3134, + t3132, + t3131, + t3130, + t3129, + t3128, + t3126, + t3125, + t3124, + t3123, + t3122, + t3121, + t3120, + t3119, + t3118, + t3117, + t3116, + t3115, + t3114, + t3113, + t3112, + t3111, + t3110, + t2845, + t3109, + t3108, + t3107, + t3106, + t3105, + t3104, + t3103, + t3102, + t3101, + t3100, + t3099, + t3098, + t3097, + t3096, + t3095, + t3094, + t3093, + t3092, + t3091, + t3090, + t3089, + t3088, + t3087, + t3086, + t3085, + t3084, + t3083, + t2857, + t2851, + t3082, + t3081, + t3080, + t3079, + t3078, + t3077, + t3076, + t2944, + t3075, + t2854, + t3074, + t3073, + t3072, + t3071, + t3070, + t3069, + t3068, + t3067, + t3066, + t3065, + t3064, + t3063, + t3062, + t3061, + t3060, + t2855, + t2852; + t3205 = y*z; + t2864 = RATIONAL(1.0,500.0)*t3205; + t3027 = RATIONAL(1.0,350.0); + t3198 = x*t3027; + t2868 = y*t3198; + t2846 = z*t2868; + t3044 = RATIONAL(-1.0,175.0); + t3202 = x*t3044; + t2863 = z*t3202; + t3345 = t2864+t2846+t2863; + t3203 = x*RATIONAL(2.0,245.0); + t3056 = z*z; + t2906 = t3056*t3203; + t3054 = x*x; + t3053 = x*t3054; + t3025 = RATIONAL(1.0,150.0); + t2978 = t3025*t3053; + t3325 = t2906+t2978; + t3028 = RATIONAL(-1.0,350.0); + t3196 = x*t3028; + t2894 = y*t3196; + t2849 = z*t2894; + t2876 = RATIONAL(-1.0,500.0)*t3205; + t3030 = RATIONAL(1.0,175.0); + t3204 = x*t3030; + t2903 = z*t3204; + t3344 = t2849+t2903+t2876; + t3055 = y*y; + t2913 = t3055*t3203; + t3343 = RATIONAL(-529.0,14700.0)*x+t2913; + t2973 = t3028*t3056; + t2960 = RATIONAL(1.0,100.0)*t3054; + t3342 = t2973+t2960; + t2963 = t3027*t3056; + t2912 = y*t2963; + t2997 = RATIONAL(-187.0,7000.0); + t3341 = t2997*y+t2912; + t3045 = RATIONAL(-1.0,42.0); + t2923 = RATIONAL(211.0,3675.0)*x; + t3340 = t3045+t2923; + t2883 = z*t3196; + t3339 = t2864+t2883; + t3201 = x*RATIONAL(-1.0,245.0); + t2908 = t3056*t3201; + t3338 = t2908+t2978; + t3189 = t3054*RATIONAL(-1.0,200.0); + t3052 = t3055*y; + t3337 = t3025*t3052+y*t3189; + t2896 = RATIONAL(1.0,125.0)*t3205; + t3199 = x*RATIONAL(2.0,175.0); + t2880 = y*t3199; + t3336 = t2896+t2880; + t2966 = t3027*t3055; + t2902 = z*t2966; + t3335 = t2902+t2997*z; + t3024 = RATIONAL(-1.0,300.0); + t2977 = RATIONAL(-1.0,100.0)*t3054; + t3178 = y*t2977+t3024*t3052; + t2996 = RATIONAL(137.0,5250.0); + t2927 = t2996*y; + t3150 = t2927+t3178; + t2979 = t3044*t3056; + t2895 = y*t2979; + t3334 = t3150+t2895; + t3022 = RATIONAL(1.0,600.0); + t2985 = RATIONAL(-1.0,50.0)*t3054; + t3333 = t3022*t3052+y*t2985; + t3332 = t2846+t2876; + t3197 = x*RATIONAL(1.0,245.0); + t2866 = t3055*t3197; + t3331 = RATIONAL(136.0,3675.0)*x+t2866; + t2897 = y*t2973; + t2998 = RATIONAL(-107.0,7000.0); + t2928 = t2998*y; + t3330 = t2897+t2928; + t3195 = x*RATIONAL(-2.0,245.0); + t2879 = t3055*t3195; + t2984 = RATIONAL(-9.0,98.0)*x; + t3329 = t2879+t2984; + t3020 = RATIONAL(1.0,700.0); + t2957 = t3020*t3055; + t2862 = z*t2957; + t2999 = RATIONAL(-167.0,7000.0); + t2919 = t2999*z; + t3328 = t2862+t2919; + t2932 = RATIONAL(151.0,3675.0)*x; + t3327 = t2866+t2932; + t3050 = RATIONAL(-2.0,75.0); + t2987 = t3050*t3053; + t3326 = t2987+t2908; + t2898 = RATIONAL(1.0,250.0)*t3205; + t3324 = t2898+t2903; + t3051 = z*t3056; + t3179 = z*t2977+t3024*t3051; + t2925 = t2996*z; + t3152 = t2925+t3179; + t3200 = z*t3055; + t3015 = RATIONAL(-1.0,1400.0); + t2856 = t3015*t3200; + t3323 = t3152+t2856; + t3002 = RATIONAL(47.0,5250.0); + t3322 = t2902+t3002*z; + t2887 = RATIONAL(-1.0,125.0)*t3205; + t3192 = x*RATIONAL(-2.0,175.0); + t2915 = y*t3192; + t3321 = t2887+t2915; + t2909 = t3055*t3201; + t3320 = t2978+t2909; + t2995 = RATIONAL(107.0,7000.0); + t3319 = t2902+t2995*z; + t2988 = RATIONAL(1.0,50.0)*t3054; + t3039 = RATIONAL(-1.0,600.0); + t3318 = z*t2988+t3039*t3051; + t2990 = RATIONAL(-229.0,10500.0); + t3021 = RATIONAL(-1.0,700.0); + t2967 = t3021*t3056; + t2861 = y*t2967; + t3317 = t2990*y+t2861; + t3316 = RATIONAL(-57.0,490.0)*x+t2866; + t3023 = RATIONAL(-1.0,150.0); + t3175 = t3054*RATIONAL(1.0,200.0); + t3315 = z*t3175+t3023*t3051; + t3194 = x*RATIONAL(1.0,490.0); + t2859 = t3056*t3194; + t3314 = t2987+t2859; + t2956 = t3021*t3055; + t2882 = t3055*t3194; + t3313 = t2956+t2882; + t2974 = t3024*x; + t2901 = t3056*t3195; + t3312 = t2974+t2901; + t2976 = t3044*t3055; + t3311 = t2976+t2977; + t3310 = t2960+t2979; + t3309 = t2913+t2978; + t3042 = RATIONAL(1.0,300.0); + t3187 = y*t2960+t3042*t3052; + t3001 = RATIONAL(-137.0,5250.0); + t3153 = t3001*y+t3187; + t2962 = t3030*t3056; + t2907 = y*t2962; + t3308 = t3153+t2907; + t2918 = z*t3198; + t3307 = t2876+t2918; + t2959 = t3030*t3055; + t3306 = t2959+RATIONAL(-11.0,420.0); + t2941 = RATIONAL(166.0,3675.0)*x; + t3305 = t2941+t2882; + t2885 = RATIONAL(311.0,14700.0)*x; + t3304 = t2879+t2885; + t3303 = z*t2985+t3022*t3051; + t3302 = t2864+t2849; + t3301 = t2987+t2909; + t3300 = t2977+RATIONAL(19.0,2100.0); + t3299 = t2879+t2974; + t2994 = RATIONAL(167.0,7000.0); + t2924 = t2994*z; + t2869 = z*t2956; + t3298 = t2924+t2869; + t2971 = t3028*t3055; + t2899 = z*t2971; + t2929 = t2998*z; + t3297 = t2899+t2929; + t3171 = z*t2960+t3042*t3051; + t3004 = RATIONAL(-47.0,5250.0); + t3296 = t3171+t3004*z; + t2982 = t3020*t3056; + t3295 = t2982+t2988; + t3294 = t2901+t2885; + t3293 = t2959+t2977; + t3292 = t2864+t2918; + t3291 = t2967+t2985; + t3290 = t2988+t2966; + t2871 = RATIONAL(-169.0,14700.0)*x; + t3289 = t2906+t2871; + t3288 = t2971+t2963; + t3000 = RATIONAL(187.0,7000.0); + t3287 = t2899+t3000*z; + t3286 = z*t3189+t3025*t3051; + t2983 = RATIONAL(4.0,75.0)*x; + t3285 = t2983+t2866; + t2917 = t3056*t3197; + t3284 = t2917+t2983; + t3283 = y*t3175+t3023*t3052; + t2935 = t2995*y; + t3282 = t2935+t2912; + t3281 = t2897+t2871; + t3280 = t2960+t2962; + t3279 = t2897+t3000*y; + t3278 = t2882+t2957; + t3191 = y*t3056; + t3016 = RATIONAL(1.0,1400.0); + t2853 = t3016*t3191; + t3277 = t3153+t2853; + t2889 = y*t3202; + t3276 = t2971+t2889; + t3275 = t2960+t2971; + t3274 = t2960+RATIONAL(17.0,2100.0); + t3273 = t2883+t2876; + t2904 = RATIONAL(-1.0,250.0)*t3205; + t3272 = t2863+t2904; + t3046 = RATIONAL(1.0,42.0); + t3271 = t3046+t2985; + t3270 = t2973+t2985; + t3168 = t2973+t2971; + t3269 = t3168+t3274; + t3268 = t2899+t3296; + t2873 = RATIONAL(191.0,14700.0)*x; + t2920 = t2999*y; + t3252 = t2909+t3337; + t3142 = t2978+t3252; + t3267 = t2873+t2920+t3142; + t3266 = t2923+t3333; + t3265 = t3179+t3322; + t2992 = RATIONAL(289.0,10500.0); + t3264 = t3178+t2992*y+t2861; + t2914 = z*t2959; + t3006 = RATIONAL(17.0,5250.0); + t3263 = t3179+t2914+t3006*z; + t3013 = RATIONAL(-17.0,5250.0); + t2892 = z*t2976; + t3262 = t3013*z+t3171+t2892; + t3261 = t2892+t3343; + t3180 = t2963+t2966; + t3260 = t3180+t2977+RATIONAL(-17.0,2100.0); + t2931 = RATIONAL(256.0,3675.0)*x; + t3133 = t3301+t3333; + t3259 = t2931+t2935+t3133; + t2986 = RATIONAL(1.0,25.0)*t3053; + t3159 = t2986+t2901; + t3258 = t2866+t3159+t2984; + t3257 = t2879+t3159+RATIONAL(-33.0,490.0)*x; + t3256 = t2994*y+t2909+t2861; + t3255 = t2873+t3283; + t3036 = RATIONAL(8.0,525.0); + t3254 = t3180+t3036+t2985; + t3253 = t2908+t3319; + t3029 = RATIONAL(-8.0,525.0); + t3251 = t3168+t2988+t3029; + t3250 = t2931+t3330; + t2858 = y*t2982; + t2993 = RATIONAL(-289.0,10500.0); + t3249 = t2993*y+t2858+t3187; + t3127 = t3178+t3309; + t3248 = t2871+t3127+t3002*y; + t3247 = t3286+t3328; + t3246 = t3187+t2868+t3317; + t3009 = RATIONAL(-29.0,2100.0); + t3245 = t3009+t2962+t2977+t2966; + t3007 = RATIONAL(-19.0,2100.0); + t3244 = t2959+t3007+t3342; + t3010 = RATIONAL(29.0,2100.0); + t3243 = t3010+t2976+t3342; + t3242 = t2979+t2966+t3300; + t3049 = RATIONAL(2.0,75.0); + t3241 = t3049+t2966+t3270; + t3240 = t2976+t2963+t3300; + t3239 = t2988+t3050+t3288; + t3238 = t3330+t3337; + t3237 = t3298+t3303; + t3236 = t2962+t3042+t3311; + t2991 = RATIONAL(229.0,10500.0); + t2867 = t2991*y; + t3235 = t3178+t2858+t2867+t2894; + t3234 = t3010+t2979+t3275; + t3233 = t3009+t2963+t3293; + t2911 = t2991*z; + t3232 = t3179+t2862+t2846+t2911; + t3231 = t3298+t3315; + t3230 = t2923+t2858+t2920+t2859; + t3229 = t2959+t3024+t3310; + t3012 = RATIONAL(-37.0,1050.0); + t3228 = t3012+t2982+t3290; + t3227 = t2962+t3007+t3275; + t2872 = t2990*z; + t3226 = t3171+t2849+t2872+t2869; + t3225 = t2956+RATIONAL(17.0,525.0)+t3291; + t3011 = RATIONAL(37.0,1050.0); + t3224 = t3011+t2971+t3291; + t3223 = t3305+t3314; + t3222 = t3049+t2985+t3288; + t3221 = t2973+t3050+t3290; + t3220 = t2914+t3343+t3325; + t3219 = t3282+t3283; + t3014 = RATIONAL(-17.0,525.0); + t3218 = t2957+t3014+t3295; + t3217 = t3318+t3328; + t2848 = y*t2863; + t3216 = t2848+t3297+t3318; + t3215 = t2898+t3244; + t3214 = t2967+t2889+t2966+t3271; + t3213 = t2904+t3244; + t3018 = RATIONAL(11.0,420.0); + t2905 = z*t3192; + t3212 = t3018+t2905+t2979+t3311; + t2847 = y*t2903; + t3211 = t2847+t3303+t3319; + t3210 = t2904+t3240; + t2900 = z*t3199; + t3209 = t2900+t3280+t3306; + t2910 = y*t3204; + t3208 = t3045+t2910+t2971+t3295; + t3207 = t2898+t3240; + t3206 = t2923+t2963+t3271+t3313; + t3193 = x*t3205; + t3190 = t2910+t2863; + t3188 = t2903+t2915; + t3186 = t2917+t2986; + t3185 = t2846+t2903; + t3184 = t2889+t2903; + t3182 = t2847+t2905; + t3181 = t2973+t2908; + t2850 = y*t2900; + t3177 = t2850+t2880; + t3176 = t2986+t2906; + t3172 = t2863+t2880; + t3170 = t2987+t2988; + t3169 = t2910+t2903; + t3167 = t2900+t2847; + t3166 = t2863+t2915; + t3165 = t2848+t2900; + t3164 = t2863+t2889; + t3163 = t2850+t2915; + t3162 = t2986+t2913; + t3161 = t2903+t2880; + t2844 = z*t2915; + t3160 = t2844+t2880; + t3158 = t2849+t2863; + t3157 = t2844+t2915; + t3156 = t2903+t3186; + t3155 = t2908+t3187; + t3154 = t3001*z+t3171; + t3151 = t2863+t3186; + t3149 = t2858+t3181; + t2989 = RATIONAL(-1.0,10.0)*x; + t3148 = t2879+t2989+t3176; + t3147 = t2917+t2987+t3270; + t3146 = RATIONAL(431.0,14700.0)*x+t2879+t2901+t2978; + t3145 = t3170+t3278; + t3144 = t2977+t2979+t3325; + t2953 = RATIONAL(-61.0,490.0)*x; + t3143 = t2917+t2953+t3162; + t3141 = t3179+t3314; + t3140 = t3283+t3320; + t3139 = t2866+t2953+t3176; + t3138 = t3039*t3052+y*t2988+t3301; + t3137 = t3315+t3338; + t3136 = t3280+t3325; + t3135 = t3171+t3314; + t3134 = t2917+t2963+t3170; + t3132 = t3187+t3309; + t3131 = t3318+t3326; + t3130 = t3303+t3326; + t3129 = t2989+t2913+t3159; + t3128 = t3286+t3338; + t3126 = t2847+t2908+t2912+t3297; + t3125 = t3156+t3316; + t3124 = t2848+t2912+t3253; + t3123 = t2848+t2899+t2978+t3281; + t3122 = t2862+t2849+t3256; + t3121 = t2846+t2869+t3256; + t3120 = t3151+t3316; + t3119 = t2905+t3257; + t3118 = t3156+t3329; + t3117 = t3151+t3329; + t3116 = t2889+t3258; + t3115 = t2900+t3257; + t3114 = t2910+t3258; + t3113 = t3153+t3154; + t3112 = t3150+t3154; + t3111 = t2868+t3145+t3178; + t3110 = t2988+t3138+t3276; + t2845 = t3020*t3193; + t3109 = t2918+t2845+t2894+t3223; + t3108 = t2910+t2966+t2985+t3138; + t3107 = t2910+t3167+t3289+t3320; + t3106 = t2905+t3136+t3179; + t3105 = t2992*z+t2869+t3141+t3327; + t3104 = t3131+t3285+t3335; + t3103 = t3013*y+t2895+t3132+t3312; + t3102 = t3130+t3285+t3287; + t3101 = t3142+t3294+t3341; + t3100 = t3137+t3287+t3304; + t3099 = t2976+t3024+t3136+t3299; + t3098 = t3133+t3279+t3284; + t3097 = t3011+t2932+t3147+t3313; + t3096 = t2862+t2993*z+t3135+t3327; + t3095 = t3012+t2932+t3134+t3278; + t3094 = t3128+t3304+t3335; + t3093 = t3140+t3279+t3294; + t3092 = t2959+t3042+t3144+t3299; + t3091 = t3138+t3284+t3341; + t3090 = t3006*y+t2907+t3127+t3312; + t3089 = t2910+t2858+t2908+t3260+t3267; + t3088 = t2919+t3122+t3128+t3255; + t3087 = t2973+t2894+t3145+t3155+t3317+t3340; + t3086 = t2867+t3111+t3149+t3340; + t3085 = t3029+t3110+t3181+t3250; + t3084 = t3124+t3259+t3303; + t3083 = t3149+t3267+t3274+t3276; + t2857 = t3016*t3200; + t2851 = t3021*t3193; + t3082 = t2857+t2851+t2853+t3113+t3223; + t3081 = t3126+t3248+t3286; + t3080 = t2863+t3130+t3206+t3298; + t3079 = t2850+t2907+t3113+t3220; + t3078 = t3046+t2967+t3108+t3230; + t3077 = t2872+t3121+t3135+t3266; + t3076 = t2908+t2963+t3036+t3108+t3250; + t2944 = t3004*y; + t3075 = t2929+t2944+t2913+t3123+t3155+t3286; + t2854 = t3015*t3191; + t3074 = t2854+t2941+t2982+t3014+t2859+t2927+t3111; + t3073 = t2847+t2944+t3132+t3253+t3281+t3315; + t3072 = t3124+t3248+t3315; + t3071 = t2903+t3131+t3206+t3328; + t3070 = t3045+t2982+t3110+t3230; + t3069 = t3018+t2900+t2976+t3144+t3152+t3261; + t3068 = t2883+t2925+t2856+t3141+t3225+t3305; + t3067 = t2871+t2971+t2909+t3007+t3106+t3322; + t3066 = t2925+t3106+t3261+t3306; + t3065 = t2924+t3121+t3137+t3255; + t3064 = t2906+t2928+t3123+t3252+t3296; + t3063 = t2844+t2895+t3112+t3220; + t3062 = t2911+t3122+t3141+t3266; + t3061 = t3126+t3259+t3318; + t3060 = t2889+t3140+t3242+t3282+t3289; + t2855 = RATIONAL(-1.0,1000.0)*t3205; + t2852 = RATIONAL(1.0,1000.0)*t3205; + coeff_dx_m2_m2_m2 = t3079+t3212+t3321; + coeff_dx_m1_m2_m2 = t2904+t3084+t3169+t3251; + coeff_dx_0_m2_m2 = t3115+t3160; + coeff_dx_p1_m2_m2 = t3076+t3216+t3324; + coeff_dx_p2_m2_m2 = t2896+t3066+t3163+t3334; + coeff_dx_m2_m1_m2 = t3060+t2904+t3182+t3268; + coeff_dx_m1_m1_m2 = t3086+t3237+t3344; + coeff_dx_0_m1_m2 = t3114+t3165; + coeff_dx_p1_m1_m2 = t3071+t3246+t3302; + coeff_dx_p2_m1_m2 = t2847+t2898+t3067+t2889+t3238; + coeff_dx_m2_0_m2 = t2905+t3092+t3262; + coeff_dx_m1_0_m2 = t2903+t3102+t3221; + coeff_dx_0_0_m2 = t2900+t3129; + coeff_dx_p1_0_m2 = t2903+t3104+t3222; + coeff_dx_p2_0_m2 = t2905+t3099+t3263; + coeff_dx_m2_p1_m2 = t2910+t3064+t2898+t2905+t3242; + coeff_dx_m1_p1_m2 = t2864+t3087+t3185+t3237; + coeff_dx_0_p1_m2 = t3116+t3167; + coeff_dx_p1_p1_m2 = t3071+t3235+t3332; + coeff_dx_p2_p1_m2 = t2848+t2910+t3067+t2904+t3219; + coeff_dx_m2_p2_m2 = t3063+t3212+t3336; + coeff_dx_m1_p2_m2 = t3085+t3211+t3324; + coeff_dx_0_p2_m2 = t3115+t3163; + coeff_dx_p1_p2_m2 = t3061+t2904+t3184+t3254; + coeff_dx_p2_p2_m2 = t2887+t3066+t3160+t3308; + coeff_dx_m2_m2_m1 = t3073+t3166+t3210; + coeff_dx_m1_m2_m1 = t3062+t3208+t3307; + coeff_dx_0_m2_m1 = t2848+t2880+t3118; + coeff_dx_p1_m2_m1 = t3078+t3226+t3292; + coeff_dx_p2_m2_m1 = t3081+t3166+t3215; + coeff_dx_m2_m1_m1 = t2876+t3065+t3164+t3260; + coeff_dx_m1_m1_m1 = t3074+t2855+t2851+t2918+t3323; + coeff_dx_0_m1_m1 = t2849+t2910+t3125; + coeff_dx_p1_m1_m1 = t2918+t2868+t3082+t2852+t3225; + coeff_dx_p2_m1_m1 = t3083+t3247+t3345; + coeff_dx_m2_0_m1 = t2863+t3100+t3233; + coeff_dx_m1_0_m1 = t2918+t3105+t3228; + coeff_dx_0_0_m1 = t2903+t3143; + coeff_dx_p1_0_m1 = t2918+t3096+t3224; + coeff_dx_p2_0_m1 = t2863+t3094+t3243; + coeff_dx_m2_p1_m1 = t2864+t3089+t3158+t3231; + coeff_dx_m1_p1_m1 = t3109+t2852+t3218+t3277+t3323; + coeff_dx_0_p1_m1 = t2889+t2846+t3125; + coeff_dx_p1_p1_m1 = t2854+t2857+t2855+t3109+t3112+t3225; + coeff_dx_p2_p1_m1 = t3088+t2876+t3190+t3269; + coeff_dx_m2_p2_m1 = t3072+t3172+t3207; + coeff_dx_m1_p2_m1 = t3070+t3232+t3292; + coeff_dx_0_p2_m1 = t2847+t2915+t3118; + coeff_dx_p1_p2_m1 = t3077+t3214+t3307; + coeff_dx_p2_p2_m1 = t3075+t3172+t3213; + coeff_dx_m2_m2_0 = t2915+t3103+t3236; + coeff_dx_m1_m2_0 = t2910+t3098+t3239; + coeff_dx_0_m2_0 = t2880+t3148; + coeff_dx_p1_m2_0 = t2910+t3091+t3241; + coeff_dx_p2_m2_0 = t2915+t3090+t3229; + coeff_dx_m2_m1_0 = t2889+t3093+t3245; + coeff_dx_m1_m1_0 = t2868+t3095+t3264; + coeff_dx_0_m1_0 = t2910+t3139; + coeff_dx_p1_m1_0 = t2868+t3097+t3249; + coeff_dx_p2_m1_0 = t2889+t3101+t3234; + coeff_dx_m2_0_0 = RATIONAL(-41.0,2100.0)+t2962+t3146+t3293; + coeff_dx_m1_0_0 = RATIONAL(-4.0,105.0)+t2966+t3134+t3331; + coeff_dx_0_0_0 = t2906+RATIONAL(-13.0,98.0)*x+t3162; + coeff_dx_p1_0_0 = RATIONAL(4.0,105.0)+t2971+t3147+t3331; + coeff_dx_p2_0_0 = RATIONAL(41.0,2100.0)+t2976+t3146+t3310; + coeff_dx_m2_p1_0 = t2910+t3101+t3245; + coeff_dx_m1_p1_0 = t2894+t3095+t3249; + coeff_dx_0_p1_0 = t2889+t3139; + coeff_dx_p1_p1_0 = t2894+t3097+t3264; + coeff_dx_p2_p1_0 = t2910+t3093+t3234; + coeff_dx_m2_p2_0 = t2880+t3090+t3236; + coeff_dx_m1_p2_0 = t2889+t3091+t3239; + coeff_dx_0_p2_0 = t2915+t3148; + coeff_dx_p1_p2_0 = t2889+t3098+t3241; + coeff_dx_p2_p2_0 = t2880+t3103+t3229; + coeff_dx_m2_m2_p1 = t3075+t3188+t3207; + coeff_dx_m1_m2_p1 = t3077+t3208+t3339; + coeff_dx_0_m2_p1 = t2880+t2847+t3117; + coeff_dx_p1_m2_p1 = t3078+t3232+t3273; + coeff_dx_p2_m2_p1 = t3072+t3188+t3213; + coeff_dx_m2_m1_p1 = t2864+t3088+t3184+t3260; + coeff_dx_m1_m1_p1 = t2857+t3074+t2883+t2845+t2852+t3154; + coeff_dx_0_m1_p1 = t2910+t2846+t3120; + coeff_dx_p1_m1_p1 = t2855+t3068+t2845+t2868+t3277; + coeff_dx_p2_m1_p1 = t3083+t3231+t3344; + coeff_dx_m2_0_p1 = t2903+t3094+t3233; + coeff_dx_m1_0_p1 = t2883+t3096+t3228; + coeff_dx_0_0_p1 = t2863+t3143; + coeff_dx_p1_0_p1 = t2883+t3105+t3224; + coeff_dx_p2_0_p1 = t2903+t3100+t3243; + coeff_dx_m2_p1_p1 = t3089+t2876+t3185+t3247; + coeff_dx_m1_p1_p1 = t2855+t2883+t2894+t3082+t3218; + coeff_dx_0_p1_p1 = t2889+t2849+t3120; + coeff_dx_p1_p1_p1 = t2854+t2851+t3068+t2894+t2852+t3150; + coeff_dx_p2_p1_p1 = t2864+t3065+t3169+t3269; + coeff_dx_m2_p2_p1 = t3081+t3161+t3210; + coeff_dx_m1_p2_p1 = t3070+t3226+t3273; + coeff_dx_0_p2_p1 = t2848+t2915+t3117; + coeff_dx_p1_p2_p1 = t3062+t3214+t3339; + coeff_dx_p2_p2_p1 = t3073+t3161+t3215; + coeff_dx_m2_m2_p2 = t2896+t3069+t3157+t3308; + coeff_dx_m1_m2_p2 = t2898+t3061+t3190+t3251; + coeff_dx_0_m2_p2 = t3119+t3177; + coeff_dx_p1_m2_p2 = t3076+t3211+t3272; + coeff_dx_p2_m2_p2 = t3063+t3209+t3321; + coeff_dx_m2_m1_p2 = t3060+t2898+t3165+t3265; + coeff_dx_m1_m1_p2 = t3086+t3217+t3345; + coeff_dx_0_m1_p2 = t3114+t3182; + coeff_dx_p1_m1_p2 = t3080+t3246+t3332; + coeff_dx_p2_m1_p2 = t3064+t2900+t2889+t2904+t3227; + coeff_dx_m2_0_p2 = t2900+t3092+t3263; + coeff_dx_m1_0_p2 = t2863+t3104+t3221; + coeff_dx_0_0_p2 = t2905+t3129; + coeff_dx_p1_0_p2 = t2863+t3102+t3222; + coeff_dx_p2_0_p2 = t2900+t3099+t3262; + coeff_dx_m2_p1_p2 = t3107+t2904+t3238+t3242+t3265; + coeff_dx_m1_p1_p2 = t3087+t2876+t3158+t3217; + coeff_dx_0_p1_p2 = t2848+t2905+t3116; + coeff_dx_p1_p1_p2 = t3080+t3235+t3302; + coeff_dx_p2_p1_p2 = t3107+t2898+t3219+t3227+t3268; + coeff_dx_m2_p2_p2 = t2887+t3069+t3177+t3334; + coeff_dx_m1_p2_p2 = t3085+t3216+t3272; + coeff_dx_0_p2_p2 = t3119+t3157; + coeff_dx_p1_p2_p2 = t2898+t3084+t3164+t3254; + coeff_dx_p2_p2_p2 = t3079+t3209+t3336; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-dxx.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-dxx.compute.c new file mode 100644 index 0000000..82c67c7 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-dxx.compute.c @@ -0,0 +1,611 @@ +fp t4430, + t4411, + t4380, + t4426, + t4428, + t4391, + t4539, + t4419, + t4368, + t4393, + t4601, + t4407, + t4600, + t4401, + t4387, + t4599, + t4415, + t4372, + t4598, + t4546, + t4345, + t4389, + t4597, + t4421, + t4596, + t4410, + t4383, + t4392, + t4595, + t4400, + t4418, + t4429, + t4367, + t4594, + t4545, + t4346, + t4593, + t4359, + t4592, + t4416, + t4378, + t4358, + t4591, + t4390, + t4364, + t4590, + t4381, + t4397, + t4589, + t4413, + t4386, + t4588, + t4388, + t4363, + t4420, + t4371, + t4587, + t4403, + t4586, + t4374, + t4585, + t4369, + t4583, + t4357, + t4506, + t4584, + t4582, + t4581, + t4385, + t4532, + t4498, + t4396, + t4580, + t4352, + t4579, + t4578, + t4362, + t4412, + t4375, + t4577, + t4576, + t4409, + t4377, + t4575, + t4574, + t4573, + t4572, + t4571, + t4361, + t4570, + t4376, + t4569, + t4568, + t4356, + t4395, + t4567, + t4408, + t4370, + t4566, + t4360, + t4565, + t4564, + t4563, + t4382, + t4562, + t4402, + t4561, + t4560, + t4384, + t4559, + t4558, + t4557, + t4556, + t4555, + t4554, + t4553, + t4379, + t4350, + t4552, + t4513, + t4551, + t4423, + t4550, + t4549, + t4548, + t4547, + t4373, + t4366, + t4544, + t4543, + t4349, + t4365, + t4542, + t4541, + t4540, + t4348, + t4538, + t4354, + t4537, + t4536, + t4535, + t4534, + t4531, + t4530, + t4355, + t4529, + t4528, + t4527, + t4526, + t4525, + t4347, + t4524, + t4523, + t4522, + t4520, + t4519, + t4517, + t4516, + t4515, + t4512, + t4511, + t4510, + t4509, + t4508, + t4507, + t4505, + t4504, + t4503, + t4502, + t4501, + t4500, + t4499, + t4497, + t4496, + t4495, + t4494, + t4404, + t4493, + t4427, + t4492, + t4491, + t4490, + t4489, + t4488, + t4487, + t4486, + t4485, + t4484, + t4483, + t4482, + t4481, + t4480, + t4479, + t4478, + t4477, + t4476, + t4475, + t4474, + t4473, + t4472, + t4471, + t4470, + t4469, + t4468, + t4467, + t4466, + t4465, + t4464, + t4463, + t4462, + t4351, + t4461, + t4460, + t4459, + t4458, + t4457, + t4456, + t4455, + t4454, + t4453, + t4452, + t4353, + t4451, + t4450, + t4449, + t4448, + t4447, + t4446, + t4445, + t4444, + t4443, + t4442, + t4441, + t4440, + t4439, + t4438, + t4437, + t4436, + t4435, + t4434, + t4433, + t4432, + t4431; + t4430 = z*z; + t4411 = RATIONAL(-2.0,245.0); + t4380 = t4411*t4430; + t4426 = RATIONAL(1.0,50.0); + t4428 = x*x; + t4391 = t4426*t4428; + t4539 = t4380+t4391; + t4419 = RATIONAL(1.0,245.0); + t4368 = t4419*t4430; + t4393 = RATIONAL(3.0,25.0)*t4428; + t4601 = t4368+t4393; + t4407 = RATIONAL(-1.0,300.0); + t4600 = t4407+t4380; + t4401 = RATIONAL(256.0,3675.0); + t4387 = RATIONAL(-2.0,25.0)*t4428; + t4599 = t4401+t4387; + t4415 = RATIONAL(2.0,245.0); + t4372 = t4415*t4430; + t4598 = t4372+t4391; + t4546 = x*RATIONAL(-1.0,100.0); + t4345 = z*t4546; + t4389 = t4426*x; + t4597 = t4345+t4389; + t4421 = RATIONAL(4.0,75.0); + t4596 = t4421+t4387+t4368; + t4410 = RATIONAL(1.0,175.0); + t4383 = t4410*z; + t4392 = RATIONAL(-1.0,25.0)*x; + t4595 = t4383+t4392; + t4400 = RATIONAL(211.0,3675.0); + t4418 = RATIONAL(-1.0,245.0); + t4429 = y*y; + t4367 = t4418*t4429; + t4594 = t4400+t4367; + t4545 = x*RATIONAL(1.0,100.0); + t4346 = z*t4545; + t4593 = t4346+t4389; + t4359 = z*t4392; + t4592 = t4383+t4359; + t4416 = RATIONAL(2.0,175.0); + t4378 = t4416*y; + t4358 = y*t4389; + t4591 = t4378+t4358; + t4390 = RATIONAL(-1.0,50.0)*x; + t4364 = z*t4390; + t4590 = t4372+t4364; + t4381 = t4411*t4429; + t4397 = RATIONAL(311.0,14700.0); + t4589 = t4381+t4397; + t4413 = RATIONAL(1.0,490.0); + t4386 = t4413*t4429; + t4588 = t4400+t4386; + t4388 = RATIONAL(1.0,25.0)*x; + t4363 = z*t4388; + t4420 = RATIONAL(-1.0,175.0); + t4371 = t4420*z; + t4587 = t4363+t4371; + t4403 = RATIONAL(166.0,3675.0); + t4586 = t4403+t4386; + t4374 = t4415*t4429; + t4585 = t4374+RATIONAL(-529.0,14700.0); + t4369 = t4413*t4430; + t4583 = t4387+t4369; + t4357 = z*t4389; + t4506 = t4357+t4583; + t4584 = t4400+t4506; + t4582 = t4358+t4392; + t4581 = t4345+t4390; + t4385 = t4418*t4430; + t4532 = t4383+t4385; + t4498 = t4391+t4532; + t4396 = RATIONAL(191.0,14700.0); + t4580 = t4498+t4396; + t4352 = y*t4546; + t4579 = t4345+t4352; + t4578 = t4407+t4381; + t4362 = y*t4390; + t4412 = RATIONAL(-2.0,175.0); + t4375 = t4412*y; + t4577 = t4362+t4375; + t4576 = t4396+t4391; + t4409 = RATIONAL(-1.0,350.0); + t4377 = t4409*z; + t4575 = t4357+t4377; + t4574 = t4374+t4389; + t4573 = t4386+t4387; + t4572 = t4388+t4358; + t4571 = t4359+t4392; + t4361 = y*t4388; + t4570 = t4361+t4388; + t4376 = t4409*y; + t4569 = t4376+t4362; + t4568 = t4346+t4390; + t4356 = y*t4545; + t4395 = RATIONAL(-169.0,14700.0); + t4567 = t4356+t4395; + t4408 = RATIONAL(1.0,350.0); + t4370 = t4408*z; + t4566 = t4392+t4370; + t4360 = y*t4392; + t4565 = t4360+t4392; + t4564 = t4356+t4346; + t4563 = t4364+t4370; + t4382 = t4419*t4429; + t4562 = t4421+t4382; + t4402 = RATIONAL(151.0,3675.0); + t4561 = t4402+t4382; + t4560 = t4388+t4359; + t4384 = t4408*y; + t4559 = t4384+t4358; + t4558 = t4403+t4369; + t4557 = t4360+t4388; + t4556 = t4402+t4368; + t4555 = t4388+t4377; + t4554 = t4401+t4367; + t4553 = RATIONAL(-57.0,490.0)+t4382+t4601; + t4379 = z*t4412; + t4350 = y*t4379; + t4552 = t4350+t4585; + t4513 = t4380+t4393; + t4551 = RATIONAL(-33.0,490.0)+t4381+t4513; + t4423 = RATIONAL(-9.0,98.0); + t4550 = t4382+t4423+t4513; + t4549 = t4397+t4367+t4539; + t4548 = t4423+t4381+t4601; + t4547 = y*z; + t4373 = z*t4416; + t4366 = t4420*y; + t4544 = t4385+t4371; + t4543 = t4379+t4366; + t4349 = z*t4366; + t4365 = t4410*y; + t4542 = t4349+t4365; + t4541 = t4349+t4367; + t4540 = t4349+t4371; + t4348 = y*t4370; + t4538 = t4348+t4365; + t4354 = y*t4377; + t4537 = t4366+t4354; + t4536 = t4379+t4365; + t4535 = t4348+t4366; + t4534 = t4357+t4358; + t4531 = t4382+t4387; + t4530 = t4362+t4364; + t4355 = y*t4383; + t4529 = t4383+t4355; + t4528 = t4365+t4354; + t4527 = t4367+t4354; + t4526 = t4365+t4367; + t4525 = t4372+t4393; + t4347 = y*t4373; + t4524 = t4347+t4375; + t4523 = t4373+t4375; + t4522 = t4373+t4365; + t4520 = t4366+t4355; + t4519 = t4374+t4393; + t4517 = t4373+t4366; + t4516 = t4378+t4379; + t4515 = t4378+t4347; + t4512 = t4379+t4598; + t4511 = t4391+t4590; + t4510 = t4384+t4573; + t4509 = t4387+t4532; + t4508 = t4373+t4598; + t4507 = t4367+t4544; + t4505 = t4388+t4531; + t4504 = t4364+t4583; + t4503 = t4374+t4390+t4391; + t4502 = t4391+t4544; + t4501 = t4376+t4573; + t4500 = t4391+t4395+t4355; + t4499 = t4363+t4385+t4387; + t4497 = t4357+t4598; + t4496 = RATIONAL(136.0,3675.0)+t4368+t4531; + t4495 = t4365+t4507; + t4494 = t4381+RATIONAL(431.0,14700.0)+t4539; + t4404 = RATIONAL(-61.0,490.0); + t4493 = t4404+t4382+t4525; + t4427 = RATIONAL(-1.0,10.0); + t4492 = t4381+t4427+t4525; + t4491 = t4404+t4368+t4519; + t4490 = t4374+t4427+t4513; + t4489 = t4366+t4507; + t4488 = t4512+t4578; + t4487 = t4355+t4550; + t4486 = t4375+t4548; + t4485 = t4502+t4589; + t4484 = t4526+t4596; + t4483 = t4510+t4556; + t4482 = t4407+t4539+t4574; + t4481 = t4371+t4553; + t4480 = t4366+t4367+t4596; + t4479 = t4378+t4362+t4503; + t4478 = t4498+t4589; + t4477 = t4508+t4578; + t4476 = t4421+t4385+t4505; + t4475 = t4373+t4551; + t4474 = t4356+t4549; + t4473 = t4352+t4549; + t4472 = t4501+t4572; + t4471 = t4378+t4548; + t4470 = t4377+t4392+t4504; + t4469 = t4379+t4551; + t4468 = t4402+t4369+t4505; + t4467 = t4499+t4595; + t4466 = t4383+t4553; + t4465 = t4501+t4556; + t4464 = t4387+t4544+t4571; + t4463 = t4349+t4550; + t4462 = t4374+t4349+t4375+t4395+t4498; + t4351 = RATIONAL(1.0,700.0)*t4547; + t4461 = t4362+t4351+t4506+t4586; + t4460 = t4345+t4395+t4502+t4574; + t4459 = t4467+t4554; + t4458 = t4512+t4524+t4585; + t4457 = t4352+t4395+t4497+t4541; + t4456 = t4360+t4348+t4367+t4584; + t4455 = t4508+t4515+t4585; + t4454 = t4472+t4558; + t4453 = t4509+t4554+t4560; + t4452 = t4384+t4354+t4509+t4588; + t4353 = RATIONAL(-1.0,700.0)*t4547; + t4451 = t4353+t4370+t4510+t4558; + t4450 = t4511+t4541+t4567; + t4449 = t4355+t4495+t4599; + t4448 = t4348+t4489+t4576; + t4447 = t4361+t4527+t4584; + t4446 = t4367+t4352+t4500+t4590; + t4445 = t4366+t4527+t4580; + t4444 = t4354+t4495+t4576; + t4443 = t4470+t4586; + t4442 = t4348+t4526+t4580; + t4441 = t4388+t4370+t4504+t4594; + t4440 = t4385+t4395+t4479; + t4439 = t4367+t4355+t4497+t4567; + t4438 = t4470+t4594; + t4437 = t4400+t4385+t4472; + t4436 = t4374+t4346+t4385+t4358+t4500; + t4435 = t4349+t4489+t4599; + t4434 = t4362+t4348+t4499+t4588; + t4433 = t4362+t4497+t4552; + t4432 = t4464+t4588; + t4431 = t4358+t4511+t4552; + coeff_dxx_m2_m2_m2 = t4390+t4458+t4534; + coeff_dxx_m1_m2_m2 = t4360+t4453+t4542; + coeff_dxx_0_m2_m2 = t4350+t4378+t4475; + coeff_dxx_p1_m2_m2 = t4361+t4459+t4542; + coeff_dxx_p2_m2_m2 = t4389+t4458+t4530; + coeff_dxx_m2_m1_m2 = t4390+t4439+t4543; + coeff_dxx_m1_m1_m2 = t4362+t4452+t4560; + coeff_dxx_0_m1_m2 = t4463+t4522; + coeff_dxx_p1_m1_m2 = t4363+t4452+t4582; + coeff_dxx_p2_m1_m2 = t4389+t4446+t4543; + coeff_dxx_m2_0_m2 = t4357+t4390+t4488; + coeff_dxx_m1_0_m2 = t4476+t4592; + coeff_dxx_0_0_m2 = t4373+t4490; + coeff_dxx_p1_0_m2 = t4467+t4562; + coeff_dxx_p2_0_m2 = t4389+t4364+t4488; + coeff_dxx_m2_p1_m2 = t4390+t4457+t4536; + coeff_dxx_m1_p1_m2 = t4348+t4437+t4592; + coeff_dxx_0_p1_m2 = t4487+t4517; + coeff_dxx_p1_p1_m2 = t4376+t4434+t4595; + coeff_dxx_p2_p1_m2 = t4389+t4450+t4536; + coeff_dxx_m2_p2_m2 = t4390+t4433+t4516; + coeff_dxx_m1_p2_m2 = t4361+t4453+t4520; + coeff_dxx_0_p2_m2 = t4475+t4524; + coeff_dxx_p1_p2_m2 = t4360+t4459+t4520; + coeff_dxx_p2_p2_m2 = t4389+t4431+t4516; + coeff_dxx_m2_m2_m1 = t4390+t4371+t4375+t4436; + coeff_dxx_m1_m2_m1 = t4360+t4441+t4528; + coeff_dxx_0_m2_m1 = t4349+t4383+t4471; + coeff_dxx_p1_m2_m1 = t4365+t4447+t4566; + coeff_dxx_p2_m2_m1 = t4355+t4460+t4577; + coeff_dxx_m2_m1_m1 = t4390+t4448+t4564; + coeff_dxx_m1_m1_m1 = t4388+t4451+t4530; + coeff_dxx_0_m1_m1 = t4466+t4528; + coeff_dxx_p1_m1_m1 = t4392+t4451+t4534; + coeff_dxx_p2_m1_m1 = t4389+t4448+t4579; + coeff_dxx_m2_0_m1 = t4485+t4568; + coeff_dxx_m1_0_m1 = t4468+t4563; + coeff_dxx_0_0_m1 = t4383+t4491; + coeff_dxx_p1_0_m1 = t4506+t4561+t4566; + coeff_dxx_p2_0_m1 = t4485+t4597; + coeff_dxx_m2_p1_m1 = t4352+t4444+t4568; + coeff_dxx_m1_p1_m1 = t4351+t4454+t4563; + coeff_dxx_0_p1_m1 = t4466+t4535; + coeff_dxx_p1_p1_m1 = t4376+t4461+t4566; + coeff_dxx_p2_p1_m1 = t4356+t4444+t4597; + coeff_dxx_m2_p2_m1 = t4346+t4440+t4540; + coeff_dxx_m1_p2_m1 = t4361+t4441+t4535; + coeff_dxx_0_p2_m1 = t4486+t4529; + coeff_dxx_p1_p2_m1 = t4366+t4456+t4566; + coeff_dxx_p2_p2_m1 = t4349+t4460+t4591; + coeff_dxx_m2_m2_0 = t4375+t4358+t4503+t4600; + coeff_dxx_m1_m2_0 = t4484+t4557; + coeff_dxx_0_m2_0 = t4378+t4492; + coeff_dxx_p1_m2_0 = t4392+t4361+t4484; + coeff_dxx_p2_m2_0 = t4482+t4577; + coeff_dxx_m2_m1_0 = t4390+t4366+t4474; + coeff_dxx_m1_m1_0 = t4388+t4362+t4483; + coeff_dxx_0_m1_0 = t4365+t4493; + coeff_dxx_p1_m1_0 = t4483+t4582; + coeff_dxx_p2_m1_0 = t4389+t4366+t4473; + coeff_dxx_m2_0_0 = t4390+t4494; + coeff_dxx_m1_0_0 = t4388+t4496; + coeff_dxx_0_0_0 = t4372+RATIONAL(-13.0,98.0)+t4519; + coeff_dxx_p1_0_0 = t4392+t4496; + coeff_dxx_p2_0_0 = t4389+t4494; + coeff_dxx_m2_p1_0 = t4365+t4390+t4473; + coeff_dxx_m1_p1_0 = t4465+t4572; + coeff_dxx_0_p1_0 = t4366+t4493; + coeff_dxx_p1_p1_0 = t4362+t4392+t4465; + coeff_dxx_p2_p1_0 = t4389+t4365+t4474; + coeff_dxx_m2_p2_0 = t4479+t4600; + coeff_dxx_m1_p2_0 = t4480+t4570; + coeff_dxx_0_p2_0 = t4375+t4492; + coeff_dxx_p1_p2_0 = t4480+t4565; + coeff_dxx_p2_p2_0 = t4482+t4591; + coeff_dxx_m2_m2_p1 = t4358+t4462+t4581; + coeff_dxx_m1_m2_p1 = t4365+t4456+t4555; + coeff_dxx_0_m2_p1 = t4371+t4355+t4471; + coeff_dxx_p1_m2_p1 = t4361+t4438+t4538; + coeff_dxx_p2_m2_p1 = t4362+t4462+t4593; + coeff_dxx_m2_m1_p1 = t4356+t4445+t4581; + coeff_dxx_m1_m1_p1 = t4384+t4461+t4555; + coeff_dxx_0_m1_p1 = t4481+t4538; + coeff_dxx_p1_m1_p1 = t4351+t4443+t4559; + coeff_dxx_p2_m1_p1 = t4352+t4445+t4593; + coeff_dxx_m2_0_p1 = t4478+t4581; + coeff_dxx_m1_0_p1 = t4468+t4575; + coeff_dxx_0_0_p1 = t4371+t4491; + coeff_dxx_p1_0_p1 = t4470+t4561; + coeff_dxx_p2_0_p1 = t4478+t4593; + coeff_dxx_m2_p1_p1 = t4390+t4442+t4579; + coeff_dxx_m1_p1_p1 = t4353+t4454+t4575; + coeff_dxx_0_p1_p1 = t4481+t4537; + coeff_dxx_p1_p1_p1 = t4353+t4443+t4569; + coeff_dxx_p2_p1_p1 = t4389+t4442+t4564; + coeff_dxx_m2_p2_p1 = t4345+t4440+t4529; + coeff_dxx_m1_p2_p1 = t4366+t4447+t4555; + coeff_dxx_0_p2_p1 = t4486+t4540; + coeff_dxx_p1_p2_p1 = t4360+t4438+t4537; + coeff_dxx_p2_p2_p1 = t4389+t4383+t4378+t4436; + coeff_dxx_m2_m2_p2 = t4390+t4431+t4523; + coeff_dxx_m1_m2_p2 = t4363+t4449+t4557; + coeff_dxx_0_m2_p2 = t4469+t4515; + coeff_dxx_p1_m2_p2 = t4361+t4449+t4571; + coeff_dxx_p2_m2_p2 = t4389+t4433+t4523; + coeff_dxx_m2_m1_p2 = t4390+t4450+t4517; + coeff_dxx_m1_m1_p2 = t4384+t4371+t4388+t4434; + coeff_dxx_0_m1_p2 = t4487+t4536; + coeff_dxx_p1_m1_p2 = t4348+t4432+t4559; + coeff_dxx_p2_m1_p2 = t4389+t4457+t4517; + coeff_dxx_m2_0_p2 = t4390+t4364+t4477; + coeff_dxx_m1_0_p2 = t4476+t4587; + coeff_dxx_0_0_p2 = t4379+t4490; + coeff_dxx_p1_0_p2 = t4464+t4562; + coeff_dxx_p2_0_p2 = t4357+t4389+t4477; + coeff_dxx_m2_p1_p2 = t4390+t4446+t4522; + coeff_dxx_m1_p1_p2 = t4354+t4437+t4587; + coeff_dxx_0_p1_p2 = t4463+t4543; + coeff_dxx_p1_p1_p2 = t4354+t4432+t4569; + coeff_dxx_p2_p1_p2 = t4389+t4439+t4522; + coeff_dxx_m2_p2_p2 = t4390+t4455+t4530; + coeff_dxx_m1_p2_p2 = t4363+t4435+t4570; + coeff_dxx_0_p2_p2 = t4350+t4375+t4469; + coeff_dxx_p1_p2_p2 = t4359+t4435+t4565; + coeff_dxx_p2_p2_p2 = t4389+t4455+t4534; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-dxy.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-dxy.compute.c new file mode 100644 index 0000000..de01846 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-dxy.compute.c @@ -0,0 +1,505 @@ +fp t4693, + t4694, + t4823, + t4783, + t4614, + t4695, + t4683, + t4646, + t4822, + t4690, + t4641, + t4821, + t4682, + t4691, + t4820, + t4692, + t4681, + t4819, + t4686, + t4656, + t4688, + t4640, + t4818, + t4817, + t4631, + t4632, + t4816, + t4684, + t4627, + t4630, + t4815, + t4653, + t4814, + t4647, + t4813, + t4685, + t4651, + t4644, + t4812, + t4637, + t4811, + t4636, + t4810, + t4650, + t4809, + t4645, + t4808, + t4807, + t4806, + t4779, + t4603, + t4778, + t4622, + t4805, + t4649, + t4804, + t4629, + t4803, + t4680, + t4628, + t4802, + t4801, + t4767, + t4606, + t4752, + t4800, + t4602, + t4604, + t4799, + t4798, + t4797, + t4796, + t4633, + t4795, + t4626, + t4794, + t4793, + t4792, + t4746, + t4791, + t4762, + t4745, + t4654, + t4618, + t4790, + t4749, + t4789, + t4788, + t4787, + t4786, + t4754, + t4785, + t4784, + t4679, + t4782, + t4781, + t4780, + t4777, + t4776, + t4775, + t4642, + t4607, + t4774, + t4605, + t4773, + t4772, + t4613, + t4771, + t4615, + t4770, + t4769, + t4768, + t4766, + t4765, + t4617, + t4764, + t4611, + t4763, + t4610, + t4761, + t4760, + t4759, + t4758, + t4757, + t4756, + t4755, + t4753, + t4634, + t4751, + t4750, + t4748, + t4747, + t4744, + t4743, + t4742, + t4741, + t4740, + t4739, + t4738, + t4737, + t4736, + t4735, + t4734, + t4733, + t4732, + t4612, + t4731, + t4730, + t4729, + t4728, + t4727, + t4608, + t4726, + t4725, + t4620, + t4609, + t4724, + t4723, + t4619, + t4616, + t4722, + t4721, + t4720, + t4719, + t4718, + t4717, + t4716, + t4715, + t4714, + t4621, + t4713, + t4712, + t4711, + t4710, + t4709, + t4708, + t4707, + t4706, + t4705, + t4704, + t4703, + t4702, + t4701, + t4700, + t4699, + t4698, + t4697, + t4696, + t4655, + t4623; + t4693 = x*x; + t4694 = y*y; + t4823 = t4694+t4693; + t4783 = x*y; + t4614 = RATIONAL(-2.0,245.0)*t4783; + t4695 = z*z; + t4683 = RATIONAL(1.0,350.0); + t4646 = t4683*t4695; + t4822 = t4614+t4646; + t4690 = RATIONAL(-1.0,175.0); + t4641 = t4690*t4695; + t4821 = t4641+RATIONAL(-17.0,5250.0); + t4682 = RATIONAL(1.0,200.0); + t4691 = RATIONAL(-1.0,50.0); + t4820 = t4691*t4693+t4682*t4694; + t4692 = RATIONAL(1.0,50.0); + t4681 = RATIONAL(-1.0,200.0); + t4819 = t4681*t4694+t4692*t4693; + t4686 = RATIONAL(-2.0,175.0); + t4656 = t4686*x; + t4688 = RATIONAL(2.0,175.0); + t4640 = t4688*y; + t4818 = t4656+t4640; + t4817 = t4681*t4693+t4692*t4694; + t4631 = t4683*x; + t4632 = t4683*y; + t4816 = t4631+t4632; + t4684 = RATIONAL(-1.0,350.0); + t4627 = t4684*x; + t4630 = t4684*y; + t4815 = t4627+t4630; + t4653 = t4686*y; + t4814 = t4653+t4656; + t4647 = t4688*x; + t4813 = t4653+t4647; + t4685 = RATIONAL(1.0,175.0); + t4651 = t4685*x; + t4644 = t4685*y; + t4812 = t4651+t4644; + t4637 = RATIONAL(1.0,125.0)*z; + t4811 = t4656+t4637; + t4636 = t4690*x; + t4810 = t4644+t4636; + t4650 = t4690*y; + t4809 = t4650+t4636; + t4645 = t4684*t4695; + t4808 = t4645+RATIONAL(187.0,7000.0); + t4807 = t4645+RATIONAL(-47.0,5250.0); + t4806 = t4627+t4632; + t4779 = z*t4684; + t4603 = y*t4779; + t4778 = z*t4683; + t4622 = x*t4778; + t4805 = t4603+t4622; + t4649 = RATIONAL(-1.0,250.0)*z; + t4804 = t4649+t4644; + t4629 = RATIONAL(1.0,500.0)*z; + t4803 = t4629+t4632; + t4680 = RATIONAL(-1.0,700.0); + t4628 = t4680*t4695; + t4802 = t4628+RATIONAL(167.0,7000.0); + t4801 = t4647+t4640; + t4767 = t4823*RATIONAL(-1.0,100.0); + t4606 = RATIONAL(1.0,245.0)*t4783; + t4752 = t4606+t4767; + t4800 = RATIONAL(229.0,10500.0)+t4752; + t4602 = x*t4779; + t4604 = y*t4778; + t4799 = t4602+t4604; + t4798 = t4650+t4651; + t4797 = t4614+RATIONAL(-167.0,7000.0); + t4796 = t4630+t4631; + t4633 = RATIONAL(-1.0,500.0)*z; + t4795 = t4630+t4633; + t4626 = RATIONAL(-1.0,1000.0)*z; + t4794 = t4626+t4630; + t4793 = t4691*t4694+t4682*t4693; + t4792 = t4629+t4630; + t4746 = RATIONAL(137.0,5250.0)+t4767; + t4791 = t4606+RATIONAL(-1.0,1400.0)*t4695+t4746; + t4762 = t4823*RATIONAL(1.0,100.0); + t4745 = RATIONAL(-137.0,5250.0)+t4762; + t4654 = t4685*t4695; + t4618 = RATIONAL(4.0,245.0)*t4783; + t4790 = t4745+t4654+t4618; + t4749 = t4606+t4762; + t4789 = t4628+t4749+RATIONAL(-229.0,10500.0); + t4788 = RATIONAL(107.0,7000.0)+t4822; + t4787 = t4614+RATIONAL(-107.0,7000.0)+t4645; + t4786 = t4641+t4746+t4618; + t4754 = t4618+t4767; + t4785 = t4646+t4754+RATIONAL(47.0,5250.0); + t4784 = RATIONAL(1.0,1400.0)*t4695+t4606+t4745; + t4679 = RATIONAL(1.0,700.0); + t4782 = t4679*z; + t4781 = z*t4680; + t4780 = z*t4690; + t4777 = z*t4685; + t4776 = z*t4686; + t4775 = z*t4688; + t4642 = RATIONAL(1.0,250.0)*z; + t4607 = x*t4777; + t4774 = t4642+t4607; + t4605 = RATIONAL(2.0,245.0)*t4783; + t4773 = t4605+t4650; + t4772 = t4651+t4605; + t4613 = RATIONAL(-4.0,245.0)*t4783; + t4771 = t4653+t4613; + t4615 = x*t4780; + t4770 = t4649+t4615; + t4769 = t4656+t4613; + t4768 = t4649+t4607; + t4766 = t4605+t4644; + t4765 = t4613+t4647; + t4617 = x*t4775; + t4764 = t4617+t4613; + t4611 = y*t4780; + t4763 = t4611+t4605; + t4610 = x*t4776; + t4761 = t4610+t4613; + t4760 = t4605+t4636; + t4759 = t4605+t4622; + t4758 = t4642+t4615; + t4757 = t4602+t4605; + t4756 = t4613+t4640; + t4755 = t4618+t4762; + t4753 = RATIONAL(-187.0,7000.0)+t4822; + t4634 = t4679*t4695; + t4751 = t4604+t4634+t4622; + t4750 = t4602+t4603+t4634; + t4748 = t4614+t4810; + t4747 = t4614+t4798; + t4744 = t4753+t4812; + t4743 = t4747+t4802; + t4742 = t4755+t4814; + t4741 = t4748+t4808; + t4740 = t4615+t4611+t4787; + t4739 = t4747+t4808; + t4738 = t4753+t4809; + t4737 = t4654+RATIONAL(17.0,5250.0)+t4754; + t4736 = t4755+t4801; + t4735 = t4634+RATIONAL(-289.0,10500.0)+t4749; + t4734 = t4607+t4611+t4788; + t4733 = t4750+t4797; + t4732 = t4751+t4797; + t4612 = y*t4777; + t4731 = t4615+t4612+t4788; + t4730 = t4628+RATIONAL(289.0,10500.0)+t4752; + t4729 = t4607+t4612+t4787; + t4728 = t4748+t4802; + t4727 = t4789+t4799; + t4608 = y*t4776; + t4726 = t4608+t4617+t4786; + t4725 = t4751+t4800; + t4620 = y*t4781; + t4609 = x*t4782; + t4724 = t4620+t4609+t4784; + t4723 = t4750+t4800; + t4619 = x*t4781; + t4616 = y*t4782; + t4722 = t4619+t4616+t4784; + t4721 = t4619+t4620+t4791; + t4720 = t4608+t4610+t4790; + t4719 = t4609+t4616+t4791; + t4718 = t4785+t4818; + t4717 = t4736+t4807; + t4716 = t4742+t4807; + t4715 = t4789+t4805; + t4714 = t4785+t4813; + t4621 = y*t4775; + t4713 = t4621+t4610+t4786; + t4712 = t4621+t4617+t4790; + t4711 = t4633+t4743+t4799; + t4710 = t4629+t4728+t4799; + t4709 = t4629+t4743+t4805; + t4708 = t4642+t4740+t4812; + t4707 = t4642+t4734+t4798; + t4706 = t4649+t4740+t4809; + t4705 = t4651+t4729+t4804; + t4704 = t4642+t4731+t4810; + t4703 = t4636+t4734+t4804; + t4702 = t4629+t4733+t4812; + t4701 = t4649+t4731+t4798; + t4700 = t4629+t4732+t4809; + t4699 = t4633+t4733+t4809; + t4698 = t4633+t4728+t4805; + t4697 = t4633+t4732+t4812; + t4696 = t4642+t4729+t4809; + t4655 = RATIONAL(-1.0,125.0)*z; + t4623 = RATIONAL(1.0,1000.0)*z; + coeff_dxy_m2_m2_m2 = t4655+t4712+t4814; + coeff_dxy_m1_m2_m2 = t4701+t4820; + coeff_dxy_0_m2_m2 = t4647+t4761; + coeff_dxy_p1_m2_m2 = t4708+t4819; + coeff_dxy_p2_m2_m2 = t4640+t4726+t4811; + coeff_dxy_m2_m1_m2 = t4703+t4793; + coeff_dxy_m1_m1_m2 = t4633+t4723+t4816; + coeff_dxy_0_m1_m2 = t4615+t4772; + coeff_dxy_p1_m1_m2 = t4631+t4727+t4792; + coeff_dxy_p2_m1_m2 = t4696+t4817; + coeff_dxy_m2_0_m2 = t4608+t4756; + coeff_dxy_m1_0_m2 = t4644+t4763; + coeff_dxy_0_0_m2 = t4618; + coeff_dxy_p1_0_m2 = t4612+t4773; + coeff_dxy_p2_0_m2 = t4621+t4771; + coeff_dxy_m2_p1_m2 = t4708+t4817; + coeff_dxy_m1_p1_m2 = t4627+t4715+t4803; + coeff_dxy_0_p1_m2 = t4607+t4760; + coeff_dxy_p1_p1_m2 = t4627+t4725+t4795; + coeff_dxy_p2_p1_m2 = t4701+t4793; + coeff_dxy_m2_p2_m2 = t4637+t4713+t4813; + coeff_dxy_m1_p2_m2 = t4696+t4819; + coeff_dxy_0_p2_m2 = t4656+t4764; + coeff_dxy_p1_p2_m2 = t4703+t4820; + coeff_dxy_p2_p2_m2 = t4655+t4720+t4801; + coeff_dxy_m2_m2_m1 = t4612+t4716+t4768; + coeff_dxy_m1_m2_m1 = t4711+t4820; + coeff_dxy_0_m2_m1 = t4615+t4765; + coeff_dxy_p1_m2_m1 = t4702+t4819; + coeff_dxy_p2_m2_m1 = t4611+t4718+t4774; + coeff_dxy_m2_m1_m1 = t4698+t4793; + coeff_dxy_m1_m1_m1 = t4626+t4721+t4816; + coeff_dxy_0_m1_m1 = t4651+t4757; + coeff_dxy_p1_m1_m1 = t4623+t4722+t4796; + coeff_dxy_p2_m1_m1 = t4700+t4817; + coeff_dxy_m2_0_m1 = t4611+t4756; + coeff_dxy_m1_0_m1 = t4603+t4766; + coeff_dxy_0_0_m1 = t4618; + coeff_dxy_p1_0_m1 = t4604+t4773; + coeff_dxy_p2_0_m1 = t4612+t4771; + coeff_dxy_m2_p1_m1 = t4702+t4817; + coeff_dxy_m1_p1_m1 = t4623+t4724+t4806; + coeff_dxy_0_p1_m1 = t4636+t4759; + coeff_dxy_p1_p1_m1 = t4627+t4719+t4794; + coeff_dxy_p2_p1_m1 = t4711+t4793; + coeff_dxy_m2_p2_m1 = t4612+t4714+t4758; + coeff_dxy_m1_p2_m1 = t4700+t4819; + coeff_dxy_0_p2_m1 = t4607+t4769; + coeff_dxy_p1_p2_m1 = t4698+t4820; + coeff_dxy_p2_p2_m1 = t4611+t4717+t4770; + coeff_dxy_m2_m2_0 = t4742+t4821; + coeff_dxy_m1_m2_0 = t4739+t4820; + coeff_dxy_0_m2_0 = t4765; + coeff_dxy_p1_m2_0 = t4744+t4819; + coeff_dxy_p2_m2_0 = t4737+t4818; + coeff_dxy_m2_m1_0 = t4741+t4793; + coeff_dxy_m1_m1_0 = t4730+t4816; + coeff_dxy_0_m1_0 = t4772; + coeff_dxy_p1_m1_0 = t4735+t4796; + coeff_dxy_p2_m1_0 = t4738+t4817; + coeff_dxy_m2_0_0 = t4756; + coeff_dxy_m1_0_0 = t4766; + coeff_dxy_0_0_0 = t4618; + coeff_dxy_p1_0_0 = t4773; + coeff_dxy_p2_0_0 = t4771; + coeff_dxy_m2_p1_0 = t4744+t4817; + coeff_dxy_m1_p1_0 = t4735+t4806; + coeff_dxy_0_p1_0 = t4760; + coeff_dxy_p1_p1_0 = t4730+t4815; + coeff_dxy_p2_p1_0 = t4739+t4793; + coeff_dxy_m2_p2_0 = t4737+t4813; + coeff_dxy_m1_p2_0 = t4738+t4819; + coeff_dxy_0_p2_0 = t4769; + coeff_dxy_p1_p2_0 = t4741+t4820; + coeff_dxy_p2_p2_0 = t4736+t4821; + coeff_dxy_m2_m2_p1 = t4611+t4716+t4758; + coeff_dxy_m1_m2_p1 = t4709+t4820; + coeff_dxy_0_m2_p1 = t4607+t4765; + coeff_dxy_p1_m2_p1 = t4697+t4819; + coeff_dxy_p2_m2_p1 = t4612+t4718+t4770; + coeff_dxy_m2_m1_p1 = t4710+t4793; + coeff_dxy_m1_m1_p1 = t4623+t4719+t4816; + coeff_dxy_0_m1_p1 = t4651+t4759; + coeff_dxy_p1_m1_p1 = t4631+t4724+t4794; + coeff_dxy_p2_m1_p1 = t4699+t4817; + coeff_dxy_m2_0_p1 = t4612+t4756; + coeff_dxy_m1_0_p1 = t4604+t4766; + coeff_dxy_0_0_p1 = t4618; + coeff_dxy_p1_0_p1 = t4603+t4773; + coeff_dxy_p2_0_p1 = t4611+t4771; + coeff_dxy_m2_p1_p1 = t4697+t4817; + coeff_dxy_m1_p1_p1 = t4626+t4722+t4806; + coeff_dxy_0_p1_p1 = t4636+t4757; + coeff_dxy_p1_p1_p1 = t4623+t4721+t4815; + coeff_dxy_p2_p1_p1 = t4709+t4793; + coeff_dxy_m2_p2_p1 = t4611+t4714+t4768; + coeff_dxy_m1_p2_p1 = t4699+t4819; + coeff_dxy_0_p2_p1 = t4615+t4769; + coeff_dxy_p1_p2_p1 = t4710+t4820; + coeff_dxy_p2_p2_p1 = t4612+t4717+t4774; + coeff_dxy_m2_m2_p2 = t4653+t4720+t4811; + coeff_dxy_m1_m2_p2 = t4707+t4820; + coeff_dxy_0_m2_p2 = t4647+t4764; + coeff_dxy_p1_m2_p2 = t4705+t4819; + coeff_dxy_p2_m2_p2 = t4655+t4713+t4818; + coeff_dxy_m2_m1_p2 = t4704+t4793; + coeff_dxy_m1_m1_p2 = t4631+t4725+t4803; + coeff_dxy_0_m1_p2 = t4607+t4772; + coeff_dxy_p1_m1_p2 = t4631+t4715+t4795; + coeff_dxy_p2_m1_p2 = t4706+t4817; + coeff_dxy_m2_0_p2 = t4621+t4756; + coeff_dxy_m1_0_p2 = t4612+t4766; + coeff_dxy_0_0_p2 = t4618; + coeff_dxy_p1_0_p2 = t4650+t4763; + coeff_dxy_p2_0_p2 = t4608+t4771; + coeff_dxy_m2_p1_p2 = t4705+t4817; + coeff_dxy_m1_p1_p2 = t4633+t4727+t4806; + coeff_dxy_0_p1_p2 = t4615+t4760; + coeff_dxy_p1_p1_p2 = t4627+t4723+t4792; + coeff_dxy_p2_p1_p2 = t4707+t4793; + coeff_dxy_m2_p2_p2 = t4655+t4726+t4813; + coeff_dxy_m1_p2_p2 = t4706+t4819; + coeff_dxy_0_p2_p2 = t4656+t4761; + coeff_dxy_p1_p2_p2 = t4704+t4820; + coeff_dxy_p2_p2_p2 = t4637+t4712+t4801; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-dxz.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-dxz.compute.c new file mode 100644 index 0000000..d2f4701 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-dxz.compute.c @@ -0,0 +1,499 @@ +fp t4915, + t4917, + t5040, + t4906, + t4916, + t4863, + t5039, + t4880, + t4905, + t4849, + t5038, + t4908, + t4878, + t4877, + t5037, + t4910, + t4859, + t5036, + t4864, + t5035, + t5034, + t4903, + t4914, + t5033, + t5001, + t4842, + t4868, + t5032, + t4902, + t4853, + t5031, + t4907, + t4870, + t4912, + t4867, + t5030, + t4889, + t5029, + t4999, + t4833, + t4826, + t5028, + t4862, + t5027, + t5026, + t5025, + t4872, + t5024, + t4855, + t5023, + t4901, + t4852, + t5022, + t4879, + t4851, + t5021, + t5020, + t4904, + t4913, + t5019, + t4850, + t5018, + t5000, + t4832, + t4827, + t5017, + t4892, + t4873, + t5016, + t5015, + t4829, + t4841, + t5014, + t4831, + t4858, + t5013, + t5012, + t5011, + t4875, + t4840, + t5010, + t5009, + t4996, + t4838, + t4971, + t5008, + t5007, + t4857, + t4985, + t4824, + t4970, + t5006, + t5005, + t5004, + t5003, + t5002, + t4844, + t4998, + t4837, + t4997, + t4995, + t4839, + t4994, + t4993, + t4992, + t4836, + t4865, + t4991, + t4871, + t4990, + t4989, + t4830, + t4988, + t4834, + t4987, + t4986, + t4825, + t4984, + t4983, + t4982, + t4981, + t4980, + t4979, + t4978, + t4843, + t4977, + t4976, + t4975, + t4974, + t4973, + t4972, + t4969, + t4968, + t4828, + t4967, + t4966, + t4965, + t4964, + t4963, + t4835, + t4962, + t4961, + t4960, + t4959, + t4958, + t4957, + t4956, + t4955, + t4954, + t4953, + t4952, + t4951, + t4950, + t4949, + t4948, + t4947, + t4946, + t4945, + t4944, + t4943, + t4942, + t4941, + t4940, + t4939, + t4938, + t4937, + t4936, + t4935, + t4934, + t4933, + t4932, + t4931, + t4930, + t4929, + t4928, + t4927, + t4926, + t4925, + t4924, + t4923, + t4922, + t4921, + t4920, + t4919, + t4918, + t4848, + t4847; + t4915 = x*x; + t4917 = z*z; + t5040 = t4915+t4917; + t4906 = RATIONAL(-1.0,350.0); + t4916 = y*y; + t4863 = t4906*t4916; + t5039 = RATIONAL(-47.0,5250.0)+t4863; + t4880 = t4906*x; + t4905 = RATIONAL(1.0,350.0); + t4849 = t4905*z; + t5038 = t4880+t4849; + t4908 = RATIONAL(-2.0,175.0); + t4878 = t4908*z; + t4877 = t4908*x; + t5037 = t4878+t4877; + t4910 = RATIONAL(2.0,175.0); + t4859 = t4910*z; + t5036 = t4859+t4877; + t4864 = t4910*x; + t5035 = t4859+t4864; + t5034 = t4878+t4864; + t4903 = RATIONAL(-1.0,200.0); + t4914 = RATIONAL(1.0,50.0); + t5033 = t4903*t4915+t4914*t4917; + t5001 = x*z; + t4842 = RATIONAL(-2.0,245.0)*t5001; + t4868 = t4905*t4916; + t5032 = t4842+t4868; + t4902 = RATIONAL(-1.0,700.0); + t4853 = t4902*t4916; + t5031 = t4853+RATIONAL(-229.0,10500.0); + t4907 = RATIONAL(1.0,175.0); + t4870 = t4907*x; + t4912 = RATIONAL(-1.0,175.0); + t4867 = t4912*z; + t5030 = t4870+t4867; + t4889 = RATIONAL(137.0,5250.0); + t5029 = RATIONAL(-1.0,1400.0)*t4916+t4889; + t4999 = y*t4902; + t4833 = x*t4999; + t4826 = z*t4999; + t5028 = t4833+t4826; + t4862 = t4907*z; + t5027 = t4870+t4862; + t5026 = t4914*t4915+t4903*t4917; + t5025 = t4853+RATIONAL(289.0,10500.0); + t4872 = t4912*x; + t5024 = t4872+t4862; + t4855 = RATIONAL(-1.0,500.0)*y; + t5023 = t4855+t4862; + t4901 = RATIONAL(1.0,700.0); + t4852 = t4901*t4916; + t5022 = t4852+RATIONAL(-289.0,10500.0); + t4879 = t4906*z; + t4851 = t4905*x; + t5021 = t4879+t4851; + t5020 = t4872+t4867; + t4904 = RATIONAL(1.0,200.0); + t4913 = RATIONAL(-1.0,50.0); + t5019 = t4913*t4915+t4904*t4917; + t4850 = RATIONAL(1.0,500.0)*y; + t5018 = t4850+t4867; + t5000 = y*t4901; + t4832 = z*t5000; + t4827 = x*t5000; + t5017 = t4832+t4827; + t4892 = RATIONAL(-137.0,5250.0); + t4873 = t4907*t4916; + t5016 = t4892+t4873; + t5015 = t4852+RATIONAL(229.0,10500.0); + t4829 = y*t4864; + t4841 = y*t4859; + t5014 = t4829+t4841; + t4831 = y*t4877; + t4858 = RATIONAL(1.0,125.0)*y; + t5013 = t4831+t4858; + t5012 = t4863+t4842; + t5011 = t4913*t4917+t4904*t4915; + t4875 = RATIONAL(-1.0,125.0)*y; + t4840 = y*t4878; + t5010 = t4875+t4840; + t5009 = t4855+t4867; + t4996 = t5040*RATIONAL(1.0,100.0); + t4838 = RATIONAL(1.0,245.0)*t5001; + t4971 = t4838+t4996; + t5008 = t4971+t4892+RATIONAL(1.0,1400.0)*t4916; + t5007 = t4852+RATIONAL(-167.0,7000.0)+t4842; + t4857 = t4912*t4916; + t4985 = t5040*RATIONAL(-1.0,100.0); + t4824 = RATIONAL(4.0,245.0)*t5001; + t4970 = t4824+t4985; + t5006 = t4857+t4889+t4970; + t5005 = RATIONAL(-107.0,7000.0)+t5012; + t5004 = RATIONAL(107.0,7000.0)+t5032; + t5003 = RATIONAL(47.0,5250.0)+t4970+t4868; + t5002 = t4853+RATIONAL(167.0,7000.0)+t4842; + t4844 = RATIONAL(-4.0,245.0)*t5001; + t4998 = t4878+t4844; + t4837 = y*t4849; + t4997 = t4855+t4837; + t4995 = t4837+t4850; + t4839 = RATIONAL(2.0,245.0)*t5001; + t4994 = t4872+t4839; + t4993 = t4844+t4859; + t4992 = t4840+t4844; + t4836 = y*t4870; + t4865 = RATIONAL(1.0,250.0)*y; + t4991 = t4836+t4865; + t4871 = RATIONAL(-1.0,250.0)*y; + t4990 = t4871+t4836; + t4989 = t4862+t4839; + t4830 = y*t4867; + t4988 = t4830+t4844; + t4834 = y*t4879; + t4987 = t4834+t4855; + t4986 = t4870+t4839; + t4825 = y*t4872; + t4984 = t4825+t4865; + t4983 = t4864+t4844; + t4982 = t4877+t4844; + t4981 = t4871+t4825; + t4980 = t4836+t4844; + t4979 = t4834+t4850; + t4978 = t4839+t4867; + t4843 = y*t4862; + t4977 = t4843+t4844; + t4976 = t4825+t4844; + t4975 = RATIONAL(-187.0,7000.0)+t5032; + t4974 = t4838+t4985; + t4973 = RATIONAL(187.0,7000.0)+t5012; + t4972 = t4824+t4996; + t4969 = t4972+t5035; + t4968 = t4873+RATIONAL(17.0,5250.0)+t4970; + t4828 = y*t4851; + t4967 = t4834+t4828+t5002; + t4966 = t4843+t4836+t5005; + t4965 = t4975+t5033; + t4964 = t4971+t5021; + t4963 = t5004+t5024; + t4835 = y*t4880; + t4962 = t4835+t4837+t5002; + t4961 = t4972+t5037; + t4960 = t4975+t5026; + t4959 = t4830+t4825+t5005; + t4958 = t4879+t4880+t4974; + t4957 = t5004+t5030; + t4956 = t4857+RATIONAL(-17.0,5250.0)+t4972; + t4955 = t4973+t5019; + t4954 = t4851+t4849+t4974; + t4953 = t4837+t4828+t5007; + t4952 = t4973+t5011; + t4951 = t4834+t4835+t5007; + t4950 = t4971+t5038; + t4949 = t4826+t4827+t5008; + t4948 = t4954+t5029; + t4947 = t4958+t5029; + t4946 = t4964+t5031; + t4945 = t4833+t4832+t5008; + t4944 = t4969+t5039; + t4943 = t4958+t5015; + t4942 = t4961+t5016; + t4941 = t5006+t5036; + t4940 = t4961+t5039; + t4939 = t4836+t4830+t5003; + t4938 = t4954+t5015; + t4937 = t5006+t5034; + t4936 = t4843+t4825+t5003; + t4935 = t4950+t5031; + t4934 = t4969+t5016; + t4933 = t4872+t4953+t5018; + t4932 = t4872+t4967+t5023; + t4931 = t4865+t4966+t5020; + t4930 = t4870+t4967+t5018; + t4929 = t4870+t4962+t5009; + t4928 = t4830+t4963+t4990; + t4927 = t4850+t4962+t5024; + t4926 = t4830+t4957+t4991; + t4925 = t4865+t4959+t5027; + t4924 = t4843+t4957+t4981; + t4923 = t4871+t4966+t5027; + t4922 = t4872+t4951+t5009; + t4921 = t4871+t4959+t5020; + t4920 = t4870+t4953+t5023; + t4919 = t4843+t4963+t4984; + t4918 = t4850+t4951+t5027; + t4848 = RATIONAL(1.0,1000.0)*y; + t4847 = RATIONAL(-1.0,1000.0)*y; + coeff_dxz_m2_m2_m2 = t4875+t4942+t5014; + coeff_dxz_m1_m2_m2 = t4924+t5019; + coeff_dxz_0_m2_m2 = t4831+t4983; + coeff_dxz_p1_m2_m2 = t4925+t5026; + coeff_dxz_p2_m2_m2 = t4829+t4858+t4840+t4941; + coeff_dxz_m2_m1_m2 = t4843+t4940+t4990; + coeff_dxz_m1_m1_m2 = t4929+t5019; + coeff_dxz_0_m1_m2 = t4864+t4976; + coeff_dxz_p1_m1_m2 = t4918+t5026; + coeff_dxz_p2_m1_m2 = t4865+t4939+t5036; + coeff_dxz_m2_0_m2 = t4956+t5037; + coeff_dxz_m1_0_m2 = t4955+t5030; + coeff_dxz_0_0_m2 = t4983; + coeff_dxz_p1_0_m2 = t4960+t5027; + coeff_dxz_p2_0_m2 = t4968+t5036; + coeff_dxz_m2_p1_m2 = t4830+t4940+t4984; + coeff_dxz_m1_p1_m2 = t4930+t5019; + coeff_dxz_0_p1_m2 = t4864+t4980; + coeff_dxz_p1_p1_m2 = t4920+t5026; + coeff_dxz_p2_p1_m2 = t4871+t4936+t5036; + coeff_dxz_m2_p2_m2 = t4840+t4942+t5013; + coeff_dxz_m1_p2_m2 = t4926+t5019; + coeff_dxz_0_p2_m2 = t4829+t4983; + coeff_dxz_p1_p2_m2 = t4923+t5026; + coeff_dxz_p2_p2_m2 = t4841+t4831+t4875+t4941; + coeff_dxz_m2_m2_m1 = t4928+t5011; + coeff_dxz_m1_m2_m1 = t4835+t4938+t4987; + coeff_dxz_0_m2_m1 = t4825+t4986; + coeff_dxz_p1_m2_m1 = t4835+t4946+t4995; + coeff_dxz_p2_m2_m1 = t4931+t5033; + coeff_dxz_m2_m1_m1 = t4932+t5011; + coeff_dxz_m1_m1_m1 = t4847+t4948+t5028; + coeff_dxz_0_m1_m1 = t4835+t4986; + coeff_dxz_p1_m1_m1 = t4848+t4945+t5021; + coeff_dxz_p2_m1_m1 = t4933+t5033; + coeff_dxz_m2_0_m1 = t4952+t5024; + coeff_dxz_m1_0_m1 = t4954+t5025; + coeff_dxz_0_0_m1 = t4986; + coeff_dxz_p1_0_m1 = t4964+t5022; + coeff_dxz_p2_0_m1 = t4965+t5020; + coeff_dxz_m2_p1_m1 = t4927+t5011; + coeff_dxz_m1_p1_m1 = t4848+t4948+t5017; + coeff_dxz_0_p1_m1 = t4828+t4986; + coeff_dxz_p1_p1_m1 = t4847+t4949+t5021; + coeff_dxz_p2_p1_m1 = t4922+t5033; + coeff_dxz_m2_p2_m1 = t4919+t5011; + coeff_dxz_m1_p2_m1 = t4828+t4938+t4995; + coeff_dxz_0_p2_m1 = t4836+t4986; + coeff_dxz_p1_p2_m1 = t4828+t4946+t4987; + coeff_dxz_p2_p2_m1 = t4921+t5033; + coeff_dxz_m2_m2_0 = t4859+t4992; + coeff_dxz_m1_m2_0 = t4830+t4989; + coeff_dxz_0_m2_0 = t4824; + coeff_dxz_p1_m2_0 = t4843+t4978; + coeff_dxz_p2_m2_0 = t4841+t4998; + coeff_dxz_m2_m1_0 = t4859+t4988; + coeff_dxz_m1_m1_0 = t4834+t4989; + coeff_dxz_0_m1_0 = t4824; + coeff_dxz_p1_m1_0 = t4837+t4978; + coeff_dxz_p2_m1_0 = t4878+t4977; + coeff_dxz_m2_0_0 = t4993; + coeff_dxz_m1_0_0 = t4989; + coeff_dxz_0_0_0 = t4824; + coeff_dxz_p1_0_0 = t4978; + coeff_dxz_p2_0_0 = t4998; + coeff_dxz_m2_p1_0 = t4859+t4977; + coeff_dxz_m1_p1_0 = t4837+t4989; + coeff_dxz_0_p1_0 = t4824; + coeff_dxz_p1_p1_0 = t4834+t4978; + coeff_dxz_p2_p1_0 = t4878+t4988; + coeff_dxz_m2_p2_0 = t4841+t4993; + coeff_dxz_m1_p2_0 = t4843+t4989; + coeff_dxz_0_p2_0 = t4824; + coeff_dxz_p1_p2_0 = t4830+t4978; + coeff_dxz_p2_p2_0 = t4878+t4992; + coeff_dxz_m2_m2_p1 = t4925+t5033; + coeff_dxz_m1_m2_p1 = t4828+t4935+t4979; + coeff_dxz_0_m2_p1 = t4836+t4994; + coeff_dxz_p1_m2_p1 = t4828+t4943+t4997; + coeff_dxz_p2_m2_p1 = t4924+t5011; + coeff_dxz_m2_m1_p1 = t4918+t5033; + coeff_dxz_m1_m1_p1 = t4848+t4949+t5038; + coeff_dxz_0_m1_p1 = t4828+t4994; + coeff_dxz_p1_m1_p1 = t4847+t4947+t5017; + coeff_dxz_p2_m1_p1 = t4929+t5011; + coeff_dxz_m2_0_p1 = t4965+t5027; + coeff_dxz_m1_0_p1 = t4950+t5022; + coeff_dxz_0_0_p1 = t4994; + coeff_dxz_p1_0_p1 = t4958+t5025; + coeff_dxz_p2_0_p1 = t4952+t5030; + coeff_dxz_m2_p1_p1 = t4920+t5033; + coeff_dxz_m1_p1_p1 = t4847+t4945+t5038; + coeff_dxz_0_p1_p1 = t4835+t4994; + coeff_dxz_p1_p1_p1 = t4848+t4947+t5028; + coeff_dxz_p2_p1_p1 = t4930+t5011; + coeff_dxz_m2_p2_p1 = t4923+t5033; + coeff_dxz_m1_p2_p1 = t4835+t4935+t4997; + coeff_dxz_0_p2_p1 = t4825+t4994; + coeff_dxz_p1_p2_p1 = t4835+t4943+t4979; + coeff_dxz_p2_p2_p1 = t4926+t5011; + coeff_dxz_m2_m2_p2 = t4841+t4937+t5013; + coeff_dxz_m1_m2_p2 = t4931+t5026; + coeff_dxz_0_m2_p2 = t4829+t4982; + coeff_dxz_p1_m2_p2 = t4928+t5019; + coeff_dxz_p2_m2_p2 = t4831+t4934+t5010; + coeff_dxz_m2_m1_p2 = t4865+t4936+t5034; + coeff_dxz_m1_m1_p2 = t4933+t5026; + coeff_dxz_0_m1_p2 = t4877+t4980; + coeff_dxz_p1_m1_p2 = t4932+t5019; + coeff_dxz_p2_m1_p2 = t4830+t4944+t4981; + coeff_dxz_m2_0_p2 = t4968+t5034; + coeff_dxz_m1_0_p2 = t4960+t5020; + coeff_dxz_0_0_p2 = t4982; + coeff_dxz_p1_0_p2 = t4955+t5024; + coeff_dxz_p2_0_p2 = t4956+t5035; + coeff_dxz_m2_p1_p2 = t4871+t4939+t5034; + coeff_dxz_m1_p1_p2 = t4922+t5026; + coeff_dxz_0_p1_p2 = t4877+t4976; + coeff_dxz_p1_p1_p2 = t4927+t5019; + coeff_dxz_p2_p1_p2 = t4843+t4944+t4991; + coeff_dxz_m2_p2_p2 = t4829+t4937+t5010; + coeff_dxz_m1_p2_p2 = t4921+t5026; + coeff_dxz_0_p2_p2 = t4831+t4982; + coeff_dxz_p1_p2_p2 = t4919+t5019; + coeff_dxz_p2_p2_p2 = t4858+t4934+t5014; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-dy.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-dy.compute.c new file mode 100644 index 0000000..1359ff7 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-dy.compute.c @@ -0,0 +1,981 @@ +fp t3532, + t3699, + t3382, + t3708, + t3414, + t3529, + t3704, + t3419, + t3352, + t3845, + t3546, + t3705, + t3415, + t3530, + t3696, + t3391, + t3353, + t3667, + t3844, + t3411, + t3362, + t3686, + t3843, + t3558, + t3483, + t3401, + t3504, + t3842, + t3545, + t3706, + t3375, + t3533, + t3556, + t3701, + t3386, + t3841, + t3523, + t3461, + t3380, + t3496, + t3437, + t3840, + t3503, + t3431, + t3555, + t3544, + t3557, + t3468, + t3688, + t3654, + t3472, + t3405, + t3839, + t3683, + t3525, + t3838, + t3499, + t3837, + t3470, + t3836, + t3698, + t3351, + t3357, + t3835, + t3394, + t3350, + t3396, + t3834, + t3490, + t3522, + t3482, + t3833, + t3537, + t3398, + t3554, + t3527, + t3477, + t3832, + t3378, + t3831, + t3680, + t3830, + t3458, + t3376, + t3502, + t3829, + t3349, + t3373, + t3828, + t3542, + t3393, + t3827, + t3366, + t3402, + t3826, + t3492, + t3825, + t3703, + t3400, + t3824, + t3439, + t3823, + t3500, + t3822, + t3700, + t3385, + t3821, + t3526, + t3469, + t3820, + t3379, + t3407, + t3819, + t3818, + t3474, + t3682, + t3498, + t3652, + t3697, + t3517, + t3817, + t3497, + t3467, + t3361, + t3816, + t3418, + t3429, + t3815, + t3814, + t3510, + t3377, + t3813, + t3416, + t3812, + t3811, + t3810, + t3479, + t3809, + t3493, + t3808, + t3807, + t3475, + t3389, + t3501, + t3438, + t3806, + t3805, + t3804, + t3553, + t3803, + t3442, + t3802, + t3488, + t3524, + t3801, + t3800, + t3702, + t3368, + t3799, + t3798, + t3797, + t3796, + t3795, + t3435, + t3794, + t3793, + t3476, + t3365, + t3792, + t3791, + t3541, + t3790, + t3789, + t3788, + t3358, + t3787, + t3420, + t3481, + t3786, + t3509, + t3785, + t3484, + t3784, + t3783, + t3506, + t3782, + t3781, + t3346, + t3780, + t3779, + t3778, + t3777, + t3776, + t3395, + t3775, + t3774, + t3440, + t3773, + t3693, + t3772, + t3771, + t3770, + t3495, + t3769, + t3397, + t3707, + t3355, + t3677, + t3427, + t3653, + t3768, + t3485, + t3665, + t3767, + t3766, + t3399, + t3765, + t3494, + t3764, + t3548, + t3763, + t3422, + t3762, + t3761, + t3432, + t3656, + t3518, + t3359, + t3369, + t3760, + t3356, + t3759, + t3758, + t3757, + t3658, + t3756, + t3755, + t3512, + t3754, + t3753, + t3514, + t3752, + t3751, + t3750, + t3749, + t3748, + t3747, + t3746, + t3745, + t3451, + t3404, + t3744, + t3743, + t3511, + t3742, + t3741, + t3740, + t3387, + t3739, + t3738, + t3737, + t3406, + t3736, + t3735, + t3521, + t3734, + t3413, + t3733, + t3732, + t3731, + t3730, + t3729, + t3728, + t3513, + t3727, + t3726, + t3725, + t3724, + t3723, + t3722, + t3721, + t3720, + t3719, + t3443, + t3718, + t3717, + t3716, + t3715, + t3714, + t3547, + t3713, + t3712, + t3711, + t3710, + t3417, + t3709, + t3695, + t3694, + t3692, + t3691, + t3689, + t3347, + t3687, + t3685, + t3684, + t3348, + t3681, + t3678, + t3676, + t3675, + t3674, + t3673, + t3552, + t3487, + t3672, + t3671, + t3670, + t3669, + t3668, + t3666, + t3664, + t3663, + t3662, + t3661, + t3660, + t3659, + t3657, + t3655, + t3651, + t3650, + t3649, + t3648, + t3647, + t3646, + t3489, + t3645, + t3454, + t3644, + t3643, + t3642, + t3641, + t3640, + t3639, + t3638, + t3637, + t3636, + t3635, + t3634, + t3633, + t3632, + t3486, + t3631, + t3630, + t3629, + t3628, + t3627, + t3626, + t3625, + t3624, + t3623, + t3622, + t3621, + t3620, + t3619, + t3618, + t3617, + t3616, + t3615, + t3614, + t3613, + t3612, + t3611, + t3610, + t3609, + t3608, + t3515, + t3607, + t3606, + t3605, + t3604, + t3551, + t3603, + t3602, + t3508, + t3601, + t3600, + t3599, + t3598, + t3597, + t3596, + t3595, + t3594, + t3593, + t3592, + t3591, + t3531, + t3590, + t3589, + t3588, + t3587, + t3538, + t3586, + t3585, + t3584, + t3583, + t3582, + t3581, + t3580, + t3579, + t3578, + t3577, + t3576, + t3575, + t3574, + t3573, + t3572, + t3571, + t3570, + t3569, + t3568, + t3567, + t3566, + t3565, + t3564, + t3563, + t3562, + t3408, + t3360; + t3532 = RATIONAL(1.0,175.0); + t3699 = y*t3532; + t3382 = x*t3699; + t3708 = x*z; + t3414 = RATIONAL(-1.0,500.0)*t3708; + t3529 = RATIONAL(1.0,350.0); + t3704 = y*t3529; + t3419 = x*t3704; + t3352 = z*t3419; + t3845 = t3382+t3352+t3414; + t3546 = RATIONAL(-1.0,175.0); + t3705 = t3546*y; + t3415 = z*t3705; + t3530 = RATIONAL(-1.0,350.0); + t3696 = y*t3530; + t3391 = x*t3696; + t3353 = z*t3391; + t3667 = t3415+t3353; + t3844 = t3414+t3667; + t3411 = RATIONAL(1.0,500.0)*t3708; + t3362 = z*t3699; + t3686 = t3352+t3362; + t3843 = t3411+t3686; + t3558 = z*z; + t3483 = t3529*t3558; + t3401 = x*t3483; + t3504 = RATIONAL(47.0,5250.0); + t3842 = t3401+t3504*x; + t3545 = RATIONAL(1.0,245.0); + t3706 = y*t3558; + t3375 = t3545*t3706; + t3533 = RATIONAL(-2.0,245.0); + t3556 = x*x; + t3701 = y*t3556; + t3386 = t3533*t3701; + t3841 = t3375+t3386; + t3523 = RATIONAL(-1.0,700.0); + t3461 = t3523*t3558; + t3380 = x*t3461; + t3496 = RATIONAL(167.0,7000.0); + t3437 = t3496*x; + t3840 = t3380+t3437; + t3503 = RATIONAL(-137.0,5250.0); + t3431 = t3503*x; + t3555 = t3556*x; + t3544 = RATIONAL(1.0,300.0); + t3557 = y*y; + t3468 = RATIONAL(1.0,100.0)*t3557; + t3688 = t3544*t3555+x*t3468; + t3654 = t3431+t3688; + t3472 = t3532*t3558; + t3405 = x*t3472; + t3839 = t3654+t3405; + t3683 = t3557*RATIONAL(1.0,200.0); + t3525 = RATIONAL(-1.0,150.0); + t3838 = t3525*t3555+x*t3683; + t3499 = RATIONAL(-187.0,7000.0); + t3837 = t3499*x+t3401; + t3470 = t3532*t3556; + t3836 = t3468+t3470; + t3698 = y*t3708; + t3351 = t3523*t3698; + t3357 = RATIONAL(1.0,1000.0)*t3708; + t3835 = t3351+t3357; + t3394 = x*t3705; + t3350 = z*t3394; + t3396 = RATIONAL(-1.0,250.0)*t3708; + t3834 = t3350+t3396; + t3490 = RATIONAL(1.0,50.0)*t3557; + t3522 = RATIONAL(1.0,700.0); + t3482 = t3522*t3558; + t3833 = t3490+t3482; + t3537 = RATIONAL(2.0,245.0); + t3398 = t3537*t3706; + t3554 = y*t3557; + t3527 = RATIONAL(1.0,150.0); + t3477 = t3527*t3554; + t3832 = t3398+t3477; + t3378 = RATIONAL(191.0,14700.0)*y; + t3831 = RATIONAL(-17.0,2100.0)+t3378; + t3680 = t3557*RATIONAL(-1.0,200.0); + t3830 = x*t3680+t3527*t3555; + t3458 = t3530*t3558; + t3376 = x*t3458; + t3502 = RATIONAL(187.0,7000.0); + t3829 = t3502*x+t3376; + t3349 = x*t3362; + t3373 = RATIONAL(1.0,250.0)*t3708; + t3828 = t3349+t3373; + t3542 = RATIONAL(-1.0,245.0); + t3393 = t3542*t3701; + t3827 = t3393+t3490; + t3366 = RATIONAL(311.0,14700.0)*y; + t3402 = t3533*t3706; + t3826 = t3366+t3402; + t3492 = RATIONAL(-229.0,10500.0); + t3825 = t3492*z+t3393; + t3703 = y*RATIONAL(-2.0,175.0); + t3400 = x*t3703; + t3824 = t3400+t3373; + t3439 = RATIONAL(166.0,3675.0)*y; + t3823 = RATIONAL(-17.0,525.0)+t3439; + t3500 = RATIONAL(-107.0,7000.0); + t3822 = t3500*x+t3376; + t3700 = y*RATIONAL(1.0,490.0); + t3385 = t3558*t3700; + t3821 = t3385+t3482; + t3526 = RATIONAL(-1.0,300.0); + t3469 = t3526*y; + t3820 = t3469+t3402; + t3379 = RATIONAL(-529.0,14700.0)*y; + t3407 = t3537*t3701; + t3819 = t3379+t3407; + t3818 = t3469+t3386; + t3474 = RATIONAL(-1.0,100.0)*t3557; + t3682 = x*t3474+t3526*t3555; + t3498 = RATIONAL(137.0,5250.0); + t3652 = t3498*x+t3682; + t3697 = x*t3558; + t3517 = RATIONAL(-1.0,1400.0); + t3817 = t3652+t3517*t3697; + t3497 = RATIONAL(107.0,7000.0); + t3467 = t3529*t3556; + t3361 = z*t3467; + t3816 = t3497*z+t3361; + t3418 = x*t3482; + t3429 = RATIONAL(211.0,3675.0)*y; + t3815 = t3418+t3429; + t3814 = t3394+t3414; + t3510 = RATIONAL(19.0,2100.0); + t3377 = RATIONAL(-169.0,14700.0)*y; + t3813 = t3510+t3377; + t3416 = t3545*t3701; + t3812 = t3402+t3416; + t3811 = t3401+t3497*x; + t3810 = t3393+t3477; + t3479 = t3546*t3556; + t3809 = RATIONAL(11.0,420.0)+t3479; + t3493 = RATIONAL(229.0,10500.0); + t3808 = t3493*z+t3429; + t3807 = t3492*x+t3429; + t3475 = t3522*t3556; + t3389 = z*t3475; + t3501 = RATIONAL(-167.0,7000.0); + t3438 = t3501*z; + t3806 = t3389+t3438; + t3805 = RATIONAL(17.0,2100.0)+t3378; + t3804 = t3499*z+t3361; + t3553 = t3558*z; + t3803 = z*t3680+t3527*t3553; + t3442 = t3501*x; + t3802 = t3418+t3442; + t3488 = RATIONAL(-1.0,50.0)*t3557; + t3524 = RATIONAL(1.0,600.0); + t3801 = t3524*t3553+z*t3488; + t3800 = t3414+t3362; + t3702 = y*RATIONAL(2.0,175.0); + t3368 = x*t3702; + t3799 = t3368+t3396; + t3798 = t3474+t3472; + t3797 = t3402+RATIONAL(431.0,14700.0)*y; + t3796 = t3504*z+t3361; + t3795 = t3411+t3415; + t3435 = RATIONAL(151.0,3675.0)*y; + t3794 = t3435+t3416; + t3793 = t3488+t3461; + t3476 = t3546*t3558; + t3365 = x*t3476; + t3792 = t3652+t3365; + t3791 = t3475+t3490; + t3541 = RATIONAL(-1.0,600.0); + t3790 = x*t3490+t3541*t3555; + t3789 = z*t3683+t3525*t3553; + t3788 = t3407+t3477; + t3358 = RATIONAL(-1.0,1000.0)*t3708; + t3787 = t3358+t3351; + t3420 = t3556*t3700; + t3481 = t3523*t3556; + t3786 = t3420+t3481; + t3509 = RATIONAL(-19.0,2100.0); + t3785 = t3509+t3377; + t3484 = t3530*t3556; + t3784 = t3484+t3468; + t3783 = t3468+t3472; + t3506 = RATIONAL(-47.0,5250.0); + t3782 = t3376+t3506*x; + t3781 = RATIONAL(136.0,3675.0)*y+t3416; + t3346 = t3522*t3698; + t3780 = t3346+t3357; + t3779 = t3474+t3476; + t3778 = t3541*t3553+z*t3490; + t3777 = t3382+t3411; + t3776 = t3524*t3555+x*t3488; + t3395 = z*t3484; + t3775 = t3395+t3502*z; + t3774 = t3398+t3472; + t3440 = t3500*z; + t3773 = t3440+t3395; + t3693 = z*t3468+t3544*t3553; + t3772 = t3693+t3385; + t3771 = t3420+t3475; + t3770 = t3358+t3346; + t3495 = RATIONAL(-289.0,10500.0); + t3769 = t3418+t3495*x+t3688; + t3397 = z*t3704; + t3707 = z*t3556; + t3355 = t3517*t3707; + t3677 = z*t3474+t3526*t3553; + t3427 = t3498*z; + t3653 = t3427+t3677; + t3768 = t3397+t3355+t3653; + t3485 = RATIONAL(1.0,25.0)*t3554; + t3665 = t3485+t3386; + t3767 = RATIONAL(-33.0,490.0)*y+t3665+t3402; + t3766 = t3420+t3493*x+t3682; + t3399 = z*t3703; + t3765 = t3399+t3779; + t3494 = RATIONAL(289.0,10500.0); + t3764 = t3380+t3682+t3494*x; + t3548 = RATIONAL(1.0,42.0); + t3763 = t3548+t3488+t3481; + t3422 = t3496*z; + t3762 = t3422+t3801; + t3761 = t3442+t3790; + t3432 = t3503*z; + t3656 = t3432+t3693; + t3518 = RATIONAL(1.0,1400.0); + t3359 = t3518*t3707; + t3369 = z*t3696; + t3760 = t3656+t3359+t3369; + t3356 = t3518*t3697; + t3759 = t3356+t3419+t3654; + t3758 = t3397+t3793; + t3757 = t3391+t3817; + t3658 = t3485+t3375; + t3756 = RATIONAL(-57.0,490.0)*y+t3416+t3658; + t3755 = t3775+t3801; + t3512 = RATIONAL(29.0,2100.0); + t3754 = t3512+t3476+t3784; + t3753 = t3790+t3837; + t3514 = RATIONAL(-37.0,1050.0); + t3752 = t3514+t3467+t3833; + t3751 = t3509+t3458+t3836; + t3750 = t3776+t3811; + t3749 = t3776+t3829; + t3748 = RATIONAL(17.0,525.0)+t3439+t3786; + t3747 = t3349+t3682+t3842; + t3746 = t3510+t3474+t3483+t3479; + t3745 = t3526+t3479+t3783; + t3451 = t3506*z; + t3404 = z*t3702; + t3744 = t3693+t3451+t3404+t3395; + t3743 = t3476+t3526+t3836; + t3511 = RATIONAL(-29.0,2100.0); + t3742 = t3511+t3467+t3798; + t3741 = t3544+t3479+t3798; + t3740 = t3790+t3822; + t3387 = z*t3479; + t3739 = t3387+t3427+t3819; + t3738 = t3350+t3688+t3782; + t3737 = t3811+t3838; + t3406 = z*t3470; + t3736 = t3432+t3406+t3819; + t3735 = t3802+t3830; + t3521 = RATIONAL(-11.0,420.0); + t3734 = t3521+t3470+t3783; + t3413 = z*t3481; + t3733 = t3413+t3762; + t3732 = t3803+t3806; + t3731 = t3822+t3830; + t3730 = t3803+t3804; + t3729 = t3422+t3413+t3789; + t3728 = t3774+t3785; + t3513 = RATIONAL(37.0,1050.0); + t3727 = t3484+t3513+t3793; + t3726 = t3776+t3840; + t3725 = t3778+t3804; + t3724 = t3544+t3470+t3779; + t3723 = t3418+t3761; + t3722 = t3394+t3353+t3411+t3840; + t3721 = t3677+t3399+t3796; + t3720 = t3775+t3789; + t3719 = t3778+t3806; + t3443 = RATIONAL(256.0,3675.0)*y; + t3718 = t3443+t3801+t3816; + t3717 = t3396+t3740; + t3716 = t3373+t3750; + t3715 = t3396+t3750; + t3714 = t3373+t3740; + t3547 = RATIONAL(-1.0,42.0); + t3713 = t3484+t3547+t3369+t3833; + t3712 = t3391+t3483+t3763; + t3711 = t3547+t3458+t3419+t3791; + t3710 = t3548+t3467+t3758; + t3417 = t3542*t3706; + t3709 = t3377+t3417+t3789+t3816; + t3695 = t3483+t3417; + t3694 = t3398+t3485; + t3692 = t3349+t3394; + t3691 = t3468+t3477; + t3689 = t3368+t3362; + t3347 = z*t3400; + t3687 = t3400+t3347; + t3685 = t3474+t3477; + t3684 = t3415+t3352; + t3348 = z*t3368; + t3681 = t3400+t3348; + t3678 = t3484+t3393; + t3676 = t3382+t3353; + t3675 = t3400+t3362; + t3674 = t3349+t3382; + t3673 = t3394+t3352; + t3552 = RATIONAL(-2.0,75.0); + t3487 = t3552*t3554; + t3672 = t3487+t3488; + t3671 = t3382+t3350; + t3670 = t3393+t3467; + t3669 = t3487+t3490; + t3668 = t3415+t3368; + t3666 = t3350+t3394; + t3664 = t3348+t3368; + t3663 = t3485+RATIONAL(-9.0,98.0)*y; + t3662 = t3458+t3417; + t3661 = t3362+t3353; + t3660 = t3484+t3487; + t3659 = t3400+t3415; + t3657 = t3395+t3670; + t3655 = t3389+t3670; + t3651 = t3380+t3662; + t3650 = t3349+t3663; + t3649 = t3350+t3663; + t3648 = t3688+t3788; + t3647 = t3407+t3470+t3691; + t3646 = t3810+t3830; + t3489 = RATIONAL(-1.0,10.0)*y; + t3645 = t3398+t3489+t3665; + t3454 = RATIONAL(-61.0,490.0)*y; + t3644 = t3454+t3407+t3658; + t3643 = t3682+t3788; + t3642 = t3693+t3832; + t3641 = t3407+t3485+t3402+t3489; + t3640 = t3483+t3375+t3669; + t3639 = t3470+t3386+t3685; + t3638 = t3677+t3832; + t3637 = t3454+t3416+t3694; + t3636 = t3487+t3385+t3677; + t3635 = t3487+t3420+t3688; + t3634 = t3810+t3838; + t3633 = t3487+t3417+t3778; + t3632 = t3662+t3669; + t3486 = RATIONAL(4.0,75.0)*y; + t3631 = t3483+t3486+t3660; + t3630 = t3479+t3386+t3691; + t3629 = t3375+t3458+t3672; + t3628 = t3487+t3772; + t3627 = t3669+t3821; + t3626 = t3382+t3756; + t3625 = t3404+t3767; + t3624 = t3650+t3812; + t3623 = t3415+t3662+t3773; + t3622 = t3649+t3812; + t3621 = t3487+t3413+t3353+t3815; + t3620 = t3399+t3767; + t3619 = t3650+t3841; + t3618 = t3649+t3841; + t3617 = t3394+t3756; + t3616 = t3415+t3670+t3695; + t3615 = t3642+t3765; + t3614 = t3362+t3685+t3695+t3803; + t3613 = t3369+t3636+t3793; + t3612 = t3382+t3634+t3784; + t3611 = t3391+t3635+t3791; + t3610 = t3394+t3646+t3784; + t3609 = t3404+t3638+t3779; + t3608 = t3513+t3435+t3629+t3786; + t3515 = RATIONAL(-17.0,5250.0); + t3607 = t3515*x+t3365+t3648+t3820; + t3606 = t3435+t3514+t3640+t3771; + t3605 = t3634+t3826+t3829; + t3604 = t3389+t3495*z+t3628+t3794; + t3551 = RATIONAL(2.0,75.0); + t3603 = t3551+t3486+t3629+t3670; + t3602 = t3511+t3366+t3639+t3695; + t3508 = RATIONAL(17.0,5250.0); + t3601 = t3508*z+t3406+t3638+t3818; + t3600 = t3552+t3486+t3416+t3467+t3632; + t3599 = t3494*z+t3413+t3636+t3794; + t3598 = t3512+t3366+t3630+t3662; + t3597 = t3552+t3375+t3631+t3827; + t3596 = t3551+t3488+t3416+t3417+t3631; + t3595 = t3646+t3826+t3837; + t3594 = t3508*x+t3405+t3643+t3820; + t3593 = t3387+t3515*z+t3642+t3818; + t3592 = t3407+t3479+t3614+t3773+t3813; + t3591 = t3438+t3614+t3655+t3831; + t3531 = RATIONAL(-8.0,525.0); + t3590 = t3443+t3531+t3623+t3660+t3778+t3827; + t3589 = t3432+t3359+t3628+t3748+t3758; + t3588 = t3610+t3662+t3802+t3805; + t3587 = t3437+t3612+t3651+t3805; + t3538 = RATIONAL(8.0,525.0); + t3586 = t3488+t3443+t3483+t3538+t3440+t3362+t3633+t3657; + t3585 = t3413+t3352+t3429+t3628+t3726+t3825; + t3584 = t3350+t3643+t3709+t3842; + t3583 = t3417+t3621+t3762+t3766; + t3582 = t3612+t3728+t3811; + t3581 = t3397+t3547+t3389+t3627+t3677+t3678+t3808; + t3580 = t3379+t3521+t3368+t3647+t3774+t3839; + t3579 = t3623+t3647+t3785+t3803; + t3578 = t3451+t3615+t3657+t3813; + t3577 = t3538+t3616+t3672+t3718; + t3576 = t3356+t3431+t3611+t3821+t3823; + t3575 = t3547+t3611+t3651+t3807; + t3574 = t3548+t3613+t3655+t3808; + t3573 = t3355+t3427+t3613+t3748; + t3572 = t3610+t3728+t3822; + t3571 = t3349+t3648+t3709+t3782; + t3570 = t3609+t3739+t3809; + t3569 = t3419+t3627+t3771+t3817+t3823; + t3568 = t3380+t3419+t3635+t3695+t3763+t3807; + t3567 = t3347+t3642+t3736+t3792; + t3566 = t3609+t3670+t3796+t3813; + t3565 = t3352+t3633+t3766+t3806+t3815; + t3564 = t3531+t3362+t3632+t3678+t3718; + t3563 = t3621+t3761+t3772+t3825; + t3562 = t3616+t3685+t3729+t3831; + t3408 = RATIONAL(-1.0,125.0)*t3708; + t3360 = RATIONAL(1.0,125.0)*t3708; + coeff_dy_m2_m2_m2 = t3408+t3615+t3681+t3736+t3809+t3839; + coeff_dy_m1_m2_m2 = t3578+t3396+t3692+t3737; + coeff_dy_0_m2_m2 = t3399+t3593+t3724; + coeff_dy_p1_m2_m2 = t3373+t3578+t3671+t3731; + coeff_dy_p2_m2_m2 = t3567+t3368+t3360+t3765+t3809; + coeff_dy_m2_m1_m2 = t3564+t3671+t3715; + coeff_dy_m1_m1_m2 = t3583+t3711+t3800; + coeff_dy_0_m1_m2 = t3362+t3600+t3755; + coeff_dy_p1_m1_m2 = t3575+t3733+t3843; + coeff_dy_p2_m1_m2 = t3564+t3692+t3714; + coeff_dy_m2_0_m2 = t3347+t3368+t3625; + coeff_dy_m1_0_m2 = t3404+t3382+t3622; + coeff_dy_0_0_m2 = t3404+t3641; + coeff_dy_p1_0_m2 = t3394+t3404+t3624; + coeff_dy_p2_0_m2 = t3625+t3681; + coeff_dy_m2_p1_m2 = t3586+t3671+t3714; + coeff_dy_m1_p1_m2 = t3411+t3568+t3661+t3719; + coeff_dy_0_p1_m2 = t3362+t3596+t3725; + coeff_dy_p1_p1_m2 = t3565+t3712+t3800; + coeff_dy_p2_p1_m2 = t3586+t3692+t3715; + coeff_dy_m2_p2_m2 = t3638+t3399+t3360+t3681+t3734+t3739+t3792; + coeff_dy_m1_p2_m2 = t3572+t3721+t3828; + coeff_dy_0_p2_m2 = t3399+t3601+t3745; + coeff_dy_p1_p2_m2 = t3582+t3721+t3834; + coeff_dy_p2_p2_m2 = t3347+t3580+t3399+t3387+t3408+t3653; + coeff_dy_m2_m2_m1 = t3571+t3396+t3659+t3746; + coeff_dy_m1_m2_m1 = t3414+t3562+t3673+t3838+t3840; + coeff_dy_0_m2_m1 = t3415+t3602+t3720; + coeff_dy_p1_m2_m1 = t3411+t3562+t3676+t3735; + coeff_dy_p2_m2_m1 = t3584+t3373+t3668+t3746; + coeff_dy_m2_m1_m1 = t3581+t3414+t3676+t3726; + coeff_dy_m1_m1_m1 = t3569+t3768+t3787; + coeff_dy_0_m1_m1 = t3397+t3599+t3752; + coeff_dy_p1_m1_m1 = t3576+t3768+t3780; + coeff_dy_p2_m1_m1 = t3411+t3581+t3673+t3723; + coeff_dy_m2_0_m1 = t3618+t3689; + coeff_dy_m1_0_m1 = t3626+t3661; + coeff_dy_0_0_m1 = t3362+t3644; + coeff_dy_p1_0_m1 = t3617+t3686; + coeff_dy_p2_0_m1 = t3619+t3675; + coeff_dy_m2_p1_m1 = t3563+t3710+t3777; + coeff_dy_m1_p1_m1 = t3589+t3759+t3835; + coeff_dy_0_p1_m1 = t3397+t3604+t3727; + coeff_dy_p1_p1_m1 = t3589+t3757+t3770; + coeff_dy_p2_p1_m1 = t3585+t3710+t3814; + coeff_dy_m2_p2_m1 = t3579+t3747+t3824; + coeff_dy_m1_p2_m1 = t3411+t3588+t3684+t3732; + coeff_dy_0_p2_m1 = t3415+t3598+t3730; + coeff_dy_p1_p2_m1 = t3587+t3732+t3844; + coeff_dy_p2_p2_m1 = t3579+t3738+t3799; + coeff_dy_m2_m2_0 = t3400+t3607+t3741; + coeff_dy_m1_m2_0 = t3394+t3605+t3742; + coeff_dy_0_m2_0 = t3472+RATIONAL(-41.0,2100.0)+t3639+t3797; + coeff_dy_p1_m2_0 = t3382+t3595+t3742; + coeff_dy_p2_m2_0 = t3368+t3594+t3741; + coeff_dy_m2_m1_0 = t3382+t3597+t3749; + coeff_dy_m1_m1_0 = t3419+t3606+t3764; + coeff_dy_0_m1_0 = t3467+RATIONAL(-4.0,105.0)+t3640+t3781; + coeff_dy_p1_m1_0 = t3391+t3606+t3769; + coeff_dy_p2_m1_0 = t3394+t3597+t3753; + coeff_dy_m2_0_0 = t3368+t3645; + coeff_dy_m1_0_0 = t3382+t3637; + coeff_dy_0_0_0 = RATIONAL(-13.0,98.0)*y+t3407+t3694; + coeff_dy_p1_0_0 = t3394+t3637; + coeff_dy_p2_0_0 = t3400+t3645; + coeff_dy_m2_p1_0 = t3382+t3603+t3753; + coeff_dy_m1_p1_0 = t3419+t3608+t3769; + coeff_dy_0_p1_0 = RATIONAL(4.0,105.0)+t3484+t3629+t3781; + coeff_dy_p1_p1_0 = t3391+t3608+t3764; + coeff_dy_p2_p1_0 = t3394+t3603+t3749; + coeff_dy_m2_p2_0 = t3400+t3594+t3743; + coeff_dy_m1_p2_0 = t3394+t3595+t3754; + coeff_dy_0_p2_0 = t3476+RATIONAL(41.0,2100.0)+t3630+t3797; + coeff_dy_p1_p2_0 = t3382+t3605+t3754; + coeff_dy_p2_p2_0 = t3368+t3607+t3743; + coeff_dy_m2_m2_p1 = t3592+t3738+t3824; + coeff_dy_m1_m2_p1 = t3591+t3722+t3838; + coeff_dy_0_m2_p1 = t3362+t3602+t3730; + coeff_dy_p1_m2_p1 = t3591+t3735+t3845; + coeff_dy_p2_m2_p1 = t3592+t3747+t3799; + coeff_dy_m2_m1_p1 = t3585+t3713+t3777; + coeff_dy_m1_m1_p1 = t3569+t3760+t3780; + coeff_dy_0_m1_p1 = t3369+t3604+t3752; + coeff_dy_p1_m1_p1 = t3576+t3760+t3787; + coeff_dy_p2_m1_p1 = t3563+t3713+t3814; + coeff_dy_m2_0_p1 = t3619+t3668; + coeff_dy_m1_0_p1 = t3626+t3684; + coeff_dy_0_0_p1 = t3415+t3644; + coeff_dy_p1_0_p1 = t3617+t3667; + coeff_dy_p2_0_p1 = t3618+t3659; + coeff_dy_m2_p1_p1 = t3574+t3723+t3845; + coeff_dy_m1_p1_p1 = t3573+t3759+t3770; + coeff_dy_0_p1_p1 = t3369+t3599+t3727; + coeff_dy_p1_p1_p1 = t3573+t3757+t3835; + coeff_dy_p2_p1_p1 = t3574+t3722+t3776; + coeff_dy_m2_p2_p1 = t3584+t3396+t3675+t3751; + coeff_dy_m1_p2_p1 = t3414+t3588+t3661+t3729; + coeff_dy_0_p2_p1 = t3362+t3598+t3720; + coeff_dy_p1_p2_p1 = t3587+t3729+t3843; + coeff_dy_p2_p2_p1 = t3571+t3373+t3689+t3751; + coeff_dy_m2_m2_p2 = t3570+t3360+t3687+t3839; + coeff_dy_m1_m2_p2 = t3566+t3373+t3666+t3737; + coeff_dy_0_m2_p2 = t3404+t3601+t3724; + coeff_dy_p1_m2_p2 = t3566+t3396+t3674+t3731; + coeff_dy_p2_m2_p2 = t3570+t3408+t3664+t3792; + coeff_dy_m2_m1_p2 = t3590+t3674+t3716; + coeff_dy_m1_m1_p2 = t3565+t3711+t3795; + coeff_dy_0_m1_p2 = t3415+t3600+t3725; + coeff_dy_p1_m1_p2 = t3575+t3719+t3844; + coeff_dy_p2_m1_p2 = t3590+t3666+t3717; + coeff_dy_m2_0_p2 = t3620+t3664; + coeff_dy_m1_0_p2 = t3399+t3382+t3624; + coeff_dy_0_0_p2 = t3399+t3641; + coeff_dy_p1_0_p2 = t3399+t3394+t3622; + coeff_dy_p2_0_p2 = t3620+t3687; + coeff_dy_m2_p1_p2 = t3577+t3674+t3717; + coeff_dy_m1_p1_p2 = t3414+t3568+t3684+t3733; + coeff_dy_0_p1_p2 = t3415+t3596+t3755; + coeff_dy_p1_p1_p2 = t3583+t3712+t3795; + coeff_dy_p2_p1_p2 = t3577+t3666+t3716; + coeff_dy_m2_p2_p2 = t3400+t3567+t3404+t3408+t3734; + coeff_dy_m1_p2_p2 = t3572+t3744+t3834; + coeff_dy_0_p2_p2 = t3404+t3593+t3745; + coeff_dy_p1_p2_p2 = t3582+t3744+t3828; + coeff_dy_p2_p2_p2 = t3580+t3348+t3406+t3360+t3404+t3656; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-dyy.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-dyy.compute.c new file mode 100644 index 0000000..f3fdd0b --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-dyy.compute.c @@ -0,0 +1,591 @@ +fp t5120, + t5125, + t5084, + t5112, + t5124, + t5073, + t5286, + t5086, + t5111, + t5065, + t5285, + t5089, + t5284, + t5110, + t5126, + t5066, + t5283, + t5107, + t5106, + t5071, + t5282, + t5069, + t5281, + t5116, + t5080, + t5085, + t5280, + t5094, + t5062, + t5279, + t5083, + t5057, + t5105, + t5070, + t5278, + t5099, + t5082, + t5277, + t5115, + t5076, + t5088, + t5276, + t5074, + t5090, + t5275, + t5092, + t5274, + t5098, + t5273, + t5272, + t5054, + t5271, + t5270, + t5059, + t5269, + t5060, + t5268, + t5267, + t5096, + t5114, + t5078, + t5266, + t5087, + t5053, + t5265, + t5108, + t5063, + t5264, + t5240, + t5041, + t5263, + t5103, + t5081, + t5104, + t5067, + t5262, + t5064, + t5261, + t5260, + t5259, + t5077, + t5079, + t5258, + t5047, + t5091, + t5257, + t5075, + t5256, + t5255, + t5068, + t5254, + t5123, + t5253, + t5252, + t5251, + t5250, + t5055, + t5249, + t5209, + t5248, + t5247, + t5246, + t5097, + t5242, + t5245, + t5244, + t5056, + t5243, + t5241, + t5072, + t5239, + t5061, + t5238, + t5237, + t5050, + t5236, + t5235, + t5234, + t5233, + t5232, + t5231, + t5230, + t5046, + t5229, + t5048, + t5228, + t5227, + t5226, + t5225, + t5224, + t5223, + t5222, + t5221, + t5220, + t5218, + t5217, + t5216, + t5215, + t5214, + t5213, + t5044, + t5212, + t5042, + t5211, + t5210, + t5208, + t5207, + t5206, + t5205, + t5204, + t5203, + t5202, + t5201, + t5052, + t5200, + t5199, + t5198, + t5197, + t5043, + t5196, + t5195, + t5194, + t5058, + t5193, + t5192, + t5191, + t5190, + t5100, + t5189, + t5188, + t5187, + t5186, + t5185, + t5184, + t5045, + t5183, + t5182, + t5181, + t5180, + t5179, + t5178, + t5177, + t5176, + t5175, + t5174, + t5101, + t5173, + t5172, + t5171, + t5170, + t5169, + t5168, + t5167, + t5166, + t5165, + t5164, + t5163, + t5162, + t5161, + t5160, + t5159, + t5158, + t5157, + t5156, + t5155, + t5154, + t5153, + t5152, + t5151, + t5150, + t5149, + t5148, + t5147, + t5146, + t5145, + t5144, + t5143, + t5142, + t5141, + t5140, + t5139, + t5138, + t5137, + t5136, + t5135, + t5134, + t5133, + t5132, + t5131, + t5130, + t5129, + t5128, + t5127; + t5120 = RATIONAL(1.0,50.0); + t5125 = y*y; + t5084 = t5120*t5125; + t5112 = RATIONAL(-1.0,245.0); + t5124 = x*x; + t5073 = t5112*t5124; + t5286 = t5084+t5073; + t5086 = RATIONAL(-1.0,50.0)*y; + t5111 = RATIONAL(2.0,175.0); + t5065 = t5111*x; + t5285 = t5086+t5065; + t5089 = RATIONAL(3.0,25.0)*t5125; + t5284 = RATIONAL(-33.0,490.0)+t5089; + t5110 = RATIONAL(2.0,245.0); + t5126 = z*z; + t5066 = t5110*t5126; + t5283 = t5084+t5066; + t5107 = RATIONAL(-1.0,300.0); + t5106 = RATIONAL(-2.0,245.0); + t5071 = t5106*t5124; + t5282 = t5107+t5071; + t5069 = t5110*t5124; + t5281 = t5069+t5084; + t5116 = RATIONAL(1.0,490.0); + t5080 = t5116*t5124; + t5085 = RATIONAL(-2.0,25.0)*t5125; + t5280 = t5080+t5085; + t5094 = RATIONAL(-169.0,14700.0); + t5062 = t5112*t5126; + t5279 = t5094+t5062; + t5083 = RATIONAL(1.0,25.0)*y; + t5057 = x*t5083; + t5105 = RATIONAL(1.0,175.0); + t5070 = t5105*x; + t5278 = t5057+t5070; + t5099 = RATIONAL(211.0,3675.0); + t5082 = t5116*t5126; + t5277 = t5099+t5082; + t5115 = RATIONAL(-1.0,175.0); + t5076 = t5115*x; + t5088 = RATIONAL(-1.0,25.0)*y; + t5276 = t5076+t5088; + t5074 = t5106*t5126; + t5090 = RATIONAL(311.0,14700.0); + t5275 = t5074+t5090; + t5092 = RATIONAL(-529.0,14700.0); + t5274 = t5066+t5092; + t5098 = RATIONAL(256.0,3675.0); + t5273 = t5098+t5062; + t5272 = t5070+t5083; + t5054 = z*t5086; + t5271 = t5086+t5054; + t5270 = t5074+t5107; + t5059 = z*t5088; + t5269 = t5059+t5083; + t5060 = x*t5086; + t5268 = t5069+t5060; + t5267 = t5082+t5085; + t5096 = RATIONAL(151.0,3675.0); + t5114 = RATIONAL(1.0,245.0); + t5078 = t5114*t5124; + t5266 = t5096+t5078; + t5087 = t5120*y; + t5053 = x*t5087; + t5265 = t5053+t5087; + t5108 = RATIONAL(-2.0,175.0); + t5063 = t5108*x; + t5264 = t5063+t5087; + t5240 = y*RATIONAL(1.0,100.0); + t5041 = z*t5240; + t5263 = t5041+t5062; + t5103 = RATIONAL(1.0,350.0); + t5081 = t5103*x; + t5104 = RATIONAL(-1.0,350.0); + t5067 = t5104*z; + t5262 = t5081+t5067; + t5064 = t5108*z; + t5261 = t5064+t5087; + t5260 = t5053+t5086; + t5259 = t5099+t5062; + t5077 = t5104*x; + t5079 = t5103*z; + t5258 = t5077+t5079; + t5047 = x*t5079; + t5091 = RATIONAL(191.0,14700.0); + t5257 = t5047+t5073+t5091; + t5075 = t5114*t5126; + t5256 = t5075+t5096; + t5255 = t5073+t5085; + t5068 = t5115*z; + t5254 = t5068+t5086; + t5123 = RATIONAL(4.0,75.0); + t5253 = t5075+t5123; + t5252 = t5062+t5085; + t5251 = t5094+t5066; + t5250 = t5071+t5090; + t5055 = z*t5087; + t5249 = t5055+t5087; + t5209 = RATIONAL(-9.0,98.0)+t5089; + t5248 = t5074+t5209+t5078; + t5247 = t5083+t5259; + t5246 = t5075+t5209+t5071; + t5097 = RATIONAL(166.0,3675.0); + t5242 = x*z; + t5245 = t5097+RATIONAL(-1.0,700.0)*t5242+t5082; + t5244 = t5097+t5080+RATIONAL(1.0,700.0)*t5242; + t5056 = z*t5083; + t5243 = t5056+t5273; + t5241 = y*RATIONAL(-1.0,100.0); + t5072 = t5111*z; + t5239 = t5070+t5068; + t5061 = t5105*z; + t5238 = t5070+t5061; + t5237 = t5076+t5068; + t5050 = x*t5068; + t5236 = t5070+t5050; + t5235 = t5076+t5061; + t5234 = t5060+t5054; + t5233 = t5075+t5089; + t5232 = t5075+t5085; + t5231 = t5076+t5073; + t5230 = t5068+t5050; + t5046 = z*t5070; + t5229 = t5076+t5046; + t5048 = z*t5077; + t5228 = t5068+t5048; + t5227 = RATIONAL(-1.0,10.0)+t5089; + t5226 = t5070+t5072; + t5225 = t5053+t5055; + t5224 = t5068+t5047; + t5223 = t5076+t5064; + t5222 = t5076+t5047; + t5221 = t5061+t5047; + t5220 = t5061+t5046; + t5218 = t5074+t5084; + t5217 = t5074+t5071; + t5216 = t5061+t5048; + t5215 = t5072+t5071; + t5214 = t5078+t5089; + t5213 = t5061+t5050; + t5044 = x*t5072; + t5212 = t5044+t5065; + t5042 = x*t5064; + t5211 = t5042+t5063; + t5210 = t5070+t5048; + t5208 = t5073+t5048; + t5207 = t5068+t5078; + t5206 = t5061+t5252; + t5205 = t5055+t5267; + t5204 = t5063+t5281; + t5203 = t5084+t5263; + t5202 = t5065+t5281; + t5201 = t5054+t5283; + t5052 = x*t5241; + t5200 = t5052+t5286; + t5199 = t5084+t5231; + t5198 = t5054+t5267; + t5197 = t5077+t5280; + t5043 = z*t5241; + t5196 = t5043+t5062+t5084; + t5195 = t5055+t5283; + t5194 = t5088+t5255; + t5058 = x*t5088; + t5193 = t5058+t5255; + t5192 = t5083+t5232; + t5191 = t5081+t5280; + t5190 = t5084+RATIONAL(431.0,14700.0)+t5217; + t5100 = RATIONAL(-61.0,490.0); + t5189 = t5100+t5069+t5233; + t5188 = t5100+t5066+t5214; + t5187 = RATIONAL(136.0,3675.0)+t5078+t5232; + t5186 = t5074+t5069+t5227; + t5185 = t5071+t5066+t5227; + t5184 = t5060+t5088+t5197; + t5045 = x*t5240; + t5183 = t5070+t5045+t5087+t5286; + t5182 = t5196+t5250; + t5181 = t5205+t5266; + t5180 = t5096+t5080+t5192; + t5179 = t5204+t5260; + t5178 = t5107+t5218+t5268; + t5177 = t5123+t5078+t5206; + t5176 = t5203+t5250; + t5175 = t5065+t5246; + t5174 = t5053+t5088+t5191; + t5101 = RATIONAL(-57.0,490.0); + t5173 = t5101+t5075+t5061+t5214; + t5172 = t5050+t5248; + t5171 = t5101+t5207+t5233; + t5170 = t5074+t5215+t5284; + t5169 = t5107+t5215+t5283; + t5168 = t5073+t5086+t5090+t5218; + t5167 = t5046+t5248; + t5166 = t5193+t5253; + t5165 = t5202+t5265; + t5164 = t5079+t5083+t5198; + t5163 = t5064+t5217+t5284; + t5162 = t5194+t5278; + t5161 = t5123+t5207+t5252; + t5160 = t5064+t5086+t5195; + t5159 = t5063+t5246; + t5158 = t5045+t5091+t5196+t5208; + t5157 = t5183+t5251; + t5156 = t5060+t5205+t5244; + t5155 = t5098+t5073+t5206+t5269; + t5154 = t5042+t5064+t5202+t5274; + t5153 = t5072+t5050+t5199+t5251; + t5152 = t5044+t5092+t5201+t5268; + t5151 = t5179+t5274; + t5150 = t5069+t5072+t5087+t5092+t5195; + t5149 = t5094+t5069+t5203+t5254; + t5148 = t5068+t5059+t5194+t5273; + t5147 = t5184+t5259; + t5146 = t5055+t5047+t5193+t5277; + t5145 = t5094+t5046+t5196+t5268; + t5144 = t5048+t5091+t5200+t5263; + t5143 = t5046+t5054+t5200+t5251; + t5142 = t5052+t5196+t5257; + t5141 = t5057+t5050+t5243+t5255; + t5140 = t5053+t5198+t5244; + t5139 = t5174+t5259; + t5138 = t5067+t5197+t5245; + t5137 = t5165+t5279; + t5136 = t5076+t5099+t5067+t5208+t5267; + t5135 = t5045+t5203+t5257; + t5134 = t5046+t5193+t5243; + t5133 = t5053+t5197+t5247; + t5132 = t5162+t5277; + t5131 = t5094+t5073+t5160; + t5130 = t5079+t5191+t5245; + t5129 = t5204+t5213+t5279; + t5128 = t5099+t5073+t5164; + t5127 = t5060+t5191+t5247; + coeff_dyy_m2_m2_m2 = t5055+t5044+t5064+t5151; + coeff_dyy_m1_m2_m2 = t5045+t5131+t5229; + coeff_dyy_0_m2_m2 = t5160+t5282; + coeff_dyy_p1_m2_m2 = t5052+t5131+t5236; + coeff_dyy_p2_m2_m2 = t5060+t5055+t5086+t5154; + coeff_dyy_m2_m1_m2 = t5058+t5155+t5236; + coeff_dyy_m1_m1_m2 = t5059+t5127+t5216; + coeff_dyy_0_m1_m2 = t5177+t5269; + coeff_dyy_p1_m1_m2 = t5059+t5133+t5221; + coeff_dyy_p2_m1_m2 = t5057+t5155+t5229; + coeff_dyy_m2_0_m2 = t5042+t5065+t5170; + coeff_dyy_m1_0_m2 = t5172+t5226; + coeff_dyy_0_0_m2 = t5072+t5186; + coeff_dyy_p1_0_m2 = t5072+t5076+t5167; + coeff_dyy_p2_0_m2 = t5044+t5063+t5170; + coeff_dyy_m2_p1_m2 = t5088+t5141+t5238; + coeff_dyy_m1_p1_m2 = t5056+t5139+t5216; + coeff_dyy_0_p1_m2 = t5088+t5056+t5177; + coeff_dyy_p1_p1_m2 = t5056+t5147+t5221; + coeff_dyy_p2_p1_m2 = t5088+t5134+t5235; + coeff_dyy_m2_p2_m2 = t5063+t5152+t5261; + coeff_dyy_m1_p2_m2 = t5087+t5143+t5223; + coeff_dyy_0_p2_m2 = t5201+t5261+t5282; + coeff_dyy_p1_p2_m2 = t5064+t5050+t5054+t5157; + coeff_dyy_p2_p2_m2 = t5054+t5154+t5265; + coeff_dyy_m2_m2_m1 = t5053+t5063+t5046+t5149; + coeff_dyy_m1_m2_m1 = t5086+t5135+t5237; + coeff_dyy_0_m2_m1 = t5176+t5254; + coeff_dyy_p1_m2_m1 = t5086+t5144+t5239; + coeff_dyy_p2_m2_m1 = t5050+t5060+t5065+t5149; + coeff_dyy_m2_m1_m1 = t5058+t5128+t5210; + coeff_dyy_m1_m1_m1 = t5083+t5130+t5234; + coeff_dyy_0_m1_m1 = t5164+t5266; + coeff_dyy_p1_m1_m1 = t5083+t5140+t5258; + coeff_dyy_p2_m1_m1 = t5057+t5128+t5222; + coeff_dyy_m2_0_m1 = t5175+t5213; + coeff_dyy_m1_0_m1 = t5173+t5210; + coeff_dyy_0_0_m1 = t5061+t5189; + coeff_dyy_p1_0_m1 = t5173+t5222; + coeff_dyy_p2_0_m1 = t5159+t5220; + coeff_dyy_m2_p1_m1 = t5079+t5055+t5048+t5132; + coeff_dyy_m1_p1_m1 = t5088+t5130+t5225; + coeff_dyy_0_p1_m1 = t5088+t5079+t5181; + coeff_dyy_p1_p1_m1 = t5088+t5156+t5258; + coeff_dyy_p2_p1_m1 = t5079+t5146+t5276; + coeff_dyy_m2_p2_m1 = t5068+t5145+t5264; + coeff_dyy_m1_p2_m1 = t5087+t5142+t5237; + coeff_dyy_0_p2_m1 = t5068+t5087+t5182; + coeff_dyy_p1_p2_m1 = t5087+t5158+t5239; + coeff_dyy_p2_p2_m1 = t5043+t5137+t5230; + coeff_dyy_m2_m2_0 = t5179+t5270; + coeff_dyy_m1_m2_0 = t5045+t5076+t5168; + coeff_dyy_0_m2_0 = t5086+t5190; + coeff_dyy_p1_m2_0 = t5070+t5052+t5168; + coeff_dyy_p2_m2_0 = t5178+t5285; + coeff_dyy_m2_m1_0 = t5166+t5272; + coeff_dyy_m1_m1_0 = t5060+t5081+t5180; + coeff_dyy_0_m1_0 = t5083+t5187; + coeff_dyy_p1_m1_0 = t5077+t5053+t5180; + coeff_dyy_p2_m1_0 = t5057+t5123+t5192+t5231; + coeff_dyy_m2_0_0 = t5065+t5185; + coeff_dyy_m1_0_0 = t5070+t5188; + coeff_dyy_0_0_0 = RATIONAL(-13.0,98.0)+t5089+t5069+t5066; + coeff_dyy_p1_0_0 = t5076+t5188; + coeff_dyy_p2_0_0 = t5063+t5185; + coeff_dyy_m2_p1_0 = t5162+t5253; + coeff_dyy_m1_p1_0 = t5174+t5256; + coeff_dyy_0_p1_0 = t5088+t5187; + coeff_dyy_p1_p1_0 = t5184+t5256; + coeff_dyy_p2_p1_0 = t5166+t5276; + coeff_dyy_m2_p2_0 = t5178+t5264; + coeff_dyy_m1_p2_0 = t5052+t5087+t5199+t5275; + coeff_dyy_0_p2_0 = t5087+t5190; + coeff_dyy_p1_p2_0 = t5183+t5275; + coeff_dyy_p2_p2_0 = t5165+t5270; + coeff_dyy_m2_m2_p1 = t5043+t5129+t5260; + coeff_dyy_m1_m2_p1 = t5086+t5158+t5235; + coeff_dyy_0_m2_p1 = t5061+t5086+t5182; + coeff_dyy_p1_m2_p1 = t5086+t5142+t5238; + coeff_dyy_p2_m2_p1 = t5061+t5145+t5285; + coeff_dyy_m2_m1_p1 = t5067+t5146+t5272; + coeff_dyy_m1_m1_p1 = t5083+t5156+t5262; + coeff_dyy_0_m1_p1 = t5083+t5067+t5181; + coeff_dyy_p1_m1_p1 = t5083+t5138+t5225; + coeff_dyy_p2_m1_p1 = t5057+t5055+t5083+t5136; + coeff_dyy_m2_0_p1 = t5046+t5068+t5175; + coeff_dyy_m1_0_p1 = t5070+t5047+t5171; + coeff_dyy_0_0_p1 = t5068+t5189; + coeff_dyy_p1_0_p1 = t5048+t5076+t5171; + coeff_dyy_p2_0_p1 = t5159+t5230; + coeff_dyy_m2_p1_p1 = t5067+t5054+t5047+t5132; + coeff_dyy_m1_p1_p1 = t5088+t5140+t5262; + coeff_dyy_0_p1_p1 = t5067+t5088+t5198+t5266; + coeff_dyy_p1_p1_p1 = t5088+t5138+t5234; + coeff_dyy_p2_p1_p1 = t5054+t5058+t5088+t5136; + coeff_dyy_m2_p2_p1 = t5060+t5041+t5087+t5129; + coeff_dyy_m1_p2_p1 = t5087+t5144+t5235; + coeff_dyy_0_p2_p1 = t5087+t5061+t5176; + coeff_dyy_p1_p2_p1 = t5087+t5135+t5238; + coeff_dyy_p2_p2_p1 = t5041+t5137+t5220; + coeff_dyy_m2_m2_p2 = t5042+t5072+t5054+t5151; + coeff_dyy_m1_m2_p2 = t5045+t5153+t5271; + coeff_dyy_0_m2_p2 = t5169+t5271; + coeff_dyy_p1_m2_p2 = t5086+t5143+t5226; + coeff_dyy_p2_m2_p2 = t5072+t5152+t5285; + coeff_dyy_m2_m1_p2 = t5083+t5134+t5239; + coeff_dyy_m1_m1_p2 = t5056+t5127+t5224; + coeff_dyy_0_m1_p2 = t5083+t5056+t5161; + coeff_dyy_p1_m1_p2 = t5056+t5133+t5228; + coeff_dyy_p2_m1_p2 = t5083+t5141+t5237; + coeff_dyy_m2_0_p2 = t5163+t5212; + coeff_dyy_m1_0_p2 = t5064+t5070+t5167; + coeff_dyy_0_0_p2 = t5064+t5186; + coeff_dyy_p1_0_p2 = t5172+t5223; + coeff_dyy_p2_0_p2 = t5163+t5211; + coeff_dyy_m2_p1_p2 = t5046+t5148+t5278; + coeff_dyy_m1_p1_p2 = t5059+t5139+t5224; + coeff_dyy_0_p1_p2 = t5059+t5088+t5161; + coeff_dyy_p1_p1_p2 = t5059+t5147+t5228; + coeff_dyy_p2_p1_p2 = t5058+t5076+t5050+t5148; + coeff_dyy_m2_p2_p2 = t5060+t5150+t5211; + coeff_dyy_m1_p2_p2 = t5052+t5153+t5249; + coeff_dyy_0_p2_p2 = t5169+t5249; + coeff_dyy_p1_p2_p2 = t5072+t5055+t5046+t5157; + coeff_dyy_p2_p2_p2 = t5053+t5150+t5212; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-dyz.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-dyz.compute.c new file mode 100644 index 0000000..43aaaa1 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-dyz.compute.c @@ -0,0 +1,531 @@ +fp t5369, + t5471, + t5303, + t5304, + t5523, + t5478, + t5294, + t5380, + t5379, + t5521, + t5463, + t5438, + t5374, + t5474, + t5295, + t5302, + t5522, + t5372, + t5336, + t5307, + t5370, + t5475, + t5300, + t5520, + t5301, + t5313, + t5306, + t5519, + t5367, + t5338, + t5339, + t5518, + t5378, + t5358, + t5517, + t5312, + t5320, + t5516, + t5368, + t5327, + t5340, + t5515, + t5514, + t5328, + t5513, + t5377, + t5375, + t5512, + t5364, + t5473, + t5288, + t5289, + t5511, + t5365, + t5477, + t5292, + t5290, + t5510, + t5337, + t5509, + t5321, + t5508, + t5334, + t5507, + t5305, + t5450, + t5436, + t5506, + t5317, + t5505, + t5341, + t5504, + t5503, + t5366, + t5376, + t5502, + t5299, + t5501, + t5500, + t5499, + t5476, + t5293, + t5315, + t5472, + t5291, + t5446, + t5498, + t5497, + t5318, + t5442, + t5496, + t5495, + t5296, + t5297, + t5470, + t5494, + t5329, + t5493, + t5492, + t5491, + t5490, + t5324, + t5489, + t5488, + t5487, + t5486, + t5485, + t5484, + t5431, + t5330, + t5356, + t5483, + t5326, + t5482, + t5325, + t5481, + t5480, + t5440, + t5479, + t5298, + t5469, + t5287, + t5468, + t5467, + t5466, + t5465, + t5464, + t5462, + t5461, + t5459, + t5458, + t5457, + t5455, + t5453, + t5452, + t5451, + t5449, + t5447, + t5445, + t5443, + t5319, + t5441, + t5439, + t5437, + t5435, + t5434, + t5433, + t5430, + t5429, + t5428, + t5427, + t5426, + t5425, + t5424, + t5353, + t5423, + t5422, + t5352, + t5421, + t5420, + t5419, + t5418, + t5417, + t5416, + t5415, + t5414, + t5413, + t5412, + t5411, + t5410, + t5409, + t5408, + t5407, + t5406, + t5405, + t5404, + t5403, + t5402, + t5401, + t5400, + t5399, + t5398, + t5397, + t5396, + t5395, + t5394, + t5393, + t5392, + t5391, + t5390, + t5389, + t5388, + t5387, + t5386, + t5385, + t5384, + t5383, + t5382, + t5381, + t5332, + t5323, + t5310, + t5309; + t5369 = RATIONAL(1.0,175.0); + t5471 = x*t5369; + t5303 = z*t5471; + t5304 = y*t5471; + t5523 = t5303+t5304; + t5478 = y*z; + t5294 = RATIONAL(1.0,245.0)*t5478; + t5380 = z*z; + t5379 = y*y; + t5521 = t5379+t5380; + t5463 = t5521*RATIONAL(1.0,100.0); + t5438 = t5294+t5463; + t5374 = RATIONAL(-1.0,175.0); + t5474 = x*t5374; + t5295 = y*t5474; + t5302 = z*t5474; + t5522 = t5295+t5302; + t5372 = RATIONAL(2.0,175.0); + t5336 = t5372*z; + t5307 = x*t5336; + t5370 = RATIONAL(-2.0,175.0); + t5475 = x*t5370; + t5300 = y*t5475; + t5520 = t5307+t5300; + t5301 = z*t5475; + t5313 = t5372*y; + t5306 = x*t5313; + t5519 = t5301+t5306; + t5367 = RATIONAL(1.0,350.0); + t5338 = t5367*y; + t5339 = t5367*z; + t5518 = t5338+t5339; + t5378 = x*x; + t5358 = RATIONAL(137.0,5250.0); + t5517 = RATIONAL(-1.0,1400.0)*t5378+t5358; + t5312 = t5369*z; + t5320 = t5369*y; + t5516 = t5312+t5320; + t5368 = RATIONAL(-1.0,350.0); + t5327 = t5368*z; + t5340 = t5368*y; + t5515 = t5327+t5340; + t5514 = t5339+t5340; + t5328 = RATIONAL(-1.0,250.0)*x; + t5513 = t5328+t5523; + t5377 = RATIONAL(1.0,50.0); + t5375 = RATIONAL(-1.0,200.0); + t5512 = t5375*t5379+t5377*t5380; + t5364 = RATIONAL(1.0,700.0); + t5473 = x*t5364; + t5288 = y*t5473; + t5289 = z*t5473; + t5511 = t5288+t5289; + t5365 = RATIONAL(-1.0,700.0); + t5477 = x*t5365; + t5292 = z*t5477; + t5290 = y*t5477; + t5510 = t5292+t5290; + t5337 = t5364*t5378; + t5509 = t5337+RATIONAL(-167.0,7000.0); + t5321 = t5374*z; + t5508 = t5320+t5321; + t5334 = t5370*z; + t5507 = t5334+t5313; + t5305 = RATIONAL(4.0,245.0)*t5478; + t5450 = t5521*RATIONAL(-1.0,100.0); + t5436 = t5305+t5450; + t5506 = t5436+RATIONAL(47.0,5250.0); + t5317 = t5365*t5378; + t5505 = t5317+RATIONAL(167.0,7000.0); + t5341 = t5374*y; + t5504 = t5341+t5321; + t5503 = t5336+t5313; + t5366 = RATIONAL(1.0,200.0); + t5376 = RATIONAL(-1.0,50.0); + t5502 = t5376*t5379+t5366*t5380; + t5299 = RATIONAL(-2.0,245.0)*t5478; + t5501 = t5299+RATIONAL(107.0,7000.0); + t5500 = t5312+t5341; + t5499 = t5317+RATIONAL(-229.0,10500.0); + t5476 = t5367*x; + t5293 = y*t5476; + t5315 = RATIONAL(1.0,500.0)*x; + t5472 = x*t5368; + t5291 = z*t5472; + t5446 = t5315+t5291; + t5498 = t5293+t5446; + t5497 = t5317+RATIONAL(289.0,10500.0); + t5318 = RATIONAL(-1.0,500.0)*x; + t5442 = t5293+t5318; + t5496 = t5442+t5291; + t5495 = t5375*t5380+t5377*t5379; + t5296 = y*t5472; + t5297 = z*t5476; + t5470 = t5315+t5297; + t5494 = t5296+t5470; + t5329 = t5370*y; + t5493 = t5334+t5329; + t5492 = t5296+t5318+t5297; + t5491 = t5328+t5522; + t5490 = t5366*t5379+t5376*t5380; + t5324 = RATIONAL(1.0,250.0)*x; + t5489 = t5324+t5522; + t5488 = t5296+t5291; + t5487 = t5336+t5329; + t5486 = t5327+t5338; + t5485 = t5337+RATIONAL(-289.0,10500.0); + t5484 = t5324+t5523; + t5431 = t5305+t5463; + t5330 = t5369*t5378; + t5356 = RATIONAL(-137.0,5250.0); + t5483 = t5431+t5330+t5356; + t5326 = t5368*t5378; + t5482 = t5326+t5431+RATIONAL(-47.0,5250.0); + t5325 = t5374*t5378; + t5481 = t5436+t5358+t5325; + t5480 = RATIONAL(1.0,1400.0)*t5378+t5356+t5438; + t5440 = t5294+t5450; + t5479 = t5337+RATIONAL(229.0,10500.0)+t5440; + t5298 = RATIONAL(2.0,245.0)*t5478; + t5469 = t5312+t5298; + t5287 = RATIONAL(-4.0,245.0)*t5478; + t5468 = t5287+t5313; + t5467 = t5303+t5287; + t5466 = t5287+t5329; + t5465 = t5306+t5287; + t5464 = t5341+t5298; + t5462 = t5320+t5299; + t5461 = t5302+t5287; + t5459 = t5301+t5287; + t5458 = t5320+t5298; + t5457 = t5304+t5298; + t5455 = t5341+t5299; + t5453 = t5307+t5287; + t5452 = t5321+t5298; + t5451 = t5295+t5287; + t5449 = t5293+t5298; + t5447 = t5298+t5291; + t5445 = t5296+t5298; + t5443 = t5303+t5298; + t5319 = t5367*t5378; + t5441 = t5319+t5299+RATIONAL(-187.0,7000.0); + t5439 = t5304+t5319+t5302; + t5437 = t5303+t5295+t5319; + t5435 = t5326+t5462; + t5434 = t5312+t5455; + t5433 = t5321+t5455; + t5430 = t5441+t5495; + t5429 = t5439+t5501; + t5428 = t5441+t5512; + t5427 = t5440+t5515; + t5426 = t5440+t5518; + t5425 = t5437+t5501; + t5424 = t5438+t5514; + t5353 = RATIONAL(187.0,7000.0); + t5423 = t5321+t5353+t5435; + t5422 = t5438+t5486; + t5352 = RATIONAL(-107.0,7000.0); + t5421 = t5312+t5352+t5435; + t5420 = t5326+t5353+t5434; + t5419 = t5312+t5462+t5509; + t5418 = t5433+t5509; + t5417 = t5326+t5352+t5433; + t5416 = t5434+t5505; + t5415 = t5330+RATIONAL(17.0,5250.0)+t5436; + t5414 = RATIONAL(-17.0,5250.0)+t5325+t5431; + t5413 = t5321+t5462+t5505; + t5412 = t5439+t5506; + t5411 = t5437+t5506; + t5410 = t5479+t5488; + t5409 = t5426+t5517; + t5408 = t5481+t5487; + t5407 = t5481+t5507; + t5406 = t5427+t5517; + t5405 = t5424+t5499; + t5404 = t5301+t5300+t5483; + t5403 = t5293+t5297+t5479; + t5402 = t5306+t5307+t5483; + t5401 = t5482+t5493; + t5400 = t5422+t5499; + t5399 = t5290+t5289+t5480; + t5398 = t5482+t5503; + t5397 = t5288+t5292+t5480; + t5396 = t5413+t5492; + t5395 = t5328+t5429+t5500; + t5394 = t5324+t5429+t5508; + t5393 = t5328+t5425+t5508; + t5392 = t5324+t5425+t5500; + t5391 = t5421+t5513; + t5390 = t5297+t5419+t5442; + t5389 = t5421+t5489; + t5388 = t5296+t5419+t5446; + t5387 = t5417+t5491; + t5386 = t5318+t5418+t5488; + t5385 = t5293+t5418+t5470; + t5384 = t5416+t5496; + t5383 = t5417+t5484; + t5382 = t5416+t5494; + t5381 = t5413+t5498; + t5332 = RATIONAL(-1.0,125.0)*x; + t5323 = RATIONAL(1.0,125.0)*x; + t5310 = RATIONAL(-1.0,1000.0)*x; + t5309 = RATIONAL(1.0,1000.0)*x; + coeff_dyz_m2_m2_m2 = t5332+t5402+t5493; + coeff_dyz_m1_m2_m2 = t5401+t5513; + coeff_dyz_0_m2_m2 = t5414+t5493; + coeff_dyz_p1_m2_m2 = t5401+t5489; + coeff_dyz_p2_m2_m2 = t5323+t5404+t5493; + coeff_dyz_m2_m1_m2 = t5393+t5502; + coeff_dyz_m1_m1_m2 = t5396+t5502; + coeff_dyz_0_m1_m2 = t5423+t5502; + coeff_dyz_p1_m1_m2 = t5381+t5502; + coeff_dyz_p2_m1_m2 = t5394+t5502; + coeff_dyz_m2_0_m2 = t5300+t5468; + coeff_dyz_m1_0_m2 = t5313+t5451; + coeff_dyz_0_0_m2 = t5468; + coeff_dyz_p1_0_m2 = t5304+t5468; + coeff_dyz_p2_0_m2 = t5313+t5465; + coeff_dyz_m2_p1_m2 = t5389+t5495; + coeff_dyz_m1_p1_m2 = t5388+t5495; + coeff_dyz_0_p1_m2 = t5430+t5516; + coeff_dyz_p1_p1_m2 = t5390+t5495; + coeff_dyz_p2_p1_m2 = t5391+t5495; + coeff_dyz_m2_p2_m2 = t5323+t5408+t5519; + coeff_dyz_m1_p2_m2 = t5324+t5412+t5487; + coeff_dyz_0_p2_m2 = t5415+t5487; + coeff_dyz_p1_p2_m2 = t5328+t5411+t5487; + coeff_dyz_p2_p2_m2 = t5332+t5408+t5520; + coeff_dyz_m2_m2_m1 = t5395+t5490; + coeff_dyz_m1_m2_m1 = t5384+t5490; + coeff_dyz_0_m2_m1 = t5420+t5490; + coeff_dyz_p1_m2_m1 = t5382+t5490; + coeff_dyz_p2_m2_m1 = t5392+t5490; + coeff_dyz_m2_m1_m1 = t5318+t5410+t5518; + coeff_dyz_m1_m1_m1 = t5310+t5409+t5510; + coeff_dyz_0_m1_m1 = t5426+t5497; + coeff_dyz_p1_m1_m1 = t5309+t5409+t5511; + coeff_dyz_p2_m1_m1 = t5315+t5403+t5518; + coeff_dyz_m2_0_m1 = t5295+t5458; + coeff_dyz_m1_0_m1 = t5320+t5445; + coeff_dyz_0_0_m1 = t5458; + coeff_dyz_p1_0_m1 = t5320+t5449; + coeff_dyz_p2_0_m1 = t5320+t5457; + coeff_dyz_m2_p1_m1 = t5400+t5494; + coeff_dyz_m1_p1_m1 = t5309+t5399+t5486; + coeff_dyz_0_p1_m1 = t5422+t5485; + coeff_dyz_p1_p1_m1 = t5310+t5397+t5486; + coeff_dyz_p2_p1_m1 = t5400+t5496; + coeff_dyz_m2_p2_m1 = t5383+t5512; + coeff_dyz_m1_p2_m1 = t5385+t5512; + coeff_dyz_0_p2_m1 = t5428+t5504; + coeff_dyz_p1_p2_m1 = t5386+t5512; + coeff_dyz_p2_p2_m1 = t5387+t5512; + coeff_dyz_m2_m2_0 = t5336+t5459; + coeff_dyz_m1_m2_0 = t5336+t5461; + coeff_dyz_0_m2_0 = t5287+t5336; + coeff_dyz_p1_m2_0 = t5336+t5467; + coeff_dyz_p2_m2_0 = t5336+t5453; + coeff_dyz_m2_m1_0 = t5302+t5469; + coeff_dyz_m1_m1_0 = t5312+t5447; + coeff_dyz_0_m1_0 = t5469; + coeff_dyz_p1_m1_0 = t5297+t5469; + coeff_dyz_p2_m1_0 = t5312+t5443; + coeff_dyz_m2_0_0 = t5305; + coeff_dyz_m1_0_0 = t5305; + coeff_dyz_0_0_0 = t5305; + coeff_dyz_p1_0_0 = t5305; + coeff_dyz_p2_0_0 = t5305; + coeff_dyz_m2_p1_0 = t5321+t5443; + coeff_dyz_m1_p1_0 = t5297+t5452; + coeff_dyz_0_p1_0 = t5452; + coeff_dyz_p1_p1_0 = t5321+t5447; + coeff_dyz_p2_p1_0 = t5302+t5452; + coeff_dyz_m2_p2_0 = t5334+t5453; + coeff_dyz_m1_p2_0 = t5334+t5467; + coeff_dyz_0_p2_0 = t5334+t5287; + coeff_dyz_p1_p2_0 = t5334+t5461; + coeff_dyz_p2_p2_0 = t5334+t5459; + coeff_dyz_m2_m2_p1 = t5389+t5512; + coeff_dyz_m1_m2_p1 = t5388+t5512; + coeff_dyz_0_m2_p1 = t5428+t5516; + coeff_dyz_p1_m2_p1 = t5390+t5512; + coeff_dyz_p2_m2_p1 = t5391+t5512; + coeff_dyz_m2_m1_p1 = t5405+t5498; + coeff_dyz_m1_m1_p1 = t5309+t5397+t5514; + coeff_dyz_0_m1_p1 = t5424+t5485; + coeff_dyz_p1_m1_p1 = t5310+t5399+t5514; + coeff_dyz_p2_m1_p1 = t5405+t5492; + coeff_dyz_m2_0_p1 = t5341+t5457; + coeff_dyz_m1_0_p1 = t5341+t5449; + coeff_dyz_0_0_p1 = t5464; + coeff_dyz_p1_0_p1 = t5341+t5445; + coeff_dyz_p2_0_p1 = t5295+t5464; + coeff_dyz_m2_p1_p1 = t5318+t5403+t5515; + coeff_dyz_m1_p1_p1 = t5310+t5406+t5511; + coeff_dyz_0_p1_p1 = t5427+t5497; + coeff_dyz_p1_p1_p1 = t5309+t5406+t5510; + coeff_dyz_p2_p1_p1 = t5315+t5410+t5515; + coeff_dyz_m2_p2_p1 = t5393+t5490; + coeff_dyz_m1_p2_p1 = t5396+t5490; + coeff_dyz_0_p2_p1 = t5423+t5490; + coeff_dyz_p1_p2_p1 = t5381+t5490; + coeff_dyz_p2_p2_p1 = t5394+t5490; + coeff_dyz_m2_m2_p2 = t5323+t5407+t5520; + coeff_dyz_m1_m2_p2 = t5324+t5411+t5507; + coeff_dyz_0_m2_p2 = t5415+t5507; + coeff_dyz_p1_m2_p2 = t5328+t5412+t5507; + coeff_dyz_p2_m2_p2 = t5332+t5407+t5519; + coeff_dyz_m2_m1_p2 = t5383+t5495; + coeff_dyz_m1_m1_p2 = t5385+t5495; + coeff_dyz_0_m1_p2 = t5430+t5504; + coeff_dyz_p1_m1_p2 = t5386+t5495; + coeff_dyz_p2_m1_p2 = t5387+t5495; + coeff_dyz_m2_0_p2 = t5329+t5465; + coeff_dyz_m1_0_p2 = t5304+t5466; + coeff_dyz_0_0_p2 = t5466; + coeff_dyz_p1_0_p2 = t5329+t5451; + coeff_dyz_p2_0_p2 = t5300+t5466; + coeff_dyz_m2_p1_p2 = t5395+t5502; + coeff_dyz_m1_p1_p2 = t5384+t5502; + coeff_dyz_0_p1_p2 = t5420+t5502; + coeff_dyz_p1_p1_p2 = t5382+t5502; + coeff_dyz_p2_p1_p2 = t5392+t5502; + coeff_dyz_m2_p2_p2 = t5332+t5404+t5503; + coeff_dyz_m1_p2_p2 = t5398+t5491; + coeff_dyz_0_p2_p2 = t5414+t5503; + coeff_dyz_p1_p2_p2 = t5398+t5484; + coeff_dyz_p2_p2_p2 = t5323+t5402+t5503; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-dz.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-dz.compute.c new file mode 100644 index 0000000..cd8d2c0 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-dz.compute.c @@ -0,0 +1,971 @@ +fp t4056, + t4193, + t4035, + t3889, + t3926, + t4344, + t4030, + t4197, + t3870, + t4200, + t3900, + t4343, + t4055, + t4024, + t4058, + t3988, + t4342, + t3997, + t4029, + t4057, + t3975, + t3875, + t4341, + t4006, + t3969, + t4044, + t4054, + t4170, + t4340, + t3898, + t4195, + t3896, + t3847, + t4339, + t3980, + t3917, + t4338, + t4053, + t4027, + t3968, + t4188, + t3887, + t4337, + t4025, + t4178, + t4336, + t3855, + t4335, + t4004, + t3960, + t3910, + t4334, + t4001, + t3945, + t4022, + t3970, + t3904, + t4333, + t3905, + t3907, + t4332, + t3977, + t3874, + t4331, + t3999, + t4330, + t3856, + t4199, + t3888, + t4329, + t3992, + t4023, + t3959, + t3871, + t4328, + t3919, + t4194, + t3918, + t3850, + t4327, + t4326, + t4162, + t4325, + t4046, + t4192, + t3880, + t3979, + t4324, + t4017, + t4026, + t3962, + t4166, + t3998, + t3927, + t4151, + t4198, + t4323, + t4052, + t3991, + t4189, + t3873, + t4322, + t4321, + t3990, + t4320, + t3993, + t4319, + t3916, + t3884, + t4318, + t4190, + t3928, + t4317, + t4316, + t4000, + t3931, + t3942, + t4315, + t3965, + t4314, + t4033, + t3886, + t3861, + t4313, + t4045, + t3876, + t4312, + t4177, + t4003, + t3925, + t4147, + t4032, + t3976, + t3891, + t4311, + t3989, + t4310, + t3881, + t4309, + t4308, + t4041, + t4307, + t4002, + t4306, + t4037, + t3897, + t4305, + t4304, + t4303, + t3872, + t3964, + t4302, + t3862, + t3852, + t4301, + t4300, + t4299, + t4009, + t3864, + t4298, + t3913, + t4297, + t4296, + t3972, + t4048, + t4295, + t4294, + t4293, + t3957, + t4292, + t3958, + t4291, + t4290, + t3899, + t4289, + t4288, + t4287, + t3940, + t3851, + t4286, + t4285, + t4284, + t4283, + t4282, + t4281, + t4280, + t3890, + t4279, + t3996, + t4278, + t4196, + t3877, + t3849, + t4277, + t3879, + t4276, + t4275, + t3923, + t3894, + t4274, + t3868, + t4273, + t4272, + t4271, + t4270, + t4269, + t3987, + t4164, + t4268, + t4267, + t4266, + t4265, + t4264, + t3995, + t4263, + t4191, + t3846, + t4262, + t3912, + t4261, + t3867, + t4260, + t4008, + t4163, + t4259, + t3994, + t4258, + t3865, + t3941, + t4149, + t4257, + t4256, + t4015, + t4255, + t4254, + t4253, + t4155, + t4252, + t3906, + t4159, + t4251, + t4018, + t3854, + t3848, + t4250, + t4249, + t4248, + t4247, + t3853, + t4246, + t4245, + t4244, + t4013, + t4243, + t4242, + t4012, + t4241, + t4240, + t4239, + t4238, + t4237, + t4236, + t4235, + t3929, + t4234, + t4233, + t3908, + t4232, + t4014, + t4231, + t4230, + t4229, + t4011, + t4228, + t4227, + t4226, + t4225, + t4010, + t4224, + t4223, + t4222, + t4221, + t4220, + t4219, + t4218, + t4217, + t3909, + t4216, + t3863, + t4215, + t4214, + t4213, + t4212, + t4211, + t4136, + t4210, + t4209, + t4047, + t4208, + t4207, + t4206, + t4205, + t4204, + t4203, + t4202, + t4201, + t4187, + t4186, + t4185, + t4184, + t4183, + t4182, + t4181, + t4180, + t4179, + t4176, + t4175, + t4174, + t4173, + t4172, + t4171, + t4168, + t4167, + t4165, + t4161, + t4160, + t4158, + t4157, + t4156, + t4154, + t4153, + t4152, + t4148, + t3954, + t4146, + t4145, + t4144, + t4143, + t4142, + t4141, + t4140, + t3985, + t4139, + t4138, + t4137, + t4135, + t4134, + t4133, + t4132, + t4131, + t4130, + t4129, + t4128, + t4127, + t4126, + t4125, + t4124, + t4123, + t4122, + t4121, + t4120, + t4119, + t4118, + t4117, + t4116, + t4115, + t4114, + t4113, + t4112, + t4111, + t4110, + t4109, + t4108, + t4107, + t4106, + t4105, + t4104, + t4103, + t4102, + t4101, + t4100, + t4099, + t4098, + t4097, + t4096, + t4095, + t4094, + t4093, + t4092, + t4091, + t4090, + t4089, + t4088, + t4087, + t4086, + t4085, + t4084, + t4083, + t4031, + t4082, + t4081, + t4080, + t4079, + t4078, + t4077, + t4076, + t4075, + t4074, + t4073, + t4072, + t4038, + t4071, + t4070, + t4069, + t4068, + t4067, + t4066, + t4065, + t4064, + t4063, + t4062, + t3944, + t3893; + t4056 = x*x; + t4193 = z*t4056; + t4035 = RATIONAL(1.0,490.0); + t3889 = t4035*t4193; + t3926 = RATIONAL(151.0,3675.0)*z; + t4344 = t3889+t3926; + t4030 = RATIONAL(-1.0,350.0); + t4197 = z*t4030; + t3870 = x*t4197; + t4200 = x*y; + t3900 = RATIONAL(1.0,500.0)*t4200; + t4343 = t3870+t3900; + t4055 = t4056*x; + t4024 = RATIONAL(1.0,600.0); + t4058 = z*z; + t3988 = RATIONAL(-1.0,50.0)*t4058; + t4342 = t4024*t4055+x*t3988; + t3997 = RATIONAL(107.0,7000.0); + t4029 = RATIONAL(1.0,350.0); + t4057 = y*y; + t3975 = t4029*t4057; + t3875 = x*t3975; + t4341 = t3997*x+t3875; + t4006 = RATIONAL(-47.0,5250.0); + t3969 = RATIONAL(1.0,100.0)*t4058; + t4044 = RATIONAL(1.0,300.0); + t4054 = t4057*y; + t4170 = y*t3969+t4044*t4054; + t4340 = t4170+t4006*y; + t3898 = RATIONAL(-1.0,125.0)*t4200; + t4195 = z*RATIONAL(-2.0,175.0); + t3896 = y*t4195; + t3847 = x*t3896; + t4339 = t3898+t3847; + t3980 = t4030*t4057; + t3917 = x*t3980; + t4338 = t3917+t4006*x; + t4053 = z*t4058; + t4027 = RATIONAL(1.0,150.0); + t3968 = t4027*t4053; + t4188 = z*RATIONAL(-1.0,245.0); + t3887 = t4056*t4188; + t4337 = t3968+t3887; + t4025 = RATIONAL(-1.0,150.0); + t4178 = RATIONAL(1.0,200.0)*t4058; + t4336 = x*t4178+t4025*t4055; + t3855 = RATIONAL(1.0,1000.0)*t4200; + t4335 = t3855+t3870; + t4004 = RATIONAL(47.0,5250.0); + t3960 = t4029*t4056; + t3910 = y*t3960; + t4334 = t3910+t4004*y; + t4001 = RATIONAL(-167.0,7000.0); + t3945 = t4001*x; + t4022 = RATIONAL(1.0,700.0); + t3970 = t4022*t4057; + t3904 = x*t3970; + t4333 = t3945+t3904; + t3905 = y*t4197; + t3907 = RATIONAL(-1.0,500.0)*t4200; + t4332 = t3905+t3907; + t3977 = t4022*t4056; + t3874 = y*t3977; + t4331 = t4001*y+t3874; + t3999 = RATIONAL(-187.0,7000.0); + t4330 = t3910+t3999*y; + t3856 = RATIONAL(-1.0,1000.0)*t4200; + t4199 = z*t4029; + t3888 = x*t4199; + t4329 = t3856+t3888; + t3992 = RATIONAL(-229.0,10500.0); + t4023 = RATIONAL(-1.0,700.0); + t3959 = t4023*t4057; + t3871 = x*t3959; + t4328 = t3992*x+t3871; + t3919 = RATIONAL(1.0,125.0)*t4200; + t4194 = z*RATIONAL(2.0,175.0); + t3918 = y*t4194; + t3850 = x*t3918; + t4327 = t3919+t3850; + t4326 = t3910+t3997*y; + t4162 = RATIONAL(-1.0,200.0)*t4058; + t4325 = t4027*t4054+y*t4162; + t4046 = RATIONAL(-1.0,175.0); + t4192 = z*t4046; + t3880 = x*t4192; + t3979 = t4030*t4056; + t4324 = t3880+t3979; + t4017 = RATIONAL(-1.0,1400.0); + t4026 = RATIONAL(-1.0,300.0); + t3962 = RATIONAL(-1.0,100.0)*t4058; + t4166 = t4026*t4055+x*t3962; + t3998 = RATIONAL(137.0,5250.0); + t3927 = t3998*x; + t4151 = t3927+t4166; + t4198 = x*t4057; + t4323 = t4017*t4198+t4151; + t4052 = RATIONAL(-2.0,75.0); + t3991 = t4052*t4053; + t4189 = z*t4057; + t3873 = t4035*t4189; + t4322 = t3991+t3873; + t4321 = t4170+t3992*y; + t3990 = RATIONAL(1.0,50.0)*t4058; + t4320 = t3990+t3970; + t3993 = RATIONAL(229.0,10500.0); + t4319 = t3993*y+t3874; + t3916 = x*t4194; + t3884 = RATIONAL(-1.0,250.0)*t4200; + t4318 = t3916+t3884; + t4190 = y*t4056; + t3928 = RATIONAL(166.0,3675.0)*z; + t4317 = t3928+t4017*t4190; + t4316 = t3999*x+t3875; + t4000 = RATIONAL(-107.0,7000.0); + t3931 = t4000*y; + t3942 = RATIONAL(256.0,3675.0)*z; + t4315 = t3931+t3942; + t3965 = t4046*t4057; + t4314 = t3969+t3965; + t4033 = RATIONAL(-2.0,245.0); + t3886 = t4033*t4189; + t3861 = RATIONAL(311.0,14700.0)*z; + t4313 = t3886+t3861; + t4045 = RATIONAL(1.0,245.0); + t3876 = t4045*t4193; + t4312 = t3979+t3876; + t4177 = t4044*t4055+x*t3969; + t4003 = RATIONAL(-137.0,5250.0); + t3925 = t4003*x; + t4147 = t3925+t4177; + t4032 = RATIONAL(1.0,175.0); + t3976 = t4032*t4057; + t3891 = x*t3976; + t4311 = t4147+t3891; + t3989 = RATIONAL(4.0,75.0)*z; + t4310 = RATIONAL(2.0,75.0)+t3989; + t3881 = y*t4199; + t4309 = t3881+t3900; + t4308 = t3900+t3888; + t4041 = RATIONAL(-1.0,600.0); + t4307 = x*t3990+t4041*t4055; + t4002 = RATIONAL(187.0,7000.0); + t4306 = t3917+t4002*x; + t4037 = RATIONAL(2.0,245.0); + t3897 = t4037*t4189; + t4305 = t3897+t3976; + t4304 = t4024*t4054+y*t3988; + t4303 = t3926+t3876; + t3872 = t4033*t4193; + t3964 = t4046*t4056; + t4302 = t3872+t3964; + t3862 = RATIONAL(1.0,250.0)*t4200; + t3852 = y*t3880; + t4301 = t3862+t3852; + t4300 = t3917+t4000*x; + t4299 = t3897+t3965; + t4009 = RATIONAL(-19.0,2100.0); + t3864 = RATIONAL(-169.0,14700.0)*z; + t4298 = t4009+t3864; + t3913 = x*t3965; + t4297 = t3913+t4151; + t4296 = t3962+t3964; + t3972 = t4023*t4056; + t4048 = RATIONAL(1.0,42.0); + t4295 = t3972+t4048; + t4294 = t3907+t3881; + t4293 = t3870+t3907; + t3957 = t4026*z; + t4292 = t3886+t3957; + t3958 = t4032*t4056; + t4291 = t3958+t4009; + t4290 = t3905+t3900; + t3899 = x*t4195; + t4289 = t3862+t3899; + t4288 = x*t4162+t4027*t4055; + t4287 = t4052+t3989; + t3940 = RATIONAL(211.0,3675.0)*z; + t3851 = x*t3881; + t4286 = t3940+t3851; + t4285 = t4041*t4054+y*t3990; + t4284 = t3990+t3977; + t4283 = t3993*x+t4166; + t4282 = t4025*t4054+y*t4178; + t4281 = t3907+t3888; + t4280 = t3960+t3876; + t3890 = y*t3979; + t4279 = t3890+t4002*y; + t3996 = RATIONAL(167.0,7000.0); + t4278 = t3871+t3996*x; + t4196 = z*t4032; + t3877 = y*t4196; + t3849 = x*t3877; + t4277 = t3884+t3849; + t3879 = RATIONAL(191.0,14700.0)*z; + t4276 = RATIONAL(17.0,2100.0)+t3879; + t4275 = t4004*x+t3875; + t3923 = t4003*y; + t3894 = y*t3958; + t4274 = t3923+t4170+t3894; + t3868 = t4037*t4193; + t4273 = t3968+t3868; + t4272 = t3959+t3988; + t4271 = t3959+t4048; + t4270 = t3870+t3856; + t4269 = t3855+t3888; + t3987 = RATIONAL(1.0,25.0)*t4053; + t4164 = RATIONAL(-9.0,98.0)*z+t3987; + t4268 = t4164+t3886+t3876; + t4267 = t4177+t4338; + t4266 = t3864+t4282; + t4265 = t4166+t4275; + t4264 = t3942+t4304; + t3995 = RATIONAL(-289.0,10500.0); + t4263 = t4177+t3904+t3995*x; + t4191 = z*t4200; + t3846 = t4022*t4191; + t4262 = t3846+t4323; + t3912 = t4045*t4189; + t4261 = t4164+t3872+t3912; + t3867 = RATIONAL(-529.0,14700.0)*z; + t4260 = t3958+RATIONAL(-11.0,420.0)+t3867; + t4008 = RATIONAL(17.0,5250.0); + t4163 = t4026*t4054+y*t3962; + t4259 = t4163+t4008*y+t3894; + t3994 = RATIONAL(289.0,10500.0); + t4258 = t3994*x+t3871+t4166; + t3865 = y*t3964; + t3941 = t3998*y; + t4149 = t3941+t4163; + t4257 = t3896+t3865+t4149; + t4256 = RATIONAL(-57.0,490.0)*z+t3912+t3987+t3876; + t4015 = RATIONAL(-17.0,5250.0); + t4255 = t4170+t4015*y+t3865; + t4254 = t3918+t4274; + t4253 = RATIONAL(11.0,420.0)+t3867+t3965; + t4155 = t3886+t3872; + t4252 = t3987+RATIONAL(-33.0,490.0)*z+t4155; + t3906 = t4057*t4188; + t4159 = t3975+t3906; + t4251 = RATIONAL(-17.0,2100.0)+t3879+t4159; + t4018 = RATIONAL(1.0,1400.0); + t3854 = t4018*t4198; + t3848 = t4023*t4191; + t4250 = t3854+t3848+t4147; + t4249 = t3918+t4163+t4334; + t4248 = t4279+t4282; + t4247 = RATIONAL(-17.0,525.0)+t3970+t4284; + t3853 = x*t3905; + t4246 = t3853+t4177+t4328; + t4245 = t3972+RATIONAL(17.0,525.0)+t4272; + t4244 = t4325+t4331; + t4013 = RATIONAL(37.0,1050.0); + t4243 = t4013+t3979+t4272; + t4242 = t4341+t4342; + t4012 = RATIONAL(29.0,2100.0); + t4241 = t4012+t3979+t4314; + t4240 = t4325+t4330; + t4239 = t4306+t4342; + t4238 = t4300+t4307; + t4237 = t3945+t3887+t4307; + t4236 = t4336+t4341; + t4235 = t4279+t4304; + t3929 = t3996*y; + t4234 = t3929+t3906+t4304; + t4233 = t3958+t4026+t4314; + t3908 = y*t3972; + t4232 = t3851+t3908+t4321; + t4014 = RATIONAL(-37.0,1050.0); + t4231 = t4014+t3960+t4320; + t4230 = t4044+t3976+t4296; + t4229 = t3929+t3908+t4282; + t4011 = RATIONAL(-29.0,2100.0); + t4228 = t4011+t3960+t3976+t3962; + t4227 = t3904+t3851+t4283; + t4226 = t3853+t4163+t4319; + t4225 = t4307+t4316; + t4010 = RATIONAL(19.0,2100.0); + t4224 = t4010+t3864+t4299; + t4223 = t4285+t4330; + t4222 = t4288+t4300; + t4221 = t3940+t3889+t4331; + t4220 = t3940+t3873+t4342; + t4219 = t3896+t3890+t4340; + t4218 = t4010+t3877+t3975+t4296; + t4217 = t3862+t4238; + t3909 = y*t4192; + t4216 = t3909+t3975+t3988+t4295; + t3863 = x*t4196; + t4215 = t3960+t3988+t3863+t4271; + t4214 = t3905+t4245; + t4213 = t3907+t4229; + t4212 = t3881+t4247; + t4211 = t3907+t4244; + t4136 = t4170+t4322; + t4210 = t3889+t3928+t4136+t3923+t4018*t4190; + t4209 = t3862+t4242; + t4047 = RATIONAL(-1.0,42.0); + t4208 = t4047+t4320+t4324; + t4207 = t3884+t4238; + t4206 = t3884+t4242; + t4205 = t3900+t4229; + t4204 = t3900+t4244; + t4203 = t3969+t3980+t3909+t4291; + t4202 = t3980+t3877+t4047+t4284; + t4201 = t3890+t3864+t3931+t3906+t4325; + t4187 = t3916+t3852; + t4186 = t3899+t3849; + t4185 = t3899+t3850; + t4184 = t3991+t3988; + t4183 = t3852+t3863; + t4182 = t3880+t3852; + t4181 = t3909+t3851; + t4180 = t3916+t3847; + t4179 = t3916+t3850; + t4176 = t3990+t3991; + t4175 = t3899+t3852; + t4174 = t3880+t3849; + t4173 = t3899+t3847; + t4172 = t3909+t3853; + t4171 = t3969+t3968; + t4168 = t3887+t3979; + t4167 = t3980+t3906; + t4165 = t3968+t3962; + t4161 = t3960+t3887; + t4160 = t3987+t3897; + t4158 = t3877+t3851; + t4157 = t3849+t3863; + t4156 = t3987+t3868; + t4154 = t3916+t3849; + t4153 = t3991+t3912; + t4152 = t3853+t3877; + t4148 = t3890+t4168; + t3954 = RATIONAL(-61.0,490.0)*z; + t4146 = t3954+t3876+t4160; + t4145 = t4167+t4176; + t4144 = t4161+t4184; + t4143 = t4177+t4273; + t4142 = t4163+t4322; + t4141 = t3889+t3991+t4177; + t4140 = t3980+t3988+t4153; + t3985 = RATIONAL(-1.0,10.0)*z; + t4139 = t3886+t3985+t4156; + t4138 = t4167+t4171; + t4137 = t3958+t3872+t4165; + t4135 = t4171+t4305; + t4134 = t3990+t3975+t4153; + t4133 = t4288+t4337; + t4132 = t4161+t4165; + t4131 = t4166+t4273; + t4130 = t4159+t4184; + t4129 = t3964+t3868+t4165; + t4128 = t3985+t3872+t4160; + t4127 = t3968+t3897+t4163; + t4126 = t3954+t3912+t4156; + t4125 = t3877+t4261; + t4124 = t3909+t4159+t4326; + t4123 = t3877+t4167+t4326; + t4122 = t3863+t4168+t4278; + t4121 = t3918+t4252; + t4120 = t3849+t4268; + t4119 = t3853+t4256; + t4118 = t3940+t3853+t3991+t3904+t3908; + t4117 = t3852+t4268; + t4116 = t3851+t4256; + t4115 = t3909+t4261; + t4114 = t3896+t4252; + t4113 = t3880+t4132+t4336; + t4112 = t3877+t4130+t4285; + t4111 = t3909+t4145+t4285; + t4110 = t3863+t4132+t4288; + t4109 = t3994*y+t3908+t4142+t4303; + t4108 = t4130+t4310+t4312; + t4107 = t3972+t4013+t4140+t4344; + t4106 = t4044+t3957+t4137+t4299; + t4105 = t4145+t4280+t4287; + t4104 = t4014+t3977+t4134+t4344; + t4103 = t4134+t4168+t4287; + t4102 = t4140+t4161+t4310; + t4101 = t4026+t3957+t4135+t4302; + t4100 = t3861+t4011+t4137+t4159; + t4099 = t3913+t4015*x+t4143+t4292; + t4098 = t3891+t4008*x+t4131+t4292; + t4097 = t4133+t4313+t4316; + t4096 = t3861+t4012+t4138+t4302; + t4095 = t3874+t3995*y+t4136+t4303; + t4094 = t4306+t4313+t4336+t4337; + t4093 = t4113+t4251+t4278; + t4092 = t4113+t4224+t4341; + t4091 = t4047+t3977+t4111+t4221; + t4090 = t3880+t4144+t4220+t4271+t4278; + t4089 = t3918+t3941+t3865+t3868+t4127+t4253+t4296; + t4088 = t3904+t4142+t4237+t4286+t4319; + t4087 = t3852+t4143+t4201+t4338; + t4086 = t3905+t4210+t4247; + t4085 = t3908+t4141+t4234+t4286+t4328; + t4084 = t3849+t4131+t4201+t4275; + t4083 = t4010+t4124+t4129+t4266; + t4031 = RATIONAL(-8.0,525.0); + t4082 = t4031+t4111+t4148+t4315; + t4081 = t3969+t4133+t4167+t4276+t4324+t4333; + t4080 = t3918+t4135+t4148+t4298+t4340; + t4079 = t3889+t4118+t4234+t4283; + t4078 = t4031+t4123+t4168+t4176+t4264; + t4077 = t3873+t4118+t4237+t4321; + t4076 = t3896+t3897+t4129+t4253+t4274; + t4075 = t3916+t3868+t4135+t4260+t4311; + t4074 = t3889+t3941+t3848+t4142+t4317+t4323; + t4073 = t4110+t4224+t4300; + t4072 = t4110+t4251+t4333; + t4038 = RATIONAL(8.0,525.0); + t4071 = t3890+t4038+t4112+t4161+t4315; + t4070 = t4038+t4124+t4144+t4264; + t4069 = t4122+t4138+t4276+t4336; + t4068 = t3969+t3913+t3899+t3927+t4131+t4260+t4305; + t4067 = t3881+t4210+t4245; + t4066 = t3854+t3873+t3925+t3846+t4141+t4149+t4317; + t4065 = t3969+t3896+t3976+t4127+t4168+t4298+t4334; + t4064 = t4112+t4221+t4295; + t4063 = t3970+t4047+t4122+t4176+t4220; + t4062 = t3868+t4123+t4171+t4266+t4291; + t3944 = RATIONAL(136.0,3675.0)*z; + t3893 = RATIONAL(431.0,14700.0)*z; + coeff_dz_m2_m2_m2 = t3898+t4076+t4185+t4311; + coeff_dz_m1_m2_m2 = t4092+t4219+t4277; + coeff_dz_0_m2_m2 = t3896+t4106+t4255; + coeff_dz_p1_m2_m2 = t4073+t4219+t4301; + coeff_dz_p2_m2_m2 = t3919+t4076+t4180+t4297; + coeff_dz_m2_m1_m2 = t4083+t3884+t4186+t4267; + coeff_dz_m1_m1_m2 = t4093+t4181+t4213; + coeff_dz_0_m1_m2 = t3909+t4100+t4248; + coeff_dz_p1_m1_m2 = t4072+t4172+t4205; + coeff_dz_p2_m1_m2 = t3862+t4083+t4187+t4265; + coeff_dz_m2_0_m2 = t3899+t4099+t4230; + coeff_dz_m1_0_m2 = t3880+t4094+t4228; + coeff_dz_0_0_m2 = t3976+RATIONAL(-41.0,2100.0)+t3886+t3893+t4137; + coeff_dz_p1_0_m2 = t3863+t4097+t4228; + coeff_dz_p2_0_m2 = t3916+t4098+t4230; + coeff_dz_m2_p1_m2 = t4087+t4218+t4289; + coeff_dz_m1_p1_m2 = t4093+t4152+t4204; + coeff_dz_0_p1_m2 = t3877+t4100+t4240; + coeff_dz_p1_p1_m2 = t4072+t4158+t4211; + coeff_dz_p2_p1_m2 = t4084+t4218+t4318; + coeff_dz_m2_p2_m2 = t4089+t3919+t4173+t4311; + coeff_dz_m1_p2_m2 = t4092+t4249+t4301; + coeff_dz_0_p2_m2 = t3918+t4106+t4259; + coeff_dz_p1_p2_m2 = t4073+t4249+t4277; + coeff_dz_p2_p2_m2 = t3898+t4089+t4179+t4297; + coeff_dz_m2_m2_m1 = t4078+t4183+t4206; + coeff_dz_m1_m2_m1 = t4079+t4202+t4281; + coeff_dz_0_m2_m1 = t3877+t4105+t4235; + coeff_dz_p1_m2_m1 = t4085+t4202+t4343; + coeff_dz_p2_m2_m1 = t4078+t4174+t4217; + coeff_dz_m2_m1_m1 = t4063+t4226+t4294; + coeff_dz_m1_m1_m1 = t4074+t4212+t4329; + coeff_dz_0_m1_m1 = t3881+t4109+t4231; + coeff_dz_p1_m1_m1 = t4066+t4212+t4335; + coeff_dz_p2_m1_m1 = t4088+t4208+t4309; + coeff_dz_m2_0_m1 = t3863+t4103+t4239; + coeff_dz_m1_0_m1 = t3888+t4104+t4258; + coeff_dz_0_0_m1 = t3944+RATIONAL(-4.0,105.0)+t4134+t4280; + coeff_dz_p1_0_m1 = t3870+t4104+t4263; + coeff_dz_p2_0_m1 = t3880+t4103+t4225; + coeff_dz_m2_p1_m1 = t4063+t4232+t4290; + coeff_dz_m1_p1_m1 = t4086+t4262+t4269; + coeff_dz_0_p1_m1 = t3905+t4095+t4231; + coeff_dz_p1_p1_m1 = t4086+t4250+t4270; + coeff_dz_p2_p1_m1 = t4077+t4208+t4332; + coeff_dz_m2_p2_m1 = t4082+t4157+t4209; + coeff_dz_m1_p2_m1 = t4091+t4227+t4308; + coeff_dz_0_p2_m1 = t3909+t4105+t4223; + coeff_dz_p1_p2_m1 = t4091+t4246+t4293; + coeff_dz_p2_p2_m1 = t4082+t4182+t4207; + coeff_dz_m2_m2_0 = t4121+t4180; + coeff_dz_m1_m2_0 = t3863+t3918+t4117; + coeff_dz_0_m2_0 = t3918+t4139; + coeff_dz_p1_m2_0 = t3918+t3880+t4120; + coeff_dz_p2_m2_0 = t4121+t4185; + coeff_dz_m2_m1_0 = t4125+t4187; + coeff_dz_m1_m1_0 = t3877+t3863+t4119; + coeff_dz_0_m1_0 = t3877+t4126; + coeff_dz_p1_m1_0 = t3880+t3877+t4116; + coeff_dz_p2_m1_0 = t4125+t4186; + coeff_dz_m2_0_0 = t3916+t4128; + coeff_dz_m1_0_0 = t3863+t4146; + coeff_dz_0_0_0 = t3897+RATIONAL(-13.0,98.0)*z+t4156; + coeff_dz_p1_0_0 = t3880+t4146; + coeff_dz_p2_0_0 = t3899+t4128; + coeff_dz_m2_p1_0 = t4115+t4154; + coeff_dz_m1_p1_0 = t3863+t3909+t4116; + coeff_dz_0_p1_0 = t3909+t4126; + coeff_dz_p1_p1_0 = t3880+t3909+t4119; + coeff_dz_p2_p1_0 = t4115+t4175; + coeff_dz_m2_p2_0 = t4114+t4179; + coeff_dz_m1_p2_0 = t3863+t3896+t4120; + coeff_dz_0_p2_0 = t3896+t4139; + coeff_dz_p1_p2_0 = t3880+t3896+t4117; + coeff_dz_p2_p2_0 = t4114+t4173; + coeff_dz_m2_m2_p1 = t4071+t4183+t4217; + coeff_dz_m1_m2_p1 = t4064+t4246+t4308; + coeff_dz_0_m2_p1 = t3877+t4108+t4223; + coeff_dz_p1_m2_p1 = t4064+t4227+t4293; + coeff_dz_p2_m2_p1 = t4071+t4174+t4206; + coeff_dz_m2_m1_p1 = t4077+t4215+t4309; + coeff_dz_m1_m1_p1 = t4067+t4250+t4269; + coeff_dz_0_m1_p1 = t3881+t4095+t4243; + coeff_dz_p1_m1_p1 = t4067+t4262+t4270; + coeff_dz_p2_m1_p1 = t4090+t4232+t4294; + coeff_dz_m2_0_p1 = t3863+t4102+t4225; + coeff_dz_m1_0_p1 = t3888+t4107+t4263; + coeff_dz_0_0_p1 = t3944+RATIONAL(4.0,105.0)+t4140+t4312; + coeff_dz_p1_0_p1 = t3870+t4107+t4258; + coeff_dz_p2_0_p1 = t3880+t4102+t4239; + coeff_dz_m2_p1_p1 = t4088+t4215+t4332; + coeff_dz_m1_p1_p1 = t4066+t4214+t4329; + coeff_dz_0_p1_p1 = t3905+t4109+t4243; + coeff_dz_p1_p1_p1 = t4074+t4214+t4335; + coeff_dz_p2_p1_p1 = t4090+t4226+t4290; + coeff_dz_m2_p2_p1 = t4070+t4157+t4207; + coeff_dz_m1_p2_p1 = t4085+t4216+t4281; + coeff_dz_0_p2_p1 = t3909+t4108+t4235; + coeff_dz_p1_p2_p1 = t4079+t4216+t4343; + coeff_dz_p2_p2_p1 = t4070+t4182+t4209; + coeff_dz_m2_m2_p2 = t4068+t4257+t4327; + coeff_dz_m1_m2_p2 = t3862+t4065+t4174+t4222; + coeff_dz_0_m2_p2 = t3896+t4101+t4259; + coeff_dz_p1_m2_p2 = t3884+t4065+t4183+t4236; + coeff_dz_p2_m2_p2 = t4075+t4257+t4339; + coeff_dz_m2_m1_p2 = t4084+t4203+t4289; + coeff_dz_m1_m1_p2 = t4081+t4181+t4204; + coeff_dz_0_m1_p2 = t3909+t4096+t4240; + coeff_dz_p1_m1_p2 = t4069+t4172+t4211; + coeff_dz_p2_m1_p2 = t4087+t4203+t4318; + coeff_dz_m2_0_p2 = t3899+t4098+t4233; + coeff_dz_m1_0_p2 = t3880+t4097+t4241; + coeff_dz_0_0_p2 = t3893+t3965+RATIONAL(41.0,2100.0)+t3964+t4155+t4171; + coeff_dz_p1_0_p2 = t3863+t4094+t4241; + coeff_dz_p2_0_p2 = t3916+t4099+t4233; + coeff_dz_m2_p1_p2 = t4062+t3884+t4175+t4265; + coeff_dz_m1_p1_p2 = t4081+t4152+t4213; + coeff_dz_0_p1_p2 = t3877+t4096+t4248; + coeff_dz_p1_p1_p2 = t4069+t4158+t4205; + coeff_dz_p2_p1_p2 = t3862+t4062+t4154+t4267; + coeff_dz_m2_p2_p2 = t4068+t4254+t4339; + coeff_dz_m1_p2_p2 = t3884+t4080+t4182+t4222; + coeff_dz_0_p2_p2 = t3918+t4101+t4255; + coeff_dz_p1_p2_p2 = t3862+t4080+t4157+t4236; + coeff_dz_p2_p2_p2 = t4075+t4254+t4327; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-dzz.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-dzz.compute.c new file mode 100644 index 0000000..89d739a --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.order4.smooth0/coeff-dzz.compute.c @@ -0,0 +1,601 @@ +fp t5607, + t5587, + t5546, + t5581, + t5732, + t5599, + t5547, + t5588, + t5555, + t5773, + t5596, + t5560, + t5604, + t5571, + t5772, + t5593, + t5550, + t5771, + t5573, + t5770, + t5721, + t5535, + t5769, + t5608, + t5595, + t5549, + t5768, + t5566, + t5542, + t5570, + t5767, + t5534, + t5766, + t5609, + t5569, + t5590, + t5558, + t5765, + t5568, + t5537, + t5764, + t5554, + t5763, + t5567, + t5762, + t5579, + t5598, + t5553, + t5761, + t5539, + t5760, + t5565, + t5759, + t5592, + t5545, + t5758, + t5561, + t5586, + t5757, + t5564, + t5756, + t5755, + t5754, + t5559, + t5753, + t5576, + t5752, + t5538, + t5751, + t5750, + t5577, + t5749, + t5574, + t5551, + t5748, + t5552, + t5747, + t5606, + t5557, + t5746, + t5745, + t5563, + t5744, + t5743, + t5722, + t5532, + t5742, + t5589, + t5556, + t5741, + t5740, + t5541, + t5739, + t5562, + t5738, + t5737, + t5600, + t5736, + t5735, + t5580, + t5734, + t5733, + t5731, + t5730, + t5729, + t5728, + t5727, + t5572, + t5695, + t5726, + t5725, + t5688, + t5724, + t5723, + t5591, + t5544, + t5524, + t5720, + t5719, + t5527, + t5718, + t5717, + t5525, + t5716, + t5531, + t5715, + t5714, + t5548, + t5713, + t5712, + t5711, + t5533, + t5710, + t5709, + t5707, + t5706, + t5705, + t5704, + t5703, + t5702, + t5701, + t5700, + t5699, + t5698, + t5697, + t5696, + t5694, + t5693, + t5692, + t5536, + t5691, + t5690, + t5689, + t5687, + t5686, + t5685, + t5684, + t5683, + t5682, + t5681, + t5543, + t5680, + t5679, + t5678, + t5677, + t5676, + t5605, + t5675, + t5674, + t5673, + t5672, + t5671, + t5670, + t5669, + t5668, + t5667, + t5666, + t5665, + t5664, + t5663, + t5662, + t5661, + t5660, + t5530, + t5659, + t5658, + t5657, + t5656, + t5655, + t5654, + t5653, + t5652, + t5651, + t5650, + t5528, + t5649, + t5648, + t5647, + t5646, + t5645, + t5644, + t5643, + t5642, + t5641, + t5640, + t5639, + t5638, + t5529, + t5637, + t5636, + t5526, + t5635, + t5634, + t5633, + t5632, + t5631, + t5630, + t5629, + t5628, + t5627, + t5626, + t5625, + t5624, + t5623, + t5622, + t5621, + t5620, + t5540, + t5619, + t5618, + t5617, + t5616, + t5615, + t5614, + t5613, + t5612, + t5611, + t5610; + t5607 = x*x; + t5587 = RATIONAL(-1.0,245.0); + t5546 = t5587*t5607; + t5581 = RATIONAL(211.0,3675.0); + t5732 = t5546+t5581; + t5599 = RATIONAL(-1.0,175.0); + t5547 = t5599*x; + t5588 = RATIONAL(1.0,350.0); + t5555 = t5588*y; + t5773 = t5547+t5555; + t5596 = RATIONAL(2.0,175.0); + t5560 = t5596*y; + t5604 = RATIONAL(1.0,50.0); + t5571 = t5604*z; + t5772 = t5560+t5571; + t5593 = RATIONAL(-2.0,175.0); + t5550 = t5593*x; + t5771 = t5571+t5550; + t5573 = RATIONAL(-169.0,14700.0); + t5770 = t5546+t5573; + t5721 = z*RATIONAL(1.0,100.0); + t5535 = y*t5721; + t5769 = t5535+t5571; + t5608 = y*y; + t5595 = RATIONAL(2.0,245.0); + t5549 = t5595*t5608; + t5768 = t5573+t5549; + t5566 = RATIONAL(-1.0,50.0)*z; + t5542 = y*t5566; + t5570 = RATIONAL(1.0,25.0)*z; + t5767 = t5542+t5570; + t5534 = x*t5555; + t5766 = t5534+t5732; + t5609 = z*z; + t5569 = RATIONAL(-2.0,25.0)*t5609; + t5590 = RATIONAL(1.0,490.0); + t5558 = t5590*t5607; + t5765 = t5569+t5558; + t5568 = RATIONAL(-1.0,25.0)*z; + t5537 = x*t5568; + t5764 = t5542+t5537; + t5554 = t5590*t5608; + t5763 = t5569+t5554; + t5567 = t5604*t5609; + t5762 = t5567+t5549; + t5579 = RATIONAL(151.0,3675.0); + t5598 = RATIONAL(1.0,245.0); + t5553 = t5598*t5608; + t5761 = t5579+t5553; + t5539 = x*t5571; + t5760 = t5571+t5539; + t5565 = t5587*t5608; + t5759 = t5565+t5569; + t5592 = RATIONAL(-2.0,245.0); + t5545 = t5592*t5607; + t5758 = t5545+RATIONAL(-33.0,490.0); + t5561 = t5592*t5608; + t5586 = RATIONAL(-1.0,300.0); + t5757 = t5561+t5586; + t5564 = t5596*x; + t5756 = t5566+t5564; + t5755 = t5565+t5581; + t5754 = t5546+RATIONAL(256.0,3675.0); + t5559 = t5588*x; + t5753 = t5559+t5568; + t5576 = RATIONAL(311.0,14700.0); + t5752 = t5576+t5561; + t5538 = y*t5571; + t5751 = t5568+t5538; + t5750 = t5545+t5586; + t5577 = RATIONAL(191.0,14700.0); + t5749 = t5546+t5577; + t5574 = RATIONAL(-529.0,14700.0); + t5551 = t5595*t5607; + t5748 = t5574+t5551; + t5552 = t5593*y; + t5747 = t5538+t5552; + t5606 = RATIONAL(-9.0,98.0); + t5557 = t5598*t5607; + t5746 = t5606+t5557; + t5745 = t5545+t5576; + t5563 = t5599*y; + t5744 = t5568+t5563; + t5743 = t5565+t5573; + t5722 = z*RATIONAL(-1.0,100.0); + t5532 = y*t5722; + t5742 = t5566+t5532; + t5589 = RATIONAL(-1.0,350.0); + t5556 = t5589*x; + t5741 = t5570+t5556; + t5740 = t5571+t5532; + t5541 = x*t5566; + t5739 = t5566+t5541; + t5562 = t5589*y; + t5738 = t5570+t5562; + t5737 = t5568+t5541; + t5600 = RATIONAL(4.0,75.0); + t5736 = t5600+t5557; + t5735 = t5600+t5546; + t5580 = RATIONAL(166.0,3675.0); + t5734 = t5580+t5554; + t5733 = t5542+t5560; + t5731 = t5557+t5579; + t5730 = t5559+t5541; + t5729 = t5570+t5538; + t5728 = t5567+t5551; + t5727 = t5558+t5580; + t5572 = RATIONAL(3.0,25.0)*t5609; + t5695 = t5572+t5553; + t5726 = t5606+t5545+t5695; + t5725 = t5557+RATIONAL(-57.0,490.0)+t5695; + t5688 = t5538+t5762; + t5724 = t5688+t5748; + t5723 = x*y; + t5591 = RATIONAL(1.0,175.0); + t5544 = t5591*x; + t5524 = y*t5550; + t5720 = t5524+t5564; + t5719 = t5569+t5553; + t5527 = y*t5544; + t5718 = t5547+t5527; + t5717 = t5567+t5561; + t5525 = x*t5560; + t5716 = t5525+t5550; + t5531 = x*t5563; + t5715 = t5547+t5531; + t5714 = t5544+t5531; + t5548 = t5591*y; + t5713 = t5565+t5548; + t5712 = t5565+t5563; + t5711 = t5544+t5527; + t5533 = y*t5556; + t5710 = t5544+t5533; + t5709 = t5525+t5564; + t5707 = t5563+t5534; + t5706 = t5547+t5534; + t5705 = t5531+t5548; + t5704 = t5566+t5567; + t5703 = t5569+t5570; + t5702 = t5527+t5563; + t5701 = t5524+t5550; + t5700 = t5544+t5534; + t5699 = t5572+t5561; + t5698 = t5547+t5533; + t5697 = t5548+t5533; + t5696 = t5545+t5549; + t5694 = t5572+RATIONAL(-61.0,490.0); + t5693 = t5560+t5699; + t5692 = t5546+t5704; + t5536 = y*t5568; + t5691 = t5536+t5759; + t5690 = t5567+t5713; + t5689 = t5541+t5728; + t5687 = t5564+t5728; + t5686 = t5552+t5762; + t5685 = t5551+t5704; + t5684 = t5567+t5712; + t5683 = t5562+t5763; + t5682 = t5552+t5699; + t5681 = t5539+t5765; + t5543 = y*t5570; + t5680 = t5543+t5759; + t5679 = t5556+t5765; + t5678 = t5555+t5763; + t5677 = t5538+t5763; + t5676 = t5557+t5549+t5694; + t5605 = RATIONAL(-1.0,10.0); + t5675 = t5605+t5551+t5699; + t5674 = t5545+RATIONAL(431.0,14700.0)+t5717; + t5673 = t5557+RATIONAL(136.0,3675.0)+t5719; + t5672 = t5605+t5572+t5696; + t5671 = t5551+t5553+t5694; + t5670 = t5542+t5571+t5686; + t5669 = t5553+t5703+t5735; + t5668 = t5531+t5726; + t5667 = t5539+t5550+t5685; + t5666 = t5693+t5746; + t5665 = t5527+t5726; + t5664 = t5682+t5746; + t5663 = t5693+t5758; + t5662 = t5568+t5548+t5680; + t5661 = t5688+t5772; + t5660 = t5563+t5725; + t5530 = x*t5722; + t5659 = t5544+t5530+t5692; + t5658 = t5558+t5703+t5730; + t5657 = t5570+t5548+t5691; + t5656 = t5546+t5571+t5576+t5717; + t5655 = t5682+t5758; + t5654 = t5690+t5745; + t5653 = t5570+t5563+t5680; + t5652 = t5683+t5731; + t5651 = t5684+t5740; + t5650 = t5691+t5744; + t5528 = x*t5721; + t5649 = t5528+t5547+t5692; + t5648 = t5678+t5731; + t5647 = t5568+t5719+t5735; + t5646 = t5542+t5567+t5586+t5696; + t5645 = t5681+t5761; + t5644 = t5548+t5725; + t5643 = t5689+t5757; + t5642 = t5679+t5737; + t5641 = t5670+t5770; + t5640 = t5653+t5754; + t5639 = t5525+t5539+t5724; + t5638 = t5657+t5754; + t5529 = RATIONAL(-1.0,700.0)*t5723; + t5637 = t5529+t5559+t5678+t5727; + t5636 = t5661+t5770; + t5526 = RATIONAL(1.0,700.0)*t5723; + t5635 = t5542+t5526+t5681+t5734; + t5634 = t5651+t5749; + t5633 = t5659+t5768; + t5632 = t5658+t5755; + t5631 = t5689+t5743+t5771; + t5630 = t5533+t5581+t5679+t5712; + t5629 = t5683+t5698+t5732; + t5628 = t5524+t5541+t5724; + t5627 = t5531+t5573+t5551+t5564+t5684; + t5626 = t5558+t5581+t5662; + t5625 = t5670+t5748; + t5624 = t5649+t5768; + t5623 = t5537+t5677+t5766; + t5622 = t5650+t5754; + t5621 = t5690+t5700+t5749; + t5620 = t5565+t5577+t5649; + t5540 = x*t5570; + t5619 = t5540+t5542+t5763+t5766; + t5618 = t5642+t5734; + t5617 = t5573+t5527+t5687+t5713; + t5616 = t5662+t5754; + t5615 = t5667+t5743; + t5614 = t5678+t5710+t5732; + t5613 = t5535+t5565+t5567+t5530+t5533+t5749; + t5612 = t5677+t5727+t5738; + t5611 = t5534+t5536+t5681+t5755; + t5610 = t5549+t5574+t5685+t5733; + coeff_dzz_m2_m2_m2 = t5552+t5550+t5566+t5639; + coeff_dzz_m1_m2_m2 = t5527+t5624+t5747; + coeff_dzz_0_m2_m2 = t5566+t5538+t5686+t5750; + coeff_dzz_p1_m2_m2 = t5531+t5633+t5747; + coeff_dzz_p2_m2_m2 = t5552+t5628+t5756; + coeff_dzz_m2_m1_m2 = t5535+t5615+t5702; + coeff_dzz_m1_m1_m2 = t5535+t5620+t5707; + coeff_dzz_0_m1_m2 = t5535+t5566+t5684+t5745; + coeff_dzz_p1_m1_m2 = t5563+t5566+t5544+t5613; + coeff_dzz_p2_m1_m2 = t5535+t5627+t5739; + coeff_dzz_m2_0_m2 = t5667+t5757; + coeff_dzz_m1_0_m2 = t5649+t5752; + coeff_dzz_0_0_m2 = t5566+t5674; + coeff_dzz_p1_0_m2 = t5659+t5752; + coeff_dzz_p2_0_m2 = t5643+t5756; + coeff_dzz_m2_p1_m2 = t5532+t5615+t5705; + coeff_dzz_m1_p1_m2 = t5532+t5620+t5697; + coeff_dzz_0_p1_m2 = t5654+t5742; + coeff_dzz_p1_p1_m2 = t5530+t5621+t5742; + coeff_dzz_p2_p1_m2 = t5532+t5617+t5739; + coeff_dzz_m2_p2_m2 = t5539+t5610+t5701; + coeff_dzz_m1_p2_m2 = t5531+t5624+t5733; + coeff_dzz_0_p2_m2 = t5566+t5560+t5646; + coeff_dzz_p1_p2_m2 = t5527+t5633+t5733; + coeff_dzz_p2_p2_m2 = t5541+t5610+t5709; + coeff_dzz_m2_m2_m1 = t5537+t5638+t5714; + coeff_dzz_m1_m2_m1 = t5536+t5632+t5697; + coeff_dzz_0_m2_m1 = t5657+t5736; + coeff_dzz_p1_m2_m1 = t5548+t5611+t5741; + coeff_dzz_p2_m2_m1 = t5540+t5638+t5718; + coeff_dzz_m2_m1_m1 = t5570+t5614+t5764; + coeff_dzz_m1_m1_m1 = t5541+t5637+t5767; + coeff_dzz_0_m1_m1 = t5648+t5767; + coeff_dzz_p1_m1_m1 = t5555+t5635+t5741; + coeff_dzz_p2_m1_m1 = t5570+t5619+t5773; + coeff_dzz_m2_0_m1 = t5537+t5544+t5669; + coeff_dzz_m1_0_m1 = t5658+t5761; + coeff_dzz_0_0_m1 = t5570+t5673; + coeff_dzz_p1_0_m1 = t5645+t5741; + coeff_dzz_p2_0_m1 = t5540+t5547+t5669; + coeff_dzz_m2_p1_m1 = t5544+t5623+t5738; + coeff_dzz_m1_p1_m1 = t5526+t5612+t5730; + coeff_dzz_0_p1_m1 = t5652+t5729; + coeff_dzz_p1_p1_m1 = t5556+t5539+t5529+t5612; + coeff_dzz_p2_p1_m1 = t5540+t5629+t5729; + coeff_dzz_m2_p2_m1 = t5537+t5640+t5711; + coeff_dzz_m1_p2_m1 = t5543+t5632+t5707; + coeff_dzz_0_p2_m1 = t5653+t5736; + coeff_dzz_p1_p2_m1 = t5539+t5570+t5543+t5630; + coeff_dzz_p2_p2_m1 = t5540+t5640+t5715; + coeff_dzz_m2_m2_0 = t5663+t5720; + coeff_dzz_m1_m2_0 = t5666+t5714; + coeff_dzz_0_m2_0 = t5560+t5675; + coeff_dzz_p1_m2_0 = t5666+t5718; + coeff_dzz_p2_m2_0 = t5663+t5716; + coeff_dzz_m2_m1_0 = t5564+t5548+t5668; + coeff_dzz_m1_m1_0 = t5644+t5710; + coeff_dzz_0_m1_0 = t5548+t5671; + coeff_dzz_p1_m1_0 = t5644+t5706; + coeff_dzz_p2_m1_0 = t5550+t5548+t5665; + coeff_dzz_m2_0_0 = t5564+t5672; + coeff_dzz_m1_0_0 = t5544+t5676; + coeff_dzz_0_0_0 = t5549+RATIONAL(-13.0,98.0)+t5551+t5572; + coeff_dzz_p1_0_0 = t5547+t5676; + coeff_dzz_p2_0_0 = t5550+t5672; + coeff_dzz_m2_p1_0 = t5563+t5564+t5665; + coeff_dzz_m1_p1_0 = t5660+t5700; + coeff_dzz_0_p1_0 = t5563+t5671; + coeff_dzz_p1_p1_0 = t5660+t5698; + coeff_dzz_p2_p1_0 = t5550+t5563+t5668; + coeff_dzz_m2_p2_0 = t5655+t5709; + coeff_dzz_m1_p2_0 = t5664+t5711; + coeff_dzz_0_p2_0 = t5552+t5675; + coeff_dzz_p1_p2_0 = t5664+t5715; + coeff_dzz_p2_p2_0 = t5655+t5701; + coeff_dzz_m2_m2_p1 = t5540+t5616+t5714; + coeff_dzz_m1_m2_p1 = t5533+t5559+t5539+t5626; + coeff_dzz_0_m2_p1 = t5662+t5736; + coeff_dzz_p1_m2_p1 = t5534+t5541+t5556+t5626; + coeff_dzz_p2_m2_p1 = t5537+t5616+t5718; + coeff_dzz_m2_m1_p1 = t5540+t5614+t5751; + coeff_dzz_m1_m1_p1 = t5539+t5637+t5751; + coeff_dzz_0_m1_p1 = t5648+t5751; + coeff_dzz_p1_m1_p1 = t5538+t5526+t5555+t5618; + coeff_dzz_p2_m1_p1 = t5568+t5623+t5773; + coeff_dzz_m2_0_p1 = t5540+t5544+t5647; + coeff_dzz_m1_0_p1 = t5645+t5753; + coeff_dzz_0_0_p1 = t5568+t5673; + coeff_dzz_p1_0_p1 = t5642+t5761; + coeff_dzz_p2_0_p1 = t5537+t5547+t5647; + coeff_dzz_m2_p1_p1 = t5568+t5544+t5562+t5619; + coeff_dzz_m1_p1_p1 = t5562+t5635+t5753; + coeff_dzz_0_p1_p1 = t5568+t5542+t5652; + coeff_dzz_p1_p1_p1 = t5542+t5529+t5562+t5618; + coeff_dzz_p2_p1_p1 = t5568+t5629+t5764; + coeff_dzz_m2_p2_p1 = t5540+t5622+t5711; + coeff_dzz_m1_p2_p1 = t5559+t5611+t5744; + coeff_dzz_0_p2_p1 = t5650+t5736; + coeff_dzz_p1_p2_p1 = t5536+t5630+t5737; + coeff_dzz_p2_p2_p1 = t5537+t5622+t5715; + coeff_dzz_m2_m2_p2 = t5541+t5625+t5716; + coeff_dzz_m1_m2_p2 = t5530+t5641+t5718; + coeff_dzz_0_m2_p2 = t5571+t5552+t5646; + coeff_dzz_p1_m2_p2 = t5528+t5641+t5714; + coeff_dzz_p2_m2_p2 = t5539+t5625+t5720; + coeff_dzz_m2_m1_p2 = t5532+t5631+t5702; + coeff_dzz_m1_m1_p2 = t5530+t5634+t5706; + coeff_dzz_0_m1_p2 = t5651+t5745; + coeff_dzz_p1_m1_p2 = t5528+t5634+t5710; + coeff_dzz_p2_m1_p2 = t5539+t5627+t5740; + coeff_dzz_m2_0_p2 = t5643+t5771; + coeff_dzz_m1_0_p2 = t5530+t5547+t5656; + coeff_dzz_0_0_p2 = t5571+t5674; + coeff_dzz_p1_0_p2 = t5544+t5528+t5656; + coeff_dzz_p2_0_p2 = t5687+t5757+t5760; + coeff_dzz_m2_p1_p2 = t5535+t5631+t5705; + coeff_dzz_m1_p1_p2 = t5548+t5571+t5547+t5613; + coeff_dzz_0_p1_p2 = t5654+t5769; + coeff_dzz_p1_p1_p2 = t5528+t5621+t5769; + coeff_dzz_p2_p1_p2 = t5535+t5617+t5760; + coeff_dzz_m2_p2_p2 = t5560+t5628+t5771; + coeff_dzz_m1_p2_p2 = t5530+t5636+t5715; + coeff_dzz_0_p2_p2 = t5661+t5750; + coeff_dzz_p1_p2_p2 = t5528+t5636+t5711; + coeff_dzz_p2_p2_p2 = t5564+t5639+t5772; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/coeff-I.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/coeff-I.dcl.c new file mode 100644 index 0000000..601e5c7 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/coeff-I.dcl.c @@ -0,0 +1,8 @@ +fp coeff_I_0_0_0, + coeff_I_p1_0_0, + coeff_I_0_p1_0, + coeff_I_p1_p1_0, + coeff_I_0_0_p1, + coeff_I_p1_0_p1, + coeff_I_0_p1_p1, + coeff_I_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/coeff-dx.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/coeff-dx.dcl.c new file mode 100644 index 0000000..c546b35 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/coeff-dx.dcl.c @@ -0,0 +1,8 @@ +fp coeff_dx_0_0_0, + coeff_dx_p1_0_0, + coeff_dx_0_p1_0, + coeff_dx_p1_p1_0, + coeff_dx_0_0_p1, + coeff_dx_p1_0_p1, + coeff_dx_0_p1_p1, + coeff_dx_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/coeff-dy.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/coeff-dy.dcl.c new file mode 100644 index 0000000..4e5bbb6 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/coeff-dy.dcl.c @@ -0,0 +1,8 @@ +fp coeff_dy_0_0_0, + coeff_dy_p1_0_0, + coeff_dy_0_p1_0, + coeff_dy_p1_p1_0, + coeff_dy_0_0_p1, + coeff_dy_p1_0_p1, + coeff_dy_0_p1_p1, + coeff_dy_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/coeff-dz.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/coeff-dz.dcl.c new file mode 100644 index 0000000..3ee8587 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/coeff-dz.dcl.c @@ -0,0 +1,8 @@ +fp coeff_dz_0_0_0, + coeff_dz_p1_0_0, + coeff_dz_0_p1_0, + coeff_dz_p1_p1_0, + coeff_dz_0_0_p1, + coeff_dz_p1_0_p1, + coeff_dz_0_p1_p1, + coeff_dz_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/data-var.assign.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/data-var.assign.c new file mode 100644 index 0000000..81a6619 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/data-var.assign.c @@ -0,0 +1,8 @@ +data_0_0_0 = DATA(0,0,0); +data_p1_0_0 = DATA(1,0,0); +data_0_p1_0 = DATA(0,1,0); +data_p1_p1_0 = DATA(1,1,0); +data_0_0_p1 = DATA(0,0,1); +data_p1_0_p1 = DATA(1,0,1); +data_0_p1_p1 = DATA(0,1,1); +data_p1_p1_p1 = DATA(1,1,1); diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/data-var.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/data-var.dcl.c new file mode 100644 index 0000000..f1e21eb --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/data-var.dcl.c @@ -0,0 +1,8 @@ +fp data_0_0_0, + data_p1_0_0, + data_0_p1_0, + data_p1_p1_0, + data_0_0_p1, + data_p1_0_p1, + data_0_p1_p1, + data_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/interp-I.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/interp-I.compute.c new file mode 100644 index 0000000..3997d06 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/interp-I.compute.c @@ -0,0 +1,9 @@ +result = + coeff_I_0_0_0*data_0_0_0 + + coeff_I_p1_0_0*data_p1_0_0 + + coeff_I_0_p1_0*data_0_p1_0 + + coeff_I_p1_p1_0*data_p1_p1_0 + + coeff_I_0_0_p1*data_0_0_p1 + + coeff_I_p1_0_p1*data_p1_0_p1 + + coeff_I_0_p1_p1*data_0_p1_p1 + + coeff_I_p1_p1_p1*data_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/interp-dx.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/interp-dx.compute.c new file mode 100644 index 0000000..452f263 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/interp-dx.compute.c @@ -0,0 +1,9 @@ +result = + coeff_dx_0_0_0*data_0_0_0 + + coeff_dx_p1_0_0*data_p1_0_0 + + coeff_dx_0_p1_0*data_0_p1_0 + + coeff_dx_p1_p1_0*data_p1_p1_0 + + coeff_dx_0_0_p1*data_0_0_p1 + + coeff_dx_p1_0_p1*data_p1_0_p1 + + coeff_dx_0_p1_p1*data_0_p1_p1 + + coeff_dx_p1_p1_p1*data_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/interp-dy.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/interp-dy.compute.c new file mode 100644 index 0000000..e659b18 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/interp-dy.compute.c @@ -0,0 +1,9 @@ +result = + coeff_dy_0_0_0*data_0_0_0 + + coeff_dy_p1_0_0*data_p1_0_0 + + coeff_dy_0_p1_0*data_0_p1_0 + + coeff_dy_p1_p1_0*data_p1_p1_0 + + coeff_dy_0_0_p1*data_0_0_p1 + + coeff_dy_p1_0_p1*data_p1_0_p1 + + coeff_dy_0_p1_p1*data_0_p1_p1 + + coeff_dy_p1_p1_p1*data_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/interp-dz.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/interp-dz.compute.c new file mode 100644 index 0000000..0074979 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size2/interp-dz.compute.c @@ -0,0 +1,9 @@ +result = + coeff_dz_0_0_0*data_0_0_0 + + coeff_dz_p1_0_0*data_p1_0_0 + + coeff_dz_0_p1_0*data_0_p1_0 + + coeff_dz_p1_p1_0*data_p1_p1_0 + + coeff_dz_0_0_p1*data_0_0_p1 + + coeff_dz_p1_0_p1*data_p1_0_p1 + + coeff_dz_0_p1_p1*data_0_p1_p1 + + coeff_dz_p1_p1_p1*data_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-I.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-I.dcl.c new file mode 100644 index 0000000..4cf0632 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-I.dcl.c @@ -0,0 +1,27 @@ +fp coeff_I_m1_m1_m1, + coeff_I_0_m1_m1, + coeff_I_p1_m1_m1, + coeff_I_m1_0_m1, + coeff_I_0_0_m1, + coeff_I_p1_0_m1, + coeff_I_m1_p1_m1, + coeff_I_0_p1_m1, + coeff_I_p1_p1_m1, + coeff_I_m1_m1_0, + coeff_I_0_m1_0, + coeff_I_p1_m1_0, + coeff_I_m1_0_0, + coeff_I_0_0_0, + coeff_I_p1_0_0, + coeff_I_m1_p1_0, + coeff_I_0_p1_0, + coeff_I_p1_p1_0, + coeff_I_m1_m1_p1, + coeff_I_0_m1_p1, + coeff_I_p1_m1_p1, + coeff_I_m1_0_p1, + coeff_I_0_0_p1, + coeff_I_p1_0_p1, + coeff_I_m1_p1_p1, + coeff_I_0_p1_p1, + coeff_I_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-dx.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-dx.dcl.c new file mode 100644 index 0000000..9fc8711 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-dx.dcl.c @@ -0,0 +1,27 @@ +fp coeff_dx_m1_m1_m1, + coeff_dx_0_m1_m1, + coeff_dx_p1_m1_m1, + coeff_dx_m1_0_m1, + coeff_dx_0_0_m1, + coeff_dx_p1_0_m1, + coeff_dx_m1_p1_m1, + coeff_dx_0_p1_m1, + coeff_dx_p1_p1_m1, + coeff_dx_m1_m1_0, + coeff_dx_0_m1_0, + coeff_dx_p1_m1_0, + coeff_dx_m1_0_0, + coeff_dx_0_0_0, + coeff_dx_p1_0_0, + coeff_dx_m1_p1_0, + coeff_dx_0_p1_0, + coeff_dx_p1_p1_0, + coeff_dx_m1_m1_p1, + coeff_dx_0_m1_p1, + coeff_dx_p1_m1_p1, + coeff_dx_m1_0_p1, + coeff_dx_0_0_p1, + coeff_dx_p1_0_p1, + coeff_dx_m1_p1_p1, + coeff_dx_0_p1_p1, + coeff_dx_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-dxx.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-dxx.dcl.c new file mode 100644 index 0000000..27144ed --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-dxx.dcl.c @@ -0,0 +1,27 @@ +fp coeff_dxx_m1_m1_m1, + coeff_dxx_0_m1_m1, + coeff_dxx_p1_m1_m1, + coeff_dxx_m1_0_m1, + coeff_dxx_0_0_m1, + coeff_dxx_p1_0_m1, + coeff_dxx_m1_p1_m1, + coeff_dxx_0_p1_m1, + coeff_dxx_p1_p1_m1, + coeff_dxx_m1_m1_0, + coeff_dxx_0_m1_0, + coeff_dxx_p1_m1_0, + coeff_dxx_m1_0_0, + coeff_dxx_0_0_0, + coeff_dxx_p1_0_0, + coeff_dxx_m1_p1_0, + coeff_dxx_0_p1_0, + coeff_dxx_p1_p1_0, + coeff_dxx_m1_m1_p1, + coeff_dxx_0_m1_p1, + coeff_dxx_p1_m1_p1, + coeff_dxx_m1_0_p1, + coeff_dxx_0_0_p1, + coeff_dxx_p1_0_p1, + coeff_dxx_m1_p1_p1, + coeff_dxx_0_p1_p1, + coeff_dxx_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-dxy.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-dxy.dcl.c new file mode 100644 index 0000000..1707bad --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-dxy.dcl.c @@ -0,0 +1,27 @@ +fp coeff_dxy_m1_m1_m1, + coeff_dxy_0_m1_m1, + coeff_dxy_p1_m1_m1, + coeff_dxy_m1_0_m1, + coeff_dxy_0_0_m1, + coeff_dxy_p1_0_m1, + coeff_dxy_m1_p1_m1, + coeff_dxy_0_p1_m1, + coeff_dxy_p1_p1_m1, + coeff_dxy_m1_m1_0, + coeff_dxy_0_m1_0, + coeff_dxy_p1_m1_0, + coeff_dxy_m1_0_0, + coeff_dxy_0_0_0, + coeff_dxy_p1_0_0, + coeff_dxy_m1_p1_0, + coeff_dxy_0_p1_0, + coeff_dxy_p1_p1_0, + coeff_dxy_m1_m1_p1, + coeff_dxy_0_m1_p1, + coeff_dxy_p1_m1_p1, + coeff_dxy_m1_0_p1, + coeff_dxy_0_0_p1, + coeff_dxy_p1_0_p1, + coeff_dxy_m1_p1_p1, + coeff_dxy_0_p1_p1, + coeff_dxy_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-dxz.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-dxz.dcl.c new file mode 100644 index 0000000..3ce552e --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-dxz.dcl.c @@ -0,0 +1,27 @@ +fp coeff_dxz_m1_m1_m1, + coeff_dxz_0_m1_m1, + coeff_dxz_p1_m1_m1, + coeff_dxz_m1_0_m1, + coeff_dxz_0_0_m1, + coeff_dxz_p1_0_m1, + coeff_dxz_m1_p1_m1, + coeff_dxz_0_p1_m1, + coeff_dxz_p1_p1_m1, + coeff_dxz_m1_m1_0, + coeff_dxz_0_m1_0, + coeff_dxz_p1_m1_0, + coeff_dxz_m1_0_0, + coeff_dxz_0_0_0, + coeff_dxz_p1_0_0, + coeff_dxz_m1_p1_0, + coeff_dxz_0_p1_0, + coeff_dxz_p1_p1_0, + coeff_dxz_m1_m1_p1, + coeff_dxz_0_m1_p1, + coeff_dxz_p1_m1_p1, + coeff_dxz_m1_0_p1, + coeff_dxz_0_0_p1, + coeff_dxz_p1_0_p1, + coeff_dxz_m1_p1_p1, + coeff_dxz_0_p1_p1, + coeff_dxz_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-dy.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-dy.dcl.c new file mode 100644 index 0000000..5c3f323 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-dy.dcl.c @@ -0,0 +1,27 @@ +fp coeff_dy_m1_m1_m1, + coeff_dy_0_m1_m1, + coeff_dy_p1_m1_m1, + coeff_dy_m1_0_m1, + coeff_dy_0_0_m1, + coeff_dy_p1_0_m1, + coeff_dy_m1_p1_m1, + coeff_dy_0_p1_m1, + coeff_dy_p1_p1_m1, + coeff_dy_m1_m1_0, + coeff_dy_0_m1_0, + coeff_dy_p1_m1_0, + coeff_dy_m1_0_0, + coeff_dy_0_0_0, + coeff_dy_p1_0_0, + coeff_dy_m1_p1_0, + coeff_dy_0_p1_0, + coeff_dy_p1_p1_0, + coeff_dy_m1_m1_p1, + coeff_dy_0_m1_p1, + coeff_dy_p1_m1_p1, + coeff_dy_m1_0_p1, + coeff_dy_0_0_p1, + coeff_dy_p1_0_p1, + coeff_dy_m1_p1_p1, + coeff_dy_0_p1_p1, + coeff_dy_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-dyy.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-dyy.dcl.c new file mode 100644 index 0000000..08b14b5 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-dyy.dcl.c @@ -0,0 +1,27 @@ +fp coeff_dyy_m1_m1_m1, + coeff_dyy_0_m1_m1, + coeff_dyy_p1_m1_m1, + coeff_dyy_m1_0_m1, + coeff_dyy_0_0_m1, + coeff_dyy_p1_0_m1, + coeff_dyy_m1_p1_m1, + coeff_dyy_0_p1_m1, + coeff_dyy_p1_p1_m1, + coeff_dyy_m1_m1_0, + coeff_dyy_0_m1_0, + coeff_dyy_p1_m1_0, + coeff_dyy_m1_0_0, + coeff_dyy_0_0_0, + coeff_dyy_p1_0_0, + coeff_dyy_m1_p1_0, + coeff_dyy_0_p1_0, + coeff_dyy_p1_p1_0, + coeff_dyy_m1_m1_p1, + coeff_dyy_0_m1_p1, + coeff_dyy_p1_m1_p1, + coeff_dyy_m1_0_p1, + coeff_dyy_0_0_p1, + coeff_dyy_p1_0_p1, + coeff_dyy_m1_p1_p1, + coeff_dyy_0_p1_p1, + coeff_dyy_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-dyz.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-dyz.dcl.c new file mode 100644 index 0000000..a3d0575 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-dyz.dcl.c @@ -0,0 +1,27 @@ +fp coeff_dyz_m1_m1_m1, + coeff_dyz_0_m1_m1, + coeff_dyz_p1_m1_m1, + coeff_dyz_m1_0_m1, + coeff_dyz_0_0_m1, + coeff_dyz_p1_0_m1, + coeff_dyz_m1_p1_m1, + coeff_dyz_0_p1_m1, + coeff_dyz_p1_p1_m1, + coeff_dyz_m1_m1_0, + coeff_dyz_0_m1_0, + coeff_dyz_p1_m1_0, + coeff_dyz_m1_0_0, + coeff_dyz_0_0_0, + coeff_dyz_p1_0_0, + coeff_dyz_m1_p1_0, + coeff_dyz_0_p1_0, + coeff_dyz_p1_p1_0, + coeff_dyz_m1_m1_p1, + coeff_dyz_0_m1_p1, + coeff_dyz_p1_m1_p1, + coeff_dyz_m1_0_p1, + coeff_dyz_0_0_p1, + coeff_dyz_p1_0_p1, + coeff_dyz_m1_p1_p1, + coeff_dyz_0_p1_p1, + coeff_dyz_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-dz.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-dz.dcl.c new file mode 100644 index 0000000..e9cb0e9 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-dz.dcl.c @@ -0,0 +1,27 @@ +fp coeff_dz_m1_m1_m1, + coeff_dz_0_m1_m1, + coeff_dz_p1_m1_m1, + coeff_dz_m1_0_m1, + coeff_dz_0_0_m1, + coeff_dz_p1_0_m1, + coeff_dz_m1_p1_m1, + coeff_dz_0_p1_m1, + coeff_dz_p1_p1_m1, + coeff_dz_m1_m1_0, + coeff_dz_0_m1_0, + coeff_dz_p1_m1_0, + coeff_dz_m1_0_0, + coeff_dz_0_0_0, + coeff_dz_p1_0_0, + coeff_dz_m1_p1_0, + coeff_dz_0_p1_0, + coeff_dz_p1_p1_0, + coeff_dz_m1_m1_p1, + coeff_dz_0_m1_p1, + coeff_dz_p1_m1_p1, + coeff_dz_m1_0_p1, + coeff_dz_0_0_p1, + coeff_dz_p1_0_p1, + coeff_dz_m1_p1_p1, + coeff_dz_0_p1_p1, + coeff_dz_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-dzz.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-dzz.dcl.c new file mode 100644 index 0000000..e87aa91 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/coeff-dzz.dcl.c @@ -0,0 +1,27 @@ +fp coeff_dzz_m1_m1_m1, + coeff_dzz_0_m1_m1, + coeff_dzz_p1_m1_m1, + coeff_dzz_m1_0_m1, + coeff_dzz_0_0_m1, + coeff_dzz_p1_0_m1, + coeff_dzz_m1_p1_m1, + coeff_dzz_0_p1_m1, + coeff_dzz_p1_p1_m1, + coeff_dzz_m1_m1_0, + coeff_dzz_0_m1_0, + coeff_dzz_p1_m1_0, + coeff_dzz_m1_0_0, + coeff_dzz_0_0_0, + coeff_dzz_p1_0_0, + coeff_dzz_m1_p1_0, + coeff_dzz_0_p1_0, + coeff_dzz_p1_p1_0, + coeff_dzz_m1_m1_p1, + coeff_dzz_0_m1_p1, + coeff_dzz_p1_m1_p1, + coeff_dzz_m1_0_p1, + coeff_dzz_0_0_p1, + coeff_dzz_p1_0_p1, + coeff_dzz_m1_p1_p1, + coeff_dzz_0_p1_p1, + coeff_dzz_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/data-var.assign.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/data-var.assign.c new file mode 100644 index 0000000..7ea5a98 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/data-var.assign.c @@ -0,0 +1,27 @@ +data_m1_m1_m1 = DATA(-1,-1,-1); +data_0_m1_m1 = DATA(0,-1,-1); +data_p1_m1_m1 = DATA(1,-1,-1); +data_m1_0_m1 = DATA(-1,0,-1); +data_0_0_m1 = DATA(0,0,-1); +data_p1_0_m1 = DATA(1,0,-1); +data_m1_p1_m1 = DATA(-1,1,-1); +data_0_p1_m1 = DATA(0,1,-1); +data_p1_p1_m1 = DATA(1,1,-1); +data_m1_m1_0 = DATA(-1,-1,0); +data_0_m1_0 = DATA(0,-1,0); +data_p1_m1_0 = DATA(1,-1,0); +data_m1_0_0 = DATA(-1,0,0); +data_0_0_0 = DATA(0,0,0); +data_p1_0_0 = DATA(1,0,0); +data_m1_p1_0 = DATA(-1,1,0); +data_0_p1_0 = DATA(0,1,0); +data_p1_p1_0 = DATA(1,1,0); +data_m1_m1_p1 = DATA(-1,-1,1); +data_0_m1_p1 = DATA(0,-1,1); +data_p1_m1_p1 = DATA(1,-1,1); +data_m1_0_p1 = DATA(-1,0,1); +data_0_0_p1 = DATA(0,0,1); +data_p1_0_p1 = DATA(1,0,1); +data_m1_p1_p1 = DATA(-1,1,1); +data_0_p1_p1 = DATA(0,1,1); +data_p1_p1_p1 = DATA(1,1,1); diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/data-var.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/data-var.dcl.c new file mode 100644 index 0000000..5128c77 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/data-var.dcl.c @@ -0,0 +1,27 @@ +fp data_m1_m1_m1, + data_0_m1_m1, + data_p1_m1_m1, + data_m1_0_m1, + data_0_0_m1, + data_p1_0_m1, + data_m1_p1_m1, + data_0_p1_m1, + data_p1_p1_m1, + data_m1_m1_0, + data_0_m1_0, + data_p1_m1_0, + data_m1_0_0, + data_0_0_0, + data_p1_0_0, + data_m1_p1_0, + data_0_p1_0, + data_p1_p1_0, + data_m1_m1_p1, + data_0_m1_p1, + data_p1_m1_p1, + data_m1_0_p1, + data_0_0_p1, + data_p1_0_p1, + data_m1_p1_p1, + data_0_p1_p1, + data_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-I.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-I.compute.c new file mode 100644 index 0000000..3a7cac2 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-I.compute.c @@ -0,0 +1,28 @@ +result = + coeff_I_m1_m1_m1*data_m1_m1_m1 + + coeff_I_0_m1_m1*data_0_m1_m1 + + coeff_I_p1_m1_m1*data_p1_m1_m1 + + coeff_I_m1_0_m1*data_m1_0_m1 + + coeff_I_0_0_m1*data_0_0_m1 + + coeff_I_p1_0_m1*data_p1_0_m1 + + coeff_I_m1_p1_m1*data_m1_p1_m1 + + coeff_I_0_p1_m1*data_0_p1_m1 + + coeff_I_p1_p1_m1*data_p1_p1_m1 + + coeff_I_m1_m1_0*data_m1_m1_0 + + coeff_I_0_m1_0*data_0_m1_0 + + coeff_I_p1_m1_0*data_p1_m1_0 + + coeff_I_m1_0_0*data_m1_0_0 + + coeff_I_0_0_0*data_0_0_0 + + coeff_I_p1_0_0*data_p1_0_0 + + coeff_I_m1_p1_0*data_m1_p1_0 + + coeff_I_0_p1_0*data_0_p1_0 + + coeff_I_p1_p1_0*data_p1_p1_0 + + coeff_I_m1_m1_p1*data_m1_m1_p1 + + coeff_I_0_m1_p1*data_0_m1_p1 + + coeff_I_p1_m1_p1*data_p1_m1_p1 + + coeff_I_m1_0_p1*data_m1_0_p1 + + coeff_I_0_0_p1*data_0_0_p1 + + coeff_I_p1_0_p1*data_p1_0_p1 + + coeff_I_m1_p1_p1*data_m1_p1_p1 + + coeff_I_0_p1_p1*data_0_p1_p1 + + coeff_I_p1_p1_p1*data_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-dx.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-dx.compute.c new file mode 100644 index 0000000..bd53de0 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-dx.compute.c @@ -0,0 +1,28 @@ +result = + coeff_dx_m1_m1_m1*data_m1_m1_m1 + + coeff_dx_0_m1_m1*data_0_m1_m1 + + coeff_dx_p1_m1_m1*data_p1_m1_m1 + + coeff_dx_m1_0_m1*data_m1_0_m1 + + coeff_dx_0_0_m1*data_0_0_m1 + + coeff_dx_p1_0_m1*data_p1_0_m1 + + coeff_dx_m1_p1_m1*data_m1_p1_m1 + + coeff_dx_0_p1_m1*data_0_p1_m1 + + coeff_dx_p1_p1_m1*data_p1_p1_m1 + + coeff_dx_m1_m1_0*data_m1_m1_0 + + coeff_dx_0_m1_0*data_0_m1_0 + + coeff_dx_p1_m1_0*data_p1_m1_0 + + coeff_dx_m1_0_0*data_m1_0_0 + + coeff_dx_0_0_0*data_0_0_0 + + coeff_dx_p1_0_0*data_p1_0_0 + + coeff_dx_m1_p1_0*data_m1_p1_0 + + coeff_dx_0_p1_0*data_0_p1_0 + + coeff_dx_p1_p1_0*data_p1_p1_0 + + coeff_dx_m1_m1_p1*data_m1_m1_p1 + + coeff_dx_0_m1_p1*data_0_m1_p1 + + coeff_dx_p1_m1_p1*data_p1_m1_p1 + + coeff_dx_m1_0_p1*data_m1_0_p1 + + coeff_dx_0_0_p1*data_0_0_p1 + + coeff_dx_p1_0_p1*data_p1_0_p1 + + coeff_dx_m1_p1_p1*data_m1_p1_p1 + + coeff_dx_0_p1_p1*data_0_p1_p1 + + coeff_dx_p1_p1_p1*data_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-dxx.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-dxx.compute.c new file mode 100644 index 0000000..5ac4e94 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-dxx.compute.c @@ -0,0 +1,28 @@ +result = + coeff_dxx_m1_m1_m1*data_m1_m1_m1 + + coeff_dxx_0_m1_m1*data_0_m1_m1 + + coeff_dxx_p1_m1_m1*data_p1_m1_m1 + + coeff_dxx_m1_0_m1*data_m1_0_m1 + + coeff_dxx_0_0_m1*data_0_0_m1 + + coeff_dxx_p1_0_m1*data_p1_0_m1 + + coeff_dxx_m1_p1_m1*data_m1_p1_m1 + + coeff_dxx_0_p1_m1*data_0_p1_m1 + + coeff_dxx_p1_p1_m1*data_p1_p1_m1 + + coeff_dxx_m1_m1_0*data_m1_m1_0 + + coeff_dxx_0_m1_0*data_0_m1_0 + + coeff_dxx_p1_m1_0*data_p1_m1_0 + + coeff_dxx_m1_0_0*data_m1_0_0 + + coeff_dxx_0_0_0*data_0_0_0 + + coeff_dxx_p1_0_0*data_p1_0_0 + + coeff_dxx_m1_p1_0*data_m1_p1_0 + + coeff_dxx_0_p1_0*data_0_p1_0 + + coeff_dxx_p1_p1_0*data_p1_p1_0 + + coeff_dxx_m1_m1_p1*data_m1_m1_p1 + + coeff_dxx_0_m1_p1*data_0_m1_p1 + + coeff_dxx_p1_m1_p1*data_p1_m1_p1 + + coeff_dxx_m1_0_p1*data_m1_0_p1 + + coeff_dxx_0_0_p1*data_0_0_p1 + + coeff_dxx_p1_0_p1*data_p1_0_p1 + + coeff_dxx_m1_p1_p1*data_m1_p1_p1 + + coeff_dxx_0_p1_p1*data_0_p1_p1 + + coeff_dxx_p1_p1_p1*data_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-dxy.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-dxy.compute.c new file mode 100644 index 0000000..d951b40 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-dxy.compute.c @@ -0,0 +1,28 @@ +result = + coeff_dxy_m1_m1_m1*data_m1_m1_m1 + + coeff_dxy_0_m1_m1*data_0_m1_m1 + + coeff_dxy_p1_m1_m1*data_p1_m1_m1 + + coeff_dxy_m1_0_m1*data_m1_0_m1 + + coeff_dxy_0_0_m1*data_0_0_m1 + + coeff_dxy_p1_0_m1*data_p1_0_m1 + + coeff_dxy_m1_p1_m1*data_m1_p1_m1 + + coeff_dxy_0_p1_m1*data_0_p1_m1 + + coeff_dxy_p1_p1_m1*data_p1_p1_m1 + + coeff_dxy_m1_m1_0*data_m1_m1_0 + + coeff_dxy_0_m1_0*data_0_m1_0 + + coeff_dxy_p1_m1_0*data_p1_m1_0 + + coeff_dxy_m1_0_0*data_m1_0_0 + + coeff_dxy_0_0_0*data_0_0_0 + + coeff_dxy_p1_0_0*data_p1_0_0 + + coeff_dxy_m1_p1_0*data_m1_p1_0 + + coeff_dxy_0_p1_0*data_0_p1_0 + + coeff_dxy_p1_p1_0*data_p1_p1_0 + + coeff_dxy_m1_m1_p1*data_m1_m1_p1 + + coeff_dxy_0_m1_p1*data_0_m1_p1 + + coeff_dxy_p1_m1_p1*data_p1_m1_p1 + + coeff_dxy_m1_0_p1*data_m1_0_p1 + + coeff_dxy_0_0_p1*data_0_0_p1 + + coeff_dxy_p1_0_p1*data_p1_0_p1 + + coeff_dxy_m1_p1_p1*data_m1_p1_p1 + + coeff_dxy_0_p1_p1*data_0_p1_p1 + + coeff_dxy_p1_p1_p1*data_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-dxz.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-dxz.compute.c new file mode 100644 index 0000000..33e3969 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-dxz.compute.c @@ -0,0 +1,28 @@ +result = + coeff_dxz_m1_m1_m1*data_m1_m1_m1 + + coeff_dxz_0_m1_m1*data_0_m1_m1 + + coeff_dxz_p1_m1_m1*data_p1_m1_m1 + + coeff_dxz_m1_0_m1*data_m1_0_m1 + + coeff_dxz_0_0_m1*data_0_0_m1 + + coeff_dxz_p1_0_m1*data_p1_0_m1 + + coeff_dxz_m1_p1_m1*data_m1_p1_m1 + + coeff_dxz_0_p1_m1*data_0_p1_m1 + + coeff_dxz_p1_p1_m1*data_p1_p1_m1 + + coeff_dxz_m1_m1_0*data_m1_m1_0 + + coeff_dxz_0_m1_0*data_0_m1_0 + + coeff_dxz_p1_m1_0*data_p1_m1_0 + + coeff_dxz_m1_0_0*data_m1_0_0 + + coeff_dxz_0_0_0*data_0_0_0 + + coeff_dxz_p1_0_0*data_p1_0_0 + + coeff_dxz_m1_p1_0*data_m1_p1_0 + + coeff_dxz_0_p1_0*data_0_p1_0 + + coeff_dxz_p1_p1_0*data_p1_p1_0 + + coeff_dxz_m1_m1_p1*data_m1_m1_p1 + + coeff_dxz_0_m1_p1*data_0_m1_p1 + + coeff_dxz_p1_m1_p1*data_p1_m1_p1 + + coeff_dxz_m1_0_p1*data_m1_0_p1 + + coeff_dxz_0_0_p1*data_0_0_p1 + + coeff_dxz_p1_0_p1*data_p1_0_p1 + + coeff_dxz_m1_p1_p1*data_m1_p1_p1 + + coeff_dxz_0_p1_p1*data_0_p1_p1 + + coeff_dxz_p1_p1_p1*data_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-dy.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-dy.compute.c new file mode 100644 index 0000000..59545ac --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-dy.compute.c @@ -0,0 +1,28 @@ +result = + coeff_dy_m1_m1_m1*data_m1_m1_m1 + + coeff_dy_0_m1_m1*data_0_m1_m1 + + coeff_dy_p1_m1_m1*data_p1_m1_m1 + + coeff_dy_m1_0_m1*data_m1_0_m1 + + coeff_dy_0_0_m1*data_0_0_m1 + + coeff_dy_p1_0_m1*data_p1_0_m1 + + coeff_dy_m1_p1_m1*data_m1_p1_m1 + + coeff_dy_0_p1_m1*data_0_p1_m1 + + coeff_dy_p1_p1_m1*data_p1_p1_m1 + + coeff_dy_m1_m1_0*data_m1_m1_0 + + coeff_dy_0_m1_0*data_0_m1_0 + + coeff_dy_p1_m1_0*data_p1_m1_0 + + coeff_dy_m1_0_0*data_m1_0_0 + + coeff_dy_0_0_0*data_0_0_0 + + coeff_dy_p1_0_0*data_p1_0_0 + + coeff_dy_m1_p1_0*data_m1_p1_0 + + coeff_dy_0_p1_0*data_0_p1_0 + + coeff_dy_p1_p1_0*data_p1_p1_0 + + coeff_dy_m1_m1_p1*data_m1_m1_p1 + + coeff_dy_0_m1_p1*data_0_m1_p1 + + coeff_dy_p1_m1_p1*data_p1_m1_p1 + + coeff_dy_m1_0_p1*data_m1_0_p1 + + coeff_dy_0_0_p1*data_0_0_p1 + + coeff_dy_p1_0_p1*data_p1_0_p1 + + coeff_dy_m1_p1_p1*data_m1_p1_p1 + + coeff_dy_0_p1_p1*data_0_p1_p1 + + coeff_dy_p1_p1_p1*data_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-dyy.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-dyy.compute.c new file mode 100644 index 0000000..70ae839 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-dyy.compute.c @@ -0,0 +1,28 @@ +result = + coeff_dyy_m1_m1_m1*data_m1_m1_m1 + + coeff_dyy_0_m1_m1*data_0_m1_m1 + + coeff_dyy_p1_m1_m1*data_p1_m1_m1 + + coeff_dyy_m1_0_m1*data_m1_0_m1 + + coeff_dyy_0_0_m1*data_0_0_m1 + + coeff_dyy_p1_0_m1*data_p1_0_m1 + + coeff_dyy_m1_p1_m1*data_m1_p1_m1 + + coeff_dyy_0_p1_m1*data_0_p1_m1 + + coeff_dyy_p1_p1_m1*data_p1_p1_m1 + + coeff_dyy_m1_m1_0*data_m1_m1_0 + + coeff_dyy_0_m1_0*data_0_m1_0 + + coeff_dyy_p1_m1_0*data_p1_m1_0 + + coeff_dyy_m1_0_0*data_m1_0_0 + + coeff_dyy_0_0_0*data_0_0_0 + + coeff_dyy_p1_0_0*data_p1_0_0 + + coeff_dyy_m1_p1_0*data_m1_p1_0 + + coeff_dyy_0_p1_0*data_0_p1_0 + + coeff_dyy_p1_p1_0*data_p1_p1_0 + + coeff_dyy_m1_m1_p1*data_m1_m1_p1 + + coeff_dyy_0_m1_p1*data_0_m1_p1 + + coeff_dyy_p1_m1_p1*data_p1_m1_p1 + + coeff_dyy_m1_0_p1*data_m1_0_p1 + + coeff_dyy_0_0_p1*data_0_0_p1 + + coeff_dyy_p1_0_p1*data_p1_0_p1 + + coeff_dyy_m1_p1_p1*data_m1_p1_p1 + + coeff_dyy_0_p1_p1*data_0_p1_p1 + + coeff_dyy_p1_p1_p1*data_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-dyz.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-dyz.compute.c new file mode 100644 index 0000000..87ba939 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-dyz.compute.c @@ -0,0 +1,28 @@ +result = + coeff_dyz_m1_m1_m1*data_m1_m1_m1 + + coeff_dyz_0_m1_m1*data_0_m1_m1 + + coeff_dyz_p1_m1_m1*data_p1_m1_m1 + + coeff_dyz_m1_0_m1*data_m1_0_m1 + + coeff_dyz_0_0_m1*data_0_0_m1 + + coeff_dyz_p1_0_m1*data_p1_0_m1 + + coeff_dyz_m1_p1_m1*data_m1_p1_m1 + + coeff_dyz_0_p1_m1*data_0_p1_m1 + + coeff_dyz_p1_p1_m1*data_p1_p1_m1 + + coeff_dyz_m1_m1_0*data_m1_m1_0 + + coeff_dyz_0_m1_0*data_0_m1_0 + + coeff_dyz_p1_m1_0*data_p1_m1_0 + + coeff_dyz_m1_0_0*data_m1_0_0 + + coeff_dyz_0_0_0*data_0_0_0 + + coeff_dyz_p1_0_0*data_p1_0_0 + + coeff_dyz_m1_p1_0*data_m1_p1_0 + + coeff_dyz_0_p1_0*data_0_p1_0 + + coeff_dyz_p1_p1_0*data_p1_p1_0 + + coeff_dyz_m1_m1_p1*data_m1_m1_p1 + + coeff_dyz_0_m1_p1*data_0_m1_p1 + + coeff_dyz_p1_m1_p1*data_p1_m1_p1 + + coeff_dyz_m1_0_p1*data_m1_0_p1 + + coeff_dyz_0_0_p1*data_0_0_p1 + + coeff_dyz_p1_0_p1*data_p1_0_p1 + + coeff_dyz_m1_p1_p1*data_m1_p1_p1 + + coeff_dyz_0_p1_p1*data_0_p1_p1 + + coeff_dyz_p1_p1_p1*data_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-dz.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-dz.compute.c new file mode 100644 index 0000000..cd02ac9 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-dz.compute.c @@ -0,0 +1,28 @@ +result = + coeff_dz_m1_m1_m1*data_m1_m1_m1 + + coeff_dz_0_m1_m1*data_0_m1_m1 + + coeff_dz_p1_m1_m1*data_p1_m1_m1 + + coeff_dz_m1_0_m1*data_m1_0_m1 + + coeff_dz_0_0_m1*data_0_0_m1 + + coeff_dz_p1_0_m1*data_p1_0_m1 + + coeff_dz_m1_p1_m1*data_m1_p1_m1 + + coeff_dz_0_p1_m1*data_0_p1_m1 + + coeff_dz_p1_p1_m1*data_p1_p1_m1 + + coeff_dz_m1_m1_0*data_m1_m1_0 + + coeff_dz_0_m1_0*data_0_m1_0 + + coeff_dz_p1_m1_0*data_p1_m1_0 + + coeff_dz_m1_0_0*data_m1_0_0 + + coeff_dz_0_0_0*data_0_0_0 + + coeff_dz_p1_0_0*data_p1_0_0 + + coeff_dz_m1_p1_0*data_m1_p1_0 + + coeff_dz_0_p1_0*data_0_p1_0 + + coeff_dz_p1_p1_0*data_p1_p1_0 + + coeff_dz_m1_m1_p1*data_m1_m1_p1 + + coeff_dz_0_m1_p1*data_0_m1_p1 + + coeff_dz_p1_m1_p1*data_p1_m1_p1 + + coeff_dz_m1_0_p1*data_m1_0_p1 + + coeff_dz_0_0_p1*data_0_0_p1 + + coeff_dz_p1_0_p1*data_p1_0_p1 + + coeff_dz_m1_p1_p1*data_m1_p1_p1 + + coeff_dz_0_p1_p1*data_0_p1_p1 + + coeff_dz_p1_p1_p1*data_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-dzz.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-dzz.compute.c new file mode 100644 index 0000000..4593efa --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size3/interp-dzz.compute.c @@ -0,0 +1,28 @@ +result = + coeff_dzz_m1_m1_m1*data_m1_m1_m1 + + coeff_dzz_0_m1_m1*data_0_m1_m1 + + coeff_dzz_p1_m1_m1*data_p1_m1_m1 + + coeff_dzz_m1_0_m1*data_m1_0_m1 + + coeff_dzz_0_0_m1*data_0_0_m1 + + coeff_dzz_p1_0_m1*data_p1_0_m1 + + coeff_dzz_m1_p1_m1*data_m1_p1_m1 + + coeff_dzz_0_p1_m1*data_0_p1_m1 + + coeff_dzz_p1_p1_m1*data_p1_p1_m1 + + coeff_dzz_m1_m1_0*data_m1_m1_0 + + coeff_dzz_0_m1_0*data_0_m1_0 + + coeff_dzz_p1_m1_0*data_p1_m1_0 + + coeff_dzz_m1_0_0*data_m1_0_0 + + coeff_dzz_0_0_0*data_0_0_0 + + coeff_dzz_p1_0_0*data_p1_0_0 + + coeff_dzz_m1_p1_0*data_m1_p1_0 + + coeff_dzz_0_p1_0*data_0_p1_0 + + coeff_dzz_p1_p1_0*data_p1_p1_0 + + coeff_dzz_m1_m1_p1*data_m1_m1_p1 + + coeff_dzz_0_m1_p1*data_0_m1_p1 + + coeff_dzz_p1_m1_p1*data_p1_m1_p1 + + coeff_dzz_m1_0_p1*data_m1_0_p1 + + coeff_dzz_0_0_p1*data_0_0_p1 + + coeff_dzz_p1_0_p1*data_p1_0_p1 + + coeff_dzz_m1_p1_p1*data_m1_p1_p1 + + coeff_dzz_0_p1_p1*data_0_p1_p1 + + coeff_dzz_p1_p1_p1*data_p1_p1_p1; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-I.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-I.dcl.c new file mode 100644 index 0000000..aed4eb3 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-I.dcl.c @@ -0,0 +1,64 @@ +fp coeff_I_m1_m1_m1, + coeff_I_0_m1_m1, + coeff_I_p1_m1_m1, + coeff_I_p2_m1_m1, + coeff_I_m1_0_m1, + coeff_I_0_0_m1, + coeff_I_p1_0_m1, + coeff_I_p2_0_m1, + coeff_I_m1_p1_m1, + coeff_I_0_p1_m1, + coeff_I_p1_p1_m1, + coeff_I_p2_p1_m1, + coeff_I_m1_p2_m1, + coeff_I_0_p2_m1, + coeff_I_p1_p2_m1, + coeff_I_p2_p2_m1, + coeff_I_m1_m1_0, + coeff_I_0_m1_0, + coeff_I_p1_m1_0, + coeff_I_p2_m1_0, + coeff_I_m1_0_0, + coeff_I_0_0_0, + coeff_I_p1_0_0, + coeff_I_p2_0_0, + coeff_I_m1_p1_0, + coeff_I_0_p1_0, + coeff_I_p1_p1_0, + coeff_I_p2_p1_0, + coeff_I_m1_p2_0, + coeff_I_0_p2_0, + coeff_I_p1_p2_0, + coeff_I_p2_p2_0, + coeff_I_m1_m1_p1, + coeff_I_0_m1_p1, + coeff_I_p1_m1_p1, + coeff_I_p2_m1_p1, + coeff_I_m1_0_p1, + coeff_I_0_0_p1, + coeff_I_p1_0_p1, + coeff_I_p2_0_p1, + coeff_I_m1_p1_p1, + coeff_I_0_p1_p1, + coeff_I_p1_p1_p1, + coeff_I_p2_p1_p1, + coeff_I_m1_p2_p1, + coeff_I_0_p2_p1, + coeff_I_p1_p2_p1, + coeff_I_p2_p2_p1, + coeff_I_m1_m1_p2, + coeff_I_0_m1_p2, + coeff_I_p1_m1_p2, + coeff_I_p2_m1_p2, + coeff_I_m1_0_p2, + coeff_I_0_0_p2, + coeff_I_p1_0_p2, + coeff_I_p2_0_p2, + coeff_I_m1_p1_p2, + coeff_I_0_p1_p2, + coeff_I_p1_p1_p2, + coeff_I_p2_p1_p2, + coeff_I_m1_p2_p2, + coeff_I_0_p2_p2, + coeff_I_p1_p2_p2, + coeff_I_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-dx.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-dx.dcl.c new file mode 100644 index 0000000..2afb4a1 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-dx.dcl.c @@ -0,0 +1,64 @@ +fp coeff_dx_m1_m1_m1, + coeff_dx_0_m1_m1, + coeff_dx_p1_m1_m1, + coeff_dx_p2_m1_m1, + coeff_dx_m1_0_m1, + coeff_dx_0_0_m1, + coeff_dx_p1_0_m1, + coeff_dx_p2_0_m1, + coeff_dx_m1_p1_m1, + coeff_dx_0_p1_m1, + coeff_dx_p1_p1_m1, + coeff_dx_p2_p1_m1, + coeff_dx_m1_p2_m1, + coeff_dx_0_p2_m1, + coeff_dx_p1_p2_m1, + coeff_dx_p2_p2_m1, + coeff_dx_m1_m1_0, + coeff_dx_0_m1_0, + coeff_dx_p1_m1_0, + coeff_dx_p2_m1_0, + coeff_dx_m1_0_0, + coeff_dx_0_0_0, + coeff_dx_p1_0_0, + coeff_dx_p2_0_0, + coeff_dx_m1_p1_0, + coeff_dx_0_p1_0, + coeff_dx_p1_p1_0, + coeff_dx_p2_p1_0, + coeff_dx_m1_p2_0, + coeff_dx_0_p2_0, + coeff_dx_p1_p2_0, + coeff_dx_p2_p2_0, + coeff_dx_m1_m1_p1, + coeff_dx_0_m1_p1, + coeff_dx_p1_m1_p1, + coeff_dx_p2_m1_p1, + coeff_dx_m1_0_p1, + coeff_dx_0_0_p1, + coeff_dx_p1_0_p1, + coeff_dx_p2_0_p1, + coeff_dx_m1_p1_p1, + coeff_dx_0_p1_p1, + coeff_dx_p1_p1_p1, + coeff_dx_p2_p1_p1, + coeff_dx_m1_p2_p1, + coeff_dx_0_p2_p1, + coeff_dx_p1_p2_p1, + coeff_dx_p2_p2_p1, + coeff_dx_m1_m1_p2, + coeff_dx_0_m1_p2, + coeff_dx_p1_m1_p2, + coeff_dx_p2_m1_p2, + coeff_dx_m1_0_p2, + coeff_dx_0_0_p2, + coeff_dx_p1_0_p2, + coeff_dx_p2_0_p2, + coeff_dx_m1_p1_p2, + coeff_dx_0_p1_p2, + coeff_dx_p1_p1_p2, + coeff_dx_p2_p1_p2, + coeff_dx_m1_p2_p2, + coeff_dx_0_p2_p2, + coeff_dx_p1_p2_p2, + coeff_dx_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-dxx.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-dxx.dcl.c new file mode 100644 index 0000000..7ccdd97 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-dxx.dcl.c @@ -0,0 +1,64 @@ +fp coeff_dxx_m1_m1_m1, + coeff_dxx_0_m1_m1, + coeff_dxx_p1_m1_m1, + coeff_dxx_p2_m1_m1, + coeff_dxx_m1_0_m1, + coeff_dxx_0_0_m1, + coeff_dxx_p1_0_m1, + coeff_dxx_p2_0_m1, + coeff_dxx_m1_p1_m1, + coeff_dxx_0_p1_m1, + coeff_dxx_p1_p1_m1, + coeff_dxx_p2_p1_m1, + coeff_dxx_m1_p2_m1, + coeff_dxx_0_p2_m1, + coeff_dxx_p1_p2_m1, + coeff_dxx_p2_p2_m1, + coeff_dxx_m1_m1_0, + coeff_dxx_0_m1_0, + coeff_dxx_p1_m1_0, + coeff_dxx_p2_m1_0, + coeff_dxx_m1_0_0, + coeff_dxx_0_0_0, + coeff_dxx_p1_0_0, + coeff_dxx_p2_0_0, + coeff_dxx_m1_p1_0, + coeff_dxx_0_p1_0, + coeff_dxx_p1_p1_0, + coeff_dxx_p2_p1_0, + coeff_dxx_m1_p2_0, + coeff_dxx_0_p2_0, + coeff_dxx_p1_p2_0, + coeff_dxx_p2_p2_0, + coeff_dxx_m1_m1_p1, + coeff_dxx_0_m1_p1, + coeff_dxx_p1_m1_p1, + coeff_dxx_p2_m1_p1, + coeff_dxx_m1_0_p1, + coeff_dxx_0_0_p1, + coeff_dxx_p1_0_p1, + coeff_dxx_p2_0_p1, + coeff_dxx_m1_p1_p1, + coeff_dxx_0_p1_p1, + coeff_dxx_p1_p1_p1, + coeff_dxx_p2_p1_p1, + coeff_dxx_m1_p2_p1, + coeff_dxx_0_p2_p1, + coeff_dxx_p1_p2_p1, + coeff_dxx_p2_p2_p1, + coeff_dxx_m1_m1_p2, + coeff_dxx_0_m1_p2, + coeff_dxx_p1_m1_p2, + coeff_dxx_p2_m1_p2, + coeff_dxx_m1_0_p2, + coeff_dxx_0_0_p2, + coeff_dxx_p1_0_p2, + coeff_dxx_p2_0_p2, + coeff_dxx_m1_p1_p2, + coeff_dxx_0_p1_p2, + coeff_dxx_p1_p1_p2, + coeff_dxx_p2_p1_p2, + coeff_dxx_m1_p2_p2, + coeff_dxx_0_p2_p2, + coeff_dxx_p1_p2_p2, + coeff_dxx_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-dxy.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-dxy.dcl.c new file mode 100644 index 0000000..72e7a3e --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-dxy.dcl.c @@ -0,0 +1,64 @@ +fp coeff_dxy_m1_m1_m1, + coeff_dxy_0_m1_m1, + coeff_dxy_p1_m1_m1, + coeff_dxy_p2_m1_m1, + coeff_dxy_m1_0_m1, + coeff_dxy_0_0_m1, + coeff_dxy_p1_0_m1, + coeff_dxy_p2_0_m1, + coeff_dxy_m1_p1_m1, + coeff_dxy_0_p1_m1, + coeff_dxy_p1_p1_m1, + coeff_dxy_p2_p1_m1, + coeff_dxy_m1_p2_m1, + coeff_dxy_0_p2_m1, + coeff_dxy_p1_p2_m1, + coeff_dxy_p2_p2_m1, + coeff_dxy_m1_m1_0, + coeff_dxy_0_m1_0, + coeff_dxy_p1_m1_0, + coeff_dxy_p2_m1_0, + coeff_dxy_m1_0_0, + coeff_dxy_0_0_0, + coeff_dxy_p1_0_0, + coeff_dxy_p2_0_0, + coeff_dxy_m1_p1_0, + coeff_dxy_0_p1_0, + coeff_dxy_p1_p1_0, + coeff_dxy_p2_p1_0, + coeff_dxy_m1_p2_0, + coeff_dxy_0_p2_0, + coeff_dxy_p1_p2_0, + coeff_dxy_p2_p2_0, + coeff_dxy_m1_m1_p1, + coeff_dxy_0_m1_p1, + coeff_dxy_p1_m1_p1, + coeff_dxy_p2_m1_p1, + coeff_dxy_m1_0_p1, + coeff_dxy_0_0_p1, + coeff_dxy_p1_0_p1, + coeff_dxy_p2_0_p1, + coeff_dxy_m1_p1_p1, + coeff_dxy_0_p1_p1, + coeff_dxy_p1_p1_p1, + coeff_dxy_p2_p1_p1, + coeff_dxy_m1_p2_p1, + coeff_dxy_0_p2_p1, + coeff_dxy_p1_p2_p1, + coeff_dxy_p2_p2_p1, + coeff_dxy_m1_m1_p2, + coeff_dxy_0_m1_p2, + coeff_dxy_p1_m1_p2, + coeff_dxy_p2_m1_p2, + coeff_dxy_m1_0_p2, + coeff_dxy_0_0_p2, + coeff_dxy_p1_0_p2, + coeff_dxy_p2_0_p2, + coeff_dxy_m1_p1_p2, + coeff_dxy_0_p1_p2, + coeff_dxy_p1_p1_p2, + coeff_dxy_p2_p1_p2, + coeff_dxy_m1_p2_p2, + coeff_dxy_0_p2_p2, + coeff_dxy_p1_p2_p2, + coeff_dxy_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-dxz.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-dxz.dcl.c new file mode 100644 index 0000000..0457c9a --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-dxz.dcl.c @@ -0,0 +1,64 @@ +fp coeff_dxz_m1_m1_m1, + coeff_dxz_0_m1_m1, + coeff_dxz_p1_m1_m1, + coeff_dxz_p2_m1_m1, + coeff_dxz_m1_0_m1, + coeff_dxz_0_0_m1, + coeff_dxz_p1_0_m1, + coeff_dxz_p2_0_m1, + coeff_dxz_m1_p1_m1, + coeff_dxz_0_p1_m1, + coeff_dxz_p1_p1_m1, + coeff_dxz_p2_p1_m1, + coeff_dxz_m1_p2_m1, + coeff_dxz_0_p2_m1, + coeff_dxz_p1_p2_m1, + coeff_dxz_p2_p2_m1, + coeff_dxz_m1_m1_0, + coeff_dxz_0_m1_0, + coeff_dxz_p1_m1_0, + coeff_dxz_p2_m1_0, + coeff_dxz_m1_0_0, + coeff_dxz_0_0_0, + coeff_dxz_p1_0_0, + coeff_dxz_p2_0_0, + coeff_dxz_m1_p1_0, + coeff_dxz_0_p1_0, + coeff_dxz_p1_p1_0, + coeff_dxz_p2_p1_0, + coeff_dxz_m1_p2_0, + coeff_dxz_0_p2_0, + coeff_dxz_p1_p2_0, + coeff_dxz_p2_p2_0, + coeff_dxz_m1_m1_p1, + coeff_dxz_0_m1_p1, + coeff_dxz_p1_m1_p1, + coeff_dxz_p2_m1_p1, + coeff_dxz_m1_0_p1, + coeff_dxz_0_0_p1, + coeff_dxz_p1_0_p1, + coeff_dxz_p2_0_p1, + coeff_dxz_m1_p1_p1, + coeff_dxz_0_p1_p1, + coeff_dxz_p1_p1_p1, + coeff_dxz_p2_p1_p1, + coeff_dxz_m1_p2_p1, + coeff_dxz_0_p2_p1, + coeff_dxz_p1_p2_p1, + coeff_dxz_p2_p2_p1, + coeff_dxz_m1_m1_p2, + coeff_dxz_0_m1_p2, + coeff_dxz_p1_m1_p2, + coeff_dxz_p2_m1_p2, + coeff_dxz_m1_0_p2, + coeff_dxz_0_0_p2, + coeff_dxz_p1_0_p2, + coeff_dxz_p2_0_p2, + coeff_dxz_m1_p1_p2, + coeff_dxz_0_p1_p2, + coeff_dxz_p1_p1_p2, + coeff_dxz_p2_p1_p2, + coeff_dxz_m1_p2_p2, + coeff_dxz_0_p2_p2, + coeff_dxz_p1_p2_p2, + coeff_dxz_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-dy.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-dy.dcl.c new file mode 100644 index 0000000..db377fb --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-dy.dcl.c @@ -0,0 +1,64 @@ +fp coeff_dy_m1_m1_m1, + coeff_dy_0_m1_m1, + coeff_dy_p1_m1_m1, + coeff_dy_p2_m1_m1, + coeff_dy_m1_0_m1, + coeff_dy_0_0_m1, + coeff_dy_p1_0_m1, + coeff_dy_p2_0_m1, + coeff_dy_m1_p1_m1, + coeff_dy_0_p1_m1, + coeff_dy_p1_p1_m1, + coeff_dy_p2_p1_m1, + coeff_dy_m1_p2_m1, + coeff_dy_0_p2_m1, + coeff_dy_p1_p2_m1, + coeff_dy_p2_p2_m1, + coeff_dy_m1_m1_0, + coeff_dy_0_m1_0, + coeff_dy_p1_m1_0, + coeff_dy_p2_m1_0, + coeff_dy_m1_0_0, + coeff_dy_0_0_0, + coeff_dy_p1_0_0, + coeff_dy_p2_0_0, + coeff_dy_m1_p1_0, + coeff_dy_0_p1_0, + coeff_dy_p1_p1_0, + coeff_dy_p2_p1_0, + coeff_dy_m1_p2_0, + coeff_dy_0_p2_0, + coeff_dy_p1_p2_0, + coeff_dy_p2_p2_0, + coeff_dy_m1_m1_p1, + coeff_dy_0_m1_p1, + coeff_dy_p1_m1_p1, + coeff_dy_p2_m1_p1, + coeff_dy_m1_0_p1, + coeff_dy_0_0_p1, + coeff_dy_p1_0_p1, + coeff_dy_p2_0_p1, + coeff_dy_m1_p1_p1, + coeff_dy_0_p1_p1, + coeff_dy_p1_p1_p1, + coeff_dy_p2_p1_p1, + coeff_dy_m1_p2_p1, + coeff_dy_0_p2_p1, + coeff_dy_p1_p2_p1, + coeff_dy_p2_p2_p1, + coeff_dy_m1_m1_p2, + coeff_dy_0_m1_p2, + coeff_dy_p1_m1_p2, + coeff_dy_p2_m1_p2, + coeff_dy_m1_0_p2, + coeff_dy_0_0_p2, + coeff_dy_p1_0_p2, + coeff_dy_p2_0_p2, + coeff_dy_m1_p1_p2, + coeff_dy_0_p1_p2, + coeff_dy_p1_p1_p2, + coeff_dy_p2_p1_p2, + coeff_dy_m1_p2_p2, + coeff_dy_0_p2_p2, + coeff_dy_p1_p2_p2, + coeff_dy_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-dyy.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-dyy.dcl.c new file mode 100644 index 0000000..93735d8 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-dyy.dcl.c @@ -0,0 +1,64 @@ +fp coeff_dyy_m1_m1_m1, + coeff_dyy_0_m1_m1, + coeff_dyy_p1_m1_m1, + coeff_dyy_p2_m1_m1, + coeff_dyy_m1_0_m1, + coeff_dyy_0_0_m1, + coeff_dyy_p1_0_m1, + coeff_dyy_p2_0_m1, + coeff_dyy_m1_p1_m1, + coeff_dyy_0_p1_m1, + coeff_dyy_p1_p1_m1, + coeff_dyy_p2_p1_m1, + coeff_dyy_m1_p2_m1, + coeff_dyy_0_p2_m1, + coeff_dyy_p1_p2_m1, + coeff_dyy_p2_p2_m1, + coeff_dyy_m1_m1_0, + coeff_dyy_0_m1_0, + coeff_dyy_p1_m1_0, + coeff_dyy_p2_m1_0, + coeff_dyy_m1_0_0, + coeff_dyy_0_0_0, + coeff_dyy_p1_0_0, + coeff_dyy_p2_0_0, + coeff_dyy_m1_p1_0, + coeff_dyy_0_p1_0, + coeff_dyy_p1_p1_0, + coeff_dyy_p2_p1_0, + coeff_dyy_m1_p2_0, + coeff_dyy_0_p2_0, + coeff_dyy_p1_p2_0, + coeff_dyy_p2_p2_0, + coeff_dyy_m1_m1_p1, + coeff_dyy_0_m1_p1, + coeff_dyy_p1_m1_p1, + coeff_dyy_p2_m1_p1, + coeff_dyy_m1_0_p1, + coeff_dyy_0_0_p1, + coeff_dyy_p1_0_p1, + coeff_dyy_p2_0_p1, + coeff_dyy_m1_p1_p1, + coeff_dyy_0_p1_p1, + coeff_dyy_p1_p1_p1, + coeff_dyy_p2_p1_p1, + coeff_dyy_m1_p2_p1, + coeff_dyy_0_p2_p1, + coeff_dyy_p1_p2_p1, + coeff_dyy_p2_p2_p1, + coeff_dyy_m1_m1_p2, + coeff_dyy_0_m1_p2, + coeff_dyy_p1_m1_p2, + coeff_dyy_p2_m1_p2, + coeff_dyy_m1_0_p2, + coeff_dyy_0_0_p2, + coeff_dyy_p1_0_p2, + coeff_dyy_p2_0_p2, + coeff_dyy_m1_p1_p2, + coeff_dyy_0_p1_p2, + coeff_dyy_p1_p1_p2, + coeff_dyy_p2_p1_p2, + coeff_dyy_m1_p2_p2, + coeff_dyy_0_p2_p2, + coeff_dyy_p1_p2_p2, + coeff_dyy_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-dyz.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-dyz.dcl.c new file mode 100644 index 0000000..c82c714 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-dyz.dcl.c @@ -0,0 +1,64 @@ +fp coeff_dyz_m1_m1_m1, + coeff_dyz_0_m1_m1, + coeff_dyz_p1_m1_m1, + coeff_dyz_p2_m1_m1, + coeff_dyz_m1_0_m1, + coeff_dyz_0_0_m1, + coeff_dyz_p1_0_m1, + coeff_dyz_p2_0_m1, + coeff_dyz_m1_p1_m1, + coeff_dyz_0_p1_m1, + coeff_dyz_p1_p1_m1, + coeff_dyz_p2_p1_m1, + coeff_dyz_m1_p2_m1, + coeff_dyz_0_p2_m1, + coeff_dyz_p1_p2_m1, + coeff_dyz_p2_p2_m1, + coeff_dyz_m1_m1_0, + coeff_dyz_0_m1_0, + coeff_dyz_p1_m1_0, + coeff_dyz_p2_m1_0, + coeff_dyz_m1_0_0, + coeff_dyz_0_0_0, + coeff_dyz_p1_0_0, + coeff_dyz_p2_0_0, + coeff_dyz_m1_p1_0, + coeff_dyz_0_p1_0, + coeff_dyz_p1_p1_0, + coeff_dyz_p2_p1_0, + coeff_dyz_m1_p2_0, + coeff_dyz_0_p2_0, + coeff_dyz_p1_p2_0, + coeff_dyz_p2_p2_0, + coeff_dyz_m1_m1_p1, + coeff_dyz_0_m1_p1, + coeff_dyz_p1_m1_p1, + coeff_dyz_p2_m1_p1, + coeff_dyz_m1_0_p1, + coeff_dyz_0_0_p1, + coeff_dyz_p1_0_p1, + coeff_dyz_p2_0_p1, + coeff_dyz_m1_p1_p1, + coeff_dyz_0_p1_p1, + coeff_dyz_p1_p1_p1, + coeff_dyz_p2_p1_p1, + coeff_dyz_m1_p2_p1, + coeff_dyz_0_p2_p1, + coeff_dyz_p1_p2_p1, + coeff_dyz_p2_p2_p1, + coeff_dyz_m1_m1_p2, + coeff_dyz_0_m1_p2, + coeff_dyz_p1_m1_p2, + coeff_dyz_p2_m1_p2, + coeff_dyz_m1_0_p2, + coeff_dyz_0_0_p2, + coeff_dyz_p1_0_p2, + coeff_dyz_p2_0_p2, + coeff_dyz_m1_p1_p2, + coeff_dyz_0_p1_p2, + coeff_dyz_p1_p1_p2, + coeff_dyz_p2_p1_p2, + coeff_dyz_m1_p2_p2, + coeff_dyz_0_p2_p2, + coeff_dyz_p1_p2_p2, + coeff_dyz_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-dz.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-dz.dcl.c new file mode 100644 index 0000000..5d1e021 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-dz.dcl.c @@ -0,0 +1,64 @@ +fp coeff_dz_m1_m1_m1, + coeff_dz_0_m1_m1, + coeff_dz_p1_m1_m1, + coeff_dz_p2_m1_m1, + coeff_dz_m1_0_m1, + coeff_dz_0_0_m1, + coeff_dz_p1_0_m1, + coeff_dz_p2_0_m1, + coeff_dz_m1_p1_m1, + coeff_dz_0_p1_m1, + coeff_dz_p1_p1_m1, + coeff_dz_p2_p1_m1, + coeff_dz_m1_p2_m1, + coeff_dz_0_p2_m1, + coeff_dz_p1_p2_m1, + coeff_dz_p2_p2_m1, + coeff_dz_m1_m1_0, + coeff_dz_0_m1_0, + coeff_dz_p1_m1_0, + coeff_dz_p2_m1_0, + coeff_dz_m1_0_0, + coeff_dz_0_0_0, + coeff_dz_p1_0_0, + coeff_dz_p2_0_0, + coeff_dz_m1_p1_0, + coeff_dz_0_p1_0, + coeff_dz_p1_p1_0, + coeff_dz_p2_p1_0, + coeff_dz_m1_p2_0, + coeff_dz_0_p2_0, + coeff_dz_p1_p2_0, + coeff_dz_p2_p2_0, + coeff_dz_m1_m1_p1, + coeff_dz_0_m1_p1, + coeff_dz_p1_m1_p1, + coeff_dz_p2_m1_p1, + coeff_dz_m1_0_p1, + coeff_dz_0_0_p1, + coeff_dz_p1_0_p1, + coeff_dz_p2_0_p1, + coeff_dz_m1_p1_p1, + coeff_dz_0_p1_p1, + coeff_dz_p1_p1_p1, + coeff_dz_p2_p1_p1, + coeff_dz_m1_p2_p1, + coeff_dz_0_p2_p1, + coeff_dz_p1_p2_p1, + coeff_dz_p2_p2_p1, + coeff_dz_m1_m1_p2, + coeff_dz_0_m1_p2, + coeff_dz_p1_m1_p2, + coeff_dz_p2_m1_p2, + coeff_dz_m1_0_p2, + coeff_dz_0_0_p2, + coeff_dz_p1_0_p2, + coeff_dz_p2_0_p2, + coeff_dz_m1_p1_p2, + coeff_dz_0_p1_p2, + coeff_dz_p1_p1_p2, + coeff_dz_p2_p1_p2, + coeff_dz_m1_p2_p2, + coeff_dz_0_p2_p2, + coeff_dz_p1_p2_p2, + coeff_dz_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-dzz.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-dzz.dcl.c new file mode 100644 index 0000000..f6fb93d --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/coeff-dzz.dcl.c @@ -0,0 +1,64 @@ +fp coeff_dzz_m1_m1_m1, + coeff_dzz_0_m1_m1, + coeff_dzz_p1_m1_m1, + coeff_dzz_p2_m1_m1, + coeff_dzz_m1_0_m1, + coeff_dzz_0_0_m1, + coeff_dzz_p1_0_m1, + coeff_dzz_p2_0_m1, + coeff_dzz_m1_p1_m1, + coeff_dzz_0_p1_m1, + coeff_dzz_p1_p1_m1, + coeff_dzz_p2_p1_m1, + coeff_dzz_m1_p2_m1, + coeff_dzz_0_p2_m1, + coeff_dzz_p1_p2_m1, + coeff_dzz_p2_p2_m1, + coeff_dzz_m1_m1_0, + coeff_dzz_0_m1_0, + coeff_dzz_p1_m1_0, + coeff_dzz_p2_m1_0, + coeff_dzz_m1_0_0, + coeff_dzz_0_0_0, + coeff_dzz_p1_0_0, + coeff_dzz_p2_0_0, + coeff_dzz_m1_p1_0, + coeff_dzz_0_p1_0, + coeff_dzz_p1_p1_0, + coeff_dzz_p2_p1_0, + coeff_dzz_m1_p2_0, + coeff_dzz_0_p2_0, + coeff_dzz_p1_p2_0, + coeff_dzz_p2_p2_0, + coeff_dzz_m1_m1_p1, + coeff_dzz_0_m1_p1, + coeff_dzz_p1_m1_p1, + coeff_dzz_p2_m1_p1, + coeff_dzz_m1_0_p1, + coeff_dzz_0_0_p1, + coeff_dzz_p1_0_p1, + coeff_dzz_p2_0_p1, + coeff_dzz_m1_p1_p1, + coeff_dzz_0_p1_p1, + coeff_dzz_p1_p1_p1, + coeff_dzz_p2_p1_p1, + coeff_dzz_m1_p2_p1, + coeff_dzz_0_p2_p1, + coeff_dzz_p1_p2_p1, + coeff_dzz_p2_p2_p1, + coeff_dzz_m1_m1_p2, + coeff_dzz_0_m1_p2, + coeff_dzz_p1_m1_p2, + coeff_dzz_p2_m1_p2, + coeff_dzz_m1_0_p2, + coeff_dzz_0_0_p2, + coeff_dzz_p1_0_p2, + coeff_dzz_p2_0_p2, + coeff_dzz_m1_p1_p2, + coeff_dzz_0_p1_p2, + coeff_dzz_p1_p1_p2, + coeff_dzz_p2_p1_p2, + coeff_dzz_m1_p2_p2, + coeff_dzz_0_p2_p2, + coeff_dzz_p1_p2_p2, + coeff_dzz_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/data-var.assign.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/data-var.assign.c new file mode 100644 index 0000000..4613787 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/data-var.assign.c @@ -0,0 +1,64 @@ +data_m1_m1_m1 = DATA(-1,-1,-1); +data_0_m1_m1 = DATA(0,-1,-1); +data_p1_m1_m1 = DATA(1,-1,-1); +data_p2_m1_m1 = DATA(2,-1,-1); +data_m1_0_m1 = DATA(-1,0,-1); +data_0_0_m1 = DATA(0,0,-1); +data_p1_0_m1 = DATA(1,0,-1); +data_p2_0_m1 = DATA(2,0,-1); +data_m1_p1_m1 = DATA(-1,1,-1); +data_0_p1_m1 = DATA(0,1,-1); +data_p1_p1_m1 = DATA(1,1,-1); +data_p2_p1_m1 = DATA(2,1,-1); +data_m1_p2_m1 = DATA(-1,2,-1); +data_0_p2_m1 = DATA(0,2,-1); +data_p1_p2_m1 = DATA(1,2,-1); +data_p2_p2_m1 = DATA(2,2,-1); +data_m1_m1_0 = DATA(-1,-1,0); +data_0_m1_0 = DATA(0,-1,0); +data_p1_m1_0 = DATA(1,-1,0); +data_p2_m1_0 = DATA(2,-1,0); +data_m1_0_0 = DATA(-1,0,0); +data_0_0_0 = DATA(0,0,0); +data_p1_0_0 = DATA(1,0,0); +data_p2_0_0 = DATA(2,0,0); +data_m1_p1_0 = DATA(-1,1,0); +data_0_p1_0 = DATA(0,1,0); +data_p1_p1_0 = DATA(1,1,0); +data_p2_p1_0 = DATA(2,1,0); +data_m1_p2_0 = DATA(-1,2,0); +data_0_p2_0 = DATA(0,2,0); +data_p1_p2_0 = DATA(1,2,0); +data_p2_p2_0 = DATA(2,2,0); +data_m1_m1_p1 = DATA(-1,-1,1); +data_0_m1_p1 = DATA(0,-1,1); +data_p1_m1_p1 = DATA(1,-1,1); +data_p2_m1_p1 = DATA(2,-1,1); +data_m1_0_p1 = DATA(-1,0,1); +data_0_0_p1 = DATA(0,0,1); +data_p1_0_p1 = DATA(1,0,1); +data_p2_0_p1 = DATA(2,0,1); +data_m1_p1_p1 = DATA(-1,1,1); +data_0_p1_p1 = DATA(0,1,1); +data_p1_p1_p1 = DATA(1,1,1); +data_p2_p1_p1 = DATA(2,1,1); +data_m1_p2_p1 = DATA(-1,2,1); +data_0_p2_p1 = DATA(0,2,1); +data_p1_p2_p1 = DATA(1,2,1); +data_p2_p2_p1 = DATA(2,2,1); +data_m1_m1_p2 = DATA(-1,-1,2); +data_0_m1_p2 = DATA(0,-1,2); +data_p1_m1_p2 = DATA(1,-1,2); +data_p2_m1_p2 = DATA(2,-1,2); +data_m1_0_p2 = DATA(-1,0,2); +data_0_0_p2 = DATA(0,0,2); +data_p1_0_p2 = DATA(1,0,2); +data_p2_0_p2 = DATA(2,0,2); +data_m1_p1_p2 = DATA(-1,1,2); +data_0_p1_p2 = DATA(0,1,2); +data_p1_p1_p2 = DATA(1,1,2); +data_p2_p1_p2 = DATA(2,1,2); +data_m1_p2_p2 = DATA(-1,2,2); +data_0_p2_p2 = DATA(0,2,2); +data_p1_p2_p2 = DATA(1,2,2); +data_p2_p2_p2 = DATA(2,2,2); diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/data-var.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/data-var.dcl.c new file mode 100644 index 0000000..6c8b455 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/data-var.dcl.c @@ -0,0 +1,64 @@ +fp data_m1_m1_m1, + data_0_m1_m1, + data_p1_m1_m1, + data_p2_m1_m1, + data_m1_0_m1, + data_0_0_m1, + data_p1_0_m1, + data_p2_0_m1, + data_m1_p1_m1, + data_0_p1_m1, + data_p1_p1_m1, + data_p2_p1_m1, + data_m1_p2_m1, + data_0_p2_m1, + data_p1_p2_m1, + data_p2_p2_m1, + data_m1_m1_0, + data_0_m1_0, + data_p1_m1_0, + data_p2_m1_0, + data_m1_0_0, + data_0_0_0, + data_p1_0_0, + data_p2_0_0, + data_m1_p1_0, + data_0_p1_0, + data_p1_p1_0, + data_p2_p1_0, + data_m1_p2_0, + data_0_p2_0, + data_p1_p2_0, + data_p2_p2_0, + data_m1_m1_p1, + data_0_m1_p1, + data_p1_m1_p1, + data_p2_m1_p1, + data_m1_0_p1, + data_0_0_p1, + data_p1_0_p1, + data_p2_0_p1, + data_m1_p1_p1, + data_0_p1_p1, + data_p1_p1_p1, + data_p2_p1_p1, + data_m1_p2_p1, + data_0_p2_p1, + data_p1_p2_p1, + data_p2_p2_p1, + data_m1_m1_p2, + data_0_m1_p2, + data_p1_m1_p2, + data_p2_m1_p2, + data_m1_0_p2, + data_0_0_p2, + data_p1_0_p2, + data_p2_0_p2, + data_m1_p1_p2, + data_0_p1_p2, + data_p1_p1_p2, + data_p2_p1_p2, + data_m1_p2_p2, + data_0_p2_p2, + data_p1_p2_p2, + data_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-I.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-I.compute.c new file mode 100644 index 0000000..4c1fdaa --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-I.compute.c @@ -0,0 +1,65 @@ +result = + coeff_I_m1_m1_m1*data_m1_m1_m1 + + coeff_I_0_m1_m1*data_0_m1_m1 + + coeff_I_p1_m1_m1*data_p1_m1_m1 + + coeff_I_p2_m1_m1*data_p2_m1_m1 + + coeff_I_m1_0_m1*data_m1_0_m1 + + coeff_I_0_0_m1*data_0_0_m1 + + coeff_I_p1_0_m1*data_p1_0_m1 + + coeff_I_p2_0_m1*data_p2_0_m1 + + coeff_I_m1_p1_m1*data_m1_p1_m1 + + coeff_I_0_p1_m1*data_0_p1_m1 + + coeff_I_p1_p1_m1*data_p1_p1_m1 + + coeff_I_p2_p1_m1*data_p2_p1_m1 + + coeff_I_m1_p2_m1*data_m1_p2_m1 + + coeff_I_0_p2_m1*data_0_p2_m1 + + coeff_I_p1_p2_m1*data_p1_p2_m1 + + coeff_I_p2_p2_m1*data_p2_p2_m1 + + coeff_I_m1_m1_0*data_m1_m1_0 + + coeff_I_0_m1_0*data_0_m1_0 + + coeff_I_p1_m1_0*data_p1_m1_0 + + coeff_I_p2_m1_0*data_p2_m1_0 + + coeff_I_m1_0_0*data_m1_0_0 + + coeff_I_0_0_0*data_0_0_0 + + coeff_I_p1_0_0*data_p1_0_0 + + coeff_I_p2_0_0*data_p2_0_0 + + coeff_I_m1_p1_0*data_m1_p1_0 + + coeff_I_0_p1_0*data_0_p1_0 + + coeff_I_p1_p1_0*data_p1_p1_0 + + coeff_I_p2_p1_0*data_p2_p1_0 + + coeff_I_m1_p2_0*data_m1_p2_0 + + coeff_I_0_p2_0*data_0_p2_0 + + coeff_I_p1_p2_0*data_p1_p2_0 + + coeff_I_p2_p2_0*data_p2_p2_0 + + coeff_I_m1_m1_p1*data_m1_m1_p1 + + coeff_I_0_m1_p1*data_0_m1_p1 + + coeff_I_p1_m1_p1*data_p1_m1_p1 + + coeff_I_p2_m1_p1*data_p2_m1_p1 + + coeff_I_m1_0_p1*data_m1_0_p1 + + coeff_I_0_0_p1*data_0_0_p1 + + coeff_I_p1_0_p1*data_p1_0_p1 + + coeff_I_p2_0_p1*data_p2_0_p1 + + coeff_I_m1_p1_p1*data_m1_p1_p1 + + coeff_I_0_p1_p1*data_0_p1_p1 + + coeff_I_p1_p1_p1*data_p1_p1_p1 + + coeff_I_p2_p1_p1*data_p2_p1_p1 + + coeff_I_m1_p2_p1*data_m1_p2_p1 + + coeff_I_0_p2_p1*data_0_p2_p1 + + coeff_I_p1_p2_p1*data_p1_p2_p1 + + coeff_I_p2_p2_p1*data_p2_p2_p1 + + coeff_I_m1_m1_p2*data_m1_m1_p2 + + coeff_I_0_m1_p2*data_0_m1_p2 + + coeff_I_p1_m1_p2*data_p1_m1_p2 + + coeff_I_p2_m1_p2*data_p2_m1_p2 + + coeff_I_m1_0_p2*data_m1_0_p2 + + coeff_I_0_0_p2*data_0_0_p2 + + coeff_I_p1_0_p2*data_p1_0_p2 + + coeff_I_p2_0_p2*data_p2_0_p2 + + coeff_I_m1_p1_p2*data_m1_p1_p2 + + coeff_I_0_p1_p2*data_0_p1_p2 + + coeff_I_p1_p1_p2*data_p1_p1_p2 + + coeff_I_p2_p1_p2*data_p2_p1_p2 + + coeff_I_m1_p2_p2*data_m1_p2_p2 + + coeff_I_0_p2_p2*data_0_p2_p2 + + coeff_I_p1_p2_p2*data_p1_p2_p2 + + coeff_I_p2_p2_p2*data_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-dx.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-dx.compute.c new file mode 100644 index 0000000..51caa53 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-dx.compute.c @@ -0,0 +1,65 @@ +result = + coeff_dx_m1_m1_m1*data_m1_m1_m1 + + coeff_dx_0_m1_m1*data_0_m1_m1 + + coeff_dx_p1_m1_m1*data_p1_m1_m1 + + coeff_dx_p2_m1_m1*data_p2_m1_m1 + + coeff_dx_m1_0_m1*data_m1_0_m1 + + coeff_dx_0_0_m1*data_0_0_m1 + + coeff_dx_p1_0_m1*data_p1_0_m1 + + coeff_dx_p2_0_m1*data_p2_0_m1 + + coeff_dx_m1_p1_m1*data_m1_p1_m1 + + coeff_dx_0_p1_m1*data_0_p1_m1 + + coeff_dx_p1_p1_m1*data_p1_p1_m1 + + coeff_dx_p2_p1_m1*data_p2_p1_m1 + + coeff_dx_m1_p2_m1*data_m1_p2_m1 + + coeff_dx_0_p2_m1*data_0_p2_m1 + + coeff_dx_p1_p2_m1*data_p1_p2_m1 + + coeff_dx_p2_p2_m1*data_p2_p2_m1 + + coeff_dx_m1_m1_0*data_m1_m1_0 + + coeff_dx_0_m1_0*data_0_m1_0 + + coeff_dx_p1_m1_0*data_p1_m1_0 + + coeff_dx_p2_m1_0*data_p2_m1_0 + + coeff_dx_m1_0_0*data_m1_0_0 + + coeff_dx_0_0_0*data_0_0_0 + + coeff_dx_p1_0_0*data_p1_0_0 + + coeff_dx_p2_0_0*data_p2_0_0 + + coeff_dx_m1_p1_0*data_m1_p1_0 + + coeff_dx_0_p1_0*data_0_p1_0 + + coeff_dx_p1_p1_0*data_p1_p1_0 + + coeff_dx_p2_p1_0*data_p2_p1_0 + + coeff_dx_m1_p2_0*data_m1_p2_0 + + coeff_dx_0_p2_0*data_0_p2_0 + + coeff_dx_p1_p2_0*data_p1_p2_0 + + coeff_dx_p2_p2_0*data_p2_p2_0 + + coeff_dx_m1_m1_p1*data_m1_m1_p1 + + coeff_dx_0_m1_p1*data_0_m1_p1 + + coeff_dx_p1_m1_p1*data_p1_m1_p1 + + coeff_dx_p2_m1_p1*data_p2_m1_p1 + + coeff_dx_m1_0_p1*data_m1_0_p1 + + coeff_dx_0_0_p1*data_0_0_p1 + + coeff_dx_p1_0_p1*data_p1_0_p1 + + coeff_dx_p2_0_p1*data_p2_0_p1 + + coeff_dx_m1_p1_p1*data_m1_p1_p1 + + coeff_dx_0_p1_p1*data_0_p1_p1 + + coeff_dx_p1_p1_p1*data_p1_p1_p1 + + coeff_dx_p2_p1_p1*data_p2_p1_p1 + + coeff_dx_m1_p2_p1*data_m1_p2_p1 + + coeff_dx_0_p2_p1*data_0_p2_p1 + + coeff_dx_p1_p2_p1*data_p1_p2_p1 + + coeff_dx_p2_p2_p1*data_p2_p2_p1 + + coeff_dx_m1_m1_p2*data_m1_m1_p2 + + coeff_dx_0_m1_p2*data_0_m1_p2 + + coeff_dx_p1_m1_p2*data_p1_m1_p2 + + coeff_dx_p2_m1_p2*data_p2_m1_p2 + + coeff_dx_m1_0_p2*data_m1_0_p2 + + coeff_dx_0_0_p2*data_0_0_p2 + + coeff_dx_p1_0_p2*data_p1_0_p2 + + coeff_dx_p2_0_p2*data_p2_0_p2 + + coeff_dx_m1_p1_p2*data_m1_p1_p2 + + coeff_dx_0_p1_p2*data_0_p1_p2 + + coeff_dx_p1_p1_p2*data_p1_p1_p2 + + coeff_dx_p2_p1_p2*data_p2_p1_p2 + + coeff_dx_m1_p2_p2*data_m1_p2_p2 + + coeff_dx_0_p2_p2*data_0_p2_p2 + + coeff_dx_p1_p2_p2*data_p1_p2_p2 + + coeff_dx_p2_p2_p2*data_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-dxx.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-dxx.compute.c new file mode 100644 index 0000000..4d1c4fb --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-dxx.compute.c @@ -0,0 +1,65 @@ +result = + coeff_dxx_m1_m1_m1*data_m1_m1_m1 + + coeff_dxx_0_m1_m1*data_0_m1_m1 + + coeff_dxx_p1_m1_m1*data_p1_m1_m1 + + coeff_dxx_p2_m1_m1*data_p2_m1_m1 + + coeff_dxx_m1_0_m1*data_m1_0_m1 + + coeff_dxx_0_0_m1*data_0_0_m1 + + coeff_dxx_p1_0_m1*data_p1_0_m1 + + coeff_dxx_p2_0_m1*data_p2_0_m1 + + coeff_dxx_m1_p1_m1*data_m1_p1_m1 + + coeff_dxx_0_p1_m1*data_0_p1_m1 + + coeff_dxx_p1_p1_m1*data_p1_p1_m1 + + coeff_dxx_p2_p1_m1*data_p2_p1_m1 + + coeff_dxx_m1_p2_m1*data_m1_p2_m1 + + coeff_dxx_0_p2_m1*data_0_p2_m1 + + coeff_dxx_p1_p2_m1*data_p1_p2_m1 + + coeff_dxx_p2_p2_m1*data_p2_p2_m1 + + coeff_dxx_m1_m1_0*data_m1_m1_0 + + coeff_dxx_0_m1_0*data_0_m1_0 + + coeff_dxx_p1_m1_0*data_p1_m1_0 + + coeff_dxx_p2_m1_0*data_p2_m1_0 + + coeff_dxx_m1_0_0*data_m1_0_0 + + coeff_dxx_0_0_0*data_0_0_0 + + coeff_dxx_p1_0_0*data_p1_0_0 + + coeff_dxx_p2_0_0*data_p2_0_0 + + coeff_dxx_m1_p1_0*data_m1_p1_0 + + coeff_dxx_0_p1_0*data_0_p1_0 + + coeff_dxx_p1_p1_0*data_p1_p1_0 + + coeff_dxx_p2_p1_0*data_p2_p1_0 + + coeff_dxx_m1_p2_0*data_m1_p2_0 + + coeff_dxx_0_p2_0*data_0_p2_0 + + coeff_dxx_p1_p2_0*data_p1_p2_0 + + coeff_dxx_p2_p2_0*data_p2_p2_0 + + coeff_dxx_m1_m1_p1*data_m1_m1_p1 + + coeff_dxx_0_m1_p1*data_0_m1_p1 + + coeff_dxx_p1_m1_p1*data_p1_m1_p1 + + coeff_dxx_p2_m1_p1*data_p2_m1_p1 + + coeff_dxx_m1_0_p1*data_m1_0_p1 + + coeff_dxx_0_0_p1*data_0_0_p1 + + coeff_dxx_p1_0_p1*data_p1_0_p1 + + coeff_dxx_p2_0_p1*data_p2_0_p1 + + coeff_dxx_m1_p1_p1*data_m1_p1_p1 + + coeff_dxx_0_p1_p1*data_0_p1_p1 + + coeff_dxx_p1_p1_p1*data_p1_p1_p1 + + coeff_dxx_p2_p1_p1*data_p2_p1_p1 + + coeff_dxx_m1_p2_p1*data_m1_p2_p1 + + coeff_dxx_0_p2_p1*data_0_p2_p1 + + coeff_dxx_p1_p2_p1*data_p1_p2_p1 + + coeff_dxx_p2_p2_p1*data_p2_p2_p1 + + coeff_dxx_m1_m1_p2*data_m1_m1_p2 + + coeff_dxx_0_m1_p2*data_0_m1_p2 + + coeff_dxx_p1_m1_p2*data_p1_m1_p2 + + coeff_dxx_p2_m1_p2*data_p2_m1_p2 + + coeff_dxx_m1_0_p2*data_m1_0_p2 + + coeff_dxx_0_0_p2*data_0_0_p2 + + coeff_dxx_p1_0_p2*data_p1_0_p2 + + coeff_dxx_p2_0_p2*data_p2_0_p2 + + coeff_dxx_m1_p1_p2*data_m1_p1_p2 + + coeff_dxx_0_p1_p2*data_0_p1_p2 + + coeff_dxx_p1_p1_p2*data_p1_p1_p2 + + coeff_dxx_p2_p1_p2*data_p2_p1_p2 + + coeff_dxx_m1_p2_p2*data_m1_p2_p2 + + coeff_dxx_0_p2_p2*data_0_p2_p2 + + coeff_dxx_p1_p2_p2*data_p1_p2_p2 + + coeff_dxx_p2_p2_p2*data_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-dxy.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-dxy.compute.c new file mode 100644 index 0000000..16c2e90 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-dxy.compute.c @@ -0,0 +1,65 @@ +result = + coeff_dxy_m1_m1_m1*data_m1_m1_m1 + + coeff_dxy_0_m1_m1*data_0_m1_m1 + + coeff_dxy_p1_m1_m1*data_p1_m1_m1 + + coeff_dxy_p2_m1_m1*data_p2_m1_m1 + + coeff_dxy_m1_0_m1*data_m1_0_m1 + + coeff_dxy_0_0_m1*data_0_0_m1 + + coeff_dxy_p1_0_m1*data_p1_0_m1 + + coeff_dxy_p2_0_m1*data_p2_0_m1 + + coeff_dxy_m1_p1_m1*data_m1_p1_m1 + + coeff_dxy_0_p1_m1*data_0_p1_m1 + + coeff_dxy_p1_p1_m1*data_p1_p1_m1 + + coeff_dxy_p2_p1_m1*data_p2_p1_m1 + + coeff_dxy_m1_p2_m1*data_m1_p2_m1 + + coeff_dxy_0_p2_m1*data_0_p2_m1 + + coeff_dxy_p1_p2_m1*data_p1_p2_m1 + + coeff_dxy_p2_p2_m1*data_p2_p2_m1 + + coeff_dxy_m1_m1_0*data_m1_m1_0 + + coeff_dxy_0_m1_0*data_0_m1_0 + + coeff_dxy_p1_m1_0*data_p1_m1_0 + + coeff_dxy_p2_m1_0*data_p2_m1_0 + + coeff_dxy_m1_0_0*data_m1_0_0 + + coeff_dxy_0_0_0*data_0_0_0 + + coeff_dxy_p1_0_0*data_p1_0_0 + + coeff_dxy_p2_0_0*data_p2_0_0 + + coeff_dxy_m1_p1_0*data_m1_p1_0 + + coeff_dxy_0_p1_0*data_0_p1_0 + + coeff_dxy_p1_p1_0*data_p1_p1_0 + + coeff_dxy_p2_p1_0*data_p2_p1_0 + + coeff_dxy_m1_p2_0*data_m1_p2_0 + + coeff_dxy_0_p2_0*data_0_p2_0 + + coeff_dxy_p1_p2_0*data_p1_p2_0 + + coeff_dxy_p2_p2_0*data_p2_p2_0 + + coeff_dxy_m1_m1_p1*data_m1_m1_p1 + + coeff_dxy_0_m1_p1*data_0_m1_p1 + + coeff_dxy_p1_m1_p1*data_p1_m1_p1 + + coeff_dxy_p2_m1_p1*data_p2_m1_p1 + + coeff_dxy_m1_0_p1*data_m1_0_p1 + + coeff_dxy_0_0_p1*data_0_0_p1 + + coeff_dxy_p1_0_p1*data_p1_0_p1 + + coeff_dxy_p2_0_p1*data_p2_0_p1 + + coeff_dxy_m1_p1_p1*data_m1_p1_p1 + + coeff_dxy_0_p1_p1*data_0_p1_p1 + + coeff_dxy_p1_p1_p1*data_p1_p1_p1 + + coeff_dxy_p2_p1_p1*data_p2_p1_p1 + + coeff_dxy_m1_p2_p1*data_m1_p2_p1 + + coeff_dxy_0_p2_p1*data_0_p2_p1 + + coeff_dxy_p1_p2_p1*data_p1_p2_p1 + + coeff_dxy_p2_p2_p1*data_p2_p2_p1 + + coeff_dxy_m1_m1_p2*data_m1_m1_p2 + + coeff_dxy_0_m1_p2*data_0_m1_p2 + + coeff_dxy_p1_m1_p2*data_p1_m1_p2 + + coeff_dxy_p2_m1_p2*data_p2_m1_p2 + + coeff_dxy_m1_0_p2*data_m1_0_p2 + + coeff_dxy_0_0_p2*data_0_0_p2 + + coeff_dxy_p1_0_p2*data_p1_0_p2 + + coeff_dxy_p2_0_p2*data_p2_0_p2 + + coeff_dxy_m1_p1_p2*data_m1_p1_p2 + + coeff_dxy_0_p1_p2*data_0_p1_p2 + + coeff_dxy_p1_p1_p2*data_p1_p1_p2 + + coeff_dxy_p2_p1_p2*data_p2_p1_p2 + + coeff_dxy_m1_p2_p2*data_m1_p2_p2 + + coeff_dxy_0_p2_p2*data_0_p2_p2 + + coeff_dxy_p1_p2_p2*data_p1_p2_p2 + + coeff_dxy_p2_p2_p2*data_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-dxz.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-dxz.compute.c new file mode 100644 index 0000000..babbf0f --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-dxz.compute.c @@ -0,0 +1,65 @@ +result = + coeff_dxz_m1_m1_m1*data_m1_m1_m1 + + coeff_dxz_0_m1_m1*data_0_m1_m1 + + coeff_dxz_p1_m1_m1*data_p1_m1_m1 + + coeff_dxz_p2_m1_m1*data_p2_m1_m1 + + coeff_dxz_m1_0_m1*data_m1_0_m1 + + coeff_dxz_0_0_m1*data_0_0_m1 + + coeff_dxz_p1_0_m1*data_p1_0_m1 + + coeff_dxz_p2_0_m1*data_p2_0_m1 + + coeff_dxz_m1_p1_m1*data_m1_p1_m1 + + coeff_dxz_0_p1_m1*data_0_p1_m1 + + coeff_dxz_p1_p1_m1*data_p1_p1_m1 + + coeff_dxz_p2_p1_m1*data_p2_p1_m1 + + coeff_dxz_m1_p2_m1*data_m1_p2_m1 + + coeff_dxz_0_p2_m1*data_0_p2_m1 + + coeff_dxz_p1_p2_m1*data_p1_p2_m1 + + coeff_dxz_p2_p2_m1*data_p2_p2_m1 + + coeff_dxz_m1_m1_0*data_m1_m1_0 + + coeff_dxz_0_m1_0*data_0_m1_0 + + coeff_dxz_p1_m1_0*data_p1_m1_0 + + coeff_dxz_p2_m1_0*data_p2_m1_0 + + coeff_dxz_m1_0_0*data_m1_0_0 + + coeff_dxz_0_0_0*data_0_0_0 + + coeff_dxz_p1_0_0*data_p1_0_0 + + coeff_dxz_p2_0_0*data_p2_0_0 + + coeff_dxz_m1_p1_0*data_m1_p1_0 + + coeff_dxz_0_p1_0*data_0_p1_0 + + coeff_dxz_p1_p1_0*data_p1_p1_0 + + coeff_dxz_p2_p1_0*data_p2_p1_0 + + coeff_dxz_m1_p2_0*data_m1_p2_0 + + coeff_dxz_0_p2_0*data_0_p2_0 + + coeff_dxz_p1_p2_0*data_p1_p2_0 + + coeff_dxz_p2_p2_0*data_p2_p2_0 + + coeff_dxz_m1_m1_p1*data_m1_m1_p1 + + coeff_dxz_0_m1_p1*data_0_m1_p1 + + coeff_dxz_p1_m1_p1*data_p1_m1_p1 + + coeff_dxz_p2_m1_p1*data_p2_m1_p1 + + coeff_dxz_m1_0_p1*data_m1_0_p1 + + coeff_dxz_0_0_p1*data_0_0_p1 + + coeff_dxz_p1_0_p1*data_p1_0_p1 + + coeff_dxz_p2_0_p1*data_p2_0_p1 + + coeff_dxz_m1_p1_p1*data_m1_p1_p1 + + coeff_dxz_0_p1_p1*data_0_p1_p1 + + coeff_dxz_p1_p1_p1*data_p1_p1_p1 + + coeff_dxz_p2_p1_p1*data_p2_p1_p1 + + coeff_dxz_m1_p2_p1*data_m1_p2_p1 + + coeff_dxz_0_p2_p1*data_0_p2_p1 + + coeff_dxz_p1_p2_p1*data_p1_p2_p1 + + coeff_dxz_p2_p2_p1*data_p2_p2_p1 + + coeff_dxz_m1_m1_p2*data_m1_m1_p2 + + coeff_dxz_0_m1_p2*data_0_m1_p2 + + coeff_dxz_p1_m1_p2*data_p1_m1_p2 + + coeff_dxz_p2_m1_p2*data_p2_m1_p2 + + coeff_dxz_m1_0_p2*data_m1_0_p2 + + coeff_dxz_0_0_p2*data_0_0_p2 + + coeff_dxz_p1_0_p2*data_p1_0_p2 + + coeff_dxz_p2_0_p2*data_p2_0_p2 + + coeff_dxz_m1_p1_p2*data_m1_p1_p2 + + coeff_dxz_0_p1_p2*data_0_p1_p2 + + coeff_dxz_p1_p1_p2*data_p1_p1_p2 + + coeff_dxz_p2_p1_p2*data_p2_p1_p2 + + coeff_dxz_m1_p2_p2*data_m1_p2_p2 + + coeff_dxz_0_p2_p2*data_0_p2_p2 + + coeff_dxz_p1_p2_p2*data_p1_p2_p2 + + coeff_dxz_p2_p2_p2*data_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-dy.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-dy.compute.c new file mode 100644 index 0000000..4dd8505 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-dy.compute.c @@ -0,0 +1,65 @@ +result = + coeff_dy_m1_m1_m1*data_m1_m1_m1 + + coeff_dy_0_m1_m1*data_0_m1_m1 + + coeff_dy_p1_m1_m1*data_p1_m1_m1 + + coeff_dy_p2_m1_m1*data_p2_m1_m1 + + coeff_dy_m1_0_m1*data_m1_0_m1 + + coeff_dy_0_0_m1*data_0_0_m1 + + coeff_dy_p1_0_m1*data_p1_0_m1 + + coeff_dy_p2_0_m1*data_p2_0_m1 + + coeff_dy_m1_p1_m1*data_m1_p1_m1 + + coeff_dy_0_p1_m1*data_0_p1_m1 + + coeff_dy_p1_p1_m1*data_p1_p1_m1 + + coeff_dy_p2_p1_m1*data_p2_p1_m1 + + coeff_dy_m1_p2_m1*data_m1_p2_m1 + + coeff_dy_0_p2_m1*data_0_p2_m1 + + coeff_dy_p1_p2_m1*data_p1_p2_m1 + + coeff_dy_p2_p2_m1*data_p2_p2_m1 + + coeff_dy_m1_m1_0*data_m1_m1_0 + + coeff_dy_0_m1_0*data_0_m1_0 + + coeff_dy_p1_m1_0*data_p1_m1_0 + + coeff_dy_p2_m1_0*data_p2_m1_0 + + coeff_dy_m1_0_0*data_m1_0_0 + + coeff_dy_0_0_0*data_0_0_0 + + coeff_dy_p1_0_0*data_p1_0_0 + + coeff_dy_p2_0_0*data_p2_0_0 + + coeff_dy_m1_p1_0*data_m1_p1_0 + + coeff_dy_0_p1_0*data_0_p1_0 + + coeff_dy_p1_p1_0*data_p1_p1_0 + + coeff_dy_p2_p1_0*data_p2_p1_0 + + coeff_dy_m1_p2_0*data_m1_p2_0 + + coeff_dy_0_p2_0*data_0_p2_0 + + coeff_dy_p1_p2_0*data_p1_p2_0 + + coeff_dy_p2_p2_0*data_p2_p2_0 + + coeff_dy_m1_m1_p1*data_m1_m1_p1 + + coeff_dy_0_m1_p1*data_0_m1_p1 + + coeff_dy_p1_m1_p1*data_p1_m1_p1 + + coeff_dy_p2_m1_p1*data_p2_m1_p1 + + coeff_dy_m1_0_p1*data_m1_0_p1 + + coeff_dy_0_0_p1*data_0_0_p1 + + coeff_dy_p1_0_p1*data_p1_0_p1 + + coeff_dy_p2_0_p1*data_p2_0_p1 + + coeff_dy_m1_p1_p1*data_m1_p1_p1 + + coeff_dy_0_p1_p1*data_0_p1_p1 + + coeff_dy_p1_p1_p1*data_p1_p1_p1 + + coeff_dy_p2_p1_p1*data_p2_p1_p1 + + coeff_dy_m1_p2_p1*data_m1_p2_p1 + + coeff_dy_0_p2_p1*data_0_p2_p1 + + coeff_dy_p1_p2_p1*data_p1_p2_p1 + + coeff_dy_p2_p2_p1*data_p2_p2_p1 + + coeff_dy_m1_m1_p2*data_m1_m1_p2 + + coeff_dy_0_m1_p2*data_0_m1_p2 + + coeff_dy_p1_m1_p2*data_p1_m1_p2 + + coeff_dy_p2_m1_p2*data_p2_m1_p2 + + coeff_dy_m1_0_p2*data_m1_0_p2 + + coeff_dy_0_0_p2*data_0_0_p2 + + coeff_dy_p1_0_p2*data_p1_0_p2 + + coeff_dy_p2_0_p2*data_p2_0_p2 + + coeff_dy_m1_p1_p2*data_m1_p1_p2 + + coeff_dy_0_p1_p2*data_0_p1_p2 + + coeff_dy_p1_p1_p2*data_p1_p1_p2 + + coeff_dy_p2_p1_p2*data_p2_p1_p2 + + coeff_dy_m1_p2_p2*data_m1_p2_p2 + + coeff_dy_0_p2_p2*data_0_p2_p2 + + coeff_dy_p1_p2_p2*data_p1_p2_p2 + + coeff_dy_p2_p2_p2*data_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-dyy.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-dyy.compute.c new file mode 100644 index 0000000..75357b5 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-dyy.compute.c @@ -0,0 +1,65 @@ +result = + coeff_dyy_m1_m1_m1*data_m1_m1_m1 + + coeff_dyy_0_m1_m1*data_0_m1_m1 + + coeff_dyy_p1_m1_m1*data_p1_m1_m1 + + coeff_dyy_p2_m1_m1*data_p2_m1_m1 + + coeff_dyy_m1_0_m1*data_m1_0_m1 + + coeff_dyy_0_0_m1*data_0_0_m1 + + coeff_dyy_p1_0_m1*data_p1_0_m1 + + coeff_dyy_p2_0_m1*data_p2_0_m1 + + coeff_dyy_m1_p1_m1*data_m1_p1_m1 + + coeff_dyy_0_p1_m1*data_0_p1_m1 + + coeff_dyy_p1_p1_m1*data_p1_p1_m1 + + coeff_dyy_p2_p1_m1*data_p2_p1_m1 + + coeff_dyy_m1_p2_m1*data_m1_p2_m1 + + coeff_dyy_0_p2_m1*data_0_p2_m1 + + coeff_dyy_p1_p2_m1*data_p1_p2_m1 + + coeff_dyy_p2_p2_m1*data_p2_p2_m1 + + coeff_dyy_m1_m1_0*data_m1_m1_0 + + coeff_dyy_0_m1_0*data_0_m1_0 + + coeff_dyy_p1_m1_0*data_p1_m1_0 + + coeff_dyy_p2_m1_0*data_p2_m1_0 + + coeff_dyy_m1_0_0*data_m1_0_0 + + coeff_dyy_0_0_0*data_0_0_0 + + coeff_dyy_p1_0_0*data_p1_0_0 + + coeff_dyy_p2_0_0*data_p2_0_0 + + coeff_dyy_m1_p1_0*data_m1_p1_0 + + coeff_dyy_0_p1_0*data_0_p1_0 + + coeff_dyy_p1_p1_0*data_p1_p1_0 + + coeff_dyy_p2_p1_0*data_p2_p1_0 + + coeff_dyy_m1_p2_0*data_m1_p2_0 + + coeff_dyy_0_p2_0*data_0_p2_0 + + coeff_dyy_p1_p2_0*data_p1_p2_0 + + coeff_dyy_p2_p2_0*data_p2_p2_0 + + coeff_dyy_m1_m1_p1*data_m1_m1_p1 + + coeff_dyy_0_m1_p1*data_0_m1_p1 + + coeff_dyy_p1_m1_p1*data_p1_m1_p1 + + coeff_dyy_p2_m1_p1*data_p2_m1_p1 + + coeff_dyy_m1_0_p1*data_m1_0_p1 + + coeff_dyy_0_0_p1*data_0_0_p1 + + coeff_dyy_p1_0_p1*data_p1_0_p1 + + coeff_dyy_p2_0_p1*data_p2_0_p1 + + coeff_dyy_m1_p1_p1*data_m1_p1_p1 + + coeff_dyy_0_p1_p1*data_0_p1_p1 + + coeff_dyy_p1_p1_p1*data_p1_p1_p1 + + coeff_dyy_p2_p1_p1*data_p2_p1_p1 + + coeff_dyy_m1_p2_p1*data_m1_p2_p1 + + coeff_dyy_0_p2_p1*data_0_p2_p1 + + coeff_dyy_p1_p2_p1*data_p1_p2_p1 + + coeff_dyy_p2_p2_p1*data_p2_p2_p1 + + coeff_dyy_m1_m1_p2*data_m1_m1_p2 + + coeff_dyy_0_m1_p2*data_0_m1_p2 + + coeff_dyy_p1_m1_p2*data_p1_m1_p2 + + coeff_dyy_p2_m1_p2*data_p2_m1_p2 + + coeff_dyy_m1_0_p2*data_m1_0_p2 + + coeff_dyy_0_0_p2*data_0_0_p2 + + coeff_dyy_p1_0_p2*data_p1_0_p2 + + coeff_dyy_p2_0_p2*data_p2_0_p2 + + coeff_dyy_m1_p1_p2*data_m1_p1_p2 + + coeff_dyy_0_p1_p2*data_0_p1_p2 + + coeff_dyy_p1_p1_p2*data_p1_p1_p2 + + coeff_dyy_p2_p1_p2*data_p2_p1_p2 + + coeff_dyy_m1_p2_p2*data_m1_p2_p2 + + coeff_dyy_0_p2_p2*data_0_p2_p2 + + coeff_dyy_p1_p2_p2*data_p1_p2_p2 + + coeff_dyy_p2_p2_p2*data_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-dyz.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-dyz.compute.c new file mode 100644 index 0000000..247cd6e --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-dyz.compute.c @@ -0,0 +1,65 @@ +result = + coeff_dyz_m1_m1_m1*data_m1_m1_m1 + + coeff_dyz_0_m1_m1*data_0_m1_m1 + + coeff_dyz_p1_m1_m1*data_p1_m1_m1 + + coeff_dyz_p2_m1_m1*data_p2_m1_m1 + + coeff_dyz_m1_0_m1*data_m1_0_m1 + + coeff_dyz_0_0_m1*data_0_0_m1 + + coeff_dyz_p1_0_m1*data_p1_0_m1 + + coeff_dyz_p2_0_m1*data_p2_0_m1 + + coeff_dyz_m1_p1_m1*data_m1_p1_m1 + + coeff_dyz_0_p1_m1*data_0_p1_m1 + + coeff_dyz_p1_p1_m1*data_p1_p1_m1 + + coeff_dyz_p2_p1_m1*data_p2_p1_m1 + + coeff_dyz_m1_p2_m1*data_m1_p2_m1 + + coeff_dyz_0_p2_m1*data_0_p2_m1 + + coeff_dyz_p1_p2_m1*data_p1_p2_m1 + + coeff_dyz_p2_p2_m1*data_p2_p2_m1 + + coeff_dyz_m1_m1_0*data_m1_m1_0 + + coeff_dyz_0_m1_0*data_0_m1_0 + + coeff_dyz_p1_m1_0*data_p1_m1_0 + + coeff_dyz_p2_m1_0*data_p2_m1_0 + + coeff_dyz_m1_0_0*data_m1_0_0 + + coeff_dyz_0_0_0*data_0_0_0 + + coeff_dyz_p1_0_0*data_p1_0_0 + + coeff_dyz_p2_0_0*data_p2_0_0 + + coeff_dyz_m1_p1_0*data_m1_p1_0 + + coeff_dyz_0_p1_0*data_0_p1_0 + + coeff_dyz_p1_p1_0*data_p1_p1_0 + + coeff_dyz_p2_p1_0*data_p2_p1_0 + + coeff_dyz_m1_p2_0*data_m1_p2_0 + + coeff_dyz_0_p2_0*data_0_p2_0 + + coeff_dyz_p1_p2_0*data_p1_p2_0 + + coeff_dyz_p2_p2_0*data_p2_p2_0 + + coeff_dyz_m1_m1_p1*data_m1_m1_p1 + + coeff_dyz_0_m1_p1*data_0_m1_p1 + + coeff_dyz_p1_m1_p1*data_p1_m1_p1 + + coeff_dyz_p2_m1_p1*data_p2_m1_p1 + + coeff_dyz_m1_0_p1*data_m1_0_p1 + + coeff_dyz_0_0_p1*data_0_0_p1 + + coeff_dyz_p1_0_p1*data_p1_0_p1 + + coeff_dyz_p2_0_p1*data_p2_0_p1 + + coeff_dyz_m1_p1_p1*data_m1_p1_p1 + + coeff_dyz_0_p1_p1*data_0_p1_p1 + + coeff_dyz_p1_p1_p1*data_p1_p1_p1 + + coeff_dyz_p2_p1_p1*data_p2_p1_p1 + + coeff_dyz_m1_p2_p1*data_m1_p2_p1 + + coeff_dyz_0_p2_p1*data_0_p2_p1 + + coeff_dyz_p1_p2_p1*data_p1_p2_p1 + + coeff_dyz_p2_p2_p1*data_p2_p2_p1 + + coeff_dyz_m1_m1_p2*data_m1_m1_p2 + + coeff_dyz_0_m1_p2*data_0_m1_p2 + + coeff_dyz_p1_m1_p2*data_p1_m1_p2 + + coeff_dyz_p2_m1_p2*data_p2_m1_p2 + + coeff_dyz_m1_0_p2*data_m1_0_p2 + + coeff_dyz_0_0_p2*data_0_0_p2 + + coeff_dyz_p1_0_p2*data_p1_0_p2 + + coeff_dyz_p2_0_p2*data_p2_0_p2 + + coeff_dyz_m1_p1_p2*data_m1_p1_p2 + + coeff_dyz_0_p1_p2*data_0_p1_p2 + + coeff_dyz_p1_p1_p2*data_p1_p1_p2 + + coeff_dyz_p2_p1_p2*data_p2_p1_p2 + + coeff_dyz_m1_p2_p2*data_m1_p2_p2 + + coeff_dyz_0_p2_p2*data_0_p2_p2 + + coeff_dyz_p1_p2_p2*data_p1_p2_p2 + + coeff_dyz_p2_p2_p2*data_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-dz.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-dz.compute.c new file mode 100644 index 0000000..7bb7e24 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-dz.compute.c @@ -0,0 +1,65 @@ +result = + coeff_dz_m1_m1_m1*data_m1_m1_m1 + + coeff_dz_0_m1_m1*data_0_m1_m1 + + coeff_dz_p1_m1_m1*data_p1_m1_m1 + + coeff_dz_p2_m1_m1*data_p2_m1_m1 + + coeff_dz_m1_0_m1*data_m1_0_m1 + + coeff_dz_0_0_m1*data_0_0_m1 + + coeff_dz_p1_0_m1*data_p1_0_m1 + + coeff_dz_p2_0_m1*data_p2_0_m1 + + coeff_dz_m1_p1_m1*data_m1_p1_m1 + + coeff_dz_0_p1_m1*data_0_p1_m1 + + coeff_dz_p1_p1_m1*data_p1_p1_m1 + + coeff_dz_p2_p1_m1*data_p2_p1_m1 + + coeff_dz_m1_p2_m1*data_m1_p2_m1 + + coeff_dz_0_p2_m1*data_0_p2_m1 + + coeff_dz_p1_p2_m1*data_p1_p2_m1 + + coeff_dz_p2_p2_m1*data_p2_p2_m1 + + coeff_dz_m1_m1_0*data_m1_m1_0 + + coeff_dz_0_m1_0*data_0_m1_0 + + coeff_dz_p1_m1_0*data_p1_m1_0 + + coeff_dz_p2_m1_0*data_p2_m1_0 + + coeff_dz_m1_0_0*data_m1_0_0 + + coeff_dz_0_0_0*data_0_0_0 + + coeff_dz_p1_0_0*data_p1_0_0 + + coeff_dz_p2_0_0*data_p2_0_0 + + coeff_dz_m1_p1_0*data_m1_p1_0 + + coeff_dz_0_p1_0*data_0_p1_0 + + coeff_dz_p1_p1_0*data_p1_p1_0 + + coeff_dz_p2_p1_0*data_p2_p1_0 + + coeff_dz_m1_p2_0*data_m1_p2_0 + + coeff_dz_0_p2_0*data_0_p2_0 + + coeff_dz_p1_p2_0*data_p1_p2_0 + + coeff_dz_p2_p2_0*data_p2_p2_0 + + coeff_dz_m1_m1_p1*data_m1_m1_p1 + + coeff_dz_0_m1_p1*data_0_m1_p1 + + coeff_dz_p1_m1_p1*data_p1_m1_p1 + + coeff_dz_p2_m1_p1*data_p2_m1_p1 + + coeff_dz_m1_0_p1*data_m1_0_p1 + + coeff_dz_0_0_p1*data_0_0_p1 + + coeff_dz_p1_0_p1*data_p1_0_p1 + + coeff_dz_p2_0_p1*data_p2_0_p1 + + coeff_dz_m1_p1_p1*data_m1_p1_p1 + + coeff_dz_0_p1_p1*data_0_p1_p1 + + coeff_dz_p1_p1_p1*data_p1_p1_p1 + + coeff_dz_p2_p1_p1*data_p2_p1_p1 + + coeff_dz_m1_p2_p1*data_m1_p2_p1 + + coeff_dz_0_p2_p1*data_0_p2_p1 + + coeff_dz_p1_p2_p1*data_p1_p2_p1 + + coeff_dz_p2_p2_p1*data_p2_p2_p1 + + coeff_dz_m1_m1_p2*data_m1_m1_p2 + + coeff_dz_0_m1_p2*data_0_m1_p2 + + coeff_dz_p1_m1_p2*data_p1_m1_p2 + + coeff_dz_p2_m1_p2*data_p2_m1_p2 + + coeff_dz_m1_0_p2*data_m1_0_p2 + + coeff_dz_0_0_p2*data_0_0_p2 + + coeff_dz_p1_0_p2*data_p1_0_p2 + + coeff_dz_p2_0_p2*data_p2_0_p2 + + coeff_dz_m1_p1_p2*data_m1_p1_p2 + + coeff_dz_0_p1_p2*data_0_p1_p2 + + coeff_dz_p1_p1_p2*data_p1_p1_p2 + + coeff_dz_p2_p1_p2*data_p2_p1_p2 + + coeff_dz_m1_p2_p2*data_m1_p2_p2 + + coeff_dz_0_p2_p2*data_0_p2_p2 + + coeff_dz_p1_p2_p2*data_p1_p2_p2 + + coeff_dz_p2_p2_p2*data_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-dzz.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-dzz.compute.c new file mode 100644 index 0000000..523242a --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size4/interp-dzz.compute.c @@ -0,0 +1,65 @@ +result = + coeff_dzz_m1_m1_m1*data_m1_m1_m1 + + coeff_dzz_0_m1_m1*data_0_m1_m1 + + coeff_dzz_p1_m1_m1*data_p1_m1_m1 + + coeff_dzz_p2_m1_m1*data_p2_m1_m1 + + coeff_dzz_m1_0_m1*data_m1_0_m1 + + coeff_dzz_0_0_m1*data_0_0_m1 + + coeff_dzz_p1_0_m1*data_p1_0_m1 + + coeff_dzz_p2_0_m1*data_p2_0_m1 + + coeff_dzz_m1_p1_m1*data_m1_p1_m1 + + coeff_dzz_0_p1_m1*data_0_p1_m1 + + coeff_dzz_p1_p1_m1*data_p1_p1_m1 + + coeff_dzz_p2_p1_m1*data_p2_p1_m1 + + coeff_dzz_m1_p2_m1*data_m1_p2_m1 + + coeff_dzz_0_p2_m1*data_0_p2_m1 + + coeff_dzz_p1_p2_m1*data_p1_p2_m1 + + coeff_dzz_p2_p2_m1*data_p2_p2_m1 + + coeff_dzz_m1_m1_0*data_m1_m1_0 + + coeff_dzz_0_m1_0*data_0_m1_0 + + coeff_dzz_p1_m1_0*data_p1_m1_0 + + coeff_dzz_p2_m1_0*data_p2_m1_0 + + coeff_dzz_m1_0_0*data_m1_0_0 + + coeff_dzz_0_0_0*data_0_0_0 + + coeff_dzz_p1_0_0*data_p1_0_0 + + coeff_dzz_p2_0_0*data_p2_0_0 + + coeff_dzz_m1_p1_0*data_m1_p1_0 + + coeff_dzz_0_p1_0*data_0_p1_0 + + coeff_dzz_p1_p1_0*data_p1_p1_0 + + coeff_dzz_p2_p1_0*data_p2_p1_0 + + coeff_dzz_m1_p2_0*data_m1_p2_0 + + coeff_dzz_0_p2_0*data_0_p2_0 + + coeff_dzz_p1_p2_0*data_p1_p2_0 + + coeff_dzz_p2_p2_0*data_p2_p2_0 + + coeff_dzz_m1_m1_p1*data_m1_m1_p1 + + coeff_dzz_0_m1_p1*data_0_m1_p1 + + coeff_dzz_p1_m1_p1*data_p1_m1_p1 + + coeff_dzz_p2_m1_p1*data_p2_m1_p1 + + coeff_dzz_m1_0_p1*data_m1_0_p1 + + coeff_dzz_0_0_p1*data_0_0_p1 + + coeff_dzz_p1_0_p1*data_p1_0_p1 + + coeff_dzz_p2_0_p1*data_p2_0_p1 + + coeff_dzz_m1_p1_p1*data_m1_p1_p1 + + coeff_dzz_0_p1_p1*data_0_p1_p1 + + coeff_dzz_p1_p1_p1*data_p1_p1_p1 + + coeff_dzz_p2_p1_p1*data_p2_p1_p1 + + coeff_dzz_m1_p2_p1*data_m1_p2_p1 + + coeff_dzz_0_p2_p1*data_0_p2_p1 + + coeff_dzz_p1_p2_p1*data_p1_p2_p1 + + coeff_dzz_p2_p2_p1*data_p2_p2_p1 + + coeff_dzz_m1_m1_p2*data_m1_m1_p2 + + coeff_dzz_0_m1_p2*data_0_m1_p2 + + coeff_dzz_p1_m1_p2*data_p1_m1_p2 + + coeff_dzz_p2_m1_p2*data_p2_m1_p2 + + coeff_dzz_m1_0_p2*data_m1_0_p2 + + coeff_dzz_0_0_p2*data_0_0_p2 + + coeff_dzz_p1_0_p2*data_p1_0_p2 + + coeff_dzz_p2_0_p2*data_p2_0_p2 + + coeff_dzz_m1_p1_p2*data_m1_p1_p2 + + coeff_dzz_0_p1_p2*data_0_p1_p2 + + coeff_dzz_p1_p1_p2*data_p1_p1_p2 + + coeff_dzz_p2_p1_p2*data_p2_p1_p2 + + coeff_dzz_m1_p2_p2*data_m1_p2_p2 + + coeff_dzz_0_p2_p2*data_0_p2_p2 + + coeff_dzz_p1_p2_p2*data_p1_p2_p2 + + coeff_dzz_p2_p2_p2*data_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-I.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-I.dcl.c new file mode 100644 index 0000000..f491306 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-I.dcl.c @@ -0,0 +1,125 @@ +fp coeff_I_m2_m2_m2, + coeff_I_m1_m2_m2, + coeff_I_0_m2_m2, + coeff_I_p1_m2_m2, + coeff_I_p2_m2_m2, + coeff_I_m2_m1_m2, + coeff_I_m1_m1_m2, + coeff_I_0_m1_m2, + coeff_I_p1_m1_m2, + coeff_I_p2_m1_m2, + coeff_I_m2_0_m2, + coeff_I_m1_0_m2, + coeff_I_0_0_m2, + coeff_I_p1_0_m2, + coeff_I_p2_0_m2, + coeff_I_m2_p1_m2, + coeff_I_m1_p1_m2, + coeff_I_0_p1_m2, + coeff_I_p1_p1_m2, + coeff_I_p2_p1_m2, + coeff_I_m2_p2_m2, + coeff_I_m1_p2_m2, + coeff_I_0_p2_m2, + coeff_I_p1_p2_m2, + coeff_I_p2_p2_m2, + coeff_I_m2_m2_m1, + coeff_I_m1_m2_m1, + coeff_I_0_m2_m1, + coeff_I_p1_m2_m1, + coeff_I_p2_m2_m1, + coeff_I_m2_m1_m1, + coeff_I_m1_m1_m1, + coeff_I_0_m1_m1, + coeff_I_p1_m1_m1, + coeff_I_p2_m1_m1, + coeff_I_m2_0_m1, + coeff_I_m1_0_m1, + coeff_I_0_0_m1, + coeff_I_p1_0_m1, + coeff_I_p2_0_m1, + coeff_I_m2_p1_m1, + coeff_I_m1_p1_m1, + coeff_I_0_p1_m1, + coeff_I_p1_p1_m1, + coeff_I_p2_p1_m1, + coeff_I_m2_p2_m1, + coeff_I_m1_p2_m1, + coeff_I_0_p2_m1, + coeff_I_p1_p2_m1, + coeff_I_p2_p2_m1, + coeff_I_m2_m2_0, + coeff_I_m1_m2_0, + coeff_I_0_m2_0, + coeff_I_p1_m2_0, + coeff_I_p2_m2_0, + coeff_I_m2_m1_0, + coeff_I_m1_m1_0, + coeff_I_0_m1_0, + coeff_I_p1_m1_0, + coeff_I_p2_m1_0, + coeff_I_m2_0_0, + coeff_I_m1_0_0, + coeff_I_0_0_0, + coeff_I_p1_0_0, + coeff_I_p2_0_0, + coeff_I_m2_p1_0, + coeff_I_m1_p1_0, + coeff_I_0_p1_0, + coeff_I_p1_p1_0, + coeff_I_p2_p1_0, + coeff_I_m2_p2_0, + coeff_I_m1_p2_0, + coeff_I_0_p2_0, + coeff_I_p1_p2_0, + coeff_I_p2_p2_0, + coeff_I_m2_m2_p1, + coeff_I_m1_m2_p1, + coeff_I_0_m2_p1, + coeff_I_p1_m2_p1, + coeff_I_p2_m2_p1, + coeff_I_m2_m1_p1, + coeff_I_m1_m1_p1, + coeff_I_0_m1_p1, + coeff_I_p1_m1_p1, + coeff_I_p2_m1_p1, + coeff_I_m2_0_p1, + coeff_I_m1_0_p1, + coeff_I_0_0_p1, + coeff_I_p1_0_p1, + coeff_I_p2_0_p1, + coeff_I_m2_p1_p1, + coeff_I_m1_p1_p1, + coeff_I_0_p1_p1, + coeff_I_p1_p1_p1, + coeff_I_p2_p1_p1, + coeff_I_m2_p2_p1, + coeff_I_m1_p2_p1, + coeff_I_0_p2_p1, + coeff_I_p1_p2_p1, + coeff_I_p2_p2_p1, + coeff_I_m2_m2_p2, + coeff_I_m1_m2_p2, + coeff_I_0_m2_p2, + coeff_I_p1_m2_p2, + coeff_I_p2_m2_p2, + coeff_I_m2_m1_p2, + coeff_I_m1_m1_p2, + coeff_I_0_m1_p2, + coeff_I_p1_m1_p2, + coeff_I_p2_m1_p2, + coeff_I_m2_0_p2, + coeff_I_m1_0_p2, + coeff_I_0_0_p2, + coeff_I_p1_0_p2, + coeff_I_p2_0_p2, + coeff_I_m2_p1_p2, + coeff_I_m1_p1_p2, + coeff_I_0_p1_p2, + coeff_I_p1_p1_p2, + coeff_I_p2_p1_p2, + coeff_I_m2_p2_p2, + coeff_I_m1_p2_p2, + coeff_I_0_p2_p2, + coeff_I_p1_p2_p2, + coeff_I_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-dx.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-dx.dcl.c new file mode 100644 index 0000000..0c923f3 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-dx.dcl.c @@ -0,0 +1,125 @@ +fp coeff_dx_m2_m2_m2, + coeff_dx_m1_m2_m2, + coeff_dx_0_m2_m2, + coeff_dx_p1_m2_m2, + coeff_dx_p2_m2_m2, + coeff_dx_m2_m1_m2, + coeff_dx_m1_m1_m2, + coeff_dx_0_m1_m2, + coeff_dx_p1_m1_m2, + coeff_dx_p2_m1_m2, + coeff_dx_m2_0_m2, + coeff_dx_m1_0_m2, + coeff_dx_0_0_m2, + coeff_dx_p1_0_m2, + coeff_dx_p2_0_m2, + coeff_dx_m2_p1_m2, + coeff_dx_m1_p1_m2, + coeff_dx_0_p1_m2, + coeff_dx_p1_p1_m2, + coeff_dx_p2_p1_m2, + coeff_dx_m2_p2_m2, + coeff_dx_m1_p2_m2, + coeff_dx_0_p2_m2, + coeff_dx_p1_p2_m2, + coeff_dx_p2_p2_m2, + coeff_dx_m2_m2_m1, + coeff_dx_m1_m2_m1, + coeff_dx_0_m2_m1, + coeff_dx_p1_m2_m1, + coeff_dx_p2_m2_m1, + coeff_dx_m2_m1_m1, + coeff_dx_m1_m1_m1, + coeff_dx_0_m1_m1, + coeff_dx_p1_m1_m1, + coeff_dx_p2_m1_m1, + coeff_dx_m2_0_m1, + coeff_dx_m1_0_m1, + coeff_dx_0_0_m1, + coeff_dx_p1_0_m1, + coeff_dx_p2_0_m1, + coeff_dx_m2_p1_m1, + coeff_dx_m1_p1_m1, + coeff_dx_0_p1_m1, + coeff_dx_p1_p1_m1, + coeff_dx_p2_p1_m1, + coeff_dx_m2_p2_m1, + coeff_dx_m1_p2_m1, + coeff_dx_0_p2_m1, + coeff_dx_p1_p2_m1, + coeff_dx_p2_p2_m1, + coeff_dx_m2_m2_0, + coeff_dx_m1_m2_0, + coeff_dx_0_m2_0, + coeff_dx_p1_m2_0, + coeff_dx_p2_m2_0, + coeff_dx_m2_m1_0, + coeff_dx_m1_m1_0, + coeff_dx_0_m1_0, + coeff_dx_p1_m1_0, + coeff_dx_p2_m1_0, + coeff_dx_m2_0_0, + coeff_dx_m1_0_0, + coeff_dx_0_0_0, + coeff_dx_p1_0_0, + coeff_dx_p2_0_0, + coeff_dx_m2_p1_0, + coeff_dx_m1_p1_0, + coeff_dx_0_p1_0, + coeff_dx_p1_p1_0, + coeff_dx_p2_p1_0, + coeff_dx_m2_p2_0, + coeff_dx_m1_p2_0, + coeff_dx_0_p2_0, + coeff_dx_p1_p2_0, + coeff_dx_p2_p2_0, + coeff_dx_m2_m2_p1, + coeff_dx_m1_m2_p1, + coeff_dx_0_m2_p1, + coeff_dx_p1_m2_p1, + coeff_dx_p2_m2_p1, + coeff_dx_m2_m1_p1, + coeff_dx_m1_m1_p1, + coeff_dx_0_m1_p1, + coeff_dx_p1_m1_p1, + coeff_dx_p2_m1_p1, + coeff_dx_m2_0_p1, + coeff_dx_m1_0_p1, + coeff_dx_0_0_p1, + coeff_dx_p1_0_p1, + coeff_dx_p2_0_p1, + coeff_dx_m2_p1_p1, + coeff_dx_m1_p1_p1, + coeff_dx_0_p1_p1, + coeff_dx_p1_p1_p1, + coeff_dx_p2_p1_p1, + coeff_dx_m2_p2_p1, + coeff_dx_m1_p2_p1, + coeff_dx_0_p2_p1, + coeff_dx_p1_p2_p1, + coeff_dx_p2_p2_p1, + coeff_dx_m2_m2_p2, + coeff_dx_m1_m2_p2, + coeff_dx_0_m2_p2, + coeff_dx_p1_m2_p2, + coeff_dx_p2_m2_p2, + coeff_dx_m2_m1_p2, + coeff_dx_m1_m1_p2, + coeff_dx_0_m1_p2, + coeff_dx_p1_m1_p2, + coeff_dx_p2_m1_p2, + coeff_dx_m2_0_p2, + coeff_dx_m1_0_p2, + coeff_dx_0_0_p2, + coeff_dx_p1_0_p2, + coeff_dx_p2_0_p2, + coeff_dx_m2_p1_p2, + coeff_dx_m1_p1_p2, + coeff_dx_0_p1_p2, + coeff_dx_p1_p1_p2, + coeff_dx_p2_p1_p2, + coeff_dx_m2_p2_p2, + coeff_dx_m1_p2_p2, + coeff_dx_0_p2_p2, + coeff_dx_p1_p2_p2, + coeff_dx_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-dxx.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-dxx.dcl.c new file mode 100644 index 0000000..e7cb52f --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-dxx.dcl.c @@ -0,0 +1,125 @@ +fp coeff_dxx_m2_m2_m2, + coeff_dxx_m1_m2_m2, + coeff_dxx_0_m2_m2, + coeff_dxx_p1_m2_m2, + coeff_dxx_p2_m2_m2, + coeff_dxx_m2_m1_m2, + coeff_dxx_m1_m1_m2, + coeff_dxx_0_m1_m2, + coeff_dxx_p1_m1_m2, + coeff_dxx_p2_m1_m2, + coeff_dxx_m2_0_m2, + coeff_dxx_m1_0_m2, + coeff_dxx_0_0_m2, + coeff_dxx_p1_0_m2, + coeff_dxx_p2_0_m2, + coeff_dxx_m2_p1_m2, + coeff_dxx_m1_p1_m2, + coeff_dxx_0_p1_m2, + coeff_dxx_p1_p1_m2, + coeff_dxx_p2_p1_m2, + coeff_dxx_m2_p2_m2, + coeff_dxx_m1_p2_m2, + coeff_dxx_0_p2_m2, + coeff_dxx_p1_p2_m2, + coeff_dxx_p2_p2_m2, + coeff_dxx_m2_m2_m1, + coeff_dxx_m1_m2_m1, + coeff_dxx_0_m2_m1, + coeff_dxx_p1_m2_m1, + coeff_dxx_p2_m2_m1, + coeff_dxx_m2_m1_m1, + coeff_dxx_m1_m1_m1, + coeff_dxx_0_m1_m1, + coeff_dxx_p1_m1_m1, + coeff_dxx_p2_m1_m1, + coeff_dxx_m2_0_m1, + coeff_dxx_m1_0_m1, + coeff_dxx_0_0_m1, + coeff_dxx_p1_0_m1, + coeff_dxx_p2_0_m1, + coeff_dxx_m2_p1_m1, + coeff_dxx_m1_p1_m1, + coeff_dxx_0_p1_m1, + coeff_dxx_p1_p1_m1, + coeff_dxx_p2_p1_m1, + coeff_dxx_m2_p2_m1, + coeff_dxx_m1_p2_m1, + coeff_dxx_0_p2_m1, + coeff_dxx_p1_p2_m1, + coeff_dxx_p2_p2_m1, + coeff_dxx_m2_m2_0, + coeff_dxx_m1_m2_0, + coeff_dxx_0_m2_0, + coeff_dxx_p1_m2_0, + coeff_dxx_p2_m2_0, + coeff_dxx_m2_m1_0, + coeff_dxx_m1_m1_0, + coeff_dxx_0_m1_0, + coeff_dxx_p1_m1_0, + coeff_dxx_p2_m1_0, + coeff_dxx_m2_0_0, + coeff_dxx_m1_0_0, + coeff_dxx_0_0_0, + coeff_dxx_p1_0_0, + coeff_dxx_p2_0_0, + coeff_dxx_m2_p1_0, + coeff_dxx_m1_p1_0, + coeff_dxx_0_p1_0, + coeff_dxx_p1_p1_0, + coeff_dxx_p2_p1_0, + coeff_dxx_m2_p2_0, + coeff_dxx_m1_p2_0, + coeff_dxx_0_p2_0, + coeff_dxx_p1_p2_0, + coeff_dxx_p2_p2_0, + coeff_dxx_m2_m2_p1, + coeff_dxx_m1_m2_p1, + coeff_dxx_0_m2_p1, + coeff_dxx_p1_m2_p1, + coeff_dxx_p2_m2_p1, + coeff_dxx_m2_m1_p1, + coeff_dxx_m1_m1_p1, + coeff_dxx_0_m1_p1, + coeff_dxx_p1_m1_p1, + coeff_dxx_p2_m1_p1, + coeff_dxx_m2_0_p1, + coeff_dxx_m1_0_p1, + coeff_dxx_0_0_p1, + coeff_dxx_p1_0_p1, + coeff_dxx_p2_0_p1, + coeff_dxx_m2_p1_p1, + coeff_dxx_m1_p1_p1, + coeff_dxx_0_p1_p1, + coeff_dxx_p1_p1_p1, + coeff_dxx_p2_p1_p1, + coeff_dxx_m2_p2_p1, + coeff_dxx_m1_p2_p1, + coeff_dxx_0_p2_p1, + coeff_dxx_p1_p2_p1, + coeff_dxx_p2_p2_p1, + coeff_dxx_m2_m2_p2, + coeff_dxx_m1_m2_p2, + coeff_dxx_0_m2_p2, + coeff_dxx_p1_m2_p2, + coeff_dxx_p2_m2_p2, + coeff_dxx_m2_m1_p2, + coeff_dxx_m1_m1_p2, + coeff_dxx_0_m1_p2, + coeff_dxx_p1_m1_p2, + coeff_dxx_p2_m1_p2, + coeff_dxx_m2_0_p2, + coeff_dxx_m1_0_p2, + coeff_dxx_0_0_p2, + coeff_dxx_p1_0_p2, + coeff_dxx_p2_0_p2, + coeff_dxx_m2_p1_p2, + coeff_dxx_m1_p1_p2, + coeff_dxx_0_p1_p2, + coeff_dxx_p1_p1_p2, + coeff_dxx_p2_p1_p2, + coeff_dxx_m2_p2_p2, + coeff_dxx_m1_p2_p2, + coeff_dxx_0_p2_p2, + coeff_dxx_p1_p2_p2, + coeff_dxx_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-dxy.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-dxy.dcl.c new file mode 100644 index 0000000..3b029c8 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-dxy.dcl.c @@ -0,0 +1,125 @@ +fp coeff_dxy_m2_m2_m2, + coeff_dxy_m1_m2_m2, + coeff_dxy_0_m2_m2, + coeff_dxy_p1_m2_m2, + coeff_dxy_p2_m2_m2, + coeff_dxy_m2_m1_m2, + coeff_dxy_m1_m1_m2, + coeff_dxy_0_m1_m2, + coeff_dxy_p1_m1_m2, + coeff_dxy_p2_m1_m2, + coeff_dxy_m2_0_m2, + coeff_dxy_m1_0_m2, + coeff_dxy_0_0_m2, + coeff_dxy_p1_0_m2, + coeff_dxy_p2_0_m2, + coeff_dxy_m2_p1_m2, + coeff_dxy_m1_p1_m2, + coeff_dxy_0_p1_m2, + coeff_dxy_p1_p1_m2, + coeff_dxy_p2_p1_m2, + coeff_dxy_m2_p2_m2, + coeff_dxy_m1_p2_m2, + coeff_dxy_0_p2_m2, + coeff_dxy_p1_p2_m2, + coeff_dxy_p2_p2_m2, + coeff_dxy_m2_m2_m1, + coeff_dxy_m1_m2_m1, + coeff_dxy_0_m2_m1, + coeff_dxy_p1_m2_m1, + coeff_dxy_p2_m2_m1, + coeff_dxy_m2_m1_m1, + coeff_dxy_m1_m1_m1, + coeff_dxy_0_m1_m1, + coeff_dxy_p1_m1_m1, + coeff_dxy_p2_m1_m1, + coeff_dxy_m2_0_m1, + coeff_dxy_m1_0_m1, + coeff_dxy_0_0_m1, + coeff_dxy_p1_0_m1, + coeff_dxy_p2_0_m1, + coeff_dxy_m2_p1_m1, + coeff_dxy_m1_p1_m1, + coeff_dxy_0_p1_m1, + coeff_dxy_p1_p1_m1, + coeff_dxy_p2_p1_m1, + coeff_dxy_m2_p2_m1, + coeff_dxy_m1_p2_m1, + coeff_dxy_0_p2_m1, + coeff_dxy_p1_p2_m1, + coeff_dxy_p2_p2_m1, + coeff_dxy_m2_m2_0, + coeff_dxy_m1_m2_0, + coeff_dxy_0_m2_0, + coeff_dxy_p1_m2_0, + coeff_dxy_p2_m2_0, + coeff_dxy_m2_m1_0, + coeff_dxy_m1_m1_0, + coeff_dxy_0_m1_0, + coeff_dxy_p1_m1_0, + coeff_dxy_p2_m1_0, + coeff_dxy_m2_0_0, + coeff_dxy_m1_0_0, + coeff_dxy_0_0_0, + coeff_dxy_p1_0_0, + coeff_dxy_p2_0_0, + coeff_dxy_m2_p1_0, + coeff_dxy_m1_p1_0, + coeff_dxy_0_p1_0, + coeff_dxy_p1_p1_0, + coeff_dxy_p2_p1_0, + coeff_dxy_m2_p2_0, + coeff_dxy_m1_p2_0, + coeff_dxy_0_p2_0, + coeff_dxy_p1_p2_0, + coeff_dxy_p2_p2_0, + coeff_dxy_m2_m2_p1, + coeff_dxy_m1_m2_p1, + coeff_dxy_0_m2_p1, + coeff_dxy_p1_m2_p1, + coeff_dxy_p2_m2_p1, + coeff_dxy_m2_m1_p1, + coeff_dxy_m1_m1_p1, + coeff_dxy_0_m1_p1, + coeff_dxy_p1_m1_p1, + coeff_dxy_p2_m1_p1, + coeff_dxy_m2_0_p1, + coeff_dxy_m1_0_p1, + coeff_dxy_0_0_p1, + coeff_dxy_p1_0_p1, + coeff_dxy_p2_0_p1, + coeff_dxy_m2_p1_p1, + coeff_dxy_m1_p1_p1, + coeff_dxy_0_p1_p1, + coeff_dxy_p1_p1_p1, + coeff_dxy_p2_p1_p1, + coeff_dxy_m2_p2_p1, + coeff_dxy_m1_p2_p1, + coeff_dxy_0_p2_p1, + coeff_dxy_p1_p2_p1, + coeff_dxy_p2_p2_p1, + coeff_dxy_m2_m2_p2, + coeff_dxy_m1_m2_p2, + coeff_dxy_0_m2_p2, + coeff_dxy_p1_m2_p2, + coeff_dxy_p2_m2_p2, + coeff_dxy_m2_m1_p2, + coeff_dxy_m1_m1_p2, + coeff_dxy_0_m1_p2, + coeff_dxy_p1_m1_p2, + coeff_dxy_p2_m1_p2, + coeff_dxy_m2_0_p2, + coeff_dxy_m1_0_p2, + coeff_dxy_0_0_p2, + coeff_dxy_p1_0_p2, + coeff_dxy_p2_0_p2, + coeff_dxy_m2_p1_p2, + coeff_dxy_m1_p1_p2, + coeff_dxy_0_p1_p2, + coeff_dxy_p1_p1_p2, + coeff_dxy_p2_p1_p2, + coeff_dxy_m2_p2_p2, + coeff_dxy_m1_p2_p2, + coeff_dxy_0_p2_p2, + coeff_dxy_p1_p2_p2, + coeff_dxy_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-dxz.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-dxz.dcl.c new file mode 100644 index 0000000..4db13a0 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-dxz.dcl.c @@ -0,0 +1,125 @@ +fp coeff_dxz_m2_m2_m2, + coeff_dxz_m1_m2_m2, + coeff_dxz_0_m2_m2, + coeff_dxz_p1_m2_m2, + coeff_dxz_p2_m2_m2, + coeff_dxz_m2_m1_m2, + coeff_dxz_m1_m1_m2, + coeff_dxz_0_m1_m2, + coeff_dxz_p1_m1_m2, + coeff_dxz_p2_m1_m2, + coeff_dxz_m2_0_m2, + coeff_dxz_m1_0_m2, + coeff_dxz_0_0_m2, + coeff_dxz_p1_0_m2, + coeff_dxz_p2_0_m2, + coeff_dxz_m2_p1_m2, + coeff_dxz_m1_p1_m2, + coeff_dxz_0_p1_m2, + coeff_dxz_p1_p1_m2, + coeff_dxz_p2_p1_m2, + coeff_dxz_m2_p2_m2, + coeff_dxz_m1_p2_m2, + coeff_dxz_0_p2_m2, + coeff_dxz_p1_p2_m2, + coeff_dxz_p2_p2_m2, + coeff_dxz_m2_m2_m1, + coeff_dxz_m1_m2_m1, + coeff_dxz_0_m2_m1, + coeff_dxz_p1_m2_m1, + coeff_dxz_p2_m2_m1, + coeff_dxz_m2_m1_m1, + coeff_dxz_m1_m1_m1, + coeff_dxz_0_m1_m1, + coeff_dxz_p1_m1_m1, + coeff_dxz_p2_m1_m1, + coeff_dxz_m2_0_m1, + coeff_dxz_m1_0_m1, + coeff_dxz_0_0_m1, + coeff_dxz_p1_0_m1, + coeff_dxz_p2_0_m1, + coeff_dxz_m2_p1_m1, + coeff_dxz_m1_p1_m1, + coeff_dxz_0_p1_m1, + coeff_dxz_p1_p1_m1, + coeff_dxz_p2_p1_m1, + coeff_dxz_m2_p2_m1, + coeff_dxz_m1_p2_m1, + coeff_dxz_0_p2_m1, + coeff_dxz_p1_p2_m1, + coeff_dxz_p2_p2_m1, + coeff_dxz_m2_m2_0, + coeff_dxz_m1_m2_0, + coeff_dxz_0_m2_0, + coeff_dxz_p1_m2_0, + coeff_dxz_p2_m2_0, + coeff_dxz_m2_m1_0, + coeff_dxz_m1_m1_0, + coeff_dxz_0_m1_0, + coeff_dxz_p1_m1_0, + coeff_dxz_p2_m1_0, + coeff_dxz_m2_0_0, + coeff_dxz_m1_0_0, + coeff_dxz_0_0_0, + coeff_dxz_p1_0_0, + coeff_dxz_p2_0_0, + coeff_dxz_m2_p1_0, + coeff_dxz_m1_p1_0, + coeff_dxz_0_p1_0, + coeff_dxz_p1_p1_0, + coeff_dxz_p2_p1_0, + coeff_dxz_m2_p2_0, + coeff_dxz_m1_p2_0, + coeff_dxz_0_p2_0, + coeff_dxz_p1_p2_0, + coeff_dxz_p2_p2_0, + coeff_dxz_m2_m2_p1, + coeff_dxz_m1_m2_p1, + coeff_dxz_0_m2_p1, + coeff_dxz_p1_m2_p1, + coeff_dxz_p2_m2_p1, + coeff_dxz_m2_m1_p1, + coeff_dxz_m1_m1_p1, + coeff_dxz_0_m1_p1, + coeff_dxz_p1_m1_p1, + coeff_dxz_p2_m1_p1, + coeff_dxz_m2_0_p1, + coeff_dxz_m1_0_p1, + coeff_dxz_0_0_p1, + coeff_dxz_p1_0_p1, + coeff_dxz_p2_0_p1, + coeff_dxz_m2_p1_p1, + coeff_dxz_m1_p1_p1, + coeff_dxz_0_p1_p1, + coeff_dxz_p1_p1_p1, + coeff_dxz_p2_p1_p1, + coeff_dxz_m2_p2_p1, + coeff_dxz_m1_p2_p1, + coeff_dxz_0_p2_p1, + coeff_dxz_p1_p2_p1, + coeff_dxz_p2_p2_p1, + coeff_dxz_m2_m2_p2, + coeff_dxz_m1_m2_p2, + coeff_dxz_0_m2_p2, + coeff_dxz_p1_m2_p2, + coeff_dxz_p2_m2_p2, + coeff_dxz_m2_m1_p2, + coeff_dxz_m1_m1_p2, + coeff_dxz_0_m1_p2, + coeff_dxz_p1_m1_p2, + coeff_dxz_p2_m1_p2, + coeff_dxz_m2_0_p2, + coeff_dxz_m1_0_p2, + coeff_dxz_0_0_p2, + coeff_dxz_p1_0_p2, + coeff_dxz_p2_0_p2, + coeff_dxz_m2_p1_p2, + coeff_dxz_m1_p1_p2, + coeff_dxz_0_p1_p2, + coeff_dxz_p1_p1_p2, + coeff_dxz_p2_p1_p2, + coeff_dxz_m2_p2_p2, + coeff_dxz_m1_p2_p2, + coeff_dxz_0_p2_p2, + coeff_dxz_p1_p2_p2, + coeff_dxz_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-dy.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-dy.dcl.c new file mode 100644 index 0000000..a26ddf8 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-dy.dcl.c @@ -0,0 +1,125 @@ +fp coeff_dy_m2_m2_m2, + coeff_dy_m1_m2_m2, + coeff_dy_0_m2_m2, + coeff_dy_p1_m2_m2, + coeff_dy_p2_m2_m2, + coeff_dy_m2_m1_m2, + coeff_dy_m1_m1_m2, + coeff_dy_0_m1_m2, + coeff_dy_p1_m1_m2, + coeff_dy_p2_m1_m2, + coeff_dy_m2_0_m2, + coeff_dy_m1_0_m2, + coeff_dy_0_0_m2, + coeff_dy_p1_0_m2, + coeff_dy_p2_0_m2, + coeff_dy_m2_p1_m2, + coeff_dy_m1_p1_m2, + coeff_dy_0_p1_m2, + coeff_dy_p1_p1_m2, + coeff_dy_p2_p1_m2, + coeff_dy_m2_p2_m2, + coeff_dy_m1_p2_m2, + coeff_dy_0_p2_m2, + coeff_dy_p1_p2_m2, + coeff_dy_p2_p2_m2, + coeff_dy_m2_m2_m1, + coeff_dy_m1_m2_m1, + coeff_dy_0_m2_m1, + coeff_dy_p1_m2_m1, + coeff_dy_p2_m2_m1, + coeff_dy_m2_m1_m1, + coeff_dy_m1_m1_m1, + coeff_dy_0_m1_m1, + coeff_dy_p1_m1_m1, + coeff_dy_p2_m1_m1, + coeff_dy_m2_0_m1, + coeff_dy_m1_0_m1, + coeff_dy_0_0_m1, + coeff_dy_p1_0_m1, + coeff_dy_p2_0_m1, + coeff_dy_m2_p1_m1, + coeff_dy_m1_p1_m1, + coeff_dy_0_p1_m1, + coeff_dy_p1_p1_m1, + coeff_dy_p2_p1_m1, + coeff_dy_m2_p2_m1, + coeff_dy_m1_p2_m1, + coeff_dy_0_p2_m1, + coeff_dy_p1_p2_m1, + coeff_dy_p2_p2_m1, + coeff_dy_m2_m2_0, + coeff_dy_m1_m2_0, + coeff_dy_0_m2_0, + coeff_dy_p1_m2_0, + coeff_dy_p2_m2_0, + coeff_dy_m2_m1_0, + coeff_dy_m1_m1_0, + coeff_dy_0_m1_0, + coeff_dy_p1_m1_0, + coeff_dy_p2_m1_0, + coeff_dy_m2_0_0, + coeff_dy_m1_0_0, + coeff_dy_0_0_0, + coeff_dy_p1_0_0, + coeff_dy_p2_0_0, + coeff_dy_m2_p1_0, + coeff_dy_m1_p1_0, + coeff_dy_0_p1_0, + coeff_dy_p1_p1_0, + coeff_dy_p2_p1_0, + coeff_dy_m2_p2_0, + coeff_dy_m1_p2_0, + coeff_dy_0_p2_0, + coeff_dy_p1_p2_0, + coeff_dy_p2_p2_0, + coeff_dy_m2_m2_p1, + coeff_dy_m1_m2_p1, + coeff_dy_0_m2_p1, + coeff_dy_p1_m2_p1, + coeff_dy_p2_m2_p1, + coeff_dy_m2_m1_p1, + coeff_dy_m1_m1_p1, + coeff_dy_0_m1_p1, + coeff_dy_p1_m1_p1, + coeff_dy_p2_m1_p1, + coeff_dy_m2_0_p1, + coeff_dy_m1_0_p1, + coeff_dy_0_0_p1, + coeff_dy_p1_0_p1, + coeff_dy_p2_0_p1, + coeff_dy_m2_p1_p1, + coeff_dy_m1_p1_p1, + coeff_dy_0_p1_p1, + coeff_dy_p1_p1_p1, + coeff_dy_p2_p1_p1, + coeff_dy_m2_p2_p1, + coeff_dy_m1_p2_p1, + coeff_dy_0_p2_p1, + coeff_dy_p1_p2_p1, + coeff_dy_p2_p2_p1, + coeff_dy_m2_m2_p2, + coeff_dy_m1_m2_p2, + coeff_dy_0_m2_p2, + coeff_dy_p1_m2_p2, + coeff_dy_p2_m2_p2, + coeff_dy_m2_m1_p2, + coeff_dy_m1_m1_p2, + coeff_dy_0_m1_p2, + coeff_dy_p1_m1_p2, + coeff_dy_p2_m1_p2, + coeff_dy_m2_0_p2, + coeff_dy_m1_0_p2, + coeff_dy_0_0_p2, + coeff_dy_p1_0_p2, + coeff_dy_p2_0_p2, + coeff_dy_m2_p1_p2, + coeff_dy_m1_p1_p2, + coeff_dy_0_p1_p2, + coeff_dy_p1_p1_p2, + coeff_dy_p2_p1_p2, + coeff_dy_m2_p2_p2, + coeff_dy_m1_p2_p2, + coeff_dy_0_p2_p2, + coeff_dy_p1_p2_p2, + coeff_dy_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-dyy.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-dyy.dcl.c new file mode 100644 index 0000000..a78af2b --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-dyy.dcl.c @@ -0,0 +1,125 @@ +fp coeff_dyy_m2_m2_m2, + coeff_dyy_m1_m2_m2, + coeff_dyy_0_m2_m2, + coeff_dyy_p1_m2_m2, + coeff_dyy_p2_m2_m2, + coeff_dyy_m2_m1_m2, + coeff_dyy_m1_m1_m2, + coeff_dyy_0_m1_m2, + coeff_dyy_p1_m1_m2, + coeff_dyy_p2_m1_m2, + coeff_dyy_m2_0_m2, + coeff_dyy_m1_0_m2, + coeff_dyy_0_0_m2, + coeff_dyy_p1_0_m2, + coeff_dyy_p2_0_m2, + coeff_dyy_m2_p1_m2, + coeff_dyy_m1_p1_m2, + coeff_dyy_0_p1_m2, + coeff_dyy_p1_p1_m2, + coeff_dyy_p2_p1_m2, + coeff_dyy_m2_p2_m2, + coeff_dyy_m1_p2_m2, + coeff_dyy_0_p2_m2, + coeff_dyy_p1_p2_m2, + coeff_dyy_p2_p2_m2, + coeff_dyy_m2_m2_m1, + coeff_dyy_m1_m2_m1, + coeff_dyy_0_m2_m1, + coeff_dyy_p1_m2_m1, + coeff_dyy_p2_m2_m1, + coeff_dyy_m2_m1_m1, + coeff_dyy_m1_m1_m1, + coeff_dyy_0_m1_m1, + coeff_dyy_p1_m1_m1, + coeff_dyy_p2_m1_m1, + coeff_dyy_m2_0_m1, + coeff_dyy_m1_0_m1, + coeff_dyy_0_0_m1, + coeff_dyy_p1_0_m1, + coeff_dyy_p2_0_m1, + coeff_dyy_m2_p1_m1, + coeff_dyy_m1_p1_m1, + coeff_dyy_0_p1_m1, + coeff_dyy_p1_p1_m1, + coeff_dyy_p2_p1_m1, + coeff_dyy_m2_p2_m1, + coeff_dyy_m1_p2_m1, + coeff_dyy_0_p2_m1, + coeff_dyy_p1_p2_m1, + coeff_dyy_p2_p2_m1, + coeff_dyy_m2_m2_0, + coeff_dyy_m1_m2_0, + coeff_dyy_0_m2_0, + coeff_dyy_p1_m2_0, + coeff_dyy_p2_m2_0, + coeff_dyy_m2_m1_0, + coeff_dyy_m1_m1_0, + coeff_dyy_0_m1_0, + coeff_dyy_p1_m1_0, + coeff_dyy_p2_m1_0, + coeff_dyy_m2_0_0, + coeff_dyy_m1_0_0, + coeff_dyy_0_0_0, + coeff_dyy_p1_0_0, + coeff_dyy_p2_0_0, + coeff_dyy_m2_p1_0, + coeff_dyy_m1_p1_0, + coeff_dyy_0_p1_0, + coeff_dyy_p1_p1_0, + coeff_dyy_p2_p1_0, + coeff_dyy_m2_p2_0, + coeff_dyy_m1_p2_0, + coeff_dyy_0_p2_0, + coeff_dyy_p1_p2_0, + coeff_dyy_p2_p2_0, + coeff_dyy_m2_m2_p1, + coeff_dyy_m1_m2_p1, + coeff_dyy_0_m2_p1, + coeff_dyy_p1_m2_p1, + coeff_dyy_p2_m2_p1, + coeff_dyy_m2_m1_p1, + coeff_dyy_m1_m1_p1, + coeff_dyy_0_m1_p1, + coeff_dyy_p1_m1_p1, + coeff_dyy_p2_m1_p1, + coeff_dyy_m2_0_p1, + coeff_dyy_m1_0_p1, + coeff_dyy_0_0_p1, + coeff_dyy_p1_0_p1, + coeff_dyy_p2_0_p1, + coeff_dyy_m2_p1_p1, + coeff_dyy_m1_p1_p1, + coeff_dyy_0_p1_p1, + coeff_dyy_p1_p1_p1, + coeff_dyy_p2_p1_p1, + coeff_dyy_m2_p2_p1, + coeff_dyy_m1_p2_p1, + coeff_dyy_0_p2_p1, + coeff_dyy_p1_p2_p1, + coeff_dyy_p2_p2_p1, + coeff_dyy_m2_m2_p2, + coeff_dyy_m1_m2_p2, + coeff_dyy_0_m2_p2, + coeff_dyy_p1_m2_p2, + coeff_dyy_p2_m2_p2, + coeff_dyy_m2_m1_p2, + coeff_dyy_m1_m1_p2, + coeff_dyy_0_m1_p2, + coeff_dyy_p1_m1_p2, + coeff_dyy_p2_m1_p2, + coeff_dyy_m2_0_p2, + coeff_dyy_m1_0_p2, + coeff_dyy_0_0_p2, + coeff_dyy_p1_0_p2, + coeff_dyy_p2_0_p2, + coeff_dyy_m2_p1_p2, + coeff_dyy_m1_p1_p2, + coeff_dyy_0_p1_p2, + coeff_dyy_p1_p1_p2, + coeff_dyy_p2_p1_p2, + coeff_dyy_m2_p2_p2, + coeff_dyy_m1_p2_p2, + coeff_dyy_0_p2_p2, + coeff_dyy_p1_p2_p2, + coeff_dyy_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-dyz.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-dyz.dcl.c new file mode 100644 index 0000000..f932782 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-dyz.dcl.c @@ -0,0 +1,125 @@ +fp coeff_dyz_m2_m2_m2, + coeff_dyz_m1_m2_m2, + coeff_dyz_0_m2_m2, + coeff_dyz_p1_m2_m2, + coeff_dyz_p2_m2_m2, + coeff_dyz_m2_m1_m2, + coeff_dyz_m1_m1_m2, + coeff_dyz_0_m1_m2, + coeff_dyz_p1_m1_m2, + coeff_dyz_p2_m1_m2, + coeff_dyz_m2_0_m2, + coeff_dyz_m1_0_m2, + coeff_dyz_0_0_m2, + coeff_dyz_p1_0_m2, + coeff_dyz_p2_0_m2, + coeff_dyz_m2_p1_m2, + coeff_dyz_m1_p1_m2, + coeff_dyz_0_p1_m2, + coeff_dyz_p1_p1_m2, + coeff_dyz_p2_p1_m2, + coeff_dyz_m2_p2_m2, + coeff_dyz_m1_p2_m2, + coeff_dyz_0_p2_m2, + coeff_dyz_p1_p2_m2, + coeff_dyz_p2_p2_m2, + coeff_dyz_m2_m2_m1, + coeff_dyz_m1_m2_m1, + coeff_dyz_0_m2_m1, + coeff_dyz_p1_m2_m1, + coeff_dyz_p2_m2_m1, + coeff_dyz_m2_m1_m1, + coeff_dyz_m1_m1_m1, + coeff_dyz_0_m1_m1, + coeff_dyz_p1_m1_m1, + coeff_dyz_p2_m1_m1, + coeff_dyz_m2_0_m1, + coeff_dyz_m1_0_m1, + coeff_dyz_0_0_m1, + coeff_dyz_p1_0_m1, + coeff_dyz_p2_0_m1, + coeff_dyz_m2_p1_m1, + coeff_dyz_m1_p1_m1, + coeff_dyz_0_p1_m1, + coeff_dyz_p1_p1_m1, + coeff_dyz_p2_p1_m1, + coeff_dyz_m2_p2_m1, + coeff_dyz_m1_p2_m1, + coeff_dyz_0_p2_m1, + coeff_dyz_p1_p2_m1, + coeff_dyz_p2_p2_m1, + coeff_dyz_m2_m2_0, + coeff_dyz_m1_m2_0, + coeff_dyz_0_m2_0, + coeff_dyz_p1_m2_0, + coeff_dyz_p2_m2_0, + coeff_dyz_m2_m1_0, + coeff_dyz_m1_m1_0, + coeff_dyz_0_m1_0, + coeff_dyz_p1_m1_0, + coeff_dyz_p2_m1_0, + coeff_dyz_m2_0_0, + coeff_dyz_m1_0_0, + coeff_dyz_0_0_0, + coeff_dyz_p1_0_0, + coeff_dyz_p2_0_0, + coeff_dyz_m2_p1_0, + coeff_dyz_m1_p1_0, + coeff_dyz_0_p1_0, + coeff_dyz_p1_p1_0, + coeff_dyz_p2_p1_0, + coeff_dyz_m2_p2_0, + coeff_dyz_m1_p2_0, + coeff_dyz_0_p2_0, + coeff_dyz_p1_p2_0, + coeff_dyz_p2_p2_0, + coeff_dyz_m2_m2_p1, + coeff_dyz_m1_m2_p1, + coeff_dyz_0_m2_p1, + coeff_dyz_p1_m2_p1, + coeff_dyz_p2_m2_p1, + coeff_dyz_m2_m1_p1, + coeff_dyz_m1_m1_p1, + coeff_dyz_0_m1_p1, + coeff_dyz_p1_m1_p1, + coeff_dyz_p2_m1_p1, + coeff_dyz_m2_0_p1, + coeff_dyz_m1_0_p1, + coeff_dyz_0_0_p1, + coeff_dyz_p1_0_p1, + coeff_dyz_p2_0_p1, + coeff_dyz_m2_p1_p1, + coeff_dyz_m1_p1_p1, + coeff_dyz_0_p1_p1, + coeff_dyz_p1_p1_p1, + coeff_dyz_p2_p1_p1, + coeff_dyz_m2_p2_p1, + coeff_dyz_m1_p2_p1, + coeff_dyz_0_p2_p1, + coeff_dyz_p1_p2_p1, + coeff_dyz_p2_p2_p1, + coeff_dyz_m2_m2_p2, + coeff_dyz_m1_m2_p2, + coeff_dyz_0_m2_p2, + coeff_dyz_p1_m2_p2, + coeff_dyz_p2_m2_p2, + coeff_dyz_m2_m1_p2, + coeff_dyz_m1_m1_p2, + coeff_dyz_0_m1_p2, + coeff_dyz_p1_m1_p2, + coeff_dyz_p2_m1_p2, + coeff_dyz_m2_0_p2, + coeff_dyz_m1_0_p2, + coeff_dyz_0_0_p2, + coeff_dyz_p1_0_p2, + coeff_dyz_p2_0_p2, + coeff_dyz_m2_p1_p2, + coeff_dyz_m1_p1_p2, + coeff_dyz_0_p1_p2, + coeff_dyz_p1_p1_p2, + coeff_dyz_p2_p1_p2, + coeff_dyz_m2_p2_p2, + coeff_dyz_m1_p2_p2, + coeff_dyz_0_p2_p2, + coeff_dyz_p1_p2_p2, + coeff_dyz_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-dz.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-dz.dcl.c new file mode 100644 index 0000000..785a843 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-dz.dcl.c @@ -0,0 +1,125 @@ +fp coeff_dz_m2_m2_m2, + coeff_dz_m1_m2_m2, + coeff_dz_0_m2_m2, + coeff_dz_p1_m2_m2, + coeff_dz_p2_m2_m2, + coeff_dz_m2_m1_m2, + coeff_dz_m1_m1_m2, + coeff_dz_0_m1_m2, + coeff_dz_p1_m1_m2, + coeff_dz_p2_m1_m2, + coeff_dz_m2_0_m2, + coeff_dz_m1_0_m2, + coeff_dz_0_0_m2, + coeff_dz_p1_0_m2, + coeff_dz_p2_0_m2, + coeff_dz_m2_p1_m2, + coeff_dz_m1_p1_m2, + coeff_dz_0_p1_m2, + coeff_dz_p1_p1_m2, + coeff_dz_p2_p1_m2, + coeff_dz_m2_p2_m2, + coeff_dz_m1_p2_m2, + coeff_dz_0_p2_m2, + coeff_dz_p1_p2_m2, + coeff_dz_p2_p2_m2, + coeff_dz_m2_m2_m1, + coeff_dz_m1_m2_m1, + coeff_dz_0_m2_m1, + coeff_dz_p1_m2_m1, + coeff_dz_p2_m2_m1, + coeff_dz_m2_m1_m1, + coeff_dz_m1_m1_m1, + coeff_dz_0_m1_m1, + coeff_dz_p1_m1_m1, + coeff_dz_p2_m1_m1, + coeff_dz_m2_0_m1, + coeff_dz_m1_0_m1, + coeff_dz_0_0_m1, + coeff_dz_p1_0_m1, + coeff_dz_p2_0_m1, + coeff_dz_m2_p1_m1, + coeff_dz_m1_p1_m1, + coeff_dz_0_p1_m1, + coeff_dz_p1_p1_m1, + coeff_dz_p2_p1_m1, + coeff_dz_m2_p2_m1, + coeff_dz_m1_p2_m1, + coeff_dz_0_p2_m1, + coeff_dz_p1_p2_m1, + coeff_dz_p2_p2_m1, + coeff_dz_m2_m2_0, + coeff_dz_m1_m2_0, + coeff_dz_0_m2_0, + coeff_dz_p1_m2_0, + coeff_dz_p2_m2_0, + coeff_dz_m2_m1_0, + coeff_dz_m1_m1_0, + coeff_dz_0_m1_0, + coeff_dz_p1_m1_0, + coeff_dz_p2_m1_0, + coeff_dz_m2_0_0, + coeff_dz_m1_0_0, + coeff_dz_0_0_0, + coeff_dz_p1_0_0, + coeff_dz_p2_0_0, + coeff_dz_m2_p1_0, + coeff_dz_m1_p1_0, + coeff_dz_0_p1_0, + coeff_dz_p1_p1_0, + coeff_dz_p2_p1_0, + coeff_dz_m2_p2_0, + coeff_dz_m1_p2_0, + coeff_dz_0_p2_0, + coeff_dz_p1_p2_0, + coeff_dz_p2_p2_0, + coeff_dz_m2_m2_p1, + coeff_dz_m1_m2_p1, + coeff_dz_0_m2_p1, + coeff_dz_p1_m2_p1, + coeff_dz_p2_m2_p1, + coeff_dz_m2_m1_p1, + coeff_dz_m1_m1_p1, + coeff_dz_0_m1_p1, + coeff_dz_p1_m1_p1, + coeff_dz_p2_m1_p1, + coeff_dz_m2_0_p1, + coeff_dz_m1_0_p1, + coeff_dz_0_0_p1, + coeff_dz_p1_0_p1, + coeff_dz_p2_0_p1, + coeff_dz_m2_p1_p1, + coeff_dz_m1_p1_p1, + coeff_dz_0_p1_p1, + coeff_dz_p1_p1_p1, + coeff_dz_p2_p1_p1, + coeff_dz_m2_p2_p1, + coeff_dz_m1_p2_p1, + coeff_dz_0_p2_p1, + coeff_dz_p1_p2_p1, + coeff_dz_p2_p2_p1, + coeff_dz_m2_m2_p2, + coeff_dz_m1_m2_p2, + coeff_dz_0_m2_p2, + coeff_dz_p1_m2_p2, + coeff_dz_p2_m2_p2, + coeff_dz_m2_m1_p2, + coeff_dz_m1_m1_p2, + coeff_dz_0_m1_p2, + coeff_dz_p1_m1_p2, + coeff_dz_p2_m1_p2, + coeff_dz_m2_0_p2, + coeff_dz_m1_0_p2, + coeff_dz_0_0_p2, + coeff_dz_p1_0_p2, + coeff_dz_p2_0_p2, + coeff_dz_m2_p1_p2, + coeff_dz_m1_p1_p2, + coeff_dz_0_p1_p2, + coeff_dz_p1_p1_p2, + coeff_dz_p2_p1_p2, + coeff_dz_m2_p2_p2, + coeff_dz_m1_p2_p2, + coeff_dz_0_p2_p2, + coeff_dz_p1_p2_p2, + coeff_dz_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-dzz.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-dzz.dcl.c new file mode 100644 index 0000000..baf56e5 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/coeff-dzz.dcl.c @@ -0,0 +1,125 @@ +fp coeff_dzz_m2_m2_m2, + coeff_dzz_m1_m2_m2, + coeff_dzz_0_m2_m2, + coeff_dzz_p1_m2_m2, + coeff_dzz_p2_m2_m2, + coeff_dzz_m2_m1_m2, + coeff_dzz_m1_m1_m2, + coeff_dzz_0_m1_m2, + coeff_dzz_p1_m1_m2, + coeff_dzz_p2_m1_m2, + coeff_dzz_m2_0_m2, + coeff_dzz_m1_0_m2, + coeff_dzz_0_0_m2, + coeff_dzz_p1_0_m2, + coeff_dzz_p2_0_m2, + coeff_dzz_m2_p1_m2, + coeff_dzz_m1_p1_m2, + coeff_dzz_0_p1_m2, + coeff_dzz_p1_p1_m2, + coeff_dzz_p2_p1_m2, + coeff_dzz_m2_p2_m2, + coeff_dzz_m1_p2_m2, + coeff_dzz_0_p2_m2, + coeff_dzz_p1_p2_m2, + coeff_dzz_p2_p2_m2, + coeff_dzz_m2_m2_m1, + coeff_dzz_m1_m2_m1, + coeff_dzz_0_m2_m1, + coeff_dzz_p1_m2_m1, + coeff_dzz_p2_m2_m1, + coeff_dzz_m2_m1_m1, + coeff_dzz_m1_m1_m1, + coeff_dzz_0_m1_m1, + coeff_dzz_p1_m1_m1, + coeff_dzz_p2_m1_m1, + coeff_dzz_m2_0_m1, + coeff_dzz_m1_0_m1, + coeff_dzz_0_0_m1, + coeff_dzz_p1_0_m1, + coeff_dzz_p2_0_m1, + coeff_dzz_m2_p1_m1, + coeff_dzz_m1_p1_m1, + coeff_dzz_0_p1_m1, + coeff_dzz_p1_p1_m1, + coeff_dzz_p2_p1_m1, + coeff_dzz_m2_p2_m1, + coeff_dzz_m1_p2_m1, + coeff_dzz_0_p2_m1, + coeff_dzz_p1_p2_m1, + coeff_dzz_p2_p2_m1, + coeff_dzz_m2_m2_0, + coeff_dzz_m1_m2_0, + coeff_dzz_0_m2_0, + coeff_dzz_p1_m2_0, + coeff_dzz_p2_m2_0, + coeff_dzz_m2_m1_0, + coeff_dzz_m1_m1_0, + coeff_dzz_0_m1_0, + coeff_dzz_p1_m1_0, + coeff_dzz_p2_m1_0, + coeff_dzz_m2_0_0, + coeff_dzz_m1_0_0, + coeff_dzz_0_0_0, + coeff_dzz_p1_0_0, + coeff_dzz_p2_0_0, + coeff_dzz_m2_p1_0, + coeff_dzz_m1_p1_0, + coeff_dzz_0_p1_0, + coeff_dzz_p1_p1_0, + coeff_dzz_p2_p1_0, + coeff_dzz_m2_p2_0, + coeff_dzz_m1_p2_0, + coeff_dzz_0_p2_0, + coeff_dzz_p1_p2_0, + coeff_dzz_p2_p2_0, + coeff_dzz_m2_m2_p1, + coeff_dzz_m1_m2_p1, + coeff_dzz_0_m2_p1, + coeff_dzz_p1_m2_p1, + coeff_dzz_p2_m2_p1, + coeff_dzz_m2_m1_p1, + coeff_dzz_m1_m1_p1, + coeff_dzz_0_m1_p1, + coeff_dzz_p1_m1_p1, + coeff_dzz_p2_m1_p1, + coeff_dzz_m2_0_p1, + coeff_dzz_m1_0_p1, + coeff_dzz_0_0_p1, + coeff_dzz_p1_0_p1, + coeff_dzz_p2_0_p1, + coeff_dzz_m2_p1_p1, + coeff_dzz_m1_p1_p1, + coeff_dzz_0_p1_p1, + coeff_dzz_p1_p1_p1, + coeff_dzz_p2_p1_p1, + coeff_dzz_m2_p2_p1, + coeff_dzz_m1_p2_p1, + coeff_dzz_0_p2_p1, + coeff_dzz_p1_p2_p1, + coeff_dzz_p2_p2_p1, + coeff_dzz_m2_m2_p2, + coeff_dzz_m1_m2_p2, + coeff_dzz_0_m2_p2, + coeff_dzz_p1_m2_p2, + coeff_dzz_p2_m2_p2, + coeff_dzz_m2_m1_p2, + coeff_dzz_m1_m1_p2, + coeff_dzz_0_m1_p2, + coeff_dzz_p1_m1_p2, + coeff_dzz_p2_m1_p2, + coeff_dzz_m2_0_p2, + coeff_dzz_m1_0_p2, + coeff_dzz_0_0_p2, + coeff_dzz_p1_0_p2, + coeff_dzz_p2_0_p2, + coeff_dzz_m2_p1_p2, + coeff_dzz_m1_p1_p2, + coeff_dzz_0_p1_p2, + coeff_dzz_p1_p1_p2, + coeff_dzz_p2_p1_p2, + coeff_dzz_m2_p2_p2, + coeff_dzz_m1_p2_p2, + coeff_dzz_0_p2_p2, + coeff_dzz_p1_p2_p2, + coeff_dzz_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/data-var.assign.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/data-var.assign.c new file mode 100644 index 0000000..963fa1b --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/data-var.assign.c @@ -0,0 +1,125 @@ +data_m2_m2_m2 = DATA(-2,-2,-2); +data_m1_m2_m2 = DATA(-1,-2,-2); +data_0_m2_m2 = DATA(0,-2,-2); +data_p1_m2_m2 = DATA(1,-2,-2); +data_p2_m2_m2 = DATA(2,-2,-2); +data_m2_m1_m2 = DATA(-2,-1,-2); +data_m1_m1_m2 = DATA(-1,-1,-2); +data_0_m1_m2 = DATA(0,-1,-2); +data_p1_m1_m2 = DATA(1,-1,-2); +data_p2_m1_m2 = DATA(2,-1,-2); +data_m2_0_m2 = DATA(-2,0,-2); +data_m1_0_m2 = DATA(-1,0,-2); +data_0_0_m2 = DATA(0,0,-2); +data_p1_0_m2 = DATA(1,0,-2); +data_p2_0_m2 = DATA(2,0,-2); +data_m2_p1_m2 = DATA(-2,1,-2); +data_m1_p1_m2 = DATA(-1,1,-2); +data_0_p1_m2 = DATA(0,1,-2); +data_p1_p1_m2 = DATA(1,1,-2); +data_p2_p1_m2 = DATA(2,1,-2); +data_m2_p2_m2 = DATA(-2,2,-2); +data_m1_p2_m2 = DATA(-1,2,-2); +data_0_p2_m2 = DATA(0,2,-2); +data_p1_p2_m2 = DATA(1,2,-2); +data_p2_p2_m2 = DATA(2,2,-2); +data_m2_m2_m1 = DATA(-2,-2,-1); +data_m1_m2_m1 = DATA(-1,-2,-1); +data_0_m2_m1 = DATA(0,-2,-1); +data_p1_m2_m1 = DATA(1,-2,-1); +data_p2_m2_m1 = DATA(2,-2,-1); +data_m2_m1_m1 = DATA(-2,-1,-1); +data_m1_m1_m1 = DATA(-1,-1,-1); +data_0_m1_m1 = DATA(0,-1,-1); +data_p1_m1_m1 = DATA(1,-1,-1); +data_p2_m1_m1 = DATA(2,-1,-1); +data_m2_0_m1 = DATA(-2,0,-1); +data_m1_0_m1 = DATA(-1,0,-1); +data_0_0_m1 = DATA(0,0,-1); +data_p1_0_m1 = DATA(1,0,-1); +data_p2_0_m1 = DATA(2,0,-1); +data_m2_p1_m1 = DATA(-2,1,-1); +data_m1_p1_m1 = DATA(-1,1,-1); +data_0_p1_m1 = DATA(0,1,-1); +data_p1_p1_m1 = DATA(1,1,-1); +data_p2_p1_m1 = DATA(2,1,-1); +data_m2_p2_m1 = DATA(-2,2,-1); +data_m1_p2_m1 = DATA(-1,2,-1); +data_0_p2_m1 = DATA(0,2,-1); +data_p1_p2_m1 = DATA(1,2,-1); +data_p2_p2_m1 = DATA(2,2,-1); +data_m2_m2_0 = DATA(-2,-2,0); +data_m1_m2_0 = DATA(-1,-2,0); +data_0_m2_0 = DATA(0,-2,0); +data_p1_m2_0 = DATA(1,-2,0); +data_p2_m2_0 = DATA(2,-2,0); +data_m2_m1_0 = DATA(-2,-1,0); +data_m1_m1_0 = DATA(-1,-1,0); +data_0_m1_0 = DATA(0,-1,0); +data_p1_m1_0 = DATA(1,-1,0); +data_p2_m1_0 = DATA(2,-1,0); +data_m2_0_0 = DATA(-2,0,0); +data_m1_0_0 = DATA(-1,0,0); +data_0_0_0 = DATA(0,0,0); +data_p1_0_0 = DATA(1,0,0); +data_p2_0_0 = DATA(2,0,0); +data_m2_p1_0 = DATA(-2,1,0); +data_m1_p1_0 = DATA(-1,1,0); +data_0_p1_0 = DATA(0,1,0); +data_p1_p1_0 = DATA(1,1,0); +data_p2_p1_0 = DATA(2,1,0); +data_m2_p2_0 = DATA(-2,2,0); +data_m1_p2_0 = DATA(-1,2,0); +data_0_p2_0 = DATA(0,2,0); +data_p1_p2_0 = DATA(1,2,0); +data_p2_p2_0 = DATA(2,2,0); +data_m2_m2_p1 = DATA(-2,-2,1); +data_m1_m2_p1 = DATA(-1,-2,1); +data_0_m2_p1 = DATA(0,-2,1); +data_p1_m2_p1 = DATA(1,-2,1); +data_p2_m2_p1 = DATA(2,-2,1); +data_m2_m1_p1 = DATA(-2,-1,1); +data_m1_m1_p1 = DATA(-1,-1,1); +data_0_m1_p1 = DATA(0,-1,1); +data_p1_m1_p1 = DATA(1,-1,1); +data_p2_m1_p1 = DATA(2,-1,1); +data_m2_0_p1 = DATA(-2,0,1); +data_m1_0_p1 = DATA(-1,0,1); +data_0_0_p1 = DATA(0,0,1); +data_p1_0_p1 = DATA(1,0,1); +data_p2_0_p1 = DATA(2,0,1); +data_m2_p1_p1 = DATA(-2,1,1); +data_m1_p1_p1 = DATA(-1,1,1); +data_0_p1_p1 = DATA(0,1,1); +data_p1_p1_p1 = DATA(1,1,1); +data_p2_p1_p1 = DATA(2,1,1); +data_m2_p2_p1 = DATA(-2,2,1); +data_m1_p2_p1 = DATA(-1,2,1); +data_0_p2_p1 = DATA(0,2,1); +data_p1_p2_p1 = DATA(1,2,1); +data_p2_p2_p1 = DATA(2,2,1); +data_m2_m2_p2 = DATA(-2,-2,2); +data_m1_m2_p2 = DATA(-1,-2,2); +data_0_m2_p2 = DATA(0,-2,2); +data_p1_m2_p2 = DATA(1,-2,2); +data_p2_m2_p2 = DATA(2,-2,2); +data_m2_m1_p2 = DATA(-2,-1,2); +data_m1_m1_p2 = DATA(-1,-1,2); +data_0_m1_p2 = DATA(0,-1,2); +data_p1_m1_p2 = DATA(1,-1,2); +data_p2_m1_p2 = DATA(2,-1,2); +data_m2_0_p2 = DATA(-2,0,2); +data_m1_0_p2 = DATA(-1,0,2); +data_0_0_p2 = DATA(0,0,2); +data_p1_0_p2 = DATA(1,0,2); +data_p2_0_p2 = DATA(2,0,2); +data_m2_p1_p2 = DATA(-2,1,2); +data_m1_p1_p2 = DATA(-1,1,2); +data_0_p1_p2 = DATA(0,1,2); +data_p1_p1_p2 = DATA(1,1,2); +data_p2_p1_p2 = DATA(2,1,2); +data_m2_p2_p2 = DATA(-2,2,2); +data_m1_p2_p2 = DATA(-1,2,2); +data_0_p2_p2 = DATA(0,2,2); +data_p1_p2_p2 = DATA(1,2,2); +data_p2_p2_p2 = DATA(2,2,2); diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/data-var.dcl.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/data-var.dcl.c new file mode 100644 index 0000000..3f45b12 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/data-var.dcl.c @@ -0,0 +1,125 @@ +fp data_m2_m2_m2, + data_m1_m2_m2, + data_0_m2_m2, + data_p1_m2_m2, + data_p2_m2_m2, + data_m2_m1_m2, + data_m1_m1_m2, + data_0_m1_m2, + data_p1_m1_m2, + data_p2_m1_m2, + data_m2_0_m2, + data_m1_0_m2, + data_0_0_m2, + data_p1_0_m2, + data_p2_0_m2, + data_m2_p1_m2, + data_m1_p1_m2, + data_0_p1_m2, + data_p1_p1_m2, + data_p2_p1_m2, + data_m2_p2_m2, + data_m1_p2_m2, + data_0_p2_m2, + data_p1_p2_m2, + data_p2_p2_m2, + data_m2_m2_m1, + data_m1_m2_m1, + data_0_m2_m1, + data_p1_m2_m1, + data_p2_m2_m1, + data_m2_m1_m1, + data_m1_m1_m1, + data_0_m1_m1, + data_p1_m1_m1, + data_p2_m1_m1, + data_m2_0_m1, + data_m1_0_m1, + data_0_0_m1, + data_p1_0_m1, + data_p2_0_m1, + data_m2_p1_m1, + data_m1_p1_m1, + data_0_p1_m1, + data_p1_p1_m1, + data_p2_p1_m1, + data_m2_p2_m1, + data_m1_p2_m1, + data_0_p2_m1, + data_p1_p2_m1, + data_p2_p2_m1, + data_m2_m2_0, + data_m1_m2_0, + data_0_m2_0, + data_p1_m2_0, + data_p2_m2_0, + data_m2_m1_0, + data_m1_m1_0, + data_0_m1_0, + data_p1_m1_0, + data_p2_m1_0, + data_m2_0_0, + data_m1_0_0, + data_0_0_0, + data_p1_0_0, + data_p2_0_0, + data_m2_p1_0, + data_m1_p1_0, + data_0_p1_0, + data_p1_p1_0, + data_p2_p1_0, + data_m2_p2_0, + data_m1_p2_0, + data_0_p2_0, + data_p1_p2_0, + data_p2_p2_0, + data_m2_m2_p1, + data_m1_m2_p1, + data_0_m2_p1, + data_p1_m2_p1, + data_p2_m2_p1, + data_m2_m1_p1, + data_m1_m1_p1, + data_0_m1_p1, + data_p1_m1_p1, + data_p2_m1_p1, + data_m2_0_p1, + data_m1_0_p1, + data_0_0_p1, + data_p1_0_p1, + data_p2_0_p1, + data_m2_p1_p1, + data_m1_p1_p1, + data_0_p1_p1, + data_p1_p1_p1, + data_p2_p1_p1, + data_m2_p2_p1, + data_m1_p2_p1, + data_0_p2_p1, + data_p1_p2_p1, + data_p2_p2_p1, + data_m2_m2_p2, + data_m1_m2_p2, + data_0_m2_p2, + data_p1_m2_p2, + data_p2_m2_p2, + data_m2_m1_p2, + data_m1_m1_p2, + data_0_m1_p2, + data_p1_m1_p2, + data_p2_m1_p2, + data_m2_0_p2, + data_m1_0_p2, + data_0_0_p2, + data_p1_0_p2, + data_p2_0_p2, + data_m2_p1_p2, + data_m1_p1_p2, + data_0_p1_p2, + data_p1_p1_p2, + data_p2_p1_p2, + data_m2_p2_p2, + data_m1_p2_p2, + data_0_p2_p2, + data_p1_p2_p2, + data_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-I.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-I.compute.c new file mode 100644 index 0000000..06a4bfa --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-I.compute.c @@ -0,0 +1,126 @@ +result = + coeff_I_m2_m2_m2*data_m2_m2_m2 + + coeff_I_m1_m2_m2*data_m1_m2_m2 + + coeff_I_0_m2_m2*data_0_m2_m2 + + coeff_I_p1_m2_m2*data_p1_m2_m2 + + coeff_I_p2_m2_m2*data_p2_m2_m2 + + coeff_I_m2_m1_m2*data_m2_m1_m2 + + coeff_I_m1_m1_m2*data_m1_m1_m2 + + coeff_I_0_m1_m2*data_0_m1_m2 + + coeff_I_p1_m1_m2*data_p1_m1_m2 + + coeff_I_p2_m1_m2*data_p2_m1_m2 + + coeff_I_m2_0_m2*data_m2_0_m2 + + coeff_I_m1_0_m2*data_m1_0_m2 + + coeff_I_0_0_m2*data_0_0_m2 + + coeff_I_p1_0_m2*data_p1_0_m2 + + coeff_I_p2_0_m2*data_p2_0_m2 + + coeff_I_m2_p1_m2*data_m2_p1_m2 + + coeff_I_m1_p1_m2*data_m1_p1_m2 + + coeff_I_0_p1_m2*data_0_p1_m2 + + coeff_I_p1_p1_m2*data_p1_p1_m2 + + coeff_I_p2_p1_m2*data_p2_p1_m2 + + coeff_I_m2_p2_m2*data_m2_p2_m2 + + coeff_I_m1_p2_m2*data_m1_p2_m2 + + coeff_I_0_p2_m2*data_0_p2_m2 + + coeff_I_p1_p2_m2*data_p1_p2_m2 + + coeff_I_p2_p2_m2*data_p2_p2_m2 + + coeff_I_m2_m2_m1*data_m2_m2_m1 + + coeff_I_m1_m2_m1*data_m1_m2_m1 + + coeff_I_0_m2_m1*data_0_m2_m1 + + coeff_I_p1_m2_m1*data_p1_m2_m1 + + coeff_I_p2_m2_m1*data_p2_m2_m1 + + coeff_I_m2_m1_m1*data_m2_m1_m1 + + coeff_I_m1_m1_m1*data_m1_m1_m1 + + coeff_I_0_m1_m1*data_0_m1_m1 + + coeff_I_p1_m1_m1*data_p1_m1_m1 + + coeff_I_p2_m1_m1*data_p2_m1_m1 + + coeff_I_m2_0_m1*data_m2_0_m1 + + coeff_I_m1_0_m1*data_m1_0_m1 + + coeff_I_0_0_m1*data_0_0_m1 + + coeff_I_p1_0_m1*data_p1_0_m1 + + coeff_I_p2_0_m1*data_p2_0_m1 + + coeff_I_m2_p1_m1*data_m2_p1_m1 + + coeff_I_m1_p1_m1*data_m1_p1_m1 + + coeff_I_0_p1_m1*data_0_p1_m1 + + coeff_I_p1_p1_m1*data_p1_p1_m1 + + coeff_I_p2_p1_m1*data_p2_p1_m1 + + coeff_I_m2_p2_m1*data_m2_p2_m1 + + coeff_I_m1_p2_m1*data_m1_p2_m1 + + coeff_I_0_p2_m1*data_0_p2_m1 + + coeff_I_p1_p2_m1*data_p1_p2_m1 + + coeff_I_p2_p2_m1*data_p2_p2_m1 + + coeff_I_m2_m2_0*data_m2_m2_0 + + coeff_I_m1_m2_0*data_m1_m2_0 + + coeff_I_0_m2_0*data_0_m2_0 + + coeff_I_p1_m2_0*data_p1_m2_0 + + coeff_I_p2_m2_0*data_p2_m2_0 + + coeff_I_m2_m1_0*data_m2_m1_0 + + coeff_I_m1_m1_0*data_m1_m1_0 + + coeff_I_0_m1_0*data_0_m1_0 + + coeff_I_p1_m1_0*data_p1_m1_0 + + coeff_I_p2_m1_0*data_p2_m1_0 + + coeff_I_m2_0_0*data_m2_0_0 + + coeff_I_m1_0_0*data_m1_0_0 + + coeff_I_0_0_0*data_0_0_0 + + coeff_I_p1_0_0*data_p1_0_0 + + coeff_I_p2_0_0*data_p2_0_0 + + coeff_I_m2_p1_0*data_m2_p1_0 + + coeff_I_m1_p1_0*data_m1_p1_0 + + coeff_I_0_p1_0*data_0_p1_0 + + coeff_I_p1_p1_0*data_p1_p1_0 + + coeff_I_p2_p1_0*data_p2_p1_0 + + coeff_I_m2_p2_0*data_m2_p2_0 + + coeff_I_m1_p2_0*data_m1_p2_0 + + coeff_I_0_p2_0*data_0_p2_0 + + coeff_I_p1_p2_0*data_p1_p2_0 + + coeff_I_p2_p2_0*data_p2_p2_0 + + coeff_I_m2_m2_p1*data_m2_m2_p1 + + coeff_I_m1_m2_p1*data_m1_m2_p1 + + coeff_I_0_m2_p1*data_0_m2_p1 + + coeff_I_p1_m2_p1*data_p1_m2_p1 + + coeff_I_p2_m2_p1*data_p2_m2_p1 + + coeff_I_m2_m1_p1*data_m2_m1_p1 + + coeff_I_m1_m1_p1*data_m1_m1_p1 + + coeff_I_0_m1_p1*data_0_m1_p1 + + coeff_I_p1_m1_p1*data_p1_m1_p1 + + coeff_I_p2_m1_p1*data_p2_m1_p1 + + coeff_I_m2_0_p1*data_m2_0_p1 + + coeff_I_m1_0_p1*data_m1_0_p1 + + coeff_I_0_0_p1*data_0_0_p1 + + coeff_I_p1_0_p1*data_p1_0_p1 + + coeff_I_p2_0_p1*data_p2_0_p1 + + coeff_I_m2_p1_p1*data_m2_p1_p1 + + coeff_I_m1_p1_p1*data_m1_p1_p1 + + coeff_I_0_p1_p1*data_0_p1_p1 + + coeff_I_p1_p1_p1*data_p1_p1_p1 + + coeff_I_p2_p1_p1*data_p2_p1_p1 + + coeff_I_m2_p2_p1*data_m2_p2_p1 + + coeff_I_m1_p2_p1*data_m1_p2_p1 + + coeff_I_0_p2_p1*data_0_p2_p1 + + coeff_I_p1_p2_p1*data_p1_p2_p1 + + coeff_I_p2_p2_p1*data_p2_p2_p1 + + coeff_I_m2_m2_p2*data_m2_m2_p2 + + coeff_I_m1_m2_p2*data_m1_m2_p2 + + coeff_I_0_m2_p2*data_0_m2_p2 + + coeff_I_p1_m2_p2*data_p1_m2_p2 + + coeff_I_p2_m2_p2*data_p2_m2_p2 + + coeff_I_m2_m1_p2*data_m2_m1_p2 + + coeff_I_m1_m1_p2*data_m1_m1_p2 + + coeff_I_0_m1_p2*data_0_m1_p2 + + coeff_I_p1_m1_p2*data_p1_m1_p2 + + coeff_I_p2_m1_p2*data_p2_m1_p2 + + coeff_I_m2_0_p2*data_m2_0_p2 + + coeff_I_m1_0_p2*data_m1_0_p2 + + coeff_I_0_0_p2*data_0_0_p2 + + coeff_I_p1_0_p2*data_p1_0_p2 + + coeff_I_p2_0_p2*data_p2_0_p2 + + coeff_I_m2_p1_p2*data_m2_p1_p2 + + coeff_I_m1_p1_p2*data_m1_p1_p2 + + coeff_I_0_p1_p2*data_0_p1_p2 + + coeff_I_p1_p1_p2*data_p1_p1_p2 + + coeff_I_p2_p1_p2*data_p2_p1_p2 + + coeff_I_m2_p2_p2*data_m2_p2_p2 + + coeff_I_m1_p2_p2*data_m1_p2_p2 + + coeff_I_0_p2_p2*data_0_p2_p2 + + coeff_I_p1_p2_p2*data_p1_p2_p2 + + coeff_I_p2_p2_p2*data_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-dx.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-dx.compute.c new file mode 100644 index 0000000..013ae98 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-dx.compute.c @@ -0,0 +1,126 @@ +result = + coeff_dx_m2_m2_m2*data_m2_m2_m2 + + coeff_dx_m1_m2_m2*data_m1_m2_m2 + + coeff_dx_0_m2_m2*data_0_m2_m2 + + coeff_dx_p1_m2_m2*data_p1_m2_m2 + + coeff_dx_p2_m2_m2*data_p2_m2_m2 + + coeff_dx_m2_m1_m2*data_m2_m1_m2 + + coeff_dx_m1_m1_m2*data_m1_m1_m2 + + coeff_dx_0_m1_m2*data_0_m1_m2 + + coeff_dx_p1_m1_m2*data_p1_m1_m2 + + coeff_dx_p2_m1_m2*data_p2_m1_m2 + + coeff_dx_m2_0_m2*data_m2_0_m2 + + coeff_dx_m1_0_m2*data_m1_0_m2 + + coeff_dx_0_0_m2*data_0_0_m2 + + coeff_dx_p1_0_m2*data_p1_0_m2 + + coeff_dx_p2_0_m2*data_p2_0_m2 + + coeff_dx_m2_p1_m2*data_m2_p1_m2 + + coeff_dx_m1_p1_m2*data_m1_p1_m2 + + coeff_dx_0_p1_m2*data_0_p1_m2 + + coeff_dx_p1_p1_m2*data_p1_p1_m2 + + coeff_dx_p2_p1_m2*data_p2_p1_m2 + + coeff_dx_m2_p2_m2*data_m2_p2_m2 + + coeff_dx_m1_p2_m2*data_m1_p2_m2 + + coeff_dx_0_p2_m2*data_0_p2_m2 + + coeff_dx_p1_p2_m2*data_p1_p2_m2 + + coeff_dx_p2_p2_m2*data_p2_p2_m2 + + coeff_dx_m2_m2_m1*data_m2_m2_m1 + + coeff_dx_m1_m2_m1*data_m1_m2_m1 + + coeff_dx_0_m2_m1*data_0_m2_m1 + + coeff_dx_p1_m2_m1*data_p1_m2_m1 + + coeff_dx_p2_m2_m1*data_p2_m2_m1 + + coeff_dx_m2_m1_m1*data_m2_m1_m1 + + coeff_dx_m1_m1_m1*data_m1_m1_m1 + + coeff_dx_0_m1_m1*data_0_m1_m1 + + coeff_dx_p1_m1_m1*data_p1_m1_m1 + + coeff_dx_p2_m1_m1*data_p2_m1_m1 + + coeff_dx_m2_0_m1*data_m2_0_m1 + + coeff_dx_m1_0_m1*data_m1_0_m1 + + coeff_dx_0_0_m1*data_0_0_m1 + + coeff_dx_p1_0_m1*data_p1_0_m1 + + coeff_dx_p2_0_m1*data_p2_0_m1 + + coeff_dx_m2_p1_m1*data_m2_p1_m1 + + coeff_dx_m1_p1_m1*data_m1_p1_m1 + + coeff_dx_0_p1_m1*data_0_p1_m1 + + coeff_dx_p1_p1_m1*data_p1_p1_m1 + + coeff_dx_p2_p1_m1*data_p2_p1_m1 + + coeff_dx_m2_p2_m1*data_m2_p2_m1 + + coeff_dx_m1_p2_m1*data_m1_p2_m1 + + coeff_dx_0_p2_m1*data_0_p2_m1 + + coeff_dx_p1_p2_m1*data_p1_p2_m1 + + coeff_dx_p2_p2_m1*data_p2_p2_m1 + + coeff_dx_m2_m2_0*data_m2_m2_0 + + coeff_dx_m1_m2_0*data_m1_m2_0 + + coeff_dx_0_m2_0*data_0_m2_0 + + coeff_dx_p1_m2_0*data_p1_m2_0 + + coeff_dx_p2_m2_0*data_p2_m2_0 + + coeff_dx_m2_m1_0*data_m2_m1_0 + + coeff_dx_m1_m1_0*data_m1_m1_0 + + coeff_dx_0_m1_0*data_0_m1_0 + + coeff_dx_p1_m1_0*data_p1_m1_0 + + coeff_dx_p2_m1_0*data_p2_m1_0 + + coeff_dx_m2_0_0*data_m2_0_0 + + coeff_dx_m1_0_0*data_m1_0_0 + + coeff_dx_0_0_0*data_0_0_0 + + coeff_dx_p1_0_0*data_p1_0_0 + + coeff_dx_p2_0_0*data_p2_0_0 + + coeff_dx_m2_p1_0*data_m2_p1_0 + + coeff_dx_m1_p1_0*data_m1_p1_0 + + coeff_dx_0_p1_0*data_0_p1_0 + + coeff_dx_p1_p1_0*data_p1_p1_0 + + coeff_dx_p2_p1_0*data_p2_p1_0 + + coeff_dx_m2_p2_0*data_m2_p2_0 + + coeff_dx_m1_p2_0*data_m1_p2_0 + + coeff_dx_0_p2_0*data_0_p2_0 + + coeff_dx_p1_p2_0*data_p1_p2_0 + + coeff_dx_p2_p2_0*data_p2_p2_0 + + coeff_dx_m2_m2_p1*data_m2_m2_p1 + + coeff_dx_m1_m2_p1*data_m1_m2_p1 + + coeff_dx_0_m2_p1*data_0_m2_p1 + + coeff_dx_p1_m2_p1*data_p1_m2_p1 + + coeff_dx_p2_m2_p1*data_p2_m2_p1 + + coeff_dx_m2_m1_p1*data_m2_m1_p1 + + coeff_dx_m1_m1_p1*data_m1_m1_p1 + + coeff_dx_0_m1_p1*data_0_m1_p1 + + coeff_dx_p1_m1_p1*data_p1_m1_p1 + + coeff_dx_p2_m1_p1*data_p2_m1_p1 + + coeff_dx_m2_0_p1*data_m2_0_p1 + + coeff_dx_m1_0_p1*data_m1_0_p1 + + coeff_dx_0_0_p1*data_0_0_p1 + + coeff_dx_p1_0_p1*data_p1_0_p1 + + coeff_dx_p2_0_p1*data_p2_0_p1 + + coeff_dx_m2_p1_p1*data_m2_p1_p1 + + coeff_dx_m1_p1_p1*data_m1_p1_p1 + + coeff_dx_0_p1_p1*data_0_p1_p1 + + coeff_dx_p1_p1_p1*data_p1_p1_p1 + + coeff_dx_p2_p1_p1*data_p2_p1_p1 + + coeff_dx_m2_p2_p1*data_m2_p2_p1 + + coeff_dx_m1_p2_p1*data_m1_p2_p1 + + coeff_dx_0_p2_p1*data_0_p2_p1 + + coeff_dx_p1_p2_p1*data_p1_p2_p1 + + coeff_dx_p2_p2_p1*data_p2_p2_p1 + + coeff_dx_m2_m2_p2*data_m2_m2_p2 + + coeff_dx_m1_m2_p2*data_m1_m2_p2 + + coeff_dx_0_m2_p2*data_0_m2_p2 + + coeff_dx_p1_m2_p2*data_p1_m2_p2 + + coeff_dx_p2_m2_p2*data_p2_m2_p2 + + coeff_dx_m2_m1_p2*data_m2_m1_p2 + + coeff_dx_m1_m1_p2*data_m1_m1_p2 + + coeff_dx_0_m1_p2*data_0_m1_p2 + + coeff_dx_p1_m1_p2*data_p1_m1_p2 + + coeff_dx_p2_m1_p2*data_p2_m1_p2 + + coeff_dx_m2_0_p2*data_m2_0_p2 + + coeff_dx_m1_0_p2*data_m1_0_p2 + + coeff_dx_0_0_p2*data_0_0_p2 + + coeff_dx_p1_0_p2*data_p1_0_p2 + + coeff_dx_p2_0_p2*data_p2_0_p2 + + coeff_dx_m2_p1_p2*data_m2_p1_p2 + + coeff_dx_m1_p1_p2*data_m1_p1_p2 + + coeff_dx_0_p1_p2*data_0_p1_p2 + + coeff_dx_p1_p1_p2*data_p1_p1_p2 + + coeff_dx_p2_p1_p2*data_p2_p1_p2 + + coeff_dx_m2_p2_p2*data_m2_p2_p2 + + coeff_dx_m1_p2_p2*data_m1_p2_p2 + + coeff_dx_0_p2_p2*data_0_p2_p2 + + coeff_dx_p1_p2_p2*data_p1_p2_p2 + + coeff_dx_p2_p2_p2*data_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-dxx.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-dxx.compute.c new file mode 100644 index 0000000..bd0b7be --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-dxx.compute.c @@ -0,0 +1,126 @@ +result = + coeff_dxx_m2_m2_m2*data_m2_m2_m2 + + coeff_dxx_m1_m2_m2*data_m1_m2_m2 + + coeff_dxx_0_m2_m2*data_0_m2_m2 + + coeff_dxx_p1_m2_m2*data_p1_m2_m2 + + coeff_dxx_p2_m2_m2*data_p2_m2_m2 + + coeff_dxx_m2_m1_m2*data_m2_m1_m2 + + coeff_dxx_m1_m1_m2*data_m1_m1_m2 + + coeff_dxx_0_m1_m2*data_0_m1_m2 + + coeff_dxx_p1_m1_m2*data_p1_m1_m2 + + coeff_dxx_p2_m1_m2*data_p2_m1_m2 + + coeff_dxx_m2_0_m2*data_m2_0_m2 + + coeff_dxx_m1_0_m2*data_m1_0_m2 + + coeff_dxx_0_0_m2*data_0_0_m2 + + coeff_dxx_p1_0_m2*data_p1_0_m2 + + coeff_dxx_p2_0_m2*data_p2_0_m2 + + coeff_dxx_m2_p1_m2*data_m2_p1_m2 + + coeff_dxx_m1_p1_m2*data_m1_p1_m2 + + coeff_dxx_0_p1_m2*data_0_p1_m2 + + coeff_dxx_p1_p1_m2*data_p1_p1_m2 + + coeff_dxx_p2_p1_m2*data_p2_p1_m2 + + coeff_dxx_m2_p2_m2*data_m2_p2_m2 + + coeff_dxx_m1_p2_m2*data_m1_p2_m2 + + coeff_dxx_0_p2_m2*data_0_p2_m2 + + coeff_dxx_p1_p2_m2*data_p1_p2_m2 + + coeff_dxx_p2_p2_m2*data_p2_p2_m2 + + coeff_dxx_m2_m2_m1*data_m2_m2_m1 + + coeff_dxx_m1_m2_m1*data_m1_m2_m1 + + coeff_dxx_0_m2_m1*data_0_m2_m1 + + coeff_dxx_p1_m2_m1*data_p1_m2_m1 + + coeff_dxx_p2_m2_m1*data_p2_m2_m1 + + coeff_dxx_m2_m1_m1*data_m2_m1_m1 + + coeff_dxx_m1_m1_m1*data_m1_m1_m1 + + coeff_dxx_0_m1_m1*data_0_m1_m1 + + coeff_dxx_p1_m1_m1*data_p1_m1_m1 + + coeff_dxx_p2_m1_m1*data_p2_m1_m1 + + coeff_dxx_m2_0_m1*data_m2_0_m1 + + coeff_dxx_m1_0_m1*data_m1_0_m1 + + coeff_dxx_0_0_m1*data_0_0_m1 + + coeff_dxx_p1_0_m1*data_p1_0_m1 + + coeff_dxx_p2_0_m1*data_p2_0_m1 + + coeff_dxx_m2_p1_m1*data_m2_p1_m1 + + coeff_dxx_m1_p1_m1*data_m1_p1_m1 + + coeff_dxx_0_p1_m1*data_0_p1_m1 + + coeff_dxx_p1_p1_m1*data_p1_p1_m1 + + coeff_dxx_p2_p1_m1*data_p2_p1_m1 + + coeff_dxx_m2_p2_m1*data_m2_p2_m1 + + coeff_dxx_m1_p2_m1*data_m1_p2_m1 + + coeff_dxx_0_p2_m1*data_0_p2_m1 + + coeff_dxx_p1_p2_m1*data_p1_p2_m1 + + coeff_dxx_p2_p2_m1*data_p2_p2_m1 + + coeff_dxx_m2_m2_0*data_m2_m2_0 + + coeff_dxx_m1_m2_0*data_m1_m2_0 + + coeff_dxx_0_m2_0*data_0_m2_0 + + coeff_dxx_p1_m2_0*data_p1_m2_0 + + coeff_dxx_p2_m2_0*data_p2_m2_0 + + coeff_dxx_m2_m1_0*data_m2_m1_0 + + coeff_dxx_m1_m1_0*data_m1_m1_0 + + coeff_dxx_0_m1_0*data_0_m1_0 + + coeff_dxx_p1_m1_0*data_p1_m1_0 + + coeff_dxx_p2_m1_0*data_p2_m1_0 + + coeff_dxx_m2_0_0*data_m2_0_0 + + coeff_dxx_m1_0_0*data_m1_0_0 + + coeff_dxx_0_0_0*data_0_0_0 + + coeff_dxx_p1_0_0*data_p1_0_0 + + coeff_dxx_p2_0_0*data_p2_0_0 + + coeff_dxx_m2_p1_0*data_m2_p1_0 + + coeff_dxx_m1_p1_0*data_m1_p1_0 + + coeff_dxx_0_p1_0*data_0_p1_0 + + coeff_dxx_p1_p1_0*data_p1_p1_0 + + coeff_dxx_p2_p1_0*data_p2_p1_0 + + coeff_dxx_m2_p2_0*data_m2_p2_0 + + coeff_dxx_m1_p2_0*data_m1_p2_0 + + coeff_dxx_0_p2_0*data_0_p2_0 + + coeff_dxx_p1_p2_0*data_p1_p2_0 + + coeff_dxx_p2_p2_0*data_p2_p2_0 + + coeff_dxx_m2_m2_p1*data_m2_m2_p1 + + coeff_dxx_m1_m2_p1*data_m1_m2_p1 + + coeff_dxx_0_m2_p1*data_0_m2_p1 + + coeff_dxx_p1_m2_p1*data_p1_m2_p1 + + coeff_dxx_p2_m2_p1*data_p2_m2_p1 + + coeff_dxx_m2_m1_p1*data_m2_m1_p1 + + coeff_dxx_m1_m1_p1*data_m1_m1_p1 + + coeff_dxx_0_m1_p1*data_0_m1_p1 + + coeff_dxx_p1_m1_p1*data_p1_m1_p1 + + coeff_dxx_p2_m1_p1*data_p2_m1_p1 + + coeff_dxx_m2_0_p1*data_m2_0_p1 + + coeff_dxx_m1_0_p1*data_m1_0_p1 + + coeff_dxx_0_0_p1*data_0_0_p1 + + coeff_dxx_p1_0_p1*data_p1_0_p1 + + coeff_dxx_p2_0_p1*data_p2_0_p1 + + coeff_dxx_m2_p1_p1*data_m2_p1_p1 + + coeff_dxx_m1_p1_p1*data_m1_p1_p1 + + coeff_dxx_0_p1_p1*data_0_p1_p1 + + coeff_dxx_p1_p1_p1*data_p1_p1_p1 + + coeff_dxx_p2_p1_p1*data_p2_p1_p1 + + coeff_dxx_m2_p2_p1*data_m2_p2_p1 + + coeff_dxx_m1_p2_p1*data_m1_p2_p1 + + coeff_dxx_0_p2_p1*data_0_p2_p1 + + coeff_dxx_p1_p2_p1*data_p1_p2_p1 + + coeff_dxx_p2_p2_p1*data_p2_p2_p1 + + coeff_dxx_m2_m2_p2*data_m2_m2_p2 + + coeff_dxx_m1_m2_p2*data_m1_m2_p2 + + coeff_dxx_0_m2_p2*data_0_m2_p2 + + coeff_dxx_p1_m2_p2*data_p1_m2_p2 + + coeff_dxx_p2_m2_p2*data_p2_m2_p2 + + coeff_dxx_m2_m1_p2*data_m2_m1_p2 + + coeff_dxx_m1_m1_p2*data_m1_m1_p2 + + coeff_dxx_0_m1_p2*data_0_m1_p2 + + coeff_dxx_p1_m1_p2*data_p1_m1_p2 + + coeff_dxx_p2_m1_p2*data_p2_m1_p2 + + coeff_dxx_m2_0_p2*data_m2_0_p2 + + coeff_dxx_m1_0_p2*data_m1_0_p2 + + coeff_dxx_0_0_p2*data_0_0_p2 + + coeff_dxx_p1_0_p2*data_p1_0_p2 + + coeff_dxx_p2_0_p2*data_p2_0_p2 + + coeff_dxx_m2_p1_p2*data_m2_p1_p2 + + coeff_dxx_m1_p1_p2*data_m1_p1_p2 + + coeff_dxx_0_p1_p2*data_0_p1_p2 + + coeff_dxx_p1_p1_p2*data_p1_p1_p2 + + coeff_dxx_p2_p1_p2*data_p2_p1_p2 + + coeff_dxx_m2_p2_p2*data_m2_p2_p2 + + coeff_dxx_m1_p2_p2*data_m1_p2_p2 + + coeff_dxx_0_p2_p2*data_0_p2_p2 + + coeff_dxx_p1_p2_p2*data_p1_p2_p2 + + coeff_dxx_p2_p2_p2*data_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-dxy.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-dxy.compute.c new file mode 100644 index 0000000..8e202fd --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-dxy.compute.c @@ -0,0 +1,126 @@ +result = + coeff_dxy_m2_m2_m2*data_m2_m2_m2 + + coeff_dxy_m1_m2_m2*data_m1_m2_m2 + + coeff_dxy_0_m2_m2*data_0_m2_m2 + + coeff_dxy_p1_m2_m2*data_p1_m2_m2 + + coeff_dxy_p2_m2_m2*data_p2_m2_m2 + + coeff_dxy_m2_m1_m2*data_m2_m1_m2 + + coeff_dxy_m1_m1_m2*data_m1_m1_m2 + + coeff_dxy_0_m1_m2*data_0_m1_m2 + + coeff_dxy_p1_m1_m2*data_p1_m1_m2 + + coeff_dxy_p2_m1_m2*data_p2_m1_m2 + + coeff_dxy_m2_0_m2*data_m2_0_m2 + + coeff_dxy_m1_0_m2*data_m1_0_m2 + + coeff_dxy_0_0_m2*data_0_0_m2 + + coeff_dxy_p1_0_m2*data_p1_0_m2 + + coeff_dxy_p2_0_m2*data_p2_0_m2 + + coeff_dxy_m2_p1_m2*data_m2_p1_m2 + + coeff_dxy_m1_p1_m2*data_m1_p1_m2 + + coeff_dxy_0_p1_m2*data_0_p1_m2 + + coeff_dxy_p1_p1_m2*data_p1_p1_m2 + + coeff_dxy_p2_p1_m2*data_p2_p1_m2 + + coeff_dxy_m2_p2_m2*data_m2_p2_m2 + + coeff_dxy_m1_p2_m2*data_m1_p2_m2 + + coeff_dxy_0_p2_m2*data_0_p2_m2 + + coeff_dxy_p1_p2_m2*data_p1_p2_m2 + + coeff_dxy_p2_p2_m2*data_p2_p2_m2 + + coeff_dxy_m2_m2_m1*data_m2_m2_m1 + + coeff_dxy_m1_m2_m1*data_m1_m2_m1 + + coeff_dxy_0_m2_m1*data_0_m2_m1 + + coeff_dxy_p1_m2_m1*data_p1_m2_m1 + + coeff_dxy_p2_m2_m1*data_p2_m2_m1 + + coeff_dxy_m2_m1_m1*data_m2_m1_m1 + + coeff_dxy_m1_m1_m1*data_m1_m1_m1 + + coeff_dxy_0_m1_m1*data_0_m1_m1 + + coeff_dxy_p1_m1_m1*data_p1_m1_m1 + + coeff_dxy_p2_m1_m1*data_p2_m1_m1 + + coeff_dxy_m2_0_m1*data_m2_0_m1 + + coeff_dxy_m1_0_m1*data_m1_0_m1 + + coeff_dxy_0_0_m1*data_0_0_m1 + + coeff_dxy_p1_0_m1*data_p1_0_m1 + + coeff_dxy_p2_0_m1*data_p2_0_m1 + + coeff_dxy_m2_p1_m1*data_m2_p1_m1 + + coeff_dxy_m1_p1_m1*data_m1_p1_m1 + + coeff_dxy_0_p1_m1*data_0_p1_m1 + + coeff_dxy_p1_p1_m1*data_p1_p1_m1 + + coeff_dxy_p2_p1_m1*data_p2_p1_m1 + + coeff_dxy_m2_p2_m1*data_m2_p2_m1 + + coeff_dxy_m1_p2_m1*data_m1_p2_m1 + + coeff_dxy_0_p2_m1*data_0_p2_m1 + + coeff_dxy_p1_p2_m1*data_p1_p2_m1 + + coeff_dxy_p2_p2_m1*data_p2_p2_m1 + + coeff_dxy_m2_m2_0*data_m2_m2_0 + + coeff_dxy_m1_m2_0*data_m1_m2_0 + + coeff_dxy_0_m2_0*data_0_m2_0 + + coeff_dxy_p1_m2_0*data_p1_m2_0 + + coeff_dxy_p2_m2_0*data_p2_m2_0 + + coeff_dxy_m2_m1_0*data_m2_m1_0 + + coeff_dxy_m1_m1_0*data_m1_m1_0 + + coeff_dxy_0_m1_0*data_0_m1_0 + + coeff_dxy_p1_m1_0*data_p1_m1_0 + + coeff_dxy_p2_m1_0*data_p2_m1_0 + + coeff_dxy_m2_0_0*data_m2_0_0 + + coeff_dxy_m1_0_0*data_m1_0_0 + + coeff_dxy_0_0_0*data_0_0_0 + + coeff_dxy_p1_0_0*data_p1_0_0 + + coeff_dxy_p2_0_0*data_p2_0_0 + + coeff_dxy_m2_p1_0*data_m2_p1_0 + + coeff_dxy_m1_p1_0*data_m1_p1_0 + + coeff_dxy_0_p1_0*data_0_p1_0 + + coeff_dxy_p1_p1_0*data_p1_p1_0 + + coeff_dxy_p2_p1_0*data_p2_p1_0 + + coeff_dxy_m2_p2_0*data_m2_p2_0 + + coeff_dxy_m1_p2_0*data_m1_p2_0 + + coeff_dxy_0_p2_0*data_0_p2_0 + + coeff_dxy_p1_p2_0*data_p1_p2_0 + + coeff_dxy_p2_p2_0*data_p2_p2_0 + + coeff_dxy_m2_m2_p1*data_m2_m2_p1 + + coeff_dxy_m1_m2_p1*data_m1_m2_p1 + + coeff_dxy_0_m2_p1*data_0_m2_p1 + + coeff_dxy_p1_m2_p1*data_p1_m2_p1 + + coeff_dxy_p2_m2_p1*data_p2_m2_p1 + + coeff_dxy_m2_m1_p1*data_m2_m1_p1 + + coeff_dxy_m1_m1_p1*data_m1_m1_p1 + + coeff_dxy_0_m1_p1*data_0_m1_p1 + + coeff_dxy_p1_m1_p1*data_p1_m1_p1 + + coeff_dxy_p2_m1_p1*data_p2_m1_p1 + + coeff_dxy_m2_0_p1*data_m2_0_p1 + + coeff_dxy_m1_0_p1*data_m1_0_p1 + + coeff_dxy_0_0_p1*data_0_0_p1 + + coeff_dxy_p1_0_p1*data_p1_0_p1 + + coeff_dxy_p2_0_p1*data_p2_0_p1 + + coeff_dxy_m2_p1_p1*data_m2_p1_p1 + + coeff_dxy_m1_p1_p1*data_m1_p1_p1 + + coeff_dxy_0_p1_p1*data_0_p1_p1 + + coeff_dxy_p1_p1_p1*data_p1_p1_p1 + + coeff_dxy_p2_p1_p1*data_p2_p1_p1 + + coeff_dxy_m2_p2_p1*data_m2_p2_p1 + + coeff_dxy_m1_p2_p1*data_m1_p2_p1 + + coeff_dxy_0_p2_p1*data_0_p2_p1 + + coeff_dxy_p1_p2_p1*data_p1_p2_p1 + + coeff_dxy_p2_p2_p1*data_p2_p2_p1 + + coeff_dxy_m2_m2_p2*data_m2_m2_p2 + + coeff_dxy_m1_m2_p2*data_m1_m2_p2 + + coeff_dxy_0_m2_p2*data_0_m2_p2 + + coeff_dxy_p1_m2_p2*data_p1_m2_p2 + + coeff_dxy_p2_m2_p2*data_p2_m2_p2 + + coeff_dxy_m2_m1_p2*data_m2_m1_p2 + + coeff_dxy_m1_m1_p2*data_m1_m1_p2 + + coeff_dxy_0_m1_p2*data_0_m1_p2 + + coeff_dxy_p1_m1_p2*data_p1_m1_p2 + + coeff_dxy_p2_m1_p2*data_p2_m1_p2 + + coeff_dxy_m2_0_p2*data_m2_0_p2 + + coeff_dxy_m1_0_p2*data_m1_0_p2 + + coeff_dxy_0_0_p2*data_0_0_p2 + + coeff_dxy_p1_0_p2*data_p1_0_p2 + + coeff_dxy_p2_0_p2*data_p2_0_p2 + + coeff_dxy_m2_p1_p2*data_m2_p1_p2 + + coeff_dxy_m1_p1_p2*data_m1_p1_p2 + + coeff_dxy_0_p1_p2*data_0_p1_p2 + + coeff_dxy_p1_p1_p2*data_p1_p1_p2 + + coeff_dxy_p2_p1_p2*data_p2_p1_p2 + + coeff_dxy_m2_p2_p2*data_m2_p2_p2 + + coeff_dxy_m1_p2_p2*data_m1_p2_p2 + + coeff_dxy_0_p2_p2*data_0_p2_p2 + + coeff_dxy_p1_p2_p2*data_p1_p2_p2 + + coeff_dxy_p2_p2_p2*data_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-dxz.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-dxz.compute.c new file mode 100644 index 0000000..5789505 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-dxz.compute.c @@ -0,0 +1,126 @@ +result = + coeff_dxz_m2_m2_m2*data_m2_m2_m2 + + coeff_dxz_m1_m2_m2*data_m1_m2_m2 + + coeff_dxz_0_m2_m2*data_0_m2_m2 + + coeff_dxz_p1_m2_m2*data_p1_m2_m2 + + coeff_dxz_p2_m2_m2*data_p2_m2_m2 + + coeff_dxz_m2_m1_m2*data_m2_m1_m2 + + coeff_dxz_m1_m1_m2*data_m1_m1_m2 + + coeff_dxz_0_m1_m2*data_0_m1_m2 + + coeff_dxz_p1_m1_m2*data_p1_m1_m2 + + coeff_dxz_p2_m1_m2*data_p2_m1_m2 + + coeff_dxz_m2_0_m2*data_m2_0_m2 + + coeff_dxz_m1_0_m2*data_m1_0_m2 + + coeff_dxz_0_0_m2*data_0_0_m2 + + coeff_dxz_p1_0_m2*data_p1_0_m2 + + coeff_dxz_p2_0_m2*data_p2_0_m2 + + coeff_dxz_m2_p1_m2*data_m2_p1_m2 + + coeff_dxz_m1_p1_m2*data_m1_p1_m2 + + coeff_dxz_0_p1_m2*data_0_p1_m2 + + coeff_dxz_p1_p1_m2*data_p1_p1_m2 + + coeff_dxz_p2_p1_m2*data_p2_p1_m2 + + coeff_dxz_m2_p2_m2*data_m2_p2_m2 + + coeff_dxz_m1_p2_m2*data_m1_p2_m2 + + coeff_dxz_0_p2_m2*data_0_p2_m2 + + coeff_dxz_p1_p2_m2*data_p1_p2_m2 + + coeff_dxz_p2_p2_m2*data_p2_p2_m2 + + coeff_dxz_m2_m2_m1*data_m2_m2_m1 + + coeff_dxz_m1_m2_m1*data_m1_m2_m1 + + coeff_dxz_0_m2_m1*data_0_m2_m1 + + coeff_dxz_p1_m2_m1*data_p1_m2_m1 + + coeff_dxz_p2_m2_m1*data_p2_m2_m1 + + coeff_dxz_m2_m1_m1*data_m2_m1_m1 + + coeff_dxz_m1_m1_m1*data_m1_m1_m1 + + coeff_dxz_0_m1_m1*data_0_m1_m1 + + coeff_dxz_p1_m1_m1*data_p1_m1_m1 + + coeff_dxz_p2_m1_m1*data_p2_m1_m1 + + coeff_dxz_m2_0_m1*data_m2_0_m1 + + coeff_dxz_m1_0_m1*data_m1_0_m1 + + coeff_dxz_0_0_m1*data_0_0_m1 + + coeff_dxz_p1_0_m1*data_p1_0_m1 + + coeff_dxz_p2_0_m1*data_p2_0_m1 + + coeff_dxz_m2_p1_m1*data_m2_p1_m1 + + coeff_dxz_m1_p1_m1*data_m1_p1_m1 + + coeff_dxz_0_p1_m1*data_0_p1_m1 + + coeff_dxz_p1_p1_m1*data_p1_p1_m1 + + coeff_dxz_p2_p1_m1*data_p2_p1_m1 + + coeff_dxz_m2_p2_m1*data_m2_p2_m1 + + coeff_dxz_m1_p2_m1*data_m1_p2_m1 + + coeff_dxz_0_p2_m1*data_0_p2_m1 + + coeff_dxz_p1_p2_m1*data_p1_p2_m1 + + coeff_dxz_p2_p2_m1*data_p2_p2_m1 + + coeff_dxz_m2_m2_0*data_m2_m2_0 + + coeff_dxz_m1_m2_0*data_m1_m2_0 + + coeff_dxz_0_m2_0*data_0_m2_0 + + coeff_dxz_p1_m2_0*data_p1_m2_0 + + coeff_dxz_p2_m2_0*data_p2_m2_0 + + coeff_dxz_m2_m1_0*data_m2_m1_0 + + coeff_dxz_m1_m1_0*data_m1_m1_0 + + coeff_dxz_0_m1_0*data_0_m1_0 + + coeff_dxz_p1_m1_0*data_p1_m1_0 + + coeff_dxz_p2_m1_0*data_p2_m1_0 + + coeff_dxz_m2_0_0*data_m2_0_0 + + coeff_dxz_m1_0_0*data_m1_0_0 + + coeff_dxz_0_0_0*data_0_0_0 + + coeff_dxz_p1_0_0*data_p1_0_0 + + coeff_dxz_p2_0_0*data_p2_0_0 + + coeff_dxz_m2_p1_0*data_m2_p1_0 + + coeff_dxz_m1_p1_0*data_m1_p1_0 + + coeff_dxz_0_p1_0*data_0_p1_0 + + coeff_dxz_p1_p1_0*data_p1_p1_0 + + coeff_dxz_p2_p1_0*data_p2_p1_0 + + coeff_dxz_m2_p2_0*data_m2_p2_0 + + coeff_dxz_m1_p2_0*data_m1_p2_0 + + coeff_dxz_0_p2_0*data_0_p2_0 + + coeff_dxz_p1_p2_0*data_p1_p2_0 + + coeff_dxz_p2_p2_0*data_p2_p2_0 + + coeff_dxz_m2_m2_p1*data_m2_m2_p1 + + coeff_dxz_m1_m2_p1*data_m1_m2_p1 + + coeff_dxz_0_m2_p1*data_0_m2_p1 + + coeff_dxz_p1_m2_p1*data_p1_m2_p1 + + coeff_dxz_p2_m2_p1*data_p2_m2_p1 + + coeff_dxz_m2_m1_p1*data_m2_m1_p1 + + coeff_dxz_m1_m1_p1*data_m1_m1_p1 + + coeff_dxz_0_m1_p1*data_0_m1_p1 + + coeff_dxz_p1_m1_p1*data_p1_m1_p1 + + coeff_dxz_p2_m1_p1*data_p2_m1_p1 + + coeff_dxz_m2_0_p1*data_m2_0_p1 + + coeff_dxz_m1_0_p1*data_m1_0_p1 + + coeff_dxz_0_0_p1*data_0_0_p1 + + coeff_dxz_p1_0_p1*data_p1_0_p1 + + coeff_dxz_p2_0_p1*data_p2_0_p1 + + coeff_dxz_m2_p1_p1*data_m2_p1_p1 + + coeff_dxz_m1_p1_p1*data_m1_p1_p1 + + coeff_dxz_0_p1_p1*data_0_p1_p1 + + coeff_dxz_p1_p1_p1*data_p1_p1_p1 + + coeff_dxz_p2_p1_p1*data_p2_p1_p1 + + coeff_dxz_m2_p2_p1*data_m2_p2_p1 + + coeff_dxz_m1_p2_p1*data_m1_p2_p1 + + coeff_dxz_0_p2_p1*data_0_p2_p1 + + coeff_dxz_p1_p2_p1*data_p1_p2_p1 + + coeff_dxz_p2_p2_p1*data_p2_p2_p1 + + coeff_dxz_m2_m2_p2*data_m2_m2_p2 + + coeff_dxz_m1_m2_p2*data_m1_m2_p2 + + coeff_dxz_0_m2_p2*data_0_m2_p2 + + coeff_dxz_p1_m2_p2*data_p1_m2_p2 + + coeff_dxz_p2_m2_p2*data_p2_m2_p2 + + coeff_dxz_m2_m1_p2*data_m2_m1_p2 + + coeff_dxz_m1_m1_p2*data_m1_m1_p2 + + coeff_dxz_0_m1_p2*data_0_m1_p2 + + coeff_dxz_p1_m1_p2*data_p1_m1_p2 + + coeff_dxz_p2_m1_p2*data_p2_m1_p2 + + coeff_dxz_m2_0_p2*data_m2_0_p2 + + coeff_dxz_m1_0_p2*data_m1_0_p2 + + coeff_dxz_0_0_p2*data_0_0_p2 + + coeff_dxz_p1_0_p2*data_p1_0_p2 + + coeff_dxz_p2_0_p2*data_p2_0_p2 + + coeff_dxz_m2_p1_p2*data_m2_p1_p2 + + coeff_dxz_m1_p1_p2*data_m1_p1_p2 + + coeff_dxz_0_p1_p2*data_0_p1_p2 + + coeff_dxz_p1_p1_p2*data_p1_p1_p2 + + coeff_dxz_p2_p1_p2*data_p2_p1_p2 + + coeff_dxz_m2_p2_p2*data_m2_p2_p2 + + coeff_dxz_m1_p2_p2*data_m1_p2_p2 + + coeff_dxz_0_p2_p2*data_0_p2_p2 + + coeff_dxz_p1_p2_p2*data_p1_p2_p2 + + coeff_dxz_p2_p2_p2*data_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-dy.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-dy.compute.c new file mode 100644 index 0000000..af7007a --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-dy.compute.c @@ -0,0 +1,126 @@ +result = + coeff_dy_m2_m2_m2*data_m2_m2_m2 + + coeff_dy_m1_m2_m2*data_m1_m2_m2 + + coeff_dy_0_m2_m2*data_0_m2_m2 + + coeff_dy_p1_m2_m2*data_p1_m2_m2 + + coeff_dy_p2_m2_m2*data_p2_m2_m2 + + coeff_dy_m2_m1_m2*data_m2_m1_m2 + + coeff_dy_m1_m1_m2*data_m1_m1_m2 + + coeff_dy_0_m1_m2*data_0_m1_m2 + + coeff_dy_p1_m1_m2*data_p1_m1_m2 + + coeff_dy_p2_m1_m2*data_p2_m1_m2 + + coeff_dy_m2_0_m2*data_m2_0_m2 + + coeff_dy_m1_0_m2*data_m1_0_m2 + + coeff_dy_0_0_m2*data_0_0_m2 + + coeff_dy_p1_0_m2*data_p1_0_m2 + + coeff_dy_p2_0_m2*data_p2_0_m2 + + coeff_dy_m2_p1_m2*data_m2_p1_m2 + + coeff_dy_m1_p1_m2*data_m1_p1_m2 + + coeff_dy_0_p1_m2*data_0_p1_m2 + + coeff_dy_p1_p1_m2*data_p1_p1_m2 + + coeff_dy_p2_p1_m2*data_p2_p1_m2 + + coeff_dy_m2_p2_m2*data_m2_p2_m2 + + coeff_dy_m1_p2_m2*data_m1_p2_m2 + + coeff_dy_0_p2_m2*data_0_p2_m2 + + coeff_dy_p1_p2_m2*data_p1_p2_m2 + + coeff_dy_p2_p2_m2*data_p2_p2_m2 + + coeff_dy_m2_m2_m1*data_m2_m2_m1 + + coeff_dy_m1_m2_m1*data_m1_m2_m1 + + coeff_dy_0_m2_m1*data_0_m2_m1 + + coeff_dy_p1_m2_m1*data_p1_m2_m1 + + coeff_dy_p2_m2_m1*data_p2_m2_m1 + + coeff_dy_m2_m1_m1*data_m2_m1_m1 + + coeff_dy_m1_m1_m1*data_m1_m1_m1 + + coeff_dy_0_m1_m1*data_0_m1_m1 + + coeff_dy_p1_m1_m1*data_p1_m1_m1 + + coeff_dy_p2_m1_m1*data_p2_m1_m1 + + coeff_dy_m2_0_m1*data_m2_0_m1 + + coeff_dy_m1_0_m1*data_m1_0_m1 + + coeff_dy_0_0_m1*data_0_0_m1 + + coeff_dy_p1_0_m1*data_p1_0_m1 + + coeff_dy_p2_0_m1*data_p2_0_m1 + + coeff_dy_m2_p1_m1*data_m2_p1_m1 + + coeff_dy_m1_p1_m1*data_m1_p1_m1 + + coeff_dy_0_p1_m1*data_0_p1_m1 + + coeff_dy_p1_p1_m1*data_p1_p1_m1 + + coeff_dy_p2_p1_m1*data_p2_p1_m1 + + coeff_dy_m2_p2_m1*data_m2_p2_m1 + + coeff_dy_m1_p2_m1*data_m1_p2_m1 + + coeff_dy_0_p2_m1*data_0_p2_m1 + + coeff_dy_p1_p2_m1*data_p1_p2_m1 + + coeff_dy_p2_p2_m1*data_p2_p2_m1 + + coeff_dy_m2_m2_0*data_m2_m2_0 + + coeff_dy_m1_m2_0*data_m1_m2_0 + + coeff_dy_0_m2_0*data_0_m2_0 + + coeff_dy_p1_m2_0*data_p1_m2_0 + + coeff_dy_p2_m2_0*data_p2_m2_0 + + coeff_dy_m2_m1_0*data_m2_m1_0 + + coeff_dy_m1_m1_0*data_m1_m1_0 + + coeff_dy_0_m1_0*data_0_m1_0 + + coeff_dy_p1_m1_0*data_p1_m1_0 + + coeff_dy_p2_m1_0*data_p2_m1_0 + + coeff_dy_m2_0_0*data_m2_0_0 + + coeff_dy_m1_0_0*data_m1_0_0 + + coeff_dy_0_0_0*data_0_0_0 + + coeff_dy_p1_0_0*data_p1_0_0 + + coeff_dy_p2_0_0*data_p2_0_0 + + coeff_dy_m2_p1_0*data_m2_p1_0 + + coeff_dy_m1_p1_0*data_m1_p1_0 + + coeff_dy_0_p1_0*data_0_p1_0 + + coeff_dy_p1_p1_0*data_p1_p1_0 + + coeff_dy_p2_p1_0*data_p2_p1_0 + + coeff_dy_m2_p2_0*data_m2_p2_0 + + coeff_dy_m1_p2_0*data_m1_p2_0 + + coeff_dy_0_p2_0*data_0_p2_0 + + coeff_dy_p1_p2_0*data_p1_p2_0 + + coeff_dy_p2_p2_0*data_p2_p2_0 + + coeff_dy_m2_m2_p1*data_m2_m2_p1 + + coeff_dy_m1_m2_p1*data_m1_m2_p1 + + coeff_dy_0_m2_p1*data_0_m2_p1 + + coeff_dy_p1_m2_p1*data_p1_m2_p1 + + coeff_dy_p2_m2_p1*data_p2_m2_p1 + + coeff_dy_m2_m1_p1*data_m2_m1_p1 + + coeff_dy_m1_m1_p1*data_m1_m1_p1 + + coeff_dy_0_m1_p1*data_0_m1_p1 + + coeff_dy_p1_m1_p1*data_p1_m1_p1 + + coeff_dy_p2_m1_p1*data_p2_m1_p1 + + coeff_dy_m2_0_p1*data_m2_0_p1 + + coeff_dy_m1_0_p1*data_m1_0_p1 + + coeff_dy_0_0_p1*data_0_0_p1 + + coeff_dy_p1_0_p1*data_p1_0_p1 + + coeff_dy_p2_0_p1*data_p2_0_p1 + + coeff_dy_m2_p1_p1*data_m2_p1_p1 + + coeff_dy_m1_p1_p1*data_m1_p1_p1 + + coeff_dy_0_p1_p1*data_0_p1_p1 + + coeff_dy_p1_p1_p1*data_p1_p1_p1 + + coeff_dy_p2_p1_p1*data_p2_p1_p1 + + coeff_dy_m2_p2_p1*data_m2_p2_p1 + + coeff_dy_m1_p2_p1*data_m1_p2_p1 + + coeff_dy_0_p2_p1*data_0_p2_p1 + + coeff_dy_p1_p2_p1*data_p1_p2_p1 + + coeff_dy_p2_p2_p1*data_p2_p2_p1 + + coeff_dy_m2_m2_p2*data_m2_m2_p2 + + coeff_dy_m1_m2_p2*data_m1_m2_p2 + + coeff_dy_0_m2_p2*data_0_m2_p2 + + coeff_dy_p1_m2_p2*data_p1_m2_p2 + + coeff_dy_p2_m2_p2*data_p2_m2_p2 + + coeff_dy_m2_m1_p2*data_m2_m1_p2 + + coeff_dy_m1_m1_p2*data_m1_m1_p2 + + coeff_dy_0_m1_p2*data_0_m1_p2 + + coeff_dy_p1_m1_p2*data_p1_m1_p2 + + coeff_dy_p2_m1_p2*data_p2_m1_p2 + + coeff_dy_m2_0_p2*data_m2_0_p2 + + coeff_dy_m1_0_p2*data_m1_0_p2 + + coeff_dy_0_0_p2*data_0_0_p2 + + coeff_dy_p1_0_p2*data_p1_0_p2 + + coeff_dy_p2_0_p2*data_p2_0_p2 + + coeff_dy_m2_p1_p2*data_m2_p1_p2 + + coeff_dy_m1_p1_p2*data_m1_p1_p2 + + coeff_dy_0_p1_p2*data_0_p1_p2 + + coeff_dy_p1_p1_p2*data_p1_p1_p2 + + coeff_dy_p2_p1_p2*data_p2_p1_p2 + + coeff_dy_m2_p2_p2*data_m2_p2_p2 + + coeff_dy_m1_p2_p2*data_m1_p2_p2 + + coeff_dy_0_p2_p2*data_0_p2_p2 + + coeff_dy_p1_p2_p2*data_p1_p2_p2 + + coeff_dy_p2_p2_p2*data_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-dyy.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-dyy.compute.c new file mode 100644 index 0000000..55088e7 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-dyy.compute.c @@ -0,0 +1,126 @@ +result = + coeff_dyy_m2_m2_m2*data_m2_m2_m2 + + coeff_dyy_m1_m2_m2*data_m1_m2_m2 + + coeff_dyy_0_m2_m2*data_0_m2_m2 + + coeff_dyy_p1_m2_m2*data_p1_m2_m2 + + coeff_dyy_p2_m2_m2*data_p2_m2_m2 + + coeff_dyy_m2_m1_m2*data_m2_m1_m2 + + coeff_dyy_m1_m1_m2*data_m1_m1_m2 + + coeff_dyy_0_m1_m2*data_0_m1_m2 + + coeff_dyy_p1_m1_m2*data_p1_m1_m2 + + coeff_dyy_p2_m1_m2*data_p2_m1_m2 + + coeff_dyy_m2_0_m2*data_m2_0_m2 + + coeff_dyy_m1_0_m2*data_m1_0_m2 + + coeff_dyy_0_0_m2*data_0_0_m2 + + coeff_dyy_p1_0_m2*data_p1_0_m2 + + coeff_dyy_p2_0_m2*data_p2_0_m2 + + coeff_dyy_m2_p1_m2*data_m2_p1_m2 + + coeff_dyy_m1_p1_m2*data_m1_p1_m2 + + coeff_dyy_0_p1_m2*data_0_p1_m2 + + coeff_dyy_p1_p1_m2*data_p1_p1_m2 + + coeff_dyy_p2_p1_m2*data_p2_p1_m2 + + coeff_dyy_m2_p2_m2*data_m2_p2_m2 + + coeff_dyy_m1_p2_m2*data_m1_p2_m2 + + coeff_dyy_0_p2_m2*data_0_p2_m2 + + coeff_dyy_p1_p2_m2*data_p1_p2_m2 + + coeff_dyy_p2_p2_m2*data_p2_p2_m2 + + coeff_dyy_m2_m2_m1*data_m2_m2_m1 + + coeff_dyy_m1_m2_m1*data_m1_m2_m1 + + coeff_dyy_0_m2_m1*data_0_m2_m1 + + coeff_dyy_p1_m2_m1*data_p1_m2_m1 + + coeff_dyy_p2_m2_m1*data_p2_m2_m1 + + coeff_dyy_m2_m1_m1*data_m2_m1_m1 + + coeff_dyy_m1_m1_m1*data_m1_m1_m1 + + coeff_dyy_0_m1_m1*data_0_m1_m1 + + coeff_dyy_p1_m1_m1*data_p1_m1_m1 + + coeff_dyy_p2_m1_m1*data_p2_m1_m1 + + coeff_dyy_m2_0_m1*data_m2_0_m1 + + coeff_dyy_m1_0_m1*data_m1_0_m1 + + coeff_dyy_0_0_m1*data_0_0_m1 + + coeff_dyy_p1_0_m1*data_p1_0_m1 + + coeff_dyy_p2_0_m1*data_p2_0_m1 + + coeff_dyy_m2_p1_m1*data_m2_p1_m1 + + coeff_dyy_m1_p1_m1*data_m1_p1_m1 + + coeff_dyy_0_p1_m1*data_0_p1_m1 + + coeff_dyy_p1_p1_m1*data_p1_p1_m1 + + coeff_dyy_p2_p1_m1*data_p2_p1_m1 + + coeff_dyy_m2_p2_m1*data_m2_p2_m1 + + coeff_dyy_m1_p2_m1*data_m1_p2_m1 + + coeff_dyy_0_p2_m1*data_0_p2_m1 + + coeff_dyy_p1_p2_m1*data_p1_p2_m1 + + coeff_dyy_p2_p2_m1*data_p2_p2_m1 + + coeff_dyy_m2_m2_0*data_m2_m2_0 + + coeff_dyy_m1_m2_0*data_m1_m2_0 + + coeff_dyy_0_m2_0*data_0_m2_0 + + coeff_dyy_p1_m2_0*data_p1_m2_0 + + coeff_dyy_p2_m2_0*data_p2_m2_0 + + coeff_dyy_m2_m1_0*data_m2_m1_0 + + coeff_dyy_m1_m1_0*data_m1_m1_0 + + coeff_dyy_0_m1_0*data_0_m1_0 + + coeff_dyy_p1_m1_0*data_p1_m1_0 + + coeff_dyy_p2_m1_0*data_p2_m1_0 + + coeff_dyy_m2_0_0*data_m2_0_0 + + coeff_dyy_m1_0_0*data_m1_0_0 + + coeff_dyy_0_0_0*data_0_0_0 + + coeff_dyy_p1_0_0*data_p1_0_0 + + coeff_dyy_p2_0_0*data_p2_0_0 + + coeff_dyy_m2_p1_0*data_m2_p1_0 + + coeff_dyy_m1_p1_0*data_m1_p1_0 + + coeff_dyy_0_p1_0*data_0_p1_0 + + coeff_dyy_p1_p1_0*data_p1_p1_0 + + coeff_dyy_p2_p1_0*data_p2_p1_0 + + coeff_dyy_m2_p2_0*data_m2_p2_0 + + coeff_dyy_m1_p2_0*data_m1_p2_0 + + coeff_dyy_0_p2_0*data_0_p2_0 + + coeff_dyy_p1_p2_0*data_p1_p2_0 + + coeff_dyy_p2_p2_0*data_p2_p2_0 + + coeff_dyy_m2_m2_p1*data_m2_m2_p1 + + coeff_dyy_m1_m2_p1*data_m1_m2_p1 + + coeff_dyy_0_m2_p1*data_0_m2_p1 + + coeff_dyy_p1_m2_p1*data_p1_m2_p1 + + coeff_dyy_p2_m2_p1*data_p2_m2_p1 + + coeff_dyy_m2_m1_p1*data_m2_m1_p1 + + coeff_dyy_m1_m1_p1*data_m1_m1_p1 + + coeff_dyy_0_m1_p1*data_0_m1_p1 + + coeff_dyy_p1_m1_p1*data_p1_m1_p1 + + coeff_dyy_p2_m1_p1*data_p2_m1_p1 + + coeff_dyy_m2_0_p1*data_m2_0_p1 + + coeff_dyy_m1_0_p1*data_m1_0_p1 + + coeff_dyy_0_0_p1*data_0_0_p1 + + coeff_dyy_p1_0_p1*data_p1_0_p1 + + coeff_dyy_p2_0_p1*data_p2_0_p1 + + coeff_dyy_m2_p1_p1*data_m2_p1_p1 + + coeff_dyy_m1_p1_p1*data_m1_p1_p1 + + coeff_dyy_0_p1_p1*data_0_p1_p1 + + coeff_dyy_p1_p1_p1*data_p1_p1_p1 + + coeff_dyy_p2_p1_p1*data_p2_p1_p1 + + coeff_dyy_m2_p2_p1*data_m2_p2_p1 + + coeff_dyy_m1_p2_p1*data_m1_p2_p1 + + coeff_dyy_0_p2_p1*data_0_p2_p1 + + coeff_dyy_p1_p2_p1*data_p1_p2_p1 + + coeff_dyy_p2_p2_p1*data_p2_p2_p1 + + coeff_dyy_m2_m2_p2*data_m2_m2_p2 + + coeff_dyy_m1_m2_p2*data_m1_m2_p2 + + coeff_dyy_0_m2_p2*data_0_m2_p2 + + coeff_dyy_p1_m2_p2*data_p1_m2_p2 + + coeff_dyy_p2_m2_p2*data_p2_m2_p2 + + coeff_dyy_m2_m1_p2*data_m2_m1_p2 + + coeff_dyy_m1_m1_p2*data_m1_m1_p2 + + coeff_dyy_0_m1_p2*data_0_m1_p2 + + coeff_dyy_p1_m1_p2*data_p1_m1_p2 + + coeff_dyy_p2_m1_p2*data_p2_m1_p2 + + coeff_dyy_m2_0_p2*data_m2_0_p2 + + coeff_dyy_m1_0_p2*data_m1_0_p2 + + coeff_dyy_0_0_p2*data_0_0_p2 + + coeff_dyy_p1_0_p2*data_p1_0_p2 + + coeff_dyy_p2_0_p2*data_p2_0_p2 + + coeff_dyy_m2_p1_p2*data_m2_p1_p2 + + coeff_dyy_m1_p1_p2*data_m1_p1_p2 + + coeff_dyy_0_p1_p2*data_0_p1_p2 + + coeff_dyy_p1_p1_p2*data_p1_p1_p2 + + coeff_dyy_p2_p1_p2*data_p2_p1_p2 + + coeff_dyy_m2_p2_p2*data_m2_p2_p2 + + coeff_dyy_m1_p2_p2*data_m1_p2_p2 + + coeff_dyy_0_p2_p2*data_0_p2_p2 + + coeff_dyy_p1_p2_p2*data_p1_p2_p2 + + coeff_dyy_p2_p2_p2*data_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-dyz.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-dyz.compute.c new file mode 100644 index 0000000..9b8120b --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-dyz.compute.c @@ -0,0 +1,126 @@ +result = + coeff_dyz_m2_m2_m2*data_m2_m2_m2 + + coeff_dyz_m1_m2_m2*data_m1_m2_m2 + + coeff_dyz_0_m2_m2*data_0_m2_m2 + + coeff_dyz_p1_m2_m2*data_p1_m2_m2 + + coeff_dyz_p2_m2_m2*data_p2_m2_m2 + + coeff_dyz_m2_m1_m2*data_m2_m1_m2 + + coeff_dyz_m1_m1_m2*data_m1_m1_m2 + + coeff_dyz_0_m1_m2*data_0_m1_m2 + + coeff_dyz_p1_m1_m2*data_p1_m1_m2 + + coeff_dyz_p2_m1_m2*data_p2_m1_m2 + + coeff_dyz_m2_0_m2*data_m2_0_m2 + + coeff_dyz_m1_0_m2*data_m1_0_m2 + + coeff_dyz_0_0_m2*data_0_0_m2 + + coeff_dyz_p1_0_m2*data_p1_0_m2 + + coeff_dyz_p2_0_m2*data_p2_0_m2 + + coeff_dyz_m2_p1_m2*data_m2_p1_m2 + + coeff_dyz_m1_p1_m2*data_m1_p1_m2 + + coeff_dyz_0_p1_m2*data_0_p1_m2 + + coeff_dyz_p1_p1_m2*data_p1_p1_m2 + + coeff_dyz_p2_p1_m2*data_p2_p1_m2 + + coeff_dyz_m2_p2_m2*data_m2_p2_m2 + + coeff_dyz_m1_p2_m2*data_m1_p2_m2 + + coeff_dyz_0_p2_m2*data_0_p2_m2 + + coeff_dyz_p1_p2_m2*data_p1_p2_m2 + + coeff_dyz_p2_p2_m2*data_p2_p2_m2 + + coeff_dyz_m2_m2_m1*data_m2_m2_m1 + + coeff_dyz_m1_m2_m1*data_m1_m2_m1 + + coeff_dyz_0_m2_m1*data_0_m2_m1 + + coeff_dyz_p1_m2_m1*data_p1_m2_m1 + + coeff_dyz_p2_m2_m1*data_p2_m2_m1 + + coeff_dyz_m2_m1_m1*data_m2_m1_m1 + + coeff_dyz_m1_m1_m1*data_m1_m1_m1 + + coeff_dyz_0_m1_m1*data_0_m1_m1 + + coeff_dyz_p1_m1_m1*data_p1_m1_m1 + + coeff_dyz_p2_m1_m1*data_p2_m1_m1 + + coeff_dyz_m2_0_m1*data_m2_0_m1 + + coeff_dyz_m1_0_m1*data_m1_0_m1 + + coeff_dyz_0_0_m1*data_0_0_m1 + + coeff_dyz_p1_0_m1*data_p1_0_m1 + + coeff_dyz_p2_0_m1*data_p2_0_m1 + + coeff_dyz_m2_p1_m1*data_m2_p1_m1 + + coeff_dyz_m1_p1_m1*data_m1_p1_m1 + + coeff_dyz_0_p1_m1*data_0_p1_m1 + + coeff_dyz_p1_p1_m1*data_p1_p1_m1 + + coeff_dyz_p2_p1_m1*data_p2_p1_m1 + + coeff_dyz_m2_p2_m1*data_m2_p2_m1 + + coeff_dyz_m1_p2_m1*data_m1_p2_m1 + + coeff_dyz_0_p2_m1*data_0_p2_m1 + + coeff_dyz_p1_p2_m1*data_p1_p2_m1 + + coeff_dyz_p2_p2_m1*data_p2_p2_m1 + + coeff_dyz_m2_m2_0*data_m2_m2_0 + + coeff_dyz_m1_m2_0*data_m1_m2_0 + + coeff_dyz_0_m2_0*data_0_m2_0 + + coeff_dyz_p1_m2_0*data_p1_m2_0 + + coeff_dyz_p2_m2_0*data_p2_m2_0 + + coeff_dyz_m2_m1_0*data_m2_m1_0 + + coeff_dyz_m1_m1_0*data_m1_m1_0 + + coeff_dyz_0_m1_0*data_0_m1_0 + + coeff_dyz_p1_m1_0*data_p1_m1_0 + + coeff_dyz_p2_m1_0*data_p2_m1_0 + + coeff_dyz_m2_0_0*data_m2_0_0 + + coeff_dyz_m1_0_0*data_m1_0_0 + + coeff_dyz_0_0_0*data_0_0_0 + + coeff_dyz_p1_0_0*data_p1_0_0 + + coeff_dyz_p2_0_0*data_p2_0_0 + + coeff_dyz_m2_p1_0*data_m2_p1_0 + + coeff_dyz_m1_p1_0*data_m1_p1_0 + + coeff_dyz_0_p1_0*data_0_p1_0 + + coeff_dyz_p1_p1_0*data_p1_p1_0 + + coeff_dyz_p2_p1_0*data_p2_p1_0 + + coeff_dyz_m2_p2_0*data_m2_p2_0 + + coeff_dyz_m1_p2_0*data_m1_p2_0 + + coeff_dyz_0_p2_0*data_0_p2_0 + + coeff_dyz_p1_p2_0*data_p1_p2_0 + + coeff_dyz_p2_p2_0*data_p2_p2_0 + + coeff_dyz_m2_m2_p1*data_m2_m2_p1 + + coeff_dyz_m1_m2_p1*data_m1_m2_p1 + + coeff_dyz_0_m2_p1*data_0_m2_p1 + + coeff_dyz_p1_m2_p1*data_p1_m2_p1 + + coeff_dyz_p2_m2_p1*data_p2_m2_p1 + + coeff_dyz_m2_m1_p1*data_m2_m1_p1 + + coeff_dyz_m1_m1_p1*data_m1_m1_p1 + + coeff_dyz_0_m1_p1*data_0_m1_p1 + + coeff_dyz_p1_m1_p1*data_p1_m1_p1 + + coeff_dyz_p2_m1_p1*data_p2_m1_p1 + + coeff_dyz_m2_0_p1*data_m2_0_p1 + + coeff_dyz_m1_0_p1*data_m1_0_p1 + + coeff_dyz_0_0_p1*data_0_0_p1 + + coeff_dyz_p1_0_p1*data_p1_0_p1 + + coeff_dyz_p2_0_p1*data_p2_0_p1 + + coeff_dyz_m2_p1_p1*data_m2_p1_p1 + + coeff_dyz_m1_p1_p1*data_m1_p1_p1 + + coeff_dyz_0_p1_p1*data_0_p1_p1 + + coeff_dyz_p1_p1_p1*data_p1_p1_p1 + + coeff_dyz_p2_p1_p1*data_p2_p1_p1 + + coeff_dyz_m2_p2_p1*data_m2_p2_p1 + + coeff_dyz_m1_p2_p1*data_m1_p2_p1 + + coeff_dyz_0_p2_p1*data_0_p2_p1 + + coeff_dyz_p1_p2_p1*data_p1_p2_p1 + + coeff_dyz_p2_p2_p1*data_p2_p2_p1 + + coeff_dyz_m2_m2_p2*data_m2_m2_p2 + + coeff_dyz_m1_m2_p2*data_m1_m2_p2 + + coeff_dyz_0_m2_p2*data_0_m2_p2 + + coeff_dyz_p1_m2_p2*data_p1_m2_p2 + + coeff_dyz_p2_m2_p2*data_p2_m2_p2 + + coeff_dyz_m2_m1_p2*data_m2_m1_p2 + + coeff_dyz_m1_m1_p2*data_m1_m1_p2 + + coeff_dyz_0_m1_p2*data_0_m1_p2 + + coeff_dyz_p1_m1_p2*data_p1_m1_p2 + + coeff_dyz_p2_m1_p2*data_p2_m1_p2 + + coeff_dyz_m2_0_p2*data_m2_0_p2 + + coeff_dyz_m1_0_p2*data_m1_0_p2 + + coeff_dyz_0_0_p2*data_0_0_p2 + + coeff_dyz_p1_0_p2*data_p1_0_p2 + + coeff_dyz_p2_0_p2*data_p2_0_p2 + + coeff_dyz_m2_p1_p2*data_m2_p1_p2 + + coeff_dyz_m1_p1_p2*data_m1_p1_p2 + + coeff_dyz_0_p1_p2*data_0_p1_p2 + + coeff_dyz_p1_p1_p2*data_p1_p1_p2 + + coeff_dyz_p2_p1_p2*data_p2_p1_p2 + + coeff_dyz_m2_p2_p2*data_m2_p2_p2 + + coeff_dyz_m1_p2_p2*data_m1_p2_p2 + + coeff_dyz_0_p2_p2*data_0_p2_p2 + + coeff_dyz_p1_p2_p2*data_p1_p2_p2 + + coeff_dyz_p2_p2_p2*data_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-dz.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-dz.compute.c new file mode 100644 index 0000000..df21dcc --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-dz.compute.c @@ -0,0 +1,126 @@ +result = + coeff_dz_m2_m2_m2*data_m2_m2_m2 + + coeff_dz_m1_m2_m2*data_m1_m2_m2 + + coeff_dz_0_m2_m2*data_0_m2_m2 + + coeff_dz_p1_m2_m2*data_p1_m2_m2 + + coeff_dz_p2_m2_m2*data_p2_m2_m2 + + coeff_dz_m2_m1_m2*data_m2_m1_m2 + + coeff_dz_m1_m1_m2*data_m1_m1_m2 + + coeff_dz_0_m1_m2*data_0_m1_m2 + + coeff_dz_p1_m1_m2*data_p1_m1_m2 + + coeff_dz_p2_m1_m2*data_p2_m1_m2 + + coeff_dz_m2_0_m2*data_m2_0_m2 + + coeff_dz_m1_0_m2*data_m1_0_m2 + + coeff_dz_0_0_m2*data_0_0_m2 + + coeff_dz_p1_0_m2*data_p1_0_m2 + + coeff_dz_p2_0_m2*data_p2_0_m2 + + coeff_dz_m2_p1_m2*data_m2_p1_m2 + + coeff_dz_m1_p1_m2*data_m1_p1_m2 + + coeff_dz_0_p1_m2*data_0_p1_m2 + + coeff_dz_p1_p1_m2*data_p1_p1_m2 + + coeff_dz_p2_p1_m2*data_p2_p1_m2 + + coeff_dz_m2_p2_m2*data_m2_p2_m2 + + coeff_dz_m1_p2_m2*data_m1_p2_m2 + + coeff_dz_0_p2_m2*data_0_p2_m2 + + coeff_dz_p1_p2_m2*data_p1_p2_m2 + + coeff_dz_p2_p2_m2*data_p2_p2_m2 + + coeff_dz_m2_m2_m1*data_m2_m2_m1 + + coeff_dz_m1_m2_m1*data_m1_m2_m1 + + coeff_dz_0_m2_m1*data_0_m2_m1 + + coeff_dz_p1_m2_m1*data_p1_m2_m1 + + coeff_dz_p2_m2_m1*data_p2_m2_m1 + + coeff_dz_m2_m1_m1*data_m2_m1_m1 + + coeff_dz_m1_m1_m1*data_m1_m1_m1 + + coeff_dz_0_m1_m1*data_0_m1_m1 + + coeff_dz_p1_m1_m1*data_p1_m1_m1 + + coeff_dz_p2_m1_m1*data_p2_m1_m1 + + coeff_dz_m2_0_m1*data_m2_0_m1 + + coeff_dz_m1_0_m1*data_m1_0_m1 + + coeff_dz_0_0_m1*data_0_0_m1 + + coeff_dz_p1_0_m1*data_p1_0_m1 + + coeff_dz_p2_0_m1*data_p2_0_m1 + + coeff_dz_m2_p1_m1*data_m2_p1_m1 + + coeff_dz_m1_p1_m1*data_m1_p1_m1 + + coeff_dz_0_p1_m1*data_0_p1_m1 + + coeff_dz_p1_p1_m1*data_p1_p1_m1 + + coeff_dz_p2_p1_m1*data_p2_p1_m1 + + coeff_dz_m2_p2_m1*data_m2_p2_m1 + + coeff_dz_m1_p2_m1*data_m1_p2_m1 + + coeff_dz_0_p2_m1*data_0_p2_m1 + + coeff_dz_p1_p2_m1*data_p1_p2_m1 + + coeff_dz_p2_p2_m1*data_p2_p2_m1 + + coeff_dz_m2_m2_0*data_m2_m2_0 + + coeff_dz_m1_m2_0*data_m1_m2_0 + + coeff_dz_0_m2_0*data_0_m2_0 + + coeff_dz_p1_m2_0*data_p1_m2_0 + + coeff_dz_p2_m2_0*data_p2_m2_0 + + coeff_dz_m2_m1_0*data_m2_m1_0 + + coeff_dz_m1_m1_0*data_m1_m1_0 + + coeff_dz_0_m1_0*data_0_m1_0 + + coeff_dz_p1_m1_0*data_p1_m1_0 + + coeff_dz_p2_m1_0*data_p2_m1_0 + + coeff_dz_m2_0_0*data_m2_0_0 + + coeff_dz_m1_0_0*data_m1_0_0 + + coeff_dz_0_0_0*data_0_0_0 + + coeff_dz_p1_0_0*data_p1_0_0 + + coeff_dz_p2_0_0*data_p2_0_0 + + coeff_dz_m2_p1_0*data_m2_p1_0 + + coeff_dz_m1_p1_0*data_m1_p1_0 + + coeff_dz_0_p1_0*data_0_p1_0 + + coeff_dz_p1_p1_0*data_p1_p1_0 + + coeff_dz_p2_p1_0*data_p2_p1_0 + + coeff_dz_m2_p2_0*data_m2_p2_0 + + coeff_dz_m1_p2_0*data_m1_p2_0 + + coeff_dz_0_p2_0*data_0_p2_0 + + coeff_dz_p1_p2_0*data_p1_p2_0 + + coeff_dz_p2_p2_0*data_p2_p2_0 + + coeff_dz_m2_m2_p1*data_m2_m2_p1 + + coeff_dz_m1_m2_p1*data_m1_m2_p1 + + coeff_dz_0_m2_p1*data_0_m2_p1 + + coeff_dz_p1_m2_p1*data_p1_m2_p1 + + coeff_dz_p2_m2_p1*data_p2_m2_p1 + + coeff_dz_m2_m1_p1*data_m2_m1_p1 + + coeff_dz_m1_m1_p1*data_m1_m1_p1 + + coeff_dz_0_m1_p1*data_0_m1_p1 + + coeff_dz_p1_m1_p1*data_p1_m1_p1 + + coeff_dz_p2_m1_p1*data_p2_m1_p1 + + coeff_dz_m2_0_p1*data_m2_0_p1 + + coeff_dz_m1_0_p1*data_m1_0_p1 + + coeff_dz_0_0_p1*data_0_0_p1 + + coeff_dz_p1_0_p1*data_p1_0_p1 + + coeff_dz_p2_0_p1*data_p2_0_p1 + + coeff_dz_m2_p1_p1*data_m2_p1_p1 + + coeff_dz_m1_p1_p1*data_m1_p1_p1 + + coeff_dz_0_p1_p1*data_0_p1_p1 + + coeff_dz_p1_p1_p1*data_p1_p1_p1 + + coeff_dz_p2_p1_p1*data_p2_p1_p1 + + coeff_dz_m2_p2_p1*data_m2_p2_p1 + + coeff_dz_m1_p2_p1*data_m1_p2_p1 + + coeff_dz_0_p2_p1*data_0_p2_p1 + + coeff_dz_p1_p2_p1*data_p1_p2_p1 + + coeff_dz_p2_p2_p1*data_p2_p2_p1 + + coeff_dz_m2_m2_p2*data_m2_m2_p2 + + coeff_dz_m1_m2_p2*data_m1_m2_p2 + + coeff_dz_0_m2_p2*data_0_m2_p2 + + coeff_dz_p1_m2_p2*data_p1_m2_p2 + + coeff_dz_p2_m2_p2*data_p2_m2_p2 + + coeff_dz_m2_m1_p2*data_m2_m1_p2 + + coeff_dz_m1_m1_p2*data_m1_m1_p2 + + coeff_dz_0_m1_p2*data_0_m1_p2 + + coeff_dz_p1_m1_p2*data_p1_m1_p2 + + coeff_dz_p2_m1_p2*data_p2_m1_p2 + + coeff_dz_m2_0_p2*data_m2_0_p2 + + coeff_dz_m1_0_p2*data_m1_0_p2 + + coeff_dz_0_0_p2*data_0_0_p2 + + coeff_dz_p1_0_p2*data_p1_0_p2 + + coeff_dz_p2_0_p2*data_p2_0_p2 + + coeff_dz_m2_p1_p2*data_m2_p1_p2 + + coeff_dz_m1_p1_p2*data_m1_p1_p2 + + coeff_dz_0_p1_p2*data_0_p1_p2 + + coeff_dz_p1_p1_p2*data_p1_p1_p2 + + coeff_dz_p2_p1_p2*data_p2_p1_p2 + + coeff_dz_m2_p2_p2*data_m2_p2_p2 + + coeff_dz_m1_p2_p2*data_m1_p2_p2 + + coeff_dz_0_p2_p2*data_0_p2_p2 + + coeff_dz_p1_p2_p2*data_p1_p2_p2 + + coeff_dz_p2_p2_p2*data_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-dzz.compute.c b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-dzz.compute.c new file mode 100644 index 0000000..c085ef6 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.coeffs/3d.cube.size5/interp-dzz.compute.c @@ -0,0 +1,126 @@ +result = + coeff_dzz_m2_m2_m2*data_m2_m2_m2 + + coeff_dzz_m1_m2_m2*data_m1_m2_m2 + + coeff_dzz_0_m2_m2*data_0_m2_m2 + + coeff_dzz_p1_m2_m2*data_p1_m2_m2 + + coeff_dzz_p2_m2_m2*data_p2_m2_m2 + + coeff_dzz_m2_m1_m2*data_m2_m1_m2 + + coeff_dzz_m1_m1_m2*data_m1_m1_m2 + + coeff_dzz_0_m1_m2*data_0_m1_m2 + + coeff_dzz_p1_m1_m2*data_p1_m1_m2 + + coeff_dzz_p2_m1_m2*data_p2_m1_m2 + + coeff_dzz_m2_0_m2*data_m2_0_m2 + + coeff_dzz_m1_0_m2*data_m1_0_m2 + + coeff_dzz_0_0_m2*data_0_0_m2 + + coeff_dzz_p1_0_m2*data_p1_0_m2 + + coeff_dzz_p2_0_m2*data_p2_0_m2 + + coeff_dzz_m2_p1_m2*data_m2_p1_m2 + + coeff_dzz_m1_p1_m2*data_m1_p1_m2 + + coeff_dzz_0_p1_m2*data_0_p1_m2 + + coeff_dzz_p1_p1_m2*data_p1_p1_m2 + + coeff_dzz_p2_p1_m2*data_p2_p1_m2 + + coeff_dzz_m2_p2_m2*data_m2_p2_m2 + + coeff_dzz_m1_p2_m2*data_m1_p2_m2 + + coeff_dzz_0_p2_m2*data_0_p2_m2 + + coeff_dzz_p1_p2_m2*data_p1_p2_m2 + + coeff_dzz_p2_p2_m2*data_p2_p2_m2 + + coeff_dzz_m2_m2_m1*data_m2_m2_m1 + + coeff_dzz_m1_m2_m1*data_m1_m2_m1 + + coeff_dzz_0_m2_m1*data_0_m2_m1 + + coeff_dzz_p1_m2_m1*data_p1_m2_m1 + + coeff_dzz_p2_m2_m1*data_p2_m2_m1 + + coeff_dzz_m2_m1_m1*data_m2_m1_m1 + + coeff_dzz_m1_m1_m1*data_m1_m1_m1 + + coeff_dzz_0_m1_m1*data_0_m1_m1 + + coeff_dzz_p1_m1_m1*data_p1_m1_m1 + + coeff_dzz_p2_m1_m1*data_p2_m1_m1 + + coeff_dzz_m2_0_m1*data_m2_0_m1 + + coeff_dzz_m1_0_m1*data_m1_0_m1 + + coeff_dzz_0_0_m1*data_0_0_m1 + + coeff_dzz_p1_0_m1*data_p1_0_m1 + + coeff_dzz_p2_0_m1*data_p2_0_m1 + + coeff_dzz_m2_p1_m1*data_m2_p1_m1 + + coeff_dzz_m1_p1_m1*data_m1_p1_m1 + + coeff_dzz_0_p1_m1*data_0_p1_m1 + + coeff_dzz_p1_p1_m1*data_p1_p1_m1 + + coeff_dzz_p2_p1_m1*data_p2_p1_m1 + + coeff_dzz_m2_p2_m1*data_m2_p2_m1 + + coeff_dzz_m1_p2_m1*data_m1_p2_m1 + + coeff_dzz_0_p2_m1*data_0_p2_m1 + + coeff_dzz_p1_p2_m1*data_p1_p2_m1 + + coeff_dzz_p2_p2_m1*data_p2_p2_m1 + + coeff_dzz_m2_m2_0*data_m2_m2_0 + + coeff_dzz_m1_m2_0*data_m1_m2_0 + + coeff_dzz_0_m2_0*data_0_m2_0 + + coeff_dzz_p1_m2_0*data_p1_m2_0 + + coeff_dzz_p2_m2_0*data_p2_m2_0 + + coeff_dzz_m2_m1_0*data_m2_m1_0 + + coeff_dzz_m1_m1_0*data_m1_m1_0 + + coeff_dzz_0_m1_0*data_0_m1_0 + + coeff_dzz_p1_m1_0*data_p1_m1_0 + + coeff_dzz_p2_m1_0*data_p2_m1_0 + + coeff_dzz_m2_0_0*data_m2_0_0 + + coeff_dzz_m1_0_0*data_m1_0_0 + + coeff_dzz_0_0_0*data_0_0_0 + + coeff_dzz_p1_0_0*data_p1_0_0 + + coeff_dzz_p2_0_0*data_p2_0_0 + + coeff_dzz_m2_p1_0*data_m2_p1_0 + + coeff_dzz_m1_p1_0*data_m1_p1_0 + + coeff_dzz_0_p1_0*data_0_p1_0 + + coeff_dzz_p1_p1_0*data_p1_p1_0 + + coeff_dzz_p2_p1_0*data_p2_p1_0 + + coeff_dzz_m2_p2_0*data_m2_p2_0 + + coeff_dzz_m1_p2_0*data_m1_p2_0 + + coeff_dzz_0_p2_0*data_0_p2_0 + + coeff_dzz_p1_p2_0*data_p1_p2_0 + + coeff_dzz_p2_p2_0*data_p2_p2_0 + + coeff_dzz_m2_m2_p1*data_m2_m2_p1 + + coeff_dzz_m1_m2_p1*data_m1_m2_p1 + + coeff_dzz_0_m2_p1*data_0_m2_p1 + + coeff_dzz_p1_m2_p1*data_p1_m2_p1 + + coeff_dzz_p2_m2_p1*data_p2_m2_p1 + + coeff_dzz_m2_m1_p1*data_m2_m1_p1 + + coeff_dzz_m1_m1_p1*data_m1_m1_p1 + + coeff_dzz_0_m1_p1*data_0_m1_p1 + + coeff_dzz_p1_m1_p1*data_p1_m1_p1 + + coeff_dzz_p2_m1_p1*data_p2_m1_p1 + + coeff_dzz_m2_0_p1*data_m2_0_p1 + + coeff_dzz_m1_0_p1*data_m1_0_p1 + + coeff_dzz_0_0_p1*data_0_0_p1 + + coeff_dzz_p1_0_p1*data_p1_0_p1 + + coeff_dzz_p2_0_p1*data_p2_0_p1 + + coeff_dzz_m2_p1_p1*data_m2_p1_p1 + + coeff_dzz_m1_p1_p1*data_m1_p1_p1 + + coeff_dzz_0_p1_p1*data_0_p1_p1 + + coeff_dzz_p1_p1_p1*data_p1_p1_p1 + + coeff_dzz_p2_p1_p1*data_p2_p1_p1 + + coeff_dzz_m2_p2_p1*data_m2_p2_p1 + + coeff_dzz_m1_p2_p1*data_m1_p2_p1 + + coeff_dzz_0_p2_p1*data_0_p2_p1 + + coeff_dzz_p1_p2_p1*data_p1_p2_p1 + + coeff_dzz_p2_p2_p1*data_p2_p2_p1 + + coeff_dzz_m2_m2_p2*data_m2_m2_p2 + + coeff_dzz_m1_m2_p2*data_m1_m2_p2 + + coeff_dzz_0_m2_p2*data_0_m2_p2 + + coeff_dzz_p1_m2_p2*data_p1_m2_p2 + + coeff_dzz_p2_m2_p2*data_p2_m2_p2 + + coeff_dzz_m2_m1_p2*data_m2_m1_p2 + + coeff_dzz_m1_m1_p2*data_m1_m1_p2 + + coeff_dzz_0_m1_p2*data_0_m1_p2 + + coeff_dzz_p1_m1_p2*data_p1_m1_p2 + + coeff_dzz_p2_m1_p2*data_p2_m1_p2 + + coeff_dzz_m2_0_p2*data_m2_0_p2 + + coeff_dzz_m1_0_p2*data_m1_0_p2 + + coeff_dzz_0_0_p2*data_0_0_p2 + + coeff_dzz_p1_0_p2*data_p1_0_p2 + + coeff_dzz_p2_0_p2*data_p2_0_p2 + + coeff_dzz_m2_p1_p2*data_m2_p1_p2 + + coeff_dzz_m1_p1_p2*data_m1_p1_p2 + + coeff_dzz_0_p1_p2*data_0_p1_p2 + + coeff_dzz_p1_p1_p2*data_p1_p1_p2 + + coeff_dzz_p2_p1_p2*data_p2_p1_p2 + + coeff_dzz_m2_p2_p2*data_m2_p2_p2 + + coeff_dzz_m1_p2_p2*data_m1_p2_p2 + + coeff_dzz_0_p2_p2*data_0_p2_p2 + + coeff_dzz_p1_p2_p2*data_p1_p2_p2 + + coeff_dzz_p2_p2_p2*data_p2_p2_p2; diff --git a/src/GeneralizedPolynomial-Uniform/3d.cube.order1.smooth0.c b/src/GeneralizedPolynomial-Uniform/3d.cube.order1.smooth0.c new file mode 100644 index 0000000..5bc4c9c --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.cube.order1.smooth0.c @@ -0,0 +1,43 @@ +#include <math.h> +#include <limits.h> +#include <stdlib.h> +#include <string.h> +#include <stdio.h> + +#include "util_ErrorCodes.h" +#include "cctk.h" +#include "InterpLocalUniform.h" + +/* function prototype */ +#define FUNCTION_NAME LocalInterp_ILU_3d_cube_o1_s0 +#include "template.h" + +#define N_DIMS 3 +#define MOLECULE_SIZE 2 + +/* which derivative ops do we support? */ +#define HAVE_OP_I +#define HAVE_OP_DX +#define HAVE_OP_DY +#define HAVE_OP_DZ + +#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_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" +#define COEFF_DZ_DCL_FILE_NAME "3d.coeffs/3d.cube.size2/coeff-dz.dcl.c" + +#define INTERP_I_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size2/interp-I.compute.c" +#define INTERP_DX_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size2/interp-dx.compute.c" +#define INTERP_DY_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size2/interp-dy.compute.c" +#define INTERP_DZ_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size2/interp-dz.compute.c" + +#define COEFF_I_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order1.smooth0/coeff-I.compute.c" +#define COEFF_DX_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order1.smooth0/coeff-dx.compute.c" +#define COEFF_DY_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order1.smooth0/coeff-dy.compute.c" +#define COEFF_DZ_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order1.smooth0/coeff-dz.compute.c" + +/* actual code */ +#include "template.c" diff --git a/src/GeneralizedPolynomial-Uniform/3d.cube.order2.smooth0.c b/src/GeneralizedPolynomial-Uniform/3d.cube.order2.smooth0.c new file mode 100644 index 0000000..c64fcff --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.cube.order2.smooth0.c @@ -0,0 +1,67 @@ +#include <math.h> +#include <limits.h> +#include <stdlib.h> +#include <string.h> +#include <stdio.h> + +#include "util_ErrorCodes.h" +#include "cctk.h" +#include "InterpLocalUniform.h" + +/* function prototype */ +#define FUNCTION_NAME LocalInterp_ILU_3d_cube_o2_s0 +#include "template.h" + +#define N_DIMS 3 +#define MOLECULE_SIZE 3 + +/* which derivative ops do we support? */ +#define HAVE_OP_I +#define HAVE_OP_DX +#define HAVE_OP_DY +#define HAVE_OP_DZ +#define HAVE_OP_DXX +#define HAVE_OP_DXY +#define HAVE_OP_DXZ +#define HAVE_OP_DYY +#define HAVE_OP_DYZ +#define HAVE_OP_DZZ + +#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_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" +#define COEFF_DZ_DCL_FILE_NAME "3d.coeffs/3d.cube.size3/coeff-dz.dcl.c" +#define COEFF_DXX_DCL_FILE_NAME "3d.coeffs/3d.cube.size3/coeff-dxx.dcl.c" +#define COEFF_DXY_DCL_FILE_NAME "3d.coeffs/3d.cube.size3/coeff-dxy.dcl.c" +#define COEFF_DXZ_DCL_FILE_NAME "3d.coeffs/3d.cube.size3/coeff-dxz.dcl.c" +#define COEFF_DYY_DCL_FILE_NAME "3d.coeffs/3d.cube.size3/coeff-dyy.dcl.c" +#define COEFF_DYZ_DCL_FILE_NAME "3d.coeffs/3d.cube.size3/coeff-dyz.dcl.c" +#define COEFF_DZZ_DCL_FILE_NAME "3d.coeffs/3d.cube.size3/coeff-dzz.dcl.c" + +#define INTERP_I_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size3/interp-I.compute.c" +#define INTERP_DX_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size3/interp-dx.compute.c" +#define INTERP_DY_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size3/interp-dy.compute.c" +#define INTERP_DZ_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size3/interp-dz.compute.c" +#define INTERP_DXX_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size3/interp-dxx.compute.c" +#define INTERP_DXY_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size3/interp-dxy.compute.c" +#define INTERP_DXZ_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size3/interp-dxz.compute.c" +#define INTERP_DYY_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size3/interp-dyy.compute.c" +#define INTERP_DYZ_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size3/interp-dyz.compute.c" +#define INTERP_DZZ_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size3/interp-dzz.compute.c" + +#define COEFF_I_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order2.smooth0/coeff-I.compute.c" +#define COEFF_DX_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order2.smooth0/coeff-dx.compute.c" +#define COEFF_DY_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order2.smooth0/coeff-dy.compute.c" +#define COEFF_DZ_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order2.smooth0/coeff-dz.compute.c" +#define COEFF_DXX_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order2.smooth0/coeff-dxx.compute.c" +#define COEFF_DXY_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order2.smooth0/coeff-dxy.compute.c" +#define COEFF_DXZ_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order2.smooth0/coeff-dxz.compute.c" +#define COEFF_DYY_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order2.smooth0/coeff-dyy.compute.c" +#define COEFF_DYZ_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order2.smooth0/coeff-dyz.compute.c" +#define COEFF_DZZ_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order2.smooth0/coeff-dzz.compute.c" + +/* actual code */ +#include "template.c" diff --git a/src/GeneralizedPolynomial-Uniform/3d.cube.order3.smooth0.c b/src/GeneralizedPolynomial-Uniform/3d.cube.order3.smooth0.c new file mode 100644 index 0000000..72be322 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.cube.order3.smooth0.c @@ -0,0 +1,67 @@ +#include <math.h> +#include <limits.h> +#include <stdlib.h> +#include <string.h> +#include <stdio.h> + +#include "util_ErrorCodes.h" +#include "cctk.h" +#include "InterpLocalUniform.h" + +/* function prototype */ +#define FUNCTION_NAME LocalInterp_ILU_3d_cube_o3_s0 +#include "template.h" + +#define N_DIMS 3 +#define MOLECULE_SIZE 4 + +/* which derivative ops do we support? */ +#define HAVE_OP_I +#define HAVE_OP_DX +#define HAVE_OP_DY +#define HAVE_OP_DZ +#define HAVE_OP_DXX +#define HAVE_OP_DXY +#define HAVE_OP_DXZ +#define HAVE_OP_DYY +#define HAVE_OP_DYZ +#define HAVE_OP_DZZ + +#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_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" +#define COEFF_DZ_DCL_FILE_NAME "3d.coeffs/3d.cube.size4/coeff-dz.dcl.c" +#define COEFF_DXX_DCL_FILE_NAME "3d.coeffs/3d.cube.size4/coeff-dxx.dcl.c" +#define COEFF_DXY_DCL_FILE_NAME "3d.coeffs/3d.cube.size4/coeff-dxy.dcl.c" +#define COEFF_DXZ_DCL_FILE_NAME "3d.coeffs/3d.cube.size4/coeff-dxz.dcl.c" +#define COEFF_DYY_DCL_FILE_NAME "3d.coeffs/3d.cube.size4/coeff-dyy.dcl.c" +#define COEFF_DYZ_DCL_FILE_NAME "3d.coeffs/3d.cube.size4/coeff-dyz.dcl.c" +#define COEFF_DZZ_DCL_FILE_NAME "3d.coeffs/3d.cube.size4/coeff-dzz.dcl.c" + +#define INTERP_I_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size4/interp-I.compute.c" +#define INTERP_DX_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size4/interp-dx.compute.c" +#define INTERP_DY_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size4/interp-dy.compute.c" +#define INTERP_DZ_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size4/interp-dz.compute.c" +#define INTERP_DXX_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size4/interp-dxx.compute.c" +#define INTERP_DXY_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size4/interp-dxy.compute.c" +#define INTERP_DXZ_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size4/interp-dxz.compute.c" +#define INTERP_DYY_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size4/interp-dyy.compute.c" +#define INTERP_DYZ_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size4/interp-dyz.compute.c" +#define INTERP_DZZ_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size4/interp-dzz.compute.c" + +#define COEFF_I_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order3.smooth0/coeff-I.compute.c" +#define COEFF_DX_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order3.smooth0/coeff-dx.compute.c" +#define COEFF_DY_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order3.smooth0/coeff-dy.compute.c" +#define COEFF_DZ_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order3.smooth0/coeff-dz.compute.c" +#define COEFF_DXX_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order3.smooth0/coeff-dxx.compute.c" +#define COEFF_DXY_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order3.smooth0/coeff-dxy.compute.c" +#define COEFF_DXZ_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order3.smooth0/coeff-dxz.compute.c" +#define COEFF_DYY_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order3.smooth0/coeff-dyy.compute.c" +#define COEFF_DYZ_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order3.smooth0/coeff-dyz.compute.c" +#define COEFF_DZZ_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order3.smooth0/coeff-dzz.compute.c" + +/* actual code */ +#include "template.c" diff --git a/src/GeneralizedPolynomial-Uniform/3d.cube.order4.smooth0.c b/src/GeneralizedPolynomial-Uniform/3d.cube.order4.smooth0.c new file mode 100644 index 0000000..907931a --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.cube.order4.smooth0.c @@ -0,0 +1,67 @@ +#include <math.h> +#include <limits.h> +#include <stdlib.h> +#include <string.h> +#include <stdio.h> + +#include "util_ErrorCodes.h" +#include "cctk.h" +#include "InterpLocalUniform.h" + +/* function prototype */ +#define FUNCTION_NAME LocalInterp_ILU_3d_cube_o4_s0 +#include "template.h" + +#define N_DIMS 3 +#define MOLECULE_SIZE 5 + +/* which derivative ops do we support? */ +#define HAVE_OP_I +#define HAVE_OP_DX +#define HAVE_OP_DY +#define HAVE_OP_DZ +#define HAVE_OP_DXX +#define HAVE_OP_DXY +#define HAVE_OP_DXZ +#define HAVE_OP_DYY +#define HAVE_OP_DYZ +#define HAVE_OP_DZZ + +#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_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" +#define COEFF_DZ_DCL_FILE_NAME "3d.coeffs/3d.cube.size5/coeff-dz.dcl.c" +#define COEFF_DXX_DCL_FILE_NAME "3d.coeffs/3d.cube.size5/coeff-dxx.dcl.c" +#define COEFF_DXY_DCL_FILE_NAME "3d.coeffs/3d.cube.size5/coeff-dxy.dcl.c" +#define COEFF_DXZ_DCL_FILE_NAME "3d.coeffs/3d.cube.size5/coeff-dxz.dcl.c" +#define COEFF_DYY_DCL_FILE_NAME "3d.coeffs/3d.cube.size5/coeff-dyy.dcl.c" +#define COEFF_DYZ_DCL_FILE_NAME "3d.coeffs/3d.cube.size5/coeff-dyz.dcl.c" +#define COEFF_DZZ_DCL_FILE_NAME "3d.coeffs/3d.cube.size5/coeff-dzz.dcl.c" + +#define INTERP_I_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size5/interp-I.compute.c" +#define INTERP_DX_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size5/interp-dx.compute.c" +#define INTERP_DY_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size5/interp-dy.compute.c" +#define INTERP_DZ_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size5/interp-dz.compute.c" +#define INTERP_DXX_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size5/interp-dxx.compute.c" +#define INTERP_DXY_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size5/interp-dxy.compute.c" +#define INTERP_DXZ_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size5/interp-dxz.compute.c" +#define INTERP_DYY_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size5/interp-dyy.compute.c" +#define INTERP_DYZ_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size5/interp-dyz.compute.c" +#define INTERP_DZZ_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.size5/interp-dzz.compute.c" + +#define COEFF_I_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order4.smooth0/coeff-I.compute.c" +#define COEFF_DX_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order4.smooth0/coeff-dx.compute.c" +#define COEFF_DY_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order4.smooth0/coeff-dy.compute.c" +#define COEFF_DZ_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order4.smooth0/coeff-dz.compute.c" +#define COEFF_DXX_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order4.smooth0/coeff-dxx.compute.c" +#define COEFF_DXY_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order4.smooth0/coeff-dxy.compute.c" +#define COEFF_DXZ_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order4.smooth0/coeff-dxz.compute.c" +#define COEFF_DYY_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order4.smooth0/coeff-dyy.compute.c" +#define COEFF_DYZ_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order4.smooth0/coeff-dyz.compute.c" +#define COEFF_DZZ_COMPUTE_FILE_NAME "3d.coeffs/3d.cube.order4.smooth0/coeff-dzz.compute.c" + +/* actual code */ +#include "template.c" diff --git a/src/GeneralizedPolynomial-Uniform/3d.log b/src/GeneralizedPolynomial-Uniform/3d.log new file mode 100644 index 0000000..cc5db9f --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.log @@ -0,0 +1,40705 @@ + |\^/| Maple 7 (IBM INTEL LINUX) +._|\| |/|_. Copyright (c) 2001 by Waterloo Maple Inc. + \ MAPLE / All rights reserved. Maple is a registered trademark of + <____ ____> Waterloo Maple Inc. + | Type ? for help. +# util.maple -- misc utility routines +# $Id: util.maple,v 1.1 2001/06/29 09:36:22 jthorn Exp $ +> +# +# C_str - codegen[C](), but returning its result as a Maple string +# fix_rationals - convert numbers to RATIONAL() calls +# nonmatching_names - find names in a list which *don't* have a specified prefix +# sprint_numeric_list - convert a numeric list to a valid C identifier suffix +# print_name_list_dcl - print a C declaration for a list of names +# +# hypercube_points - compute all (integer) points in an N-dimensional hypercube +# +# ftruncate - truncate a file to zero length +# +> +################################################################################ +################################################################################ +################################################################################ +> +# +# This function is a wrapper around codegen[C]() which returns the +# genenerated code explictly as a Maple string. +# +# Arguments: +# expr = (in) The expression for which code is to be generated. +# ... = (in) Any further arguments are taken as options to be passed +# to codegen[C]() +# +# Results: +# The function returns a maple string of C code. +# +> C_str := +> proc(expr::algebraic) +> local tempname, str, temp; +> +# name of temp file +# FIXME: should use process number to ensure uniqueness +> tempname := "/tmp/C_str.tmp.c"; +> +# truncate temp file to zero length +> fopen(tempname, WRITE); +> fclose(tempname); +> +# generate the code +> codegen[C](args, filename=tempname); +> +# read the code back in +> str := ""; +> while true +> do +> temp := readline(tempname); +> if (temp = 0) +> then break; +> end if; +> str := cat(str, temp); +> end do; +> fclose(tempname); +> +# strip off the leading " t0 = " +> return op(2,sscanf(str, "%s = %[^;];")); +> end proc; +C_str := proc(expr::algebraic) +local tempname, str, temp; + tempname := "/tmp/C_str.tmp.c"; + fopen(tempname, WRITE); + fclose(tempname); + codegen[C](args, filename = tempname); + str := ""; + do + temp := readline(tempname); + if temp = 0 then break end if; + str := cat(str, temp) + end do; + fclose(tempname); + return op(2, sscanf(str, "%s = %[^;];")) +end proc + +> +################################################################################ +> +# +# This function converts all {integer, rational} subexpressions of its +# input except integer exponents and -1 factors in products, into function +# calls +# RATIONAL(num,den) +# This is useful in conjunction with the C() library function, since +# +# C( (1/3) * foo * bar ) +# t0 = foo*bar/3; +# +# generates a (slow) division (and runs the risk of mixed-mode-arithmetic +# problems), while +# +# C((1.0/3.0) * foo * bar); +# t0 = 0.3333333333*foo*bar; +# +# suffers from roundoff error. With this function, +# +# fix_rationals((1/3) * foo * bar); +# RATIONAL(1,3) foo bar +# C(%); +# t0 = RATIONAL(1.0,3.0)*foo*bar; +# +# which a C preprocessor macro can easily convert to the desired +# +# t0 = (1.0/3.0)*foo*bar; +# +# Additionally, this function can be told to leave certain types of +# subexpressions unconverged. For example, +# fix_rationals(expr, type, specfunc(integer, DATA)); +# will leave all subexpressions of the form DATA(integer arguments) +# unconverted. +# +# Arguments: +# expr = (in) The expression to be converted. +# inert_fn = (optional in) +# If specified, this argument should be a Boolean procedure +# or the name of a Boolean procedure. This procedure should +# take one or more argument, and return true if and only if +# the first argument should *not* be converted, i.e. if we +# should leave this expression unchanged. See the last +# example above. +# ... = (optional in) +# Any further arguments are passed as additional arguments to +# the inert_fn procedure. +# +> fix_rationals := +> proc( +> expr::{ +> algebraic, name = algebraic, +> list({algebraic, name = algebraic}), +> set ({algebraic, name = algebraic}) +> }, +> inert_fn::{name, procedure} +> ) +> local nn, k, +> base, power, fbase, fpower, +> fn, fn_args_list, +> num, den, mult; +> +# do we want to convert this expression? +> if ((nargs >= 2) and inert_fn(expr, args[3..nargs])) +> then return expr; +> end if; +> +# recurse over lists and sets +> if (type(expr, {list,set})) +> then return map(fix_rationals, expr, args[2..nargs]); +> end if; +> +# recurse over equation right hand sides +> if (type(expr, name = algebraic)) +> then return ( lhs(expr) = fix_rationals(rhs(expr), args[2..nargs]) ); +> end if; +> +# recurse over functions other than RATIONAL() +> if (type(expr, function)) +> then +> fn := op(0, expr); +> if (fn <> 'RATIONAL') +> then +> fn_args_list := [op(expr)]; +> fn_args_list := map(fix_rationals, fn_args_list, args[2..nargs]); +> fn; return '%'( op(fn_args_list) ); +> end if; +> end if; +> +> nn := nops(expr); +> +# recurse over sums +> if (type(expr, `+`)) +> then return sum('fix_rationals(op(k,expr), args[2..nargs])', 'k'=1..nn); +> end if; +> +# recurse over products +# ... leaving leading -1 factors intact, i.e. not converted to RATIONAL(-1,1) +> if (type(expr, `*`)) +> then +> if (op(1, expr) = -1) +> then return -1*fix_rationals(remove(type, expr, 'identical(-1)'), +> args[2..nargs]); +> else return product('fix_rationals(op(k,expr), args[2..nargs])', +> 'k'=1..nn); +> end if; +> end if; +> +# recurse over powers +# ... leaving integer exponents intact +> if (type(expr, `^`)) +> then +> base := op(1, expr); +> power := op(2, expr); +> +> fbase := fix_rationals(base, args[2..nargs]); +> if (type(power, integer)) +> then fpower := power; +> else fpower := fix_rationals(power, args[2..nargs]); +> end if; +> return fbase ^ fpower; +> end if; +> +# fix integers and fractions +> if (type(expr, integer)) +> then return 'RATIONAL'(expr, 1); +> end if; +> if (type(expr, fraction)) +> then +> num := op(1, expr); +> den := op(2, expr); +> +> return 'RATIONAL'(num, den); +> end if; +> +# turn Maple floating-point into integer fraction, then recursively fix that +> if (type(expr, float)) +> then +> mult := op(1, expr); +> power := op(2, expr); +> return fix_rationals(mult * 10^power, args[2..nargs]); +> end if; +> +# identity op on names +> if (type(expr, name)) +> then return expr; +> end if; +> +# unknown type +> error "%0", +> "unknown type for expr!", +> " whattype(expr) = ", whattype(expr), +> " expr = ", expr; +> end proc; +fix_rationals := proc(expr::{algebraic, name = algebraic, +list({algebraic, name = algebraic}), set({algebraic, name = algebraic})}, +inert_fn::{procedure, name}) +local nn, k, base, power, fbase, fpower, fn, fn_args_list, num, den, mult; + if 2 <= nargs and inert_fn(expr, args[3 .. nargs]) then return expr + end if; + if type(expr, {set, list}) then + return map(fix_rationals, expr, args[2 .. nargs]) + end if; + if type(expr, name = algebraic) then + return lhs(expr) = fix_rationals(rhs(expr), args[2 .. nargs]) + end if; + if type(expr, function) then + fn := op(0, expr); + if fn <> 'RATIONAL' then + fn_args_list := [op(expr)]; + fn_args_list := + map(fix_rationals, fn_args_list, args[2 .. nargs]); + fn; + return '%'(op(fn_args_list)) + end if + end if; + nn := nops(expr); + if type(expr, `+`) then return + sum('fix_rationals(op(k, expr), args[2 .. nargs])', 'k' = 1 .. nn) + end if; + if type(expr, `*`) then + if op(1, expr) = -1 then return -fix_rationals( + remove(type, expr, 'identical(-1)'), args[2 .. nargs]) + else return product('fix_rationals(op(k, expr), args[2 .. nargs])', + 'k' = 1 .. nn) + end if + end if; + if type(expr, `^`) then + base := op(1, expr); + power := op(2, expr); + fbase := fix_rationals(base, args[2 .. nargs]); + if type(power, integer) then fpower := power + else fpower := fix_rationals(power, args[2 .. nargs]) + end if; + return fbase^fpower + end if; + if type(expr, integer) then return 'RATIONAL'(expr, 1) end if; + if type(expr, fraction) then + num := op(1, expr); den := op(2, expr); return 'RATIONAL'(num, den) + end if; + if type(expr, float) then + mult := op(1, expr); + power := op(2, expr); + return fix_rationals(mult*10^power, args[2 .. nargs]) + end if; + if type(expr, name) then return expr end if; + error "%0", "unknown type for expr!", " whattype(expr) = ", + whattype(expr), " expr = ", expr +end proc + +> +################################################################################ +> +# +# This function finds names in a list which *don't* have a specified prefix. +# +# Arguments: +# name_list = A list of the names. +# prefix = The prefix we want to filter out. +# +# Results: +# This function returns the subset list of names which don't have the +# specified prefix. +# +> nonmatching_names := +> proc( name_list::list({name,string}), prefix::{name,string} ) +> +> select( proc(n) +> evalb(not StringTools[IsPrefix](prefix,n)); +> end proc +> , +> name_list +> ); +> end proc; +nonmatching_names := proc( +name_list::list({name, string}), prefix::{name, string}) + select(proc(n) evalb(not StringTools[IsPrefix](prefix, n)) end proc, + name_list) +end proc + +> +################################################################################ +> +# +# This function converts a numeric list to a string which is a valid +# C identifier suffix: elements are separated by "_", decimal points are +# replaced by "x", and all nonzero values have explicit +/- signs, which +# are replaced by "p"/"m". +# +# For example, [0,-3.5,+4] --> "0_m3x5_p4". +# +> sprint_numeric_list := +> proc(nlist::list(numeric)) +> +# generate preliminary string, eg "+0_-3.5_+4" +> map2(sprintf, "%+a", nlist); +> ListTools[Join](%, "_"); +> cat(op(%)); +> +# fixup bad characters +> StringTools[SubstituteAll](%, "+0", "0"); +> StringTools[CharacterMap](".+-", "xpm", %); +> +> return %; +> end proc; +sprint_numeric_list := proc(nlist::list(numeric)) + map2(sprintf, "%+a", nlist); + ListTools[Join](%, "_"); + cat(op(%)); + StringTools[SubstituteAll](%, "+0", "0"); + StringTools[CharacterMap](".+-", "xpm", %); + return % +end proc + +> +################################################################################ +> +# +# This function prints a C declaration for a list of names. +# +# Argument: +# name_list = A list of the names. +# name_type = The C type of the names, eg. "double". +# file_name = The file name to write the declaration to. This is +# truncated before writing. +# +> print_name_list_dcl := +> proc( name_list::list({name,string}), +> name_type::string, +> file_name::string ) +> local blanks, separator_string; +> +> ftruncate(file_name); +> +# a sequence of blanks with the same length as name_type +> seq(" ", i=1..length(name_type)); +> +# string to separate names +> separator_string := cat(",\n", %, " "); +> +> map(convert, name_list, string); +> ListTools[Join](%, separator_string); +> cat(op(%)); +> +> fprintf(file_name, +> "%s %s;\n", +> name_type, %); +> NULL; +> end proc; +print_name_list_dcl := proc( +name_list::list({name, string}), name_type::string, file_name::string) +local blanks, separator_string; + ftruncate(file_name); + seq(" ", i = 1 .. length(name_type)); + separator_string := cat(",\n", %, " "); + map(convert, name_list, string); + ListTools[Join](%, separator_string); + cat(op(%)); + fprintf(file_name, "%s %s;\n", name_type, %); + NULL +end proc + +> +################################################################################ +################################################################################ +################################################################################ +> +# +# This function computes a list of all the (integer) points in an +# N-dimensional hypercube, in lexicographic order. The present +# implementation requires N <= 4. +# +# Arguments: +# cmin,cmax = N-element lists of cube minimum/maximum coordinates. +# +# Results: +# The function returns a set of d-element lists giving the coordinates. +# For example, +# hypercube([0,0], [2,1] +# returns +# { [0,0], [0,1], [1,0], [1,1], [2,0], [2,1] } +> hypercube_points := +> proc(cmin::list(integer), cmax::list(integer)) +> local N, i,j,k,l; +> +> N := nops(cmin); +> if (nops(cmax) <> N) +> then error +> "must have same number of dimensions for min and max coordinates!"; +> fi; +> +> if (N = 1) +> then return [seq([i], i=cmin[1]..cmax[1])]; +> elif (N = 2) +> then return [ +> seq( +> seq([i,j], j=cmin[2]..cmax[2]), +> i=cmin[1]..cmax[1]) +> ]; +> elif (N = 3) +> then return [ +> seq( +> seq( +> seq([i,j,k], k=cmin[3]..cmax[3]), +> j=cmin[2]..cmax[2] ), +> i=cmin[1]..cmax[1]) +> ]; +> elif (N = 4) +> then return [ +> seq( +> seq( +> seq( +> seq([i,j,k,l], l=cmin[4]..cmax[4]), +> k=cmin[3]..cmax[3] ), +> j=cmin[2]..cmax[2]), +> i=cmin[1]..cmax[1]) +> ]; +> else +> error "implementation restriction: must have N <= 4, got %1!", N; +> fi; +> end proc; +hypercube_points := proc(cmin::list(integer), cmax::list(integer)) +local N, i, j, k, l; + N := nops(cmin); + if nops(cmax) <> N then error + "must have same number of dimensions for min and max coordinates!" + end if; + if N = 1 then return [seq([i], i = cmin[1] .. cmax[1])] + elif N = 2 then return + [seq(seq([i, j], j = cmin[2] .. cmax[2]), i = cmin[1] .. cmax[1])] + elif N = 3 then return [seq( + seq(seq([i, j, k], k = cmin[3] .. cmax[3]), j = cmin[2] .. cmax[2]) + , i = cmin[1] .. cmax[1])] + elif N = 4 then return [seq(seq(seq( + seq([i, j, k, l], l = cmin[4] .. cmax[4]), k = cmin[3] .. cmax[3]), + j = cmin[2] .. cmax[2]), i = cmin[1] .. cmax[1])] + else error "implementation restriction: must have N <= 4, got %1!", N + end if +end proc + +> +################################################################################ +################################################################################ +################################################################################ +> +# +# This function truncates a file to 0 length if it exists, or creates +# it at that length if it doesn't exist. +# +# Arguments: +# file_name = (in) The name of the file. +# +> ftruncate := +> proc(file_name::string) +> fopen(file_name, 'WRITE'); +> fclose(%); +> NULL; +> end proc; +ftruncate := + + proc(file_name::string) fopen(file_name, 'WRITE'); fclose(%); NULL end proc + +# GInterpolate.maple -- compute generalized interpolation formulas/coefficients +# $Id$ +> +# +# <<<representation of numbers, data values, etc>>> +# polynomial_interpolant - compute polynomial interpolant +# coeff_as_lc_of_data - coefficients of ... (linear combination of data) +# +# print_coeff__lc_of_data - print C code to compute coefficients +# print_data_var_assign - print C code to assign data-value variables +# print_interp_cmpt__lc_of_data - print C code for computation of interpolant +# +# coeff_name - name of coefficient of data at a given [m] coordinate +# data_var_name - name of variable storing data value at a given [m] coordinate +# +> +################################################################################ +> +# +# ***** representation of numbers, data values, etc ***** +# +# We use RATIONAL(p.0,q.0) to denote the rational number p/q. +# +# We use DATA(...) to represent the data values being interpolated at a +# specified [m] coordinate, where the arguments are the [m] coordinates. +# +# We use COEFF(...) to represent the molecule coefficient at a specified +# [m] coordinate, where the arguments are the [m] coordinates. +# +# For example, the usual 1-D centered 2nd order 1st derivative molecule +# would be written +# RATIONAL(-1.0,2.0)*DATA(-1) + RATIONA(1.0,2.0)*DATA(1) +# and its coefficients as +# COEFF(-1) = RATIONAL(-1.0,2.0) +# COEFF(1) = RATIONAL(1.0,2.0) +# +> +################################################################################ +################################################################################ +################################################################################ +> +# +# This function computes a polynomial interpolant in any number of dimensions. +# +# Arguments: +# fn = The interpolation function. This should be a procedure in the +# coordinates, having the coefficients as global variables. For +# example, +# proc(x,y) c00 + c10*x + c01*y end proc +# coeff_list = A set of the interpolation coefficients (coefficients in +# the interpolation function), for example [c00, c10, c01]. +# coord_list = A list of the coordinates (independent variables in the +# interpolation function), for example [x,y]. +# posn_list = A list of positions (each a list of numeric values) where the +# interpolant is to use data, for example hypercube([0,0], [1,1]). +# Any positions may be used; if they're redundant (as in the +# example) the least-squares interpolant is computed. +# +# Results: +# This function returns the interpolating polynomial, in the form of +# an algebraic expression in the coordinates and the data values. +# +> polynomial_interpolant := +> proc( +> fn::procedure, coeff_list::list(name), +> coord_list::list(name), posn_list::list(list(numeric)) +> ) +> local posn, data_eqns, coeff_eqns; +> +# coefficients of interpolating polynomial +> data_eqns := { seq( fn(op(posn))='DATA'(op(posn)) , posn=posn_list ) }; +> coeff_eqns := linalg[leastsqrs](data_eqns, {op(coeff_list)}); +> if (has(coeff_eqns, '_t')) +> then error "interpolation coefficients aren't uniquely determined!"; +> end if; +> +# interpolant as a polynomial in the coordinates +> return subs(coeff_eqns, eval(fn))(op(coord_list)); +> end proc; +polynomial_interpolant := proc(fn::procedure, coeff_list::list(name), +coord_list::list(name), posn_list::list(list(numeric))) +local posn, data_eqns, coeff_eqns; + data_eqns := {seq(fn(op(posn)) = 'DATA'(op(posn)), posn = posn_list)}; + coeff_eqns := linalg[leastsqrs](data_eqns, {op(coeff_list)}); + if has(coeff_eqns, '_t') then + error "interpolation coefficients aren't uniquely determined!" + end if; + return subs(coeff_eqns, eval(fn))(op(coord_list)) +end proc + +> +################################################################################ +> +# +# This function takes as input an interpolating polynomial, expresses +# it as a linear combination of the data values, and returns the coefficeints +# of that form. +# +# Arguments: +# interpolant = The interpolating polynomial (an algebraic expression +# in the coordinates and the data values). +# posn_list = The same list of positions as was used to compute the +# interpolating polynomial. +# +# Results: +# This function returns the coefficients, as a list of equations of the +# form COEFF(...) = value , where each value is a polynomial in the +# coordinates. The order of the list matches that of posn_list. +# +> coeff_as_lc_of_data := +> proc( +> interpolant::algebraic, +> posn_list::list(list(numeric)) +> ) +> local data_list, interpolant_as_lc_of_data; +> +# interpolant as a linear combination of the data values +> data_list := [ seq( 'DATA'(op(posn)) , posn=posn_list ) ]; +> interpolant_as_lc_of_data := collect(interpolant, data_list); +> +# coefficients of the data values in the linear combination +> return map( +> proc(posn::list(numeric)) +> coeff(interpolant_as_lc_of_data, DATA(op(posn))); +> 'COEFF'(op(posn)) = %; +> end proc +> , +> posn_list +> ); +> end proc; +coeff_as_lc_of_data := proc( +interpolant::algebraic, posn_list::list(list(numeric))) +local data_list, interpolant_as_lc_of_data; + data_list := [seq('DATA'(op(posn)), posn = posn_list)]; + interpolant_as_lc_of_data := collect(interpolant, data_list); + return map(proc(posn::list(numeric)) + coeff(interpolant_as_lc_of_data, DATA(op(posn))); + 'COEFF'(op(posn)) = % + end proc, posn_list) +end proc + +> +################################################################################ +################################################################################ +################################################################################ +> +# +# This function prints C expressions for the coefficients of an +# interpolating polynomial. (The polynomial is expressed as linear +# combinations of the data values with coefficients which are +# RATIONAL(p,q) calls.) +# +# Arguments: +# coeff_list = A list of the coefficients, as returned from +# coeff_as_lc_of_data() . +# coeff_name_prefix = A prefix string for the coefficient names. +# temp_name_type = The C type to be used for Maple-introduced temporary +# names, eg. "double". +# file_name = The file name to write the coefficients to. This is +# truncated before writing. +# +> print_coeff__lc_of_data := +> proc( coeff_list::list(specfunc(numeric,COEFF) = algebraic), +> coeff_name_prefix::string, +> temp_name_type::string, +> file_name::string ) +> global `codegen/C/function/informed`; +> local coeff_list2, cmpt_list, temp_name_list; +> +# convert LHS of each equation from a COEFF() call (eg COEFF(-1,+1)) +# to a Maple/C variable name (eg coeff_I_m1_p1) +> coeff_list2 := map( +> proc(coeff_eqn::specfunc(numeric,COEFF) = algebraic) +> local posn; +> posn := [op(lhs(coeff_eqn))]; +> coeff_name(posn,coeff_name_prefix); +> convert(%, name); # codegen[C] wants LHS +> # to be an actual Maple *name* +> % = fix_rationals(rhs(coeff_eqn)); +> end proc +> , +> coeff_list +> ); +> +# +# generate the C code +# +> +# tell codegen[C] not to warn about unknown RATIONAL() and DATA() "fn calls" +# via undocumented :( global table +> `codegen/C/function/informed`['RATIONAL'] := true; +> `codegen/C/function/informed`['DATA'] := true; +> +> ftruncate(file_name); +> +# optimized computation sequence for all the coefficients +# (may use local variables t0,t1,t2,...) +> cmpt_list := [codegen[optimize](coeff_list2, tryhard)]; +> +# list of the t0,t1,t2,... local variables +> temp_name_list := nonmatching_names(map(lhs,cmpt_list), coeff_name_prefix); +> +# declare the t0,t1,t2,... local variables (if there are any) +> if (nops(temp_name_list) > 0) +> then print_name_list_dcl(%, temp_name_type, file_name); +> fi; +> +# now print the optimized computation sequence +> codegen[C](cmpt_list, filename=file_name); +> +> NULL; +> end proc; +print_coeff__lc_of_data := proc( +coeff_list::list(specfunc(numeric, COEFF) = algebraic), +coeff_name_prefix::string, temp_name_type::string, file_name::string) +local coeff_list2, cmpt_list, temp_name_list; +global `codegen/C/function/informed`; + coeff_list2 := map(proc( + coeff_eqn::(specfunc(numeric, COEFF) = algebraic)) + local posn; + posn := [op(lhs(coeff_eqn))]; + coeff_name(posn, coeff_name_prefix); + convert(%, name); + % = fix_rationals(rhs(coeff_eqn)) + end proc, coeff_list); + `codegen/C/function/informed`['RATIONAL'] := true; + `codegen/C/function/informed`['DATA'] := true; + ftruncate(file_name); + cmpt_list := [codegen[optimize](coeff_list2, tryhard)]; + temp_name_list := + nonmatching_names(map(lhs, cmpt_list), coeff_name_prefix); + if 0 < nops(temp_name_list) then + print_name_list_dcl(%, temp_name_type, file_name) + end if; + codegen[C](cmpt_list, filename = file_name); + NULL +end proc + +> +################################################################################ +> +# +# This function prints a sequence of C expression to assign the data-value +# variables. +# +# Arguments: +# posn_list = The same list of positions as was used to compute the +# interpolating polynomial. +# data_var_name_prefix = A prefix string for the data variable names. +# file_name = The file name to write the coefficients to. This is +# truncated before writing. +# +> print_data_var_assign := +> proc( +> posn_list::list(list(numeric)), +> data_var_name_prefix::string, +> file_name::string +> ) +> +> ftruncate(file_name); +> +> map( +> proc(posn::list(numeric)) +> fprintf(file_name, +> "%s = %a;\n", +> data_var_name(posn,data_var_name_prefix), +> DATA(op(posn))); +> end proc +> , +> posn_list +> ); +> +> NULL; +> end proc; +print_data_var_assign := proc(posn_list::list(list(numeric)), +data_var_name_prefix::string, file_name::string) + ftruncate(file_name); + map(proc(posn::list(numeric)) + fprintf(file_name, "%s = %a;\n", + data_var_name(posn, data_var_name_prefix), DATA(op(posn))) + end proc, posn_list); + NULL +end proc + +> +################################################################################ +> +# +# This function prints a C expression to compute the interpolant, +# using the coefficients computed by print_coeff__lc_of_data() +# (i.e. expressing the interpolant as a linear combination of the +# data values). +# +# Arguments: +# posn_list = The same list of positions as was used to compute the +# interpolating polynomial. +# result_var_name = The (string) name of the variable to which the +# result is to be assigned. +# coeff_name_prefix = A prefix string for the coefficient names. +# data_var_name_prefix = A prefix string for the data variable names. +# file_name = The file name to write the coefficients to. This is +# truncated before writing. +# +> print_interp_cmpt__lc_of_data := +> proc( +> posn_list::list(list(numeric)), +> result_var_name::string, +> coeff_name_prefix::string, +> data_var_name_prefix::string, +> file_name::string +> ) +> +> ftruncate(file_name); +> fprintf(file_name, "%s =\n", result_var_name); +> +# list of "coeff*data_var" terms +> map( +> proc(posn::list(numeric)) +> sprintf("%s*%s", +> coeff_name(posn,coeff_name_prefix), +> data_var_name(posn,data_var_name_prefix)); +> end proc +> , +> posn_list +> ); +> +> ListTools[Join](%, "\n\t+ "); +> cat(op(%)); +> +> fprintf(file_name, "\t%s;\n", %); +> NULL; +> end proc; +print_interp_cmpt__lc_of_data := proc(posn_list::list(list(numeric)), +result_var_name::string, coeff_name_prefix::string, +data_var_name_prefix::string, file_name::string) + ftruncate(file_name); + fprintf(file_name, "%s =\n", result_var_name); + map(proc(posn::list(numeric)) + sprintf("%s*%s", coeff_name(posn, coeff_name_prefix), + data_var_name(posn, data_var_name_prefix)) + end proc, posn_list); + ListTools[Join](%, "\n\t+ "); + cat(op(%)); + fprintf(file_name, "\t%s;\n", %); + NULL +end proc + +> +################################################################################ +################################################################################ +################################################################################ +> +# +# This function computes the name of the coefficient of the data at a +# given [m] position, i.e. it encapsulates our naming convention for this. +# +# Arguments: +# posn = (in) The [m] coordinates. +# name_prefix = A prefix string for the coefficient name. +# +# Results: +# The function returns the coefficient, as a Maple string. +# +> coeff_name := +> proc(posn::list(numeric), name_prefix::string) +> cat(name_prefix, sprint_numeric_list(posn)); +> end proc; +coeff_name := proc(posn::list(numeric), name_prefix::string) + cat(name_prefix, sprint_numeric_list(posn)) +end proc + +> +################################################################################ +> +# +# This function computes the name of the variable in which the C code +# will store the input data at a given [m] position, i.e. it encapsulates +# our naming convention for this. +# +# Arguments: +# posn = (in) The [m] coordinates. +# name_prefix = A prefix string for the variable name. +# +# Results: +# The function returns the variable name, as a Maple string. +# +> data_var_name := +> proc(posn::list(numeric), name_prefix::string) +> cat(name_prefix, sprint_numeric_list(posn)); +> end proc; +data_var_name := proc(posn::list(numeric), name_prefix::string) + cat(name_prefix, sprint_numeric_list(posn)) +end proc + +# Maple code to compute 3-D Lagrange interpolation coefficients (orders 1-4) +# $Id$ +> +################################################################################ +> +# +# interpolating functions +# +> +> fn_3d_order1 := +> proc(x,y,z) +# z^0 ----------- +> + c010*y +> + c000 + c100*x +# z^1 ----------- +> + c001*z +> end proc; + fn_3d_order1 := proc(x, y, z) c010*y + c000 + c100*x + c001*z end proc + +> +> fn_3d_order2 := +> proc(x,y,z) +# z^0 -------------------------- +> + c020*y^2 +> + c010*y + c110*x*y +> + c000 + c100*x + c200*x^2 +# z^1 -------------------------- +> + c011*y*z +> + c001*z + c101*x*z +# z^2 -------------------------- +> + c002*z^2 +> end proc; +fn_3d_order2 := proc(x, y, z) + c020*y^2 + c010*y + c110*x*y + c000 + c100*x + c200*x^2 + c011*y*z + + c001*z + c101*x*z + c002*z^2 +end proc + +> +> fn_3d_order3 := +> proc(x,y,z) +# z^0 ------------------------------------------- +> + c030*y^3 +> + c020*y^2 + c120*x*y^2 +> + c010*y + c110*x*y + c210*x^2*y +> + c000 + c100*x + c200*x^2 + c300*x^3 +# z^1 ------------------------------------------- +> + c021*y^2*z +> + c011*y *z + c111*x*y*z +> + c001 *z + c101*x *z + c201*x^2*z +# z^2 ------------------------------------------- +> + c012*y*z^2 +> + c002 *z^2 + c102*x*z^2 +# z^3 ------------------------------------------- +> + c003 *z^3 +> end proc; +fn_3d_order3 := proc(x, y, z) + c030*y^3 + c020*y^2 + c120*x*y^2 + c010*y + c110*x*y + c210*x^2*y + + c000 + c100*x + c200*x^2 + c300*x^3 + c021*y^2*z + c011*y*z + + c111*x*y*z + c001*z + c101*x*z + c201*x^2*z + c012*y*z^2 + c002*z^2 + + c102*x*z^2 + c003*z^3 +end proc + +> +> fn_3d_order4 := +> proc(x,y,z) +# z^0 -------------------------------------------------------- +> + c040*y^4 +> + c030*y^3 + c130*x*y^3 +> + c020*y^2 + c120*x*y^2 + c220*x^2*y^2 +> + c010*y + c110*x*y + c210*x^2*y + c310*x^3*y +> + c000 + c100*x + c200*x^2 + c300*x^3 + c400*x^4 +# z^1 ------------------------------------------- +> + c031*y^3*z +> + c021*y^2*z + c121*x*y^2*z +> + c011*y *z + c111*x*y *z + c211*x^2*y*z +> + c001 *z + c101*x *z + c201*x^2 *z + c301*x^3*z +# z^2 ------------------------------------------- +> + c022*y^2*z^2 +> + c012*y *z^2 + c112*x*y*z^2 +> + c002 *z^2 + c102*x *z^2 + c202*x^2*z^2 +# z^3 ------------------------------------------- +> + c013*y *z^3 +> + c003 *z^3 + c103*x *z^3 +# z^4 ------------------------------------------- +> + c004 *z^4 +> end; +fn_3d_order4 := proc(x, y, z) + c102*x*z^2 + c012*y*z^2 + c111*x*y*z + c121*x*y^2*z + c211*x^2*y*z + + c112*x*y*z^2 + c110*x*y + c011*y*z + c101*x*z + c120*x*y^2 + + c210*x^2*y + c021*y^2*z + c201*x^2*z + c000 + c100*x + c001*z + + c020*y^2 + c200*x^2 + c002*z^2 + c030*y^3 + c300*x^3 + c003*z^3 + + c040*y^4 + c400*x^4 + c004*z^4 + c010*y + c130*x*y^3 + c220*x^2*y^2 + + c310*x^3*y + c031*y^3*z + c301*x^3*z + c022*y^2*z^2 + c202*x^2*z^2 + + c013*y*z^3 + c103*x*z^3 +end proc + +> +################################################################################ +> +# +# coefficients in interpolating functions +# +> +> coeff_list_3d_order1 := [ +> # z^0 ----- +> c010, +> c000, c100, +> # z^1 ----- +> c001 +> ]; + coeff_list_3d_order1 := [c010, c000, c100, c001] + +> coeff_list_3d_order2 := [ +> # z^0 ----------- +> c020, +> c010, c110, +> c000, c100, c200, +> # z^1 ----------- +> c011, +> c001, c101, +> # z^2 ----------- +> c002 +> ]; +coeff_list_3d_order2 := + + [c020, c010, c110, c000, c100, c200, c011, c001, c101, c002] + +> coeff_list_3d_order3 := [ +> # z^0 ---------------- +> c030, +> c020, c120, +> c010, c110, c210, +> c000, c100, c200, c300, +> # z^1 ---------------- +> c021, +> c011, c111, +> c001, c101, c201, +> # z^2 ---------------- +> c012, +> c002, c102, +> # z^3 ---------------- +> c003 +> ]; +coeff_list_3d_order3 := [c030, c020, c120, c010, c110, c210, c000, c100, c200, + + c300, c021, c011, c111, c001, c101, c201, c012, c002, c102, c003] + +> coeff_list_3d_order4 := [ +> # z^0 ----------------------- +> c040, +> c030, c130, +> c020, c120, c220, +> c010, c110, c210, c310, +> c000, c100, c200, c300, c400, +> # z^1 ----------------------- +> c031, +> c021, c121, +> c011, c111, c211, +> c001, c101, c201, c301, +> # z^2 ----------------------- +> c022, +> c012, c112, +> c002, c102, c202, +> # z^3 ----------------------- +> c013, +> c003, c103, +> # z^4 ----------------------- +> c004 +> ]; +coeff_list_3d_order4 := [c040, c030, c130, c020, c120, c220, c010, c110, c210, + + c310, c000, c100, c200, c300, c400, c031, c021, c121, c011, c111, c211, + + c001, c101, c201, c301, c022, c012, c112, c002, c102, c202, c013, c003, + + c103, c004] + +> +################################################################################ +> +# +# coordinates and interpolation points +# +> +> coord_list_3d := [x,y,z]; + coord_list_3d := [x, y, z] + +> +# generate points in Fortran ordering +> posn_list_3d_size2 := map(ListTools[Reverse], hypercube_points([ 0, 0, 0], [+1,+1,+1])); +posn_list_3d_size2 := [[0, 0, 0], [1, 0, 0], [0, 1, 0], [1, 1, 0], [0, 0, 1], + + [1, 0, 1], [0, 1, 1], [1, 1, 1]] + +> posn_list_3d_size3 := map(ListTools[Reverse], hypercube_points([-1,-1,-1], [+1,+1,+1])); +posn_list_3d_size3 := [[-1, -1, -1], [0, -1, -1], [1, -1, -1], [-1, 0, -1], + + [0, 0, -1], [1, 0, -1], [-1, 1, -1], [0, 1, -1], [1, 1, -1], [-1, -1, 0], + + [0, -1, 0], [1, -1, 0], [-1, 0, 0], [0, 0, 0], [1, 0, 0], [-1, 1, 0], + + [0, 1, 0], [1, 1, 0], [-1, -1, 1], [0, -1, 1], [1, -1, 1], [-1, 0, 1], + + [0, 0, 1], [1, 0, 1], [-1, 1, 1], [0, 1, 1], [1, 1, 1]] + +> posn_list_3d_size4 := map(ListTools[Reverse], hypercube_points([-1,-1,-1], [+2,+2,+2])); +posn_list_3d_size4 := [[-1, -1, -1], [0, -1, -1], [1, -1, -1], [2, -1, -1], + + [-1, 0, -1], [0, 0, -1], [1, 0, -1], [2, 0, -1], [-1, 1, -1], [0, 1, -1], + + [1, 1, -1], [2, 1, -1], [-1, 2, -1], [0, 2, -1], [1, 2, -1], [2, 2, -1], + + [-1, -1, 0], [0, -1, 0], [1, -1, 0], [2, -1, 0], [-1, 0, 0], [0, 0, 0], + + [1, 0, 0], [2, 0, 0], [-1, 1, 0], [0, 1, 0], [1, 1, 0], [2, 1, 0], + + [-1, 2, 0], [0, 2, 0], [1, 2, 0], [2, 2, 0], [-1, -1, 1], [0, -1, 1], + + [1, -1, 1], [2, -1, 1], [-1, 0, 1], [0, 0, 1], [1, 0, 1], [2, 0, 1], + + [-1, 1, 1], [0, 1, 1], [1, 1, 1], [2, 1, 1], [-1, 2, 1], [0, 2, 1], + + [1, 2, 1], [2, 2, 1], [-1, -1, 2], [0, -1, 2], [1, -1, 2], [2, -1, 2], + + [-1, 0, 2], [0, 0, 2], [1, 0, 2], [2, 0, 2], [-1, 1, 2], [0, 1, 2], + + [1, 1, 2], [2, 1, 2], [-1, 2, 2], [0, 2, 2], [1, 2, 2], [2, 2, 2]] + +> posn_list_3d_size5 := map(ListTools[Reverse], hypercube_points([-2,-2,-2], [+2,+2,+2])); +posn_list_3d_size5 := [[-2, -2, -2], [-1, -2, -2], [0, -2, -2], [1, -2, -2], + + [2, -2, -2], [-2, -1, -2], [-1, -1, -2], [0, -1, -2], [1, -1, -2], + + [2, -1, -2], [-2, 0, -2], [-1, 0, -2], [0, 0, -2], [1, 0, -2], [2, 0, -2], + + [-2, 1, -2], [-1, 1, -2], [0, 1, -2], [1, 1, -2], [2, 1, -2], [-2, 2, -2], + + [-1, 2, -2], [0, 2, -2], [1, 2, -2], [2, 2, -2], [-2, -2, -1], [-1, -2, -1], + + [0, -2, -1], [1, -2, -1], [2, -2, -1], [-2, -1, -1], [-1, -1, -1], + + [0, -1, -1], [1, -1, -1], [2, -1, -1], [-2, 0, -1], [-1, 0, -1], [0, 0, -1], + + [1, 0, -1], [2, 0, -1], [-2, 1, -1], [-1, 1, -1], [0, 1, -1], [1, 1, -1], + + [2, 1, -1], [-2, 2, -1], [-1, 2, -1], [0, 2, -1], [1, 2, -1], [2, 2, -1], + + [-2, -2, 0], [-1, -2, 0], [0, -2, 0], [1, -2, 0], [2, -2, 0], [-2, -1, 0], + + [-1, -1, 0], [0, -1, 0], [1, -1, 0], [2, -1, 0], [-2, 0, 0], [-1, 0, 0], + + [0, 0, 0], [1, 0, 0], [2, 0, 0], [-2, 1, 0], [-1, 1, 0], [0, 1, 0], + + [1, 1, 0], [2, 1, 0], [-2, 2, 0], [-1, 2, 0], [0, 2, 0], [1, 2, 0], + + [2, 2, 0], [-2, -2, 1], [-1, -2, 1], [0, -2, 1], [1, -2, 1], [2, -2, 1], + + [-2, -1, 1], [-1, -1, 1], [0, -1, 1], [1, -1, 1], [2, -1, 1], [-2, 0, 1], + + [-1, 0, 1], [0, 0, 1], [1, 0, 1], [2, 0, 1], [-2, 1, 1], [-1, 1, 1], + + [0, 1, 1], [1, 1, 1], [2, 1, 1], [-2, 2, 1], [-1, 2, 1], [0, 2, 1], + + [1, 2, 1], [2, 2, 1], [-2, -2, 2], [-1, -2, 2], [0, -2, 2], [1, -2, 2], + + [2, -2, 2], [-2, -1, 2], [-1, -1, 2], [0, -1, 2], [1, -1, 2], [2, -1, 2], + + [-2, 0, 2], [-1, 0, 2], [0, 0, 2], [1, 0, 2], [2, 0, 2], [-2, 1, 2], + + [-1, 1, 2], [0, 1, 2], [1, 1, 2], [2, 1, 2], [-2, 2, 2], [-1, 2, 2], + + [0, 2, 2], [1, 2, 2], [2, 2, 2]] + +> +################################################################################ +> +# +# generic stuff for 3d, cube, size=2 +# +> +> data_var_list_3d_size2 := map(data_var_name, posn_list_3d_size2, "data_"); +data_var_list_3d_size2 := ["data_0_0_0", "data_p1_0_0", "data_0_p1_0", + + "data_p1_p1_0", "data_0_0_p1", "data_p1_0_p1", "data_0_p1_p1", + + "data_p1_p1_p1"] + +> +> print_name_list_dcl(data_var_list_3d_size2, +> "fp", "3d.coeffs/3d.cube.size2/data-var.dcl.c"); +> print_data_var_assign(posn_list_3d_size2, +> "data_", "3d.coeffs/3d.cube.size2/data-var.assign.c"); +> +> print_name_list_dcl(map(coeff_name, posn_list_3d_size2, "coeff_I_"), +> "fp", "3d.coeffs/3d.cube.size2/coeff-I.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_3d_size2, "coeff_dx_"), +> "fp", "3d.coeffs/3d.cube.size2/coeff-dx.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_3d_size2, "coeff_dy_"), +> "fp", "3d.coeffs/3d.cube.size2/coeff-dy.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_3d_size2, "coeff_dz_"), +> "fp", "3d.coeffs/3d.cube.size2/coeff-dz.dcl.c"); +> +> print_interp_cmpt__lc_of_data(posn_list_3d_size2, +> "result", "coeff_I_", "data_", +> "3d.coeffs/3d.cube.size2/interp-I.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_3d_size2, +> "result", "coeff_dx_", "data_", +> "3d.coeffs/3d.cube.size2/interp-dx.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_3d_size2, +> "result", "coeff_dy_", "data_", +> "3d.coeffs/3d.cube.size2/interp-dy.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_3d_size2, +> "result", "coeff_dz_", "data_", +> "3d.coeffs/3d.cube.size2/interp-dz.compute.c"); +> +######################################## +> +# +# generic stuff for 3d, cube, size=3 +# +> +> data_var_list_3d_size3 := map(data_var_name, posn_list_3d_size3, "data_"); +data_var_list_3d_size3 := ["data_m1_m1_m1", "data_0_m1_m1", "data_p1_m1_m1", + + "data_m1_0_m1", "data_0_0_m1", "data_p1_0_m1", "data_m1_p1_m1", + + "data_0_p1_m1", "data_p1_p1_m1", "data_m1_m1_0", "data_0_m1_0", + + "data_p1_m1_0", "data_m1_0_0", "data_0_0_0", "data_p1_0_0", "data_m1_p1_0", + + "data_0_p1_0", "data_p1_p1_0", "data_m1_m1_p1", "data_0_m1_p1", + + "data_p1_m1_p1", "data_m1_0_p1", "data_0_0_p1", "data_p1_0_p1", + + "data_m1_p1_p1", "data_0_p1_p1", "data_p1_p1_p1"] + +> +> print_name_list_dcl(data_var_list_3d_size3, +> "fp", "3d.coeffs/3d.cube.size3/data-var.dcl.c"); +> print_data_var_assign(posn_list_3d_size3, +> "data_", "3d.coeffs/3d.cube.size3/data-var.assign.c"); +> +> print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_I_"), +> "fp", "3d.coeffs/3d.cube.size3/coeff-I.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_dx_"), +> "fp", "3d.coeffs/3d.cube.size3/coeff-dx.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_dy_"), +> "fp", "3d.coeffs/3d.cube.size3/coeff-dy.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_dz_"), +> "fp", "3d.coeffs/3d.cube.size3/coeff-dz.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_dxx_"), +> "fp", "3d.coeffs/3d.cube.size3/coeff-dxx.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_dxy_"), +> "fp", "3d.coeffs/3d.cube.size3/coeff-dxy.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_dxz_"), +> "fp", "3d.coeffs/3d.cube.size3/coeff-dxz.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_dyy_"), +> "fp", "3d.coeffs/3d.cube.size3/coeff-dyy.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_dyz_"), +> "fp", "3d.coeffs/3d.cube.size3/coeff-dyz.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_dzz_"), +> "fp", "3d.coeffs/3d.cube.size3/coeff-dzz.dcl.c"); +> +> print_interp_cmpt__lc_of_data(posn_list_3d_size3, +> "result", "coeff_I_", "data_", +> "3d.coeffs/3d.cube.size3/interp-I.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_3d_size3, +> "result", "coeff_dx_", "data_", +> "3d.coeffs/3d.cube.size3/interp-dx.compute.c"); +bytes used=1000036, alloc=917336, time=0.07 +> print_interp_cmpt__lc_of_data(posn_list_3d_size3, +> "result", "coeff_dy_", "data_", +> "3d.coeffs/3d.cube.size3/interp-dy.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_3d_size3, +> "result", "coeff_dz_", "data_", +> "3d.coeffs/3d.cube.size3/interp-dz.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_3d_size3, +> "result", "coeff_dxx_", "data_", +> "3d.coeffs/3d.cube.size3/interp-dxx.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_3d_size3, +> "result", "coeff_dxy_", "data_", +> "3d.coeffs/3d.cube.size3/interp-dxy.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_3d_size3, +> "result", "coeff_dxz_", "data_", +> "3d.coeffs/3d.cube.size3/interp-dxz.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_3d_size3, +> "result", "coeff_dyy_", "data_", +> "3d.coeffs/3d.cube.size3/interp-dyy.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_3d_size3, +> "result", "coeff_dyz_", "data_", +> "3d.coeffs/3d.cube.size3/interp-dyz.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_3d_size3, +> "result", "coeff_dzz_", "data_", +> "3d.coeffs/3d.cube.size3/interp-dzz.compute.c"); +> +######################################## +> +# +# generic stuff for 3d, cube, size=4 +# +> +> data_var_list_3d_size4 := map(data_var_name, posn_list_3d_size4, "data_"); +data_var_list_3d_size4 := ["data_m1_m1_m1", "data_0_m1_m1", "data_p1_m1_m1", + + "data_p2_m1_m1", "data_m1_0_m1", "data_0_0_m1", "data_p1_0_m1", + + "data_p2_0_m1", "data_m1_p1_m1", "data_0_p1_m1", "data_p1_p1_m1", + + "data_p2_p1_m1", "data_m1_p2_m1", "data_0_p2_m1", "data_p1_p2_m1", + + "data_p2_p2_m1", "data_m1_m1_0", "data_0_m1_0", "data_p1_m1_0", + + "data_p2_m1_0", "data_m1_0_0", "data_0_0_0", "data_p1_0_0", "data_p2_0_0", + + "data_m1_p1_0", "data_0_p1_0", "data_p1_p1_0", "data_p2_p1_0", + + "data_m1_p2_0", "data_0_p2_0", "data_p1_p2_0", "data_p2_p2_0", + + "data_m1_m1_p1", "data_0_m1_p1", "data_p1_m1_p1", "data_p2_m1_p1", + + "data_m1_0_p1", "data_0_0_p1", "data_p1_0_p1", "data_p2_0_p1", + + "data_m1_p1_p1", "data_0_p1_p1", "data_p1_p1_p1", "data_p2_p1_p1", + + "data_m1_p2_p1", "data_0_p2_p1", "data_p1_p2_p1", "data_p2_p2_p1", + + "data_m1_m1_p2", "data_0_m1_p2", "data_p1_m1_p2", "data_p2_m1_p2", + + "data_m1_0_p2", "data_0_0_p2", "data_p1_0_p2", "data_p2_0_p2", + + "data_m1_p1_p2", "data_0_p1_p2", "data_p1_p1_p2", "data_p2_p1_p2", + + "data_m1_p2_p2", "data_0_p2_p2", "data_p1_p2_p2", "data_p2_p2_p2"] + +> +> print_name_list_dcl(data_var_list_3d_size4, +> "fp", "3d.coeffs/3d.cube.size4/data-var.dcl.c"); +> print_data_var_assign(posn_list_3d_size4, +> "data_", "3d.coeffs/3d.cube.size4/data-var.assign.c"); +> +> print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_I_"), +> "fp", "3d.coeffs/3d.cube.size4/coeff-I.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_dx_"), +> "fp", "3d.coeffs/3d.cube.size4/coeff-dx.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_dy_"), +> "fp", "3d.coeffs/3d.cube.size4/coeff-dy.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_dz_"), +> "fp", "3d.coeffs/3d.cube.size4/coeff-dz.dcl.c"); +bytes used=2000312, alloc=1179432, time=0.19 +> print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_dxx_"), +> "fp", "3d.coeffs/3d.cube.size4/coeff-dxx.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_dxy_"), +> "fp", "3d.coeffs/3d.cube.size4/coeff-dxy.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_dxz_"), +> "fp", "3d.coeffs/3d.cube.size4/coeff-dxz.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_dyy_"), +> "fp", "3d.coeffs/3d.cube.size4/coeff-dyy.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_dyz_"), +> "fp", "3d.coeffs/3d.cube.size4/coeff-dyz.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_dzz_"), +> "fp", "3d.coeffs/3d.cube.size4/coeff-dzz.dcl.c"); +> +> print_interp_cmpt__lc_of_data(posn_list_3d_size4, +> "result", "coeff_I_", "data_", +> "3d.coeffs/3d.cube.size4/interp-I.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_3d_size4, +> "result", "coeff_dx_", "data_", +> "3d.coeffs/3d.cube.size4/interp-dx.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_3d_size4, +> "result", "coeff_dy_", "data_", +> "3d.coeffs/3d.cube.size4/interp-dy.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_3d_size4, +> "result", "coeff_dz_", "data_", +> "3d.coeffs/3d.cube.size4/interp-dz.compute.c"); +bytes used=3000544, alloc=1310480, time=0.28 +> print_interp_cmpt__lc_of_data(posn_list_3d_size4, +> "result", "coeff_dxx_", "data_", +> "3d.coeffs/3d.cube.size4/interp-dxx.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_3d_size4, +> "result", "coeff_dxy_", "data_", +> "3d.coeffs/3d.cube.size4/interp-dxy.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_3d_size4, +> "result", "coeff_dxz_", "data_", +> "3d.coeffs/3d.cube.size4/interp-dxz.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_3d_size4, +> "result", "coeff_dyy_", "data_", +> "3d.coeffs/3d.cube.size4/interp-dyy.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_3d_size4, +> "result", "coeff_dyz_", "data_", +> "3d.coeffs/3d.cube.size4/interp-dyz.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_3d_size4, +> "result", "coeff_dzz_", "data_", +> "3d.coeffs/3d.cube.size4/interp-dzz.compute.c"); +> +######################################## +> +# +# generic stuff for 3d, cube, size=5 +# +> +> data_var_list_3d_size5 := map(data_var_name, posn_list_3d_size5, "data_"); +data_var_list_3d_size5 := ["data_m2_m2_m2", "data_m1_m2_m2", "data_0_m2_m2", + + "data_p1_m2_m2", "data_p2_m2_m2", "data_m2_m1_m2", "data_m1_m1_m2", + + "data_0_m1_m2", "data_p1_m1_m2", "data_p2_m1_m2", "data_m2_0_m2", + + "data_m1_0_m2", "data_0_0_m2", "data_p1_0_m2", "data_p2_0_m2", + + "data_m2_p1_m2", "data_m1_p1_m2", "data_0_p1_m2", "data_p1_p1_m2", + + "data_p2_p1_m2", "data_m2_p2_m2", "data_m1_p2_m2", "data_0_p2_m2", + + "data_p1_p2_m2", "data_p2_p2_m2", "data_m2_m2_m1", "data_m1_m2_m1", + + "data_0_m2_m1", "data_p1_m2_m1", "data_p2_m2_m1", "data_m2_m1_m1", + + "data_m1_m1_m1", "data_0_m1_m1", "data_p1_m1_m1", "data_p2_m1_m1", + + "data_m2_0_m1", "data_m1_0_m1", "data_0_0_m1", "data_p1_0_m1", + + "data_p2_0_m1", "data_m2_p1_m1", "data_m1_p1_m1", "data_0_p1_m1", + + "data_p1_p1_m1", "data_p2_p1_m1", "data_m2_p2_m1", "data_m1_p2_m1", + + "data_0_p2_m1", "data_p1_p2_m1", "data_p2_p2_m1", "data_m2_m2_0", + + "data_m1_m2_0", "data_0_m2_0", "data_p1_m2_0", "data_p2_m2_0", + + "data_m2_m1_0", "data_m1_m1_0", "data_0_m1_0", "data_p1_m1_0", + + "data_p2_m1_0", "data_m2_0_0", "data_m1_0_0", "data_0_0_0", "data_p1_0_0", + + "data_p2_0_0", "data_m2_p1_0", "data_m1_p1_0", "data_0_p1_0", + + "data_p1_p1_0", "data_p2_p1_0", "data_m2_p2_0", "data_m1_p2_0", + + "data_0_p2_0", "data_p1_p2_0", "data_p2_p2_0", "data_m2_m2_p1", + + "data_m1_m2_p1", "data_0_m2_p1", "data_p1_m2_p1", "data_p2_m2_p1", + + "data_m2_m1_p1", "data_m1_m1_p1", "data_0_m1_p1", "data_p1_m1_p1", + + "data_p2_m1_p1", "data_m2_0_p1", "data_m1_0_p1", "data_0_0_p1", + + "data_p1_0_p1", "data_p2_0_p1", "data_m2_p1_p1", "data_m1_p1_p1", + + "data_0_p1_p1", "data_p1_p1_p1", "data_p2_p1_p1", "data_m2_p2_p1", + + "data_m1_p2_p1", "data_0_p2_p1", "data_p1_p2_p1", "data_p2_p2_p1", + + "data_m2_m2_p2", "data_m1_m2_p2", "data_0_m2_p2", "data_p1_m2_p2", + + "data_p2_m2_p2", "data_m2_m1_p2", "data_m1_m1_p2", "data_0_m1_p2", + + "data_p1_m1_p2", "data_p2_m1_p2", "data_m2_0_p2", "data_m1_0_p2", + + "data_0_0_p2", "data_p1_0_p2", "data_p2_0_p2", "data_m2_p1_p2", + + "data_m1_p1_p2", "data_0_p1_p2", "data_p1_p1_p2", "data_p2_p1_p2", + + "data_m2_p2_p2", "data_m1_p2_p2", "data_0_p2_p2", "data_p1_p2_p2", + + "data_p2_p2_p2"] + +> +> print_name_list_dcl(data_var_list_3d_size5, +> "fp", "3d.coeffs/3d.cube.size5/data-var.dcl.c"); +bytes used=4000788, alloc=1310480, time=0.40 +> print_data_var_assign(posn_list_3d_size5, +> "data_", "3d.coeffs/3d.cube.size5/data-var.assign.c"); +> +> print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_I_"), +> "fp", "3d.coeffs/3d.cube.size5/coeff-I.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_dx_"), +> "fp", "3d.coeffs/3d.cube.size5/coeff-dx.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_dy_"), +> "fp", "3d.coeffs/3d.cube.size5/coeff-dy.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_dz_"), +> "fp", "3d.coeffs/3d.cube.size5/coeff-dz.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_dxx_"), +> "fp", "3d.coeffs/3d.cube.size5/coeff-dxx.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_dxy_"), +> "fp", "3d.coeffs/3d.cube.size5/coeff-dxy.dcl.c"); +bytes used=5000988, alloc=1376004, time=0.49 +> print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_dxz_"), +> "fp", "3d.coeffs/3d.cube.size5/coeff-dxz.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_dyy_"), +> "fp", "3d.coeffs/3d.cube.size5/coeff-dyy.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_dyz_"), +> "fp", "3d.coeffs/3d.cube.size5/coeff-dyz.dcl.c"); +> print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_dzz_"), +> "fp", "3d.coeffs/3d.cube.size5/coeff-dzz.dcl.c"); +> +> print_interp_cmpt__lc_of_data(posn_list_3d_size5, +> "result", "coeff_I_", "data_", +> "3d.coeffs/3d.cube.size5/interp-I.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_3d_size5, +> "result", "coeff_dx_", "data_", +> "3d.coeffs/3d.cube.size5/interp-dx.compute.c"); +bytes used=6001140, alloc=1376004, time=0.60 +> print_interp_cmpt__lc_of_data(posn_list_3d_size5, +> "result", "coeff_dy_", "data_", +> "3d.coeffs/3d.cube.size5/interp-dy.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_3d_size5, +> "result", "coeff_dz_", "data_", +> "3d.coeffs/3d.cube.size5/interp-dz.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_3d_size5, +> "result", "coeff_dxx_", "data_", +> "3d.coeffs/3d.cube.size5/interp-dxx.compute.c"); +bytes used=7002056, alloc=1441528, time=0.71 +> print_interp_cmpt__lc_of_data(posn_list_3d_size5, +> "result", "coeff_dxy_", "data_", +> "3d.coeffs/3d.cube.size5/interp-dxy.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_3d_size5, +> "result", "coeff_dxz_", "data_", +> "3d.coeffs/3d.cube.size5/interp-dxz.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_3d_size5, +> "result", "coeff_dyy_", "data_", +> "3d.coeffs/3d.cube.size5/interp-dyy.compute.c"); +> print_interp_cmpt__lc_of_data(posn_list_3d_size5, +> "result", "coeff_dyz_", "data_", +> "3d.coeffs/3d.cube.size5/interp-dyz.compute.c"); +bytes used=8002208, alloc=1441528, time=0.82 +> print_interp_cmpt__lc_of_data(posn_list_3d_size5, +> "result", "coeff_dzz_", "data_", +> "3d.coeffs/3d.cube.size5/interp-dzz.compute.c"); +> +> +################################################################################ +> +# +# 3d, cube, order=1, smoothing=0 (size=2) +# +> +# interpolating polynomial +> interp_3d_cube_order1_smooth0 +> := polynomial_interpolant(fn_3d_order1, coeff_list_3d_order1, +> coord_list_3d, posn_list_3d_size2); +interp_3d_cube_order1_smooth0 := (- 1/4 DATA(0, 0, 0) - 1/4 DATA(1, 0, 0) + + + 1/4 DATA(0, 1, 0) + 1/4 DATA(1, 1, 0) - 1/4 DATA(0, 0, 1) + + - 1/4 DATA(1, 0, 1) + 1/4 DATA(0, 1, 1) + 1/4 DATA(1, 1, 1)) y + + + 1/4 DATA(0, 0, 1) - 1/4 DATA(1, 1, 1) + 1/4 DATA(1, 0, 0) + + + 1/4 DATA(0, 1, 0) + 1/2 DATA(0, 0, 0) + (1/4 DATA(1, 1, 0) + + - 1/4 DATA(0, 1, 1) - 1/4 DATA(0, 0, 1) + 1/4 DATA(1, 1, 1) + + + 1/4 DATA(1, 0, 1) + 1/4 DATA(1, 0, 0) - 1/4 DATA(0, 1, 0) + + - 1/4 DATA(0, 0, 0)) x + (1/4 DATA(0, 1, 1) + 1/4 DATA(0, 0, 1) + + + 1/4 DATA(1, 1, 1) + 1/4 DATA(1, 0, 1) - 1/4 DATA(1, 0, 0) + + - 1/4 DATA(0, 1, 0) - 1/4 DATA(0, 0, 0) - 1/4 DATA(1, 1, 0)) z + +> +# I +> coeff_as_lc_of_data(%, posn_list_3d_size2); +[COEFF(0, 0, 0) = 1/2 - 1/4 x - 1/4 y - 1/4 z, + + COEFF(1, 0, 0) = - 1/4 y + 1/4 - 1/4 z + 1/4 x, + + COEFF(0, 1, 0) = 1/4 + 1/4 y - 1/4 z - 1/4 x, + + COEFF(1, 1, 0) = - 1/4 z + 1/4 y + 1/4 x, + + COEFF(0, 0, 1) = - 1/4 y + 1/4 z + 1/4 - 1/4 x, + + COEFF(1, 0, 1) = 1/4 z - 1/4 y + 1/4 x, + + COEFF(0, 1, 1) = - 1/4 x + 1/4 y + 1/4 z, + + COEFF(1, 1, 1) = 1/4 y + 1/4 z + 1/4 x - 1/4] + +> print_coeff__lc_of_data(%, "coeff_I_", "fp", +> "3d.coeffs/3d.cube.order1.smooth0/coeff-I.compute.c"); +bytes used=9002704, alloc=1441528, time=0.91 +> +# d/dx +> simplify( diff(interp_3d_cube_order1_smooth0,x) ); +bytes used=10017460, alloc=1572576, time=0.96 +1/4 DATA(1, 1, 0) - 1/4 DATA(0, 1, 1) - 1/4 DATA(0, 0, 1) + 1/4 DATA(1, 1, 1) + + + 1/4 DATA(1, 0, 1) + 1/4 DATA(1, 0, 0) - 1/4 DATA(0, 1, 0) + + - 1/4 DATA(0, 0, 0) + +> coeff_as_lc_of_data(%, posn_list_3d_size2); +[COEFF(0, 0, 0) = -1/4, COEFF(1, 0, 0) = 1/4, COEFF(0, 1, 0) = -1/4, + + COEFF(1, 1, 0) = 1/4, COEFF(0, 0, 1) = -1/4, COEFF(1, 0, 1) = 1/4, + + COEFF(0, 1, 1) = -1/4, COEFF(1, 1, 1) = 1/4] + +> print_coeff__lc_of_data(%, "coeff_dx_", "fp", +> "3d.coeffs/3d.cube.order1.smooth0/coeff-dx.compute.c"); +> +# d/dy +> simplify( diff(interp_3d_cube_order1_smooth0,y) ); +- 1/4 DATA(0, 0, 0) - 1/4 DATA(1, 0, 0) + 1/4 DATA(0, 1, 0) + 1/4 DATA(1, 1, 0) + + - 1/4 DATA(0, 0, 1) - 1/4 DATA(1, 0, 1) + 1/4 DATA(0, 1, 1) + + + 1/4 DATA(1, 1, 1) + +> coeff_as_lc_of_data(%, posn_list_3d_size2); +[COEFF(0, 0, 0) = -1/4, COEFF(1, 0, 0) = -1/4, COEFF(0, 1, 0) = 1/4, + + COEFF(1, 1, 0) = 1/4, COEFF(0, 0, 1) = -1/4, COEFF(1, 0, 1) = -1/4, + + COEFF(0, 1, 1) = 1/4, COEFF(1, 1, 1) = 1/4] + +> print_coeff__lc_of_data(%, "coeff_dy_", "fp", +> "3d.coeffs/3d.cube.order1.smooth0/coeff-dy.compute.c"); +> +# d/dz +> simplify( diff(interp_3d_cube_order1_smooth0,z) ); +1/4 DATA(0, 1, 1) + 1/4 DATA(0, 0, 1) + 1/4 DATA(1, 1, 1) + 1/4 DATA(1, 0, 1) + + - 1/4 DATA(1, 0, 0) - 1/4 DATA(0, 1, 0) - 1/4 DATA(0, 0, 0) + + - 1/4 DATA(1, 1, 0) + +> coeff_as_lc_of_data(%, posn_list_3d_size2); +[COEFF(0, 0, 0) = -1/4, COEFF(1, 0, 0) = -1/4, COEFF(0, 1, 0) = -1/4, + + COEFF(1, 1, 0) = -1/4, COEFF(0, 0, 1) = 1/4, COEFF(1, 0, 1) = 1/4, + + COEFF(0, 1, 1) = 1/4, COEFF(1, 1, 1) = 1/4] + +> print_coeff__lc_of_data(%, "coeff_dz_", "fp", +> "3d.coeffs/3d.cube.order1.smooth0/coeff-dz.compute.c"); +bytes used=11017932, alloc=1769148, time=1.06 +> +######################################## +> +# +# 3d, cube, order=2, smoothing=0 (size=3) +# +> +# interpolating polynomial +> interp_3d_cube_order2_smooth0 +> := polynomial_interpolant(fn_3d_order2, coeff_list_3d_order2, +> coord_list_3d, posn_list_3d_size3); +bytes used=12018084, alloc=1900196, time=1.11 +interp_3d_cube_order2_smooth0 := - 2/27 DATA(-1, 1, -1) + 1/27 DATA(0, 1, -1) + + - 2/27 DATA(1, 1, -1) + 1/27 DATA(-1, -1, 0) + 4/27 DATA(0, -1, 0) + + + 1/27 DATA(1, -1, 0) + 4/27 DATA(-1, 0, 0) + 1/27 DATA(-1, 1, 0) + + - 2/27 DATA(-1, 1, 1) + 1/27 DATA(-1, 0, 1) - 2/27 DATA(1, -1, 1) + + - 2/27 DATA(-1, -1, 1) + 1/27 DATA(0, -1, 1) + 1/27 DATA(-1, 0, -1) + + + 4/27 DATA(0, 0, -1) + 1/27 DATA(1, 0, -1) + 7/27 DATA(0, 0, 0) + + + 4/27 DATA(1, 0, 0) + 4/27 DATA(0, 1, 0) + 1/27 DATA(1, 1, 0) + + + 4/27 DATA(0, 0, 1) + (- 1/12 DATA(1, -1, 0) - 1/12 DATA(-1, 1, -1) + + + 1/12 DATA(1, 1, -1) + 1/12 DATA(-1, -1, 0) + 1/12 DATA(-1, -1, 1) + + - 1/12 DATA(-1, 1, 0) - 1/12 DATA(-1, 1, 1) - 1/12 DATA(1, -1, 1) + + - 1/12 DATA(1, -1, -1) + 1/12 DATA(1, 1, 0) + 1/12 DATA(1, 1, 1) + + + 1/12 DATA(-1, -1, -1)) x y + (- 1/12 DATA(-1, 1, -1) + + - 1/12 DATA(0, 1, -1) - 1/12 DATA(1, 1, -1) + 1/12 DATA(-1, 1, 1) + + - 1/12 DATA(1, -1, 1) - 1/12 DATA(-1, -1, 1) - 1/12 DATA(0, -1, 1) + + + 1/12 DATA(0, 1, 1) + 1/12 DATA(1, 1, 1) + 1/12 DATA(-1, -1, -1) + + + 1/12 DATA(0, -1, -1) + 1/12 DATA(1, -1, -1)) y z + (1/12 DATA(-1, 1, -1) + + - 1/12 DATA(1, 1, -1) - 1/12 DATA(-1, 1, 1) - 1/12 DATA(-1, 0, 1) + + + 1/12 DATA(1, -1, 1) - 1/12 DATA(-1, -1, 1) + 1/12 DATA(-1, 0, -1) + + - 1/12 DATA(1, 0, -1) + 1/12 DATA(1, 0, 1) + 1/12 DATA(1, 1, 1) + + + 1/12 DATA(-1, -1, -1) - 1/12 DATA(1, -1, -1)) x z + 1/27 DATA(1, 0, 1) + + + 1/27 DATA(0, 1, 1) - 2/27 DATA(1, 1, 1) - 2/27 DATA(-1, -1, -1) + + + 1/27 DATA(0, -1, -1) - 2/27 DATA(1, -1, -1) + (1/18 DATA(-1, 1, -1) + + + 1/18 DATA(0, 1, -1) + 1/18 DATA(1, 1, -1) + 1/18 DATA(-1, -1, 0) + + + 1/18 DATA(0, -1, 0) + 1/18 DATA(1, -1, 0) - 1/9 DATA(-1, 0, 0) + + + 1/18 DATA(-1, 1, 0) + 1/18 DATA(-1, 1, 1) - 1/9 DATA(-1, 0, 1) + + + 1/18 DATA(1, -1, 1) + 1/18 DATA(-1, -1, 1) + 1/18 DATA(0, -1, 1) + + - 1/9 DATA(-1, 0, -1) - 1/9 DATA(0, 0, -1) - 1/9 DATA(1, 0, -1) + + - 1/9 DATA(0, 0, 0) - 1/9 DATA(1, 0, 0) + 1/18 DATA(0, 1, 0) + + + 1/18 DATA(1, 1, 0) - 1/9 DATA(0, 0, 1) - 1/9 DATA(1, 0, 1) + + + 1/18 DATA(0, 1, 1) + 1/18 DATA(1, 1, 1) + 1/18 DATA(-1, -1, -1) + + 2 + + 1/18 DATA(0, -1, -1) + 1/18 DATA(1, -1, -1)) y + (1/18 DATA(1, 1, 0) + + + 1/18 DATA(-1, 1, -1) + 1/18 DATA(0, 1, -1) + 1/18 DATA(1, 1, -1) + + - 1/18 DATA(-1, -1, 0) - 1/18 DATA(0, -1, 0) - 1/18 DATA(1, -1, 0) + + + 1/18 DATA(-1, 1, 0) + 1/18 DATA(-1, 1, 1) - 1/18 DATA(1, -1, 1) + + - 1/18 DATA(-1, -1, 1) - 1/18 DATA(0, -1, 1) + 1/18 DATA(0, 1, 0) + + - 1/18 DATA(0, -1, -1) + 1/18 DATA(0, 1, 1) + 1/18 DATA(1, 1, 1) + + - 1/18 DATA(-1, -1, -1) - 1/18 DATA(1, -1, -1)) y + (1/18 DATA(1, 0, 0) + + - 1/18 DATA(-1, 1, -1) + 1/18 DATA(1, 1, -1) - 1/18 DATA(-1, -1, 0) + + + 1/18 DATA(1, -1, 0) - 1/18 DATA(-1, 0, 0) - 1/18 DATA(-1, 1, 0) + + - 1/18 DATA(-1, 1, 1) - 1/18 DATA(-1, 0, 1) + 1/18 DATA(1, -1, 1) + + - 1/18 DATA(-1, -1, 1) - 1/18 DATA(-1, 0, -1) + 1/18 DATA(1, 0, -1) + + - 1/18 DATA(-1, -1, -1) + 1/18 DATA(1, 1, 0) + 1/18 DATA(1, 0, 1) + + + 1/18 DATA(1, 1, 1) + 1/18 DATA(1, -1, -1)) x + (1/18 DATA(-1, 1, -1) + + - 1/9 DATA(0, 1, -1) + 1/18 DATA(1, 1, -1) + 1/18 DATA(-1, -1, 0) + + - 1/9 DATA(0, -1, 0) + 1/18 DATA(1, -1, 0) + 1/18 DATA(-1, 0, 0) + + + 1/18 DATA(-1, 1, 0) + 1/18 DATA(-1, 1, 1) + 1/18 DATA(-1, 0, 1) + + + 1/18 DATA(1, -1, 1) + 1/18 DATA(-1, -1, 1) - 1/9 DATA(0, -1, 1) + + + 1/18 DATA(-1, 0, -1) - 1/9 DATA(0, 0, -1) + 1/18 DATA(1, 0, -1) + + - 1/9 DATA(0, 0, 0) + 1/18 DATA(1, 0, 0) - 1/9 DATA(0, 1, 0) + + + 1/18 DATA(1, 1, 0) - 1/9 DATA(0, 0, 1) + 1/18 DATA(1, 0, 1) + + - 1/9 DATA(0, 1, 1) + 1/18 DATA(1, 1, 1) + 1/18 DATA(-1, -1, -1) + + 2 + - 1/9 DATA(0, -1, -1) + 1/18 DATA(1, -1, -1)) x + (1/18 DATA(1, 0, 1) + + - 1/18 DATA(-1, 1, -1) - 1/18 DATA(0, 1, -1) - 1/18 DATA(1, 1, -1) + + + 1/18 DATA(-1, 1, 1) + 1/18 DATA(-1, 0, 1) + 1/18 DATA(1, -1, 1) + + + 1/18 DATA(-1, -1, 1) + 1/18 DATA(0, -1, 1) - 1/18 DATA(-1, 0, -1) + + - 1/18 DATA(0, 0, -1) - 1/18 DATA(1, 0, -1) + 1/18 DATA(0, 0, 1) + + - 1/18 DATA(0, -1, -1) + 1/18 DATA(0, 1, 1) + 1/18 DATA(1, 1, 1) + + - 1/18 DATA(-1, -1, -1) - 1/18 DATA(1, -1, -1)) z + (1/18 DATA(-1, 1, -1) + + + 1/18 DATA(0, 1, -1) + 1/18 DATA(1, 1, -1) - 1/9 DATA(-1, -1, 0) + + - 1/9 DATA(0, -1, 0) - 1/9 DATA(1, -1, 0) - 1/9 DATA(-1, 0, 0) + + - 1/9 DATA(-1, 1, 0) + 1/18 DATA(-1, 1, 1) + 1/18 DATA(-1, 0, 1) + + + 1/18 DATA(1, -1, 1) + 1/18 DATA(-1, -1, 1) + 1/18 DATA(0, -1, 1) + + + 1/18 DATA(-1, 0, -1) + 1/18 DATA(0, 0, -1) + 1/18 DATA(1, 0, -1) + + - 1/9 DATA(0, 0, 0) - 1/9 DATA(1, 0, 0) - 1/9 DATA(0, 1, 0) + + - 1/9 DATA(1, 1, 0) + 1/18 DATA(0, 0, 1) + 1/18 DATA(1, 0, 1) + + + 1/18 DATA(0, 1, 1) + 1/18 DATA(1, 1, 1) + 1/18 DATA(-1, -1, -1) + + 2 + + 1/18 DATA(0, -1, -1) + 1/18 DATA(1, -1, -1)) z + +> +# I +> coeff_as_lc_of_data(%, posn_list_3d_size3); +bytes used=13018268, alloc=1965720, time=1.17 + 2 2 +[COEFF(-1, -1, -1) = - 2/27 - 1/18 z + 1/18 y - 1/18 y - 1/18 x + 1/18 z + + 2 + + 1/12 x y + 1/12 x z + 1/18 x + 1/12 y z, COEFF(0, -1, -1) = + + 2 2 2 + - 1/9 x - 1/18 z + 1/18 y + 1/18 z - 1/18 y + 1/27 + 1/12 y z, + + 2 2 + COEFF(1, -1, -1) = 1/18 x - 1/12 x y + 1/18 y - 1/12 x z + 1/18 x + + 2 + - 1/18 z - 2/27 - 1/18 y + 1/12 y z + 1/18 z , COEFF(-1, 0, -1) = + + 2 2 2 + 1/18 x - 1/9 y + 1/18 z + 1/27 - 1/18 x + 1/12 x z - 1/18 z, + + 2 2 2 + COEFF(0, 0, -1) = - 1/9 y + 4/27 - 1/9 x - 1/18 z + 1/18 z , + + COEFF(1, 0, -1) = + + 2 2 2 + - 1/9 y + 1/18 z + 1/18 x - 1/18 z + 1/18 x + 1/27 - 1/12 x z, + + 2 + COEFF(-1, 1, -1) = 1/12 x z - 1/12 x y - 2/27 - 1/18 x + 1/18 x - 1/18 z + + 2 2 + + 1/18 y - 1/12 y z + 1/18 z + 1/18 y, COEFF(0, 1, -1) = + + 2 2 2 + - 1/12 y z + 1/27 - 1/9 x + 1/18 z + 1/18 y - 1/18 z + 1/18 y , + + 2 + COEFF(1, 1, -1) = 1/12 x y + 1/18 x + 1/18 y - 1/12 x z - 2/27 - 1/12 y z + + 2 2 + - 1/18 z + 1/18 z + 1/18 y + 1/18 x , COEFF(-1, -1, 0) = + + 2 2 2 + - 1/9 z - 1/18 x + 1/27 - 1/18 y + 1/18 x + 1/12 x y + 1/18 y , + + 2 2 2 + COEFF(0, -1, 0) = 4/27 - 1/9 z + 1/18 y - 1/18 y - 1/9 x , + + COEFF(1, -1, 0) = + + 2 2 2 + - 1/18 y + 1/18 y - 1/9 z - 1/12 x y + 1/18 x + 1/27 + 1/18 x, + + 2 2 2 + COEFF(-1, 0, 0) = 4/27 - 1/9 y - 1/18 x + 1/18 x - 1/9 z , + + 2 2 2 + COEFF(0, 0, 0) = - 1/9 x - 1/9 z + 7/27 - 1/9 y , + + 2 2 2 + COEFF(1, 0, 0) = 1/18 x - 1/9 y + 4/27 - 1/9 z + 1/18 x, COEFF(-1, 1, 0) + + 2 2 2 + = 1/18 x - 1/18 x - 1/9 z - 1/12 x y + 1/18 y + 1/18 y + 1/27, + + 2 2 2 + COEFF(0, 1, 0) = 4/27 - 1/9 z + 1/18 y - 1/9 x + 1/18 y , COEFF(1, 1, 0) + + 2 2 2 + = 1/12 x y + 1/27 - 1/9 z + 1/18 x + 1/18 y + 1/18 y + 1/18 x, + + 2 + COEFF(-1, -1, 1) = 1/18 y - 1/12 x z - 1/18 x - 1/12 y z + 1/18 z + + 2 2 + + 1/12 x y + 1/18 z + 1/18 x - 1/18 y - 2/27, COEFF(0, -1, 1) = + + 2 2 2 + 1/18 z - 1/18 y + 1/18 z + 1/18 y + 1/27 - 1/12 y z - 1/9 x , + + 2 2 2 + COEFF(1, -1, 1) = 1/18 x + 1/18 x + 1/12 x z - 1/18 y + 1/18 y + 1/18 z + + - 2/27 + 1/18 z - 1/12 x y - 1/12 y z, COEFF(-1, 0, 1) = + + 2 2 2 + 1/18 x - 1/18 x + 1/18 z - 1/9 y - 1/12 x z + 1/18 z + 1/27, + + 2 2 2 + COEFF(0, 0, 1) = 4/27 - 1/9 x + 1/18 z - 1/9 y + 1/18 z, COEFF(1, 0, 1) + + 2 2 2 + = 1/18 x + 1/12 x z + 1/18 z + 1/27 + 1/18 x + 1/18 z - 1/9 y , + + 2 2 + COEFF(-1, 1, 1) = - 1/12 x z + 1/18 x + 1/18 y - 1/18 x - 1/12 x y + + 2 + + 1/18 y + 1/18 z + 1/12 y z - 2/27 + 1/18 z, COEFF(0, 1, 1) = + + 2 2 2 + 1/18 y + 1/18 z + 1/12 y z + 1/18 y + 1/27 - 1/9 x + 1/18 z, + + 2 + COEFF(1, 1, 1) = 1/12 x z - 2/27 + 1/18 y + 1/18 z + 1/18 z + 1/12 x y + + 2 2 + + 1/12 y z + 1/18 x + 1/18 x + 1/18 y ] + +> print_coeff__lc_of_data(%, "coeff_I_", "fp", +> "3d.coeffs/3d.cube.order2.smooth0/coeff-I.compute.c"); +bytes used=14018620, alloc=1965720, time=1.22 +bytes used=15018932, alloc=1965720, time=1.29 +bytes used=16019108, alloc=1965720, time=1.37 +bytes used=17019336, alloc=1965720, time=1.43 +bytes used=18019548, alloc=1965720, time=1.51 +bytes used=19019704, alloc=2031244, time=1.59 +bytes used=20020156, alloc=2031244, time=1.67 +> +# d/dx +> simplify( diff(interp_3d_cube_order2_smooth0,x) ); +- 1/18 DATA(-1, 1, -1) + 1/18 DATA(1, 1, -1) - 1/18 DATA(-1, -1, 0) + + + 1/18 DATA(1, -1, 0) - 1/18 DATA(-1, 0, 0) - 1/18 DATA(-1, 1, 0) + + - 1/18 DATA(-1, 1, 1) - 1/18 DATA(-1, 0, 1) + 1/18 DATA(1, -1, 1) + + - 1/18 DATA(-1, -1, 1) - 1/18 DATA(-1, 0, -1) + 1/18 DATA(1, 0, -1) + + + 1/18 DATA(1, 0, 0) + 1/18 DATA(1, 1, 0) + 1/9 x DATA(-1, 0, 0) + + - 2/9 x DATA(0, 1, -1) - 2/9 x DATA(0, -1, 0) - 2/9 x DATA(0, -1, 1) + + - 2/9 x DATA(0, 0, -1) - 2/9 x DATA(0, 0, 0) - 2/9 x DATA(0, 1, 0) + + - 2/9 x DATA(0, 0, 1) - 2/9 x DATA(0, 1, 1) - 2/9 x DATA(0, -1, -1) + + + 1/9 x DATA(1, 0, -1) + 1/9 x DATA(1, 0, 1) + 1/9 x DATA(1, 0, 0) + + - 1/12 y DATA(1, -1, 0) - 1/12 y DATA(-1, 1, -1) + 1/12 y DATA(1, 1, -1) + + + 1/12 y DATA(-1, -1, 0) + 1/12 y DATA(-1, -1, 1) - 1/12 y DATA(-1, 1, 0) + + - 1/12 y DATA(-1, 1, 1) - 1/12 y DATA(1, -1, 1) - 1/12 y DATA(1, -1, -1) + + + 1/12 y DATA(1, 1, 0) + 1/12 y DATA(1, 1, 1) + 1/12 y DATA(-1, -1, -1) + + + 1/12 z DATA(-1, 1, -1) - 1/12 z DATA(1, 1, -1) - 1/12 z DATA(-1, 1, 1) + + - 1/12 z DATA(-1, 0, 1) + 1/12 z DATA(1, -1, 1) - 1/12 z DATA(-1, -1, 1) + + + 1/12 z DATA(-1, 0, -1) - 1/12 z DATA(1, 0, -1) + 1/12 z DATA(1, 0, 1) + + + 1/12 z DATA(1, 1, 1) + 1/12 z DATA(-1, -1, -1) - 1/12 z DATA(1, -1, -1) + + + 1/9 x DATA(1, -1, 0) + 1/9 x DATA(-1, 1, -1) + 1/9 x DATA(1, 1, -1) + + + 1/9 x DATA(-1, -1, 0) + 1/9 x DATA(-1, -1, 1) + 1/9 x DATA(-1, 1, 0) + + + 1/9 x DATA(-1, 1, 1) + 1/9 x DATA(1, -1, 1) + 1/9 x DATA(1, -1, -1) + + + 1/9 x DATA(1, 1, 0) + 1/9 x DATA(1, 1, 1) + 1/9 x DATA(-1, -1, -1) + + + 1/9 x DATA(-1, 0, 1) + 1/9 x DATA(-1, 0, -1) + 1/18 DATA(1, 0, 1) + + + 1/18 DATA(1, 1, 1) - 1/18 DATA(-1, -1, -1) + 1/18 DATA(1, -1, -1) + +> coeff_as_lc_of_data(%, posn_list_3d_size3); +bytes used=21020936, alloc=2031244, time=1.76 +[COEFF(-1, -1, -1) = 1/12 z + 1/9 x - 1/18 + 1/12 y, COEFF(0, -1, -1) = - 2/9 x, + + COEFF(1, -1, -1) = 1/18 + 1/9 x - 1/12 y - 1/12 z, + + COEFF(-1, 0, -1) = 1/9 x + 1/12 z - 1/18, COEFF(0, 0, -1) = - 2/9 x, + + COEFF(1, 0, -1) = - 1/12 z + 1/18 + 1/9 x, + + COEFF(-1, 1, -1) = 1/9 x - 1/18 + 1/12 z - 1/12 y, + + COEFF(0, 1, -1) = - 2/9 x, COEFF(1, 1, -1) = 1/12 y + 1/18 + 1/9 x - 1/12 z, + + COEFF(-1, -1, 0) = - 1/18 + 1/12 y + 1/9 x, COEFF(0, -1, 0) = - 2/9 x, + + COEFF(1, -1, 0) = 1/9 x - 1/12 y + 1/18, COEFF(-1, 0, 0) = 1/9 x - 1/18, + + COEFF(0, 0, 0) = - 2/9 x, COEFF(1, 0, 0) = 1/9 x + 1/18, + + COEFF(-1, 1, 0) = - 1/12 y - 1/18 + 1/9 x, COEFF(0, 1, 0) = - 2/9 x, + + COEFF(1, 1, 0) = 1/12 y + 1/18 + 1/9 x, + + COEFF(-1, -1, 1) = 1/12 y + 1/9 x - 1/18 - 1/12 z, + + COEFF(0, -1, 1) = - 2/9 x, COEFF(1, -1, 1) = 1/9 x + 1/18 + 1/12 z - 1/12 y, + + COEFF(-1, 0, 1) = 1/9 x - 1/12 z - 1/18, COEFF(0, 0, 1) = - 2/9 x, + + COEFF(1, 0, 1) = 1/18 + 1/12 z + 1/9 x, + + COEFF(-1, 1, 1) = - 1/12 y - 1/18 + 1/9 x - 1/12 z, + + COEFF(0, 1, 1) = - 2/9 x, COEFF(1, 1, 1) = 1/12 z + 1/18 + 1/12 y + 1/9 x] + +> print_coeff__lc_of_data(%, "coeff_dx_", "fp", +> "3d.coeffs/3d.cube.order2.smooth0/coeff-dx.compute.c"); +bytes used=22021236, alloc=2031244, time=1.84 +bytes used=23021408, alloc=2031244, time=1.93 +> +# d/dy +> simplify( diff(interp_3d_cube_order2_smooth0,y) ); +1/18 DATA(-1, 1, -1) + 1/18 DATA(0, 1, -1) + 1/18 DATA(1, 1, -1) + + - 1/18 DATA(-1, -1, 0) - 1/18 DATA(0, -1, 0) - 1/18 DATA(1, -1, 0) + + + 1/18 DATA(-1, 1, 0) + 1/18 DATA(-1, 1, 1) - 1/18 DATA(1, -1, 1) + + - 1/18 DATA(-1, -1, 1) - 1/18 DATA(0, -1, 1) + 1/18 DATA(0, 1, 0) + + + 1/18 DATA(1, 1, 0) + 1/9 y DATA(1, -1, 0) + 1/9 y DATA(-1, 1, -1) + + + 1/9 y DATA(1, 1, -1) + 1/9 y DATA(-1, -1, 0) + 1/9 y DATA(-1, -1, 1) + + + 1/9 y DATA(-1, 1, 0) + 1/9 y DATA(-1, 1, 1) + 1/9 y DATA(1, -1, 1) + + + 1/9 y DATA(1, -1, -1) + 1/9 y DATA(1, 1, 0) + 1/9 y DATA(1, 1, 1) + + + 1/9 y DATA(-1, -1, -1) - 1/12 z DATA(-1, 1, -1) - 1/12 z DATA(1, 1, -1) + + + 1/12 z DATA(-1, 1, 1) - 1/12 z DATA(1, -1, 1) - 1/12 z DATA(-1, -1, 1) + + + 1/12 z DATA(1, 1, 1) + 1/12 z DATA(-1, -1, -1) + 1/12 z DATA(1, -1, -1) + + - 1/12 x DATA(1, -1, 0) - 1/12 x DATA(-1, 1, -1) + 1/12 x DATA(1, 1, -1) + + + 1/12 x DATA(-1, -1, 0) + 1/12 x DATA(-1, -1, 1) - 1/12 x DATA(-1, 1, 0) + + - 1/12 x DATA(-1, 1, 1) - 1/12 x DATA(1, -1, 1) - 1/12 x DATA(1, -1, -1) + + + 1/12 x DATA(1, 1, 0) + 1/12 x DATA(1, 1, 1) + 1/12 x DATA(-1, -1, -1) + + + 1/18 DATA(0, 1, 1) + 1/18 DATA(1, 1, 1) + 1/12 z DATA(0, 1, 1) + + + 1/12 z DATA(0, -1, -1) + 1/9 y DATA(0, 1, -1) + 1/9 y DATA(0, -1, 1) + + + 1/9 y DATA(0, 1, 1) + 1/9 y DATA(0, -1, -1) + 1/9 y DATA(0, -1, 0) + + - 1/12 z DATA(0, 1, -1) - 2/9 y DATA(-1, 0, -1) - 2/9 y DATA(1, 0, 1) + + - 2/9 y DATA(-1, 0, 0) - 2/9 y DATA(0, 0, -1) - 2/9 y DATA(1, 0, -1) + + - 2/9 y DATA(0, 0, 0) - 2/9 y DATA(1, 0, 0) + 1/9 y DATA(0, 1, 0) + + - 2/9 y DATA(0, 0, 1) - 2/9 y DATA(-1, 0, 1) - 1/12 z DATA(0, -1, 1) + + - 1/18 DATA(-1, -1, -1) - 1/18 DATA(0, -1, -1) - 1/18 DATA(1, -1, -1) + +> coeff_as_lc_of_data(%, posn_list_3d_size3); +[COEFF(-1, -1, -1) = 1/9 y - 1/18 + 1/12 z + 1/12 x, + + COEFF(0, -1, -1) = 1/12 z + 1/9 y - 1/18, + + COEFF(1, -1, -1) = 1/9 y - 1/12 x - 1/18 + 1/12 z, + + COEFF(-1, 0, -1) = - 2/9 y, COEFF(0, 0, -1) = - 2/9 y, + + COEFF(1, 0, -1) = - 2/9 y, + + COEFF(-1, 1, -1) = - 1/12 z + 1/9 y + 1/18 - 1/12 x, + + COEFF(0, 1, -1) = 1/18 - 1/12 z + 1/9 y, + + COEFF(1, 1, -1) = 1/18 + 1/9 y - 1/12 z + 1/12 x, + + COEFF(-1, -1, 0) = 1/9 y - 1/18 + 1/12 x, COEFF(0, -1, 0) = 1/9 y - 1/18, + + COEFF(1, -1, 0) = 1/9 y - 1/18 - 1/12 x, COEFF(-1, 0, 0) = - 2/9 y, + + COEFF(0, 0, 0) = - 2/9 y, COEFF(1, 0, 0) = - 2/9 y, + + COEFF(-1, 1, 0) = 1/9 y - 1/12 x + 1/18, COEFF(0, 1, 0) = 1/9 y + 1/18, + + COEFF(1, 1, 0) = 1/18 + 1/9 y + 1/12 x, + + COEFF(-1, -1, 1) = - 1/18 + 1/9 y + 1/12 x - 1/12 z, + + COEFF(0, -1, 1) = - 1/18 + 1/9 y - 1/12 z, + + COEFF(1, -1, 1) = 1/9 y - 1/12 z - 1/18 - 1/12 x, COEFF(-1, 0, 1) = - 2/9 y, + + COEFF(0, 0, 1) = - 2/9 y, COEFF(1, 0, 1) = - 2/9 y, + + COEFF(-1, 1, 1) = 1/18 + 1/9 y + 1/12 z - 1/12 x, + + COEFF(0, 1, 1) = 1/12 z + 1/18 + 1/9 y, + + COEFF(1, 1, 1) = 1/12 z + 1/12 x + 1/9 y + 1/18] + +> print_coeff__lc_of_data(%, "coeff_dy_", "fp", +> "3d.coeffs/3d.cube.order2.smooth0/coeff-dy.compute.c"); +bytes used=24021792, alloc=2031244, time=2.00 +bytes used=25021952, alloc=2031244, time=2.08 +> +# d/dz +> simplify( diff(interp_3d_cube_order2_smooth0,z) ); +bytes used=26022160, alloc=2031244, time=2.17 +- 1/18 DATA(-1, 1, -1) - 1/18 DATA(0, 1, -1) - 1/18 DATA(1, 1, -1) + + + 1/12 x DATA(1, 0, 1) + 1/18 DATA(-1, 1, 1) + 1/18 DATA(-1, 0, 1) + + + 1/18 DATA(1, -1, 1) + 1/18 DATA(-1, -1, 1) + 1/18 DATA(0, -1, 1) + + - 1/12 x DATA(1, 0, -1) + 1/12 x DATA(-1, 0, -1) - 1/12 x DATA(-1, 0, 1) + + + 1/9 z DATA(1, 0, -1) + 1/9 z DATA(-1, 0, 1) + 1/9 z DATA(-1, 0, -1) + + - 2/9 z DATA(-1, -1, 0) + 1/9 z DATA(0, 0, -1) + 1/9 z DATA(1, 0, 1) + + - 2/9 z DATA(-1, 0, 0) - 2/9 z DATA(1, -1, 0) - 2/9 z DATA(1, 0, 0) + + + 1/9 z DATA(0, 0, 1) - 2/9 z DATA(0, -1, 0) - 2/9 z DATA(0, 0, 0) + + - 2/9 z DATA(0, 1, 0) - 2/9 z DATA(-1, 1, 0) - 2/9 z DATA(1, 1, 0) + + - 1/18 DATA(-1, 0, -1) - 1/18 DATA(0, 0, -1) - 1/18 DATA(1, 0, -1) + + + 1/18 DATA(0, 0, 1) - 1/12 y DATA(-1, 1, -1) - 1/12 y DATA(1, 1, -1) + + - 1/12 y DATA(-1, -1, 1) + 1/12 y DATA(-1, 1, 1) - 1/12 y DATA(1, -1, 1) + + + 1/12 y DATA(1, -1, -1) + 1/12 y DATA(1, 1, 1) + 1/12 y DATA(-1, -1, -1) + + + 1/9 z DATA(-1, 1, -1) + 1/9 z DATA(1, 1, -1) + 1/9 z DATA(-1, 1, 1) + + + 1/9 z DATA(1, -1, 1) + 1/9 z DATA(-1, -1, 1) + 1/9 z DATA(1, 1, 1) + + + 1/9 z DATA(-1, -1, -1) + 1/9 z DATA(1, -1, -1) + 1/12 x DATA(-1, 1, -1) + + - 1/12 x DATA(1, 1, -1) - 1/12 x DATA(-1, -1, 1) - 1/12 x DATA(-1, 1, 1) + + + 1/12 x DATA(1, -1, 1) - 1/12 x DATA(1, -1, -1) + 1/12 x DATA(1, 1, 1) + + + 1/12 x DATA(-1, -1, -1) + 1/18 DATA(1, 0, 1) + 1/18 DATA(0, 1, 1) + + + 1/18 DATA(1, 1, 1) + 1/9 z DATA(0, 1, 1) + 1/9 z DATA(0, -1, -1) + + - 1/12 y DATA(0, 1, -1) - 1/12 y DATA(0, -1, 1) + 1/12 y DATA(0, 1, 1) + + + 1/12 y DATA(0, -1, -1) + 1/9 z DATA(0, 1, -1) + 1/9 z DATA(0, -1, 1) + + - 1/18 DATA(-1, -1, -1) - 1/18 DATA(0, -1, -1) - 1/18 DATA(1, -1, -1) + +> coeff_as_lc_of_data(%, posn_list_3d_size3); +[COEFF(-1, -1, -1) = - 1/18 + 1/12 x + 1/9 z + 1/12 y, + + COEFF(0, -1, -1) = - 1/18 + 1/12 y + 1/9 z, + + COEFF(1, -1, -1) = - 1/12 x - 1/18 + 1/9 z + 1/12 y, + + COEFF(-1, 0, -1) = - 1/18 + 1/9 z + 1/12 x, + + COEFF(0, 0, -1) = - 1/18 + 1/9 z, COEFF(1, 0, -1) = 1/9 z - 1/18 - 1/12 x, + + COEFF(-1, 1, -1) = 1/12 x - 1/12 y - 1/18 + 1/9 z, + + COEFF(0, 1, -1) = 1/9 z - 1/12 y - 1/18, + + COEFF(1, 1, -1) = - 1/18 - 1/12 y + 1/9 z - 1/12 x, + + COEFF(-1, -1, 0) = - 2/9 z, COEFF(0, -1, 0) = - 2/9 z, + + COEFF(1, -1, 0) = - 2/9 z, COEFF(-1, 0, 0) = - 2/9 z, + + COEFF(0, 0, 0) = - 2/9 z, COEFF(1, 0, 0) = - 2/9 z, + + COEFF(-1, 1, 0) = - 2/9 z, COEFF(0, 1, 0) = - 2/9 z, + + COEFF(1, 1, 0) = - 2/9 z, COEFF(-1, -1, 1) = 1/9 z - 1/12 y + 1/18 - 1/12 x, + + COEFF(0, -1, 1) = - 1/12 y + 1/9 z + 1/18, + + COEFF(1, -1, 1) = 1/18 + 1/12 x - 1/12 y + 1/9 z, + + COEFF(-1, 0, 1) = 1/9 z - 1/12 x + 1/18, COEFF(0, 0, 1) = 1/9 z + 1/18, + + COEFF(1, 0, 1) = 1/9 z + 1/18 + 1/12 x, + + COEFF(-1, 1, 1) = 1/12 y + 1/9 z - 1/12 x + 1/18, + + COEFF(0, 1, 1) = 1/12 y + 1/9 z + 1/18, + + COEFF(1, 1, 1) = 1/12 y + 1/9 z + 1/12 x + 1/18] + +> print_coeff__lc_of_data(%, "coeff_dz_", "fp", +> "3d.coeffs/3d.cube.order2.smooth0/coeff-dz.compute.c"); +bytes used=27022488, alloc=2031244, time=2.23 +bytes used=28022664, alloc=2031244, time=2.32 +> +# d^2/dx^2 +> simplify( diff(interp_3d_cube_order2_smooth0,x,x) ); +bytes used=29023132, alloc=2031244, time=2.44 +1/9 DATA(-1, 1, -1) - 2/9 DATA(0, 1, -1) + 1/9 DATA(1, 1, -1) + + + 1/9 DATA(-1, -1, 0) - 2/9 DATA(0, -1, 0) + 1/9 DATA(1, -1, 0) + + + 1/9 DATA(-1, 0, 0) + 1/9 DATA(-1, 1, 0) + 1/9 DATA(-1, 1, 1) + + + 1/9 DATA(-1, 0, 1) + 1/9 DATA(1, -1, 1) + 1/9 DATA(-1, -1, 1) + + - 2/9 DATA(0, -1, 1) + 1/9 DATA(-1, 0, -1) - 2/9 DATA(0, 0, -1) + + + 1/9 DATA(1, 0, -1) - 2/9 DATA(0, 0, 0) + 1/9 DATA(1, 0, 0) + + - 2/9 DATA(0, 1, 0) + 1/9 DATA(1, 1, 0) - 2/9 DATA(0, 0, 1) + + + 1/9 DATA(1, 0, 1) - 2/9 DATA(0, 1, 1) + 1/9 DATA(1, 1, 1) + + + 1/9 DATA(-1, -1, -1) - 2/9 DATA(0, -1, -1) + 1/9 DATA(1, -1, -1) + +> coeff_as_lc_of_data(%, posn_list_3d_size3); +[COEFF(-1, -1, -1) = 1/9, COEFF(0, -1, -1) = -2/9, COEFF(1, -1, -1) = 1/9, + + COEFF(-1, 0, -1) = 1/9, COEFF(0, 0, -1) = -2/9, COEFF(1, 0, -1) = 1/9, + + COEFF(-1, 1, -1) = 1/9, COEFF(0, 1, -1) = -2/9, COEFF(1, 1, -1) = 1/9, + + COEFF(-1, -1, 0) = 1/9, COEFF(0, -1, 0) = -2/9, COEFF(1, -1, 0) = 1/9, + + COEFF(-1, 0, 0) = 1/9, COEFF(0, 0, 0) = -2/9, COEFF(1, 0, 0) = 1/9, + + COEFF(-1, 1, 0) = 1/9, COEFF(0, 1, 0) = -2/9, COEFF(1, 1, 0) = 1/9, + + COEFF(-1, -1, 1) = 1/9, COEFF(0, -1, 1) = -2/9, COEFF(1, -1, 1) = 1/9, + + COEFF(-1, 0, 1) = 1/9, COEFF(0, 0, 1) = -2/9, COEFF(1, 0, 1) = 1/9, + + COEFF(-1, 1, 1) = 1/9, COEFF(0, 1, 1) = -2/9, COEFF(1, 1, 1) = 1/9] + +> print_coeff__lc_of_data(%, "coeff_dxx_", "fp", +> "3d.coeffs/3d.cube.order2.smooth0/coeff-dxx.compute.c"); +> +# d^2/dxdy +> simplify( diff(interp_3d_cube_order2_smooth0,x,y) ); +bytes used=30023300, alloc=2031244, time=2.54 +- 1/12 DATA(1, -1, 0) - 1/12 DATA(-1, 1, -1) + 1/12 DATA(1, 1, -1) + + + 1/12 DATA(-1, -1, 0) + 1/12 DATA(-1, -1, 1) - 1/12 DATA(-1, 1, 0) + + - 1/12 DATA(-1, 1, 1) - 1/12 DATA(1, -1, 1) - 1/12 DATA(1, -1, -1) + + + 1/12 DATA(1, 1, 0) + 1/12 DATA(1, 1, 1) + 1/12 DATA(-1, -1, -1) + +> coeff_as_lc_of_data(%, posn_list_3d_size3); + -1 +[COEFF(-1, -1, -1) = 1/12, COEFF(0, -1, -1) = 0, COEFF(1, -1, -1) = --, + 12 + + COEFF(-1, 0, -1) = 0, COEFF(0, 0, -1) = 0, COEFF(1, 0, -1) = 0, + + -1 + COEFF(-1, 1, -1) = --, COEFF(0, 1, -1) = 0, COEFF(1, 1, -1) = 1/12, + 12 + + -1 + COEFF(-1, -1, 0) = 1/12, COEFF(0, -1, 0) = 0, COEFF(1, -1, 0) = --, + 12 + + COEFF(-1, 0, 0) = 0, COEFF(0, 0, 0) = 0, COEFF(1, 0, 0) = 0, + + -1 + COEFF(-1, 1, 0) = --, COEFF(0, 1, 0) = 0, COEFF(1, 1, 0) = 1/12, + 12 + + -1 + COEFF(-1, -1, 1) = 1/12, COEFF(0, -1, 1) = 0, COEFF(1, -1, 1) = --, + 12 + + COEFF(-1, 0, 1) = 0, COEFF(0, 0, 1) = 0, COEFF(1, 0, 1) = 0, + + -1 + COEFF(-1, 1, 1) = --, COEFF(0, 1, 1) = 0, COEFF(1, 1, 1) = 1/12] + 12 + +> print_coeff__lc_of_data(%, "coeff_dxy_", "fp", +> "3d.coeffs/3d.cube.order2.smooth0/coeff-dxy.compute.c"); +> +# d^2/dxdz +> simplify( diff(interp_3d_cube_order2_smooth0,x,z) ); +1/12 DATA(-1, 1, -1) - 1/12 DATA(1, 1, -1) - 1/12 DATA(-1, 1, 1) + + - 1/12 DATA(-1, 0, 1) + 1/12 DATA(1, -1, 1) - 1/12 DATA(-1, -1, 1) + + + 1/12 DATA(-1, 0, -1) - 1/12 DATA(1, 0, -1) + 1/12 DATA(1, 0, 1) + + + 1/12 DATA(1, 1, 1) + 1/12 DATA(-1, -1, -1) - 1/12 DATA(1, -1, -1) + +> coeff_as_lc_of_data(%, posn_list_3d_size3); +bytes used=31024036, alloc=2031244, time=2.61 + -1 +[COEFF(-1, -1, -1) = 1/12, COEFF(0, -1, -1) = 0, COEFF(1, -1, -1) = --, + 12 + + -1 + COEFF(-1, 0, -1) = 1/12, COEFF(0, 0, -1) = 0, COEFF(1, 0, -1) = --, + 12 + + -1 + COEFF(-1, 1, -1) = 1/12, COEFF(0, 1, -1) = 0, COEFF(1, 1, -1) = --, + 12 + + COEFF(-1, -1, 0) = 0, COEFF(0, -1, 0) = 0, COEFF(1, -1, 0) = 0, + + COEFF(-1, 0, 0) = 0, COEFF(0, 0, 0) = 0, COEFF(1, 0, 0) = 0, + + COEFF(-1, 1, 0) = 0, COEFF(0, 1, 0) = 0, COEFF(1, 1, 0) = 0, + + -1 + COEFF(-1, -1, 1) = --, COEFF(0, -1, 1) = 0, COEFF(1, -1, 1) = 1/12, + 12 + + -1 + COEFF(-1, 0, 1) = --, COEFF(0, 0, 1) = 0, COEFF(1, 0, 1) = 1/12, + 12 + + -1 + COEFF(-1, 1, 1) = --, COEFF(0, 1, 1) = 0, COEFF(1, 1, 1) = 1/12] + 12 + +> print_coeff__lc_of_data(%, "coeff_dxz_", "fp", +> "3d.coeffs/3d.cube.order2.smooth0/coeff-dxz.compute.c"); +> +# d^2/dy^2 +> simplify( diff(interp_3d_cube_order2_smooth0,y,y) ); +1/9 DATA(-1, 1, -1) + 1/9 DATA(0, 1, -1) + 1/9 DATA(1, 1, -1) + + + 1/9 DATA(-1, -1, 0) + 1/9 DATA(0, -1, 0) + 1/9 DATA(1, -1, 0) + + - 2/9 DATA(-1, 0, 0) + 1/9 DATA(-1, 1, 0) + 1/9 DATA(-1, 1, 1) + + - 2/9 DATA(-1, 0, 1) + 1/9 DATA(1, -1, 1) + 1/9 DATA(-1, -1, 1) + + + 1/9 DATA(0, -1, 1) - 2/9 DATA(-1, 0, -1) - 2/9 DATA(0, 0, -1) + + - 2/9 DATA(1, 0, -1) - 2/9 DATA(0, 0, 0) - 2/9 DATA(1, 0, 0) + + + 1/9 DATA(0, 1, 0) + 1/9 DATA(1, 1, 0) - 2/9 DATA(0, 0, 1) + + - 2/9 DATA(1, 0, 1) + 1/9 DATA(0, 1, 1) + 1/9 DATA(1, 1, 1) + + + 1/9 DATA(-1, -1, -1) + 1/9 DATA(0, -1, -1) + 1/9 DATA(1, -1, -1) + +> coeff_as_lc_of_data(%, posn_list_3d_size3); +bytes used=32024752, alloc=2031244, time=2.69 +[COEFF(-1, -1, -1) = 1/9, COEFF(0, -1, -1) = 1/9, COEFF(1, -1, -1) = 1/9, + + COEFF(-1, 0, -1) = -2/9, COEFF(0, 0, -1) = -2/9, COEFF(1, 0, -1) = -2/9, + + COEFF(-1, 1, -1) = 1/9, COEFF(0, 1, -1) = 1/9, COEFF(1, 1, -1) = 1/9, + + COEFF(-1, -1, 0) = 1/9, COEFF(0, -1, 0) = 1/9, COEFF(1, -1, 0) = 1/9, + + COEFF(-1, 0, 0) = -2/9, COEFF(0, 0, 0) = -2/9, COEFF(1, 0, 0) = -2/9, + + COEFF(-1, 1, 0) = 1/9, COEFF(0, 1, 0) = 1/9, COEFF(1, 1, 0) = 1/9, + + COEFF(-1, -1, 1) = 1/9, COEFF(0, -1, 1) = 1/9, COEFF(1, -1, 1) = 1/9, + + COEFF(-1, 0, 1) = -2/9, COEFF(0, 0, 1) = -2/9, COEFF(1, 0, 1) = -2/9, + + COEFF(-1, 1, 1) = 1/9, COEFF(0, 1, 1) = 1/9, COEFF(1, 1, 1) = 1/9] + +> print_coeff__lc_of_data(%, "coeff_dyy_", "fp", +> "3d.coeffs/3d.cube.order2.smooth0/coeff-dyy.compute.c"); +> +# d^2/dydz +> simplify( diff(interp_3d_cube_order2_smooth0,y,z) ); +- 1/12 DATA(-1, 1, -1) - 1/12 DATA(0, 1, -1) - 1/12 DATA(1, 1, -1) + + + 1/12 DATA(-1, 1, 1) - 1/12 DATA(1, -1, 1) - 1/12 DATA(-1, -1, 1) + + - 1/12 DATA(0, -1, 1) + 1/12 DATA(0, 1, 1) + 1/12 DATA(1, 1, 1) + + + 1/12 DATA(-1, -1, -1) + 1/12 DATA(0, -1, -1) + 1/12 DATA(1, -1, -1) + +> coeff_as_lc_of_data(%, posn_list_3d_size3); +bytes used=33024928, alloc=2031244, time=2.78 +[COEFF(-1, -1, -1) = 1/12, COEFF(0, -1, -1) = 1/12, COEFF(1, -1, -1) = 1/12, + + COEFF(-1, 0, -1) = 0, COEFF(0, 0, -1) = 0, COEFF(1, 0, -1) = 0, + + -1 -1 -1 + COEFF(-1, 1, -1) = --, COEFF(0, 1, -1) = --, COEFF(1, 1, -1) = --, + 12 12 12 + + COEFF(-1, -1, 0) = 0, COEFF(0, -1, 0) = 0, COEFF(1, -1, 0) = 0, + + COEFF(-1, 0, 0) = 0, COEFF(0, 0, 0) = 0, COEFF(1, 0, 0) = 0, + + COEFF(-1, 1, 0) = 0, COEFF(0, 1, 0) = 0, COEFF(1, 1, 0) = 0, + + -1 -1 -1 + COEFF(-1, -1, 1) = --, COEFF(0, -1, 1) = --, COEFF(1, -1, 1) = --, + 12 12 12 + + COEFF(-1, 0, 1) = 0, COEFF(0, 0, 1) = 0, COEFF(1, 0, 1) = 0, + + COEFF(-1, 1, 1) = 1/12, COEFF(0, 1, 1) = 1/12, COEFF(1, 1, 1) = 1/12] + +> print_coeff__lc_of_data(%, "coeff_dyz_", "fp", +> "3d.coeffs/3d.cube.order2.smooth0/coeff-dyz.compute.c"); +> +# d^2/dz^2 +> simplify( diff(interp_3d_cube_order2_smooth0,z,z) ); +bytes used=34025312, alloc=2031244, time=2.89 +1/9 DATA(-1, 1, -1) + 1/9 DATA(0, 1, -1) + 1/9 DATA(1, 1, -1) + + - 2/9 DATA(-1, -1, 0) - 2/9 DATA(0, -1, 0) - 2/9 DATA(1, -1, 0) + + - 2/9 DATA(-1, 0, 0) - 2/9 DATA(-1, 1, 0) + 1/9 DATA(-1, 1, 1) + + + 1/9 DATA(-1, 0, 1) + 1/9 DATA(1, -1, 1) + 1/9 DATA(-1, -1, 1) + + + 1/9 DATA(0, -1, 1) + 1/9 DATA(-1, 0, -1) + 1/9 DATA(0, 0, -1) + + + 1/9 DATA(1, 0, -1) - 2/9 DATA(0, 0, 0) - 2/9 DATA(1, 0, 0) + + - 2/9 DATA(0, 1, 0) - 2/9 DATA(1, 1, 0) + 1/9 DATA(0, 0, 1) + + + 1/9 DATA(1, 0, 1) + 1/9 DATA(0, 1, 1) + 1/9 DATA(1, 1, 1) + + + 1/9 DATA(-1, -1, -1) + 1/9 DATA(0, -1, -1) + 1/9 DATA(1, -1, -1) + +> coeff_as_lc_of_data(%, posn_list_3d_size3); +[COEFF(-1, -1, -1) = 1/9, COEFF(0, -1, -1) = 1/9, COEFF(1, -1, -1) = 1/9, + + COEFF(-1, 0, -1) = 1/9, COEFF(0, 0, -1) = 1/9, COEFF(1, 0, -1) = 1/9, + + COEFF(-1, 1, -1) = 1/9, COEFF(0, 1, -1) = 1/9, COEFF(1, 1, -1) = 1/9, + + COEFF(-1, -1, 0) = -2/9, COEFF(0, -1, 0) = -2/9, COEFF(1, -1, 0) = -2/9, + + COEFF(-1, 0, 0) = -2/9, COEFF(0, 0, 0) = -2/9, COEFF(1, 0, 0) = -2/9, + + COEFF(-1, 1, 0) = -2/9, COEFF(0, 1, 0) = -2/9, COEFF(1, 1, 0) = -2/9, + + COEFF(-1, -1, 1) = 1/9, COEFF(0, -1, 1) = 1/9, COEFF(1, -1, 1) = 1/9, + + COEFF(-1, 0, 1) = 1/9, COEFF(0, 0, 1) = 1/9, COEFF(1, 0, 1) = 1/9, + + COEFF(-1, 1, 1) = 1/9, COEFF(0, 1, 1) = 1/9, COEFF(1, 1, 1) = 1/9] + +> print_coeff__lc_of_data(%, "coeff_dzz_", "fp", +> "3d.coeffs/3d.cube.order2.smooth0/coeff-dzz.compute.c"); +> +######################################## +> +# +# 3d, cube, order=3, smoothing=0 (size=4) +# +> +# interpolating polynomial +> interp_3d_cube_order3_smooth0 +> := polynomial_interpolant(fn_3d_order3, coeff_list_3d_order3, +> coord_list_3d, posn_list_3d_size4); +bytes used=35026948, alloc=2031244, time=2.98 +bytes used=36027136, alloc=2096768, time=3.05 +bytes used=37027456, alloc=2096768, time=3.11 +bytes used=38030376, alloc=2293340, time=3.17 +bytes used=39030536, alloc=2293340, time=3.23 +bytes used=40030756, alloc=2293340, time=3.29 +bytes used=41030928, alloc=2293340, time=3.34 +bytes used=42031404, alloc=2293340, time=3.40 +bytes used=43033292, alloc=2293340, time=3.47 +bytes used=44035376, alloc=2358864, time=3.53 +bytes used=45040940, alloc=2358864, time=3.60 +bytes used=46041308, alloc=2358864, time=3.66 +bytes used=47043752, alloc=2358864, time=3.73 +bytes used=48044056, alloc=2358864, time=3.79 +bytes used=49044220, alloc=2358864, time=3.85 +bytes used=50046492, alloc=2358864, time=3.91 +bytes used=51046824, alloc=2358864, time=3.98 +bytes used=52046944, alloc=2358864, time=4.04 +bytes used=53047268, alloc=2358864, time=4.10 +bytes used=54047528, alloc=2358864, time=4.17 +bytes used=55050640, alloc=2358864, time=4.23 +bytes used=56050828, alloc=2358864, time=4.29 +bytes used=57051208, alloc=2358864, time=4.36 +bytes used=58052460, alloc=2358864, time=4.42 +bytes used=59052768, alloc=2489912, time=4.48 +bytes used=60057372, alloc=2489912, time=4.55 +bytes used=61059752, alloc=2489912, time=4.60 +bytes used=62060724, alloc=2489912, time=4.66 +bytes used=63060956, alloc=2489912, time=4.72 +bytes used=64061432, alloc=2489912, time=4.78 +bytes used=65066040, alloc=2489912, time=4.85 +bytes used=66066332, alloc=2489912, time=4.90 +bytes used=67066496, alloc=2489912, time=4.96 +bytes used=68068000, alloc=2489912, time=5.02 +bytes used=69068220, alloc=2489912, time=5.09 +bytes used=70072748, alloc=2489912, time=5.15 +bytes used=71077796, alloc=2489912, time=5.21 +bytes used=72078156, alloc=2489912, time=5.27 +bytes used=73078376, alloc=2489912, time=5.33 +bytes used=74078596, alloc=2489912, time=5.40 +bytes used=75079856, alloc=2489912, time=5.46 +bytes used=76084640, alloc=2489912, time=5.52 +bytes used=77086068, alloc=2489912, time=5.59 +bytes used=78090380, alloc=2489912, time=5.65 +bytes used=79090644, alloc=2489912, time=5.71 +bytes used=80091296, alloc=2489912, time=5.77 +bytes used=81095352, alloc=2489912, time=5.84 +bytes used=82096664, alloc=2489912, time=5.90 +bytes used=83096844, alloc=2489912, time=5.96 +bytes used=84102552, alloc=2489912, time=6.02 +bytes used=85104180, alloc=2489912, time=6.08 +bytes used=86104432, alloc=2489912, time=6.15 +bytes used=87104660, alloc=2489912, time=6.21 +bytes used=88104924, alloc=2489912, time=6.27 +bytes used=89110948, alloc=2489912, time=6.34 +bytes used=90111216, alloc=2489912, time=6.39 +bytes used=91112852, alloc=2489912, time=6.46 +bytes used=92113016, alloc=2489912, time=6.51 +bytes used=93113312, alloc=2489912, time=6.58 +bytes used=94113512, alloc=2489912, time=6.64 +bytes used=95113780, alloc=2489912, time=6.70 +bytes used=96114016, alloc=2489912, time=6.76 +bytes used=97115612, alloc=2489912, time=6.82 +bytes used=98115780, alloc=2489912, time=6.88 +bytes used=99122180, alloc=2489912, time=6.94 +bytes used=100122344, alloc=2489912, time=7.00 +bytes used=101127360, alloc=2489912, time=7.06 +bytes used=102129696, alloc=2489912, time=7.12 +bytes used=103132368, alloc=2489912, time=7.17 +bytes used=104143644, alloc=2489912, time=7.22 + 97 49 +interp_3d_cube_order3_smooth0 := - ---- DATA(-1, 1, -1) + ---- DATA(0, 1, -1) + 4000 1000 + + 61 71 469 + - ---- DATA(1, 1, -1) + ---- DATA(-1, -1, 0) + ---- DATA(0, -1, 0) + 4000 2000 4000 + + 49 469 49 + + ---- DATA(1, -1, 0) + ---- DATA(-1, 0, 0) + ---- DATA(-1, 1, 0) + 1000 4000 1000 + + 61 49 61 + - ---- DATA(-1, 1, 1) + ---- DATA(-1, 0, 1) - ---- DATA(1, -1, 1) + 4000 1000 4000 + + 97 49 71 + - ---- DATA(-1, -1, 1) + ---- DATA(0, -1, 1) + ---- DATA(-1, 0, -1) + 4000 1000 2000 + + 469 49 177 + + ---- DATA(0, 0, -1) + ---- DATA(1, 0, -1) + ---- DATA(0, 0, 0) + 4000 1000 1000 + + 397 397 49 + + ---- DATA(1, 0, 0) + ---- DATA(0, 1, 0) + ---- DATA(1, 1, 0) + 4000 4000 2000 + + 397 49 49 + + ---- DATA(0, 0, 1) + ---- DATA(1, 0, 1) + ---- DATA(0, 1, 1) + 4000 2000 2000 + + 193 + - ---- DATA(1, 1, 1) + (1/160 DATA(-1, 1, -1) - 1/160 DATA(0, 1, -1) + 4000 + + - 1/160 DATA(1, 1, -1) - 3/160 DATA(-1, -1, 0) + 3/160 DATA(0, -1, 0) + + + 3/160 DATA(1, -1, 0) - 1/160 DATA(-1, 0, 0) + 1/160 DATA(-1, 1, 0) + + + 1/160 DATA(-1, 1, 1) - 1/160 DATA(-1, 0, 1) + 3/160 DATA(1, -1, 1) + + - 3/160 DATA(-1, -1, 1) + 3/160 DATA(0, -1, 1) - 1/160 DATA(-1, 0, -1) + + + 1/160 DATA(0, 0, -1) + 1/160 DATA(1, 0, -1) + 1/160 DATA(0, 0, 0) + + + 1/160 DATA(1, 0, 0) - 1/160 DATA(0, 1, 0) - 1/160 DATA(1, 1, 0) + + + 1/160 DATA(0, 0, 1) + 1/160 DATA(1, 0, 1) - 1/160 DATA(0, 1, 1) + + - 1/160 DATA(1, 1, 1) - 3/160 DATA(-1, -1, -1) + 3/160 DATA(0, -1, -1) + + - 3/160 DATA(1, 2, -1) + 1/160 DATA(2, 1, -1) + 3/160 DATA(-1, 2, -1) + + - 3/160 DATA(0, 2, -1) - 3/160 DATA(2, -1, -1) - 1/160 DATA(2, 0, -1) + + + 1/160 DATA(2, 1, 1) + 3/160 DATA(-1, 2, 1) - 3/160 DATA(0, 2, 1) + + - 3/160 DATA(1, 2, 1) - 3/160 DATA(2, -1, 1) - 1/160 DATA(2, 0, 1) + + + 3/160 DATA(1, -1, -1) - 3/160 DATA(1, 2, 0) + 3/160 DATA(2, 2, 0) + + + 1/160 DATA(2, 1, 0) + 3/160 DATA(-1, 2, 0) - 3/160 DATA(0, 2, 0) + + - 3/160 DATA(2, -1, 0) - 1/160 DATA(2, 0, 0) + 3/160 DATA(2, 2, -1) + + - 3/160 DATA(1, 2, 2) + 3/160 DATA(2, 2, 2) - 1/160 DATA(1, 1, 2) + + + 1/160 DATA(2, 1, 2) + 3/160 DATA(-1, 2, 2) - 3/160 DATA(0, 2, 2) + + + 1/160 DATA(1, 0, 2) - 1/160 DATA(2, 0, 2) + 1/160 DATA(-1, 1, 2) + + - 1/160 DATA(0, 1, 2) + 3/160 DATA(1, -1, 2) - 3/160 DATA(2, -1, 2) + + - 1/160 DATA(-1, 0, 2) + 1/160 DATA(0, 0, 2) - 3/160 DATA(-1, -1, 2) + + 2 + + 3/160 DATA(0, -1, 2) + 3/160 DATA(2, 2, 1)) x y + ( + + 3/160 DATA(-1, 1, -1) + 3/160 DATA(0, 1, -1) + 3/160 DATA(1, 1, -1) + + - 1/160 DATA(-1, -1, 0) - 1/160 DATA(0, -1, 0) - 1/160 DATA(1, -1, 0) + + + 1/160 DATA(-1, 0, 0) + 1/160 DATA(-1, 1, 0) - 1/160 DATA(-1, 1, 1) + + - 1/160 DATA(-1, 0, 1) + 1/160 DATA(1, -1, 1) + 1/160 DATA(-1, -1, 1) + + + 1/160 DATA(0, -1, 1) + 3/160 DATA(-1, 0, -1) + 3/160 DATA(0, 0, -1) + + + 3/160 DATA(1, 0, -1) + 1/160 DATA(0, 0, 0) + 1/160 DATA(1, 0, 0) + + + 1/160 DATA(0, 1, 0) + 1/160 DATA(1, 1, 0) - 1/160 DATA(0, 0, 1) + + - 1/160 DATA(1, 0, 1) - 1/160 DATA(0, 1, 1) - 1/160 DATA(1, 1, 1) + + - 3/160 DATA(-1, -1, -1) - 3/160 DATA(0, -1, -1) - 3/160 DATA(1, 2, -1) + + + 3/160 DATA(2, 1, -1) - 3/160 DATA(-1, 2, -1) - 3/160 DATA(0, 2, -1) + + - 3/160 DATA(2, -1, -1) + 3/160 DATA(2, 0, -1) - 1/160 DATA(2, 1, 1) + + + 1/160 DATA(-1, 2, 1) + 1/160 DATA(0, 2, 1) + 1/160 DATA(1, 2, 1) + + + 1/160 DATA(2, -1, 1) - 1/160 DATA(2, 0, 1) - 3/160 DATA(1, -1, -1) + + - 1/160 DATA(1, 2, 0) - 1/160 DATA(2, 2, 0) + 1/160 DATA(2, 1, 0) + + - 1/160 DATA(-1, 2, 0) - 1/160 DATA(0, 2, 0) - 1/160 DATA(2, -1, 0) + + + 1/160 DATA(2, 0, 0) - 3/160 DATA(2, 2, -1) + 3/160 DATA(1, 2, 2) + + + 3/160 DATA(2, 2, 2) - 3/160 DATA(1, 1, 2) - 3/160 DATA(2, 1, 2) + + + 3/160 DATA(-1, 2, 2) + 3/160 DATA(0, 2, 2) - 3/160 DATA(1, 0, 2) + + - 3/160 DATA(2, 0, 2) - 3/160 DATA(-1, 1, 2) - 3/160 DATA(0, 1, 2) + + + 3/160 DATA(1, -1, 2) + 3/160 DATA(2, -1, 2) - 3/160 DATA(-1, 0, 2) + + - 3/160 DATA(0, 0, 2) + 3/160 DATA(-1, -1, 2) + 3/160 DATA(0, -1, 2) + + 2 + + 1/160 DATA(2, 2, 1)) y z + (- 3/160 DATA(-1, 1, -1) + + + 3/160 DATA(0, 1, -1) + 3/160 DATA(1, 1, -1) - 1/160 DATA(-1, -1, 0) + + + 1/160 DATA(0, -1, 0) + 1/160 DATA(1, -1, 0) - 1/160 DATA(-1, 0, 0) + + - 1/160 DATA(-1, 1, 0) + 1/160 DATA(-1, 1, 1) + 1/160 DATA(-1, 0, 1) + + - 1/160 DATA(1, -1, 1) + 1/160 DATA(-1, -1, 1) - 1/160 DATA(0, -1, 1) + + - 3/160 DATA(-1, 0, -1) + 3/160 DATA(0, 0, -1) + 3/160 DATA(1, 0, -1) + + + 1/160 DATA(0, 0, 0) + 1/160 DATA(1, 0, 0) + 1/160 DATA(0, 1, 0) + + + 1/160 DATA(1, 1, 0) - 1/160 DATA(0, 0, 1) - 1/160 DATA(1, 0, 1) + + - 1/160 DATA(0, 1, 1) - 1/160 DATA(1, 1, 1) - 3/160 DATA(-1, -1, -1) + + + 3/160 DATA(0, -1, -1) + 3/160 DATA(1, 2, -1) - 3/160 DATA(2, 1, -1) + + - 3/160 DATA(-1, 2, -1) + 3/160 DATA(0, 2, -1) - 3/160 DATA(2, -1, -1) + + - 3/160 DATA(2, 0, -1) + 1/160 DATA(2, 1, 1) + 1/160 DATA(-1, 2, 1) + + - 1/160 DATA(0, 2, 1) - 1/160 DATA(1, 2, 1) + 1/160 DATA(2, -1, 1) + + + 1/160 DATA(2, 0, 1) + 3/160 DATA(1, -1, -1) + 1/160 DATA(1, 2, 0) + + - 1/160 DATA(2, 2, 0) - 1/160 DATA(2, 1, 0) - 1/160 DATA(-1, 2, 0) + + + 1/160 DATA(0, 2, 0) - 1/160 DATA(2, -1, 0) - 1/160 DATA(2, 0, 0) + + - 3/160 DATA(2, 2, -1) - 3/160 DATA(1, 2, 2) + 3/160 DATA(2, 2, 2) + + - 3/160 DATA(1, 1, 2) + 3/160 DATA(2, 1, 2) + 3/160 DATA(-1, 2, 2) + + - 3/160 DATA(0, 2, 2) - 3/160 DATA(1, 0, 2) + 3/160 DATA(2, 0, 2) + + + 3/160 DATA(-1, 1, 2) - 3/160 DATA(0, 1, 2) - 3/160 DATA(1, -1, 2) + + + 3/160 DATA(2, -1, 2) + 3/160 DATA(-1, 0, 2) - 3/160 DATA(0, 0, 2) + + 2 + + 3/160 DATA(-1, -1, 2) - 3/160 DATA(0, -1, 2) + 1/160 DATA(2, 2, 1)) x z + + + (3/160 DATA(-1, 1, -1) + 1/160 DATA(0, 1, -1) - 1/160 DATA(1, 1, -1) + + - 3/160 DATA(-1, -1, 0) - 1/160 DATA(0, -1, 0) + 1/160 DATA(1, -1, 0) + + + 3/160 DATA(-1, 0, 0) + 3/160 DATA(-1, 1, 0) + 3/160 DATA(-1, 1, 1) + + + 3/160 DATA(-1, 0, 1) + 1/160 DATA(1, -1, 1) - 3/160 DATA(-1, -1, 1) + + - 1/160 DATA(0, -1, 1) + 3/160 DATA(-1, 0, -1) + 1/160 DATA(0, 0, -1) + + - 1/160 DATA(1, 0, -1) + 1/160 DATA(0, 0, 0) - 1/160 DATA(1, 0, 0) + + + 1/160 DATA(0, 1, 0) - 1/160 DATA(1, 1, 0) + 1/160 DATA(0, 0, 1) + + - 1/160 DATA(1, 0, 1) + 1/160 DATA(0, 1, 1) - 1/160 DATA(1, 1, 1) + + - 3/160 DATA(-1, -1, -1) - 1/160 DATA(0, -1, -1) + 1/160 DATA(1, 2, -1) + + - 3/160 DATA(2, 1, -1) - 3/160 DATA(-1, 2, -1) - 1/160 DATA(0, 2, -1) + + + 3/160 DATA(2, -1, -1) - 3/160 DATA(2, 0, -1) - 3/160 DATA(2, 1, 1) + + - 3/160 DATA(-1, 2, 1) - 1/160 DATA(0, 2, 1) + 1/160 DATA(1, 2, 1) + + + 3/160 DATA(2, -1, 1) - 3/160 DATA(2, 0, 1) + 1/160 DATA(1, -1, -1) + + + 1/160 DATA(1, 2, 0) + 3/160 DATA(2, 2, 0) - 3/160 DATA(2, 1, 0) + + - 3/160 DATA(-1, 2, 0) - 1/160 DATA(0, 2, 0) + 3/160 DATA(2, -1, 0) + + - 3/160 DATA(2, 0, 0) + 3/160 DATA(2, 2, -1) + 1/160 DATA(1, 2, 2) + + + 3/160 DATA(2, 2, 2) - 1/160 DATA(1, 1, 2) - 3/160 DATA(2, 1, 2) + + - 3/160 DATA(-1, 2, 2) - 1/160 DATA(0, 2, 2) - 1/160 DATA(1, 0, 2) + + - 3/160 DATA(2, 0, 2) + 3/160 DATA(-1, 1, 2) + 1/160 DATA(0, 1, 2) + + + 1/160 DATA(1, -1, 2) + 3/160 DATA(2, -1, 2) + 3/160 DATA(-1, 0, 2) + + + 1/160 DATA(0, 0, 2) - 3/160 DATA(-1, -1, 2) - 1/160 DATA(0, -1, 2) + + 2 / 37 + + 3/160 DATA(2, 2, 1)) x y + |- ---- DATA(-1, 1, -1) + \ 1000 + + 33 129 + - 1/250 DATA(0, 1, -1) + ---- DATA(1, 1, -1) + ---- DATA(-1, -1, 0) + 2000 2000 + + 17 + - 7/2000 DATA(0, -1, 0) - --- DATA(1, -1, 0) - 7/2000 DATA(-1, 0, 0) + 500 + + 17 31 13 + - --- DATA(-1, 1, 0) - ---- DATA(-1, 1, 1) - ---- DATA(-1, 0, 1) + 500 1000 2000 + + 31 111 13 + - ---- DATA(1, -1, 1) + ---- DATA(-1, -1, 1) - ---- DATA(0, -1, 1) + 1000 2000 2000 + + 17 + - 1/2000 DATA(-1, 0, -1) - ---- DATA(0, 0, -1) - 1/250 DATA(1, 0, -1) + 2000 + + 19 + - ---- DATA(0, 0, 0) - 3/1000 DATA(1, 0, 0) - 3/1000 DATA(0, 1, 0) + 2000 + + 31 21 + + ---- DATA(1, 1, 0) - ---- DATA(0, 0, 1) - 1/500 DATA(1, 0, 1) + 2000 2000 + + 29 147 + - 1/500 DATA(0, 1, 1) + ---- DATA(1, 1, 1) + ---- DATA(-1, -1, -1) + 2000 2000 + + 49 49 + - 1/2000 DATA(0, -1, -1) + ---- DATA(1, 2, -1) + ---- DATA(2, 1, -1) + 2000 2000 + + 13 + - 9/250 DATA(-1, 2, -1) + ---- DATA(0, 2, -1) - 9/250 DATA(2, -1, -1) + 1000 + + 13 37 + + ---- DATA(2, 0, -1) + ---- DATA(2, 1, 1) - 9/500 DATA(-1, 2, 1) + 1000 2000 + + 19 37 + + ---- DATA(0, 2, 1) + ---- DATA(1, 2, 1) - 9/500 DATA(2, -1, 1) + 1000 2000 + + 19 37 43 + + ---- DATA(2, 0, 1) - ---- DATA(1, -1, -1) + ---- DATA(1, 2, 0) + 1000 1000 2000 + + 21 43 27 + - ---- DATA(2, 2, 0) + ---- DATA(2, 1, 0) - ---- DATA(-1, 2, 0) + 2000 2000 1000 + + 27 + + 2/125 DATA(0, 2, 0) - ---- DATA(2, -1, 0) + 2/125 DATA(2, 0, 0) + 1000 + + 31 57 + - 3/2000 DATA(2, 2, -1) + ---- DATA(1, 2, 2) - ---- DATA(2, 2, 2) + 2000 2000 + + 27 31 + + ---- DATA(1, 1, 2) + ---- DATA(2, 1, 2) - 9/1000 DATA(-1, 2, 2) + 2000 2000 + + 11 11 + + --- DATA(0, 2, 2) - 1/1000 DATA(1, 0, 2) + --- DATA(2, 0, 2) + 500 500 + + - 7/250 DATA(-1, 1, 2) - 1/1000 DATA(0, 1, 2) - 7/250 DATA(1, -1, 2) + + 19 23 + - 9/1000 DATA(2, -1, 2) - ---- DATA(-1, 0, 2) - ---- DATA(0, 0, 2) + 2000 2000 + + 93 19 39 \ + + ---- DATA(-1, -1, 2) - ---- DATA(0, -1, 2) - ---- DATA(2, 2, 1)| x y + ( + 2000 2000 2000 / + + - 3/160 DATA(-1, 1, -1) - 1/160 DATA(0, 1, -1) + 1/160 DATA(1, 1, -1) + + + 3/160 DATA(-1, -1, 0) + 1/160 DATA(0, -1, 0) - 1/160 DATA(1, -1, 0) + + + 3/160 DATA(-1, 0, 0) + 3/160 DATA(-1, 1, 0) + 3/160 DATA(-1, 1, 1) + + + 3/160 DATA(-1, 0, 1) - 1/160 DATA(1, -1, 1) + 3/160 DATA(-1, -1, 1) + + + 1/160 DATA(0, -1, 1) - 3/160 DATA(-1, 0, -1) - 1/160 DATA(0, 0, -1) + + + 1/160 DATA(1, 0, -1) + 1/160 DATA(0, 0, 0) - 1/160 DATA(1, 0, 0) + + + 1/160 DATA(0, 1, 0) - 1/160 DATA(1, 1, 0) + 1/160 DATA(0, 0, 1) + + - 1/160 DATA(1, 0, 1) + 1/160 DATA(0, 1, 1) - 1/160 DATA(1, 1, 1) + + - 3/160 DATA(-1, -1, -1) - 1/160 DATA(0, -1, -1) + 1/160 DATA(1, 2, -1) + + + 3/160 DATA(2, 1, -1) - 3/160 DATA(-1, 2, -1) - 1/160 DATA(0, 2, -1) + + + 3/160 DATA(2, -1, -1) + 3/160 DATA(2, 0, -1) - 3/160 DATA(2, 1, 1) + + + 3/160 DATA(-1, 2, 1) + 1/160 DATA(0, 2, 1) - 1/160 DATA(1, 2, 1) + + - 3/160 DATA(2, -1, 1) - 3/160 DATA(2, 0, 1) + 1/160 DATA(1, -1, -1) + + - 1/160 DATA(1, 2, 0) - 3/160 DATA(2, 2, 0) - 3/160 DATA(2, 1, 0) + + + 3/160 DATA(-1, 2, 0) + 1/160 DATA(0, 2, 0) - 3/160 DATA(2, -1, 0) + + - 3/160 DATA(2, 0, 0) + 3/160 DATA(2, 2, -1) + 1/160 DATA(1, 2, 2) + + + 3/160 DATA(2, 2, 2) + 1/160 DATA(1, 1, 2) + 3/160 DATA(2, 1, 2) + + - 3/160 DATA(-1, 2, 2) - 1/160 DATA(0, 2, 2) + 1/160 DATA(1, 0, 2) + + + 3/160 DATA(2, 0, 2) - 3/160 DATA(-1, 1, 2) - 1/160 DATA(0, 1, 2) + + + 1/160 DATA(1, -1, 2) + 3/160 DATA(2, -1, 2) - 3/160 DATA(-1, 0, 2) + + - 1/160 DATA(0, 0, 2) - 3/160 DATA(-1, -1, 2) - 1/160 DATA(0, -1, 2) + + 2 + - 3/160 DATA(2, 2, 1)) x z + (- 1/32 DATA(-1, 1, -1) + + - 1/32 DATA(0, 1, -1) - 1/32 DATA(1, 1, -1) - 1/96 DATA(-1, -1, 0) + + - 1/96 DATA(0, -1, 0) - 1/96 DATA(1, -1, 0) + 1/32 DATA(-1, 0, 0) + + - 1/32 DATA(-1, 1, 0) - 1/32 DATA(-1, 1, 1) + 1/32 DATA(-1, 0, 1) + + - 1/96 DATA(1, -1, 1) - 1/96 DATA(-1, -1, 1) - 1/96 DATA(0, -1, 1) + + + 1/32 DATA(-1, 0, -1) + 1/32 DATA(0, 0, -1) + 1/32 DATA(1, 0, -1) + + + 1/32 DATA(0, 0, 0) + 1/32 DATA(1, 0, 0) - 1/32 DATA(0, 1, 0) + + - 1/32 DATA(1, 1, 0) + 1/32 DATA(0, 0, 1) + 1/32 DATA(1, 0, 1) + + - 1/32 DATA(0, 1, 1) - 1/32 DATA(1, 1, 1) - 1/96 DATA(-1, -1, -1) + + - 1/96 DATA(0, -1, -1) + 1/96 DATA(1, 2, -1) - 1/32 DATA(2, 1, -1) + + + 1/96 DATA(-1, 2, -1) + 1/96 DATA(0, 2, -1) - 1/96 DATA(2, -1, -1) + + + 1/32 DATA(2, 0, -1) - 1/32 DATA(2, 1, 1) + 1/96 DATA(-1, 2, 1) + + + 1/96 DATA(0, 2, 1) + 1/96 DATA(1, 2, 1) - 1/96 DATA(2, -1, 1) + + + 1/32 DATA(2, 0, 1) - 1/96 DATA(1, -1, -1) + 1/96 DATA(1, 2, 0) + + + 1/96 DATA(2, 2, 0) - 1/32 DATA(2, 1, 0) + 1/96 DATA(-1, 2, 0) + + + 1/96 DATA(0, 2, 0) - 1/96 DATA(2, -1, 0) + 1/32 DATA(2, 0, 0) + + + 1/96 DATA(2, 2, -1) + 1/96 DATA(1, 2, 2) + 1/96 DATA(2, 2, 2) + + - 1/32 DATA(1, 1, 2) - 1/32 DATA(2, 1, 2) + 1/96 DATA(-1, 2, 2) + + + 1/96 DATA(0, 2, 2) + 1/32 DATA(1, 0, 2) + 1/32 DATA(2, 0, 2) + + - 1/32 DATA(-1, 1, 2) - 1/32 DATA(0, 1, 2) - 1/96 DATA(1, -1, 2) + + - 1/96 DATA(2, -1, 2) + 1/32 DATA(-1, 0, 2) + 1/32 DATA(0, 0, 2) + + 3 / + - 1/96 DATA(-1, -1, 2) - 1/96 DATA(0, -1, 2) + 1/96 DATA(2, 2, 1)) y + | + \ + + 1/80 DATA(-1, 1, -1) + 3/160 DATA(0, 1, -1) + 1/40 DATA(1, 1, -1) + + + 7/160 DATA(-1, -1, 0) + 3/80 DATA(0, -1, 0) + 1/32 DATA(1, -1, 0) + + - 3/40 DATA(-1, 0, 0) + 3/160 DATA(-1, 1, 0) + 1/40 DATA(-1, 1, 1) + + 11 + - --- DATA(-1, 0, 1) + 1/40 DATA(1, -1, 1) + 3/80 DATA(-1, -1, 1) + 160 + + 13 + + 1/32 DATA(0, -1, 1) - --- DATA(-1, 0, -1) - 3/40 DATA(0, 0, -1) + 160 + + 11 11 + - --- DATA(1, 0, -1) - --- DATA(0, 0, 0) - 1/16 DATA(1, 0, 0) + 160 160 + + + 1/40 DATA(0, 1, 0) + 1/32 DATA(1, 1, 0) - 1/16 DATA(0, 0, 1) + + - 9/160 DATA(1, 0, 1) + 1/32 DATA(0, 1, 1) + 3/80 DATA(1, 1, 1) + + + 1/20 DATA(-1, -1, -1) + 7/160 DATA(0, -1, -1) + 1/160 DATA(1, 2, -1) + + + 1/32 DATA(2, 1, -1) + 3/160 DATA(-1, 2, -1) + 1/80 DATA(0, 2, -1) + + + 1/32 DATA(2, -1, -1) - 1/16 DATA(2, 0, -1) + 7/160 DATA(2, 1, 1) + + + 1/160 DATA(-1, 2, 1) - 1/160 DATA(1, 2, 1) + 3/160 DATA(2, -1, 1) + + - 1/20 DATA(2, 0, 1) + 3/80 DATA(1, -1, -1) - 1/160 DATA(2, 2, 0) + + + 3/80 DATA(2, 1, 0) + 1/80 DATA(-1, 2, 0) + 1/160 DATA(0, 2, 0) + + + 1/40 DATA(2, -1, 0) - 9/160 DATA(2, 0, 0) - 1/80 DATA(1, 2, 2) + + - 3/160 DATA(2, 2, 2) + 7/160 DATA(1, 1, 2) + 1/20 DATA(2, 1, 2) + + - 1/160 DATA(0, 2, 2) - 1/20 DATA(1, 0, 2) - 7/160 DATA(2, 0, 2) + + + 1/32 DATA(-1, 1, 2) + 3/80 DATA(0, 1, 2) + 3/160 DATA(1, -1, 2) + + + 1/80 DATA(2, -1, 2) - 1/16 DATA(-1, 0, 2) - 9/160 DATA(0, 0, 2) + + \ 2 / + + 1/32 DATA(-1, -1, 2) + 1/40 DATA(0, -1, 2) - 1/80 DATA(2, 2, 1)| y + | + / \ + + 157 323 141 + ---- DATA(-1, 1, -1) + ---- DATA(0, 1, -1) + ---- DATA(1, 1, -1) + 2000 4000 2000 + + 607 437 691 + - ----- DATA(-1, -1, 0) - ---- DATA(0, -1, 0) - ----- DATA(1, -1, 0) + 12000 6000 12000 + + 49 323 141 + - ---- DATA(-1, 0, 0) + ---- DATA(-1, 1, 0) + ---- DATA(-1, 1, 1) + 2000 4000 2000 + + 107 17 97 + - ---- DATA(-1, 0, 1) - --- DATA(1, -1, 1) - ---- DATA(-1, -1, 1) + 4000 375 3000 + + 691 39 49 + - ----- DATA(0, -1, 1) - ---- DATA(-1, 0, -1) - ---- DATA(0, 0, -1) + 12000 4000 2000 + + 107 161 87 + - ---- DATA(1, 0, -1) - ---- DATA(0, 0, 0) - ---- DATA(1, 0, 0) + 4000 4000 2000 + + 21 299 87 + + --- DATA(0, 1, 0) + ---- DATA(1, 1, 0) - ---- DATA(0, 0, 1) + 250 4000 2000 + + 191 299 133 + - ---- DATA(1, 0, 1) + ---- DATA(0, 1, 1) + ---- DATA(1, 1, 1) + 4000 4000 2000 + + 47 607 137 + - ---- DATA(-1, -1, -1) - ----- DATA(0, -1, -1) - ----- DATA(1, 2, -1) + 1500 12000 12000 + + 191 449 17 + + ---- DATA(2, 1, -1) - ----- DATA(-1, 2, -1) - ---- DATA(0, 2, -1) + 4000 12000 3000 + + 281 33 183 + + ----- DATA(2, -1, -1) - ---- DATA(2, 0, -1) + ---- DATA(2, 1, 1) + 12000 2000 4000 + + 137 79 319 + - ----- DATA(-1, 2, 1) + ---- DATA(0, 2, 1) + ----- DATA(1, 2, 1) + 12000 3000 12000 + + 53 79 97 + + ----- DATA(2, -1, 1) - ---- DATA(2, 0, 1) - ---- DATA(1, -1, -1) + 12000 2000 3000 + + 79 167 53 + + ---- DATA(1, 2, 0) - ----- DATA(2, 2, 0) + ---- DATA(2, 1, 0) + 3000 12000 1000 + + 17 349 29 + - ---- DATA(-1, 2, 0) + ----- DATA(0, 2, 0) - ---- DATA(2, -1, 0) + 3000 12000 6000 + + 137 41 + - ---- DATA(2, 0, 0) - --- DATA(2, 2, -1) - 4/375 DATA(1, 2, 2) + 4000 750 + + 539 183 13 + - ----- DATA(2, 2, 2) + ---- DATA(1, 1, 2) + --- DATA(2, 1, 2) + 12000 4000 500 + + 41 167 79 + - --- DATA(-1, 2, 2) - ----- DATA(0, 2, 2) - ---- DATA(1, 0, 2) + 750 12000 2000 + + 129 191 53 + - ---- DATA(2, 0, 2) + ---- DATA(-1, 1, 2) + ---- DATA(0, 1, 2) + 4000 4000 1000 + + 53 307 33 + + ----- DATA(1, -1, 2) + ---- DATA(2, -1, 2) - ---- DATA(-1, 0, 2) + 12000 6000 2000 + + 137 281 29 + - ---- DATA(0, 0, 2) + ----- DATA(-1, -1, 2) - ---- DATA(0, -1, 2) + 4000 12000 6000 + + \ / 97 107 + - 4/375 DATA(2, 2, 1)| y + |- ---- DATA(-1, 1, -1) - ---- DATA(0, 1, -1) + / \ 3000 4000 + + 141 607 49 + + ---- DATA(1, 1, -1) - ----- DATA(-1, -1, 0) - ---- DATA(0, -1, 0) + 2000 12000 2000 + + 323 437 691 + + ---- DATA(1, -1, 0) - ---- DATA(-1, 0, 0) - ----- DATA(-1, 1, 0) + 4000 6000 12000 + + 17 691 141 + - --- DATA(-1, 1, 1) - ----- DATA(-1, 0, 1) + ---- DATA(1, -1, 1) + 375 12000 2000 + + 97 107 607 + - ---- DATA(-1, -1, 1) - ---- DATA(0, -1, 1) - ----- DATA(-1, 0, -1) + 3000 4000 12000 + + 49 323 161 + - ---- DATA(0, 0, -1) + ---- DATA(1, 0, -1) - ---- DATA(0, 0, 0) + 2000 4000 4000 + + 21 87 299 + + --- DATA(1, 0, 0) - ---- DATA(0, 1, 0) + ---- DATA(1, 1, 0) + 250 2000 4000 + + 87 299 191 + - ---- DATA(0, 0, 1) + ---- DATA(1, 0, 1) - ---- DATA(0, 1, 1) + 2000 4000 4000 + + 133 47 39 + + ---- DATA(1, 1, 1) - ---- DATA(-1, -1, -1) - ---- DATA(0, -1, -1) + 2000 1500 4000 + + 191 137 281 + + ---- DATA(1, 2, -1) - ----- DATA(2, 1, -1) + ----- DATA(-1, 2, -1) + 4000 12000 12000 + + 33 449 17 + - ---- DATA(0, 2, -1) - ----- DATA(2, -1, -1) - ---- DATA(2, 0, -1) + 2000 12000 3000 + + 319 53 79 + + ----- DATA(2, 1, 1) + ----- DATA(-1, 2, 1) - ---- DATA(0, 2, 1) + 12000 12000 2000 + + 183 137 79 + + ---- DATA(1, 2, 1) - ----- DATA(2, -1, 1) + ---- DATA(2, 0, 1) + 4000 12000 3000 + + 157 53 167 + + ---- DATA(1, -1, -1) + ---- DATA(1, 2, 0) - ----- DATA(2, 2, 0) + 2000 1000 12000 + + 79 29 137 + + ---- DATA(2, 1, 0) - ---- DATA(-1, 2, 0) - ---- DATA(0, 2, 0) + 3000 6000 4000 + + 17 349 41 + - ---- DATA(2, -1, 0) + ----- DATA(2, 0, 0) - --- DATA(2, 2, -1) + 3000 12000 750 + + 13 539 183 + + --- DATA(1, 2, 2) - ----- DATA(2, 2, 2) + ---- DATA(1, 1, 2) + 500 12000 4000 + + 307 129 + - 4/375 DATA(2, 1, 2) + ---- DATA(-1, 2, 2) - ---- DATA(0, 2, 2) + 6000 4000 + + 53 167 53 + + ---- DATA(1, 0, 2) - ----- DATA(2, 0, 2) + ----- DATA(-1, 1, 2) + 1000 12000 12000 + + 79 191 41 + - ---- DATA(0, 1, 2) + ---- DATA(1, -1, 2) - --- DATA(2, -1, 2) + 2000 4000 750 + + 29 137 281 + - ---- DATA(-1, 0, 2) - ---- DATA(0, 0, 2) + ----- DATA(-1, -1, 2) + 6000 4000 12000 + + 33 \ / + - ---- DATA(0, -1, 2) - 4/375 DATA(2, 2, 1)| x + |3/80 DATA(-1, 1, -1) + 2000 / \ + + 11 + - --- DATA(0, 1, -1) + 1/40 DATA(1, 1, -1) + 7/160 DATA(-1, -1, 0) + 160 + + - 3/40 DATA(0, -1, 0) + 3/160 DATA(1, -1, 0) + 3/80 DATA(-1, 0, 0) + + + 1/32 DATA(-1, 1, 0) + 1/40 DATA(-1, 1, 1) + 1/32 DATA(-1, 0, 1) + + 11 + + 1/40 DATA(1, -1, 1) + 3/80 DATA(-1, -1, 1) - --- DATA(0, -1, 1) + 160 + + + 7/160 DATA(-1, 0, -1) - 3/40 DATA(0, 0, -1) + 3/160 DATA(1, 0, -1) + + 11 + - --- DATA(0, 0, 0) + 1/40 DATA(1, 0, 0) - 1/16 DATA(0, 1, 0) + 160 + + + 1/32 DATA(1, 1, 0) - 1/16 DATA(0, 0, 1) + 1/32 DATA(1, 0, 1) + + - 9/160 DATA(0, 1, 1) + 3/80 DATA(1, 1, 1) + 1/20 DATA(-1, -1, -1) + + 13 + - --- DATA(0, -1, -1) + 1/32 DATA(1, 2, -1) + 1/160 DATA(2, 1, -1) + 160 + + + 1/32 DATA(-1, 2, -1) - 1/16 DATA(0, 2, -1) + 3/160 DATA(2, -1, -1) + + + 1/80 DATA(2, 0, -1) - 1/160 DATA(2, 1, 1) + 3/160 DATA(-1, 2, 1) + + - 1/20 DATA(0, 2, 1) + 7/160 DATA(1, 2, 1) + 1/160 DATA(2, -1, 1) + + + 1/80 DATA(1, -1, -1) + 3/80 DATA(1, 2, 0) - 1/160 DATA(2, 2, 0) + + + 1/40 DATA(-1, 2, 0) - 9/160 DATA(0, 2, 0) + 1/80 DATA(2, -1, 0) + + + 1/160 DATA(2, 0, 0) + 1/20 DATA(1, 2, 2) - 3/160 DATA(2, 2, 2) + + + 7/160 DATA(1, 1, 2) - 1/80 DATA(2, 1, 2) + 1/80 DATA(-1, 2, 2) + + - 7/160 DATA(0, 2, 2) + 3/80 DATA(1, 0, 2) - 1/160 DATA(2, 0, 2) + + + 3/160 DATA(-1, 1, 2) - 1/20 DATA(0, 1, 2) + 1/32 DATA(1, -1, 2) + + + 1/40 DATA(-1, 0, 2) - 9/160 DATA(0, 0, 2) + 1/32 DATA(-1, -1, 2) + + \ 2 + - 1/16 DATA(0, -1, 2) - 1/80 DATA(2, 2, 1)| x + (- 1/96 DATA(-1, 1, -1) + / + + + 1/32 DATA(0, 1, -1) - 1/32 DATA(1, 1, -1) - 1/96 DATA(-1, -1, 0) + + + 1/32 DATA(0, -1, 0) - 1/32 DATA(1, -1, 0) - 1/96 DATA(-1, 0, 0) + + - 1/96 DATA(-1, 1, 0) - 1/96 DATA(-1, 1, 1) - 1/96 DATA(-1, 0, 1) + + - 1/32 DATA(1, -1, 1) - 1/96 DATA(-1, -1, 1) + 1/32 DATA(0, -1, 1) + + - 1/96 DATA(-1, 0, -1) + 1/32 DATA(0, 0, -1) - 1/32 DATA(1, 0, -1) + + + 1/32 DATA(0, 0, 0) - 1/32 DATA(1, 0, 0) + 1/32 DATA(0, 1, 0) + + - 1/32 DATA(1, 1, 0) + 1/32 DATA(0, 0, 1) - 1/32 DATA(1, 0, 1) + + + 1/32 DATA(0, 1, 1) - 1/32 DATA(1, 1, 1) - 1/96 DATA(-1, -1, -1) + + + 1/32 DATA(0, -1, -1) - 1/32 DATA(1, 2, -1) + 1/96 DATA(2, 1, -1) + + - 1/96 DATA(-1, 2, -1) + 1/32 DATA(0, 2, -1) + 1/96 DATA(2, -1, -1) + + + 1/96 DATA(2, 0, -1) + 1/96 DATA(2, 1, 1) - 1/96 DATA(-1, 2, 1) + + + 1/32 DATA(0, 2, 1) - 1/32 DATA(1, 2, 1) + 1/96 DATA(2, -1, 1) + + + 1/96 DATA(2, 0, 1) - 1/32 DATA(1, -1, -1) - 1/32 DATA(1, 2, 0) + + + 1/96 DATA(2, 2, 0) + 1/96 DATA(2, 1, 0) - 1/96 DATA(-1, 2, 0) + + + 1/32 DATA(0, 2, 0) + 1/96 DATA(2, -1, 0) + 1/96 DATA(2, 0, 0) + + + 1/96 DATA(2, 2, -1) - 1/32 DATA(1, 2, 2) + 1/96 DATA(2, 2, 2) + + - 1/32 DATA(1, 1, 2) + 1/96 DATA(2, 1, 2) - 1/96 DATA(-1, 2, 2) + + + 1/32 DATA(0, 2, 2) - 1/32 DATA(1, 0, 2) + 1/96 DATA(2, 0, 2) + + - 1/96 DATA(-1, 1, 2) + 1/32 DATA(0, 1, 2) - 1/32 DATA(1, -1, 2) + + + 1/96 DATA(2, -1, 2) - 1/96 DATA(-1, 0, 2) + 1/32 DATA(0, 0, 2) + + 3 / + - 1/96 DATA(-1, -1, 2) + 1/32 DATA(0, -1, 2) + 1/96 DATA(2, 2, 1)) x + | + \ + + 97 691 17 + - ---- DATA(-1, 1, -1) - ----- DATA(0, 1, -1) - --- DATA(1, 1, -1) + 3000 12000 375 + + 39 49 107 + - ---- DATA(-1, -1, 0) - ---- DATA(0, -1, 0) - ---- DATA(1, -1, 0) + 4000 2000 4000 + + 49 107 141 + - ---- DATA(-1, 0, 0) - ---- DATA(-1, 1, 0) + ---- DATA(-1, 1, 1) + 2000 4000 2000 + + 323 141 157 + + ---- DATA(-1, 0, 1) + ---- DATA(1, -1, 1) + ---- DATA(-1, -1, 1) + 4000 2000 2000 + + 323 607 437 + + ---- DATA(0, -1, 1) - ----- DATA(-1, 0, -1) - ---- DATA(0, 0, -1) + 4000 12000 6000 + + 691 161 87 + - ----- DATA(1, 0, -1) - ---- DATA(0, 0, 0) - ---- DATA(1, 0, 0) + 12000 4000 2000 + + 87 191 21 + - ---- DATA(0, 1, 0) - ---- DATA(1, 1, 0) + --- DATA(0, 0, 1) + 2000 4000 250 + + 299 299 133 + + ---- DATA(1, 0, 1) + ---- DATA(0, 1, 1) + ---- DATA(1, 1, 1) + 4000 4000 2000 + + 47 607 53 + - ---- DATA(-1, -1, -1) - ----- DATA(0, -1, -1) + ----- DATA(1, 2, -1) + 1500 12000 12000 + + 53 281 29 + + ----- DATA(2, 1, -1) + ----- DATA(-1, 2, -1) - ---- DATA(0, 2, -1) + 12000 12000 6000 + + 281 29 183 + + ----- DATA(2, -1, -1) - ---- DATA(2, 0, -1) + ---- DATA(2, 1, 1) + 12000 6000 4000 + + 191 53 183 + + ---- DATA(-1, 2, 1) + ---- DATA(0, 2, 1) + ---- DATA(1, 2, 1) + 4000 1000 4000 + + 191 53 97 + + ---- DATA(2, -1, 1) + ---- DATA(2, 0, 1) - ---- DATA(1, -1, -1) + 4000 1000 3000 + + 79 129 79 + - ---- DATA(1, 2, 0) - ---- DATA(2, 2, 0) - ---- DATA(2, 1, 0) + 2000 4000 2000 + + 33 137 33 + - ---- DATA(-1, 2, 0) - ---- DATA(0, 2, 0) - ---- DATA(2, -1, 0) + 2000 4000 2000 + + 137 307 + - ---- DATA(2, 0, 0) + ---- DATA(2, 2, -1) - 4/375 DATA(1, 2, 2) + 4000 6000 + + 539 319 + - ----- DATA(2, 2, 2) + ----- DATA(1, 1, 2) - 4/375 DATA(2, 1, 2) + 12000 12000 + + 41 167 79 + - --- DATA(-1, 2, 2) - ----- DATA(0, 2, 2) + ---- DATA(1, 0, 2) + 750 12000 3000 + + 167 137 79 + - ----- DATA(2, 0, 2) - ----- DATA(-1, 1, 2) + ---- DATA(0, 1, 2) + 12000 12000 3000 + + 137 41 17 + - ----- DATA(1, -1, 2) - --- DATA(2, -1, 2) - ---- DATA(-1, 0, 2) + 12000 750 3000 + + 349 449 17 + + ----- DATA(0, 0, 2) - ----- DATA(-1, -1, 2) - ---- DATA(0, -1, 2) + 12000 12000 3000 + + 13 \ / + + --- DATA(2, 2, 1)| z + |3/80 DATA(-1, 1, -1) + 1/32 DATA(0, 1, -1) + 500 / \ + + 13 + + 1/40 DATA(1, 1, -1) - --- DATA(-1, -1, 0) - 3/40 DATA(0, -1, 0) + 160 + + 11 11 + - --- DATA(1, -1, 0) - 3/40 DATA(-1, 0, 0) - --- DATA(-1, 1, 0) + 160 160 + + + 1/40 DATA(-1, 1, 1) + 3/160 DATA(-1, 0, 1) + 1/40 DATA(1, -1, 1) + + + 1/80 DATA(-1, -1, 1) + 3/160 DATA(0, -1, 1) + 7/160 DATA(-1, 0, -1) + + 11 + + 3/80 DATA(0, 0, -1) + 1/32 DATA(1, 0, -1) - --- DATA(0, 0, 0) + 160 + + - 1/16 DATA(1, 0, 0) - 1/16 DATA(0, 1, 0) - 9/160 DATA(1, 1, 0) + + + 1/40 DATA(0, 0, 1) + 1/32 DATA(1, 0, 1) + 1/32 DATA(0, 1, 1) + + + 3/80 DATA(1, 1, 1) + 1/20 DATA(-1, -1, -1) + 7/160 DATA(0, -1, -1) + + + 3/160 DATA(1, 2, -1) + 3/160 DATA(2, 1, -1) + 1/32 DATA(-1, 2, -1) + + + 1/40 DATA(0, 2, -1) + 1/32 DATA(2, -1, -1) + 1/40 DATA(2, 0, -1) + + + 7/160 DATA(2, 1, 1) + 1/32 DATA(-1, 2, 1) + 3/80 DATA(0, 2, 1) + + + 7/160 DATA(1, 2, 1) + 1/32 DATA(2, -1, 1) + 3/80 DATA(2, 0, 1) + + + 3/80 DATA(1, -1, -1) - 1/20 DATA(1, 2, 0) - 7/160 DATA(2, 2, 0) + + - 1/20 DATA(2, 1, 0) - 1/16 DATA(-1, 2, 0) - 9/160 DATA(0, 2, 0) + + - 1/16 DATA(2, -1, 0) - 9/160 DATA(2, 0, 0) + 1/80 DATA(2, 2, -1) + + - 1/80 DATA(1, 2, 2) - 3/160 DATA(2, 2, 2) - 1/160 DATA(1, 1, 2) + + - 1/80 DATA(2, 1, 2) - 1/160 DATA(0, 2, 2) - 1/160 DATA(2, 0, 2) + + + 1/160 DATA(-1, 1, 2) + 1/160 DATA(1, -1, 2) + 1/80 DATA(-1, 0, 2) + + + 1/160 DATA(0, 0, 2) + 3/160 DATA(-1, -1, 2) + 1/80 DATA(0, -1, 2) + + \ 2 + + 1/20 DATA(2, 2, 1)| z + (- 1/96 DATA(-1, 1, -1) - 1/96 DATA(0, 1, -1) + / + + - 1/96 DATA(1, 1, -1) + 1/32 DATA(-1, -1, 0) + 1/32 DATA(0, -1, 0) + + + 1/32 DATA(1, -1, 0) + 1/32 DATA(-1, 0, 0) + 1/32 DATA(-1, 1, 0) + + - 1/32 DATA(-1, 1, 1) - 1/32 DATA(-1, 0, 1) - 1/32 DATA(1, -1, 1) + + - 1/32 DATA(-1, -1, 1) - 1/32 DATA(0, -1, 1) - 1/96 DATA(-1, 0, -1) + + - 1/96 DATA(0, 0, -1) - 1/96 DATA(1, 0, -1) + 1/32 DATA(0, 0, 0) + + + 1/32 DATA(1, 0, 0) + 1/32 DATA(0, 1, 0) + 1/32 DATA(1, 1, 0) + + - 1/32 DATA(0, 0, 1) - 1/32 DATA(1, 0, 1) - 1/32 DATA(0, 1, 1) + + - 1/32 DATA(1, 1, 1) - 1/96 DATA(-1, -1, -1) - 1/96 DATA(0, -1, -1) + + - 1/96 DATA(1, 2, -1) - 1/96 DATA(2, 1, -1) - 1/96 DATA(-1, 2, -1) + + - 1/96 DATA(0, 2, -1) - 1/96 DATA(2, -1, -1) - 1/96 DATA(2, 0, -1) + + - 1/32 DATA(2, 1, 1) - 1/32 DATA(-1, 2, 1) - 1/32 DATA(0, 2, 1) + + - 1/32 DATA(1, 2, 1) - 1/32 DATA(2, -1, 1) - 1/32 DATA(2, 0, 1) + + - 1/96 DATA(1, -1, -1) + 1/32 DATA(1, 2, 0) + 1/32 DATA(2, 2, 0) + + + 1/32 DATA(2, 1, 0) + 1/32 DATA(-1, 2, 0) + 1/32 DATA(0, 2, 0) + + + 1/32 DATA(2, -1, 0) + 1/32 DATA(2, 0, 0) - 1/96 DATA(2, 2, -1) + + + 1/96 DATA(1, 2, 2) + 1/96 DATA(2, 2, 2) + 1/96 DATA(1, 1, 2) + + + 1/96 DATA(2, 1, 2) + 1/96 DATA(-1, 2, 2) + 1/96 DATA(0, 2, 2) + + + 1/96 DATA(1, 0, 2) + 1/96 DATA(2, 0, 2) + 1/96 DATA(-1, 1, 2) + + + 1/96 DATA(0, 1, 2) + 1/96 DATA(1, -1, 2) + 1/96 DATA(2, -1, 2) + + + 1/96 DATA(-1, 0, 2) + 1/96 DATA(0, 0, 2) + 1/96 DATA(-1, -1, 2) + + 3 /111 + + 1/96 DATA(0, -1, 2) - 1/32 DATA(2, 2, 1)) z + |---- DATA(-1, 1, -1) + \2000 + + 13 31 + - ---- DATA(0, 1, -1) - ---- DATA(1, 1, -1) - 1/2000 DATA(-1, -1, 0) + 2000 1000 + + 17 + - ---- DATA(0, -1, 0) - 1/250 DATA(1, -1, 0) - 7/2000 DATA(-1, 0, 0) + 2000 + + 13 31 17 + - ---- DATA(-1, 1, 0) - ---- DATA(-1, 1, 1) - --- DATA(-1, 0, 1) + 2000 1000 500 + + 33 37 + + ---- DATA(1, -1, 1) - ---- DATA(-1, -1, 1) - 1/250 DATA(0, -1, 1) + 2000 1000 + + 129 17 + + ---- DATA(-1, 0, -1) - 7/2000 DATA(0, 0, -1) - --- DATA(1, 0, -1) + 2000 500 + + 19 21 + - ---- DATA(0, 0, 0) - 3/1000 DATA(1, 0, 0) - ---- DATA(0, 1, 0) + 2000 2000 + + 31 + - 1/500 DATA(1, 1, 0) - 3/1000 DATA(0, 0, 1) + ---- DATA(1, 0, 1) + 2000 + + 29 147 + - 1/500 DATA(0, 1, 1) + ---- DATA(1, 1, 1) + ---- DATA(-1, -1, -1) + 2000 2000 + + - 1/2000 DATA(0, -1, -1) - 7/250 DATA(1, 2, -1) - 9/500 DATA(2, 1, -1) + + 93 19 + + ---- DATA(-1, 2, -1) - ---- DATA(0, 2, -1) - 9/250 DATA(2, -1, -1) + 2000 2000 + + 27 37 + - ---- DATA(2, 0, -1) + ---- DATA(2, 1, 1) - 7/250 DATA(-1, 2, 1) + 1000 2000 + + 27 49 + - 1/1000 DATA(0, 2, 1) + ---- DATA(1, 2, 1) + ---- DATA(2, -1, 1) + 2000 2000 + + 43 37 + + ---- DATA(2, 0, 1) - ---- DATA(1, -1, -1) - 1/1000 DATA(1, 2, 0) + 2000 1000 + + 11 19 19 + + --- DATA(2, 2, 0) + ---- DATA(2, 1, 0) - ---- DATA(-1, 2, 0) + 500 1000 2000 + + 23 13 + - ---- DATA(0, 2, 0) + ---- DATA(2, -1, 0) + 2/125 DATA(2, 0, 0) + 2000 1000 + + 31 57 + - 9/1000 DATA(2, 2, -1) + ---- DATA(1, 2, 2) - ---- DATA(2, 2, 2) + 2000 2000 + + 37 39 + + ---- DATA(1, 1, 2) - ---- DATA(2, 1, 2) - 9/1000 DATA(-1, 2, 2) + 2000 2000 + + 11 43 21 + + --- DATA(0, 2, 2) + ---- DATA(1, 0, 2) - ---- DATA(2, 0, 2) + 500 2000 2000 + + 19 49 + - 9/500 DATA(-1, 1, 2) + ---- DATA(0, 1, 2) + ---- DATA(1, -1, 2) + 1000 2000 + + 27 + - 3/2000 DATA(2, -1, 2) - ---- DATA(-1, 0, 2) + 2/125 DATA(0, 0, 2) + 1000 + + 13 31 \ + - 9/250 DATA(-1, -1, 2) + ---- DATA(0, -1, 2) + ---- DATA(2, 2, 1)| x z + + 1000 2000 / + + (1/160 DATA(-1, 1, -1) + 1/160 DATA(0, 1, -1) + 1/160 DATA(1, 1, -1) + + + 3/160 DATA(-1, -1, 0) + 3/160 DATA(0, -1, 0) + 3/160 DATA(1, -1, 0) + + + 1/160 DATA(-1, 0, 0) - 1/160 DATA(-1, 1, 0) - 1/160 DATA(-1, 1, 1) + + + 1/160 DATA(-1, 0, 1) + 3/160 DATA(1, -1, 1) + 3/160 DATA(-1, -1, 1) + + + 3/160 DATA(0, -1, 1) - 1/160 DATA(-1, 0, -1) - 1/160 DATA(0, 0, -1) + + - 1/160 DATA(1, 0, -1) + 1/160 DATA(0, 0, 0) + 1/160 DATA(1, 0, 0) + + - 1/160 DATA(0, 1, 0) - 1/160 DATA(1, 1, 0) + 1/160 DATA(0, 0, 1) + + + 1/160 DATA(1, 0, 1) - 1/160 DATA(0, 1, 1) - 1/160 DATA(1, 1, 1) + + - 3/160 DATA(-1, -1, -1) - 3/160 DATA(0, -1, -1) + 3/160 DATA(1, 2, -1) + + + 1/160 DATA(2, 1, -1) + 3/160 DATA(-1, 2, -1) + 3/160 DATA(0, 2, -1) + + - 3/160 DATA(2, -1, -1) - 1/160 DATA(2, 0, -1) - 1/160 DATA(2, 1, 1) + + - 3/160 DATA(-1, 2, 1) - 3/160 DATA(0, 2, 1) - 3/160 DATA(1, 2, 1) + + + 3/160 DATA(2, -1, 1) + 1/160 DATA(2, 0, 1) - 3/160 DATA(1, -1, -1) + + - 3/160 DATA(1, 2, 0) - 3/160 DATA(2, 2, 0) - 1/160 DATA(2, 1, 0) + + - 3/160 DATA(-1, 2, 0) - 3/160 DATA(0, 2, 0) + 3/160 DATA(2, -1, 0) + + + 1/160 DATA(2, 0, 0) + 3/160 DATA(2, 2, -1) + 3/160 DATA(1, 2, 2) + + + 3/160 DATA(2, 2, 2) + 1/160 DATA(1, 1, 2) + 1/160 DATA(2, 1, 2) + + + 3/160 DATA(-1, 2, 2) + 3/160 DATA(0, 2, 2) - 1/160 DATA(1, 0, 2) + + - 1/160 DATA(2, 0, 2) + 1/160 DATA(-1, 1, 2) + 1/160 DATA(0, 1, 2) + + - 3/160 DATA(1, -1, 2) - 3/160 DATA(2, -1, 2) - 1/160 DATA(-1, 0, 2) + + - 1/160 DATA(0, 0, 2) - 3/160 DATA(-1, -1, 2) - 3/160 DATA(0, -1, 2) + + 2 269 71 + - 3/160 DATA(2, 2, 1)) y z - ---- DATA(-1, -1, -1) + ---- DATA(0, -1, -1) + 4000 2000 + + 59 59 59 + - ---- DATA(1, 2, -1) - ---- DATA(2, 1, -1) - ---- DATA(-1, 2, -1) + 2000 2000 1000 + + 73 59 73 + + ---- DATA(0, 2, -1) - ---- DATA(2, -1, -1) + ---- DATA(2, 0, -1) + 4000 1000 4000 + + 23 59 49 + - --- DATA(2, 1, 1) - ---- DATA(-1, 2, 1) + ---- DATA(0, 2, 1) + 500 2000 4000 + + 23 59 49 + - --- DATA(1, 2, 1) - ---- DATA(2, -1, 1) + ---- DATA(2, 0, 1) + 500 2000 4000 + + 97 49 + - ---- DATA(1, -1, -1) + ---- DATA(1, 2, 0) + 7/250 DATA(2, 2, 0) + 4000 4000 + + 49 73 143 + + ---- DATA(2, 1, 0) + ---- DATA(-1, 2, 0) + ---- DATA(0, 2, 0) + 4000 4000 2000 + + 73 143 59 + + ---- DATA(2, -1, 0) + ---- DATA(2, 0, 0) - ---- DATA(2, 2, -1) + 4000 2000 4000 + + 67 77 23 + - ---- DATA(1, 2, 2) + ---- DATA(2, 2, 2) - --- DATA(1, 1, 2) + 4000 2000 500 + + 67 59 + - ---- DATA(2, 1, 2) - ---- DATA(-1, 2, 2) + 7/250 DATA(0, 2, 2) + 4000 4000 + + 49 59 + + ---- DATA(1, 0, 2) + 7/250 DATA(2, 0, 2) - ---- DATA(-1, 1, 2) + 4000 2000 + + 49 59 59 + + ---- DATA(0, 1, 2) - ---- DATA(1, -1, 2) - ---- DATA(2, -1, 2) + 4000 2000 4000 + + 73 143 59 + + ---- DATA(-1, 0, 2) + ---- DATA(0, 0, 2) - ---- DATA(-1, -1, 2) + 4000 2000 1000 + + 73 67 / 37 + + ---- DATA(0, -1, 2) - ---- DATA(2, 2, 1) + |- ---- DATA(-1, 1, -1) + 4000 4000 \ 1000 + + 17 31 + - --- DATA(0, 1, -1) - ---- DATA(1, 1, -1) - 1/2000 DATA(-1, -1, 0) + 500 1000 + + 13 17 + - 7/2000 DATA(0, -1, 0) - ---- DATA(1, -1, 0) - ---- DATA(-1, 0, 0) + 2000 2000 + + 33 + - 1/250 DATA(-1, 1, 0) + ---- DATA(-1, 1, 1) - 1/250 DATA(-1, 0, 1) + 2000 + + 31 37 17 + - ---- DATA(1, -1, 1) - ---- DATA(-1, -1, 1) - --- DATA(0, -1, 1) + 1000 1000 500 + + 13 + - 1/2000 DATA(-1, 0, -1) - 7/2000 DATA(0, 0, -1) - ---- DATA(1, 0, -1) + 2000 + + 19 21 + - ---- DATA(0, 0, 0) - ---- DATA(1, 0, 0) - 3/1000 DATA(0, 1, 0) + 2000 2000 + + - 1/500 DATA(1, 1, 0) - 3/1000 DATA(0, 0, 1) - 1/500 DATA(1, 0, 1) + + 31 29 147 + + ---- DATA(0, 1, 1) + ---- DATA(1, 1, 1) + ---- DATA(-1, -1, -1) + 2000 2000 2000 + + 129 + + ---- DATA(0, -1, -1) - 9/500 DATA(1, 2, -1) - 7/250 DATA(2, 1, -1) + 2000 + + 27 93 + - 9/250 DATA(-1, 2, -1) - ---- DATA(0, 2, -1) + ---- DATA(2, -1, -1) + 1000 2000 + + 19 27 49 + - ---- DATA(2, 0, -1) + ---- DATA(2, 1, 1) + ---- DATA(-1, 2, 1) + 2000 2000 2000 + + 43 37 + + ---- DATA(0, 2, 1) + ---- DATA(1, 2, 1) - 7/250 DATA(2, -1, 1) + 2000 2000 + + 111 19 + - 1/1000 DATA(2, 0, 1) + ---- DATA(1, -1, -1) + ---- DATA(1, 2, 0) + 2000 1000 + + 11 13 + + --- DATA(2, 2, 0) - 1/1000 DATA(2, 1, 0) + ---- DATA(-1, 2, 0) + 500 1000 + + 19 23 + + 2/125 DATA(0, 2, 0) - ---- DATA(2, -1, 0) - ---- DATA(2, 0, 0) + 2000 2000 + + 39 57 + - 9/1000 DATA(2, 2, -1) - ---- DATA(1, 2, 2) - ---- DATA(2, 2, 2) + 2000 2000 + + 37 31 + + ---- DATA(1, 1, 2) + ---- DATA(2, 1, 2) - 3/2000 DATA(-1, 2, 2) + 2000 2000 + + 21 19 11 + - ---- DATA(0, 2, 2) + ---- DATA(1, 0, 2) + --- DATA(2, 0, 2) + 2000 1000 500 + + 49 43 + + ---- DATA(-1, 1, 2) + ---- DATA(0, 1, 2) - 9/500 DATA(1, -1, 2) + 2000 2000 + + 13 + - 9/1000 DATA(2, -1, 2) + ---- DATA(-1, 0, 2) + 2/125 DATA(0, 0, 2) + 1000 + + 27 31 \ + - 9/250 DATA(-1, -1, 2) - ---- DATA(0, -1, 2) + ---- DATA(2, 2, 1)| y z + + 1000 2000 / + + / + |9/1000 DATA(-1, 1, -1) + 3/1000 DATA(0, 1, -1) - 3/1000 DATA(1, 1, -1) + \ + + - 9/1000 DATA(-1, -1, 0) - 3/1000 DATA(0, -1, 0) + 3/1000 DATA(1, -1, 0) + + - 3/1000 DATA(-1, 0, 0) + 3/1000 DATA(-1, 1, 0) - 3/1000 DATA(-1, 1, 1) + + + 3/1000 DATA(-1, 0, 1) - 3/1000 DATA(1, -1, 1) + 9/1000 DATA(-1, -1, 1) + + + 3/1000 DATA(0, -1, 1) - 9/1000 DATA(-1, 0, -1) - 3/1000 DATA(0, 0, -1) + + + 3/1000 DATA(1, 0, -1) - 1/1000 DATA(0, 0, 0) + 1/1000 DATA(1, 0, 0) + + + 1/1000 DATA(0, 1, 0) - 1/1000 DATA(1, 1, 0) + 1/1000 DATA(0, 0, 1) + + - 1/1000 DATA(1, 0, 1) - 1/1000 DATA(0, 1, 1) + 1/1000 DATA(1, 1, 1) + + 27 + - ---- DATA(-1, -1, -1) - 9/1000 DATA(0, -1, -1) - 9/1000 DATA(1, 2, -1) + 1000 + + 27 + - 9/1000 DATA(2, 1, -1) + ---- DATA(-1, 2, -1) + 9/1000 DATA(0, 2, -1) + 1000 + + 27 + + ---- DATA(2, -1, -1) + 9/1000 DATA(2, 0, -1) + 3/1000 DATA(2, 1, 1) + 1000 + + - 9/1000 DATA(-1, 2, 1) - 3/1000 DATA(0, 2, 1) + 3/1000 DATA(1, 2, 1) + + - 9/1000 DATA(2, -1, 1) - 3/1000 DATA(2, 0, 1) + 9/1000 DATA(1, -1, -1) + + - 3/1000 DATA(1, 2, 0) - 9/1000 DATA(2, 2, 0) - 3/1000 DATA(2, 1, 0) + + + 9/1000 DATA(-1, 2, 0) + 3/1000 DATA(0, 2, 0) + 9/1000 DATA(2, -1, 0) + + 27 + + 3/1000 DATA(2, 0, 0) - ---- DATA(2, 2, -1) + 9/1000 DATA(1, 2, 2) + 1000 + + 27 + + ---- DATA(2, 2, 2) + 3/1000 DATA(1, 1, 2) + 9/1000 DATA(2, 1, 2) + 1000 + + 27 + - ---- DATA(-1, 2, 2) - 9/1000 DATA(0, 2, 2) - 3/1000 DATA(1, 0, 2) + 1000 + + - 9/1000 DATA(2, 0, 2) - 9/1000 DATA(-1, 1, 2) - 3/1000 DATA(0, 1, 2) + + 27 + - 9/1000 DATA(1, -1, 2) - ---- DATA(2, -1, 2) + 9/1000 DATA(-1, 0, 2) + 1000 + + 27 + + 3/1000 DATA(0, 0, 2) + ---- DATA(-1, -1, 2) + 9/1000 DATA(0, -1, 2) + 1000 + + \ + + 9/1000 DATA(2, 2, 1)| x y z + / + +> +# I +> coeff_as_lc_of_data(%, posn_list_3d_size4); +bytes used=105152604, alloc=2489912, time=7.28 +bytes used=106152820, alloc=2489912, time=7.35 +bytes used=107216572, alloc=2489912, time=7.41 +bytes used=108294684, alloc=2489912, time=7.48 +bytes used=109300848, alloc=2489912, time=7.54 +bytes used=110333976, alloc=2489912, time=7.61 +bytes used=111346724, alloc=2620960, time=7.68 +bytes used=112346876, alloc=2817532, time=7.75 +bytes used=113347044, alloc=2883056, time=7.82 +bytes used=114347284, alloc=3014104, time=7.89 +bytes used=115378052, alloc=3341724, time=7.95 +bytes used=116390676, alloc=3341724, time=8.00 +bytes used=117403452, alloc=3341724, time=8.06 + 2 147 147 27 47 +[COEFF(-1, -1, -1) = - 3/160 x z + ---- x y + ---- x z - ---- x y z - ---- z + 2000 2000 1000 1500 + + 2 3 2 147 2 2 + - 3/160 x y - 1/96 x + 1/20 y + ---- y z - 3/160 x y - 3/160 y z + 2000 + + 2 2 3 2 2 47 3 + - 3/160 y z - 3/160 x z - 1/96 z + 1/20 x + 1/20 z - ---- x - 1/96 y + 1500 + + 47 269 2 2 + - ---- y - ----, COEFF(0, -1, -1) = 3/160 x z - 9/1000 x y z - 3/160 y z + 1500 4000 + + 2 3 2 3 + - 1/2000 x y - 1/160 x z - 1/96 z + 3/160 x y + 1/32 x - 1/2000 x z + + 39 129 3 2 2 607 607 + - ---- x + ---- y z - 1/96 y + 7/160 z - 1/160 x y - ----- z - ----- y + 4000 2000 12000 12000 + + 2 13 2 71 2 2 + - 3/160 y z - --- x + ---- + 7/160 y , COEFF(1, -1, -1) = 3/160 x y + 160 2000 + + 2 2 111 2 2 + + 1/160 x z + 3/160 x z + ---- y z - 3/160 y z + 1/160 x y + 2000 + + 2 37 157 37 3 97 + + 9/1000 x y z + 3/80 z - ---- x y + ---- x - ---- x z - 1/96 y - ---- + 1000 2000 1000 4000 + + 97 2 3 2 97 3 2 + - ---- z - 3/160 y z - 1/96 z + 3/80 y - ---- y - 1/32 x + 1/80 x , + 3000 3000 + + 2 3 2 27 + COEFF(2, -1, -1) = 1/32 y - 9/250 x y + 1/96 x + 3/160 x + ---- x y z + 1000 + + 281 2 3 93 281 + + ----- z - 9/250 x z + 3/160 x z - 1/96 y + ---- y z + ----- y + 12000 2000 12000 + + 2 2 2 2 2 3 + - 3/160 y z + 1/32 z - 3/160 x z + 3/160 x y - 3/160 y z - 1/96 z + + 59 2 449 129 71 + - ---- - 3/160 x y - ----- x, COEFF(-1, 0, -1) = ---- x z + ---- + 1000 12000 2000 2000 + + 2 2 3 + - 3/160 x z - 9/1000 x y z - 1/2000 x y + 3/160 x y + 1/32 y + + 2 607 3 3 39 2 + + 3/160 y z - ----- x - 1/96 z - 1/96 x - ---- y - 1/160 y z + 12000 4000 + + 2 2 13 2 607 2 + + 7/160 x - 1/160 x y - --- y - ----- z + 7/160 z - 1/2000 y z + 160 12000 + + 2 2 437 + - 3/160 x z , COEFF(0, 0, -1) = 3/160 y z - 7/2000 x z - ---- z + 6000 + + 2 17 469 2 2 + + 1/160 x y - ---- x y + ---- - 1/160 x z - 3/40 y - 7/2000 y z + 2000 4000 + + 2 49 49 2 3 2 3 + - 3/40 x - ---- x - ---- y + 1/160 x y - 1/96 z + 3/160 x z + 1/32 y + 2000 2000 + + 2 3 2 49 + + 3/80 z - 3/1000 x y z + 1/32 x - 1/160 y z , COEFF(1, 0, -1) = ---- + 1000 + + 2 3 2 2 2 13 + + 1/160 x z - 1/32 x + 3/160 x z + 3/160 x + 1/32 z - ---- y z + 2000 + + 107 3 3 2 + - 1/250 x y - ---- y + 3/1000 x y z - 1/96 z + 1/32 y - 1/160 x y + 4000 + + 2 2 17 2 691 11 2 + + 3/160 y z - 1/160 y z - --- x z + 1/160 x y - ----- z - --- y + 500 12000 160 + + 323 3 2 2 + + ---- x, COEFF(2, 0, -1) = - 1/96 z + 9/1000 x y z + 1/80 x - 1/16 y + 4000 + + 33 17 2 3 13 2 27 + - ---- y - ---- x + 3/160 y z + 1/32 y + ---- x y + 1/40 z - ---- x z + 2000 3000 1000 1000 + + 29 19 2 2 2 73 + - ---- z - ---- y z - 3/160 x y - 1/160 x y - 3/160 x z + ---- + 6000 2000 4000 + + 2 3 2 2 + - 1/160 y z + 1/96 x + 3/160 x z , COEFF(-1, 1, -1) = 1/160 y z + + 37 157 97 2 3 2 3 + - ---- x y + ---- y - ---- + 3/80 x - 1/32 y + 1/80 y - 1/96 z + 1000 2000 4000 + + 2 97 2 3 111 97 37 + + 3/80 z - ---- z + 3/160 x y - 1/96 x + ---- x z - ---- x - ---- y z + 3000 2000 3000 1000 + + 2 2 2 2 + - 3/160 x z + 1/160 x y + 3/160 y z - 3/160 x z + 9/1000 x y z, + + 17 2 2 + COEFF(0, 1, -1) = - --- y z + 3/160 y z - 1/160 x z - 1/250 x y + 500 + + 2 2 3 49 3 + + 1/160 x y + 3/160 x z + 3/1000 x y z + 1/32 x + ---- - 1/32 y + 1000 + + 691 3 2 323 13 2 + - ----- z - 1/96 z - 1/160 x y + ---- y - ---- x z + 3/160 y + 12000 4000 2000 + + 2 11 2 2 107 3 + + 1/160 y z - --- x + 1/32 z - ---- x, COEFF(1, 1, -1) = - 1/96 z + 160 4000 + + 17 2 2 141 141 33 2 + - --- z + 1/160 x z + 1/40 y + ---- y + ---- x + ---- x y + 1/160 y z + 375 2000 2000 2000 + + 61 2 3 2 2 31 2 + - ---- - 1/160 x y - 1/32 y + 3/160 x z + 1/40 z - ---- y z + 1/40 x + 4000 1000 + + 3 2 2 31 + - 1/32 x - 1/160 x y - 3/1000 x y z + 3/160 y z - ---- x z, + 1000 + + 53 3 2 + COEFF(2, 1, -1) = ----- z - 9/1000 x y z - 1/32 y - 7/250 y z + 3/160 x z + 12000 + + 2 191 3 49 3 2 + + 3/160 y z + ---- y + 1/96 x + ---- x y - 1/96 z - 3/160 x z + 4000 2000 + + 2 2 2 2 59 + + 3/160 z - 9/500 x z + 1/32 y + 1/160 x y + 1/160 y z - ---- + 2000 + + 2 137 2 2 + + 1/160 x - ----- x - 3/160 x y , COEFF(-1, 2, -1) = - 3/160 y z + 12000 + + 2 59 2 2 2 + - 3/160 x y - ---- + 3/160 y z - 3/160 x z - 9/250 x y + 3/160 x y + 1000 + + 27 93 2 2 2 + + ---- x y z + ---- x z + 1/32 x - 3/160 x z + 3/160 y - 9/250 y z + 1000 2000 + + 2 3 3 281 3 449 281 + + 1/32 z + 1/96 y - 1/96 z + ----- z - 1/96 x - ----- y + ----- x, + 12000 12000 12000 + + 2 73 3 3 2 33 + COEFF(0, 2, -1) = 1/40 z + ---- - 1/96 z + 1/32 x - 1/160 x y - ---- x + 4000 2000 + + 19 2 3 27 29 + - ---- x z + 9/1000 x y z + 3/160 x z + 1/96 y - ---- y z - ---- z + 2000 1000 6000 + + 2 17 2 2 13 2 + - 3/160 x y - ---- y - 3/160 y z - 1/16 x + ---- x y + 1/80 y + 3000 1000 + + 2 2 2 2 2 + + 3/160 y z - 1/160 x z , COEFF(1, 2, -1) = 1/32 x + 1/160 y + 3/160 z + + 59 3 3 53 3 2 + - ---- - 1/32 x + 1/96 y - 7/250 x z + ----- z - 1/96 z + 1/160 x z + 2000 12000 + + 2 2 191 2 2 + - 3/160 x y + 3/160 y z - 9/500 y z + ---- x + 3/160 x z - 3/160 y z + 4000 + + 2 49 137 + + 1/160 x y - 9/1000 x y z + ---- x y - ----- y, COEFF(2, 2, -1) = + 2000 12000 + + 3 2 3 2 2 2 + - 1/96 z + 3/160 x y + 1/96 y + 3/160 x z + 3/160 y z + 1/80 z + + 3 41 59 27 41 + - 9/1000 x z + 1/96 x - --- y - ---- - ---- x y z - 9/1000 y z - --- x + 750 4000 1000 750 + + 2 2 307 2 + - 3/160 x z - 3/160 y z + ---- z + 3/160 x y - 3/2000 x y, + 6000 + + 2 2 2 13 2 129 + COEFF(-1, -1, 0) = 3/160 x z + 7/160 y + 3/160 y z - --- z + ---- x y + 160 2000 + + 2 71 3 2 2 2 + - 3/160 x y + ---- + 1/32 z - 3/160 x y - 1/160 x z - 1/160 y z + 2000 + + 607 2 3 607 + - ----- x + 7/160 x - 9/1000 x y z - 1/96 y - ----- y - 1/2000 x z + 12000 12000 + + 39 3 469 + - ---- z - 1/2000 y z - 1/96 x , COEFF(0, -1, 0) = - 7/2000 y z + ---- + 4000 4000 + + 2 2 2 3 2 + - 7/2000 x y - 1/160 x y + 3/160 x y - 3/40 x - 1/96 y + 1/160 x z + + 2 3 49 2 2 + - 3/40 z + 1/32 z - 3/1000 x y z - ---- x + 3/80 y - 1/160 y z + 2000 + + 17 437 2 49 2 3 + - ---- x z - ---- y + 1/160 x z - ---- z + 3/160 y z + 1/32 x , + 2000 6000 2000 + + 323 2 2 3 + COEFF(1, -1, 0) = ---- x + 3/1000 x y z + 1/32 y - 1/160 y z - 1/32 x + 4000 + + 13 2 2 2 107 17 + - ---- y z + 3/160 x - 1/160 x z + 1/160 x y - ---- z - --- x y + 2000 4000 500 + + 3 2 49 2 2 + + 1/32 z - 1/250 x z + 1/160 x z + ---- + 3/160 x y + 3/160 y z + 1000 + + 11 2 3 691 73 19 2 + - --- z - 1/96 y - ----- y, COEFF(2, -1, 0) = ---- - ---- y z - 1/16 z + 160 12000 4000 2000 + + 2 17 27 2 33 2 13 + + 1/80 x - ---- x - ---- x y + 1/40 y - ---- z - 1/160 y z + ---- x z + 3000 1000 2000 1000 + + 2 2 2 3 3 3 + - 3/160 x y + 3/160 y z + 3/160 x y + 1/96 x - 1/96 y + 1/32 z + + 29 2 2 + + 9/1000 x y z - ---- y - 1/160 x z - 3/160 x z , COEFF(-1, 0, 0) = + 6000 + + 2 49 17 2 469 2 + 3/160 x z - ---- z - ---- y z + 3/160 x y + ---- + 1/160 y z + 2000 2000 4000 + + 2 2 2 2 2 2 + - 1/160 x z + 1/160 y z - 3/40 z - 3/40 y - 1/160 x y + 3/80 x + + 437 49 3 + - ---- x - 7/2000 x z - 7/2000 x y - ---- y - 3/1000 x y z + 1/32 z + 6000 2000 + + 3 3 2 2 2 + + 1/32 y - 1/96 x , COEFF(0, 0, 0) = 1/160 x z + 1/160 y z + 1/160 x y + + 2 19 2 161 19 + - 1/1000 x y z + 1/160 x y - ---- y z + 1/160 y z - ---- y - ---- x y + 2000 4000 2000 + + 3 177 11 2 19 161 2 3 + + 1/32 y + ---- - --- z - ---- x z - ---- x + 1/160 x z + 1/32 z + 1000 160 2000 4000 + + 11 2 3 11 2 161 21 2 + - --- x + 1/32 x - --- y - ---- z, COEFF(1, 0, 0) = --- x + 1/160 x z + 160 160 4000 250 + + 2 2 3 397 87 + - 1/16 z + 1/160 y z - 3/1000 x y + 1/32 y + ---- - 3/1000 x z - ---- z + 4000 2000 + + 2 2 21 2 2 + + 1/1000 x y z + 1/160 y z - 1/160 x y - ---- y z - 1/16 y - 1/160 x z + 2000 + + 3 2 3 87 2 143 + - 1/32 x + 1/40 x + 1/32 z - ---- y + 1/160 x y, COEFF(2, 0, 0) = ---- + 2000 2000 + + 2 3 3 2 3 2 137 + - 9/160 z + 1/32 y + 1/32 z + 1/160 y z + 1/96 x + 1/160 x - ---- y + 4000 + + 2 23 2 2 + + 3/1000 x y z + 2/125 x y - 9/160 y - ---- y z - 1/160 x y - 3/160 x z + 2000 + + 137 2 349 2 2 + - ---- z - 3/160 x y + ----- x - 1/160 x z + 1/160 y z + 2/125 x z, + 4000 12000 + + 49 2 11 2 + COEFF(-1, 1, 0) = ---- + 3/1000 x y z + 3/160 y - 1/250 y z - --- z + 1000 160 + + 2 2 3 2 2 13 + + 1/160 x y + 3/160 x y - 1/32 y + 3/160 x z + 1/160 y z - ---- x z + 2000 + + 2 2 3 17 3 691 107 + - 1/160 y z - 1/160 x z - 1/96 x - --- x y + 1/32 z - ----- x - ---- z + 500 12000 4000 + + 323 2 2 2 + + ---- y + 1/32 x , COEFF(0, 1, 0) = - 1/160 y z + 1/160 y z + 4000 + + 2 2 21 397 3 + + 1/1000 x y z + 1/160 x z + 1/160 x y - ---- x z + ---- + 1/32 z + 2000 4000 + + 87 2 2 2 2 + - 3/1000 y z - ---- z + 1/160 x z + 1/40 y - 1/160 x y - 1/16 z + 2000 + + 21 87 3 3 2 + + --- y - ---- x - 1/32 y - 3/1000 x y + 1/32 x - 1/16 x , + 250 2000 + + 31 2 2 + COEFF(1, 1, 0) = ---- x y - 1/1000 x y z - 1/160 y z + 1/160 x z + 2000 + + 2 49 191 2 2 + - 1/160 x y + ---- - 1/500 y z - ---- z - 1/160 x z + 1/32 y + 2000 4000 + + 2 2 299 2 3 2 + - 1/160 x y - 9/160 z + ---- y + 1/32 x - 1/32 y + 1/160 y z + 4000 + + 3 299 3 53 + - 1/32 x + ---- x + 1/32 z - 1/500 x z, COEFF(2, 1, 0) = ---- y + 4000 1000 + + 2 79 43 2 79 2 2 + - 1/20 z - ---- z + ---- x y - 3/160 x y + ---- x + 3/80 y - 3/160 x z + 2000 2000 3000 + + 2 19 2 3 + - 1/160 x z - 1/1000 y z + ---- x z + 1/160 x y + 1/96 x - 3/1000 x y z + 1000 + + 2 3 2 49 3 + + 1/160 y z + 1/32 z - 1/160 y z + ---- - 1/32 y , COEFF(-1, 2, 0) = + 4000 + + 2 2 19 2 2 + 9/1000 x y z + 3/160 x z + 1/80 y - ---- x z - 1/160 x z - 3/160 y z + 2000 + + 2 2 3 3 13 17 73 + - 1/16 z - 3/160 x y - 1/96 x + 1/32 z + ---- y z - ---- y + ---- + 1000 3000 4000 + + 29 2 33 27 2 2 3 + - ---- x + 1/40 x - ---- z - ---- x y + 3/160 x y - 1/160 y z + 1/96 y + 6000 2000 1000 + + 2 2 3 + , COEFF(0, 2, 0) = - 1/160 y z + 1/160 y + 2/125 y z + 1/32 x + + 2 2 2 137 + - 3/160 x y + 1/160 x z + 1/160 x z - ---- z + 3/1000 x y z + 4000 + + 2 143 3 2 23 3 2 + - 3/160 y z + ---- + 1/96 y - 9/160 z - ---- x z + 1/32 z - 9/160 x + 2000 2000 + + 137 2 349 43 + - ---- x - 1/160 x y + ----- y + 2/125 x y, COEFF(1, 2, 0) = ---- x y + 4000 12000 2000 + + 2 2 49 3 + - 1/1000 x z + 1/160 x y - 1/20 z + ---- + 1/96 y - 3/1000 x y z + 4000 + + 79 2 79 53 2 2 19 + + ---- y - 3/160 x y - ---- z + ---- x + 3/80 x - 3/160 y z + ---- y z + 3000 2000 1000 1000 + + 3 2 3 2 2 + + 1/32 z + 1/160 x z - 1/32 x - 1/160 x z - 1/160 y z, COEFF(2, 2, 0) + + 11 2 21 2 2 2 + = --- y z - 1/160 x z - ---- x y - 3/160 y z + 3/160 x y - 1/160 y z + 500 2000 + + 2 3 11 2 129 2 + - 3/160 x z + 1/96 y + --- x z - 1/160 x + 7/250 - ---- z - 1/160 y + 500 4000 + + 3 2 3 167 2 167 + + 1/32 z - 7/160 z + 1/96 x - ----- x + 3/160 x y - ----- y + 12000 12000 + + 37 111 2 + - 9/1000 x y z, COEFF(-1, -1, 1) = - ---- x z + ---- x y - 3/160 x y + 1000 2000 + + 2 97 97 37 3 2 2 + + 3/160 x z - ---- - ---- y - ---- y z - 1/96 y + 1/160 x z + 3/80 x + 4000 3000 1000 + + 2 3 2 3 2 157 97 + + 1/160 y z - 1/32 z + 3/80 y - 1/96 x + 1/80 z + ---- z - ---- x + 2000 3000 + + 2 2 49 + - 3/160 x y + 3/160 y z + 9/1000 x y z, COEFF(0, -1, 1) = ---- + 1000 + + 2 17 13 3 107 + + 3/160 z - --- y z - ---- x y + 1/32 x + 3/1000 x y z - ---- x + 500 2000 4000 + + 2 2 2 11 2 2 2 + - 1/160 x y + 1/160 y z + 3/160 x y - --- x + 3/160 y z - 1/160 x z + 160 + + 3 3 2 323 691 2 + - 1/250 x z - 1/32 z - 1/96 y + 1/160 x z + ---- z - ----- y + 1/32 y , + 4000 12000 + + 2 2 2 2 31 + COEFF(1, -1, 1) = 1/40 x + 1/160 x y + 1/160 y z + 1/40 y - ---- y z + 1000 + + 2 3 2 3 33 + - 3/1000 x y z + 3/160 y z - 1/32 z + 3/160 x y - 1/32 x + ---- x z + 2000 + + 141 2 17 2 3 31 2 + + ---- z - 1/160 x z - --- y - 1/160 x z - 1/96 y - ---- x y + 1/40 z + 2000 375 1000 + + 61 141 59 2 3 + - ---- + ---- x, COEFF(2, -1, 1) = - ---- + 1/160 y z - 1/32 z + 4000 2000 2000 + + 2 2 49 2 2 + + 3/160 y z - 9/500 x y + 3/160 x y + ---- x z + 1/160 x z - 3/160 x z + 2000 + + 2 3 3 137 2 + + 1/32 z + 1/96 x - 7/250 y z - 1/96 y - ----- x - 3/160 x y + 12000 + + 2 53 191 2 + + 1/160 x + ----- y - 9/1000 x y z + ---- z + 3/160 y , COEFF(-1, 0, 1) + 12000 4000 + + 2 2 2 2 + = - 1/160 x y - 1/250 y z + 1/160 y z + 1/160 x z + 3/160 x y + + 2 2 13 2 49 + - 1/160 y z + 3/1000 x y z + 1/32 x - ---- x y + 3/160 z + ---- + 2000 1000 + + 107 17 3 3 2 323 3 + - ---- y - --- x z - 1/32 z - 1/96 x + 3/160 x z + ---- z + 1/32 y + 4000 500 4000 + + 691 11 2 2 + - ----- x - --- y , COEFF(0, 0, 1) = - 1/160 y z - 3/1000 x z + 12000 160 + + 2 2 21 397 2 + - 1/160 x z - 3/1000 y z + 1/160 x y - ---- x y + ---- - 1/16 y + 2000 4000 + + 2 3 2 2 3 87 21 + + 1/160 x z - 1/32 z + 1/160 x y + 1/40 z + 1/32 x - ---- y + --- z + 2000 250 + + 87 2 2 3 + - ---- x - 1/16 x + 1/160 y z + 1/32 y + 1/1000 x y z, COEFF(1, 0, 1) + 2000 + + 2 2 2 49 2 + = 1/160 x y - 1/160 x z - 1/160 y z - 1/500 x y + ---- - 1/160 x y + 2000 + + 2 2 3 2 31 + - 1/160 x z + 1/160 y z - 1/500 y z + 1/32 y + 1/32 x + ---- x z + 2000 + + 2 3 3 2 191 299 + - 9/160 y - 1/1000 x y z - 1/32 z - 1/32 x + 1/32 z - ---- y + ---- z + 4000 4000 + + 299 2 2 2 + + ---- x, COEFF(2, 0, 1) = - 3/160 x y - 3/160 x z - 1/160 y z + 4000 + + 2 3 49 2 + - 1/160 x y - 1/1000 y z - 3/1000 x y z - 1/32 z + ---- + 3/80 z + 4000 + + 19 53 43 3 2 3 + + ---- x y + ---- z + ---- x z + 1/32 y + 1/160 y z + 1/96 x + 1000 1000 2000 + + 2 79 2 79 2 + + 1/160 x z - ---- y - 1/20 y + ---- x, COEFF(-1, 1, 1) = - 1/160 y z + 2000 3000 + + 3 141 2 2 2 2 + - 1/32 y + ---- z - 1/160 y z + 1/160 x y + 3/160 x z + 1/40 z + 2000 + + 141 3 31 2 33 17 3 + + ---- y - 1/32 z - ---- x z + 3/160 x y + ---- y z - --- x - 1/96 x + 2000 1000 2000 375 + + 2 61 2 31 2 + - 3/1000 x y z + 1/160 x z - ---- + 1/40 y - ---- x y + 1/40 x , + 4000 1000 + + 3 49 2 2 3 2 + COEFF(0, 1, 1) = 1/32 x + ---- + 1/32 z + 1/32 y - 1/32 z - 1/160 x z + 2000 + + 191 3 2 2 2 + - ---- x - 1/1000 x y z - 1/32 y + 1/160 x z - 9/160 x - 1/160 y z + 4000 + + 2 299 2 2 + - 1/500 x z - 1/160 x y + ---- z + 1/160 x y - 1/500 x y - 1/160 y z + 4000 + + 299 31 2 133 29 + + ---- y + ---- y z, COEFF(1, 1, 1) = - 1/160 x z + ---- z + ---- y z + 4000 2000 2000 2000 + + 2 29 2 29 3 2 + - 1/160 y z + ---- x y - 1/160 x y + ---- x z - 1/32 z - 1/160 y z + 2000 2000 + + 193 133 2 133 2 3 + + 1/1000 x y z - ---- + ---- y - 1/160 x z + ---- x + 3/80 y - 1/32 y + 4000 2000 2000 + + 2 2 2 3 2 + - 1/160 x y + 3/80 x + 3/80 z - 1/32 x , COEFF(2, 1, 1) = - 3/160 x z + + 2 2 2 37 23 2 + + 1/160 x y - 1/160 y z + 1/160 x z + ---- x z - --- - 1/160 y z + 2000 500 + + 319 2 2 37 2 27 + + ----- x - 3/160 x y - 1/160 x + ---- x y + 7/160 y + ---- y z + 12000 2000 2000 + + 2 183 3 183 3 3 + + 7/160 z + ---- y + 1/96 x + ---- z + 3/1000 x y z - 1/32 z - 1/32 y , + 4000 4000 + + 2 2 2 + COEFF(-1, 2, 1) = 1/160 y z - 7/250 x z + 1/160 x z + 3/160 x y + + 49 53 2 2 2 3 + + ---- y z + ----- x - 3/160 y z + 3/160 x - 3/160 x y + 1/96 y + 2000 12000 + + 2 137 3 191 2 3 + - 9/500 x y + 1/160 y - ----- y - 1/96 x + ---- z + 1/32 z - 1/32 z + 12000 4000 + + 59 2 3 43 + - 9/1000 x y z - ---- + 3/160 x z , COEFF(0, 2, 1) = 1/32 x + ---- y z + 2000 2000 + + 2 2 53 79 2 2 49 + + 1/160 x z - 1/160 x z + ---- z - ---- x - 3/160 y z - 1/20 x + ---- + 1000 2000 4000 + + 3 2 19 2 + + 1/96 y - 3/160 x y - 3/1000 x y z + ---- x y - 1/1000 x z + 3/80 z + 1000 + + 2 3 2 79 2 + + 1/160 y z - 1/32 z - 1/160 x y + ---- y, COEFF(1, 2, 1) = - 1/160 y + 3000 + + 3 183 183 2 23 3 2 + - 1/32 x + ---- z + ---- x + 7/160 x - --- + 1/96 y + 7/160 z + 4000 4000 500 + + 319 3 2 2 27 + + ----- y - 1/32 z - 1/160 x z - 1/160 x z + ---- x z + 3/1000 x y z + 12000 2000 + + 2 37 2 37 2 2 + + 1/160 y z + ---- x y + 1/160 x y + ---- y z - 3/160 y z - 3/160 x y, + 2000 2000 + + 67 3 2 3 + COEFF(2, 2, 1) = - ---- + 1/96 x + 1/160 x z - 4/375 y + 1/96 y + 4000 + + 2 2 2 39 2 + - 4/375 x + 1/160 y z - 3/160 x z + 1/20 z - ---- x y - 3/160 y z + 2000 + + 31 2 13 3 31 2 + + ---- y z - 1/80 x + --- z + 9/1000 x y z - 1/32 z + ---- x z - 1/80 y + 2000 500 2000 + + 2 2 2 2 + + 3/160 x y + 3/160 x y, COEFF(-1, -1, 2) = 3/160 y z + 3/160 x z + + 2 27 2 2 59 2 + - 3/160 y z + ---- x y z - 3/160 x y - 3/160 x z - ---- + 1/32 x + 1000 1000 + + 93 281 449 281 3 3 + + ---- x y + ----- x - 9/250 y z - ----- z + ----- y + 1/96 z - 1/96 x + 2000 12000 12000 12000 + + 2 3 2 2 + + 1/32 y - 1/96 y - 9/250 x z + 3/160 z - 3/160 x y, COEFF(0, -1, 2) + + 2 3 2 2 33 2 + = 1/80 z + 1/96 z + 1/40 y + 3/160 y z - ---- x - 3/160 y z + 2000 + + 13 19 27 2 2 2 + + ---- x z - ---- x y - ---- y z - 1/160 x z + 3/160 x y - 1/160 x y + 1000 2000 1000 + + 29 17 3 2 2 73 + + 9/1000 x y z - ---- y - ---- z - 1/96 y - 3/160 x z - 1/16 x + ---- + 6000 3000 4000 + + 3 3 191 3 + + 1/32 x , COEFF(1, -1, 2) = 1/96 z + ---- x - 1/96 y - 9/1000 x y z + 4000 + + 2 2 2 2 53 2 + + 1/32 x + 1/160 x y + 3/160 x y + 3/160 y + ----- y - 3/160 x z + 12000 + + 49 3 137 59 2 + + ---- x z - 1/32 x - ----- z - 9/500 y z - ---- + 1/160 x z + 2000 12000 2000 + + 2 2 2 59 + + 3/160 y z - 7/250 x y + 1/160 z - 3/160 y z , COEFF(2, -1, 2) = - ---- + 4000 + + 2 2 2 307 + + 3/160 x z + 3/160 x y - 3/160 x y - 3/2000 x z - 9/1000 x y + ---- y + 6000 + + 41 3 3 3 27 2 + - --- z - 1/96 y - 9/1000 y z + 1/96 z + 1/96 x - ---- x y z + 1/80 y + 750 1000 + + 2 2 41 2 73 + + 3/160 y z - 3/160 y z - --- x + 3/160 x z , COEFF(-1, 0, 2) = ---- + 750 4000 + + 3 13 3 2 2 2 + + 1/32 y + ---- y z - 1/96 x + 3/160 x y - 1/16 y - 1/160 x y + 1000 + + 2 2 3 17 2 + + 3/160 x z + 1/80 z + 1/96 z + 9/1000 x y z - ---- z + 1/40 x + 3000 + + 27 19 33 2 29 2 + - ---- x z - ---- x y - ---- y - 3/160 x z - ---- x - 3/160 y z + 1000 2000 2000 6000 + + 2 2 2 + - 1/160 y z , COEFF(0, 0, 2) = 2/125 y z + 1/160 x y + 1/160 x y + + 2 23 143 2 3 2 349 + - 9/160 y - ---- x y + ---- - 1/160 x z + 1/96 z - 3/160 y z + ----- z + 2000 2000 12000 + + 2 137 137 3 + - 3/160 x z - ---- y + 3/1000 x y z - ---- x + 1/32 x + 2/125 x z + 4000 4000 + + 3 2 2 2 19 + + 1/32 y - 1/160 y z - 9/160 x + 1/160 z , COEFF(1, 0, 2) = ---- y z + 1000 + + 2 2 53 + - 3/1000 x y z - 1/160 x y + 1/160 x y + ---- x - 1/1000 x y + 1000 + + 2 3 2 3 2 2 + + 1/160 x z + 1/96 z - 3/160 y z + 1/32 y - 3/160 x z + 3/80 x + + 43 2 2 3 49 79 79 + + ---- x z - 1/20 y - 1/160 y z - 1/32 x + ---- + ---- z - ---- y, + 2000 4000 3000 2000 + + 2 11 2 2 + COEFF(2, 0, 2) = - 1/160 z + --- y z - 3/160 x y + 7/250 - 1/160 x y + 500 + + 129 11 2 2 2 2 + - ---- y + --- x y - 1/160 x + 3/160 x z - 7/160 y - 3/160 y z + 4000 500 + + 3 167 167 2 3 + + 1/96 x - ----- x - ----- z - 9/1000 x y z - 1/160 y z + 1/96 z + 12000 12000 + + 21 3 2 59 49 + - ---- x z + 1/32 y + 3/160 x z, COEFF(-1, 1, 2) = - ---- + ---- y z + 2000 2000 2000 + + 2 2 2 + + 3/160 x y + 1/160 x y - 7/250 x y - 9/1000 x y z - 3/160 x z + + 2 2 191 2 3 + + 1/160 z - 3/160 y z + ---- y + 1/160 y z + 1/96 z - 9/500 x z + 4000 + + 3 2 2 137 2 53 3 + - 1/32 y + 3/160 x z + 3/160 x - ----- z + 1/32 y + ----- x - 1/96 x , + 12000 12000 + + 49 2 2 + COEFF(0, 1, 2) = - 3/1000 x y z + ---- - 1/160 x y - 3/160 y z + 4000 + + 2 3 2 2 2 + - 1/1000 x y - 1/160 x z - 1/32 y - 3/160 x z - 1/20 x + 1/160 y z + + 2 43 3 2 19 53 79 + + 3/80 y + ---- y z + 1/32 x + 1/160 x y + ---- x z + ---- y + ---- z + 2000 1000 1000 3000 + + 3 79 23 37 2 + + 1/96 z - ---- x, COEFF(1, 1, 2) = - --- + ---- y z - 1/160 x y + 2000 500 2000 + + 27 2 2 2 183 2 + + ---- x y + 1/160 x z - 1/160 x y - 3/160 y z + ---- y + 1/160 y z + 2000 4000 + + 3 2 3 2 2 37 + + 1/96 z - 3/160 x z - 1/32 y - 1/160 z + 7/160 x + ---- x z + 2000 + + 2 3 319 183 + + 7/160 y + 3/1000 x y z - 1/32 x + ----- z + ---- x, COEFF(2, 1, 2) = + 12000 4000 + + 2 31 67 2 2 + - 4/375 x + 1/160 y z + ---- y z - ---- - 1/80 z - 4/375 z - 3/160 x y + 2000 4000 + + 13 39 3 31 2 + + --- y - ---- x z + 1/96 z + ---- x y + 3/160 x z + 9/1000 x y z + 500 2000 2000 + + 3 2 2 2 2 2 + - 1/32 y + 3/160 x z - 1/80 x + 1/160 x y + 1/20 y - 3/160 y z + + 3 2 307 59 + + 1/96 x , COEFF(-1, 2, 2) = - 3/160 x y + ---- x - 9/1000 x z - ---- + 6000 4000 + + 3 41 2 2 3 41 + - 1/96 x - --- z + 3/160 y z + 3/160 x y + 1/96 z - 3/2000 y z - --- y + 750 750 + + 3 2 27 2 2 + + 1/96 y + 3/160 x z - ---- x y z - 9/1000 x y - 3/160 x z + 3/160 y z + 1000 + + 2 3 167 2 + + 1/80 x , COEFF(0, 2, 2) = 1/96 z + 7/250 - ----- z - 1/160 x y + 12000 + + 3 11 129 2 3 2 167 + + 1/96 y + --- x z - ---- x + 3/160 y z + 1/32 x - 1/160 x z - ----- y + 500 4000 12000 + + 2 2 2 2 11 + - 7/160 x + 3/160 y z - 1/160 z - 3/160 x y + --- x y - 9/1000 x y z + 500 + + 2 21 2 2 + - 3/160 x z - ---- y z - 1/160 y , COEFF(1, 2, 2) = 1/160 x y + 2000 + + 2 3 3 2 + + 9/1000 x y z + 3/160 y z - 1/32 x + 1/96 y - 3/160 x y - 4/375 y + + 2 31 39 67 2 2 + - 1/80 y + ---- x z - 4/375 z - ---- y z - ---- + 1/20 x + 1/160 x z + 2000 2000 4000 + + 2 31 13 2 3 2 + + 3/160 y z + ---- x y + --- x - 1/80 z + 1/96 z - 3/160 x z, + 2000 500 + + 2 3 539 2 2 + COEFF(2, 2, 2) = - 3/160 y + 1/96 x - ----- z + 3/160 x y + 3/160 y z + 12000 + + 539 3 3 539 77 2 2 + - ----- x + 1/96 y + 1/96 z - ----- y + ---- + 3/160 x y + 3/160 x z + 12000 12000 2000 + + 27 57 2 57 2 57 + + ---- x y z - ---- x y - 3/160 x - ---- x z + 3/160 y z - ---- y z + 1000 2000 2000 2000 + + 2 2 + + 3/160 x z - 3/160 z ] + +> print_coeff__lc_of_data(%, "coeff_I_", "fp", +> "3d.coeffs/3d.cube.order3.smooth0/coeff-I.compute.c"); +bytes used=118403608, alloc=3341724, time=8.13 +bytes used=119403736, alloc=3341724, time=8.20 +bytes used=120404032, alloc=3341724, time=8.27 +bytes used=121404256, alloc=3341724, time=8.33 +bytes used=122404640, alloc=3341724, time=8.42 +bytes used=123404784, alloc=3341724, time=8.53 +bytes used=124404912, alloc=3341724, time=8.61 +bytes used=125405068, alloc=3341724, time=8.69 +bytes used=126405276, alloc=3341724, time=8.77 +bytes used=127419056, alloc=3341724, time=8.85 +bytes used=128459492, alloc=3341724, time=8.90 +bytes used=129476960, alloc=3341724, time=8.96 +bytes used=130491360, alloc=3341724, time=9.01 +bytes used=131503260, alloc=3341724, time=9.07 +bytes used=132510844, alloc=3341724, time=9.13 +bytes used=133516012, alloc=3341724, time=9.19 +bytes used=134578064, alloc=3341724, time=9.25 +bytes used=135605384, alloc=3341724, time=9.32 +bytes used=136667420, alloc=3341724, time=9.38 +bytes used=137670136, alloc=3341724, time=9.43 +bytes used=138710064, alloc=3341724, time=9.50 +bytes used=139737460, alloc=3341724, time=9.57 +bytes used=140761448, alloc=3341724, time=9.65 +bytes used=141786716, alloc=3341724, time=9.71 +bytes used=142806864, alloc=3341724, time=9.79 +bytes used=143861316, alloc=3341724, time=9.87 +bytes used=144916568, alloc=3341724, time=9.94 +bytes used=145938708, alloc=3341724, time=10.03 +bytes used=146950692, alloc=3341724, time=10.12 +bytes used=147971784, alloc=3341724, time=10.22 +bytes used=148971920, alloc=3341724, time=10.31 +bytes used=149972112, alloc=3341724, time=10.39 +bytes used=150972764, alloc=3341724, time=10.45 +bytes used=151972888, alloc=3341724, time=10.81 +bytes used=152973088, alloc=3341724, time=10.90 +bytes used=153974696, alloc=3341724, time=10.97 +bytes used=154977368, alloc=3341724, time=11.04 +bytes used=155979516, alloc=3341724, time=11.10 +bytes used=156980652, alloc=3341724, time=11.18 +bytes used=157980852, alloc=3341724, time=11.24 +bytes used=158981552, alloc=3341724, time=11.31 +bytes used=159981936, alloc=3341724, time=11.38 +bytes used=160982236, alloc=3341724, time=11.45 +bytes used=161982364, alloc=3341724, time=11.52 +bytes used=162986100, alloc=3341724, time=11.60 +bytes used=163986284, alloc=3341724, time=11.67 +bytes used=164986700, alloc=3341724, time=11.74 +bytes used=165990480, alloc=3341724, time=11.81 +bytes used=166990724, alloc=3341724, time=11.88 +bytes used=167990888, alloc=3341724, time=11.95 +bytes used=168997484, alloc=3734868, time=12.07 +bytes used=170006548, alloc=3734868, time=12.18 +bytes used=171007012, alloc=3734868, time=12.31 +bytes used=172027372, alloc=3734868, time=12.43 +bytes used=173027580, alloc=3734868, time=12.55 +bytes used=174027712, alloc=3734868, time=12.70 +bytes used=175027864, alloc=3734868, time=12.90 +bytes used=176028092, alloc=3734868, time=13.13 +bytes used=177028280, alloc=3734868, time=13.24 +bytes used=178028452, alloc=3734868, time=13.35 +bytes used=179028612, alloc=3734868, time=13.43 +bytes used=180028728, alloc=3734868, time=13.51 +bytes used=181028856, alloc=3734868, time=13.60 +bytes used=182028984, alloc=3734868, time=13.68 +bytes used=183040344, alloc=3734868, time=13.79 +bytes used=184057760, alloc=3734868, time=13.92 +bytes used=185057956, alloc=3734868, time=14.03 +bytes used=186059092, alloc=3734868, time=14.14 +bytes used=187083852, alloc=3734868, time=14.25 +bytes used=188100588, alloc=3734868, time=14.33 +bytes used=189100708, alloc=3734868, time=14.41 +bytes used=190100832, alloc=3734868, time=14.50 +bytes used=191100996, alloc=3734868, time=14.58 +bytes used=192101144, alloc=3734868, time=14.66 +bytes used=193101352, alloc=3734868, time=14.75 +bytes used=194101532, alloc=3734868, time=14.83 +bytes used=195101664, alloc=3734868, time=14.91 +bytes used=196101780, alloc=3734868, time=15.00 +bytes used=197101992, alloc=3734868, time=15.09 +bytes used=198110908, alloc=3734868, time=15.17 +bytes used=199111064, alloc=3734868, time=15.26 +bytes used=200111276, alloc=3734868, time=15.35 +bytes used=201111392, alloc=3734868, time=15.43 +bytes used=202111584, alloc=3734868, time=15.52 +bytes used=203116132, alloc=3734868, time=15.61 +bytes used=204116516, alloc=3734868, time=15.70 +bytes used=205116672, alloc=3734868, time=15.77 +bytes used=206136292, alloc=3734868, time=16.02 +bytes used=207144096, alloc=3734868, time=16.20 +bytes used=208144276, alloc=3734868, time=16.53 +bytes used=209144400, alloc=3734868, time=16.62 +bytes used=210144584, alloc=3734868, time=16.68 +bytes used=211144788, alloc=3734868, time=16.75 +bytes used=212145404, alloc=3734868, time=16.81 +bytes used=213145724, alloc=3734868, time=16.87 +bytes used=214145864, alloc=3734868, time=16.94 +bytes used=215146096, alloc=3734868, time=17.00 +bytes used=216146320, alloc=3734868, time=17.07 +bytes used=217146480, alloc=3734868, time=17.22 +bytes used=218148596, alloc=3734868, time=17.36 +bytes used=219149648, alloc=3734868, time=17.48 +bytes used=220150972, alloc=3734868, time=17.67 +bytes used=221162740, alloc=3734868, time=17.80 +bytes used=222175640, alloc=3734868, time=17.93 +bytes used=223185608, alloc=3734868, time=18.07 +bytes used=224185736, alloc=3734868, time=18.19 +bytes used=225185868, alloc=3734868, time=18.29 +bytes used=226186004, alloc=3734868, time=18.38 +bytes used=227186136, alloc=3734868, time=18.48 +bytes used=228186268, alloc=3734868, time=18.57 +bytes used=229186456, alloc=3734868, time=18.67 +bytes used=230186584, alloc=3734868, time=18.77 +bytes used=231186732, alloc=3734868, time=18.86 +bytes used=232186896, alloc=3734868, time=18.93 +bytes used=233216376, alloc=3734868, time=19.18 +bytes used=234243024, alloc=3734868, time=19.35 +bytes used=235267368, alloc=3734868, time=19.49 +bytes used=236267608, alloc=3734868, time=19.93 +bytes used=237267752, alloc=3734868, time=20.02 +bytes used=238267988, alloc=3734868, time=20.11 +bytes used=239268148, alloc=3734868, time=20.17 +bytes used=240268440, alloc=3734868, time=20.24 +bytes used=241268656, alloc=3734868, time=20.31 +bytes used=242269064, alloc=3734868, time=20.37 +bytes used=243269568, alloc=3734868, time=20.44 +bytes used=244269688, alloc=3734868, time=20.51 +bytes used=245270192, alloc=3734868, time=20.58 +bytes used=246270372, alloc=3734868, time=20.64 +bytes used=247270492, alloc=3734868, time=20.72 +bytes used=248295932, alloc=3734868, time=21.06 +bytes used=249296156, alloc=3734868, time=21.22 +bytes used=250296304, alloc=3734868, time=21.31 +bytes used=251296476, alloc=3734868, time=21.41 +bytes used=252297972, alloc=3734868, time=21.50 +bytes used=253298108, alloc=3734868, time=21.59 +bytes used=254298332, alloc=3734868, time=21.69 +bytes used=255298484, alloc=3734868, time=21.78 +bytes used=256298800, alloc=3734868, time=21.87 +bytes used=257298992, alloc=3734868, time=22.50 +bytes used=258299224, alloc=3734868, time=22.58 +bytes used=259299560, alloc=3734868, time=22.65 +bytes used=260299748, alloc=3734868, time=22.71 +bytes used=261300128, alloc=3734868, time=22.78 +bytes used=262300440, alloc=3734868, time=22.84 +bytes used=263300692, alloc=3734868, time=22.91 +bytes used=264300812, alloc=3734868, time=22.98 +bytes used=265300944, alloc=3734868, time=23.04 +bytes used=266301132, alloc=3734868, time=23.11 +bytes used=267301248, alloc=3734868, time=23.27 +bytes used=268301392, alloc=3734868, time=23.58 +bytes used=269301596, alloc=3734868, time=23.69 +bytes used=270301788, alloc=3734868, time=23.78 +bytes used=271301972, alloc=3734868, time=23.88 +bytes used=272302180, alloc=3734868, time=23.97 +bytes used=273302352, alloc=3734868, time=24.07 +bytes used=274302552, alloc=3734868, time=24.16 +bytes used=275302732, alloc=3734868, time=24.25 +bytes used=276302900, alloc=3734868, time=24.93 +bytes used=277303040, alloc=3734868, time=25.13 +bytes used=278303556, alloc=3734868, time=25.20 +bytes used=279303816, alloc=3734868, time=25.30 +bytes used=280304200, alloc=3734868, time=25.43 +bytes used=281304352, alloc=3734868, time=25.58 +> +# d/dx +> simplify( diff(interp_3d_cube_order3_smooth0,x) ); +bytes used=282304708, alloc=3734868, time=25.71 +bytes used=283304888, alloc=3734868, time=25.78 +bytes used=284305048, alloc=3734868, time=25.84 +bytes used=285305288, alloc=3734868, time=25.91 +bytes used=286507196, alloc=3734868, time=25.99 +bytes used=287507660, alloc=3734868, time=26.07 +bytes used=288508092, alloc=3734868, time=26.14 +bytes used=289508492, alloc=3734868, time=26.21 +bytes used=290508704, alloc=3734868, time=26.28 +bytes used=291509108, alloc=3734868, time=26.35 + 97 107 141 +- ---- DATA(-1, 1, -1) - ---- DATA(0, 1, -1) + ---- DATA(1, 1, -1) + 3000 4000 2000 + + 607 49 323 + - ----- DATA(-1, -1, 0) - ---- DATA(0, -1, 0) + ---- DATA(1, -1, 0) + 12000 2000 4000 + + 437 691 17 + - ---- DATA(-1, 0, 0) - ----- DATA(-1, 1, 0) - --- DATA(-1, 1, 1) + 6000 12000 375 + + 691 141 97 + - ----- DATA(-1, 0, 1) + ---- DATA(1, -1, 1) - ---- DATA(-1, -1, 1) + 12000 2000 3000 + + 107 607 49 + - ---- DATA(0, -1, 1) - ----- DATA(-1, 0, -1) - ---- DATA(0, 0, -1) + 4000 12000 2000 + + 323 161 21 + + ---- DATA(1, 0, -1) - ---- DATA(0, 0, 0) + --- DATA(1, 0, 0) + 4000 4000 250 + + 87 299 87 + - ---- DATA(0, 1, 0) + ---- DATA(1, 1, 0) - ---- DATA(0, 0, 1) + 2000 4000 2000 + + 299 191 133 + + ---- DATA(1, 0, 1) - ---- DATA(0, 1, 1) + ---- DATA(1, 1, 1) + 4000 4000 2000 + + 47 39 191 + - ---- DATA(-1, -1, -1) - ---- DATA(0, -1, -1) + ---- DATA(1, 2, -1) + 1500 4000 4000 + + 137 281 33 + - ----- DATA(2, 1, -1) + ----- DATA(-1, 2, -1) - ---- DATA(0, 2, -1) + 12000 12000 2000 + + 449 17 319 + - ----- DATA(2, -1, -1) - ---- DATA(2, 0, -1) + ----- DATA(2, 1, 1) + 12000 3000 12000 + + 53 79 183 + + ----- DATA(-1, 2, 1) - ---- DATA(0, 2, 1) + ---- DATA(1, 2, 1) + 12000 2000 4000 + + 137 79 157 + - ----- DATA(2, -1, 1) + ---- DATA(2, 0, 1) + ---- DATA(1, -1, -1) + 12000 3000 2000 + + 53 167 79 + + ---- DATA(1, 2, 0) - ----- DATA(2, 2, 0) + ---- DATA(2, 1, 0) + 1000 12000 3000 + + 29 137 17 + - ---- DATA(-1, 2, 0) - ---- DATA(0, 2, 0) - ---- DATA(2, -1, 0) + 6000 4000 3000 + + 349 41 13 + + ----- DATA(2, 0, 0) - --- DATA(2, 2, -1) + --- DATA(1, 2, 2) + 12000 750 500 + + 539 183 + - ----- DATA(2, 2, 2) + ---- DATA(1, 1, 2) - 4/375 DATA(2, 1, 2) + 12000 4000 + + 307 129 53 + + ---- DATA(-1, 2, 2) - ---- DATA(0, 2, 2) + ---- DATA(1, 0, 2) + 6000 4000 1000 + + 167 53 79 + - ----- DATA(2, 0, 2) + ----- DATA(-1, 1, 2) - ---- DATA(0, 1, 2) + 12000 12000 2000 + + 191 41 29 + + ---- DATA(1, -1, 2) - --- DATA(2, -1, 2) - ---- DATA(-1, 0, 2) + 4000 750 6000 + + 137 281 33 + - ---- DATA(0, 0, 2) + ----- DATA(-1, -1, 2) - ---- DATA(0, -1, 2) + 4000 12000 2000 + + - 4/375 DATA(2, 2, 1) + 3/40 x DATA(-1, 1, -1) + 1/80 x y DATA(-1, 1, 1) + + + 1/80 x y DATA(0, 0, -1) - 1/80 x z DATA(-1, -1, 0) + + - 1/80 x z DATA(2, 1, 0) + 1/80 x z DATA(-1, 2, 1) + + - 1/80 x z DATA(0, 2, 1) - 3/80 x z DATA(0, 1, 2) + 3/80 x z DATA(2, 1, 2) + + + 1/80 x z DATA(-1, 1, 1) + 1/80 x z DATA(0, 2, 0) + + - 1/80 x y DATA(-1, 0, 1) + 1/80 x z DATA(-1, 0, 1) + + - 1/80 x z DATA(-1, 1, 0) - 1/80 x z DATA(2, 2, 0) + + - 1/80 x z DATA(2, -1, 0) - 1/80 x y DATA(1, 1, -1) + + - 3/80 x z DATA(0, 2, 2) - 1/80 x z DATA(2, 0, 0) + 1/80 x z DATA(2, 2, 1) + + - 3/80 x z DATA(0, 0, 2) - 3/80 x z DATA(2, 0, -1) + + - 3/80 x z DATA(2, 1, -1) - 1/80 x y DATA(0, 1, -1) + + + 3/80 x z DATA(1, 0, -1) + 3/80 x z DATA(0, -1, -1) + + - 1/80 x y DATA(-1, 0, -1) - 1/80 x z DATA(0, 1, 1) + + + 1/80 x z DATA(2, -1, 1) - 3/80 x z DATA(2, 2, -1) + + + 3/80 x y DATA(0, -1, 1) + 3/80 x y DATA(1, -1, 0) + + + 1/80 x z DATA(1, -1, 0) + 1/80 x z DATA(0, 0, 0) + + + 3/80 x z DATA(-1, -1, 2) - 3/80 x z DATA(0, -1, 2) + + - 3/80 x z DATA(-1, 2, -1) + 3/80 x z DATA(-1, 1, 2) + + - 3/80 x z DATA(-1, -1, -1) + 3/80 x z DATA(1, 2, -1) + + - 1/80 x z DATA(1, 2, 1) + 1/80 x z DATA(0, 1, 0) + + - 3/80 x z DATA(-1, 0, -1) - 3/80 x z DATA(1, 2, 2) + + + 3/80 x z DATA(2, 2, 2) + 1/80 x z DATA(2, 0, 1) + + + 3/80 x z DATA(2, -1, 2) + 3/80 x z DATA(-1, 2, 2) + + + 1/80 x z DATA(1, 2, 0) + 3/80 x z DATA(2, 0, 2) + + + 3/80 x y DATA(0, -1, 0) - 1/80 x z DATA(-1, 2, 0) + + + 1/80 x z DATA(1, 1, 0) + 1/80 x z DATA(1, 0, 0) - 1/80 x z DATA(0, 0, 1) + + + 1/80 x y DATA(-1, 1, 0) - 1/80 x z DATA(1, 1, 1) + + - 3/80 x z DATA(2, -1, -1) - 3/80 x z DATA(1, 0, 2) + + - 3/80 x z DATA(1, -1, 2) - 3/80 x y DATA(-1, -1, 0) + + + 3/80 x z DATA(-1, 0, 2) + 3/80 x z DATA(1, -1, -1) + + + 3/80 x z DATA(0, 1, -1) + 3/80 x z DATA(0, 0, -1) + + - 1/80 x z DATA(-1, 0, 0) - 1/80 x z DATA(1, -1, 1) + + + 1/80 x y DATA(-1, 1, -1) - 1/1000 y z DATA(0, 1, 1) + + 27 + - 9/1000 y DATA(2, -1, 2) + 2/125 y DATA(0, 2, 0) - ---- y DATA(-1, 2, 0) + 1000 + + 2 2 + + 1/160 y DATA(1, -1, 1) - 3/160 y DATA(-1, -1, 1) + + 2 2 + - 1/160 y DATA(0, -1, 1) + 3/160 y DATA(-1, 0, -1) + + 2 2 + + 1/160 y DATA(0, 0, -1) - 1/160 y DATA(1, 0, -1) + + 2 2 2 + + 1/160 y DATA(0, 0, 0) - 1/160 y DATA(1, 0, 0) - 3/160 y DATA(2, 0, 1) + + + 1/80 x z DATA(0, -1, 0) + 3/80 x z DATA(0, 2, -1) + + - 1/80 x z DATA(0, -1, 1) + 1/80 x z DATA(-1, -1, 1) + + - 1/80 x z DATA(1, 0, 1) - 3/80 x y DATA(-1, -1, 1) + + + 3/80 x y DATA(1, -1, 1) + 3/80 x z DATA(1, 1, -1) + + 129 17 + - 1/80 x y DATA(-1, 0, 0) + ---- y DATA(-1, -1, 0) - --- y DATA(1, -1, 0) + 2000 500 + + 17 31 + - 7/2000 y DATA(-1, 0, 0) - --- y DATA(-1, 1, 0) - ---- y DATA(-1, 1, 1) + 500 1000 + + 13 31 111 + - ---- y DATA(-1, 0, 1) - ---- y DATA(1, -1, 1) + ---- y DATA(-1, -1, 1) + 2000 1000 2000 + + 13 17 + - ---- y DATA(0, -1, 1) - 1/2000 y DATA(-1, 0, -1) - ---- y DATA(0, 0, -1) + 2000 2000 + + 19 + - 1/250 y DATA(1, 0, -1) - ---- y DATA(0, 0, 0) - 3/1000 y DATA(1, 0, 0) + 2000 + + 19 43 39 + + ---- y DATA(2, 0, 1) + ---- y DATA(2, 1, 0) - ---- y DATA(2, 2, 1) + 1000 2000 2000 + + 37 43 + - 3/2000 y DATA(2, 2, -1) - ---- y DATA(1, -1, -1) + ---- y DATA(1, 2, 0) + 1000 2000 + + 21 31 + - ---- y DATA(2, 2, 0) - 3/1000 y DATA(0, 1, 0) + ---- y DATA(1, 1, 0) + 2000 2000 + + 21 29 + - ---- y DATA(0, 0, 1) - 1/500 y DATA(0, 1, 1) + ---- y DATA(1, 1, 1) + 2000 2000 + + 147 + + ---- y DATA(-1, -1, -1) - 1/2000 y DATA(0, -1, -1) + 2000 + + 49 49 + + ---- y DATA(1, 2, -1) + ---- y DATA(2, 1, -1) - 9/250 y DATA(-1, 2, -1) + 2000 2000 + + 13 31 + + ---- y DATA(0, 2, -1) + ---- y DATA(2, 1, 2) - 9/1000 y DATA(-1, 2, 2) + 1000 2000 + + 11 11 + + --- y DATA(0, 2, 2) - 1/1000 y DATA(1, 0, 2) + --- y DATA(2, 0, 2) + 500 500 + + - 7/250 y DATA(-1, 1, 2) - 1/1000 y DATA(0, 1, 2) - 7/250 y DATA(1, -1, 2) + + 19 23 93 + - ---- y DATA(-1, 0, 2) - ---- y DATA(0, 0, 2) + ---- y DATA(-1, -1, 2) + 2000 2000 2000 + + 19 111 13 + - ---- y DATA(0, -1, 2) + ---- z DATA(-1, 1, -1) - ---- z DATA(0, 1, -1) + 2000 2000 2000 + + 31 17 + - ---- z DATA(1, 1, -1) - 1/2000 z DATA(-1, -1, 0) - ---- z DATA(0, -1, 0) + 1000 2000 + + 13 + - 1/250 z DATA(1, -1, 0) - 7/2000 z DATA(-1, 0, 0) - ---- z DATA(-1, 1, 0) + 2000 + + 31 17 33 + - ---- z DATA(-1, 1, 1) - --- z DATA(-1, 0, 1) + ---- z DATA(1, -1, 1) + 1000 500 2000 + + 37 129 + - ---- z DATA(-1, -1, 1) - 1/250 z DATA(0, -1, 1) + ---- z DATA(-1, 0, -1) + 1000 2000 + + 17 19 + - 7/2000 z DATA(0, 0, -1) - --- z DATA(1, 0, -1) - ---- z DATA(0, 0, 0) + 500 2000 + + 43 19 + - 3/1000 z DATA(1, 0, 0) + ---- z DATA(2, 0, 1) + ---- z DATA(2, 1, 0) + 2000 1000 + + 31 + + ---- z DATA(2, 2, 1) - 9/1000 z DATA(2, 2, -1) - 3/2000 z DATA(2, -1, 2) + 2000 + + 19 23 13 + - ---- z DATA(-1, 2, 0) - ---- z DATA(0, 2, 0) + ---- z DATA(2, -1, 0) + 2000 2000 1000 + + 31 57 + + 2/125 z DATA(2, 0, 0) + ---- z DATA(1, 2, 2) - ---- z DATA(2, 2, 2) + 2000 2000 + + 37 31 + + ---- z DATA(1, 1, 2) + ---- z DATA(1, 0, 1) - 9/250 z DATA(2, -1, -1) + 2000 2000 + + 27 37 + - ---- z DATA(2, 0, -1) + ---- z DATA(2, 1, 1) - 7/250 z DATA(-1, 2, 1) + 1000 2000 + + 11 + - 1/1000 z DATA(0, 2, 1) - -- x DATA(0, 1, -1) + 1/20 x DATA(1, 1, -1) + 80 + + + 7/80 x DATA(-1, -1, 0) - 7/2000 y DATA(0, -1, 0) + + 2 2 + + 1/160 z DATA(1, 1, -1) + 1/160 z DATA(0, -1, 0) + + 2 2 + - 1/160 z DATA(1, -1, 0) + 3/160 z DATA(-1, 0, 0) + + 2 2 + + 3/160 z DATA(-1, 1, 0) + 3/160 z DATA(-1, 1, 1) + + 2 2 + + 3/160 z DATA(-1, 0, 1) - 1/160 z DATA(1, -1, 1) + + 2 2 + + 3/160 z DATA(-1, -1, 1) + 1/160 z DATA(0, -1, 1) + + 2 2 + - 3/160 z DATA(-1, 0, -1) - 1/160 z DATA(0, 0, -1) + + 2 2 + + 1/160 z DATA(1, 0, -1) + 1/160 z DATA(0, 0, 0) + + 2 2 2 + - 1/160 z DATA(1, 0, 0) - 3/160 z DATA(2, 0, 1) - 3/160 z DATA(2, 1, 0) + + 2 2 + - 3/160 z DATA(2, 2, 1) + 3/160 z DATA(2, 2, -1) + + 2 2 + + 3/160 z DATA(2, -1, 2) + 3/160 z DATA(-1, 2, 0) + + 2 2 + + 1/160 z DATA(0, 2, 0) - 3/160 z DATA(2, -1, 0) + + 2 2 2 + - 3/160 z DATA(2, 0, 0) + 1/160 z DATA(1, 2, 2) + 3/160 z DATA(2, 2, 2) + + 2 2 + + 1/160 z DATA(1, 1, 2) - 1/160 z DATA(1, 0, 1) + + 2 2 + + 3/160 z DATA(2, -1, -1) + 3/160 z DATA(2, 0, -1) + + 2 2 + - 3/160 z DATA(2, 1, 1) + 3/160 z DATA(-1, 2, 1) + + 2 2 + + 1/160 z DATA(0, 2, 1) - 1/160 z DATA(1, 2, 1) + + 2 2 + - 3/160 z DATA(2, -1, 1) + 1/160 z DATA(1, -1, -1) + + 2 2 2 + - 1/160 z DATA(1, 2, 0) - 3/160 z DATA(2, 2, 0) + 1/160 z DATA(0, 1, 0) + + 2 2 2 + - 1/160 z DATA(1, 1, 0) + 1/160 z DATA(0, 0, 1) + 1/160 z DATA(0, 1, 1) + + 2 2 + - 1/160 z DATA(1, 1, 1) - 3/160 z DATA(-1, -1, -1) + + 2 2 + - 1/160 z DATA(0, -1, -1) + 1/160 z DATA(1, 2, -1) + + 2 2 + + 3/160 z DATA(2, 1, -1) - 3/160 z DATA(-1, 2, -1) + + 2 2 + - 1/160 z DATA(0, 2, -1) + 3/160 z DATA(2, 1, 2) + + 2 2 + - 3/160 z DATA(-1, 2, 2) - 1/160 z DATA(0, 2, 2) + + 2 2 + + 1/160 z DATA(1, 0, 2) + 3/160 z DATA(2, 0, 2) + + 2 2 + - 3/160 z DATA(-1, 1, 2) - 1/160 z DATA(0, 1, 2) + + 2 2 + + 1/160 z DATA(1, -1, 2) - 3/160 z DATA(-1, 0, 2) + + 2 2 + - 1/160 z DATA(0, 0, 2) - 3/160 z DATA(-1, -1, 2) + + 2 37 + - 1/160 z DATA(0, -1, 2) - ---- y DATA(-1, 1, -1) + 1000 + + 33 + - 1/250 y DATA(0, 1, -1) + ---- y DATA(1, 1, -1) + 2000 + + 2 37 19 + + 3/160 z DATA(-1, -1, 0) + ---- y DATA(2, 1, 1) + ---- y DATA(0, 2, 1) + 2000 1000 + + 37 + + ---- y DATA(1, 2, 1) - 9/500 y DATA(2, -1, 1) - 3/20 x DATA(0, -1, 0) + 2000 + + + 3/80 x DATA(1, -1, 0) + 3/40 x DATA(-1, 0, 0) + 1/16 x DATA(-1, 1, 0) + + + 1/20 x DATA(-1, 1, 1) + 1/16 x DATA(-1, 0, 1) + 1/20 x DATA(1, -1, 1) + + 11 + + 3/40 x DATA(-1, -1, 1) - -- x DATA(0, -1, 1) + 7/80 x DATA(-1, 0, -1) + 80 + + 11 + - 3/20 x DATA(0, 0, -1) + 3/80 x DATA(1, 0, -1) - -- x DATA(0, 0, 0) + 80 + + + 1/20 x DATA(1, 0, 0) - 1/40 x DATA(2, 2, 1) + 1/20 x DATA(-1, 2, 0) + + - 9/80 x DATA(0, 2, 0) + 1/40 x DATA(2, -1, 0) + 1/80 x DATA(2, 0, 0) + + + 1/10 x DATA(1, 2, 2) - 3/80 x DATA(2, 2, 2) + 7/80 x DATA(1, 1, 2) + + + 1/16 x DATA(1, 0, 1) + 3/80 x DATA(2, -1, -1) + 1/40 x DATA(2, 0, -1) + + - 1/80 x DATA(2, 1, 1) + 3/80 x DATA(-1, 2, 1) - 1/10 x DATA(0, 2, 1) + + + 7/80 x DATA(1, 2, 1) + 1/80 x DATA(2, -1, 1) + 1/40 x DATA(1, -1, -1) + + + 3/40 x DATA(1, 2, 0) - 1/80 x DATA(2, 2, 0) - 1/8 x DATA(0, 1, 0) + + + 1/16 x DATA(1, 1, 0) - 1/8 x DATA(0, 0, 1) - 9/80 x DATA(0, 1, 1) + + 13 + + 3/40 x DATA(1, 1, 1) + 1/10 x DATA(-1, -1, -1) - -- x DATA(0, -1, -1) + 80 + + + 1/16 x DATA(1, 2, -1) + 1/80 x DATA(2, 1, -1) + 1/16 x DATA(-1, 2, -1) + + - 1/8 x DATA(0, 2, -1) - 1/40 x DATA(2, 1, 2) + 1/40 x DATA(-1, 2, 2) + + - 7/80 x DATA(0, 2, 2) + 3/40 x DATA(1, 0, 2) - 1/80 x DATA(2, 0, 2) + + + 3/80 x DATA(-1, 1, 2) - 1/10 x DATA(0, 1, 2) + 1/16 x DATA(1, -1, 2) + + + 1/20 x DATA(-1, 0, 2) - 9/80 x DATA(0, 0, 2) + 1/16 x DATA(-1, -1, 2) + + 2 + - 1/8 x DATA(0, -1, 2) - 3/160 z DATA(-1, 1, -1) + + 2 2 + - 1/160 z DATA(0, 1, -1) - 9/500 y DATA(-1, 2, 1) + 3/32 x DATA(0, 1, 1) + + 2 2 + - 3/32 x DATA(1, 1, 1) - 1/32 x DATA(-1, -1, -1) + + 2 2 + + 3/32 x DATA(0, -1, -1) - 3/32 x DATA(1, 2, -1) + + 2 2 + + 1/32 x DATA(2, 1, -1) - 1/32 x DATA(-1, 2, -1) + + 2 2 2 + + 3/32 x DATA(0, 2, -1) + 1/32 x DATA(2, 1, 2) - 1/32 x DATA(-1, 2, 2) + + 2 2 2 + + 3/32 x DATA(0, 2, 2) - 3/32 x DATA(1, 0, 2) + 1/32 x DATA(2, 0, 2) + + 2 2 2 + - 1/32 x DATA(-1, 1, 2) + 3/32 x DATA(0, 1, 2) - 3/32 x DATA(1, -1, 2) + + 2 2 2 + - 1/32 x DATA(-1, 0, 2) + 3/32 x DATA(0, 0, 2) - 1/32 x DATA(-1, -1, 2) + + 2 2 27 + + 3/32 x DATA(0, -1, 2) + 3/160 y DATA(-1, 1, 2) + ---- z DATA(1, 2, 1) + 2000 + + 49 37 + + ---- z DATA(2, -1, 1) - ---- z DATA(1, -1, -1) - 1/1000 z DATA(1, 2, 0) + 2000 1000 + + 11 21 + + --- z DATA(2, 2, 0) - ---- z DATA(0, 1, 0) - 1/500 z DATA(1, 1, 0) + 500 2000 + + 29 + - 3/1000 z DATA(0, 0, 1) - 1/500 z DATA(0, 1, 1) + ---- z DATA(1, 1, 1) + 2000 + + 147 + + ---- z DATA(-1, -1, -1) - 1/2000 z DATA(0, -1, -1) + 2000 + + 93 + - 7/250 z DATA(1, 2, -1) - 9/500 z DATA(2, 1, -1) + ---- z DATA(-1, 2, -1) + 2000 + + 19 39 + - ---- z DATA(0, 2, -1) - ---- z DATA(2, 1, 2) - 9/1000 z DATA(-1, 2, 2) + 2000 2000 + + 11 43 21 + + --- z DATA(0, 2, 2) + ---- z DATA(1, 0, 2) - ---- z DATA(2, 0, 2) + 500 2000 2000 + + 19 49 + - 9/500 z DATA(-1, 1, 2) + ---- z DATA(0, 1, 2) + ---- z DATA(1, -1, 2) + 1000 2000 + + 27 + - ---- z DATA(-1, 0, 2) + 2/125 z DATA(0, 0, 2) - 9/250 z DATA(-1, -1, 2) + 1000 + + 13 2 + + ---- z DATA(0, -1, 2) + 3/160 y DATA(-1, 1, -1) + 1000 + + 2 2 + + 1/160 y DATA(0, 1, -1) - 1/160 y DATA(1, 1, -1) + + 2 2 + - 3/160 y DATA(-1, -1, 0) - 1/160 y DATA(0, -1, 0) + + 2 2 + + 1/160 y DATA(1, -1, 0) + 3/160 y DATA(-1, 0, 0) + + 2 2 + + 3/160 y DATA(-1, 1, 0) + 3/160 y DATA(-1, 1, 1) + + 27 31 + - ---- y DATA(2, -1, 0) + 2/125 y DATA(2, 0, 0) + ---- y DATA(1, 2, 2) + 1000 2000 + + 57 27 + - ---- y DATA(2, 2, 2) + ---- y DATA(1, 1, 2) - 1/500 y DATA(1, 0, 1) + 2000 2000 + + 13 2 + - 9/250 y DATA(2, -1, -1) + ---- y DATA(2, 0, -1) - 3/160 y DATA(2, 1, 0) + 1000 + + 2 2 + + 3/160 y DATA(2, 2, 1) + 3/160 y DATA(2, 2, -1) + + 2 2 + + 3/160 y DATA(2, -1, 2) - 3/160 y DATA(-1, 2, 0) + + 2 2 + - 1/160 y DATA(0, 2, 0) + 3/160 y DATA(2, -1, 0) + + 2 2 2 + - 3/160 y DATA(2, 0, 0) + 1/160 y DATA(1, 2, 2) + 3/160 y DATA(2, 2, 2) + + 2 2 + - 1/160 y DATA(1, 1, 2) - 1/160 y DATA(1, 0, 1) + + 2 2 + + 3/160 y DATA(2, -1, -1) - 3/160 y DATA(2, 0, -1) + + 2 2 + - 3/160 y DATA(2, 1, 1) - 3/160 y DATA(-1, 2, 1) + + 2 2 + - 1/160 y DATA(0, 2, 1) + 1/160 y DATA(1, 2, 1) + + 2 2 + + 3/160 y DATA(2, -1, 1) + 1/160 y DATA(1, -1, -1) + + 2 2 2 + + 1/160 y DATA(1, 2, 0) + 3/160 y DATA(2, 2, 0) + 1/160 y DATA(0, 1, 0) + + 2 2 2 + - 1/160 y DATA(1, 1, 0) + 1/160 y DATA(0, 0, 1) + 1/160 y DATA(0, 1, 1) + + 2 2 + - 1/160 y DATA(1, 1, 1) - 3/160 y DATA(-1, -1, -1) + + 2 2 + - 1/160 y DATA(0, -1, -1) + 1/160 y DATA(1, 2, -1) + + 2 2 + - 3/160 y DATA(2, 1, -1) - 3/160 y DATA(-1, 2, -1) + + 2 2 + - 1/160 y DATA(0, 2, -1) - 3/160 y DATA(2, 1, 2) + + 2 2 + - 3/160 y DATA(-1, 2, 2) - 1/160 y DATA(0, 2, 2) + + 2 2 2 + - 1/160 y DATA(1, 0, 2) - 3/160 y DATA(2, 0, 2) + 1/160 y DATA(0, 1, 2) + + 2 2 + + 1/160 y DATA(1, -1, 2) + 3/160 y DATA(-1, 0, 2) + + 2 2 + + 1/160 y DATA(0, 0, 2) - 3/160 y DATA(-1, -1, 2) + + 2 2 + - 1/160 y DATA(0, -1, 2) - 1/32 x DATA(-1, 1, -1) + + 2 2 + + 3/32 x DATA(0, 1, -1) - 3/32 x DATA(1, 1, -1) + + 2 2 + - 1/32 x DATA(-1, -1, 0) + 3/32 x DATA(0, -1, 0) + + 2 2 2 + - 3/32 x DATA(1, -1, 0) - 1/32 x DATA(-1, 0, 0) - 1/32 x DATA(-1, 1, 0) + + 2 2 2 + - 1/32 x DATA(-1, 1, 1) - 1/32 x DATA(-1, 0, 1) - 3/32 x DATA(1, -1, 1) + + 2 2 + - 1/32 x DATA(-1, -1, 1) + 3/32 x DATA(0, -1, 1) + + 2 2 + - 1/32 x DATA(-1, 0, -1) + 3/32 x DATA(0, 0, -1) + + 2 2 2 + - 3/32 x DATA(1, 0, -1) + 3/32 x DATA(0, 0, 0) - 3/32 x DATA(1, 0, 0) + + 2 2 2 + + 1/32 x DATA(2, 0, 1) + 1/32 x DATA(2, 1, 0) + 1/32 x DATA(2, 2, 1) + + 2 2 2 + + 1/32 x DATA(2, 2, -1) + 1/32 x DATA(2, -1, 2) - 1/32 x DATA(-1, 2, 0) + + 2 2 2 + + 3/32 x DATA(0, 2, 0) + 1/32 x DATA(2, -1, 0) + 1/32 x DATA(2, 0, 0) + + 2 2 2 + - 3/32 x DATA(1, 2, 2) + 1/32 x DATA(2, 2, 2) - 3/32 x DATA(1, 1, 2) + + 2 2 2 + - 3/32 x DATA(1, 0, 1) + 1/32 x DATA(2, -1, -1) + 1/32 x DATA(2, 0, -1) + + 2 2 2 + + 1/32 x DATA(2, 1, 1) - 1/32 x DATA(-1, 2, 1) + 3/32 x DATA(0, 2, 1) + + 2 2 2 + - 3/32 x DATA(1, 2, 1) + 1/32 x DATA(2, -1, 1) - 3/32 x DATA(1, -1, -1) + + 2 2 2 + - 3/32 x DATA(1, 2, 0) + 1/32 x DATA(2, 2, 0) + 3/32 x DATA(0, 1, 0) + + 2 2 + - 3/32 x DATA(1, 1, 0) + 3/32 x DATA(0, 0, 1) + + - 9/1000 y z DATA(0, -1, -1) - 9/1000 y z DATA(1, 2, -1) + + 27 + - 9/1000 y z DATA(2, 1, -1) + ---- y z DATA(-1, 2, -1) + 1000 + + + 9/1000 y z DATA(0, 2, -1) + 9/1000 y z DATA(2, 1, 2) + + 27 + - ---- y z DATA(-1, 2, 2) - 9/1000 y z DATA(0, 2, 2) + 1000 + + - 3/1000 y z DATA(1, 0, 2) - 9/1000 y z DATA(2, 0, 2) + + - 9/1000 y z DATA(-1, 1, 2) - 3/1000 y z DATA(0, 1, 2) + + - 9/1000 y z DATA(1, -1, 2) + 9/1000 y z DATA(-1, 0, 2) + + 27 + + 3/1000 y z DATA(0, 0, 2) + ---- y z DATA(-1, -1, 2) + 1000 + + + 9/1000 y z DATA(0, -1, 2) + 3/80 x y DATA(0, -1, 2) + + + 9/1000 y z DATA(-1, 1, -1) + 3/1000 y z DATA(0, 1, -1) + + - 3/1000 y z DATA(1, 1, -1) - 9/1000 y z DATA(-1, -1, 0) + + - 3/1000 y z DATA(0, -1, 0) + 3/1000 y z DATA(1, -1, 0) + + - 3/1000 y z DATA(-1, 0, 0) + 3/1000 y z DATA(-1, 1, 0) + + - 3/1000 y z DATA(-1, 1, 1) + 3/1000 y z DATA(-1, 0, 1) + + - 3/1000 y z DATA(1, -1, 1) + 9/1000 y z DATA(-1, -1, 1) + + + 3/1000 y z DATA(0, -1, 1) - 9/1000 y z DATA(-1, 0, -1) + + - 3/1000 y z DATA(0, 0, -1) + 3/1000 y z DATA(1, 0, -1) + + - 1/1000 y z DATA(0, 0, 0) + 1/1000 y z DATA(1, 0, 0) + + - 3/1000 y z DATA(2, 0, 1) - 3/1000 y z DATA(2, 1, 0) + + 27 + + 9/1000 y z DATA(2, 2, 1) - ---- y z DATA(2, 2, -1) + 1000 + + 27 + - ---- y z DATA(2, -1, 2) + 9/1000 y z DATA(-1, 2, 0) + 1000 + + + 3/1000 y z DATA(0, 2, 0) + 9/1000 y z DATA(2, -1, 0) + + + 3/1000 y z DATA(2, 0, 0) + 9/1000 y z DATA(1, 2, 2) + + 27 + + ---- y z DATA(2, 2, 2) + 3/1000 y z DATA(1, 1, 2) + 1000 + + 27 + - 1/1000 y z DATA(1, 0, 1) + ---- y z DATA(2, -1, -1) + 1000 + + + 9/1000 y z DATA(2, 0, -1) + 3/1000 y z DATA(2, 1, 1) + + - 9/1000 y z DATA(-1, 2, 1) - 3/1000 y z DATA(0, 2, 1) + + + 3/1000 y z DATA(1, 2, 1) - 9/1000 y z DATA(2, -1, 1) + + + 9/1000 y z DATA(1, -1, -1) - 3/1000 y z DATA(1, 2, 0) + + - 9/1000 y z DATA(2, 2, 0) + 1/1000 y z DATA(0, 1, 0) + + - 1/1000 y z DATA(1, 1, 0) + 1/1000 y z DATA(0, 0, 1) + + + 1/80 x y DATA(1, 0, -1) + 1/80 x y DATA(0, 0, 0) + + + 1/80 x y DATA(1, 0, 0) - 1/80 x y DATA(2, 0, 1) + 1/80 x y DATA(2, 1, 0) + + + 3/80 x y DATA(2, 2, 1) + 3/80 x y DATA(2, 2, -1) + + - 3/80 x y DATA(2, -1, 2) + 3/80 x y DATA(-1, 2, 0) + + - 3/80 x y DATA(0, 2, 0) - 3/80 x y DATA(2, -1, 0) + + - 1/80 x y DATA(2, 0, 0) - 3/80 x y DATA(1, 2, 2) + 3/80 x y DATA(2, 2, 2) + + - 1/80 x y DATA(1, 1, 2) + 1/80 x y DATA(1, 0, 1) + + - 3/80 x y DATA(2, -1, -1) - 1/80 x y DATA(2, 0, -1) + + + 1/80 x y DATA(2, 1, 1) + 3/80 x y DATA(-1, 2, 1) + + - 3/80 x y DATA(0, 2, 1) - 3/80 x y DATA(1, 2, 1) + + - 3/80 x y DATA(2, -1, 1) + 3/80 x y DATA(1, -1, -1) + + - 3/80 x y DATA(1, 2, 0) + 3/80 x y DATA(2, 2, 0) - 1/80 x y DATA(0, 1, 0) + + - 1/80 x y DATA(1, 1, 0) + 1/80 x y DATA(0, 0, 1) - 1/80 x y DATA(0, 1, 1) + + - 1/80 x y DATA(1, 1, 1) - 3/80 x y DATA(-1, -1, -1) + + + 3/80 x y DATA(0, -1, -1) - 3/80 x y DATA(1, 2, -1) + + + 1/80 x y DATA(2, 1, -1) + 3/80 x y DATA(-1, 2, -1) + + - 3/80 x y DATA(0, 2, -1) + 1/80 x y DATA(2, 1, 2) + + + 3/80 x y DATA(-1, 2, 2) - 3/80 x y DATA(0, 2, 2) + + + 1/80 x y DATA(1, 0, 2) - 1/80 x y DATA(2, 0, 2) + + + 1/80 x y DATA(-1, 1, 2) - 1/80 x y DATA(0, 1, 2) + + + 3/80 x y DATA(1, -1, 2) - 1/80 x y DATA(-1, 0, 2) + + + 1/80 x y DATA(0, 0, 2) - 3/80 x y DATA(-1, -1, 2) + + - 3/80 x z DATA(-1, 1, -1) - 3/80 x z DATA(1, 1, 2) + + 2 + + 1/80 x z DATA(2, 1, 1) + 3/160 y DATA(-1, 0, 1) + + 27 + + 1/1000 y z DATA(1, 1, 1) - ---- y z DATA(-1, -1, -1) + 1000 + +> coeff_as_lc_of_data(%, posn_list_3d_size4); +bytes used=292509640, alloc=3734868, time=26.43 +bytes used=293520416, alloc=3734868, time=26.50 +bytes used=294520568, alloc=3734868, time=26.57 +bytes used=295528296, alloc=3734868, time=26.65 +bytes used=296554384, alloc=3734868, time=26.73 +bytes used=297558604, alloc=3865916, time=26.80 +bytes used=298558744, alloc=4259060, time=26.88 +bytes used=299563588, alloc=4717728, time=26.95 + 47 2 27 147 +[COEFF(-1, -1, -1) = - 3/80 x z - ---- - 3/80 x y - 1/32 x - ---- y z + ---- z + 1500 1000 2000 + + 147 2 2 + + ---- y + 1/10 x - 3/160 y - 3/160 z , COEFF(0, -1, -1) = 3/80 x y + 2000 + + 2 13 2 2 + - 1/2000 z - 1/160 y + 3/80 x z - -- x + 3/32 x - 9/1000 y z - 1/160 z + 80 + + 39 2 + - 1/2000 y - ----, COEFF(1, -1, -1) = 1/40 x + 3/80 x y + 1/160 y + 4000 + + 37 2 2 157 37 + - ---- y + 9/1000 y z + 1/160 z - 3/32 x + ---- + 3/80 x z - ---- z, + 1000 2000 1000 + + 2 2 + COEFF(2, -1, -1) = - 9/250 z + 3/160 y + 1/32 x - 3/80 x z - 3/80 x y + + 2 27 449 + - 9/250 y + 3/160 z + 3/80 x + ---- y z - -----, COEFF(-1, 0, -1) = + 1000 12000 + + 607 2 129 + - 9/1000 y z - 1/2000 y - 3/80 x z - ----- - 1/32 x + ---- z - 1/80 x y + 12000 2000 + + 2 2 17 + + 7/80 x - 3/160 z + 3/160 y , COEFF(0, 0, -1) = - 7/2000 z - ---- y + 2000 + + 2 2 2 49 + - 1/160 z + 1/80 x y + 3/32 x + 1/160 y - ---- - 3/1000 y z + 3/80 x z + 2000 + + 2 + - 3/20 x, COEFF(1, 0, -1) = - 1/250 y + 3/80 x + 3/1000 y z + 1/160 z + + 17 2 2 323 + - --- z - 3/32 x - 1/160 y + ---- + 1/80 x y + 3/80 x z, COEFF(2, 0, -1) + 500 4000 + + 17 2 27 + = 9/1000 y z - ---- + 3/160 z - 1/80 x y - 3/80 x z - ---- z + 1/40 x + 3000 1000 + + 2 2 13 2 + + 1/32 x - 3/160 y + ---- y, COEFF(-1, 1, -1) = - 3/160 z + 3/40 x + 1000 + + 111 2 2 97 + + 1/80 x y + ---- z + 3/160 y + 9/1000 y z - 3/80 x z - 1/32 x - ---- + 2000 3000 + + 37 2 2 11 + - ---- y, COEFF(0, 1, -1) = 3/32 x + 1/160 y + 3/1000 y z - -- x + 1000 80 + + 13 2 107 + - ---- z - 1/160 z - 1/80 x y - 1/250 y - ---- + 3/80 x z, + 2000 4000 + + 33 2 2 + COEFF(1, 1, -1) = ---- y - 3/1000 y z + 3/80 x z - 3/32 x + 1/160 z + 2000 + + 2 31 141 2 + - 1/160 y - 1/80 x y + 1/20 x - ---- z + ----, COEFF(2, 1, -1) = 3/160 z + 1000 2000 + + 137 49 + - 3/80 x z - ----- - 9/500 z - 9/1000 y z + 1/80 x y + 1/80 x + ---- y + 12000 2000 + + 2 2 2 93 + + 1/32 x - 3/160 y , COEFF(-1, 2, -1) = - 3/80 x z - 1/32 x + ---- z + 2000 + + 2 27 281 2 + - 9/250 y + 1/16 x - 3/160 y + 3/80 x y + ---- y z + ----- - 3/160 z , + 1000 12000 + + 19 2 13 2 + COEFF(0, 2, -1) = - ---- z - 1/160 z - 1/8 x + ---- y + 3/32 x - 3/80 x y + 2000 1000 + + 2 33 + + 3/80 x z - 1/160 y - ---- + 9/1000 y z, COEFF(1, 2, -1) = 3/80 x z + 2000 + + 2 191 2 49 + - 3/32 x - 7/250 z - 3/80 x y + ---- + 1/160 z + ---- y + 1/16 x + 4000 2000 + + 2 + - 9/1000 y z + 1/160 y , COEFF(2, 2, -1) = - 3/2000 y - 3/80 x z + + 27 2 2 41 2 + - ---- y z + 3/160 y - 9/1000 z + 3/160 z - --- + 3/80 x y + 1/32 x , + 1000 750 + + 607 129 + COEFF(-1, -1, 0) = - ----- + 7/80 x - 1/80 x z - 1/2000 z + ---- y + 12000 2000 + + 2 2 2 + - 9/1000 y z - 3/80 x y - 1/32 x + 3/160 z - 3/160 y , COEFF(0, -1, 0) + + 2 2 2 49 + = - 1/160 y - 3/20 x + 1/160 z + 3/32 x + 1/80 x z - 3/1000 y z - ---- + 2000 + + 17 17 + - ---- z + 3/80 x y - 7/2000 y, COEFF(1, -1, 0) = - --- y + 3/1000 y z + 2000 500 + + 2 323 2 + + 3/80 x + 1/160 y + ---- - 1/250 z + 3/80 x y + 1/80 x z - 3/32 x + 4000 + + 2 27 2 17 + - 1/160 z , COEFF(2, -1, 0) = - ---- y - 3/80 x y + 1/32 x - ---- + 1000 3000 + + 2 13 2 + + 9/1000 y z - 3/160 z + ---- z - 1/80 x z + 1/40 x + 3/160 y , + 1000 + + 2 2 + COEFF(-1, 0, 0) = - 1/32 x - 3/1000 y z - 1/80 x z - 1/80 x y + 3/160 z + + 2 437 + + 3/40 x - 7/2000 z + 3/160 y - ---- - 7/2000 y, COEFF(0, 0, 0) = + 6000 + + 19 19 11 2 + - 1/1000 y z + 1/80 x z - ---- z - ---- y + 1/80 x y - -- x + 1/160 y + 2000 2000 80 + + 2 161 2 2 2 + + 1/160 z - ---- + 3/32 x , COEFF(1, 0, 0) = - 3/32 x - 1/160 y + 4000 + + 2 + - 1/160 z + 1/1000 y z + 1/20 x + 1/80 x y + 1/80 x z - 3/1000 z + + 21 349 2 + - 3/1000 y + ---, COEFF(2, 0, 0) = ----- + 2/125 y - 1/80 x z - 3/160 z + 250 12000 + + 2 2 + - 3/160 y + 1/32 x - 1/80 x y + 3/1000 y z + 1/80 x + 2/125 z, + + 2 2 + COEFF(-1, 1, 0) = - 1/80 x z - 1/32 x + 3/160 y + 1/80 x y + 1/16 x + + 13 691 17 2 + - ---- z - ----- - --- y + 3/160 z + 3/1000 y z, COEFF(0, 1, 0) = + 2000 12000 500 + + 2 87 + 1/1000 y z - 3/1000 y - 1/8 x + 3/32 x - 1/80 x y - ---- + 1/80 x z + 2000 + + 2 21 2 31 2 299 + + 1/160 z - ---- z + 1/160 y , COEFF(1, 1, 0) = ---- y - 1/160 z + ---- + 2000 2000 4000 + + 2 2 + + 1/16 x - 1/160 y - 1/80 x y + 1/80 x z - 1/1000 y z - 3/32 x - 1/500 z + + 2 43 2 + , COEFF(2, 1, 0) = - 3/160 z - 3/1000 y z + 1/80 x y + ---- y + 1/32 x + 2000 + + 19 79 2 2 + + ---- z + ---- - 1/80 x z - 3/160 y , COEFF(-1, 2, 0) = - 1/32 x + 1000 3000 + + 27 2 2 19 + - ---- y + 3/80 x y - 3/160 y + 3/160 z - ---- z + 9/1000 y z - 1/80 x z + 1000 2000 + + 29 23 137 + - ---- + 1/20 x, COEFF(0, 2, 0) = - 9/80 x - ---- z + 2/125 y - ---- + 6000 2000 4000 + + 2 2 2 + + 1/80 x z - 1/160 y + 1/160 z - 3/80 x y + 3/32 x + 3/1000 y z, + + 53 2 2 2 + COEFF(1, 2, 0) = ---- + 1/160 y - 3/32 x - 1/1000 z - 1/160 z + 1/80 x z + 1000 + + 43 2 + + 3/40 x - 3/80 x y + ---- y - 3/1000 y z, COEFF(2, 2, 0) = 1/32 x + 2000 + + 167 11 21 2 + - ----- + --- z - 1/80 x z - ---- y + 3/80 x y - 1/80 x + 3/160 y + 12000 500 2000 + + 2 111 2 97 + - 9/1000 y z - 3/160 z , COEFF(-1, -1, 1) = ---- y - 3/160 y - ---- + 2000 3000 + + 2 37 2 + + 3/160 z + 1/80 x z - ---- z + 9/1000 y z - 3/80 x y - 1/32 x + 3/40 x, + 1000 + + 11 107 2 + COEFF(0, -1, 1) = 3/80 x y - 1/250 z - -- x - ---- + 1/160 z + 3/1000 y z + 80 4000 + + 2 13 2 + - 1/160 y - ---- y - 1/80 x z + 3/32 x , COEFF(1, -1, 1) = - 1/80 x z + 2000 + + 33 2 2 31 + + 1/20 x + ---- z - 3/1000 y z - 3/32 x + 1/160 y - ---- y + 3/80 x y + 2000 1000 + + 2 141 + - 1/160 z + ----, COEFF(2, -1, 1) = - 9/500 y + 1/80 x z - 9/1000 y z + 2000 + + 2 49 137 2 2 + - 3/160 z + ---- z - ----- + 1/32 x + 3/160 y + 1/80 x - 3/80 x y, + 2000 12000 + + 691 2 + COEFF(-1, 0, 1) = 1/16 x - ----- + 3/1000 y z + 1/80 x z - 1/32 x + 12000 + + 2 2 17 13 + - 1/80 x y + 3/160 y + 3/160 z - --- z - ---- y, COEFF(0, 0, 1) = + 500 2000 + + 21 2 2 + - ---- y - 3/1000 z - 1/8 x + 1/1000 y z + 1/160 z + 1/160 y + 1/80 x y + 2000 + + 87 2 2 + - 1/80 x z - ---- + 3/32 x , COEFF(1, 0, 1) = - 1/1000 y z - 3/32 x + 2000 + + 31 2 299 2 + - 1/500 y + 1/16 x + ---- z - 1/80 x z - 1/160 z + ---- - 1/160 y + 2000 4000 + + 43 79 + + 1/80 x y, COEFF(2, 0, 1) = - 1/80 x y + 1/80 x z + ---- z + ---- + 2000 3000 + + 19 2 2 2 + + ---- y - 3/160 y + 1/32 x - 3/160 z - 3/1000 y z, COEFF(-1, 1, 1) = + 1000 + + 2 17 31 31 + - 1/32 x + 1/20 x - --- - 3/1000 y z - ---- z + 1/80 x y - ---- y + 375 1000 1000 + + 2 2 2 + + 1/80 x z + 3/160 z + 3/160 y , COEFF(0, 1, 1) = - 9/80 x + 1/160 z + + 2 2 191 + + 1/160 y - 1/500 y - 1/1000 y z + 3/32 x - 1/500 z - ---- - 1/80 x z + 4000 + + 2 133 + - 1/80 x y, COEFF(1, 1, 1) = - 1/160 y + 3/40 x - 1/80 x y + ---- + 2000 + + 2 29 2 29 + - 1/80 x z - 1/160 z + 1/1000 y z + ---- z - 3/32 x + ---- y, + 2000 2000 + + 319 37 2 37 + COEFF(2, 1, 1) = 3/1000 y z + ----- - 1/80 x + ---- z + 1/32 x + ---- y + 12000 2000 2000 + + 2 2 + - 3/160 z + 1/80 x z + 1/80 x y - 3/160 y , COEFF(-1, 2, 1) = 3/80 x + + 2 2 + - 9/1000 y z - 3/160 y + 3/80 x y + 1/80 x z - 9/500 y + 3/160 z + + 2 53 2 + - 1/32 x + ----- - 7/250 z, COEFF(0, 2, 1) = 3/32 x - 3/1000 y z + 12000 + + 2 79 19 2 + - 1/160 y - 1/80 x z - 1/10 x - ---- + ---- y + 1/160 z - 3/80 x y + 2000 1000 + + 2 183 + - 1/1000 z, COEFF(1, 2, 1) = 3/1000 y z - 3/80 x y - 1/160 z + ---- + 4000 + + 27 2 37 2 + + ---- z - 3/32 x + 7/80 x + ---- y - 1/80 x z + 1/160 y , COEFF(2, 2, 1) + 2000 2000 + + 31 2 39 2 + = ---- z + 3/80 x y + 3/160 y - ---- y + 9/1000 y z - 4/375 - 3/160 z + 2000 2000 + + 2 2 + + 1/80 x z - 1/40 x + 1/32 x , COEFF(-1, -1, 2) = - 9/250 z - 3/160 y + + 27 281 2 2 93 + + ---- y z + ----- - 1/32 x - 3/160 z + 1/16 x + ---- y - 3/80 x y + 1000 12000 2000 + + 13 2 + + 3/80 x z, COEFF(0, -1, 2) = 9/1000 y z + 3/80 x y + ---- z - 1/160 z + 1000 + + 33 19 2 2 + - 3/80 x z - ---- - ---- y - 1/160 y + 3/32 x - 1/8 x, COEFF(1, -1, 2) + 2000 2000 + + 49 2 2 2 + = ---- z - 9/1000 y z - 7/250 y - 3/32 x + 1/160 y + 1/160 z - 3/80 x z + 2000 + + 191 27 + + ---- + 3/80 x y + 1/16 x, COEFF(2, -1, 2) = - 9/1000 y - ---- y z + 4000 1000 + + 2 2 2 41 + + 3/160 z + 3/80 x z + 3/160 y + 1/32 x - 3/80 x y - --- - 3/2000 z, + 750 + + 2 29 2 + COEFF(-1, 0, 2) = - 1/32 x - ---- + 9/1000 y z + 3/160 y + 1/20 x + 6000 + + 27 2 19 + - ---- z - 3/160 z + 3/80 x z - 1/80 x y - ---- y, COEFF(0, 0, 2) = + 1000 2000 + + 2 137 2 23 + 3/1000 y z + 3/32 x - ---- - 9/80 x + 1/160 y - ---- y - 3/80 x z + 4000 2000 + + 2 2 + - 1/160 z + 1/80 x y + 2/125 z, COEFF(1, 0, 2) = 1/80 x y - 3/32 x + + 2 2 43 + - 3/80 x z - 3/1000 y z - 1/1000 y - 1/160 y + 1/160 z + 3/40 x + ---- z + 2000 + + 53 2 11 + + ----, COEFF(2, 0, 2) = - 1/80 x y - 3/160 y + 3/80 x z + --- y + 1000 500 + + 2 2 167 21 + + 1/32 x + 3/160 z - ----- - 9/1000 y z - ---- z - 1/80 x, + 12000 2000 + + 2 + COEFF(-1, 1, 2) = 3/80 x - 9/500 z - 9/1000 y z + 3/160 y - 7/250 y + + 2 2 53 + + 1/80 x y + 3/80 x z - 1/32 x - 3/160 z + -----, COEFF(0, 1, 2) = + 12000 + + 79 2 2 2 + - ---- - 3/1000 y z + 3/32 x - 3/80 x z - 1/10 x - 1/160 z + 1/160 y + 2000 + + 19 2 + + ---- z - 1/80 x y - 1/1000 y, COEFF(1, 1, 2) = 1/160 z - 1/80 x y + 1000 + + 37 183 27 2 2 + + ---- z + ---- + ---- y + 7/80 x - 3/32 x - 1/160 y + 3/1000 y z + 2000 4000 2000 + + 2 39 2 + - 3/80 x z, COEFF(2, 1, 2) = - 3/160 y - ---- z + 1/32 x + 3/80 x z + 2000 + + 2 31 + + 1/80 x y - 4/375 + 9/1000 y z + 3/160 z - 1/40 x + ---- y, + 2000 + + 27 2 + COEFF(-1, 2, 2) = - 9/1000 z - ---- y z + 3/80 x y - 1/32 x + 1/40 x + 1000 + + 2 2 307 + - 3/160 y + 3/80 x z - 9/1000 y - 3/160 z + ----, COEFF(0, 2, 2) = + 6000 + + 129 2 11 2 11 + - 3/80 x z - ---- - 1/160 y - 3/80 x y + --- y + 3/32 x - 7/80 x + --- z + 4000 500 500 + + 2 31 + - 9/1000 y z - 1/160 z , COEFF(1, 2, 2) = - 3/80 x z + ---- z + 9/1000 y z + 2000 + + 2 13 2 2 31 + - 3/80 x y - 3/32 x + --- + 1/160 z + 1/160 y + 1/10 x + ---- y, + 500 2000 + + 2 539 2 2 + COEFF(2, 2, 2) = 3/80 x y + 3/160 y - ----- + 1/32 x + 3/160 z + 12000 + + 57 57 27 + + 3/80 x z - ---- z - ---- y + ---- y z - 3/80 x] + 2000 2000 1000 + +> print_coeff__lc_of_data(%, "coeff_dx_", "fp", +> "3d.coeffs/3d.cube.order3.smooth0/coeff-dx.compute.c"); +bytes used=300564184, alloc=4717728, time=27.04 +bytes used=301564600, alloc=4717728, time=27.12 +bytes used=302564920, alloc=4717728, time=27.21 +bytes used=303565140, alloc=4717728, time=27.40 +bytes used=304565332, alloc=4717728, time=27.48 +bytes used=305598508, alloc=4717728, time=27.57 +bytes used=306602936, alloc=4717728, time=27.65 +bytes used=307632852, alloc=4717728, time=27.73 +bytes used=308655888, alloc=4717728, time=27.84 +bytes used=309666652, alloc=4717728, time=27.95 +bytes used=310666852, alloc=4717728, time=28.19 +bytes used=311667052, alloc=4717728, time=28.37 +bytes used=312667728, alloc=4717728, time=28.43 +bytes used=313667976, alloc=4717728, time=28.50 +bytes used=314668188, alloc=4717728, time=28.56 +bytes used=315668424, alloc=4717728, time=28.63 +bytes used=316668580, alloc=4717728, time=28.75 +bytes used=317677720, alloc=4717728, time=28.86 +bytes used=318678104, alloc=4717728, time=29.00 +bytes used=319678292, alloc=4717728, time=29.13 +bytes used=320687152, alloc=4717728, time=29.27 +bytes used=321687340, alloc=4717728, time=29.38 +bytes used=322688756, alloc=4717728, time=29.48 +bytes used=323689024, alloc=4717728, time=29.72 +bytes used=324689236, alloc=4717728, time=30.01 +bytes used=325689492, alloc=4717728, time=30.10 +bytes used=326689780, alloc=4717728, time=30.17 +bytes used=327690072, alloc=4717728, time=30.24 +bytes used=328690264, alloc=4717728, time=30.31 +bytes used=329690556, alloc=4717728, time=30.45 +bytes used=330690816, alloc=4717728, time=30.60 +bytes used=331691040, alloc=4717728, time=30.69 +bytes used=332691372, alloc=4717728, time=31.13 +bytes used=333691776, alloc=4717728, time=31.22 +bytes used=334691968, alloc=4717728, time=31.29 +bytes used=335692212, alloc=4717728, time=31.36 +bytes used=336692404, alloc=4717728, time=31.43 +bytes used=337692616, alloc=4717728, time=31.60 +bytes used=338692800, alloc=4717728, time=31.70 +bytes used=339692976, alloc=4717728, time=32.13 +bytes used=340693224, alloc=4717728, time=32.21 +bytes used=341693548, alloc=4717728, time=32.28 +bytes used=342693744, alloc=4717728, time=32.35 +bytes used=343694008, alloc=4717728, time=32.50 +bytes used=344694208, alloc=4717728, time=32.61 +bytes used=345694624, alloc=4717728, time=33.02 +bytes used=346695224, alloc=4717728, time=33.09 +bytes used=347695392, alloc=4717728, time=33.24 +> +# d/dy +> simplify( diff(interp_3d_cube_order3_smooth0,y) ); +bytes used=348695592, alloc=4717728, time=33.33 +bytes used=349695760, alloc=4717728, time=33.40 +bytes used=350695988, alloc=4717728, time=33.47 +bytes used=351696308, alloc=4717728, time=33.54 +bytes used=352696764, alloc=4717728, time=33.61 +bytes used=353696916, alloc=4717728, time=33.69 +bytes used=354697100, alloc=4717728, time=33.76 +bytes used=355697224, alloc=4717728, time=33.84 +157 323 141 +---- DATA(-1, 1, -1) + ---- DATA(0, 1, -1) + ---- DATA(1, 1, -1) +2000 4000 2000 + + 607 437 691 + - ----- DATA(-1, -1, 0) - ---- DATA(0, -1, 0) - ----- DATA(1, -1, 0) + 12000 6000 12000 + + 49 323 141 + - ---- DATA(-1, 0, 0) + ---- DATA(-1, 1, 0) + ---- DATA(-1, 1, 1) + 2000 4000 2000 + + 107 17 97 + - ---- DATA(-1, 0, 1) - --- DATA(1, -1, 1) - ---- DATA(-1, -1, 1) + 4000 375 3000 + + 691 39 49 + - ----- DATA(0, -1, 1) - ---- DATA(-1, 0, -1) - ---- DATA(0, 0, -1) + 12000 4000 2000 + + 107 161 87 + - ---- DATA(1, 0, -1) - ---- DATA(0, 0, 0) - ---- DATA(1, 0, 0) + 4000 4000 2000 + + 21 299 87 + + --- DATA(0, 1, 0) + ---- DATA(1, 1, 0) - ---- DATA(0, 0, 1) + 250 4000 2000 + + 191 299 133 + - ---- DATA(1, 0, 1) + ---- DATA(0, 1, 1) + ---- DATA(1, 1, 1) + 4000 4000 2000 + + 47 607 137 + - ---- DATA(-1, -1, -1) - ----- DATA(0, -1, -1) - ----- DATA(1, 2, -1) + 1500 12000 12000 + + 191 449 17 + + ---- DATA(2, 1, -1) - ----- DATA(-1, 2, -1) - ---- DATA(0, 2, -1) + 4000 12000 3000 + + 281 33 183 + + ----- DATA(2, -1, -1) - ---- DATA(2, 0, -1) + ---- DATA(2, 1, 1) + 12000 2000 4000 + + 137 79 319 + - ----- DATA(-1, 2, 1) + ---- DATA(0, 2, 1) + ----- DATA(1, 2, 1) + 12000 3000 12000 + + 53 79 97 + + ----- DATA(2, -1, 1) - ---- DATA(2, 0, 1) - ---- DATA(1, -1, -1) + 12000 2000 3000 + + 79 167 53 + + ---- DATA(1, 2, 0) - ----- DATA(2, 2, 0) + ---- DATA(2, 1, 0) + 3000 12000 1000 + + 17 349 29 + - ---- DATA(-1, 2, 0) + ----- DATA(0, 2, 0) - ---- DATA(2, -1, 0) + 3000 12000 6000 + + 137 41 + - ---- DATA(2, 0, 0) - --- DATA(2, 2, -1) - 4/375 DATA(1, 2, 2) + 4000 750 + + 539 183 13 + - ----- DATA(2, 2, 2) + ---- DATA(1, 1, 2) + --- DATA(2, 1, 2) + 12000 4000 500 + + 41 167 79 + - --- DATA(-1, 2, 2) - ----- DATA(0, 2, 2) - ---- DATA(1, 0, 2) + 750 12000 2000 + + 129 191 53 + - ---- DATA(2, 0, 2) + ---- DATA(-1, 1, 2) + ---- DATA(0, 1, 2) + 4000 4000 1000 + + 53 307 33 + + ----- DATA(1, -1, 2) + ---- DATA(2, -1, 2) - ---- DATA(-1, 0, 2) + 12000 6000 2000 + + 137 19 + - ---- DATA(0, 0, 2) - 9/1000 x DATA(2, -1, 2) + ---- x DATA(2, 0, 1) + 4000 1000 + + 43 281 + + ---- x DATA(2, 1, 0) - 3/2000 x DATA(2, 2, -1) + ----- DATA(-1, -1, 2) + 2000 12000 + + 29 37 + - ---- DATA(0, -1, 2) - 4/375 DATA(2, 2, 1) - ---- x DATA(-1, 1, -1) + 6000 1000 + + + 3/80 x y DATA(-1, 1, 1) + 1/80 x y DATA(0, 0, -1) + + - 9/1000 x z DATA(-1, -1, 0) - 3/1000 x z DATA(2, 1, 0) + + - 9/1000 x z DATA(-1, 2, 1) - 3/1000 x z DATA(0, 2, 1) + + - 3/1000 x z DATA(0, 1, 2) + 9/1000 x z DATA(2, 1, 2) + + - 3/1000 x z DATA(-1, 1, 1) + 3/1000 x z DATA(0, 2, 0) + + + 3/80 x y DATA(-1, 0, 1) + 3/1000 x z DATA(-1, 0, 1) + + + 3/1000 x z DATA(-1, 1, 0) - 9/1000 x z DATA(2, 2, 0) + + + 9/1000 x z DATA(2, -1, 0) - 1/80 x y DATA(1, 1, -1) + + - 9/1000 x z DATA(0, 2, 2) + 3/1000 x z DATA(2, 0, 0) + + + 9/1000 x z DATA(2, 2, 1) + 3/1000 x z DATA(0, 0, 2) + + + 9/1000 x z DATA(2, 0, -1) - 9/1000 x z DATA(2, 1, -1) + + + 1/80 x y DATA(0, 1, -1) + 3/1000 x z DATA(1, 0, -1) + + - 9/1000 x z DATA(0, -1, -1) + 3/80 x y DATA(-1, 0, -1) + + - 1/1000 x z DATA(0, 1, 1) - 9/1000 x z DATA(2, -1, 1) + + 27 + - ---- x z DATA(2, 2, -1) - 1/80 x y DATA(0, -1, 1) + 1000 + + + 1/80 x y DATA(1, -1, 0) + 3/1000 x z DATA(1, -1, 0) + + 27 + - 1/1000 x z DATA(0, 0, 0) + ---- x z DATA(-1, -1, 2) + 1000 + + 27 + + 9/1000 x z DATA(0, -1, 2) + ---- x z DATA(-1, 2, -1) + 1000 + + 27 + - 9/1000 x z DATA(-1, 1, 2) - ---- x z DATA(-1, -1, -1) + 1000 + + - 9/1000 x z DATA(1, 2, -1) + 3/1000 x z DATA(1, 2, 1) + + + 1/1000 x z DATA(0, 1, 0) - 9/1000 x z DATA(-1, 0, -1) + + 27 + + 9/1000 x z DATA(1, 2, 2) + ---- x z DATA(2, 2, 2) + 1000 + + 27 + - 3/1000 x z DATA(2, 0, 1) - ---- x z DATA(2, -1, 2) + 1000 + + 27 + - ---- x z DATA(-1, 2, 2) - 3/1000 x z DATA(1, 2, 0) + 1000 + + - 9/1000 x z DATA(2, 0, 2) - 1/80 x y DATA(0, -1, 0) + + + 9/1000 x z DATA(-1, 2, 0) - 1/1000 x z DATA(1, 1, 0) + + + 1/1000 x z DATA(1, 0, 0) + 1/1000 x z DATA(0, 0, 1) + + + 3/80 x y DATA(-1, 1, 0) + 1/1000 x z DATA(1, 1, 1) + + 27 + + ---- x z DATA(2, -1, -1) - 3/1000 x z DATA(1, 0, 2) + 1000 + + - 9/1000 x z DATA(1, -1, 2) - 3/80 x y DATA(-1, -1, 0) + + + 9/1000 x z DATA(-1, 0, 2) + 9/1000 x z DATA(1, -1, -1) + + + 3/1000 x z DATA(0, 1, -1) - 3/1000 x z DATA(0, 0, -1) + + - 3/1000 x z DATA(-1, 0, 0) - 3/1000 x z DATA(1, -1, 1) + + + 3/80 x y DATA(-1, 1, -1) - 1/80 y z DATA(0, 1, 1) + + + 1/40 y DATA(2, -1, 2) + 1/80 y DATA(0, 2, 0) + 1/40 y DATA(-1, 2, 0) + + 2 2 + - 1/32 y DATA(1, -1, 1) - 1/32 y DATA(-1, -1, 1) + + 2 2 + - 1/32 y DATA(0, -1, 1) + 3/32 y DATA(-1, 0, -1) + + 2 2 2 + + 3/32 y DATA(0, 0, -1) + 3/32 y DATA(1, 0, -1) + 3/32 y DATA(0, 0, 0) + + 2 2 + + 3/32 y DATA(1, 0, 0) + 3/32 y DATA(2, 0, 1) + + - 3/1000 x z DATA(0, -1, 0) + 9/1000 x z DATA(0, 2, -1) + + + 3/1000 x z DATA(0, -1, 1) + 9/1000 x z DATA(-1, -1, 1) + + - 1/1000 x z DATA(1, 0, 1) - 3/80 x y DATA(-1, -1, 1) + + + 1/80 x y DATA(1, -1, 1) - 3/1000 x z DATA(1, 1, -1) + + + 3/80 x y DATA(-1, 0, 0) + 7/80 y DATA(-1, -1, 0) + 1/16 y DATA(1, -1, 0) + + - 3/20 y DATA(-1, 0, 0) + 3/80 y DATA(-1, 1, 0) + 1/20 y DATA(-1, 1, 1) + + 11 + - -- y DATA(-1, 0, 1) + 1/20 y DATA(1, -1, 1) + 3/40 y DATA(-1, -1, 1) + 80 + + 13 + + 1/16 y DATA(0, -1, 1) - -- y DATA(-1, 0, -1) - 3/20 y DATA(0, 0, -1) + 80 + + 11 11 + - -- y DATA(1, 0, -1) - -- y DATA(0, 0, 0) - 1/8 y DATA(1, 0, 0) + 80 80 + + - 1/10 y DATA(2, 0, 1) + 3/40 y DATA(2, 1, 0) - 1/40 y DATA(2, 2, 1) + + + 3/40 y DATA(1, -1, -1) - 1/80 y DATA(2, 2, 0) + 1/20 y DATA(0, 1, 0) + + + 1/16 y DATA(1, 1, 0) - 1/8 y DATA(0, 0, 1) + 1/16 y DATA(0, 1, 1) + + + 3/40 y DATA(1, 1, 1) + 1/10 y DATA(-1, -1, -1) + 7/80 y DATA(0, -1, -1) + + + 1/80 y DATA(1, 2, -1) + 1/16 y DATA(2, 1, -1) + 3/80 y DATA(-1, 2, -1) + + + 1/40 y DATA(0, 2, -1) + 1/10 y DATA(2, 1, 2) - 1/80 y DATA(0, 2, 2) + + - 1/10 y DATA(1, 0, 2) - 7/80 y DATA(2, 0, 2) + 1/16 y DATA(-1, 1, 2) + + + 3/40 y DATA(0, 1, 2) + 3/80 y DATA(1, -1, 2) - 1/8 y DATA(-1, 0, 2) + + - 9/80 y DATA(0, 0, 2) + 1/16 y DATA(-1, -1, 2) + 1/20 y DATA(0, -1, 2) + + 37 17 31 + - ---- z DATA(-1, 1, -1) - --- z DATA(0, 1, -1) - ---- z DATA(1, 1, -1) + 1000 500 1000 + + - 1/2000 z DATA(-1, -1, 0) - 7/2000 z DATA(0, -1, 0) + + 13 17 + - ---- z DATA(1, -1, 0) - ---- z DATA(-1, 0, 0) - 1/250 z DATA(-1, 1, 0) + 2000 2000 + + 33 31 + + ---- z DATA(-1, 1, 1) - 1/250 z DATA(-1, 0, 1) - ---- z DATA(1, -1, 1) + 2000 1000 + + 37 17 + - ---- z DATA(-1, -1, 1) - --- z DATA(0, -1, 1) - 1/2000 z DATA(-1, 0, -1) + 1000 500 + + 13 19 + - 7/2000 z DATA(0, 0, -1) - ---- z DATA(1, 0, -1) - ---- z DATA(0, 0, 0) + 2000 2000 + + 21 + - ---- z DATA(1, 0, 0) - 1/1000 z DATA(2, 0, 1) - 1/1000 z DATA(2, 1, 0) + 2000 + + 31 + + ---- z DATA(2, 2, 1) - 9/1000 z DATA(2, 2, -1) - 9/1000 z DATA(2, -1, 2) + 2000 + + 13 19 + + ---- z DATA(-1, 2, 0) + 2/125 z DATA(0, 2, 0) - ---- z DATA(2, -1, 0) + 1000 2000 + + 23 39 57 + - ---- z DATA(2, 0, 0) - ---- z DATA(1, 2, 2) - ---- z DATA(2, 2, 2) + 2000 2000 2000 + + 37 93 + + ---- z DATA(1, 1, 2) - 1/500 z DATA(1, 0, 1) + ---- z DATA(2, -1, -1) + 2000 2000 + + 19 27 49 + - ---- z DATA(2, 0, -1) + ---- z DATA(2, 1, 1) + ---- z DATA(-1, 2, 1) + 2000 2000 2000 + + 43 33 + + ---- z DATA(0, 2, 1) - 1/250 x DATA(0, 1, -1) + ---- x DATA(1, 1, -1) + 2000 2000 + + 129 2 + + ---- x DATA(-1, -1, 0) + 3/40 y DATA(0, -1, 0) + 1/160 z DATA(1, 1, -1) + 2000 + + 2 2 + + 3/160 z DATA(0, -1, 0) + 3/160 z DATA(1, -1, 0) + + 2 2 + + 1/160 z DATA(-1, 0, 0) - 1/160 z DATA(-1, 1, 0) + + 2 2 + - 1/160 z DATA(-1, 1, 1) + 1/160 z DATA(-1, 0, 1) + + 2 2 + + 3/160 z DATA(1, -1, 1) + 3/160 z DATA(-1, -1, 1) + + 2 2 + + 3/160 z DATA(0, -1, 1) - 1/160 z DATA(-1, 0, -1) + + 2 2 + - 1/160 z DATA(0, 0, -1) - 1/160 z DATA(1, 0, -1) + + 2 2 2 + + 1/160 z DATA(0, 0, 0) + 1/160 z DATA(1, 0, 0) + 1/160 z DATA(2, 0, 1) + + 2 2 + - 1/160 z DATA(2, 1, 0) - 3/160 z DATA(2, 2, 1) + + 2 2 + + 3/160 z DATA(2, 2, -1) - 3/160 z DATA(2, -1, 2) + + 2 2 + - 3/160 z DATA(-1, 2, 0) - 3/160 z DATA(0, 2, 0) + + 2 2 + + 3/160 z DATA(2, -1, 0) + 1/160 z DATA(2, 0, 0) + + 2 2 2 + + 3/160 z DATA(1, 2, 2) + 3/160 z DATA(2, 2, 2) + 1/160 z DATA(1, 1, 2) + + 2 2 + + 1/160 z DATA(1, 0, 1) - 3/160 z DATA(2, -1, -1) + + 2 2 + - 1/160 z DATA(2, 0, -1) - 1/160 z DATA(2, 1, 1) + + 2 2 + - 3/160 z DATA(-1, 2, 1) - 3/160 z DATA(0, 2, 1) + + 2 2 + - 3/160 z DATA(1, 2, 1) + 3/160 z DATA(2, -1, 1) + + 2 2 + - 3/160 z DATA(1, -1, -1) - 3/160 z DATA(1, 2, 0) + + 2 2 2 + - 3/160 z DATA(2, 2, 0) - 1/160 z DATA(0, 1, 0) - 1/160 z DATA(1, 1, 0) + + 2 2 2 + + 1/160 z DATA(0, 0, 1) - 1/160 z DATA(0, 1, 1) - 1/160 z DATA(1, 1, 1) + + 2 2 + - 3/160 z DATA(-1, -1, -1) - 3/160 z DATA(0, -1, -1) + + 2 2 + + 3/160 z DATA(1, 2, -1) + 1/160 z DATA(2, 1, -1) + + 2 2 + + 3/160 z DATA(-1, 2, -1) + 3/160 z DATA(0, 2, -1) + + 2 2 + + 1/160 z DATA(2, 1, 2) + 3/160 z DATA(-1, 2, 2) + + 2 2 2 + + 3/160 z DATA(0, 2, 2) - 1/160 z DATA(1, 0, 2) - 1/160 z DATA(2, 0, 2) + + 2 2 + + 1/160 z DATA(-1, 1, 2) + 1/160 z DATA(0, 1, 2) + + 2 2 + - 3/160 z DATA(1, -1, 2) - 1/160 z DATA(-1, 0, 2) + + 2 2 + - 1/160 z DATA(0, 0, 2) - 3/160 z DATA(-1, -1, 2) + + 2 + - 3/160 z DATA(0, -1, 2) + 1/40 y DATA(-1, 1, -1) + 3/80 y DATA(0, 1, -1) + + 2 + + 1/20 y DATA(1, 1, -1) + 3/160 z DATA(-1, -1, 0) + 7/80 y DATA(2, 1, 1) + + - 1/80 y DATA(1, 2, 1) + 3/80 y DATA(2, -1, 1) - 7/2000 x DATA(0, -1, 0) + + 17 17 + - --- x DATA(1, -1, 0) - 7/2000 x DATA(-1, 0, 0) - --- x DATA(-1, 1, 0) + 500 500 + + 31 13 31 + - ---- x DATA(-1, 1, 1) - ---- x DATA(-1, 0, 1) - ---- x DATA(1, -1, 1) + 1000 2000 1000 + + 111 13 + + ---- x DATA(-1, -1, 1) - ---- x DATA(0, -1, 1) + 2000 2000 + + 17 + - 1/2000 x DATA(-1, 0, -1) - ---- x DATA(0, 0, -1) + 2000 + + 19 + - 1/250 x DATA(1, 0, -1) - ---- x DATA(0, 0, 0) - 3/1000 x DATA(1, 0, 0) + 2000 + + 39 27 + - ---- x DATA(2, 2, 1) - ---- x DATA(-1, 2, 0) + 2/125 x DATA(0, 2, 0) + 2000 1000 + + 27 31 + - ---- x DATA(2, -1, 0) + 2/125 x DATA(2, 0, 0) + ---- x DATA(1, 2, 2) + 1000 2000 + + 57 27 + - ---- x DATA(2, 2, 2) + ---- x DATA(1, 1, 2) - 1/500 x DATA(1, 0, 1) + 2000 2000 + + 13 37 + - 9/250 x DATA(2, -1, -1) + ---- x DATA(2, 0, -1) + ---- x DATA(2, 1, 1) + 1000 2000 + + 19 37 + - 9/500 x DATA(-1, 2, 1) + ---- x DATA(0, 2, 1) + ---- x DATA(1, 2, 1) + 1000 2000 + + 37 43 + - 9/500 x DATA(2, -1, 1) - ---- x DATA(1, -1, -1) + ---- x DATA(1, 2, 0) + 1000 2000 + + 21 31 + - ---- x DATA(2, 2, 0) - 3/1000 x DATA(0, 1, 0) + ---- x DATA(1, 1, 0) + 2000 2000 + + 21 29 + - ---- x DATA(0, 0, 1) - 1/500 x DATA(0, 1, 1) + ---- x DATA(1, 1, 1) + 2000 2000 + + 147 + + ---- x DATA(-1, -1, -1) - 1/2000 x DATA(0, -1, -1) + 2000 + + 49 49 + + ---- x DATA(1, 2, -1) + ---- x DATA(2, 1, -1) - 9/250 x DATA(-1, 2, -1) + 2000 2000 + + 13 31 + + ---- x DATA(0, 2, -1) + ---- x DATA(2, 1, 2) - 9/1000 x DATA(-1, 2, 2) + 1000 2000 + + 11 11 + + --- x DATA(0, 2, 2) - 1/1000 x DATA(1, 0, 2) + --- x DATA(2, 0, 2) + 500 500 + + - 7/250 x DATA(-1, 1, 2) - 1/1000 x DATA(0, 1, 2) - 7/250 x DATA(1, -1, 2) + + 19 23 93 + - ---- x DATA(-1, 0, 2) - ---- x DATA(0, 0, 2) + ---- x DATA(-1, -1, 2) + 2000 2000 2000 + + 19 2 + - ---- x DATA(0, -1, 2) + 1/160 z DATA(-1, 1, -1) + 2000 + + 2 2 + + 1/160 z DATA(0, 1, -1) + 1/80 y DATA(-1, 2, 1) - 1/160 x DATA(0, 1, 1) + + 2 2 + - 1/160 x DATA(1, 1, 1) - 3/160 x DATA(-1, -1, -1) + + 2 2 + + 3/160 x DATA(0, -1, -1) - 3/160 x DATA(1, 2, -1) + + 2 2 + + 1/160 x DATA(2, 1, -1) + 3/160 x DATA(-1, 2, -1) + + 2 2 + - 3/160 x DATA(0, 2, -1) + 1/160 x DATA(2, 1, 2) + + 2 2 + + 3/160 x DATA(-1, 2, 2) - 3/160 x DATA(0, 2, 2) + + 2 2 + + 1/160 x DATA(1, 0, 2) - 1/160 x DATA(2, 0, 2) + + 2 2 + + 1/160 x DATA(-1, 1, 2) - 1/160 x DATA(0, 1, 2) + + 2 2 + + 3/160 x DATA(1, -1, 2) - 1/160 x DATA(-1, 0, 2) + + 2 2 + + 1/160 x DATA(0, 0, 2) - 3/160 x DATA(-1, -1, 2) + + 2 2 37 + + 3/160 x DATA(0, -1, 2) - 3/32 y DATA(-1, 1, 2) + ---- z DATA(1, 2, 1) + 2000 + + 111 19 + - 7/250 z DATA(2, -1, 1) + ---- z DATA(1, -1, -1) + ---- z DATA(1, 2, 0) + 2000 1000 + + 11 + + --- z DATA(2, 2, 0) - 3/1000 z DATA(0, 1, 0) - 1/500 z DATA(1, 1, 0) + 500 + + 31 29 + - 3/1000 z DATA(0, 0, 1) + ---- z DATA(0, 1, 1) + ---- z DATA(1, 1, 1) + 2000 2000 + + 147 129 + + ---- z DATA(-1, -1, -1) + ---- z DATA(0, -1, -1) + 2000 2000 + + - 9/500 z DATA(1, 2, -1) - 7/250 z DATA(2, 1, -1) + + 27 31 + - 9/250 z DATA(-1, 2, -1) - ---- z DATA(0, 2, -1) + ---- z DATA(2, 1, 2) + 1000 2000 + + 21 19 + - 3/2000 z DATA(-1, 2, 2) - ---- z DATA(0, 2, 2) + ---- z DATA(1, 0, 2) + 2000 1000 + + 11 49 43 + + --- z DATA(2, 0, 2) + ---- z DATA(-1, 1, 2) + ---- z DATA(0, 1, 2) + 500 2000 2000 + + 13 + - 9/500 z DATA(1, -1, 2) + ---- z DATA(-1, 0, 2) + 2/125 z DATA(0, 0, 2) + 1000 + + 27 + - 9/250 z DATA(-1, -1, 2) - ---- z DATA(0, -1, 2) + 1000 + + 2 2 + - 3/32 y DATA(-1, 1, -1) - 3/32 y DATA(0, 1, -1) + + 2 2 + - 3/32 y DATA(1, 1, -1) - 1/32 y DATA(-1, -1, 0) + + 2 2 2 + - 1/32 y DATA(0, -1, 0) - 1/32 y DATA(1, -1, 0) + 3/32 y DATA(-1, 0, 0) + + 2 2 + - 3/32 y DATA(-1, 1, 0) - 3/32 y DATA(-1, 1, 1) + 1/20 y DATA(2, -1, 0) + + - 9/80 y DATA(2, 0, 0) - 1/40 y DATA(1, 2, 2) - 3/80 y DATA(2, 2, 2) + + + 7/80 y DATA(1, 1, 2) - 9/80 y DATA(1, 0, 1) + 1/16 y DATA(2, -1, -1) + + 2 2 + - 1/8 y DATA(2, 0, -1) - 3/32 y DATA(2, 1, 0) + 1/32 y DATA(2, 2, 1) + + 2 2 2 + + 1/32 y DATA(2, 2, -1) - 1/32 y DATA(2, -1, 2) + 1/32 y DATA(-1, 2, 0) + + 2 2 2 + + 1/32 y DATA(0, 2, 0) - 1/32 y DATA(2, -1, 0) + 3/32 y DATA(2, 0, 0) + + 2 2 2 + + 1/32 y DATA(1, 2, 2) + 1/32 y DATA(2, 2, 2) - 3/32 y DATA(1, 1, 2) + + 2 2 2 + + 3/32 y DATA(1, 0, 1) - 1/32 y DATA(2, -1, -1) + 3/32 y DATA(2, 0, -1) + + 2 2 2 + - 3/32 y DATA(2, 1, 1) + 1/32 y DATA(-1, 2, 1) + 1/32 y DATA(0, 2, 1) + + 2 2 2 + + 1/32 y DATA(1, 2, 1) - 1/32 y DATA(2, -1, 1) - 1/32 y DATA(1, -1, -1) + + 2 2 2 + + 1/32 y DATA(1, 2, 0) + 1/32 y DATA(2, 2, 0) - 3/32 y DATA(0, 1, 0) + + 2 2 2 + - 3/32 y DATA(1, 1, 0) + 3/32 y DATA(0, 0, 1) - 3/32 y DATA(0, 1, 1) + + 2 2 + - 3/32 y DATA(1, 1, 1) - 1/32 y DATA(-1, -1, -1) + + 2 2 + - 1/32 y DATA(0, -1, -1) + 1/32 y DATA(1, 2, -1) + + 2 2 + - 3/32 y DATA(2, 1, -1) + 1/32 y DATA(-1, 2, -1) + + 2 2 2 + + 1/32 y DATA(0, 2, -1) - 3/32 y DATA(2, 1, 2) + 1/32 y DATA(-1, 2, 2) + + 2 2 2 + + 1/32 y DATA(0, 2, 2) + 3/32 y DATA(1, 0, 2) + 3/32 y DATA(2, 0, 2) + + 2 2 2 + - 3/32 y DATA(0, 1, 2) - 1/32 y DATA(1, -1, 2) + 3/32 y DATA(-1, 0, 2) + + 2 2 2 + + 3/32 y DATA(0, 0, 2) - 1/32 y DATA(-1, -1, 2) - 1/32 y DATA(0, -1, 2) + + 2 2 + + 1/160 x DATA(-1, 1, -1) - 1/160 x DATA(0, 1, -1) + + 2 2 + - 1/160 x DATA(1, 1, -1) - 3/160 x DATA(-1, -1, 0) + + 2 2 + + 3/160 x DATA(0, -1, 0) + 3/160 x DATA(1, -1, 0) + + 2 2 + - 1/160 x DATA(-1, 0, 0) + 1/160 x DATA(-1, 1, 0) + + 2 2 + + 1/160 x DATA(-1, 1, 1) - 1/160 x DATA(-1, 0, 1) + + 2 2 + + 3/160 x DATA(1, -1, 1) - 3/160 x DATA(-1, -1, 1) + + 2 2 + + 3/160 x DATA(0, -1, 1) - 1/160 x DATA(-1, 0, -1) + + 2 2 + + 1/160 x DATA(0, 0, -1) + 1/160 x DATA(1, 0, -1) + + 2 2 2 + + 1/160 x DATA(0, 0, 0) + 1/160 x DATA(1, 0, 0) - 1/160 x DATA(2, 0, 1) + + 2 2 + + 1/160 x DATA(2, 1, 0) + 3/160 x DATA(2, 2, 1) + + 2 2 + + 3/160 x DATA(2, 2, -1) - 3/160 x DATA(2, -1, 2) + + 2 2 + + 3/160 x DATA(-1, 2, 0) - 3/160 x DATA(0, 2, 0) + + 2 2 + - 3/160 x DATA(2, -1, 0) - 1/160 x DATA(2, 0, 0) + + 2 2 2 + - 3/160 x DATA(1, 2, 2) + 3/160 x DATA(2, 2, 2) - 1/160 x DATA(1, 1, 2) + + 2 2 + + 1/160 x DATA(1, 0, 1) - 3/160 x DATA(2, -1, -1) + + 2 2 + - 1/160 x DATA(2, 0, -1) + 1/160 x DATA(2, 1, 1) + + 2 2 + + 3/160 x DATA(-1, 2, 1) - 3/160 x DATA(0, 2, 1) + + 2 2 + - 3/160 x DATA(1, 2, 1) - 3/160 x DATA(2, -1, 1) + + 2 2 + + 3/160 x DATA(1, -1, -1) - 3/160 x DATA(1, 2, 0) + + 2 2 2 + + 3/160 x DATA(2, 2, 0) - 1/160 x DATA(0, 1, 0) - 1/160 x DATA(1, 1, 0) + + 2 + + 1/160 x DATA(0, 0, 1) - 3/80 y z DATA(0, -1, -1) + + - 3/80 y z DATA(1, 2, -1) + 3/80 y z DATA(2, 1, -1) + + - 3/80 y z DATA(-1, 2, -1) - 3/80 y z DATA(0, 2, -1) + + - 3/80 y z DATA(2, 1, 2) + 3/80 y z DATA(-1, 2, 2) + + + 3/80 y z DATA(0, 2, 2) - 3/80 y z DATA(1, 0, 2) - 3/80 y z DATA(2, 0, 2) + + - 3/80 y z DATA(-1, 1, 2) - 3/80 y z DATA(0, 1, 2) + + + 3/80 y z DATA(1, -1, 2) - 3/80 y z DATA(-1, 0, 2) + + - 3/80 y z DATA(0, 0, 2) + 3/80 y z DATA(-1, -1, 2) + + + 3/80 y z DATA(0, -1, 2) - 1/80 x y DATA(0, -1, 2) + + + 3/80 y z DATA(-1, 1, -1) + 3/80 y z DATA(0, 1, -1) + + + 3/80 y z DATA(1, 1, -1) - 1/80 y z DATA(-1, -1, 0) + + - 1/80 y z DATA(0, -1, 0) - 1/80 y z DATA(1, -1, 0) + + + 1/80 y z DATA(-1, 0, 0) + 1/80 y z DATA(-1, 1, 0) + + - 1/80 y z DATA(-1, 1, 1) - 1/80 y z DATA(-1, 0, 1) + + + 1/80 y z DATA(1, -1, 1) + 1/80 y z DATA(-1, -1, 1) + + + 1/80 y z DATA(0, -1, 1) + 3/80 y z DATA(-1, 0, -1) + + + 3/80 y z DATA(0, 0, -1) + 3/80 y z DATA(1, 0, -1) + + + 1/80 y z DATA(0, 0, 0) + 1/80 y z DATA(1, 0, 0) - 1/80 y z DATA(2, 0, 1) + + + 1/80 y z DATA(2, 1, 0) + 1/80 y z DATA(2, 2, 1) + + - 3/80 y z DATA(2, 2, -1) + 3/80 y z DATA(2, -1, 2) + + - 1/80 y z DATA(-1, 2, 0) - 1/80 y z DATA(0, 2, 0) + + - 1/80 y z DATA(2, -1, 0) + 1/80 y z DATA(2, 0, 0) + + + 3/80 y z DATA(1, 2, 2) + 3/80 y z DATA(2, 2, 2) - 3/80 y z DATA(1, 1, 2) + + - 1/80 y z DATA(1, 0, 1) - 3/80 y z DATA(2, -1, -1) + + + 3/80 y z DATA(2, 0, -1) - 1/80 y z DATA(2, 1, 1) + + + 1/80 y z DATA(-1, 2, 1) + 1/80 y z DATA(0, 2, 1) + + + 1/80 y z DATA(1, 2, 1) + 1/80 y z DATA(2, -1, 1) + + - 3/80 y z DATA(1, -1, -1) - 1/80 y z DATA(1, 2, 0) + + - 1/80 y z DATA(2, 2, 0) + 1/80 y z DATA(0, 1, 0) + 1/80 y z DATA(1, 1, 0) + + - 1/80 y z DATA(0, 0, 1) - 1/80 x y DATA(1, 0, -1) + + + 1/80 x y DATA(0, 0, 0) - 1/80 x y DATA(1, 0, 0) - 3/80 x y DATA(2, 0, 1) + + - 3/80 x y DATA(2, 1, 0) + 3/80 x y DATA(2, 2, 1) + + + 3/80 x y DATA(2, 2, -1) + 3/80 x y DATA(2, -1, 2) + + - 3/80 x y DATA(-1, 2, 0) - 1/80 x y DATA(0, 2, 0) + + + 3/80 x y DATA(2, -1, 0) - 3/80 x y DATA(2, 0, 0) + + + 1/80 x y DATA(1, 2, 2) + 3/80 x y DATA(2, 2, 2) - 1/80 x y DATA(1, 1, 2) + + - 1/80 x y DATA(1, 0, 1) + 3/80 x y DATA(2, -1, -1) + + - 3/80 x y DATA(2, 0, -1) - 3/80 x y DATA(2, 1, 1) + + - 3/80 x y DATA(-1, 2, 1) - 1/80 x y DATA(0, 2, 1) + + + 1/80 x y DATA(1, 2, 1) + 3/80 x y DATA(2, -1, 1) + + + 1/80 x y DATA(1, -1, -1) + 1/80 x y DATA(1, 2, 0) + + + 3/80 x y DATA(2, 2, 0) + 1/80 x y DATA(0, 1, 0) - 1/80 x y DATA(1, 1, 0) + + + 1/80 x y DATA(0, 0, 1) + 1/80 x y DATA(0, 1, 1) - 1/80 x y DATA(1, 1, 1) + + - 3/80 x y DATA(-1, -1, -1) - 1/80 x y DATA(0, -1, -1) + + + 1/80 x y DATA(1, 2, -1) - 3/80 x y DATA(2, 1, -1) + + - 3/80 x y DATA(-1, 2, -1) - 1/80 x y DATA(0, 2, -1) + + - 3/80 x y DATA(2, 1, 2) - 3/80 x y DATA(-1, 2, 2) + + - 1/80 x y DATA(0, 2, 2) - 1/80 x y DATA(1, 0, 2) - 3/80 x y DATA(2, 0, 2) + + + 3/80 x y DATA(-1, 1, 2) + 1/80 x y DATA(0, 1, 2) + + + 1/80 x y DATA(1, -1, 2) + 3/80 x y DATA(-1, 0, 2) + + + 1/80 x y DATA(0, 0, 2) - 3/80 x y DATA(-1, -1, 2) + + + 9/1000 x z DATA(-1, 1, -1) + 3/1000 x z DATA(1, 1, 2) + + 2 + + 3/1000 x z DATA(2, 1, 1) + 3/32 y DATA(-1, 0, 1) + + - 1/80 y z DATA(1, 1, 1) - 3/80 y z DATA(-1, -1, -1) + +> coeff_as_lc_of_data(%, posn_list_3d_size4); +bytes used=356706516, alloc=4717728, time=33.92 +bytes used=357731512, alloc=4717728, time=33.99 +bytes used=358764208, alloc=4717728, time=34.06 +bytes used=359791044, alloc=4717728, time=34.13 +bytes used=360791404, alloc=4717728, time=34.21 +bytes used=361799184, alloc=4717728, time=34.28 +bytes used=362799356, alloc=4717728, time=34.36 +bytes used=363809692, alloc=4717728, time=34.43 + 47 2 2 27 +[COEFF(-1, -1, -1) = - ---- - 3/80 y z - 1/32 y - 3/160 z - ---- x z + 1500 1000 + + 147 147 2 + - 3/80 x y + 1/10 y + ---- z + ---- x - 3/160 x , COEFF(0, -1, -1) = + 2000 2000 + + 129 2 + - 3/80 y z - 1/80 x y - 1/2000 x + ---- z - 9/1000 x z + 7/80 y - 3/160 z + 2000 + + 2 607 2 + - 1/32 y - ----- + 3/160 x , COEFF(1, -1, -1) = - 3/80 y z + 9/1000 x z + 12000 + + 37 2 2 111 97 + - ---- x + 3/160 x + 3/40 y - 3/160 z + ---- z + 1/80 x y - ---- + 1000 2000 3000 + + 2 27 2 2 + - 1/32 y , COEFF(2, -1, -1) = ---- x z - 3/80 y z - 1/32 y - 3/160 z + 1000 + + 93 281 2 + - 9/250 x + ---- z + 1/16 y + ----- + 3/80 x y - 3/160 x , + 2000 12000 + + 13 2 39 + COEFF(-1, 0, -1) = - -- y - 1/160 x - 1/2000 z - 9/1000 x z - ---- + 80 4000 + + 2 2 + + 3/80 y z - 1/2000 x - 1/160 z + 3/80 x y + 3/32 y , COEFF(0, 0, -1) = + + 2 17 49 2 2 + - 1/160 z - ---- x - 7/2000 z - 3/20 y - ---- + 3/32 y + 1/160 x + 2000 2000 + + 2 + - 3/1000 x z + 3/80 y z + 1/80 x y, COEFF(1, 0, -1) = - 1/80 x y + 3/32 y + + 11 2 13 107 + - 1/250 x + 3/80 y z - -- y + 3/1000 x z + 1/160 x - ---- z - ---- + 80 2000 4000 + + 2 2 33 19 2 + - 1/160 z , COEFF(2, 0, -1) = - 1/8 y - 1/160 x - ---- - ---- z + 3/32 y + 2000 2000 + + 13 2 + + ---- x - 1/160 z - 3/80 x y + 9/1000 x z + 3/80 y z, COEFF(-1, 1, -1) + 1000 + + 2 2 + = 3/80 y z + 1/160 z + 3/80 x y + 1/160 x + 9/1000 x z + 1/40 y + + 2 37 157 37 17 323 + - 3/32 y - ---- z + ---- - ---- x, COEFF(0, 1, -1) = - --- z + ---- + 1000 2000 1000 500 4000 + + 2 2 + + 1/80 x y + 3/80 y z + 3/80 y - 1/160 x - 1/250 x + 1/160 z + + 2 2 33 + + 3/1000 x z - 3/32 y , COEFF(1, 1, -1) = - 3/32 y + ---- x - 3/1000 x z + 2000 + + 2 141 31 2 + + 1/160 z + ---- + 3/80 y z - ---- z - 1/80 x y + 1/20 y - 1/160 x , + 2000 1000 + + 2 2 191 2 + COEFF(2, 1, -1) = 1/160 z + 1/160 x + ---- - 3/80 x y - 3/32 y + 4000 + + 49 + - 9/1000 x z + ---- x - 7/250 z + 3/80 y z + 1/16 y, COEFF(-1, 2, -1) = + 2000 + + 27 2 2 + 3/80 y + ---- x z + 3/160 z - 9/250 z + 3/160 x - 3/80 y z - 3/80 x y + 1000 + + 2 449 + + 1/32 y - ----- - 9/250 x, COEFF(0, 2, -1) = 1/40 y - 1/80 x y + 12000 + + 17 27 13 2 2 + + 9/1000 x z - ---- - ---- z + ---- x + 1/32 y - 3/80 y z - 3/160 x + 3000 1000 1000 + + 2 49 2 + + 3/160 z , COEFF(1, 2, -1) = ---- x + 1/80 y - 9/1000 x z + 1/32 y + 2000 + + 2 137 2 + - 3/160 x - 3/80 y z - 9/500 z + 1/80 x y - ----- + 3/160 z , + 12000 + + 2 2 41 + COEFF(2, 2, -1) = 1/32 y - 3/2000 x - 9/1000 z + 3/160 z - --- - 3/80 y z + 750 + + 2 27 + + 3/160 x - ---- x z + 3/80 x y, COEFF(-1, -1, 0) = - 9/1000 x z + 1000 + + 2 2 129 607 + + 3/160 z + 7/80 y - 1/2000 z - 1/32 y + ---- x - ----- - 1/80 y z + 2000 12000 + + 2 2 + - 3/80 x y - 3/160 x , COEFF(0, -1, 0) = - 7/2000 x - 1/80 y z - 1/32 y + + 2 437 2 + - 1/80 x y - 3/1000 x z + 3/160 x - ---- - 7/2000 z + 3/40 y + 3/160 z , + 6000 + + 13 2 17 2 + COEFF(1, -1, 0) = 1/80 x y - ---- z + 1/16 y - 1/32 y - --- x + 3/160 z + 2000 500 + + 2 691 + + 3/160 x - 1/80 y z - ----- + 3/1000 x z, COEFF(2, -1, 0) = 1/20 y + 12000 + + 2 27 2 29 19 + + 3/80 x y - 3/160 x - ---- x + 3/160 z - ---- - 1/80 y z - ---- z + 1000 6000 2000 + + 2 49 + + 9/1000 x z - 1/32 y , COEFF(-1, 0, 0) = - 3/20 y - 3/1000 x z - ---- + 2000 + + 2 2 2 17 + + 3/32 y - 1/160 x - 7/2000 x + 3/80 x y + 1/160 z - ---- z + 1/80 y z, + 2000 + + 2 2 161 11 + COEFF(0, 0, 0) = 1/80 y z + 1/160 z + 1/160 x - ---- - 1/1000 x z - -- y + 4000 80 + + 19 2 19 + - ---- z + 1/80 x y + 3/32 y - ---- x, COEFF(1, 0, 0) = - 3/1000 x + 2000 2000 + + 2 87 2 + - 1/80 x y + 1/160 z - 1/8 y - ---- + 1/80 y z + 1/1000 x z + 1/160 x + 2000 + + 2 21 23 2 137 + + 3/32 y - ---- z, COEFF(2, 0, 0) = 3/1000 x z - ---- z + 3/32 y - ---- + 2000 2000 4000 + + 2 2 + + 1/160 z - 3/80 x y - 1/160 x + 2/125 x + 1/80 y z - 9/80 y, + + 323 2 17 + COEFF(-1, 1, 0) = ---- - 3/32 y + 3/80 y - 1/250 z - --- x + 1/80 y z + 4000 500 + + 2 2 2 + + 1/160 x - 1/160 z + 3/80 x y + 3/1000 x z, COEFF(0, 1, 0) = - 1/160 x + + 2 21 + + 1/80 x y + 1/1000 x z - 1/160 z + --- - 3/1000 x - 3/1000 z + 1/20 y + 250 + + 2 31 2 + - 3/32 y + 1/80 y z, COEFF(1, 1, 0) = ---- x - 1/80 x y - 3/32 y + 2000 + + 2 2 299 + - 1/1000 x z - 1/160 z + 1/16 y - 1/160 x - 1/500 z + ---- + 1/80 y z, + 4000 + + 2 43 + COEFF(2, 1, 0) = - 3/32 y + 1/80 y z - 1/1000 z - 3/80 x y + ---- x + 2000 + + 2 2 53 + + 1/160 x - 1/160 z + ---- + 3/40 y - 3/1000 x z, COEFF(-1, 2, 0) = + 1000 + + 2 17 2 13 + 3/160 x + 9/1000 x z - 3/80 x y - ---- + 1/40 y + 1/32 y + ---- z + 3000 1000 + + 27 2 2 349 + - 1/80 y z - ---- x - 3/160 z , COEFF(0, 2, 0) = - 3/160 z + ----- + 1000 12000 + + 2 2 + - 1/80 y z + 2/125 x - 3/160 x + 3/1000 x z + 1/32 y + 1/80 y - 1/80 x y + + 43 19 2 2 79 + + 2/125 z, COEFF(1, 2, 0) = ---- x + ---- z + 1/32 y - 3/160 x + ---- + 2000 1000 3000 + + 2 167 + - 1/80 y z + 1/80 x y - 3/1000 x z - 3/160 z , COEFF(2, 2, 0) = - ----- + 12000 + + 11 21 2 2 + + 3/80 x y + --- z - ---- x - 9/1000 x z - 3/160 z + 3/160 x - 1/80 y z + 500 2000 + + 2 37 111 + - 1/80 y + 1/32 y , COEFF(-1, -1, 1) = - ---- z + ---- x + 3/40 y + 1000 2000 + + 2 97 2 2 + + 3/160 z - ---- - 1/32 y - 3/80 x y + 1/80 y z + 9/1000 x z - 3/160 x , + 3000 + + 2 13 2 2 691 + COEFF(0, -1, 1) = 3/160 z - ---- x + 3/160 x - 1/32 y - 1/80 x y - ----- + 2000 12000 + + 17 + + 1/80 y z - --- z + 1/16 y + 3/1000 x z, COEFF(1, -1, 1) = 1/20 y + 500 + + 2 31 2 31 17 2 + + 3/160 z - ---- x + 3/160 x - ---- z - --- - 1/32 y + 1/80 x y + 1000 1000 375 + + 53 + - 3/1000 x z + 1/80 y z, COEFF(2, -1, 1) = - 9/500 x + ----- + 1/80 y z + 12000 + + 2 2 2 + + 3/80 y - 9/1000 x z + 3/80 x y - 3/160 x - 7/250 z + 3/160 z - 1/32 y + + 2 2 11 + , COEFF(-1, 0, 1) = 3/32 y + 1/160 z - 1/250 z + 3/1000 x z - -- y + 80 + + 2 13 107 + - 1/80 y z - 1/160 x + 3/80 x y - ---- x - ----, COEFF(0, 0, 1) = + 2000 4000 + + 87 21 2 2 2 + 1/80 x y - ---- - ---- x - 3/1000 z + 1/160 z + 1/160 x + 3/32 y + 2000 2000 + + 2 + - 1/80 y z - 1/8 y + 1/1000 x z, COEFF(1, 0, 1) = - 1/500 z + 1/160 x + + 191 2 + - ---- - 9/80 y - 1/500 x - 1/80 x y - 1/80 y z - 1/1000 x z + 3/32 y + 4000 + + 2 19 2 + + 1/160 z , COEFF(2, 0, 1) = - 3/80 x y + ---- x + 3/32 y - 1/10 y + 1000 + + 2 79 2 + - 1/160 x - ---- + 1/160 z - 3/1000 x z - 1/80 y z - 1/1000 z, + 2000 + + 31 33 + COEFF(-1, 1, 1) = - 3/1000 x z - ---- x - 1/80 y z + 3/80 x y + ---- z + 1000 2000 + + 2 2 141 2 299 + - 3/32 y + 1/20 y + 1/160 x + ---- - 1/160 z , COEFF(0, 1, 1) = ---- + 2000 4000 + + 2 2 2 + - 1/160 z + 1/80 x y - 3/32 y - 1/160 x - 1/1000 x z - 1/500 x + + 31 2 + - 1/80 y z + 1/16 y + ---- z, COEFF(1, 1, 1) = - 1/80 y z - 1/160 z + 2000 + + 2 133 29 29 2 + - 1/160 x + ---- + ---- x + ---- z - 3/32 y + 3/40 y + 1/1000 x z + 2000 2000 2000 + + 183 2 27 + - 1/80 x y, COEFF(2, 1, 1) = - 3/80 x y + ---- - 3/32 y + ---- z + 4000 2000 + + 2 2 37 + - 1/160 z + 3/1000 x z + 1/160 x - 1/80 y z + ---- x + 7/80 y, + 2000 + + 137 2 + COEFF(-1, 2, 1) = - ----- - 3/160 z + 1/80 y z - 9/500 x - 9/1000 x z + 12000 + + 2 49 2 + - 3/80 x y + 1/80 y + 1/32 y + ---- z + 3/160 x , COEFF(0, 2, 1) = + 2000 + + 2 2 2 43 79 + 1/32 y - 3/160 z - 3/160 x - 3/1000 x z + 1/80 y z + ---- z + ---- + 2000 3000 + + 19 2 37 319 + - 1/80 x y + ---- x, COEFF(1, 2, 1) = - 3/160 z + ---- x + ----- + 1000 2000 12000 + + 37 2 2 + + 3/1000 x z + 1/80 y z + ---- z - 3/160 x + 1/32 y - 1/80 y + 1/80 x y, + 2000 + + 2 2 39 2 + COEFF(2, 2, 1) = 1/32 y - 4/375 - 3/160 z - ---- x + 3/160 x + 3/80 x y + 2000 + + 31 + + ---- z + 1/80 y z + 9/1000 x z - 1/40 y, COEFF(-1, -1, 2) = - 3/80 x y + 2000 + + 27 2 2 281 93 + + ---- x z + 1/16 y - 1/32 y - 3/160 x + 3/80 y z + ----- + ---- x + 1000 12000 2000 + + 2 19 2 + - 3/160 z - 9/250 z, COEFF(0, -1, 2) = - ---- x + 3/160 x + 9/1000 x z + 2000 + + 27 29 2 2 + - 1/80 x y - ---- z - ---- - 1/32 y - 3/160 z + 1/20 y + 3/80 y z, + 1000 6000 + + 2 2 + COEFF(1, -1, 2) = 1/80 x y - 7/250 x + 3/160 x + 3/80 y z - 3/160 z + + 2 53 + - 1/32 y - 9/1000 x z + 3/80 y + ----- - 9/500 z, COEFF(2, -1, 2) = + 12000 + + 2 2 307 2 + 3/80 y z - 3/160 z - 3/160 x + 3/80 x y + ---- - 9/1000 z - 1/32 y + 6000 + + 27 19 2 + - ---- x z - 9/1000 x + 1/40 y, COEFF(-1, 0, 2) = - ---- x - 1/160 z + 1000 2000 + + 13 2 2 + - 1/8 y - 3/80 y z + 3/80 x y + ---- z + 3/32 y + 9/1000 x z - 1/160 x + 1000 + + 33 2 + - ----, COEFF(0, 0, 2) = 1/80 x y - 3/80 y z + 3/1000 x z + 3/32 y + 2000 + + 23 137 2 2 + - 9/80 y - ---- x - ---- - 1/160 z + 1/160 x + 2/125 z, COEFF(1, 0, 2) + 2000 4000 + + 2 79 2 2 + = - 1/160 z - ---- - 1/10 y - 1/1000 x - 1/80 x y + 1/160 x + 3/32 y + 2000 + + 19 2 + - 3/1000 x z - 3/80 y z + ---- z, COEFF(2, 0, 2) = - 3/80 y z - 1/160 z + 1000 + + 2 11 2 11 + - 1/160 x - 3/80 x y - 7/80 y + --- x + 3/32 y - 9/1000 x z + --- z + 500 500 + + 129 191 2 2 + - ----, COEFF(-1, 1, 2) = ---- - 3/32 y + 1/160 z - 3/80 y z + 4000 4000 + + 2 49 + - 9/1000 x z + 1/16 y + 3/80 x y + 1/160 x - 7/250 x + ---- z, + 2000 + + 2 2 + COEFF(0, 1, 2) = - 3/32 y - 1/1000 x + 1/80 x y + 3/40 y + 1/160 z + + 2 53 43 + - 1/160 x + ---- - 3/1000 x z - 3/80 y z + ---- z, COEFF(1, 1, 2) = + 1000 2000 + + 37 2 27 2 183 + ---- z - 3/32 y + 7/80 y + ---- x - 1/80 x y - 3/80 y z + 1/160 z + ---- + 2000 2000 4000 + + 2 2 31 + + 3/1000 x z - 1/160 x , COEFF(2, 1, 2) = 1/160 z + ---- z - 3/80 x y + 2000 + + 2 13 2 31 + - 3/32 y + --- + 1/160 x + 1/10 y + ---- x - 3/80 y z + 9/1000 x z, + 500 2000 + + 41 2 2 + COEFF(-1, 2, 2) = - --- - 9/1000 x + 3/160 z + 3/160 x - 3/2000 z + 750 + + 2 27 21 + - 3/80 x y + 1/32 y - ---- x z + 3/80 y z, COEFF(0, 2, 2) = - ---- z + 1000 2000 + + 2 167 2 + - 1/80 x y + 1/32 y - ----- + 3/80 y z + 3/160 z - 1/80 y - 9/1000 x z + 12000 + + 11 2 2 31 + + --- x - 3/160 x , COEFF(1, 2, 2) = - 1/40 y + 1/32 y - 4/375 + ---- x + 500 2000 + + 2 39 2 + + 9/1000 x z - 3/160 x - ---- z + 3/80 y z + 3/160 z + 1/80 x y, + 2000 + + 57 539 2 27 2 + COEFF(2, 2, 2) = - ---- z - ----- + 3/160 z + ---- x z + 1/32 y + 2000 12000 1000 + + 2 57 + + 3/80 y z - 3/80 y + 3/80 x y + 3/160 x - ---- x] + 2000 + +> print_coeff__lc_of_data(%, "coeff_dy_", "fp", +> "3d.coeffs/3d.cube.order3.smooth0/coeff-dy.compute.c"); +bytes used=364810272, alloc=4717728, time=34.51 +bytes used=365810424, alloc=4717728, time=34.59 +bytes used=366810580, alloc=4717728, time=34.65 +bytes used=367811016, alloc=4717728, time=34.79 +bytes used=368811188, alloc=4717728, time=34.88 +bytes used=369811440, alloc=4717728, time=34.96 +bytes used=370813480, alloc=4717728, time=35.03 +bytes used=371817488, alloc=4717728, time=35.12 +bytes used=372826340, alloc=4717728, time=35.21 +bytes used=373838552, alloc=4717728, time=35.30 +bytes used=374838740, alloc=4717728, time=35.39 +bytes used=375838936, alloc=4717728, time=35.82 +bytes used=376839612, alloc=4717728, time=35.90 +bytes used=377839848, alloc=4717728, time=35.96 +bytes used=378840024, alloc=4717728, time=36.03 +bytes used=379840216, alloc=4717728, time=36.09 +bytes used=380842516, alloc=4717728, time=36.17 +bytes used=381843240, alloc=4717728, time=36.29 +bytes used=382843432, alloc=4717728, time=36.41 +bytes used=383843632, alloc=4717728, time=36.55 +bytes used=384843832, alloc=4717728, time=36.70 +bytes used=385844040, alloc=4717728, time=36.82 +bytes used=386844212, alloc=4717728, time=36.91 +bytes used=387844404, alloc=4717728, time=36.99 +bytes used=388844556, alloc=4717728, time=37.54 +bytes used=389844732, alloc=4717728, time=37.62 +bytes used=390844984, alloc=4717728, time=37.69 +bytes used=391845216, alloc=4717728, time=37.76 +bytes used=392845436, alloc=4717728, time=37.83 +bytes used=393848320, alloc=4717728, time=37.96 +bytes used=394853020, alloc=4717728, time=38.12 +bytes used=395853204, alloc=4717728, time=38.22 +bytes used=396865572, alloc=4717728, time=38.66 +bytes used=397865736, alloc=4717728, time=38.90 +bytes used=398866088, alloc=4717728, time=38.98 +bytes used=399866508, alloc=4717728, time=39.05 +bytes used=400866884, alloc=4717728, time=39.12 +bytes used=401867112, alloc=4717728, time=39.19 +bytes used=402867264, alloc=4717728, time=39.37 +bytes used=403868072, alloc=4717728, time=39.47 +bytes used=404868264, alloc=4717728, time=40.02 +bytes used=405868812, alloc=4717728, time=40.09 +bytes used=406869312, alloc=4717728, time=40.16 +bytes used=407869464, alloc=4717728, time=40.23 +bytes used=408869632, alloc=4717728, time=40.40 +bytes used=409869812, alloc=4717728, time=40.57 +bytes used=410870536, alloc=4717728, time=41.11 +bytes used=411870700, alloc=4717728, time=41.17 +bytes used=412870896, alloc=4717728, time=41.32 +> +# d/dz +> simplify( diff(interp_3d_cube_order3_smooth0,z) ); +bytes used=413871060, alloc=4717728, time=41.44 +bytes used=414871212, alloc=4717728, time=41.51 +bytes used=415871428, alloc=4717728, time=41.58 +bytes used=416872572, alloc=4717728, time=41.65 +bytes used=417873696, alloc=4717728, time=41.72 +bytes used=418874172, alloc=4717728, time=41.79 +bytes used=419874396, alloc=4717728, time=41.85 + 97 691 17 +- ---- DATA(-1, 1, -1) - ----- DATA(0, 1, -1) - --- DATA(1, 1, -1) + 3000 12000 375 + + 39 49 107 + - ---- DATA(-1, -1, 0) - ---- DATA(0, -1, 0) - ---- DATA(1, -1, 0) + 4000 2000 4000 + + 49 107 141 + - ---- DATA(-1, 0, 0) - ---- DATA(-1, 1, 0) + ---- DATA(-1, 1, 1) + 2000 4000 2000 + + 323 141 157 + + ---- DATA(-1, 0, 1) + ---- DATA(1, -1, 1) + ---- DATA(-1, -1, 1) + 4000 2000 2000 + + 323 607 437 + + ---- DATA(0, -1, 1) - ----- DATA(-1, 0, -1) - ---- DATA(0, 0, -1) + 4000 12000 6000 + + 691 161 87 + - ----- DATA(1, 0, -1) - ---- DATA(0, 0, 0) - ---- DATA(1, 0, 0) + 12000 4000 2000 + + 87 191 21 + - ---- DATA(0, 1, 0) - ---- DATA(1, 1, 0) + --- DATA(0, 0, 1) + 2000 4000 250 + + 299 299 133 + + ---- DATA(1, 0, 1) + ---- DATA(0, 1, 1) + ---- DATA(1, 1, 1) + 4000 4000 2000 + + 43 + + ---- y DATA(0, 2, 1) - 3/2000 y DATA(-1, 2, 2) - 9/1000 y DATA(2, 2, -1) + 2000 + + 19 47 607 + + ---- y DATA(1, 2, 0) - ---- DATA(-1, -1, -1) - ----- DATA(0, -1, -1) + 1000 1500 12000 + + 53 53 281 + + ----- DATA(1, 2, -1) + ----- DATA(2, 1, -1) + ----- DATA(-1, 2, -1) + 12000 12000 12000 + + 29 281 29 + - ---- DATA(0, 2, -1) + ----- DATA(2, -1, -1) - ---- DATA(2, 0, -1) + 6000 12000 6000 + + 183 191 53 + + ---- DATA(2, 1, 1) + ---- DATA(-1, 2, 1) + ---- DATA(0, 2, 1) + 4000 4000 1000 + + 183 191 53 + + ---- DATA(1, 2, 1) + ---- DATA(2, -1, 1) + ---- DATA(2, 0, 1) + 4000 4000 1000 + + 97 79 129 + - ---- DATA(1, -1, -1) - ---- DATA(1, 2, 0) - ---- DATA(2, 2, 0) + 3000 2000 4000 + + 79 33 137 + - ---- DATA(2, 1, 0) - ---- DATA(-1, 2, 0) - ---- DATA(0, 2, 0) + 2000 2000 4000 + + 33 137 307 + - ---- DATA(2, -1, 0) - ---- DATA(2, 0, 0) + ---- DATA(2, 2, -1) + 2000 4000 6000 + + 539 319 + - 4/375 DATA(1, 2, 2) - ----- DATA(2, 2, 2) + ----- DATA(1, 1, 2) + 12000 12000 + + 41 167 + - 4/375 DATA(2, 1, 2) - --- DATA(-1, 2, 2) - ----- DATA(0, 2, 2) + 750 12000 + + 79 167 137 + + ---- DATA(1, 0, 2) - ----- DATA(2, 0, 2) - ----- DATA(-1, 1, 2) + 3000 12000 12000 + + 79 137 41 + + ---- DATA(0, 1, 2) - ----- DATA(1, -1, 2) - --- DATA(2, -1, 2) + 3000 12000 750 + + 17 349 + - ---- DATA(-1, 0, 2) + ----- DATA(0, 0, 2) - 3/2000 x DATA(2, -1, 2) + 3000 12000 + + 43 19 + + ---- x DATA(2, 0, 1) + ---- x DATA(2, 1, 0) - 9/1000 x DATA(2, 2, -1) + 2000 1000 + + 449 17 13 + - ----- DATA(-1, -1, 2) - ---- DATA(0, -1, 2) + --- DATA(2, 2, 1) + 12000 3000 500 + + 111 + + ---- x DATA(-1, 1, -1) - 3/1000 x y DATA(-1, 1, 1) + 2000 + + - 3/1000 x y DATA(0, 0, -1) + 3/80 x z DATA(-1, -1, 0) + + - 3/80 x z DATA(2, 1, 0) + 3/80 x z DATA(-1, 2, 1) + + + 1/80 x z DATA(0, 2, 1) - 1/80 x z DATA(0, 1, 2) + 3/80 x z DATA(2, 1, 2) + + + 3/80 x z DATA(-1, 1, 1) + 1/80 x z DATA(0, 2, 0) + + + 3/1000 x y DATA(-1, 0, 1) + 3/80 x z DATA(-1, 0, 1) + + + 3/80 x z DATA(-1, 1, 0) - 3/80 x z DATA(2, 2, 0) + + - 3/80 x z DATA(2, -1, 0) - 3/1000 x y DATA(1, 1, -1) + + - 1/80 x z DATA(0, 2, 2) - 3/80 x z DATA(2, 0, 0) - 3/80 x z DATA(2, 2, 1) + + - 1/80 x z DATA(0, 0, 2) + 3/80 x z DATA(2, 0, -1) + + + 3/80 x z DATA(2, 1, -1) + 3/1000 x y DATA(0, 1, -1) + + + 1/80 x z DATA(1, 0, -1) - 1/80 x z DATA(0, -1, -1) + + - 9/1000 x y DATA(-1, 0, -1) + 1/80 x z DATA(0, 1, 1) + + - 3/80 x z DATA(2, -1, 1) + 3/80 x z DATA(2, 2, -1) + + + 3/1000 x y DATA(0, -1, 1) + 3/1000 x y DATA(1, -1, 0) + + - 1/80 x z DATA(1, -1, 0) + 1/80 x z DATA(0, 0, 0) + + - 3/80 x z DATA(-1, -1, 2) - 1/80 x z DATA(0, -1, 2) + + - 3/80 x z DATA(-1, 2, -1) - 3/80 x z DATA(-1, 1, 2) + + - 3/80 x z DATA(-1, -1, -1) + 1/80 x z DATA(1, 2, -1) + + - 1/80 x z DATA(1, 2, 1) + 1/80 x z DATA(0, 1, 0) + + - 3/80 x z DATA(-1, 0, -1) + 1/80 x z DATA(1, 2, 2) + + + 3/80 x z DATA(2, 2, 2) - 3/80 x z DATA(2, 0, 1) + + + 3/80 x z DATA(2, -1, 2) - 3/80 x z DATA(-1, 2, 2) + + - 1/80 x z DATA(1, 2, 0) + 3/80 x z DATA(2, 0, 2) + + - 3/1000 x y DATA(0, -1, 0) + 3/80 x z DATA(-1, 2, 0) + + - 1/80 x z DATA(1, 1, 0) - 1/80 x z DATA(1, 0, 0) + 1/80 x z DATA(0, 0, 1) + + + 3/1000 x y DATA(-1, 1, 0) - 1/80 x z DATA(1, 1, 1) + + + 3/80 x z DATA(2, -1, -1) + 1/80 x z DATA(1, 0, 2) + + + 1/80 x z DATA(1, -1, 2) - 9/1000 x y DATA(-1, -1, 0) + + - 3/80 x z DATA(-1, 0, 2) + 1/80 x z DATA(1, -1, -1) + + - 1/80 x z DATA(0, 1, -1) - 1/80 x z DATA(0, 0, -1) + + + 3/80 x z DATA(-1, 0, 0) - 1/80 x z DATA(1, -1, 1) + + + 9/1000 x y DATA(-1, 1, -1) - 1/80 y z DATA(0, 1, 1) + + 13 + - 9/1000 y DATA(2, -1, 2) + 2/125 y DATA(0, 2, 0) + ---- y DATA(-1, 2, 0) + 1000 + + 2 2 + + 1/160 y DATA(1, -1, 1) + 1/160 y DATA(-1, -1, 1) + + 2 2 + + 1/160 y DATA(0, -1, 1) + 3/160 y DATA(-1, 0, -1) + + 2 2 + + 3/160 y DATA(0, 0, -1) + 3/160 y DATA(1, 0, -1) + + 2 2 2 + + 1/160 y DATA(0, 0, 0) + 1/160 y DATA(1, 0, 0) - 1/160 y DATA(2, 0, 1) + + + 1/80 x z DATA(0, -1, 0) - 1/80 x z DATA(0, 2, -1) + + + 1/80 x z DATA(0, -1, 1) + 3/80 x z DATA(-1, -1, 1) + + - 1/80 x z DATA(1, 0, 1) + 9/1000 x y DATA(-1, -1, 1) + + - 3/1000 x y DATA(1, -1, 1) + 1/80 x z DATA(1, 1, -1) + + - 3/1000 x y DATA(-1, 0, 0) - 1/2000 y DATA(-1, -1, 0) + + 13 17 + - ---- y DATA(1, -1, 0) - ---- y DATA(-1, 0, 0) - 1/250 y DATA(-1, 1, 0) + 2000 2000 + + 33 31 + + ---- y DATA(-1, 1, 1) - 1/250 y DATA(-1, 0, 1) - ---- y DATA(1, -1, 1) + 2000 1000 + + 37 17 + - ---- y DATA(-1, -1, 1) - --- y DATA(0, -1, 1) - 1/2000 y DATA(-1, 0, -1) + 1000 500 + + 13 19 + - 7/2000 y DATA(0, 0, -1) - ---- y DATA(1, 0, -1) - ---- y DATA(0, 0, 0) + 2000 2000 + + 21 + - ---- y DATA(1, 0, 0) - 1/1000 y DATA(2, 0, 1) - 1/1000 y DATA(2, 1, 0) + 2000 + + 31 111 11 + + ---- y DATA(2, 2, 1) + ---- y DATA(1, -1, -1) + --- y DATA(2, 2, 0) + 2000 2000 500 + + - 3/1000 y DATA(0, 1, 0) - 1/500 y DATA(1, 1, 0) - 3/1000 y DATA(0, 0, 1) + + 31 29 147 + + ---- y DATA(0, 1, 1) + ---- y DATA(1, 1, 1) + ---- y DATA(-1, -1, -1) + 2000 2000 2000 + + 129 + + ---- y DATA(0, -1, -1) - 9/500 y DATA(1, 2, -1) - 7/250 y DATA(2, 1, -1) + 2000 + + 27 31 + - 9/250 y DATA(-1, 2, -1) - ---- y DATA(0, 2, -1) + ---- y DATA(2, 1, 2) + 1000 2000 + + 21 19 11 + - ---- y DATA(0, 2, 2) + ---- y DATA(1, 0, 2) + --- y DATA(2, 0, 2) + 2000 1000 500 + + 49 43 + + ---- y DATA(-1, 1, 2) + ---- y DATA(0, 1, 2) - 9/500 y DATA(1, -1, 2) + 2000 2000 + + 13 + + ---- y DATA(-1, 0, 2) + 2/125 y DATA(0, 0, 2) - 9/250 y DATA(-1, -1, 2) + 1000 + + 27 + - ---- y DATA(0, -1, 2) + 3/40 z DATA(-1, 1, -1) + 1/16 z DATA(0, 1, -1) + 1000 + + 13 + + 1/20 z DATA(1, 1, -1) - -- z DATA(-1, -1, 0) - 3/20 z DATA(0, -1, 0) + 80 + + 11 11 + - -- z DATA(1, -1, 0) - 3/20 z DATA(-1, 0, 0) - -- z DATA(-1, 1, 0) + 80 80 + + + 1/20 z DATA(-1, 1, 1) + 3/80 z DATA(-1, 0, 1) + 1/20 z DATA(1, -1, 1) + + + 1/40 z DATA(-1, -1, 1) + 3/80 z DATA(0, -1, 1) + 7/80 z DATA(-1, 0, -1) + + 11 + + 3/40 z DATA(0, 0, -1) + 1/16 z DATA(1, 0, -1) - -- z DATA(0, 0, 0) + 80 + + - 1/8 z DATA(1, 0, 0) + 3/40 z DATA(2, 0, 1) - 1/10 z DATA(2, 1, 0) + + + 1/10 z DATA(2, 2, 1) + 1/40 z DATA(2, 2, -1) - 1/8 z DATA(-1, 2, 0) + + - 9/80 z DATA(0, 2, 0) - 1/8 z DATA(2, -1, 0) - 9/80 z DATA(2, 0, 0) + + - 1/40 z DATA(1, 2, 2) - 3/80 z DATA(2, 2, 2) - 1/80 z DATA(1, 1, 2) + + + 1/16 z DATA(1, 0, 1) + 1/16 z DATA(2, -1, -1) + 1/20 z DATA(2, 0, -1) + + + 7/80 z DATA(2, 1, 1) + 1/16 z DATA(-1, 2, 1) + 3/40 z DATA(0, 2, 1) + + 13 31 + - ---- x DATA(0, 1, -1) - ---- x DATA(1, 1, -1) - 1/2000 x DATA(-1, -1, 0) + 2000 1000 + + 2 + - 7/2000 y DATA(0, -1, 0) - 1/32 z DATA(1, 1, -1) + + 2 2 2 + + 3/32 z DATA(0, -1, 0) + 3/32 z DATA(1, -1, 0) + 3/32 z DATA(-1, 0, 0) + + 2 2 2 + + 3/32 z DATA(-1, 1, 0) - 3/32 z DATA(-1, 1, 1) - 3/32 z DATA(-1, 0, 1) + + 2 2 + - 3/32 z DATA(1, -1, 1) - 3/32 z DATA(-1, -1, 1) + + 2 2 + - 3/32 z DATA(0, -1, 1) - 1/32 z DATA(-1, 0, -1) + + 2 2 2 + - 1/32 z DATA(0, 0, -1) - 1/32 z DATA(1, 0, -1) + 3/32 z DATA(0, 0, 0) + + 2 2 2 + + 3/32 z DATA(1, 0, 0) - 3/32 z DATA(2, 0, 1) + 3/32 z DATA(2, 1, 0) + + 2 2 2 + - 3/32 z DATA(2, 2, 1) - 1/32 z DATA(2, 2, -1) + 1/32 z DATA(2, -1, 2) + + 2 2 2 + + 3/32 z DATA(-1, 2, 0) + 3/32 z DATA(0, 2, 0) + 3/32 z DATA(2, -1, 0) + + 2 2 2 + + 3/32 z DATA(2, 0, 0) + 1/32 z DATA(1, 2, 2) + 1/32 z DATA(2, 2, 2) + + 2 2 2 + + 1/32 z DATA(1, 1, 2) - 3/32 z DATA(1, 0, 1) - 1/32 z DATA(2, -1, -1) + + 2 2 2 + - 1/32 z DATA(2, 0, -1) - 3/32 z DATA(2, 1, 1) - 3/32 z DATA(-1, 2, 1) + + 2 2 2 + - 3/32 z DATA(0, 2, 1) - 3/32 z DATA(1, 2, 1) - 3/32 z DATA(2, -1, 1) + + 2 2 2 + - 1/32 z DATA(1, -1, -1) + 3/32 z DATA(1, 2, 0) + 3/32 z DATA(2, 2, 0) + + 2 2 2 + + 3/32 z DATA(0, 1, 0) + 3/32 z DATA(1, 1, 0) - 3/32 z DATA(0, 0, 1) + + 2 2 2 + - 3/32 z DATA(0, 1, 1) - 3/32 z DATA(1, 1, 1) - 1/32 z DATA(-1, -1, -1) + + 2 2 + - 1/32 z DATA(0, -1, -1) - 1/32 z DATA(1, 2, -1) + + 2 2 + - 1/32 z DATA(2, 1, -1) - 1/32 z DATA(-1, 2, -1) + + 2 2 2 + - 1/32 z DATA(0, 2, -1) + 1/32 z DATA(2, 1, 2) + 1/32 z DATA(-1, 2, 2) + + 2 2 2 + + 1/32 z DATA(0, 2, 2) + 1/32 z DATA(1, 0, 2) + 1/32 z DATA(2, 0, 2) + + 2 2 2 + + 1/32 z DATA(-1, 1, 2) + 1/32 z DATA(0, 1, 2) + 1/32 z DATA(1, -1, 2) + + 2 2 2 + + 1/32 z DATA(-1, 0, 2) + 1/32 z DATA(0, 0, 2) + 1/32 z DATA(-1, -1, 2) + + 2 37 17 + + 1/32 z DATA(0, -1, 2) - ---- y DATA(-1, 1, -1) - --- y DATA(0, 1, -1) + 1000 500 + + 31 2 27 + - ---- y DATA(1, 1, -1) + 3/32 z DATA(-1, -1, 0) + ---- y DATA(2, 1, 1) + 1000 2000 + + 37 17 + + ---- y DATA(1, 2, 1) - 7/250 y DATA(2, -1, 1) - ---- x DATA(0, -1, 0) + 2000 2000 + + 13 + - 1/250 x DATA(1, -1, 0) - 7/2000 x DATA(-1, 0, 0) - ---- x DATA(-1, 1, 0) + 2000 + + 31 17 33 + - ---- x DATA(-1, 1, 1) - --- x DATA(-1, 0, 1) + ---- x DATA(1, -1, 1) + 1000 500 2000 + + 37 129 + - ---- x DATA(-1, -1, 1) - 1/250 x DATA(0, -1, 1) + ---- x DATA(-1, 0, -1) + 1000 2000 + + 17 19 + - 7/2000 x DATA(0, 0, -1) - --- x DATA(1, 0, -1) - ---- x DATA(0, 0, 0) + 500 2000 + + 31 19 + - 3/1000 x DATA(1, 0, 0) + ---- x DATA(2, 2, 1) - ---- x DATA(-1, 2, 0) + 2000 2000 + + 23 13 + - ---- x DATA(0, 2, 0) + ---- x DATA(2, -1, 0) + 2/125 x DATA(2, 0, 0) + 2000 1000 + + 31 57 37 + + ---- x DATA(1, 2, 2) - ---- x DATA(2, 2, 2) + ---- x DATA(1, 1, 2) + 2000 2000 2000 + + 31 27 + + ---- x DATA(1, 0, 1) - 9/250 x DATA(2, -1, -1) - ---- x DATA(2, 0, -1) + 2000 1000 + + 37 + + ---- x DATA(2, 1, 1) - 7/250 x DATA(-1, 2, 1) - 1/1000 x DATA(0, 2, 1) + 2000 + + 27 49 37 + + ---- x DATA(1, 2, 1) + ---- x DATA(2, -1, 1) - ---- x DATA(1, -1, -1) + 2000 2000 1000 + + 11 21 + - 1/1000 x DATA(1, 2, 0) + --- x DATA(2, 2, 0) - ---- x DATA(0, 1, 0) + 500 2000 + + - 1/500 x DATA(1, 1, 0) - 3/1000 x DATA(0, 0, 1) - 1/500 x DATA(0, 1, 1) + + 29 147 + + ---- x DATA(1, 1, 1) + ---- x DATA(-1, -1, -1) + 2000 2000 + + - 1/2000 x DATA(0, -1, -1) - 7/250 x DATA(1, 2, -1) + + 93 19 + - 9/500 x DATA(2, 1, -1) + ---- x DATA(-1, 2, -1) - ---- x DATA(0, 2, -1) + 2000 2000 + + 39 11 + - ---- x DATA(2, 1, 2) - 9/1000 x DATA(-1, 2, 2) + --- x DATA(0, 2, 2) + 2000 500 + + 43 21 + + ---- x DATA(1, 0, 2) - ---- x DATA(2, 0, 2) - 9/500 x DATA(-1, 1, 2) + 2000 2000 + + 19 49 27 + + ---- x DATA(0, 1, 2) + ---- x DATA(1, -1, 2) - ---- x DATA(-1, 0, 2) + 1000 2000 1000 + + 13 + + 2/125 x DATA(0, 0, 2) - 9/250 x DATA(-1, -1, 2) + ---- x DATA(0, -1, 2) + 1000 + + 2 2 49 + - 1/32 z DATA(-1, 1, -1) - 1/32 z DATA(0, 1, -1) + ---- y DATA(-1, 2, 1) + 2000 + + 2 2 + - 1/160 x DATA(0, 1, 1) - 1/160 x DATA(1, 1, 1) + + 2 2 + - 3/160 x DATA(-1, -1, -1) + 3/160 x DATA(0, -1, -1) + + 2 2 + + 3/160 x DATA(1, 2, -1) - 3/160 x DATA(2, 1, -1) + + 2 2 + - 3/160 x DATA(-1, 2, -1) + 3/160 x DATA(0, 2, -1) + + 2 2 + + 3/160 x DATA(2, 1, 2) + 3/160 x DATA(-1, 2, 2) + + 2 2 2 + - 3/160 x DATA(0, 2, 2) - 3/160 x DATA(1, 0, 2) + 3/160 x DATA(2, 0, 2) + + 2 2 + + 3/160 x DATA(-1, 1, 2) - 3/160 x DATA(0, 1, 2) + + 2 2 + - 3/160 x DATA(1, -1, 2) + 3/160 x DATA(-1, 0, 2) + + 2 2 + - 3/160 x DATA(0, 0, 2) + 3/160 x DATA(-1, -1, 2) + + 2 2 + - 3/160 x DATA(0, -1, 2) - 3/160 y DATA(-1, 1, 2) + 7/80 z DATA(1, 2, 1) + + + 1/16 z DATA(2, -1, 1) + 3/40 z DATA(1, -1, -1) - 1/10 z DATA(1, 2, 0) + + - 7/80 z DATA(2, 2, 0) - 1/8 z DATA(0, 1, 0) - 9/80 z DATA(1, 1, 0) + + + 1/20 z DATA(0, 0, 1) + 1/16 z DATA(0, 1, 1) + 3/40 z DATA(1, 1, 1) + + + 1/10 z DATA(-1, -1, -1) + 7/80 z DATA(0, -1, -1) + 3/80 z DATA(1, 2, -1) + + + 3/80 z DATA(2, 1, -1) + 1/16 z DATA(-1, 2, -1) + 1/20 z DATA(0, 2, -1) + + - 1/40 z DATA(2, 1, 2) - 1/80 z DATA(0, 2, 2) - 1/80 z DATA(2, 0, 2) + + + 1/80 z DATA(-1, 1, 2) + 1/80 z DATA(1, -1, 2) + 1/40 z DATA(-1, 0, 2) + + + 1/80 z DATA(0, 0, 2) + 3/80 z DATA(-1, -1, 2) + 1/40 z DATA(0, -1, 2) + + 2 2 + + 3/160 y DATA(-1, 1, -1) + 3/160 y DATA(0, 1, -1) + + 2 2 + + 3/160 y DATA(1, 1, -1) - 1/160 y DATA(-1, -1, 0) + + 2 2 + - 1/160 y DATA(0, -1, 0) - 1/160 y DATA(1, -1, 0) + + 2 2 + + 1/160 y DATA(-1, 0, 0) + 1/160 y DATA(-1, 1, 0) + + 2 19 23 + - 1/160 y DATA(-1, 1, 1) - ---- y DATA(2, -1, 0) - ---- y DATA(2, 0, 0) + 2000 2000 + + 39 57 37 + - ---- y DATA(1, 2, 2) - ---- y DATA(2, 2, 2) + ---- y DATA(1, 1, 2) + 2000 2000 2000 + + 93 19 + - 1/500 y DATA(1, 0, 1) + ---- y DATA(2, -1, -1) - ---- y DATA(2, 0, -1) + 2000 2000 + + 2 2 + + 1/160 y DATA(2, 1, 0) + 1/160 y DATA(2, 2, 1) + + 2 2 + - 3/160 y DATA(2, 2, -1) + 3/160 y DATA(2, -1, 2) + + 2 2 + - 1/160 y DATA(-1, 2, 0) - 1/160 y DATA(0, 2, 0) + + 2 2 + - 1/160 y DATA(2, -1, 0) + 1/160 y DATA(2, 0, 0) + + 2 2 2 + + 3/160 y DATA(1, 2, 2) + 3/160 y DATA(2, 2, 2) - 3/160 y DATA(1, 1, 2) + + 2 2 + - 1/160 y DATA(1, 0, 1) - 3/160 y DATA(2, -1, -1) + + 2 2 + + 3/160 y DATA(2, 0, -1) - 1/160 y DATA(2, 1, 1) + + 2 2 + + 1/160 y DATA(-1, 2, 1) + 1/160 y DATA(0, 2, 1) + + 2 2 + + 1/160 y DATA(1, 2, 1) + 1/160 y DATA(2, -1, 1) + + 2 2 + - 3/160 y DATA(1, -1, -1) - 1/160 y DATA(1, 2, 0) + + 2 2 2 + - 1/160 y DATA(2, 2, 0) + 1/160 y DATA(0, 1, 0) + 1/160 y DATA(1, 1, 0) + + 2 2 2 + - 1/160 y DATA(0, 0, 1) - 1/160 y DATA(0, 1, 1) - 1/160 y DATA(1, 1, 1) + + 2 2 + - 3/160 y DATA(-1, -1, -1) - 3/160 y DATA(0, -1, -1) + + 2 2 + - 3/160 y DATA(1, 2, -1) + 3/160 y DATA(2, 1, -1) + + 2 2 + - 3/160 y DATA(-1, 2, -1) - 3/160 y DATA(0, 2, -1) + + 2 2 + - 3/160 y DATA(2, 1, 2) + 3/160 y DATA(-1, 2, 2) + + 2 2 2 + + 3/160 y DATA(0, 2, 2) - 3/160 y DATA(1, 0, 2) - 3/160 y DATA(2, 0, 2) + + 2 2 + - 3/160 y DATA(0, 1, 2) + 3/160 y DATA(1, -1, 2) + + 2 2 + - 3/160 y DATA(-1, 0, 2) - 3/160 y DATA(0, 0, 2) + + 2 2 + + 3/160 y DATA(-1, -1, 2) + 3/160 y DATA(0, -1, 2) + + 2 2 + - 3/160 x DATA(-1, 1, -1) + 3/160 x DATA(0, 1, -1) + + 2 2 + + 3/160 x DATA(1, 1, -1) - 1/160 x DATA(-1, -1, 0) + + 2 2 + + 1/160 x DATA(0, -1, 0) + 1/160 x DATA(1, -1, 0) + + 2 2 + - 1/160 x DATA(-1, 0, 0) - 1/160 x DATA(-1, 1, 0) + + 2 2 + + 1/160 x DATA(-1, 1, 1) + 1/160 x DATA(-1, 0, 1) + + 2 2 + - 1/160 x DATA(1, -1, 1) + 1/160 x DATA(-1, -1, 1) + + 2 2 + - 1/160 x DATA(0, -1, 1) - 3/160 x DATA(-1, 0, -1) + + 2 2 + + 3/160 x DATA(0, 0, -1) + 3/160 x DATA(1, 0, -1) + + 2 2 2 + + 1/160 x DATA(0, 0, 0) + 1/160 x DATA(1, 0, 0) + 1/160 x DATA(2, 0, 1) + + 2 2 + - 1/160 x DATA(2, 1, 0) + 1/160 x DATA(2, 2, 1) + + 2 2 + - 3/160 x DATA(2, 2, -1) + 3/160 x DATA(2, -1, 2) + + 2 2 + - 1/160 x DATA(-1, 2, 0) + 1/160 x DATA(0, 2, 0) + + 2 2 + - 1/160 x DATA(2, -1, 0) - 1/160 x DATA(2, 0, 0) + + 2 2 2 + - 3/160 x DATA(1, 2, 2) + 3/160 x DATA(2, 2, 2) - 3/160 x DATA(1, 1, 2) + + 2 2 + - 1/160 x DATA(1, 0, 1) - 3/160 x DATA(2, -1, -1) + + 2 2 + - 3/160 x DATA(2, 0, -1) + 1/160 x DATA(2, 1, 1) + + 2 2 + + 1/160 x DATA(-1, 2, 1) - 1/160 x DATA(0, 2, 1) + + 2 2 + - 1/160 x DATA(1, 2, 1) + 1/160 x DATA(2, -1, 1) + + 2 2 + + 3/160 x DATA(1, -1, -1) + 1/160 x DATA(1, 2, 0) + + 2 2 2 + - 1/160 x DATA(2, 2, 0) + 1/160 x DATA(0, 1, 0) + 1/160 x DATA(1, 1, 0) + + 2 + - 1/160 x DATA(0, 0, 1) - 3/80 y z DATA(0, -1, -1) + + + 3/80 y z DATA(1, 2, -1) + 1/80 y z DATA(2, 1, -1) + + + 3/80 y z DATA(-1, 2, -1) + 3/80 y z DATA(0, 2, -1) + + + 1/80 y z DATA(2, 1, 2) + 3/80 y z DATA(-1, 2, 2) + + + 3/80 y z DATA(0, 2, 2) - 1/80 y z DATA(1, 0, 2) - 1/80 y z DATA(2, 0, 2) + + + 1/80 y z DATA(-1, 1, 2) + 1/80 y z DATA(0, 1, 2) + + - 3/80 y z DATA(1, -1, 2) - 1/80 y z DATA(-1, 0, 2) + + - 1/80 y z DATA(0, 0, 2) - 3/80 y z DATA(-1, -1, 2) + + - 3/80 y z DATA(0, -1, 2) + 9/1000 x y DATA(0, -1, 2) + + + 1/80 y z DATA(-1, 1, -1) + 1/80 y z DATA(0, 1, -1) + + + 1/80 y z DATA(1, 1, -1) + 3/80 y z DATA(-1, -1, 0) + + + 3/80 y z DATA(0, -1, 0) + 3/80 y z DATA(1, -1, 0) + + + 1/80 y z DATA(-1, 0, 0) - 1/80 y z DATA(-1, 1, 0) + + - 1/80 y z DATA(-1, 1, 1) + 1/80 y z DATA(-1, 0, 1) + + + 3/80 y z DATA(1, -1, 1) + 3/80 y z DATA(-1, -1, 1) + + + 3/80 y z DATA(0, -1, 1) - 1/80 y z DATA(-1, 0, -1) + + - 1/80 y z DATA(0, 0, -1) - 1/80 y z DATA(1, 0, -1) + + + 1/80 y z DATA(0, 0, 0) + 1/80 y z DATA(1, 0, 0) + 1/80 y z DATA(2, 0, 1) + + - 1/80 y z DATA(2, 1, 0) - 3/80 y z DATA(2, 2, 1) + + + 3/80 y z DATA(2, 2, -1) - 3/80 y z DATA(2, -1, 2) + + - 3/80 y z DATA(-1, 2, 0) - 3/80 y z DATA(0, 2, 0) + + + 3/80 y z DATA(2, -1, 0) + 1/80 y z DATA(2, 0, 0) + + + 3/80 y z DATA(1, 2, 2) + 3/80 y z DATA(2, 2, 2) + 1/80 y z DATA(1, 1, 2) + + + 1/80 y z DATA(1, 0, 1) - 3/80 y z DATA(2, -1, -1) + + - 1/80 y z DATA(2, 0, -1) - 1/80 y z DATA(2, 1, 1) + + - 3/80 y z DATA(-1, 2, 1) - 3/80 y z DATA(0, 2, 1) + + - 3/80 y z DATA(1, 2, 1) + 3/80 y z DATA(2, -1, 1) + + - 3/80 y z DATA(1, -1, -1) - 3/80 y z DATA(1, 2, 0) + + - 3/80 y z DATA(2, 2, 0) - 1/80 y z DATA(0, 1, 0) - 1/80 y z DATA(1, 1, 0) + + + 1/80 y z DATA(0, 0, 1) + 3/1000 x y DATA(1, 0, -1) + + - 1/1000 x y DATA(0, 0, 0) + 1/1000 x y DATA(1, 0, 0) + + - 3/1000 x y DATA(2, 0, 1) - 3/1000 x y DATA(2, 1, 0) + + 27 + + 9/1000 x y DATA(2, 2, 1) - ---- x y DATA(2, 2, -1) + 1000 + + 27 + - ---- x y DATA(2, -1, 2) + 9/1000 x y DATA(-1, 2, 0) + 1000 + + + 3/1000 x y DATA(0, 2, 0) + 9/1000 x y DATA(2, -1, 0) + + + 3/1000 x y DATA(2, 0, 0) + 9/1000 x y DATA(1, 2, 2) + + 27 + + ---- x y DATA(2, 2, 2) + 3/1000 x y DATA(1, 1, 2) + 1000 + + 27 + - 1/1000 x y DATA(1, 0, 1) + ---- x y DATA(2, -1, -1) + 1000 + + + 9/1000 x y DATA(2, 0, -1) + 3/1000 x y DATA(2, 1, 1) + + - 9/1000 x y DATA(-1, 2, 1) - 3/1000 x y DATA(0, 2, 1) + + + 3/1000 x y DATA(1, 2, 1) - 9/1000 x y DATA(2, -1, 1) + + + 9/1000 x y DATA(1, -1, -1) - 3/1000 x y DATA(1, 2, 0) + + - 9/1000 x y DATA(2, 2, 0) + 1/1000 x y DATA(0, 1, 0) + + - 1/1000 x y DATA(1, 1, 0) + 1/1000 x y DATA(0, 0, 1) + + - 1/1000 x y DATA(0, 1, 1) + 1/1000 x y DATA(1, 1, 1) + + 27 + - ---- x y DATA(-1, -1, -1) - 9/1000 x y DATA(0, -1, -1) + 1000 + + - 9/1000 x y DATA(1, 2, -1) - 9/1000 x y DATA(2, 1, -1) + + 27 + + ---- x y DATA(-1, 2, -1) + 9/1000 x y DATA(0, 2, -1) + 1000 + + 27 + + 9/1000 x y DATA(2, 1, 2) - ---- x y DATA(-1, 2, 2) + 1000 + + - 9/1000 x y DATA(0, 2, 2) - 3/1000 x y DATA(1, 0, 2) + + - 9/1000 x y DATA(2, 0, 2) - 9/1000 x y DATA(-1, 1, 2) + + - 3/1000 x y DATA(0, 1, 2) - 9/1000 x y DATA(1, -1, 2) + + + 9/1000 x y DATA(-1, 0, 2) + 3/1000 x y DATA(0, 0, 2) + + 27 + + ---- x y DATA(-1, -1, 2) - 3/80 x z DATA(-1, 1, -1) + 1000 + + + 1/80 x z DATA(1, 1, 2) - 3/80 x z DATA(2, 1, 1) + + 2 + - 1/160 y DATA(-1, 0, 1) - 1/80 y z DATA(1, 1, 1) + + - 3/80 y z DATA(-1, -1, -1) + +> coeff_as_lc_of_data(%, posn_list_3d_size4); +bytes used=420875536, alloc=4717728, time=41.93 +bytes used=421925544, alloc=4717728, time=42.00 +bytes used=422934660, alloc=4717728, time=42.06 +bytes used=423940964, alloc=4717728, time=42.14 +bytes used=424951952, alloc=4717728, time=42.22 +bytes used=425984392, alloc=4717728, time=42.29 +bytes used=426984512, alloc=4717728, time=42.37 +bytes used=427987684, alloc=4783252, time=42.44 + 2 2 147 27 47 +[COEFF(-1, -1, -1) = - 1/32 z - 3/160 x + ---- x - ---- x y - ---- - 3/80 x z + 2000 1000 1500 + + 147 2 2 + - 3/80 y z + ---- y + 1/10 z - 3/160 y , COEFF(0, -1, -1) = - 3/160 y + 2000 + + 607 2 + - 3/80 y z - ----- - 9/1000 x y + 3/160 x + 7/80 z - 1/2000 x - 1/80 x z + 12000 + + 129 2 97 + + ---- y - 1/32 z , COEFF(1, -1, -1) = - ---- - 3/80 y z + 9/1000 x y + 2000 3000 + + 111 2 37 2 2 + + ---- y + 1/80 x z - 3/160 y - ---- x - 1/32 z + 3/160 x + 3/40 z, + 2000 1000 + + 93 2 + COEFF(2, -1, -1) = - 9/250 x + 3/80 x z - 3/80 y z + ---- y - 1/32 z + 2000 + + 2 27 2 281 + - 3/160 y + ---- x y - 3/160 x + ----- + 1/16 z, COEFF(-1, 0, -1) = + 1000 12000 + + 129 2 2 2 607 + ---- x - 1/32 z + 3/160 y - 3/160 x - 3/80 x z - 9/1000 x y - ----- + 2000 12000 + + 2 + + 7/80 z - 1/2000 y - 1/80 y z, COEFF(0, 0, -1) = - 7/2000 x + 3/160 x + + 2 437 2 + - 1/32 z - 7/2000 y - ---- - 3/1000 x y - 1/80 y z + 3/40 z + 3/160 y + 6000 + + 2 17 + - 1/80 x z, COEFF(1, 0, -1) = 1/80 x z + 3/1000 x y - 1/32 z - --- x + 500 + + 2 2 13 691 + + 3/160 x + 3/160 y - ---- y - 1/80 y z + 1/16 z - -----, + 2000 12000 + + 19 2 + COEFF(2, 0, -1) = 1/20 z - 1/80 y z + 9/1000 x y - ---- y - 3/160 x + 2000 + + 2 2 29 27 + + 3/160 y - 1/32 z + 3/80 x z - ---- - ---- x, COEFF(-1, 1, -1) = + 6000 1000 + + 37 2 2 97 + - 3/80 x z + 3/40 z - ---- y - 1/32 z + 3/160 y - ---- + 9/1000 x y + 1000 3000 + + 111 2 2 + + 1/80 y z + ---- x - 3/160 x , COEFF(0, 1, -1) = 3/160 y + 1/16 z + 2000 + + 2 691 17 13 + + 3/160 x - ----- - 1/80 x z + 1/80 y z - --- y + 3/1000 x y - ---- x + 12000 500 2000 + + 2 17 2 + - 1/32 z , COEFF(1, 1, -1) = - --- - 1/32 z + 1/80 y z + 1/80 x z + 375 + + 31 2 2 31 + - ---- x + 3/160 y + 3/160 x - 3/1000 x y + 1/20 z - ---- y, + 1000 1000 + + 2 53 2 + COEFF(2, 1, -1) = 1/80 y z + 3/80 x z - 3/160 x + ----- - 1/32 z + 12000 + + 2 + - 9/1000 x y - 9/500 x + 3/160 y - 7/250 y + 3/80 z, COEFF(-1, 2, -1) = + + 2 93 2 27 + - 3/160 y + ---- x - 9/250 y + 1/16 z - 3/160 x - 3/80 x z + ---- x y + 2000 1000 + + 2 281 27 + + 3/80 y z - 1/32 z + -----, COEFF(0, 2, -1) = - 1/80 x z - ---- y + 12000 1000 + + 2 2 19 29 + + 1/20 z + 9/1000 x y + 3/80 y z - 1/32 z + 3/160 x - ---- x - ---- + 2000 6000 + + 2 2 2 + - 3/160 y , COEFF(1, 2, -1) = - 9/1000 x y - 1/32 z + 3/160 x + 1/80 x z + + 53 2 + + ----- + 3/80 z - 7/250 x - 9/500 y - 3/160 y + 3/80 y z, + 12000 + + 2 2 307 27 + COEFF(2, 2, -1) = - 1/32 z - 3/160 x + ---- + 3/80 y z - ---- x y + 6000 1000 + + 2 + - 9/1000 y + 3/80 x z - 3/160 y + 1/40 z - 9/1000 x, COEFF(-1, -1, 0) = + + 13 2 2 39 + - -- z + 3/32 z - 9/1000 x y + 3/80 y z - 1/2000 x - 1/160 x - ---- + 80 4000 + + 2 2 2 + + 3/80 x z - 1/160 y - 1/2000 y, COEFF(0, -1, 0) = 1/160 x - 1/160 y + + 49 17 2 + - 3/20 z - ---- - ---- x - 3/1000 x y + 3/80 y z - 7/2000 y + 3/32 z + 2000 2000 + + 2 13 + + 1/80 x z, COEFF(1, -1, 0) = 3/32 z - 1/80 x z + 3/80 y z - ---- y + 2000 + + 11 2 2 107 + + 3/1000 x y - -- z + 1/160 x - 1/160 y - ---- - 1/250 x, + 80 4000 + + 2 33 + COEFF(2, -1, 0) = - 3/80 x z - 1/8 z + 9/1000 x y - 1/160 x - ---- + 2000 + + 19 13 2 2 + - ---- y + 3/80 y z + ---- x - 1/160 y + 3/32 z , COEFF(-1, 0, 0) = + 2000 1000 + + 17 2 2 + 1/80 y z - 7/2000 x + 3/80 x z - 3/20 z - ---- y - 1/160 x + 3/32 z + 2000 + + 49 2 19 + - ---- - 3/1000 x y + 1/160 y , COEFF(0, 0, 0) = - ---- y - 1/1000 x y + 2000 2000 + + 19 2 161 11 2 + - ---- x + 1/160 x - ---- - -- z + 3/32 z + 1/80 x z + 1/80 y z + 2000 4000 80 + + 2 2 87 2 + + 1/160 y , COEFF(1, 0, 0) = 3/32 z - ---- - 3/1000 x + 1/160 y - 1/8 z + 2000 + + 21 2 + - ---- y + 1/160 x + 1/1000 x y - 1/80 x z + 1/80 y z, COEFF(2, 0, 0) = + 2000 + + 137 2 2 23 + - ---- - 1/160 x + 1/160 y + 3/1000 x y - ---- y + 2/125 x + 1/80 y z + 4000 2000 + + 2 2 + - 3/80 x z + 3/32 z - 9/80 z, COEFF(-1, 1, 0) = 3/32 z + 3/1000 x y + + 2 13 107 2 + - 1/160 x + 3/80 x z - ---- x - 1/250 y - ---- + 1/160 y - 1/80 y z + 2000 4000 + + 11 2 + - -- z, COEFF(0, 1, 0) = 1/1000 x y - 1/8 z + 1/160 y + 1/80 x z + 80 + + 2 87 21 2 + + 3/32 z - ---- - 1/80 y z - ---- x + 1/160 x - 3/1000 y, COEFF(1, 1, 0) + 2000 2000 + + 191 2 2 + = - 1/1000 x y - ---- - 1/500 y + 1/160 y + 3/32 z - 1/500 x - 1/80 y z + 4000 + + 2 + - 9/80 z + 1/160 x - 1/80 x z, COEFF(2, 1, 0) = - 3/80 x z - 1/1000 y + + 19 2 79 2 2 + + ---- x - 1/10 z - 3/1000 x y + 3/32 z - ---- - 1/160 x + 1/160 y + 1000 2000 + + 2 13 + - 1/80 y z, COEFF(-1, 2, 0) = 3/80 x z - 1/160 x - 1/8 z + ---- y + 1000 + + 2 2 33 19 + + 9/1000 x y - 1/160 y + 3/32 z - ---- - 3/80 y z - ---- x, + 2000 2000 + + 137 23 2 2 2 + COEFF(0, 2, 0) = - ---- + 2/125 y - ---- x - 1/160 y + 3/32 z + 1/160 x + 4000 2000 + + + 3/1000 x y + 1/80 x z - 9/80 z - 3/80 y z, COEFF(1, 2, 0) = - 1/10 z + + 2 19 79 2 + - 1/160 y + ---- y - ---- - 1/80 x z - 3/1000 x y + 1/160 x - 1/1000 x + 1000 2000 + + 2 11 2 + - 3/80 y z + 3/32 z , COEFF(2, 2, 0) = --- y - 3/80 x z - 1/160 y + 500 + + 2 11 2 129 + - 7/80 z + 3/32 z + --- x - 1/160 x - 9/1000 x y - ---- - 3/80 y z, + 500 4000 + + 157 37 37 + COEFF(-1, -1, 1) = ---- + 1/40 z + 3/80 x z - ---- x - ---- y + 9/1000 x y + 2000 1000 1000 + + 2 2 2 + - 3/32 z + 1/160 y + 3/80 y z + 1/160 x , COEFF(0, -1, 1) = 3/80 y z + + 2 17 323 2 + - 3/32 z - --- y + 1/80 x z + 3/80 z + 3/1000 x y + ---- + 1/160 y + 500 4000 + + 2 2 2 + - 1/250 x - 1/160 x , COEFF(1, -1, 1) = 1/160 y - 1/160 x + 1/20 z + + 31 141 33 2 + - ---- y + 3/80 y z + ---- - 1/80 x z - 3/1000 x y + ---- x - 3/32 z , + 1000 2000 2000 + + 49 191 2 2 + COEFF(2, -1, 1) = ---- x + ---- - 9/1000 x y - 3/32 z + 1/160 x + 2000 4000 + + 2 + + 3/80 y z - 3/80 x z + 1/160 y - 7/250 y + 1/16 z, COEFF(-1, 0, 1) = + + 323 2 2 17 2 + - 1/250 y + ---- - 3/32 z + 1/160 x + 1/80 y z - --- x - 1/160 y + 4000 500 + + 2 + + 3/80 z + 3/1000 x y + 3/80 x z, COEFF(0, 0, 1) = - 3/32 z - 3/1000 x + + 2 2 + - 1/160 y + 1/20 z - 3/1000 y - 1/160 x + 1/80 x z + 1/1000 x y + + 21 + + 1/80 y z + ---, COEFF(1, 0, 1) = - 1/80 x z - 1/500 y + 1/80 y z + 250 + + 2 299 2 31 2 + - 1/160 y + ---- - 3/32 z + 1/16 z - 1/1000 x y + ---- x - 1/160 x , + 4000 2000 + + 53 43 2 2 + COEFF(2, 0, 1) = ---- + ---- x - 1/1000 y + 1/160 x - 3/32 z + 3/40 z + 1000 2000 + + 2 2 + - 1/160 y + 1/80 y z - 3/80 x z - 3/1000 x y, COEFF(-1, 1, 1) = - 3/32 z + + 33 2 31 2 141 + + ---- y + 1/20 z + 1/160 x - ---- x - 1/160 y + 3/80 x z + ---- + 2000 1000 2000 + + 2 + - 1/80 y z - 3/1000 x y, COEFF(0, 1, 1) = 1/80 x z + 1/16 z - 3/32 z + + 2 299 2 31 + - 1/160 y - 1/1000 x y + ---- - 1/500 x - 1/160 x + ---- y - 1/80 y z, + 4000 2000 + + 29 133 2 + COEFF(1, 1, 1) = - 1/80 x z + ---- x + 3/40 z - 1/80 y z + ---- - 1/160 x + 2000 2000 + + 2 2 29 37 + - 3/32 z - 1/160 y + 1/1000 x y + ---- y, COEFF(2, 1, 1) = ---- x + 2000 2000 + + 27 2 2 2 + - 3/80 x z + ---- y + 1/160 x - 1/80 y z + 7/80 z - 1/160 y - 3/32 z + 2000 + + 183 2 49 + + ---- + 3/1000 x y, COEFF(-1, 2, 1) = 1/160 x - 7/250 x + ---- y + 4000 2000 + + 2 2 191 + - 3/32 z + 1/16 z + 1/160 y + ---- - 9/1000 x y + 3/80 x z - 3/80 y z, + 4000 + + 2 53 43 + COEFF(0, 2, 1) = 3/40 z - 3/32 z - 1/1000 x + ---- + 1/80 x z + ---- y + 1000 2000 + + 2 2 2 + - 3/80 y z - 1/160 x + 1/160 y - 3/1000 x y, COEFF(1, 2, 1) = - 1/160 x + + 183 2 2 37 + + ---- + 3/1000 x y - 1/80 x z + 1/160 y - 3/32 z + ---- y - 3/80 y z + 4000 2000 + + 27 2 31 2 + + 7/80 z + ---- x, COEFF(2, 2, 1) = 1/160 y + ---- x - 3/32 z - 3/80 x z + 2000 2000 + + 2 31 13 + + 1/160 x + 1/10 z + ---- y + 9/1000 x y - 3/80 y z + ---, + 2000 500 + + 2 27 + COEFF(-1, -1, 2) = 1/32 z - 3/80 x z + 3/80 z + ---- x y - 3/80 y z + 1000 + + 2 449 2 + + 3/160 x - ----- - 9/250 y - 9/250 x + 3/160 y , COEFF(0, -1, 2) = + 12000 + + 13 27 2 2 17 2 + ---- x - ---- y + 3/160 y - 3/160 x - ---- + 1/32 z + 9/1000 x y + 1000 1000 3000 + + 2 + - 1/80 x z + 1/40 z - 3/80 y z, COEFF(1, -1, 2) = - 3/80 y z + 1/32 z + + 2 137 49 2 + + 1/80 z + 3/160 y - 9/500 y - ----- - 9/1000 x y + ---- x - 3/160 x + 12000 2000 + + 41 + + 1/80 x z, COEFF(2, -1, 2) = - 3/2000 x + 3/80 x z - --- - 9/1000 y + 750 + + 27 2 2 2 + - ---- x y + 3/160 y + 1/32 z + 3/160 x - 3/80 y z, COEFF(-1, 0, 2) = + 1000 + + 2 2 13 17 2 + 3/160 x + 1/32 z + ---- y - 1/80 y z - 3/80 x z - ---- - 3/160 y + 1000 3000 + + 27 349 + + 1/40 z - ---- x + 9/1000 x y, COEFF(0, 0, 2) = 3/1000 x y + ----- + 1000 12000 + + 2 2 2 + + 1/32 z - 3/160 y + 1/80 z - 1/80 x z + 2/125 x + 2/125 y - 3/160 x + + 79 2 2 + - 1/80 y z, COEFF(1, 0, 2) = ---- - 1/80 y z - 3/160 y - 3/160 x + 3000 + + 43 2 19 + + ---- x - 3/1000 x y + 1/32 z + ---- y + 1/80 x z, COEFF(2, 0, 2) = + 2000 1000 + + 2 11 167 21 + 3/80 x z - 1/80 z + 1/32 z + --- y - ----- - ---- x - 1/80 y z + 500 12000 2000 + + 2 2 2 137 + - 9/1000 x y + 3/160 x - 3/160 y , COEFF(-1, 1, 2) = 1/32 z - ----- + 12000 + + 2 2 + - 9/1000 x y + 1/80 y z - 9/500 x - 3/160 y + 3/160 x + 1/80 z + + 49 19 + - 3/80 x z + ---- y, COEFF(0, 1, 2) = ---- x - 1/80 x z - 3/1000 x y + 2000 1000 + + 79 43 2 2 2 + + ---- + ---- y + 1/80 y z - 3/160 y + 1/32 z - 3/160 x , COEFF(1, 1, 2) + 3000 2000 + + 319 2 2 37 + = ----- + 1/80 x z + 1/32 z - 3/160 x - 1/80 z + 3/1000 x y + ---- x + 12000 2000 + + 37 2 2 + + ---- y - 3/160 y + 1/80 y z, COEFF(2, 1, 2) = 1/32 z - 1/40 z + 2000 + + 2 31 39 + + 3/160 x + 9/1000 x y + ---- y + 1/80 y z + 3/80 x z - ---- x - 4/375 + 2000 2000 + + 2 2 + - 3/160 y , COEFF(-1, 2, 2) = 3/160 x - 3/2000 y + 3/80 y z - 9/1000 x + + 41 2 2 27 + - --- + 1/32 z + 3/160 y - ---- x y - 3/80 x z, COEFF(0, 2, 2) = + 750 1000 + + 2 11 21 167 2 + - 3/160 x + --- x - ---- y - ----- - 1/80 x z - 9/1000 x y + 3/160 y + 500 2000 12000 + + 2 2 39 + - 1/80 z + 3/80 y z + 1/32 z , COEFF(1, 2, 2) = - 3/160 x - ---- y + 2000 + + 31 2 + - 4/375 + ---- x + 3/80 y z + 9/1000 x y - 1/40 z + 1/32 z + 1/80 x z + 2000 + + 2 2 539 27 57 + + 3/160 y , COEFF(2, 2, 2) = 3/160 x - ----- + ---- x y - 3/80 z - ---- y + 12000 1000 2000 + + 2 57 2 + + 1/32 z - ---- x + 3/80 y z + 3/160 y + 3/80 x z] + 2000 + +> print_coeff__lc_of_data(%, "coeff_dz_", "fp", +> "3d.coeffs/3d.cube.order3.smooth0/coeff-dz.compute.c"); +bytes used=428987920, alloc=4783252, time=42.53 +bytes used=429988156, alloc=4783252, time=42.61 +bytes used=430988492, alloc=4783252, time=42.69 +bytes used=431988660, alloc=4783252, time=42.88 +bytes used=432988828, alloc=4783252, time=42.97 +bytes used=433999844, alloc=4783252, time=43.04 +bytes used=435004444, alloc=4783252, time=43.12 +bytes used=436028440, alloc=4783252, time=43.21 +bytes used=437031784, alloc=4783252, time=43.31 +bytes used=438031956, alloc=4783252, time=43.44 +bytes used=439039232, alloc=4783252, time=43.89 +bytes used=440039460, alloc=4783252, time=44.08 +bytes used=441039668, alloc=4783252, time=44.14 +bytes used=442039852, alloc=4783252, time=44.21 +bytes used=443040388, alloc=4783252, time=44.27 +bytes used=444040624, alloc=4783252, time=44.34 +bytes used=445048752, alloc=4783252, time=44.45 +bytes used=446048992, alloc=4783252, time=44.56 +bytes used=447051164, alloc=4783252, time=44.69 +bytes used=448051412, alloc=4783252, time=44.83 +bytes used=449058440, alloc=4783252, time=44.96 +bytes used=450058592, alloc=4783252, time=45.07 +bytes used=451066924, alloc=4783252, time=45.16 +bytes used=452067164, alloc=4783252, time=45.27 +bytes used=453067384, alloc=4783252, time=45.90 +bytes used=454067756, alloc=4783252, time=45.99 +bytes used=455067952, alloc=4783252, time=46.06 +bytes used=456068392, alloc=4783252, time=46.12 +bytes used=457068568, alloc=4783252, time=46.19 +bytes used=458077856, alloc=4783252, time=46.39 +bytes used=459078052, alloc=4783252, time=46.50 +bytes used=460079324, alloc=4783252, time=46.59 +bytes used=461079604, alloc=4783252, time=47.29 +bytes used=462079896, alloc=4783252, time=47.38 +bytes used=463080084, alloc=4783252, time=47.45 +bytes used=464080252, alloc=4783252, time=47.52 +bytes used=465080480, alloc=4783252, time=47.61 +bytes used=466080676, alloc=4783252, time=47.77 +bytes used=467080884, alloc=4783252, time=48.37 +bytes used=468081464, alloc=4783252, time=48.58 +bytes used=469081852, alloc=4783252, time=48.64 +bytes used=470082052, alloc=4783252, time=48.72 +bytes used=471082260, alloc=4783252, time=48.83 +bytes used=472082500, alloc=4783252, time=48.97 +bytes used=473082684, alloc=4783252, time=49.61 +bytes used=474083048, alloc=4783252, time=49.75 +bytes used=475083232, alloc=4783252, time=49.84 +bytes used=476083384, alloc=4783252, time=49.99 +> +# d^2/dx^2 +> simplify( diff(interp_3d_cube_order3_smooth0,x,x) ); + 11 +3/40 DATA(-1, 1, -1) - -- DATA(0, 1, -1) + 1/20 DATA(1, 1, -1) + 80 + + + 7/80 DATA(-1, -1, 0) - 3/20 DATA(0, -1, 0) + 3/80 DATA(1, -1, 0) + + + 3/40 DATA(-1, 0, 0) + 1/16 DATA(-1, 1, 0) + 1/20 DATA(-1, 1, 1) + + + 1/16 DATA(-1, 0, 1) + 1/20 DATA(1, -1, 1) + 3/40 DATA(-1, -1, 1) + + 11 + - -- DATA(0, -1, 1) + 7/80 DATA(-1, 0, -1) - 3/20 DATA(0, 0, -1) + 80 + + 11 + + 3/80 DATA(1, 0, -1) - -- DATA(0, 0, 0) + 1/20 DATA(1, 0, 0) + 80 + + - 1/8 DATA(0, 1, 0) + 1/16 DATA(1, 1, 0) - 1/8 DATA(0, 0, 1) + + + 1/16 DATA(1, 0, 1) - 9/80 DATA(0, 1, 1) + 3/40 DATA(1, 1, 1) + + - 3/80 y DATA(0, 2, 1) + 3/80 y DATA(-1, 2, 2) + 3/80 y DATA(2, 2, -1) + + 13 + - 3/80 y DATA(1, 2, 0) + 1/10 DATA(-1, -1, -1) - -- DATA(0, -1, -1) + 80 + + + 1/16 DATA(1, 2, -1) + 1/80 DATA(2, 1, -1) + 1/16 DATA(-1, 2, -1) + + - 1/8 DATA(0, 2, -1) + 3/80 DATA(2, -1, -1) + 1/40 DATA(2, 0, -1) + + - 1/80 DATA(2, 1, 1) + 3/80 DATA(-1, 2, 1) - 1/10 DATA(0, 2, 1) + + + 7/80 DATA(1, 2, 1) + 1/80 DATA(2, -1, 1) + 1/40 DATA(1, -1, -1) + + + 3/40 DATA(1, 2, 0) - 1/80 DATA(2, 2, 0) + 1/20 DATA(-1, 2, 0) + + - 9/80 DATA(0, 2, 0) + 1/40 DATA(2, -1, 0) + 1/80 DATA(2, 0, 0) + + + 1/10 DATA(1, 2, 2) - 3/80 DATA(2, 2, 2) + 7/80 DATA(1, 1, 2) + + - 1/40 DATA(2, 1, 2) + 1/40 DATA(-1, 2, 2) - 7/80 DATA(0, 2, 2) + + + 3/40 DATA(1, 0, 2) - 1/80 DATA(2, 0, 2) + 3/80 DATA(-1, 1, 2) + + - 1/10 DATA(0, 1, 2) + 1/16 DATA(1, -1, 2) + 1/20 DATA(-1, 0, 2) + + - 9/80 DATA(0, 0, 2) + 1/16 x DATA(2, -1, 2) + 1/16 x DATA(2, 0, 1) + + + 1/16 x DATA(2, 1, 0) + 1/16 x DATA(2, 2, -1) + 1/16 DATA(-1, -1, 2) + + - 1/8 DATA(0, -1, 2) - 1/40 DATA(2, 2, 1) - 1/16 x DATA(-1, 1, -1) + + - 3/80 y DATA(2, -1, 2) - 3/80 y DATA(0, 2, 0) + 3/80 y DATA(-1, 2, 0) + + - 3/80 y DATA(-1, -1, 0) + 3/80 y DATA(1, -1, 0) - 1/80 y DATA(-1, 0, 0) + + + 1/80 y DATA(-1, 1, 0) + 1/80 y DATA(-1, 1, 1) - 1/80 y DATA(-1, 0, 1) + + + 3/80 y DATA(1, -1, 1) - 3/80 y DATA(-1, -1, 1) + 3/80 y DATA(0, -1, 1) + + - 1/80 y DATA(-1, 0, -1) + 1/80 y DATA(0, 0, -1) + 1/80 y DATA(1, 0, -1) + + + 1/80 y DATA(0, 0, 0) + 1/80 y DATA(1, 0, 0) - 1/80 y DATA(2, 0, 1) + + + 1/80 y DATA(2, 1, 0) + 3/80 y DATA(2, 2, 1) + 3/80 y DATA(1, -1, -1) + + + 3/80 y DATA(2, 2, 0) - 1/80 y DATA(0, 1, 0) - 1/80 y DATA(1, 1, 0) + + + 1/80 y DATA(0, 0, 1) - 1/80 y DATA(0, 1, 1) - 1/80 y DATA(1, 1, 1) + + - 3/80 y DATA(-1, -1, -1) + 3/80 y DATA(0, -1, -1) - 3/80 y DATA(1, 2, -1) + + + 1/80 y DATA(2, 1, -1) + 3/80 y DATA(-1, 2, -1) - 3/80 y DATA(0, 2, -1) + + + 1/80 y DATA(2, 1, 2) - 3/80 y DATA(0, 2, 2) + 1/80 y DATA(1, 0, 2) + + - 1/80 y DATA(2, 0, 2) + 1/80 y DATA(-1, 1, 2) - 1/80 y DATA(0, 1, 2) + + + 3/80 y DATA(1, -1, 2) - 1/80 y DATA(-1, 0, 2) + 1/80 y DATA(0, 0, 2) + + - 3/80 y DATA(-1, -1, 2) + 3/80 y DATA(0, -1, 2) - 3/80 z DATA(-1, 1, -1) + + + 3/80 z DATA(0, 1, -1) + 3/80 z DATA(1, 1, -1) - 1/80 z DATA(-1, -1, 0) + + + 1/80 z DATA(0, -1, 0) + 1/80 z DATA(1, -1, 0) - 1/80 z DATA(-1, 0, 0) + + - 1/80 z DATA(-1, 1, 0) + 1/80 z DATA(-1, 1, 1) + 1/80 z DATA(-1, 0, 1) + + - 1/80 z DATA(1, -1, 1) + 1/80 z DATA(-1, -1, 1) - 1/80 z DATA(0, -1, 1) + + - 3/80 z DATA(-1, 0, -1) + 3/80 z DATA(0, 0, -1) + 3/80 z DATA(1, 0, -1) + + + 1/80 z DATA(0, 0, 0) + 1/80 z DATA(1, 0, 0) + 1/80 z DATA(2, 0, 1) + + - 1/80 z DATA(2, 1, 0) + 1/80 z DATA(2, 2, 1) - 3/80 z DATA(2, 2, -1) + + - 1/80 z DATA(-1, 2, 0) + 1/80 z DATA(0, 2, 0) - 1/80 z DATA(2, -1, 0) + + - 1/80 z DATA(2, 0, 0) - 3/80 z DATA(1, 2, 2) + 3/80 z DATA(2, 2, 2) + + - 3/80 z DATA(1, 1, 2) - 1/80 z DATA(1, 0, 1) - 3/80 z DATA(2, -1, -1) + + - 3/80 z DATA(2, 0, -1) + 1/80 z DATA(2, 1, 1) + 1/80 z DATA(-1, 2, 1) + + - 1/80 z DATA(0, 2, 1) + 3/16 x DATA(0, 1, -1) - 3/16 x DATA(1, 1, -1) + + - 1/16 x DATA(-1, -1, 0) + 3/80 y DATA(0, -1, 0) + 1/80 y DATA(-1, 1, -1) + + - 1/80 y DATA(0, 1, -1) - 1/80 y DATA(1, 1, -1) + 1/80 y DATA(2, 1, 1) + + - 3/80 y DATA(1, 2, 1) - 3/80 y DATA(2, -1, 1) + 3/16 x DATA(0, -1, 0) + + - 3/16 x DATA(1, -1, 0) - 1/16 x DATA(-1, 0, 0) - 1/16 x DATA(-1, 1, 0) + + - 1/16 x DATA(-1, 1, 1) - 1/16 x DATA(-1, 0, 1) - 3/16 x DATA(1, -1, 1) + + - 1/16 x DATA(-1, -1, 1) + 3/16 x DATA(0, -1, 1) - 1/16 x DATA(-1, 0, -1) + + + 3/16 x DATA(0, 0, -1) - 3/16 x DATA(1, 0, -1) + 3/16 x DATA(0, 0, 0) + + - 3/16 x DATA(1, 0, 0) + 1/16 x DATA(2, 2, 1) - 1/16 x DATA(-1, 2, 0) + + + 3/16 x DATA(0, 2, 0) + 1/16 x DATA(2, -1, 0) + 1/16 x DATA(2, 0, 0) + + - 3/16 x DATA(1, 2, 2) + 1/16 x DATA(2, 2, 2) - 3/16 x DATA(1, 1, 2) + + - 3/16 x DATA(1, 0, 1) + 1/16 x DATA(2, -1, -1) + 1/16 x DATA(2, 0, -1) + + + 1/16 x DATA(2, 1, 1) - 1/16 x DATA(-1, 2, 1) + 3/16 x DATA(0, 2, 1) + + - 3/16 x DATA(1, 2, 1) + 1/16 x DATA(2, -1, 1) - 3/16 x DATA(1, -1, -1) + + - 3/16 x DATA(1, 2, 0) + 1/16 x DATA(2, 2, 0) + 3/16 x DATA(0, 1, 0) + + - 3/16 x DATA(1, 1, 0) + 3/16 x DATA(0, 0, 1) + 3/16 x DATA(0, 1, 1) + + - 3/16 x DATA(1, 1, 1) - 1/16 x DATA(-1, -1, -1) + 3/16 x DATA(0, -1, -1) + + - 3/16 x DATA(1, 2, -1) + 1/16 x DATA(2, 1, -1) - 1/16 x DATA(-1, 2, -1) + + + 3/16 x DATA(0, 2, -1) + 1/16 x DATA(2, 1, 2) - 1/16 x DATA(-1, 2, 2) + + + 3/16 x DATA(0, 2, 2) - 3/16 x DATA(1, 0, 2) + 1/16 x DATA(2, 0, 2) + + - 1/16 x DATA(-1, 1, 2) + 3/16 x DATA(0, 1, 2) - 3/16 x DATA(1, -1, 2) + + - 1/16 x DATA(-1, 0, 2) + 3/16 x DATA(0, 0, 2) - 1/16 x DATA(-1, -1, 2) + + + 3/16 x DATA(0, -1, 2) + 3/80 y DATA(-1, 2, 1) - 1/80 z DATA(1, 2, 1) + + + 1/80 z DATA(2, -1, 1) + 3/80 z DATA(1, -1, -1) + 1/80 z DATA(1, 2, 0) + + - 1/80 z DATA(2, 2, 0) + 1/80 z DATA(0, 1, 0) + 1/80 z DATA(1, 1, 0) + + - 1/80 z DATA(0, 0, 1) - 1/80 z DATA(0, 1, 1) - 1/80 z DATA(1, 1, 1) + + - 3/80 z DATA(-1, -1, -1) + 3/80 z DATA(0, -1, -1) + 3/80 z DATA(1, 2, -1) + + - 3/80 z DATA(2, 1, -1) - 3/80 z DATA(-1, 2, -1) + 3/80 z DATA(0, 2, -1) + + + 3/80 z DATA(2, 1, 2) - 3/80 z DATA(0, 2, 2) + 3/80 z DATA(2, 0, 2) + + + 3/80 z DATA(-1, 1, 2) - 3/80 z DATA(1, -1, 2) + 3/80 z DATA(-1, 0, 2) + + - 3/80 z DATA(0, 0, 2) + 3/80 z DATA(-1, -1, 2) - 3/80 z DATA(0, -1, 2) + + - 3/80 y DATA(2, -1, 0) - 1/80 y DATA(2, 0, 0) - 3/80 y DATA(1, 2, 2) + + + 3/80 y DATA(2, 2, 2) - 1/80 y DATA(1, 1, 2) + 1/80 y DATA(1, 0, 1) + + - 3/80 y DATA(2, -1, -1) - 1/80 y DATA(2, 0, -1) - 3/80 z DATA(0, 1, 2) + + + 3/80 z DATA(2, -1, 2) + 3/80 z DATA(-1, 2, 2) - 3/80 z DATA(1, 0, 2) + +> coeff_as_lc_of_data(%, posn_list_3d_size4); +bytes used=477102164, alloc=4783252, time=50.07 +bytes used=478118480, alloc=4783252, time=50.14 +bytes used=479118644, alloc=4783252, time=50.22 +bytes used=480129196, alloc=4783252, time=50.29 +bytes used=481129496, alloc=4783252, time=50.37 +[COEFF(-1, -1, -1) = - 1/16 x - 3/80 y + 1/10 - 3/80 z, + + 13 + COEFF(0, -1, -1) = 3/16 x - -- + 3/80 y + 3/80 z, + 80 + + COEFF(1, -1, -1) = 3/80 y + 1/40 + 3/80 z - 3/16 x, + + COEFF(2, -1, -1) = 3/80 + 1/16 x - 3/80 z - 3/80 y, + + COEFF(-1, 0, -1) = - 3/80 z - 1/16 x - 1/80 y + 7/80, + + COEFF(0, 0, -1) = 3/80 z + 1/80 y - 3/20 + 3/16 x, + + COEFF(1, 0, -1) = 3/80 z + 3/80 - 3/16 x + 1/80 y, + + COEFF(2, 0, -1) = - 3/80 z + 1/40 - 1/80 y + 1/16 x, + + COEFF(-1, 1, -1) = 3/40 - 1/16 x + 1/80 y - 3/80 z, + + 11 + COEFF(0, 1, -1) = - 1/80 y + 3/16 x + 3/80 z - --, + 80 + + COEFF(1, 1, -1) = 1/20 - 3/16 x + 3/80 z - 1/80 y, + + COEFF(2, 1, -1) = 1/16 x + 1/80 y - 3/80 z + 1/80, + + COEFF(-1, 2, -1) = - 1/16 x + 3/80 y - 3/80 z + 1/16, + + COEFF(0, 2, -1) = - 3/80 y - 1/8 + 3/16 x + 3/80 z, + + COEFF(1, 2, -1) = - 3/80 y + 1/16 - 3/16 x + 3/80 z, + + COEFF(2, 2, -1) = 1/16 x - 3/80 z + 3/80 y, + + COEFF(-1, -1, 0) = - 1/16 x - 1/80 z - 3/80 y + 7/80, + + COEFF(0, -1, 0) = 3/80 y + 3/16 x - 3/20 + 1/80 z, + + COEFF(1, -1, 0) = 3/80 + 3/80 y - 3/16 x + 1/80 z, + + COEFF(2, -1, 0) = 1/40 - 1/80 z + 1/16 x - 3/80 y, + + COEFF(-1, 0, 0) = - 1/80 z - 1/80 y + 3/40 - 1/16 x, + + 11 + COEFF(0, 0, 0) = 1/80 z + 3/16 x - -- + 1/80 y, + 80 + + COEFF(1, 0, 0) = - 3/16 x + 1/20 + 1/80 z + 1/80 y, + + COEFF(2, 0, 0) = 1/80 + 1/16 x - 1/80 y - 1/80 z, + + COEFF(-1, 1, 0) = - 1/80 z + 1/16 + 1/80 y - 1/16 x, + + COEFF(0, 1, 0) = 1/80 z - 1/8 + 3/16 x - 1/80 y, + + COEFF(1, 1, 0) = 1/16 + 1/80 z - 1/80 y - 3/16 x, + + COEFF(2, 1, 0) = - 1/80 z + 1/16 x + 1/80 y, + + COEFF(-1, 2, 0) = 1/20 - 1/16 x - 1/80 z + 3/80 y, + + COEFF(0, 2, 0) = - 9/80 + 1/80 z + 3/16 x - 3/80 y, + + COEFF(1, 2, 0) = 1/80 z - 3/80 y + 3/40 - 3/16 x, + + COEFF(2, 2, 0) = - 1/80 z + 3/80 y - 1/80 + 1/16 x, + + COEFF(-1, -1, 1) = 3/40 - 3/80 y + 1/80 z - 1/16 x, + + 11 + COEFF(0, -1, 1) = - 1/80 z + 3/80 y - -- + 3/16 x, + 80 + + COEFF(1, -1, 1) = 1/20 + 3/80 y - 3/16 x - 1/80 z, + + COEFF(2, -1, 1) = 1/80 z - 3/80 y + 1/80 + 1/16 x, + + COEFF(-1, 0, 1) = 1/80 z + 1/16 - 1/80 y - 1/16 x, + + COEFF(0, 0, 1) = - 1/80 z + 1/80 y + 3/16 x - 1/8, + + COEFF(1, 0, 1) = 1/16 - 1/80 z - 3/16 x + 1/80 y, + + COEFF(2, 0, 1) = 1/80 z + 1/16 x - 1/80 y, + + COEFF(-1, 1, 1) = 1/20 + 1/80 y + 1/80 z - 1/16 x, + + COEFF(0, 1, 1) = - 9/80 - 1/80 y - 1/80 z + 3/16 x, + + COEFF(1, 1, 1) = - 1/80 z + 3/40 - 1/80 y - 3/16 x, + + COEFF(2, 1, 1) = 1/80 y - 1/80 + 1/80 z + 1/16 x, + + COEFF(-1, 2, 1) = 3/80 y + 3/80 + 1/80 z - 1/16 x, + + COEFF(0, 2, 1) = - 3/80 y - 1/10 + 3/16 x - 1/80 z, + + COEFF(1, 2, 1) = - 3/16 x + 7/80 - 3/80 y - 1/80 z, + + COEFF(2, 2, 1) = - 1/40 + 1/16 x + 3/80 y + 1/80 z, + + COEFF(-1, -1, 2) = 3/80 z + 1/16 - 3/80 y - 1/16 x, + + COEFF(0, -1, 2) = - 3/80 z - 1/8 + 3/80 y + 3/16 x, + + COEFF(1, -1, 2) = 1/16 + 3/80 y - 3/16 x - 3/80 z, + + COEFF(2, -1, 2) = - 3/80 y + 1/16 x + 3/80 z, + + COEFF(-1, 0, 2) = 3/80 z + 1/20 - 1/80 y - 1/16 x, + + COEFF(0, 0, 2) = - 9/80 - 3/80 z + 1/80 y + 3/16 x, + + COEFF(1, 0, 2) = 3/40 - 3/16 x + 1/80 y - 3/80 z, + + COEFF(2, 0, 2) = 3/80 z - 1/80 + 1/16 x - 1/80 y, + + COEFF(-1, 1, 2) = 1/80 y - 1/16 x + 3/80 z + 3/80, + + COEFF(0, 1, 2) = 3/16 x - 1/10 - 1/80 y - 3/80 z, + + COEFF(1, 1, 2) = 7/80 - 3/80 z - 3/16 x - 1/80 y, + + COEFF(2, 1, 2) = 1/16 x + 1/80 y + 3/80 z - 1/40, + + COEFF(-1, 2, 2) = - 1/16 x + 3/80 z + 3/80 y + 1/40, + + COEFF(0, 2, 2) = - 7/80 - 3/80 z - 3/80 y + 3/16 x, + + COEFF(1, 2, 2) = 1/10 - 3/80 y - 3/80 z - 3/16 x, + + COEFF(2, 2, 2) = - 3/80 + 3/80 z + 1/16 x + 3/80 y] + +> print_coeff__lc_of_data(%, "coeff_dxx_", "fp", +> "3d.coeffs/3d.cube.order3.smooth0/coeff-dxx.compute.c"); +bytes used=482129948, alloc=4783252, time=50.45 +bytes used=483130232, alloc=4783252, time=50.53 +bytes used=484143132, alloc=4783252, time=50.61 +bytes used=485143304, alloc=4783252, time=50.87 +bytes used=486143488, alloc=4783252, time=51.00 +bytes used=487143648, alloc=4783252, time=51.06 +bytes used=488143828, alloc=4783252, time=51.15 +bytes used=489143996, alloc=4783252, time=51.25 +bytes used=490144208, alloc=4783252, time=51.56 +bytes used=491144468, alloc=4783252, time=51.66 +bytes used=492144728, alloc=4783252, time=52.01 +> +# d^2/dxdy +> simplify( diff(interp_3d_cube_order3_smooth0,x,y) ); +bytes used=493145036, alloc=4783252, time=52.12 + 37 33 +- ---- DATA(-1, 1, -1) - 1/250 DATA(0, 1, -1) + ---- DATA(1, 1, -1) + 1000 2000 + + 129 17 + + ---- DATA(-1, -1, 0) - 7/2000 DATA(0, -1, 0) - --- DATA(1, -1, 0) + 2000 500 + + 17 31 + - 7/2000 DATA(-1, 0, 0) - --- DATA(-1, 1, 0) - ---- DATA(-1, 1, 1) + 500 1000 + + 13 31 111 + - ---- DATA(-1, 0, 1) - ---- DATA(1, -1, 1) + ---- DATA(-1, -1, 1) + 2000 1000 2000 + + 13 17 + - ---- DATA(0, -1, 1) - 1/2000 DATA(-1, 0, -1) - ---- DATA(0, 0, -1) + 2000 2000 + + 19 + - 1/250 DATA(1, 0, -1) - ---- DATA(0, 0, 0) - 3/1000 DATA(1, 0, 0) + 2000 + + 31 21 + - 3/1000 DATA(0, 1, 0) + ---- DATA(1, 1, 0) - ---- DATA(0, 0, 1) + 2000 2000 + + 29 + - 1/500 DATA(1, 0, 1) - 1/500 DATA(0, 1, 1) + ---- DATA(1, 1, 1) + 2000 + + - 1/80 y DATA(0, 2, 1) - 3/80 y DATA(-1, 2, 2) + 3/80 y DATA(2, 2, -1) + + 147 + + 1/80 y DATA(1, 2, 0) + ---- DATA(-1, -1, -1) - 1/2000 DATA(0, -1, -1) + 2000 + + 49 49 + + ---- DATA(1, 2, -1) + ---- DATA(2, 1, -1) - 9/250 DATA(-1, 2, -1) + 2000 2000 + + 13 13 + + ---- DATA(0, 2, -1) - 9/250 DATA(2, -1, -1) + ---- DATA(2, 0, -1) + 1000 1000 + + 37 19 + + ---- DATA(2, 1, 1) - 9/500 DATA(-1, 2, 1) + ---- DATA(0, 2, 1) + 2000 1000 + + 37 19 + + ---- DATA(1, 2, 1) - 9/500 DATA(2, -1, 1) + ---- DATA(2, 0, 1) + 2000 1000 + + 37 43 21 + - ---- DATA(1, -1, -1) + ---- DATA(1, 2, 0) - ---- DATA(2, 2, 0) + 1000 2000 2000 + + 43 27 + + ---- DATA(2, 1, 0) - ---- DATA(-1, 2, 0) + 2/125 DATA(0, 2, 0) + 2000 1000 + + 27 + - ---- DATA(2, -1, 0) + 2/125 DATA(2, 0, 0) - 3/2000 DATA(2, 2, -1) + 1000 + + 31 57 27 + + ---- DATA(1, 2, 2) - ---- DATA(2, 2, 2) + ---- DATA(1, 1, 2) + 2000 2000 2000 + + 31 11 + + ---- DATA(2, 1, 2) - 9/1000 DATA(-1, 2, 2) + --- DATA(0, 2, 2) + 2000 500 + + 11 + - 1/1000 DATA(1, 0, 2) + --- DATA(2, 0, 2) - 7/250 DATA(-1, 1, 2) + 500 + + - 1/1000 DATA(0, 1, 2) - 7/250 DATA(1, -1, 2) - 9/1000 DATA(2, -1, 2) + + 19 23 + - ---- DATA(-1, 0, 2) - ---- DATA(0, 0, 2) - 3/80 x DATA(2, -1, 2) + 2000 2000 + + - 1/80 x DATA(2, 0, 1) + 1/80 x DATA(2, 1, 0) + 3/80 x DATA(2, 2, -1) + + 93 19 39 + + ---- DATA(-1, -1, 2) - ---- DATA(0, -1, 2) - ---- DATA(2, 2, 1) + 2000 2000 2000 + + + 1/80 x DATA(-1, 1, -1) + 3/80 y DATA(2, -1, 2) - 1/80 y DATA(0, 2, 0) + + - 3/80 y DATA(-1, 2, 0) - 3/80 y DATA(-1, -1, 0) + 1/80 y DATA(1, -1, 0) + + + 3/80 y DATA(-1, 0, 0) + 3/80 y DATA(-1, 1, 0) + 3/80 y DATA(-1, 1, 1) + + + 3/80 y DATA(-1, 0, 1) + 1/80 y DATA(1, -1, 1) - 3/80 y DATA(-1, -1, 1) + + - 1/80 y DATA(0, -1, 1) + 3/80 y DATA(-1, 0, -1) + 1/80 y DATA(0, 0, -1) + + - 1/80 y DATA(1, 0, -1) + 1/80 y DATA(0, 0, 0) - 1/80 y DATA(1, 0, 0) + + - 3/80 y DATA(2, 0, 1) - 3/80 y DATA(2, 1, 0) + 3/80 y DATA(2, 2, 1) + + + 1/80 y DATA(1, -1, -1) + 3/80 y DATA(2, 2, 0) + 1/80 y DATA(0, 1, 0) + + - 1/80 y DATA(1, 1, 0) + 1/80 y DATA(0, 0, 1) + 1/80 y DATA(0, 1, 1) + + - 1/80 y DATA(1, 1, 1) - 3/80 y DATA(-1, -1, -1) - 1/80 y DATA(0, -1, -1) + + + 1/80 y DATA(1, 2, -1) - 3/80 y DATA(2, 1, -1) - 3/80 y DATA(-1, 2, -1) + + - 1/80 y DATA(0, 2, -1) - 3/80 y DATA(2, 1, 2) - 1/80 y DATA(0, 2, 2) + + - 1/80 y DATA(1, 0, 2) - 3/80 y DATA(2, 0, 2) + 3/80 y DATA(-1, 1, 2) + + + 1/80 y DATA(0, 1, 2) + 1/80 y DATA(1, -1, 2) + 3/80 y DATA(-1, 0, 2) + + + 1/80 y DATA(0, 0, 2) - 3/80 y DATA(-1, -1, 2) - 1/80 y DATA(0, -1, 2) + + + 9/1000 z DATA(-1, 1, -1) + 3/1000 z DATA(0, 1, -1) + + - 3/1000 z DATA(1, 1, -1) - 9/1000 z DATA(-1, -1, 0) + + - 3/1000 z DATA(0, -1, 0) + 3/1000 z DATA(1, -1, 0) + + - 3/1000 z DATA(-1, 0, 0) + 3/1000 z DATA(-1, 1, 0) + + - 3/1000 z DATA(-1, 1, 1) + 3/1000 z DATA(-1, 0, 1) + + - 3/1000 z DATA(1, -1, 1) + 9/1000 z DATA(-1, -1, 1) + + + 3/1000 z DATA(0, -1, 1) - 9/1000 z DATA(-1, 0, -1) + + - 3/1000 z DATA(0, 0, -1) + 3/1000 z DATA(1, 0, -1) + + - 1/1000 z DATA(0, 0, 0) + 1/1000 z DATA(1, 0, 0) - 3/1000 z DATA(2, 0, 1) + + 27 + - 3/1000 z DATA(2, 1, 0) + 9/1000 z DATA(2, 2, 1) - ---- z DATA(2, 2, -1) + 1000 + + + 9/1000 z DATA(-1, 2, 0) + 3/1000 z DATA(0, 2, 0) + + + 9/1000 z DATA(2, -1, 0) + 3/1000 z DATA(2, 0, 0) + + 27 + + 9/1000 z DATA(1, 2, 2) + ---- z DATA(2, 2, 2) + 3/1000 z DATA(1, 1, 2) + 1000 + + 27 + - 1/1000 z DATA(1, 0, 1) + ---- z DATA(2, -1, -1) + 1000 + + + 9/1000 z DATA(2, 0, -1) + 3/1000 z DATA(2, 1, 1) + + - 9/1000 z DATA(-1, 2, 1) - 3/1000 z DATA(0, 2, 1) - 1/80 x DATA(0, 1, -1) + + - 1/80 x DATA(1, 1, -1) - 3/80 x DATA(-1, -1, 0) - 1/80 y DATA(0, -1, 0) + + + 3/80 y DATA(-1, 1, -1) + 1/80 y DATA(0, 1, -1) - 1/80 y DATA(1, 1, -1) + + - 3/80 y DATA(2, 1, 1) + 1/80 y DATA(1, 2, 1) + 3/80 y DATA(2, -1, 1) + + + 3/80 x DATA(0, -1, 0) + 3/80 x DATA(1, -1, 0) - 1/80 x DATA(-1, 0, 0) + + + 1/80 x DATA(-1, 1, 0) + 1/80 x DATA(-1, 1, 1) - 1/80 x DATA(-1, 0, 1) + + + 3/80 x DATA(1, -1, 1) - 3/80 x DATA(-1, -1, 1) + 3/80 x DATA(0, -1, 1) + + - 1/80 x DATA(-1, 0, -1) + 1/80 x DATA(0, 0, -1) + 1/80 x DATA(1, 0, -1) + + + 1/80 x DATA(0, 0, 0) + 1/80 x DATA(1, 0, 0) + 3/80 x DATA(2, 2, 1) + + + 3/80 x DATA(-1, 2, 0) - 3/80 x DATA(0, 2, 0) - 3/80 x DATA(2, -1, 0) + + - 1/80 x DATA(2, 0, 0) - 3/80 x DATA(1, 2, 2) + 3/80 x DATA(2, 2, 2) + + - 1/80 x DATA(1, 1, 2) + 1/80 x DATA(1, 0, 1) - 3/80 x DATA(2, -1, -1) + + - 1/80 x DATA(2, 0, -1) + 1/80 x DATA(2, 1, 1) + 3/80 x DATA(-1, 2, 1) + + - 3/80 x DATA(0, 2, 1) - 3/80 x DATA(1, 2, 1) - 3/80 x DATA(2, -1, 1) + + + 3/80 x DATA(1, -1, -1) - 3/80 x DATA(1, 2, 0) + 3/80 x DATA(2, 2, 0) + + - 1/80 x DATA(0, 1, 0) - 1/80 x DATA(1, 1, 0) + 1/80 x DATA(0, 0, 1) + + - 1/80 x DATA(0, 1, 1) - 1/80 x DATA(1, 1, 1) - 3/80 x DATA(-1, -1, -1) + + + 3/80 x DATA(0, -1, -1) - 3/80 x DATA(1, 2, -1) + 1/80 x DATA(2, 1, -1) + + + 3/80 x DATA(-1, 2, -1) - 3/80 x DATA(0, 2, -1) + 1/80 x DATA(2, 1, 2) + + + 3/80 x DATA(-1, 2, 2) - 3/80 x DATA(0, 2, 2) + 1/80 x DATA(1, 0, 2) + + - 1/80 x DATA(2, 0, 2) + 1/80 x DATA(-1, 1, 2) - 1/80 x DATA(0, 1, 2) + + + 3/80 x DATA(1, -1, 2) - 1/80 x DATA(-1, 0, 2) + 1/80 x DATA(0, 0, 2) + + - 3/80 x DATA(-1, -1, 2) + 3/80 x DATA(0, -1, 2) - 3/80 y DATA(-1, 2, 1) + + + 3/1000 z DATA(1, 2, 1) - 9/1000 z DATA(2, -1, 1) + + + 9/1000 z DATA(1, -1, -1) - 3/1000 z DATA(1, 2, 0) + + - 9/1000 z DATA(2, 2, 0) + 1/1000 z DATA(0, 1, 0) - 1/1000 z DATA(1, 1, 0) + + + 1/1000 z DATA(0, 0, 1) - 1/1000 z DATA(0, 1, 1) + 1/1000 z DATA(1, 1, 1) + + 27 + - ---- z DATA(-1, -1, -1) - 9/1000 z DATA(0, -1, -1) + 1000 + + - 9/1000 z DATA(1, 2, -1) - 9/1000 z DATA(2, 1, -1) + + 27 + + ---- z DATA(-1, 2, -1) + 9/1000 z DATA(0, 2, -1) + 1000 + + + 9/1000 z DATA(2, 1, 2) - 9/1000 z DATA(0, 2, 2) - 9/1000 z DATA(2, 0, 2) + + - 9/1000 z DATA(-1, 1, 2) - 9/1000 z DATA(1, -1, 2) + + + 9/1000 z DATA(-1, 0, 2) + 3/1000 z DATA(0, 0, 2) + + 27 + + ---- z DATA(-1, -1, 2) + 9/1000 z DATA(0, -1, 2) + 3/80 y DATA(2, -1, 0) + 1000 + + - 3/80 y DATA(2, 0, 0) + 1/80 y DATA(1, 2, 2) + 3/80 y DATA(2, 2, 2) + + - 1/80 y DATA(1, 1, 2) - 1/80 y DATA(1, 0, 1) + 3/80 y DATA(2, -1, -1) + + 27 + - 3/80 y DATA(2, 0, -1) - 3/1000 z DATA(0, 1, 2) - ---- z DATA(2, -1, 2) + 1000 + + 27 + - ---- z DATA(-1, 2, 2) - 3/1000 z DATA(1, 0, 2) + 1000 + +> coeff_as_lc_of_data(%, posn_list_3d_size4); +bytes used=494145256, alloc=4783252, time=52.19 +bytes used=495145572, alloc=4783252, time=52.26 +bytes used=496145768, alloc=4783252, time=52.34 +bytes used=497145936, alloc=4783252, time=52.41 +bytes used=498148868, alloc=4783252, time=52.48 + 27 147 +[COEFF(-1, -1, -1) = - ---- z - 3/80 x - 3/80 y + ----, + 1000 2000 + + COEFF(0, -1, -1) = - 1/2000 - 9/1000 z + 3/80 x - 1/80 y, + + 37 + COEFF(1, -1, -1) = 1/80 y + 9/1000 z + 3/80 x - ----, + 1000 + + 27 + COEFF(2, -1, -1) = - 9/250 - 3/80 x + 3/80 y + ---- z, + 1000 + + COEFF(-1, 0, -1) = - 9/1000 z + 3/80 y - 1/2000 - 1/80 x, + + 17 + COEFF(0, 0, -1) = 1/80 x - 3/1000 z - ---- + 1/80 y, + 2000 + + COEFF(1, 0, -1) = 3/1000 z + 1/80 x - 1/80 y - 1/250, + + 13 + COEFF(2, 0, -1) = - 3/80 y + ---- + 9/1000 z - 1/80 x, + 1000 + + 37 + COEFF(-1, 1, -1) = 3/80 y - ---- + 1/80 x + 9/1000 z, + 1000 + + COEFF(0, 1, -1) = 3/1000 z - 1/250 + 1/80 y - 1/80 x, + + 33 + COEFF(1, 1, -1) = - 1/80 x - 1/80 y - 3/1000 z + ----, + 2000 + + 49 + COEFF(2, 1, -1) = 1/80 x - 9/1000 z + ---- - 3/80 y, + 2000 + + 27 + COEFF(-1, 2, -1) = ---- z + 3/80 x - 3/80 y - 9/250, + 1000 + + 13 + COEFF(0, 2, -1) = 9/1000 z - 3/80 x + ---- - 1/80 y, + 1000 + + 49 + COEFF(1, 2, -1) = 1/80 y - 3/80 x - 9/1000 z + ----, + 2000 + + 27 + COEFF(2, 2, -1) = - 3/2000 - ---- z + 3/80 x + 3/80 y, + 1000 + + 129 + COEFF(-1, -1, 0) = ---- - 9/1000 z - 3/80 x - 3/80 y, + 2000 + + COEFF(0, -1, 0) = - 1/80 y + 3/80 x - 3/1000 z - 7/2000, + + 17 + COEFF(1, -1, 0) = 3/80 x - --- + 3/1000 z + 1/80 y, + 500 + + 27 + COEFF(2, -1, 0) = - ---- + 9/1000 z - 3/80 x + 3/80 y, + 1000 + + COEFF(-1, 0, 0) = - 1/80 x + 3/80 y - 3/1000 z - 7/2000, + + 19 + COEFF(0, 0, 0) = - ---- - 1/1000 z + 1/80 x + 1/80 y, + 2000 + + COEFF(1, 0, 0) = - 1/80 y - 3/1000 + 1/1000 z + 1/80 x, + + COEFF(2, 0, 0) = - 3/80 y - 1/80 x + 2/125 + 3/1000 z, + + 17 + COEFF(-1, 1, 0) = - --- + 3/80 y + 1/80 x + 3/1000 z, + 500 + + COEFF(0, 1, 0) = - 3/1000 + 1/80 y + 1/1000 z - 1/80 x, + + 31 + COEFF(1, 1, 0) = - 1/1000 z + ---- - 1/80 y - 1/80 x, + 2000 + + 43 + COEFF(2, 1, 0) = - 3/80 y + 1/80 x + ---- - 3/1000 z, + 2000 + + 27 + COEFF(-1, 2, 0) = - 3/80 y - ---- + 9/1000 z + 3/80 x, + 1000 + + COEFF(0, 2, 0) = 3/1000 z - 3/80 x + 2/125 - 1/80 y, + + 43 + COEFF(1, 2, 0) = ---- - 3/1000 z - 3/80 x + 1/80 y, + 2000 + + 21 + COEFF(2, 2, 0) = 3/80 x + 3/80 y - 9/1000 z - ----, + 2000 + + 111 + COEFF(-1, -1, 1) = - 3/80 x + 9/1000 z + ---- - 3/80 y, + 2000 + + 13 + COEFF(0, -1, 1) = 3/1000 z + 3/80 x - 1/80 y - ----, + 2000 + + 31 + COEFF(1, -1, 1) = 1/80 y - 3/1000 z + 3/80 x - ----, + 1000 + + COEFF(2, -1, 1) = - 3/80 x - 9/500 - 9/1000 z + 3/80 y, + + 13 + COEFF(-1, 0, 1) = - 1/80 x - ---- + 3/1000 z + 3/80 y, + 2000 + + 21 + COEFF(0, 0, 1) = 1/80 x + 1/1000 z - ---- + 1/80 y, + 2000 + + COEFF(1, 0, 1) = - 1/500 - 1/80 y + 1/80 x - 1/1000 z, + + 19 + COEFF(2, 0, 1) = - 3/80 y - 3/1000 z - 1/80 x + ----, + 1000 + + 31 + COEFF(-1, 1, 1) = 1/80 x - ---- - 3/1000 z + 3/80 y, + 1000 + + COEFF(0, 1, 1) = - 1/500 - 1/80 x - 1/1000 z + 1/80 y, + + 29 + COEFF(1, 1, 1) = - 1/80 x - 1/80 y + 1/1000 z + ----, + 2000 + + 37 + COEFF(2, 1, 1) = - 3/80 y + 1/80 x + 3/1000 z + ----, + 2000 + + COEFF(-1, 2, 1) = 3/80 x - 9/500 - 9/1000 z - 3/80 y, + + 19 + COEFF(0, 2, 1) = - 3/1000 z - 1/80 y - 3/80 x + ----, + 1000 + + 37 + COEFF(1, 2, 1) = 3/1000 z + ---- - 3/80 x + 1/80 y, + 2000 + + 39 + COEFF(2, 2, 1) = - ---- + 3/80 y + 9/1000 z + 3/80 x, + 2000 + + 93 27 + COEFF(-1, -1, 2) = ---- + ---- z - 3/80 x - 3/80 y, + 2000 1000 + + 19 + COEFF(0, -1, 2) = 9/1000 z - ---- + 3/80 x - 1/80 y, + 2000 + + COEFF(1, -1, 2) = - 7/250 - 9/1000 z + 3/80 x + 1/80 y, + + 27 + COEFF(2, -1, 2) = 3/80 y - ---- z - 3/80 x - 9/1000, + 1000 + + 19 + COEFF(-1, 0, 2) = - 1/80 x + 3/80 y + 9/1000 z - ----, + 2000 + + 23 + COEFF(0, 0, 2) = 1/80 x + 3/1000 z + 1/80 y - ----, + 2000 + + COEFF(1, 0, 2) = - 1/1000 + 1/80 x - 3/1000 z - 1/80 y, + + 11 + COEFF(2, 0, 2) = - 9/1000 z - 3/80 y + --- - 1/80 x, + 500 + + COEFF(-1, 1, 2) = 3/80 y + 1/80 x - 7/250 - 9/1000 z, + + COEFF(0, 1, 2) = - 1/80 x - 1/1000 - 3/1000 z + 1/80 y, + + 27 + COEFF(1, 1, 2) = - 1/80 x + ---- - 1/80 y + 3/1000 z, + 2000 + + 31 + COEFF(2, 1, 2) = - 3/80 y + 9/1000 z + ---- + 1/80 x, + 2000 + + 27 + COEFF(-1, 2, 2) = 3/80 x - ---- z - 9/1000 - 3/80 y, + 1000 + + 11 + COEFF(0, 2, 2) = - 3/80 x - 1/80 y + --- - 9/1000 z, + 500 + + 31 + COEFF(1, 2, 2) = ---- - 3/80 x + 9/1000 z + 1/80 y, + 2000 + + 57 27 + COEFF(2, 2, 2) = 3/80 x - ---- + ---- z + 3/80 y] + 2000 1000 + +> print_coeff__lc_of_data(%, "coeff_dxy_", "fp", +> "3d.coeffs/3d.cube.order3.smooth0/coeff-dxy.compute.c"); +bytes used=499149092, alloc=4783252, time=52.56 +bytes used=500149256, alloc=4783252, time=52.74 +bytes used=501154356, alloc=4783252, time=52.83 +bytes used=502154580, alloc=4783252, time=53.17 +bytes used=503155052, alloc=4783252, time=53.26 +bytes used=504155280, alloc=4783252, time=53.33 +bytes used=505158388, alloc=4783252, time=53.42 +bytes used=506158772, alloc=4783252, time=53.50 +bytes used=507158980, alloc=4783252, time=53.92 +bytes used=508159204, alloc=4783252, time=54.02 +bytes used=509159432, alloc=4783252, time=54.37 +bytes used=510159680, alloc=4783252, time=54.54 +> +# d^2/dxdz +> simplify( diff(interp_3d_cube_order3_smooth0,x,z) ); +bytes used=511159892, alloc=4783252, time=54.65 +111 13 31 +---- DATA(-1, 1, -1) - ---- DATA(0, 1, -1) - ---- DATA(1, 1, -1) +2000 2000 1000 + + 17 + - 1/2000 DATA(-1, -1, 0) - ---- DATA(0, -1, 0) - 1/250 DATA(1, -1, 0) + 2000 + + 13 31 + - 7/2000 DATA(-1, 0, 0) - ---- DATA(-1, 1, 0) - ---- DATA(-1, 1, 1) + 2000 1000 + + 17 33 37 + - --- DATA(-1, 0, 1) + ---- DATA(1, -1, 1) - ---- DATA(-1, -1, 1) + 500 2000 1000 + + 129 + - 1/250 DATA(0, -1, 1) + ---- DATA(-1, 0, -1) - 7/2000 DATA(0, 0, -1) + 2000 + + 17 19 + - --- DATA(1, 0, -1) - ---- DATA(0, 0, 0) - 3/1000 DATA(1, 0, 0) + 500 2000 + + 21 + - ---- DATA(0, 1, 0) - 1/500 DATA(1, 1, 0) - 3/1000 DATA(0, 0, 1) + 2000 + + 31 29 + + ---- DATA(1, 0, 1) - 1/500 DATA(0, 1, 1) + ---- DATA(1, 1, 1) + 2000 2000 + + 27 27 + - 3/1000 y DATA(0, 2, 1) - ---- y DATA(-1, 2, 2) - ---- y DATA(2, 2, -1) + 1000 1000 + + 147 + - 3/1000 y DATA(1, 2, 0) + ---- DATA(-1, -1, -1) - 1/2000 DATA(0, -1, -1) + 2000 + + 93 + - 7/250 DATA(1, 2, -1) - 9/500 DATA(2, 1, -1) + ---- DATA(-1, 2, -1) + 2000 + + 19 27 + - ---- DATA(0, 2, -1) - 9/250 DATA(2, -1, -1) - ---- DATA(2, 0, -1) + 2000 1000 + + 37 + + ---- DATA(2, 1, 1) - 7/250 DATA(-1, 2, 1) - 1/1000 DATA(0, 2, 1) + 2000 + + 27 49 43 + + ---- DATA(1, 2, 1) + ---- DATA(2, -1, 1) + ---- DATA(2, 0, 1) + 2000 2000 2000 + + 37 11 + - ---- DATA(1, -1, -1) - 1/1000 DATA(1, 2, 0) + --- DATA(2, 2, 0) + 1000 500 + + 19 19 23 + + ---- DATA(2, 1, 0) - ---- DATA(-1, 2, 0) - ---- DATA(0, 2, 0) + 1000 2000 2000 + + 13 + + ---- DATA(2, -1, 0) + 2/125 DATA(2, 0, 0) - 9/1000 DATA(2, 2, -1) + 1000 + + 31 57 37 + + ---- DATA(1, 2, 2) - ---- DATA(2, 2, 2) + ---- DATA(1, 1, 2) + 2000 2000 2000 + + 39 11 + - ---- DATA(2, 1, 2) - 9/1000 DATA(-1, 2, 2) + --- DATA(0, 2, 2) + 2000 500 + + 43 21 + + ---- DATA(1, 0, 2) - ---- DATA(2, 0, 2) - 9/500 DATA(-1, 1, 2) + 2000 2000 + + 19 49 + + ---- DATA(0, 1, 2) + ---- DATA(1, -1, 2) - 3/2000 DATA(2, -1, 2) + 1000 2000 + + 27 + - ---- DATA(-1, 0, 2) + 2/125 DATA(0, 0, 2) + 3/80 x DATA(2, -1, 2) + 1000 + + + 1/80 x DATA(2, 0, 1) - 1/80 x DATA(2, 1, 0) - 3/80 x DATA(2, 2, -1) + + 13 31 + - 9/250 DATA(-1, -1, 2) + ---- DATA(0, -1, 2) + ---- DATA(2, 2, 1) + 1000 2000 + + 27 + - 3/80 x DATA(-1, 1, -1) - ---- y DATA(2, -1, 2) + 3/1000 y DATA(0, 2, 0) + 1000 + + + 9/1000 y DATA(-1, 2, 0) - 9/1000 y DATA(-1, -1, 0) + + + 3/1000 y DATA(1, -1, 0) - 3/1000 y DATA(-1, 0, 0) + + + 3/1000 y DATA(-1, 1, 0) - 3/1000 y DATA(-1, 1, 1) + + + 3/1000 y DATA(-1, 0, 1) - 3/1000 y DATA(1, -1, 1) + + + 9/1000 y DATA(-1, -1, 1) + 3/1000 y DATA(0, -1, 1) + + - 9/1000 y DATA(-1, 0, -1) - 3/1000 y DATA(0, 0, -1) + + + 3/1000 y DATA(1, 0, -1) - 1/1000 y DATA(0, 0, 0) + + + 1/1000 y DATA(1, 0, 0) - 3/1000 y DATA(2, 0, 1) - 3/1000 y DATA(2, 1, 0) + + + 9/1000 y DATA(2, 2, 1) + 9/1000 y DATA(1, -1, -1) + + - 9/1000 y DATA(2, 2, 0) + 1/1000 y DATA(0, 1, 0) - 1/1000 y DATA(1, 1, 0) + + + 1/1000 y DATA(0, 0, 1) - 1/1000 y DATA(0, 1, 1) + 1/1000 y DATA(1, 1, 1) + + 27 + - ---- y DATA(-1, -1, -1) - 9/1000 y DATA(0, -1, -1) + 1000 + + - 9/1000 y DATA(1, 2, -1) - 9/1000 y DATA(2, 1, -1) + + 27 + + ---- y DATA(-1, 2, -1) + 9/1000 y DATA(0, 2, -1) + 1000 + + + 9/1000 y DATA(2, 1, 2) - 9/1000 y DATA(0, 2, 2) - 3/1000 y DATA(1, 0, 2) + + - 9/1000 y DATA(2, 0, 2) - 9/1000 y DATA(-1, 1, 2) + + - 3/1000 y DATA(0, 1, 2) - 9/1000 y DATA(1, -1, 2) + + + 9/1000 y DATA(-1, 0, 2) + 3/1000 y DATA(0, 0, 2) + + 27 + + ---- y DATA(-1, -1, 2) + 9/1000 y DATA(0, -1, 2) + 1000 + + - 3/80 z DATA(-1, 1, -1) - 1/80 z DATA(0, 1, -1) + 1/80 z DATA(1, 1, -1) + + + 3/80 z DATA(-1, -1, 0) + 1/80 z DATA(0, -1, 0) - 1/80 z DATA(1, -1, 0) + + + 3/80 z DATA(-1, 0, 0) + 3/80 z DATA(-1, 1, 0) + 3/80 z DATA(-1, 1, 1) + + + 3/80 z DATA(-1, 0, 1) - 1/80 z DATA(1, -1, 1) + 3/80 z DATA(-1, -1, 1) + + + 1/80 z DATA(0, -1, 1) - 3/80 z DATA(-1, 0, -1) - 1/80 z DATA(0, 0, -1) + + + 1/80 z DATA(1, 0, -1) + 1/80 z DATA(0, 0, 0) - 1/80 z DATA(1, 0, 0) + + - 3/80 z DATA(2, 0, 1) - 3/80 z DATA(2, 1, 0) - 3/80 z DATA(2, 2, 1) + + + 3/80 z DATA(2, 2, -1) + 3/80 z DATA(-1, 2, 0) + 1/80 z DATA(0, 2, 0) + + - 3/80 z DATA(2, -1, 0) - 3/80 z DATA(2, 0, 0) + 1/80 z DATA(1, 2, 2) + + + 3/80 z DATA(2, 2, 2) + 1/80 z DATA(1, 1, 2) - 1/80 z DATA(1, 0, 1) + + + 3/80 z DATA(2, -1, -1) + 3/80 z DATA(2, 0, -1) - 3/80 z DATA(2, 1, 1) + + + 3/80 z DATA(-1, 2, 1) + 1/80 z DATA(0, 2, 1) + 3/80 x DATA(0, 1, -1) + + + 3/80 x DATA(1, 1, -1) - 1/80 x DATA(-1, -1, 0) - 3/1000 y DATA(0, -1, 0) + + + 9/1000 y DATA(-1, 1, -1) + 3/1000 y DATA(0, 1, -1) + + - 3/1000 y DATA(1, 1, -1) + 3/1000 y DATA(2, 1, 1) + + + 3/1000 y DATA(1, 2, 1) - 9/1000 y DATA(2, -1, 1) + 1/80 x DATA(0, -1, 0) + + + 1/80 x DATA(1, -1, 0) - 1/80 x DATA(-1, 0, 0) - 1/80 x DATA(-1, 1, 0) + + + 1/80 x DATA(-1, 1, 1) + 1/80 x DATA(-1, 0, 1) - 1/80 x DATA(1, -1, 1) + + + 1/80 x DATA(-1, -1, 1) - 1/80 x DATA(0, -1, 1) - 3/80 x DATA(-1, 0, -1) + + + 3/80 x DATA(0, 0, -1) + 3/80 x DATA(1, 0, -1) + 1/80 x DATA(0, 0, 0) + + + 1/80 x DATA(1, 0, 0) + 1/80 x DATA(2, 2, 1) - 1/80 x DATA(-1, 2, 0) + + + 1/80 x DATA(0, 2, 0) - 1/80 x DATA(2, -1, 0) - 1/80 x DATA(2, 0, 0) + + - 3/80 x DATA(1, 2, 2) + 3/80 x DATA(2, 2, 2) - 3/80 x DATA(1, 1, 2) + + - 1/80 x DATA(1, 0, 1) - 3/80 x DATA(2, -1, -1) - 3/80 x DATA(2, 0, -1) + + + 1/80 x DATA(2, 1, 1) + 1/80 x DATA(-1, 2, 1) - 1/80 x DATA(0, 2, 1) + + - 1/80 x DATA(1, 2, 1) + 1/80 x DATA(2, -1, 1) + 3/80 x DATA(1, -1, -1) + + + 1/80 x DATA(1, 2, 0) - 1/80 x DATA(2, 2, 0) + 1/80 x DATA(0, 1, 0) + + + 1/80 x DATA(1, 1, 0) - 1/80 x DATA(0, 0, 1) - 1/80 x DATA(0, 1, 1) + + - 1/80 x DATA(1, 1, 1) - 3/80 x DATA(-1, -1, -1) + 3/80 x DATA(0, -1, -1) + + + 3/80 x DATA(1, 2, -1) - 3/80 x DATA(2, 1, -1) - 3/80 x DATA(-1, 2, -1) + + + 3/80 x DATA(0, 2, -1) + 3/80 x DATA(2, 1, 2) + 3/80 x DATA(-1, 2, 2) + + - 3/80 x DATA(0, 2, 2) - 3/80 x DATA(1, 0, 2) + 3/80 x DATA(2, 0, 2) + + + 3/80 x DATA(-1, 1, 2) - 3/80 x DATA(0, 1, 2) - 3/80 x DATA(1, -1, 2) + + + 3/80 x DATA(-1, 0, 2) - 3/80 x DATA(0, 0, 2) + 3/80 x DATA(-1, -1, 2) + + - 3/80 x DATA(0, -1, 2) - 9/1000 y DATA(-1, 2, 1) - 1/80 z DATA(1, 2, 1) + + - 3/80 z DATA(2, -1, 1) + 1/80 z DATA(1, -1, -1) - 1/80 z DATA(1, 2, 0) + + - 3/80 z DATA(2, 2, 0) + 1/80 z DATA(0, 1, 0) - 1/80 z DATA(1, 1, 0) + + + 1/80 z DATA(0, 0, 1) + 1/80 z DATA(0, 1, 1) - 1/80 z DATA(1, 1, 1) + + - 3/80 z DATA(-1, -1, -1) - 1/80 z DATA(0, -1, -1) + 1/80 z DATA(1, 2, -1) + + + 3/80 z DATA(2, 1, -1) - 3/80 z DATA(-1, 2, -1) - 1/80 z DATA(0, 2, -1) + + + 3/80 z DATA(2, 1, 2) - 1/80 z DATA(0, 2, 2) + 3/80 z DATA(2, 0, 2) + + - 3/80 z DATA(-1, 1, 2) + 1/80 z DATA(1, -1, 2) - 3/80 z DATA(-1, 0, 2) + + - 1/80 z DATA(0, 0, 2) - 3/80 z DATA(-1, -1, 2) - 1/80 z DATA(0, -1, 2) + + + 9/1000 y DATA(2, -1, 0) + 3/1000 y DATA(2, 0, 0) + + 27 + + 9/1000 y DATA(1, 2, 2) + ---- y DATA(2, 2, 2) + 3/1000 y DATA(1, 1, 2) + 1000 + + 27 + - 1/1000 y DATA(1, 0, 1) + ---- y DATA(2, -1, -1) + 1000 + + + 9/1000 y DATA(2, 0, -1) - 1/80 z DATA(0, 1, 2) + 3/80 z DATA(2, -1, 2) + + - 3/80 z DATA(-1, 2, 2) + 1/80 z DATA(1, 0, 2) + +> coeff_as_lc_of_data(%, posn_list_3d_size4); +bytes used=512179540, alloc=4783252, time=54.72 +bytes used=513179748, alloc=4783252, time=54.79 +bytes used=514181096, alloc=4783252, time=54.87 +bytes used=515181336, alloc=4783252, time=54.94 + 147 27 +[COEFF(-1, -1, -1) = - 3/80 x - 3/80 z + ---- - ---- y, + 2000 1000 + + COEFF(0, -1, -1) = - 1/80 z - 9/1000 y - 1/2000 + 3/80 x, + + 37 + COEFF(1, -1, -1) = 1/80 z - ---- + 3/80 x + 9/1000 y, + 1000 + + 27 + COEFF(2, -1, -1) = - 9/250 + 3/80 z + ---- y - 3/80 x, + 1000 + + 129 + COEFF(-1, 0, -1) = ---- - 3/80 z - 9/1000 y - 3/80 x, + 2000 + + COEFF(0, 0, -1) = - 3/1000 y - 7/2000 + 3/80 x - 1/80 z, + + 17 + COEFF(1, 0, -1) = 1/80 z + 3/80 x - --- + 3/1000 y, + 500 + + 27 + COEFF(2, 0, -1) = 3/80 z + 9/1000 y - 3/80 x - ----, + 1000 + + 111 + COEFF(-1, 1, -1) = - 3/80 x + 9/1000 y - 3/80 z + ----, + 2000 + + 13 + COEFF(0, 1, -1) = - 1/80 z + 3/80 x - ---- + 3/1000 y, + 2000 + + 31 + COEFF(1, 1, -1) = - 3/1000 y - ---- + 1/80 z + 3/80 x, + 1000 + + COEFF(2, 1, -1) = 3/80 z - 3/80 x - 9/500 - 9/1000 y, + + 27 93 + COEFF(-1, 2, -1) = - 3/80 z + ---- y - 3/80 x + ----, + 1000 2000 + + 19 + COEFF(0, 2, -1) = - ---- + 9/1000 y + 3/80 x - 1/80 z, + 2000 + + COEFF(1, 2, -1) = - 7/250 + 1/80 z - 9/1000 y + 3/80 x, + + 27 + COEFF(2, 2, -1) = - 9/1000 + 3/80 z - 3/80 x - ---- y, + 1000 + + COEFF(-1, -1, 0) = - 1/2000 - 1/80 x - 9/1000 y + 3/80 z, + + 17 + COEFF(0, -1, 0) = - ---- - 3/1000 y + 1/80 x + 1/80 z, + 2000 + + COEFF(1, -1, 0) = 1/80 x - 1/250 - 1/80 z + 3/1000 y, + + 13 + COEFF(2, -1, 0) = - 3/80 z - 1/80 x + 9/1000 y + ----, + 1000 + + COEFF(-1, 0, 0) = - 7/2000 - 3/1000 y + 3/80 z - 1/80 x, + + 19 + COEFF(0, 0, 0) = 1/80 z - ---- - 1/1000 y + 1/80 x, + 2000 + + COEFF(1, 0, 0) = 1/80 x + 1/1000 y - 3/1000 - 1/80 z, + + COEFF(2, 0, 0) = - 3/80 z + 3/1000 y - 1/80 x + 2/125, + + 13 + COEFF(-1, 1, 0) = 3/80 z - ---- - 1/80 x + 3/1000 y, + 2000 + + 21 + COEFF(0, 1, 0) = - ---- + 1/80 x + 1/80 z + 1/1000 y, + 2000 + + COEFF(1, 1, 0) = 1/80 x - 1/80 z - 1/1000 y - 1/500, + + 19 + COEFF(2, 1, 0) = ---- - 1/80 x - 3/80 z - 3/1000 y, + 1000 + + 19 + COEFF(-1, 2, 0) = 3/80 z + 9/1000 y - ---- - 1/80 x, + 2000 + + 23 + COEFF(0, 2, 0) = 1/80 z + 1/80 x + 3/1000 y - ----, + 2000 + + COEFF(1, 2, 0) = 1/80 x - 1/1000 - 3/1000 y - 1/80 z, + + 11 + COEFF(2, 2, 0) = - 3/80 z - 1/80 x + --- - 9/1000 y, + 500 + + 37 + COEFF(-1, -1, 1) = 1/80 x + 3/80 z - ---- + 9/1000 y, + 1000 + + COEFF(0, -1, 1) = - 1/250 + 3/1000 y - 1/80 x + 1/80 z, + + 33 + COEFF(1, -1, 1) = - 1/80 z + ---- - 3/1000 y - 1/80 x, + 2000 + + 49 + COEFF(2, -1, 1) = 1/80 x - 3/80 z + ---- - 9/1000 y, + 2000 + + 17 + COEFF(-1, 0, 1) = - --- + 3/1000 y + 3/80 z + 1/80 x, + 500 + + COEFF(0, 0, 1) = - 3/1000 + 1/80 z - 1/80 x + 1/1000 y, + + 31 + COEFF(1, 0, 1) = - 1/1000 y - 1/80 z - 1/80 x + ----, + 2000 + + 43 + COEFF(2, 0, 1) = - 3/80 z - 3/1000 y + ---- + 1/80 x, + 2000 + + 31 + COEFF(-1, 1, 1) = - ---- - 3/1000 y + 3/80 z + 1/80 x, + 1000 + + COEFF(0, 1, 1) = - 1/500 - 1/80 x + 1/80 z - 1/1000 y, + + 29 + COEFF(1, 1, 1) = - 1/80 x + 1/1000 y - 1/80 z + ----, + 2000 + + 37 + COEFF(2, 1, 1) = - 3/80 z + 3/1000 y + ---- + 1/80 x, + 2000 + + COEFF(-1, 2, 1) = 1/80 x - 9/1000 y - 7/250 + 3/80 z, + + COEFF(0, 2, 1) = - 1/80 x + 1/80 z - 1/1000 - 3/1000 y, + + 27 + COEFF(1, 2, 1) = - 1/80 z - 1/80 x + ---- + 3/1000 y, + 2000 + + 31 + COEFF(2, 2, 1) = 9/1000 y + ---- + 1/80 x - 3/80 z, + 2000 + + 27 + COEFF(-1, -1, 2) = - 3/80 z + ---- y - 9/250 + 3/80 x, + 1000 + + 13 + COEFF(0, -1, 2) = 9/1000 y - 3/80 x - 1/80 z + ----, + 1000 + + 49 + COEFF(1, -1, 2) = - 3/80 x + ---- - 9/1000 y + 1/80 z, + 2000 + + 27 + COEFF(2, -1, 2) = - ---- y - 3/2000 + 3/80 x + 3/80 z, + 1000 + + 27 + COEFF(-1, 0, 2) = - 3/80 z + 9/1000 y - ---- + 3/80 x, + 1000 + + COEFF(0, 0, 2) = - 3/80 x + 3/1000 y - 1/80 z + 2/125, + + 43 + COEFF(1, 0, 2) = - 3/80 x + 1/80 z - 3/1000 y + ----, + 2000 + + 21 + COEFF(2, 0, 2) = - 9/1000 y + 3/80 z + 3/80 x - ----, + 2000 + + COEFF(-1, 1, 2) = - 3/80 z + 3/80 x - 9/500 - 9/1000 y, + + 19 + COEFF(0, 1, 2) = - 1/80 z - 3/80 x - 3/1000 y + ----, + 1000 + + 37 + COEFF(1, 1, 2) = 1/80 z + 3/1000 y - 3/80 x + ----, + 2000 + + 39 + COEFF(2, 1, 2) = - ---- + 3/80 x + 9/1000 y + 3/80 z, + 2000 + + 27 + COEFF(-1, 2, 2) = - 3/80 z - 9/1000 - ---- y + 3/80 x, + 1000 + + 11 + COEFF(0, 2, 2) = - 1/80 z - 9/1000 y - 3/80 x + ---, + 500 + + 31 + COEFF(1, 2, 2) = 1/80 z + ---- - 3/80 x + 9/1000 y, + 2000 + + 57 27 + COEFF(2, 2, 2) = 3/80 x - ---- + ---- y + 3/80 z] + 2000 1000 + +> print_coeff__lc_of_data(%, "coeff_dxz_", "fp", +> "3d.coeffs/3d.cube.order3.smooth0/coeff-dxz.compute.c"); +bytes used=516181712, alloc=4783252, time=55.01 +bytes used=517181888, alloc=4783252, time=55.09 +bytes used=518182212, alloc=4783252, time=55.25 +bytes used=519182372, alloc=4783252, time=55.34 +bytes used=520182596, alloc=4783252, time=55.66 +bytes used=521182748, alloc=4783252, time=55.80 +bytes used=522183020, alloc=4783252, time=55.87 +bytes used=523183228, alloc=4783252, time=55.97 +bytes used=524183404, alloc=4783252, time=56.06 +bytes used=525183668, alloc=4783252, time=56.46 +bytes used=526183888, alloc=4783252, time=56.53 +bytes used=527184068, alloc=4783252, time=56.91 +bytes used=528184328, alloc=4783252, time=57.05 +> +# d^2/dy^2 +> simplify( diff(interp_3d_cube_order3_smooth0,y,y) ); +1/40 DATA(-1, 1, -1) + 3/80 DATA(0, 1, -1) + 1/20 DATA(1, 1, -1) + + + 7/80 DATA(-1, -1, 0) + 3/40 DATA(0, -1, 0) + 1/16 DATA(1, -1, 0) + + - 3/20 DATA(-1, 0, 0) + 3/80 DATA(-1, 1, 0) + 1/20 DATA(-1, 1, 1) + + 11 + - -- DATA(-1, 0, 1) + 1/20 DATA(1, -1, 1) + 3/40 DATA(-1, -1, 1) + 80 + + 13 + + 1/16 DATA(0, -1, 1) - -- DATA(-1, 0, -1) - 3/20 DATA(0, 0, -1) + 80 + + 11 11 + - -- DATA(1, 0, -1) - -- DATA(0, 0, 0) - 1/8 DATA(1, 0, 0) + 80 80 + + + 1/20 DATA(0, 1, 0) + 1/16 DATA(1, 1, 0) - 1/8 DATA(0, 0, 1) + + - 9/80 DATA(1, 0, 1) + 1/16 DATA(0, 1, 1) + 3/40 DATA(1, 1, 1) + + + 1/16 y DATA(0, 2, 1) + 1/16 y DATA(-1, 2, 2) + 1/16 y DATA(2, 2, -1) + + + 1/16 y DATA(1, 2, 0) + 1/10 DATA(-1, -1, -1) + 7/80 DATA(0, -1, -1) + + + 1/80 DATA(1, 2, -1) + 1/16 DATA(2, 1, -1) + 3/80 DATA(-1, 2, -1) + + + 1/40 DATA(0, 2, -1) + 1/16 DATA(2, -1, -1) - 1/8 DATA(2, 0, -1) + + + 7/80 DATA(2, 1, 1) + 1/80 DATA(-1, 2, 1) - 1/80 DATA(1, 2, 1) + + + 3/80 DATA(2, -1, 1) - 1/10 DATA(2, 0, 1) + 3/40 DATA(1, -1, -1) + + - 1/80 DATA(2, 2, 0) + 3/40 DATA(2, 1, 0) + 1/40 DATA(-1, 2, 0) + + + 1/80 DATA(0, 2, 0) + 1/20 DATA(2, -1, 0) - 9/80 DATA(2, 0, 0) + + - 1/40 DATA(1, 2, 2) - 3/80 DATA(2, 2, 2) + 7/80 DATA(1, 1, 2) + + + 1/10 DATA(2, 1, 2) - 1/80 DATA(0, 2, 2) - 1/10 DATA(1, 0, 2) + + - 7/80 DATA(2, 0, 2) + 1/16 DATA(-1, 1, 2) + 3/40 DATA(0, 1, 2) + + + 3/80 DATA(1, -1, 2) + 1/40 DATA(2, -1, 2) - 1/8 DATA(-1, 0, 2) + + - 9/80 DATA(0, 0, 2) + 3/80 x DATA(2, -1, 2) - 3/80 x DATA(2, 0, 1) + + - 3/80 x DATA(2, 1, 0) + 3/80 x DATA(2, 2, -1) + 1/16 DATA(-1, -1, 2) + + + 1/20 DATA(0, -1, 2) - 1/40 DATA(2, 2, 1) + 3/80 x DATA(-1, 1, -1) + + - 1/16 y DATA(2, -1, 2) + 1/16 y DATA(0, 2, 0) + 1/16 y DATA(-1, 2, 0) + + - 1/16 y DATA(-1, -1, 0) - 1/16 y DATA(1, -1, 0) + 3/16 y DATA(-1, 0, 0) + + - 3/16 y DATA(-1, 1, 0) - 3/16 y DATA(-1, 1, 1) + 3/16 y DATA(-1, 0, 1) + + - 1/16 y DATA(1, -1, 1) - 1/16 y DATA(-1, -1, 1) - 1/16 y DATA(0, -1, 1) + + + 3/16 y DATA(-1, 0, -1) + 3/16 y DATA(0, 0, -1) + 3/16 y DATA(1, 0, -1) + + + 3/16 y DATA(0, 0, 0) + 3/16 y DATA(1, 0, 0) + 3/16 y DATA(2, 0, 1) + + - 3/16 y DATA(2, 1, 0) + 1/16 y DATA(2, 2, 1) - 1/16 y DATA(1, -1, -1) + + + 1/16 y DATA(2, 2, 0) - 3/16 y DATA(0, 1, 0) - 3/16 y DATA(1, 1, 0) + + + 3/16 y DATA(0, 0, 1) - 3/16 y DATA(0, 1, 1) - 3/16 y DATA(1, 1, 1) + + - 1/16 y DATA(-1, -1, -1) - 1/16 y DATA(0, -1, -1) + 1/16 y DATA(1, 2, -1) + + - 3/16 y DATA(2, 1, -1) + 1/16 y DATA(-1, 2, -1) + 1/16 y DATA(0, 2, -1) + + - 3/16 y DATA(2, 1, 2) + 1/16 y DATA(0, 2, 2) + 3/16 y DATA(1, 0, 2) + + + 3/16 y DATA(2, 0, 2) - 3/16 y DATA(-1, 1, 2) - 3/16 y DATA(0, 1, 2) + + - 1/16 y DATA(1, -1, 2) + 3/16 y DATA(-1, 0, 2) + 3/16 y DATA(0, 0, 2) + + - 1/16 y DATA(-1, -1, 2) - 1/16 y DATA(0, -1, 2) + 3/80 z DATA(-1, 1, -1) + + + 3/80 z DATA(0, 1, -1) + 3/80 z DATA(1, 1, -1) - 1/80 z DATA(-1, -1, 0) + + - 1/80 z DATA(0, -1, 0) - 1/80 z DATA(1, -1, 0) + 1/80 z DATA(-1, 0, 0) + + + 1/80 z DATA(-1, 1, 0) - 1/80 z DATA(-1, 1, 1) - 1/80 z DATA(-1, 0, 1) + + + 1/80 z DATA(1, -1, 1) + 1/80 z DATA(-1, -1, 1) + 1/80 z DATA(0, -1, 1) + + + 3/80 z DATA(-1, 0, -1) + 3/80 z DATA(0, 0, -1) + 3/80 z DATA(1, 0, -1) + + + 1/80 z DATA(0, 0, 0) + 1/80 z DATA(1, 0, 0) - 1/80 z DATA(2, 0, 1) + + + 1/80 z DATA(2, 1, 0) + 1/80 z DATA(2, 2, 1) - 3/80 z DATA(2, 2, -1) + + - 1/80 z DATA(-1, 2, 0) - 1/80 z DATA(0, 2, 0) - 1/80 z DATA(2, -1, 0) + + + 1/80 z DATA(2, 0, 0) + 3/80 z DATA(1, 2, 2) + 3/80 z DATA(2, 2, 2) + + - 3/80 z DATA(1, 1, 2) - 1/80 z DATA(1, 0, 1) - 3/80 z DATA(2, -1, -1) + + + 3/80 z DATA(2, 0, -1) - 1/80 z DATA(2, 1, 1) + 1/80 z DATA(-1, 2, 1) + + + 1/80 z DATA(0, 2, 1) + 1/80 x DATA(0, 1, -1) - 1/80 x DATA(1, 1, -1) + + - 3/80 x DATA(-1, -1, 0) - 1/16 y DATA(0, -1, 0) - 3/16 y DATA(-1, 1, -1) + + - 3/16 y DATA(0, 1, -1) - 3/16 y DATA(1, 1, -1) - 3/16 y DATA(2, 1, 1) + + + 1/16 y DATA(1, 2, 1) - 1/16 y DATA(2, -1, 1) - 1/80 x DATA(0, -1, 0) + + + 1/80 x DATA(1, -1, 0) + 3/80 x DATA(-1, 0, 0) + 3/80 x DATA(-1, 1, 0) + + + 3/80 x DATA(-1, 1, 1) + 3/80 x DATA(-1, 0, 1) + 1/80 x DATA(1, -1, 1) + + - 3/80 x DATA(-1, -1, 1) - 1/80 x DATA(0, -1, 1) + 3/80 x DATA(-1, 0, -1) + + + 1/80 x DATA(0, 0, -1) - 1/80 x DATA(1, 0, -1) + 1/80 x DATA(0, 0, 0) + + - 1/80 x DATA(1, 0, 0) + 3/80 x DATA(2, 2, 1) - 3/80 x DATA(-1, 2, 0) + + - 1/80 x DATA(0, 2, 0) + 3/80 x DATA(2, -1, 0) - 3/80 x DATA(2, 0, 0) + + + 1/80 x DATA(1, 2, 2) + 3/80 x DATA(2, 2, 2) - 1/80 x DATA(1, 1, 2) + + - 1/80 x DATA(1, 0, 1) + 3/80 x DATA(2, -1, -1) - 3/80 x DATA(2, 0, -1) + + - 3/80 x DATA(2, 1, 1) - 3/80 x DATA(-1, 2, 1) - 1/80 x DATA(0, 2, 1) + + + 1/80 x DATA(1, 2, 1) + 3/80 x DATA(2, -1, 1) + 1/80 x DATA(1, -1, -1) + + + 1/80 x DATA(1, 2, 0) + 3/80 x DATA(2, 2, 0) + 1/80 x DATA(0, 1, 0) + + - 1/80 x DATA(1, 1, 0) + 1/80 x DATA(0, 0, 1) + 1/80 x DATA(0, 1, 1) + + - 1/80 x DATA(1, 1, 1) - 3/80 x DATA(-1, -1, -1) - 1/80 x DATA(0, -1, -1) + + + 1/80 x DATA(1, 2, -1) - 3/80 x DATA(2, 1, -1) - 3/80 x DATA(-1, 2, -1) + + - 1/80 x DATA(0, 2, -1) - 3/80 x DATA(2, 1, 2) - 3/80 x DATA(-1, 2, 2) + + - 1/80 x DATA(0, 2, 2) - 1/80 x DATA(1, 0, 2) - 3/80 x DATA(2, 0, 2) + + + 3/80 x DATA(-1, 1, 2) + 1/80 x DATA(0, 1, 2) + 1/80 x DATA(1, -1, 2) + + + 3/80 x DATA(-1, 0, 2) + 1/80 x DATA(0, 0, 2) - 3/80 x DATA(-1, -1, 2) + + - 1/80 x DATA(0, -1, 2) + 1/16 y DATA(-1, 2, 1) + 1/80 z DATA(1, 2, 1) + + + 1/80 z DATA(2, -1, 1) - 3/80 z DATA(1, -1, -1) - 1/80 z DATA(1, 2, 0) + + - 1/80 z DATA(2, 2, 0) + 1/80 z DATA(0, 1, 0) + 1/80 z DATA(1, 1, 0) + + - 1/80 z DATA(0, 0, 1) - 1/80 z DATA(0, 1, 1) - 1/80 z DATA(1, 1, 1) + + - 3/80 z DATA(-1, -1, -1) - 3/80 z DATA(0, -1, -1) - 3/80 z DATA(1, 2, -1) + + + 3/80 z DATA(2, 1, -1) - 3/80 z DATA(-1, 2, -1) - 3/80 z DATA(0, 2, -1) + + - 3/80 z DATA(2, 1, 2) + 3/80 z DATA(0, 2, 2) - 3/80 z DATA(2, 0, 2) + + - 3/80 z DATA(-1, 1, 2) + 3/80 z DATA(1, -1, 2) - 3/80 z DATA(-1, 0, 2) + + - 3/80 z DATA(0, 0, 2) + 3/80 z DATA(-1, -1, 2) + 3/80 z DATA(0, -1, 2) + + - 1/16 y DATA(2, -1, 0) + 3/16 y DATA(2, 0, 0) + 1/16 y DATA(1, 2, 2) + + + 1/16 y DATA(2, 2, 2) - 3/16 y DATA(1, 1, 2) + 3/16 y DATA(1, 0, 1) + + - 1/16 y DATA(2, -1, -1) + 3/16 y DATA(2, 0, -1) - 3/80 z DATA(0, 1, 2) + + + 3/80 z DATA(2, -1, 2) + 3/80 z DATA(-1, 2, 2) - 3/80 z DATA(1, 0, 2) + +> coeff_as_lc_of_data(%, posn_list_3d_size4); +bytes used=529191180, alloc=4783252, time=57.15 +bytes used=530191424, alloc=4783252, time=57.22 +bytes used=531191544, alloc=4783252, time=57.29 +bytes used=532199056, alloc=4783252, time=57.36 +bytes used=533199360, alloc=4783252, time=57.44 +[COEFF(-1, -1, -1) = - 3/80 z - 3/80 x + 1/10 - 1/16 y, + + COEFF(0, -1, -1) = - 1/16 y - 3/80 z + 7/80 - 1/80 x, + + COEFF(1, -1, -1) = 3/40 - 3/80 z + 1/80 x - 1/16 y, + + COEFF(2, -1, -1) = - 3/80 z - 1/16 y + 3/80 x + 1/16, + + 13 + COEFF(-1, 0, -1) = 3/16 y - -- + 3/80 x + 3/80 z, + 80 + + COEFF(0, 0, -1) = 3/80 z - 3/20 + 1/80 x + 3/16 y, + + 11 + COEFF(1, 0, -1) = 3/16 y - 1/80 x - -- + 3/80 z, + 80 + + COEFF(2, 0, -1) = - 3/80 x + 3/80 z + 3/16 y - 1/8, + + COEFF(-1, 1, -1) = 3/80 z + 1/40 + 3/80 x - 3/16 y, + + COEFF(0, 1, -1) = - 3/16 y + 3/80 + 3/80 z + 1/80 x, + + COEFF(1, 1, -1) = - 3/16 y - 1/80 x + 3/80 z + 1/20, + + COEFF(2, 1, -1) = 3/80 z - 3/16 y - 3/80 x + 1/16, + + COEFF(-1, 2, -1) = 1/16 y + 3/80 - 3/80 x - 3/80 z, + + COEFF(0, 2, -1) = - 1/80 x + 1/16 y - 3/80 z + 1/40, + + COEFF(1, 2, -1) = - 3/80 z + 1/80 x + 1/80 + 1/16 y, + + COEFF(2, 2, -1) = - 3/80 z + 1/16 y + 3/80 x, + + COEFF(-1, -1, 0) = - 1/16 y - 1/80 z + 7/80 - 3/80 x, + + COEFF(0, -1, 0) = 3/40 - 1/16 y - 1/80 z - 1/80 x, + + COEFF(1, -1, 0) = - 1/16 y + 1/80 x - 1/80 z + 1/16, + + COEFF(2, -1, 0) = - 1/80 z - 1/16 y + 1/20 + 3/80 x, + + COEFF(-1, 0, 0) = 3/16 y + 3/80 x - 3/20 + 1/80 z, + + 11 + COEFF(0, 0, 0) = 1/80 z + 1/80 x + 3/16 y - --, + 80 + + COEFF(1, 0, 0) = 1/80 z + 3/16 y - 1/80 x - 1/8, + + COEFF(2, 0, 0) = - 3/80 x + 1/80 z + 3/16 y - 9/80, + + COEFF(-1, 1, 0) = 3/80 + 1/80 z - 3/16 y + 3/80 x, + + COEFF(0, 1, 0) = - 3/16 y + 1/20 + 1/80 x + 1/80 z, + + COEFF(1, 1, 0) = - 1/80 x - 3/16 y + 1/80 z + 1/16, + + COEFF(2, 1, 0) = - 3/80 x + 3/40 - 3/16 y + 1/80 z, + + COEFF(-1, 2, 0) = - 1/80 z + 1/16 y + 1/40 - 3/80 x, + + COEFF(0, 2, 0) = - 1/80 x + 1/80 + 1/16 y - 1/80 z, + + COEFF(1, 2, 0) = 1/80 x + 1/16 y - 1/80 z, + + COEFF(2, 2, 0) = - 1/80 + 1/16 y - 1/80 z + 3/80 x, + + COEFF(-1, -1, 1) = - 3/80 x + 1/80 z - 1/16 y + 3/40, + + COEFF(0, -1, 1) = - 1/16 y + 1/80 z + 1/16 - 1/80 x, + + COEFF(1, -1, 1) = 1/80 x - 1/16 y + 1/80 z + 1/20, + + COEFF(2, -1, 1) = 1/80 z + 3/80 x + 3/80 - 1/16 y, + + 11 + COEFF(-1, 0, 1) = - 1/80 z + 3/16 y + 3/80 x - --, + 80 + + COEFF(0, 0, 1) = 1/80 x - 1/80 z + 3/16 y - 1/8, + + COEFF(1, 0, 1) = - 1/80 x - 9/80 - 1/80 z + 3/16 y, + + COEFF(2, 0, 1) = - 1/80 z - 3/80 x - 1/10 + 3/16 y, + + COEFF(-1, 1, 1) = - 3/16 y + 1/20 - 1/80 z + 3/80 x, + + COEFF(0, 1, 1) = 1/16 - 3/16 y + 1/80 x - 1/80 z, + + COEFF(1, 1, 1) = - 1/80 z - 3/16 y + 3/40 - 1/80 x, + + COEFF(2, 1, 1) = - 3/80 x - 1/80 z + 7/80 - 3/16 y, + + COEFF(-1, 2, 1) = 1/80 z - 3/80 x + 1/16 y + 1/80, + + COEFF(0, 2, 1) = 1/80 z - 1/80 x + 1/16 y, + + COEFF(1, 2, 1) = 1/16 y - 1/80 + 1/80 z + 1/80 x, + + COEFF(2, 2, 1) = - 1/40 + 3/80 x + 1/80 z + 1/16 y, + + COEFF(-1, -1, 2) = - 3/80 x - 1/16 y + 3/80 z + 1/16, + + COEFF(0, -1, 2) = 3/80 z - 1/80 x - 1/16 y + 1/20, + + COEFF(1, -1, 2) = 3/80 + 3/80 z - 1/16 y + 1/80 x, + + COEFF(2, -1, 2) = - 1/16 y + 3/80 x + 3/80 z + 1/40, + + COEFF(-1, 0, 2) = 3/16 y - 1/8 + 3/80 x - 3/80 z, + + COEFF(0, 0, 2) = 1/80 x - 3/80 z + 3/16 y - 9/80, + + COEFF(1, 0, 2) = - 1/80 x - 1/10 + 3/16 y - 3/80 z, + + COEFF(2, 0, 2) = - 7/80 - 3/80 x - 3/80 z + 3/16 y, + + COEFF(-1, 1, 2) = 3/80 x + 1/16 - 3/80 z - 3/16 y, + + COEFF(0, 1, 2) = 1/80 x + 3/40 - 3/16 y - 3/80 z, + + COEFF(1, 1, 2) = 7/80 - 3/80 z - 1/80 x - 3/16 y, + + COEFF(2, 1, 2) = - 3/80 z - 3/16 y + 1/10 - 3/80 x, + + COEFF(-1, 2, 2) = 1/16 y + 3/80 z - 3/80 x, + + COEFF(0, 2, 2) = 1/16 y - 1/80 + 3/80 z - 1/80 x, + + COEFF(1, 2, 2) = - 1/40 + 1/16 y + 3/80 z + 1/80 x, + + COEFF(2, 2, 2) = - 3/80 + 3/80 z + 3/80 x + 1/16 y] + +> print_coeff__lc_of_data(%, "coeff_dyy_", "fp", +> "3d.coeffs/3d.cube.order3.smooth0/coeff-dyy.compute.c"); +bytes used=534199616, alloc=4783252, time=57.52 +bytes used=535199968, alloc=4783252, time=57.58 +bytes used=536200144, alloc=4783252, time=57.71 +bytes used=537200404, alloc=4783252, time=57.87 +bytes used=538200724, alloc=4783252, time=58.09 +bytes used=539200956, alloc=4783252, time=58.16 +bytes used=540204072, alloc=4783252, time=58.23 +bytes used=541206380, alloc=4783252, time=58.33 +bytes used=542206628, alloc=4783252, time=58.62 +bytes used=543206832, alloc=4783252, time=58.85 +bytes used=544207092, alloc=4783252, time=59.21 +bytes used=545207488, alloc=4783252, time=59.39 +> +# d^2/dydz +> simplify( diff(interp_3d_cube_order3_smooth0,y,z) ); + 37 17 31 +- ---- DATA(-1, 1, -1) - --- DATA(0, 1, -1) - ---- DATA(1, 1, -1) + 1000 500 1000 + + 13 + - 1/2000 DATA(-1, -1, 0) - 7/2000 DATA(0, -1, 0) - ---- DATA(1, -1, 0) + 2000 + + 17 33 + - ---- DATA(-1, 0, 0) - 1/250 DATA(-1, 1, 0) + ---- DATA(-1, 1, 1) + 2000 2000 + + 31 37 + - 1/250 DATA(-1, 0, 1) - ---- DATA(1, -1, 1) - ---- DATA(-1, -1, 1) + 1000 1000 + + 17 + - --- DATA(0, -1, 1) - 1/2000 DATA(-1, 0, -1) - 7/2000 DATA(0, 0, -1) + 500 + + 13 19 21 + - ---- DATA(1, 0, -1) - ---- DATA(0, 0, 0) - ---- DATA(1, 0, 0) + 2000 2000 2000 + + - 3/1000 DATA(0, 1, 0) - 1/500 DATA(1, 1, 0) - 3/1000 DATA(0, 0, 1) + + 31 29 + - 1/500 DATA(1, 0, 1) + ---- DATA(0, 1, 1) + ---- DATA(1, 1, 1) + 2000 2000 + + + 1/80 y DATA(0, 2, 1) + 3/80 y DATA(-1, 2, 2) - 3/80 y DATA(2, 2, -1) + + 147 129 + - 1/80 y DATA(1, 2, 0) + ---- DATA(-1, -1, -1) + ---- DATA(0, -1, -1) + 2000 2000 + + - 9/500 DATA(1, 2, -1) - 7/250 DATA(2, 1, -1) - 9/250 DATA(-1, 2, -1) + + 27 93 19 + - ---- DATA(0, 2, -1) + ---- DATA(2, -1, -1) - ---- DATA(2, 0, -1) + 1000 2000 2000 + + 27 49 43 + + ---- DATA(2, 1, 1) + ---- DATA(-1, 2, 1) + ---- DATA(0, 2, 1) + 2000 2000 2000 + + 37 + + ---- DATA(1, 2, 1) - 7/250 DATA(2, -1, 1) - 1/1000 DATA(2, 0, 1) + 2000 + + 111 19 11 + + ---- DATA(1, -1, -1) + ---- DATA(1, 2, 0) + --- DATA(2, 2, 0) + 2000 1000 500 + + 13 + - 1/1000 DATA(2, 1, 0) + ---- DATA(-1, 2, 0) + 2/125 DATA(0, 2, 0) + 1000 + + 19 23 + - ---- DATA(2, -1, 0) - ---- DATA(2, 0, 0) - 9/1000 DATA(2, 2, -1) + 2000 2000 + + 39 57 37 + - ---- DATA(1, 2, 2) - ---- DATA(2, 2, 2) + ---- DATA(1, 1, 2) + 2000 2000 2000 + + 31 21 + + ---- DATA(2, 1, 2) - 3/2000 DATA(-1, 2, 2) - ---- DATA(0, 2, 2) + 2000 2000 + + 19 11 49 + + ---- DATA(1, 0, 2) + --- DATA(2, 0, 2) + ---- DATA(-1, 1, 2) + 1000 500 2000 + + 43 + + ---- DATA(0, 1, 2) - 9/500 DATA(1, -1, 2) - 9/1000 DATA(2, -1, 2) + 2000 + + 13 27 + + ---- DATA(-1, 0, 2) + 2/125 DATA(0, 0, 2) - ---- x DATA(2, -1, 2) + 1000 1000 + + 27 + - 3/1000 x DATA(2, 0, 1) - 3/1000 x DATA(2, 1, 0) - ---- x DATA(2, 2, -1) + 1000 + + 27 31 + - 9/250 DATA(-1, -1, 2) - ---- DATA(0, -1, 2) + ---- DATA(2, 2, 1) + 1000 2000 + + + 9/1000 x DATA(-1, 1, -1) + 3/80 y DATA(2, -1, 2) - 1/80 y DATA(0, 2, 0) + + - 1/80 y DATA(-1, 2, 0) - 1/80 y DATA(-1, -1, 0) - 1/80 y DATA(1, -1, 0) + + + 1/80 y DATA(-1, 0, 0) + 1/80 y DATA(-1, 1, 0) - 1/80 y DATA(-1, 1, 1) + + - 1/80 y DATA(-1, 0, 1) + 1/80 y DATA(1, -1, 1) + 1/80 y DATA(-1, -1, 1) + + + 1/80 y DATA(0, -1, 1) + 3/80 y DATA(-1, 0, -1) + 3/80 y DATA(0, 0, -1) + + + 3/80 y DATA(1, 0, -1) + 1/80 y DATA(0, 0, 0) + 1/80 y DATA(1, 0, 0) + + - 1/80 y DATA(2, 0, 1) + 1/80 y DATA(2, 1, 0) + 1/80 y DATA(2, 2, 1) + + - 3/80 y DATA(1, -1, -1) - 1/80 y DATA(2, 2, 0) + 1/80 y DATA(0, 1, 0) + + + 1/80 y DATA(1, 1, 0) - 1/80 y DATA(0, 0, 1) - 1/80 y DATA(0, 1, 1) + + - 1/80 y DATA(1, 1, 1) - 3/80 y DATA(-1, -1, -1) - 3/80 y DATA(0, -1, -1) + + - 3/80 y DATA(1, 2, -1) + 3/80 y DATA(2, 1, -1) - 3/80 y DATA(-1, 2, -1) + + - 3/80 y DATA(0, 2, -1) - 3/80 y DATA(2, 1, 2) + 3/80 y DATA(0, 2, 2) + + - 3/80 y DATA(1, 0, 2) - 3/80 y DATA(2, 0, 2) - 3/80 y DATA(-1, 1, 2) + + - 3/80 y DATA(0, 1, 2) + 3/80 y DATA(1, -1, 2) - 3/80 y DATA(-1, 0, 2) + + - 3/80 y DATA(0, 0, 2) + 3/80 y DATA(-1, -1, 2) + 3/80 y DATA(0, -1, 2) + + + 1/80 z DATA(-1, 1, -1) + 1/80 z DATA(0, 1, -1) + 1/80 z DATA(1, 1, -1) + + + 3/80 z DATA(-1, -1, 0) + 3/80 z DATA(0, -1, 0) + 3/80 z DATA(1, -1, 0) + + + 1/80 z DATA(-1, 0, 0) - 1/80 z DATA(-1, 1, 0) - 1/80 z DATA(-1, 1, 1) + + + 1/80 z DATA(-1, 0, 1) + 3/80 z DATA(1, -1, 1) + 3/80 z DATA(-1, -1, 1) + + + 3/80 z DATA(0, -1, 1) - 1/80 z DATA(-1, 0, -1) - 1/80 z DATA(0, 0, -1) + + - 1/80 z DATA(1, 0, -1) + 1/80 z DATA(0, 0, 0) + 1/80 z DATA(1, 0, 0) + + + 1/80 z DATA(2, 0, 1) - 1/80 z DATA(2, 1, 0) - 3/80 z DATA(2, 2, 1) + + + 3/80 z DATA(2, 2, -1) - 3/80 z DATA(-1, 2, 0) - 3/80 z DATA(0, 2, 0) + + + 3/80 z DATA(2, -1, 0) + 1/80 z DATA(2, 0, 0) + 3/80 z DATA(1, 2, 2) + + + 3/80 z DATA(2, 2, 2) + 1/80 z DATA(1, 1, 2) + 1/80 z DATA(1, 0, 1) + + - 3/80 z DATA(2, -1, -1) - 1/80 z DATA(2, 0, -1) - 1/80 z DATA(2, 1, 1) + + - 3/80 z DATA(-1, 2, 1) - 3/80 z DATA(0, 2, 1) + 3/1000 x DATA(0, 1, -1) + + - 3/1000 x DATA(1, 1, -1) - 9/1000 x DATA(-1, -1, 0) + + - 1/80 y DATA(0, -1, 0) + 3/80 y DATA(-1, 1, -1) + 3/80 y DATA(0, 1, -1) + + + 3/80 y DATA(1, 1, -1) - 1/80 y DATA(2, 1, 1) + 1/80 y DATA(1, 2, 1) + + + 1/80 y DATA(2, -1, 1) - 3/1000 x DATA(0, -1, 0) + + + 3/1000 x DATA(1, -1, 0) - 3/1000 x DATA(-1, 0, 0) + + + 3/1000 x DATA(-1, 1, 0) - 3/1000 x DATA(-1, 1, 1) + + + 3/1000 x DATA(-1, 0, 1) - 3/1000 x DATA(1, -1, 1) + + + 9/1000 x DATA(-1, -1, 1) + 3/1000 x DATA(0, -1, 1) + + - 9/1000 x DATA(-1, 0, -1) - 3/1000 x DATA(0, 0, -1) + + + 3/1000 x DATA(1, 0, -1) - 1/1000 x DATA(0, 0, 0) + + + 1/1000 x DATA(1, 0, 0) + 9/1000 x DATA(2, 2, 1) + + + 9/1000 x DATA(-1, 2, 0) + 3/1000 x DATA(0, 2, 0) + + + 9/1000 x DATA(2, -1, 0) + 3/1000 x DATA(2, 0, 0) + + 27 + + 9/1000 x DATA(1, 2, 2) + ---- x DATA(2, 2, 2) + 3/1000 x DATA(1, 1, 2) + 1000 + + 27 + - 1/1000 x DATA(1, 0, 1) + ---- x DATA(2, -1, -1) + 1000 + + + 9/1000 x DATA(2, 0, -1) + 3/1000 x DATA(2, 1, 1) + + - 9/1000 x DATA(-1, 2, 1) - 3/1000 x DATA(0, 2, 1) + + + 3/1000 x DATA(1, 2, 1) - 9/1000 x DATA(2, -1, 1) + + + 9/1000 x DATA(1, -1, -1) - 3/1000 x DATA(1, 2, 0) + + - 9/1000 x DATA(2, 2, 0) + 1/1000 x DATA(0, 1, 0) - 1/1000 x DATA(1, 1, 0) + + + 1/1000 x DATA(0, 0, 1) - 1/1000 x DATA(0, 1, 1) + 1/1000 x DATA(1, 1, 1) + + 27 + - ---- x DATA(-1, -1, -1) - 9/1000 x DATA(0, -1, -1) + 1000 + + - 9/1000 x DATA(1, 2, -1) - 9/1000 x DATA(2, 1, -1) + + 27 + + ---- x DATA(-1, 2, -1) + 9/1000 x DATA(0, 2, -1) + 1000 + + 27 + + 9/1000 x DATA(2, 1, 2) - ---- x DATA(-1, 2, 2) - 9/1000 x DATA(0, 2, 2) + 1000 + + - 3/1000 x DATA(1, 0, 2) - 9/1000 x DATA(2, 0, 2) + + - 9/1000 x DATA(-1, 1, 2) - 3/1000 x DATA(0, 1, 2) + + - 9/1000 x DATA(1, -1, 2) + 9/1000 x DATA(-1, 0, 2) + + 27 + + 3/1000 x DATA(0, 0, 2) + ---- x DATA(-1, -1, 2) + 1000 + + + 9/1000 x DATA(0, -1, 2) + 1/80 y DATA(-1, 2, 1) - 3/80 z DATA(1, 2, 1) + + + 3/80 z DATA(2, -1, 1) - 3/80 z DATA(1, -1, -1) - 3/80 z DATA(1, 2, 0) + + - 3/80 z DATA(2, 2, 0) - 1/80 z DATA(0, 1, 0) - 1/80 z DATA(1, 1, 0) + + + 1/80 z DATA(0, 0, 1) - 1/80 z DATA(0, 1, 1) - 1/80 z DATA(1, 1, 1) + + - 3/80 z DATA(-1, -1, -1) - 3/80 z DATA(0, -1, -1) + 3/80 z DATA(1, 2, -1) + + + 1/80 z DATA(2, 1, -1) + 3/80 z DATA(-1, 2, -1) + 3/80 z DATA(0, 2, -1) + + + 1/80 z DATA(2, 1, 2) + 3/80 z DATA(0, 2, 2) - 1/80 z DATA(2, 0, 2) + + + 1/80 z DATA(-1, 1, 2) - 3/80 z DATA(1, -1, 2) - 1/80 z DATA(-1, 0, 2) + + - 1/80 z DATA(0, 0, 2) - 3/80 z DATA(-1, -1, 2) - 3/80 z DATA(0, -1, 2) + + - 1/80 y DATA(2, -1, 0) + 1/80 y DATA(2, 0, 0) + 3/80 y DATA(1, 2, 2) + + + 3/80 y DATA(2, 2, 2) - 3/80 y DATA(1, 1, 2) - 1/80 y DATA(1, 0, 1) + + - 3/80 y DATA(2, -1, -1) + 3/80 y DATA(2, 0, -1) + 1/80 z DATA(0, 1, 2) + + - 3/80 z DATA(2, -1, 2) + 3/80 z DATA(-1, 2, 2) - 1/80 z DATA(1, 0, 2) + +> coeff_as_lc_of_data(%, posn_list_3d_size4); +bytes used=546207976, alloc=4783252, time=59.48 +bytes used=547218536, alloc=4783252, time=59.55 +bytes used=548218692, alloc=4783252, time=59.62 +bytes used=549219084, alloc=4783252, time=59.69 +bytes used=550219248, alloc=4783252, time=59.77 + 147 27 +[COEFF(-1, -1, -1) = ---- - 3/80 y - ---- x - 3/80 z, + 2000 1000 + + 129 + COEFF(0, -1, -1) = - 3/80 y - 3/80 z - 9/1000 x + ----, + 2000 + + 111 + COEFF(1, -1, -1) = 9/1000 x + ---- - 3/80 z - 3/80 y, + 2000 + + 93 27 + COEFF(2, -1, -1) = ---- + ---- x - 3/80 z - 3/80 y, + 2000 1000 + + COEFF(-1, 0, -1) = - 1/2000 - 9/1000 x + 3/80 y - 1/80 z, + + COEFF(0, 0, -1) = - 1/80 z - 3/1000 x + 3/80 y - 7/2000, + + 13 + COEFF(1, 0, -1) = - ---- - 1/80 z + 3/1000 x + 3/80 y, + 2000 + + 19 + COEFF(2, 0, -1) = 9/1000 x - ---- + 3/80 y - 1/80 z, + 2000 + + 37 + COEFF(-1, 1, -1) = 3/80 y + 1/80 z + 9/1000 x - ----, + 1000 + + 17 + COEFF(0, 1, -1) = 1/80 z + 3/1000 x + 3/80 y - ---, + 500 + + 31 + COEFF(1, 1, -1) = - 3/1000 x + 3/80 y + 1/80 z - ----, + 1000 + + COEFF(2, 1, -1) = 1/80 z + 3/80 y - 9/1000 x - 7/250, + + 27 + COEFF(-1, 2, -1) = - 3/80 y + ---- x + 3/80 z - 9/250, + 1000 + + 27 + COEFF(0, 2, -1) = - ---- - 3/80 y + 3/80 z + 9/1000 x, + 1000 + + COEFF(1, 2, -1) = - 9/1000 x - 9/500 - 3/80 y + 3/80 z, + + 27 + COEFF(2, 2, -1) = 3/80 z - 3/80 y - ---- x - 9/1000, + 1000 + + COEFF(-1, -1, 0) = - 1/80 y + 3/80 z - 1/2000 - 9/1000 x, + + COEFF(0, -1, 0) = - 7/2000 + 3/80 z - 3/1000 x - 1/80 y, + + 13 + COEFF(1, -1, 0) = - ---- + 3/80 z + 3/1000 x - 1/80 y, + 2000 + + 19 + COEFF(2, -1, 0) = 3/80 z - 1/80 y - ---- + 9/1000 x, + 2000 + + 17 + COEFF(-1, 0, 0) = 1/80 y - 3/1000 x + 1/80 z - ----, + 2000 + + 19 + COEFF(0, 0, 0) = - ---- - 1/1000 x + 1/80 z + 1/80 y, + 2000 + + 21 + COEFF(1, 0, 0) = - ---- + 1/80 y + 1/1000 x + 1/80 z, + 2000 + + 23 + COEFF(2, 0, 0) = 3/1000 x + 1/80 z - ---- + 1/80 y, + 2000 + + COEFF(-1, 1, 0) = 1/80 y - 1/80 z - 1/250 + 3/1000 x, + + COEFF(0, 1, 0) = - 1/80 z + 1/1000 x + 1/80 y - 3/1000, + + COEFF(1, 1, 0) = - 1/80 z + 1/80 y - 1/500 - 1/1000 x, + + COEFF(2, 1, 0) = - 3/1000 x - 1/1000 + 1/80 y - 1/80 z, + + 13 + COEFF(-1, 2, 0) = - 1/80 y + ---- + 9/1000 x - 3/80 z, + 1000 + + COEFF(0, 2, 0) = - 3/80 z - 1/80 y + 3/1000 x + 2/125, + + 19 + COEFF(1, 2, 0) = - 3/80 z - 3/1000 x - 1/80 y + ----, + 1000 + + 11 + COEFF(2, 2, 0) = - 3/80 z + --- - 1/80 y - 9/1000 x, + 500 + + 37 + COEFF(-1, -1, 1) = 9/1000 x - ---- + 1/80 y + 3/80 z, + 1000 + + 17 + COEFF(0, -1, 1) = 1/80 y + 3/80 z + 3/1000 x - ---, + 500 + + 31 + COEFF(1, -1, 1) = - ---- - 3/1000 x + 1/80 y + 3/80 z, + 1000 + + COEFF(2, -1, 1) = - 7/250 + 3/80 z - 9/1000 x + 1/80 y, + + COEFF(-1, 0, 1) = 3/1000 x + 1/80 z - 1/80 y - 1/250, + + COEFF(0, 0, 1) = 1/80 z - 1/80 y - 3/1000 + 1/1000 x, + + COEFF(1, 0, 1) = - 1/1000 x + 1/80 z - 1/80 y - 1/500, + + COEFF(2, 0, 1) = - 3/1000 x - 1/1000 - 1/80 y + 1/80 z, + + 33 + COEFF(-1, 1, 1) = ---- - 1/80 z - 3/1000 x - 1/80 y, + 2000 + + 31 + COEFF(0, 1, 1) = - 1/80 z - 1/1000 x + ---- - 1/80 y, + 2000 + + 29 + COEFF(1, 1, 1) = 1/1000 x - 1/80 y + ---- - 1/80 z, + 2000 + + 27 + COEFF(2, 1, 1) = 3/1000 x - 1/80 y - 1/80 z + ----, + 2000 + + 49 + COEFF(-1, 2, 1) = - 3/80 z - 9/1000 x + 1/80 y + ----, + 2000 + + 43 + COEFF(0, 2, 1) = 1/80 y - 3/1000 x - 3/80 z + ----, + 2000 + + 37 + COEFF(1, 2, 1) = 1/80 y + ---- + 3/1000 x - 3/80 z, + 2000 + + 31 + COEFF(2, 2, 1) = ---- + 9/1000 x - 3/80 z + 1/80 y, + 2000 + + 27 + COEFF(-1, -1, 2) = - 3/80 z - 9/250 + 3/80 y + ---- x, + 1000 + + 27 + COEFF(0, -1, 2) = 9/1000 x - ---- - 3/80 z + 3/80 y, + 1000 + + COEFF(1, -1, 2) = - 3/80 z - 9/500 + 3/80 y - 9/1000 x, + + 27 + COEFF(2, -1, 2) = - 3/80 z - 9/1000 - ---- x + 3/80 y, + 1000 + + 13 + COEFF(-1, 0, 2) = - 3/80 y - 1/80 z + 9/1000 x + ----, + 1000 + + COEFF(0, 0, 2) = 2/125 - 3/80 y + 3/1000 x - 1/80 z, + + 19 + COEFF(1, 0, 2) = ---- - 3/1000 x - 3/80 y - 1/80 z, + 1000 + + 11 + COEFF(2, 0, 2) = - 3/80 y + --- - 1/80 z - 9/1000 x, + 500 + + 49 + COEFF(-1, 1, 2) = - 9/1000 x - 3/80 y + 1/80 z + ----, + 2000 + + 43 + COEFF(0, 1, 2) = 1/80 z - 3/1000 x - 3/80 y + ----, + 2000 + + 37 + COEFF(1, 1, 2) = 3/1000 x - 3/80 y + 1/80 z + ----, + 2000 + + 31 + COEFF(2, 1, 2) = 9/1000 x + ---- - 3/80 y + 1/80 z, + 2000 + + 27 + COEFF(-1, 2, 2) = 3/80 z - ---- x - 3/2000 + 3/80 y, + 1000 + + 21 + COEFF(0, 2, 2) = - 9/1000 x + 3/80 y - ---- + 3/80 z, + 2000 + + 39 + COEFF(1, 2, 2) = - ---- + 9/1000 x + 3/80 y + 3/80 z, + 2000 + + 57 27 + COEFF(2, 2, 2) = 3/80 z - ---- + ---- x + 3/80 y] + 2000 1000 + +> print_coeff__lc_of_data(%, "coeff_dyz_", "fp", +> "3d.coeffs/3d.cube.order3.smooth0/coeff-dyz.compute.c"); +bytes used=551219492, alloc=4783252, time=59.83 +bytes used=552219868, alloc=4783252, time=59.92 +bytes used=553220136, alloc=4783252, time=60.07 +bytes used=554220920, alloc=4783252, time=60.16 +bytes used=555221136, alloc=4783252, time=60.50 +bytes used=556221416, alloc=4783252, time=60.58 +bytes used=557221692, alloc=4783252, time=60.65 +bytes used=558221884, alloc=4783252, time=60.75 +bytes used=559222048, alloc=4783252, time=60.85 +bytes used=560222236, alloc=4783252, time=61.32 +bytes used=561222424, alloc=4783252, time=61.39 +bytes used=562222592, alloc=4783252, time=61.78 +bytes used=563222924, alloc=4783252, time=61.96 +> +# d^2/dz^2 +> simplify( diff(interp_3d_cube_order3_smooth0,z,z) ); +3/40 DATA(-1, 1, -1) + 1/16 DATA(0, 1, -1) + 1/20 DATA(1, 1, -1) + + 13 11 + - -- DATA(-1, -1, 0) - 3/20 DATA(0, -1, 0) - -- DATA(1, -1, 0) + 80 80 + + 11 + - 3/20 DATA(-1, 0, 0) - -- DATA(-1, 1, 0) + 1/20 DATA(-1, 1, 1) + 80 + + + 3/80 DATA(-1, 0, 1) + 1/20 DATA(1, -1, 1) + 1/40 DATA(-1, -1, 1) + + + 3/80 DATA(0, -1, 1) + 7/80 DATA(-1, 0, -1) + 3/40 DATA(0, 0, -1) + + 11 + + 1/16 DATA(1, 0, -1) - -- DATA(0, 0, 0) - 1/8 DATA(1, 0, 0) + 80 + + - 1/8 DATA(0, 1, 0) - 9/80 DATA(1, 1, 0) + 1/20 DATA(0, 0, 1) + + + 1/16 DATA(1, 0, 1) + 1/16 DATA(0, 1, 1) + 3/40 DATA(1, 1, 1) + + - 3/80 y DATA(0, 2, 1) + 3/80 y DATA(-1, 2, 2) + 3/80 y DATA(2, 2, -1) + + - 3/80 y DATA(1, 2, 0) + 1/10 DATA(-1, -1, -1) + 7/80 DATA(0, -1, -1) + + + 3/80 DATA(1, 2, -1) + 3/80 DATA(2, 1, -1) + 1/16 DATA(-1, 2, -1) + + + 1/20 DATA(0, 2, -1) + 1/16 DATA(2, -1, -1) + 1/20 DATA(2, 0, -1) + + + 7/80 DATA(2, 1, 1) + 1/16 DATA(-1, 2, 1) + 3/40 DATA(0, 2, 1) + + + 7/80 DATA(1, 2, 1) + 1/16 DATA(2, -1, 1) + 3/40 DATA(2, 0, 1) + + + 3/40 DATA(1, -1, -1) - 1/10 DATA(1, 2, 0) - 7/80 DATA(2, 2, 0) + + - 1/10 DATA(2, 1, 0) - 1/8 DATA(-1, 2, 0) - 9/80 DATA(0, 2, 0) + + - 1/8 DATA(2, -1, 0) - 9/80 DATA(2, 0, 0) + 1/40 DATA(2, 2, -1) + + - 1/40 DATA(1, 2, 2) - 3/80 DATA(2, 2, 2) - 1/80 DATA(1, 1, 2) + + - 1/40 DATA(2, 1, 2) - 1/80 DATA(0, 2, 2) - 1/80 DATA(2, 0, 2) + + + 1/80 DATA(-1, 1, 2) + 1/80 DATA(1, -1, 2) + 1/40 DATA(-1, 0, 2) + + + 1/80 DATA(0, 0, 2) + 3/80 x DATA(2, -1, 2) - 3/80 x DATA(2, 0, 1) + + - 3/80 x DATA(2, 1, 0) + 3/80 x DATA(2, 2, -1) + 3/80 DATA(-1, -1, 2) + + + 1/40 DATA(0, -1, 2) + 1/10 DATA(2, 2, 1) - 3/80 x DATA(-1, 1, -1) + + - 3/80 y DATA(2, -1, 2) - 3/80 y DATA(0, 2, 0) - 3/80 y DATA(-1, 2, 0) + + + 3/80 y DATA(-1, -1, 0) + 3/80 y DATA(1, -1, 0) + 1/80 y DATA(-1, 0, 0) + + - 1/80 y DATA(-1, 1, 0) - 1/80 y DATA(-1, 1, 1) + 1/80 y DATA(-1, 0, 1) + + + 3/80 y DATA(1, -1, 1) + 3/80 y DATA(-1, -1, 1) + 3/80 y DATA(0, -1, 1) + + - 1/80 y DATA(-1, 0, -1) - 1/80 y DATA(0, 0, -1) - 1/80 y DATA(1, 0, -1) + + + 1/80 y DATA(0, 0, 0) + 1/80 y DATA(1, 0, 0) + 1/80 y DATA(2, 0, 1) + + - 1/80 y DATA(2, 1, 0) - 3/80 y DATA(2, 2, 1) - 3/80 y DATA(1, -1, -1) + + - 3/80 y DATA(2, 2, 0) - 1/80 y DATA(0, 1, 0) - 1/80 y DATA(1, 1, 0) + + + 1/80 y DATA(0, 0, 1) - 1/80 y DATA(0, 1, 1) - 1/80 y DATA(1, 1, 1) + + - 3/80 y DATA(-1, -1, -1) - 3/80 y DATA(0, -1, -1) + 3/80 y DATA(1, 2, -1) + + + 1/80 y DATA(2, 1, -1) + 3/80 y DATA(-1, 2, -1) + 3/80 y DATA(0, 2, -1) + + + 1/80 y DATA(2, 1, 2) + 3/80 y DATA(0, 2, 2) - 1/80 y DATA(1, 0, 2) + + - 1/80 y DATA(2, 0, 2) + 1/80 y DATA(-1, 1, 2) + 1/80 y DATA(0, 1, 2) + + - 3/80 y DATA(1, -1, 2) - 1/80 y DATA(-1, 0, 2) - 1/80 y DATA(0, 0, 2) + + - 3/80 y DATA(-1, -1, 2) - 3/80 y DATA(0, -1, 2) - 1/16 z DATA(-1, 1, -1) + + - 1/16 z DATA(0, 1, -1) - 1/16 z DATA(1, 1, -1) + 3/16 z DATA(-1, -1, 0) + + + 3/16 z DATA(0, -1, 0) + 3/16 z DATA(1, -1, 0) + 3/16 z DATA(-1, 0, 0) + + + 3/16 z DATA(-1, 1, 0) - 3/16 z DATA(-1, 1, 1) - 3/16 z DATA(-1, 0, 1) + + - 3/16 z DATA(1, -1, 1) - 3/16 z DATA(-1, -1, 1) - 3/16 z DATA(0, -1, 1) + + - 1/16 z DATA(-1, 0, -1) - 1/16 z DATA(0, 0, -1) - 1/16 z DATA(1, 0, -1) + + + 3/16 z DATA(0, 0, 0) + 3/16 z DATA(1, 0, 0) - 3/16 z DATA(2, 0, 1) + + + 3/16 z DATA(2, 1, 0) - 3/16 z DATA(2, 2, 1) - 1/16 z DATA(2, 2, -1) + + + 3/16 z DATA(-1, 2, 0) + 3/16 z DATA(0, 2, 0) + 3/16 z DATA(2, -1, 0) + + + 3/16 z DATA(2, 0, 0) + 1/16 z DATA(1, 2, 2) + 1/16 z DATA(2, 2, 2) + + + 1/16 z DATA(1, 1, 2) - 3/16 z DATA(1, 0, 1) - 1/16 z DATA(2, -1, -1) + + - 1/16 z DATA(2, 0, -1) - 3/16 z DATA(2, 1, 1) - 3/16 z DATA(-1, 2, 1) + + - 3/16 z DATA(0, 2, 1) - 1/80 x DATA(0, 1, -1) + 1/80 x DATA(1, 1, -1) + + + 3/80 x DATA(-1, -1, 0) + 3/80 y DATA(0, -1, 0) + 1/80 y DATA(-1, 1, -1) + + + 1/80 y DATA(0, 1, -1) + 1/80 y DATA(1, 1, -1) - 1/80 y DATA(2, 1, 1) + + - 3/80 y DATA(1, 2, 1) + 3/80 y DATA(2, -1, 1) + 1/80 x DATA(0, -1, 0) + + - 1/80 x DATA(1, -1, 0) + 3/80 x DATA(-1, 0, 0) + 3/80 x DATA(-1, 1, 0) + + + 3/80 x DATA(-1, 1, 1) + 3/80 x DATA(-1, 0, 1) - 1/80 x DATA(1, -1, 1) + + + 3/80 x DATA(-1, -1, 1) + 1/80 x DATA(0, -1, 1) - 3/80 x DATA(-1, 0, -1) + + - 1/80 x DATA(0, 0, -1) + 1/80 x DATA(1, 0, -1) + 1/80 x DATA(0, 0, 0) + + - 1/80 x DATA(1, 0, 0) - 3/80 x DATA(2, 2, 1) + 3/80 x DATA(-1, 2, 0) + + + 1/80 x DATA(0, 2, 0) - 3/80 x DATA(2, -1, 0) - 3/80 x DATA(2, 0, 0) + + + 1/80 x DATA(1, 2, 2) + 3/80 x DATA(2, 2, 2) + 1/80 x DATA(1, 1, 2) + + - 1/80 x DATA(1, 0, 1) + 3/80 x DATA(2, -1, -1) + 3/80 x DATA(2, 0, -1) + + - 3/80 x DATA(2, 1, 1) + 3/80 x DATA(-1, 2, 1) + 1/80 x DATA(0, 2, 1) + + - 1/80 x DATA(1, 2, 1) - 3/80 x DATA(2, -1, 1) + 1/80 x DATA(1, -1, -1) + + - 1/80 x DATA(1, 2, 0) - 3/80 x DATA(2, 2, 0) + 1/80 x DATA(0, 1, 0) + + - 1/80 x DATA(1, 1, 0) + 1/80 x DATA(0, 0, 1) + 1/80 x DATA(0, 1, 1) + + - 1/80 x DATA(1, 1, 1) - 3/80 x DATA(-1, -1, -1) - 1/80 x DATA(0, -1, -1) + + + 1/80 x DATA(1, 2, -1) + 3/80 x DATA(2, 1, -1) - 3/80 x DATA(-1, 2, -1) + + - 1/80 x DATA(0, 2, -1) + 3/80 x DATA(2, 1, 2) - 3/80 x DATA(-1, 2, 2) + + - 1/80 x DATA(0, 2, 2) + 1/80 x DATA(1, 0, 2) + 3/80 x DATA(2, 0, 2) + + - 3/80 x DATA(-1, 1, 2) - 1/80 x DATA(0, 1, 2) + 1/80 x DATA(1, -1, 2) + + - 3/80 x DATA(-1, 0, 2) - 1/80 x DATA(0, 0, 2) - 3/80 x DATA(-1, -1, 2) + + - 1/80 x DATA(0, -1, 2) - 3/80 y DATA(-1, 2, 1) - 3/16 z DATA(1, 2, 1) + + - 3/16 z DATA(2, -1, 1) - 1/16 z DATA(1, -1, -1) + 3/16 z DATA(1, 2, 0) + + + 3/16 z DATA(2, 2, 0) + 3/16 z DATA(0, 1, 0) + 3/16 z DATA(1, 1, 0) + + - 3/16 z DATA(0, 0, 1) - 3/16 z DATA(0, 1, 1) - 3/16 z DATA(1, 1, 1) + + - 1/16 z DATA(-1, -1, -1) - 1/16 z DATA(0, -1, -1) - 1/16 z DATA(1, 2, -1) + + - 1/16 z DATA(2, 1, -1) - 1/16 z DATA(-1, 2, -1) - 1/16 z DATA(0, 2, -1) + + + 1/16 z DATA(2, 1, 2) + 1/16 z DATA(0, 2, 2) + 1/16 z DATA(2, 0, 2) + + + 1/16 z DATA(-1, 1, 2) + 1/16 z DATA(1, -1, 2) + 1/16 z DATA(-1, 0, 2) + + + 1/16 z DATA(0, 0, 2) + 1/16 z DATA(-1, -1, 2) + 1/16 z DATA(0, -1, 2) + + + 3/80 y DATA(2, -1, 0) + 1/80 y DATA(2, 0, 0) + 3/80 y DATA(1, 2, 2) + + + 3/80 y DATA(2, 2, 2) + 1/80 y DATA(1, 1, 2) + 1/80 y DATA(1, 0, 1) + + - 3/80 y DATA(2, -1, -1) - 1/80 y DATA(2, 0, -1) + 1/16 z DATA(0, 1, 2) + + + 1/16 z DATA(2, -1, 2) + 1/16 z DATA(-1, 2, 2) + 1/16 z DATA(1, 0, 2) + +> coeff_as_lc_of_data(%, posn_list_3d_size4); +bytes used=564223080, alloc=4783252, time=62.08 +bytes used=565224468, alloc=4783252, time=62.15 +bytes used=566224620, alloc=4783252, time=62.22 +bytes used=567224788, alloc=4783252, time=62.29 +bytes used=568225240, alloc=4783252, time=62.37 +[COEFF(-1, -1, -1) = - 3/80 x + 1/10 - 3/80 y - 1/16 z, + + COEFF(0, -1, -1) = - 1/80 x - 1/16 z + 7/80 - 3/80 y, + + COEFF(1, -1, -1) = 1/80 x - 1/16 z + 3/40 - 3/80 y, + + COEFF(2, -1, -1) = 1/16 + 3/80 x - 3/80 y - 1/16 z, + + COEFF(-1, 0, -1) = - 3/80 x - 1/16 z + 7/80 - 1/80 y, + + COEFF(0, 0, -1) = - 1/80 x + 3/40 - 1/80 y - 1/16 z, + + COEFF(1, 0, -1) = - 1/80 y - 1/16 z + 1/16 + 1/80 x, + + COEFF(2, 0, -1) = - 1/16 z + 3/80 x - 1/80 y + 1/20, + + COEFF(-1, 1, -1) = - 3/80 x - 1/16 z + 1/80 y + 3/40, + + COEFF(0, 1, -1) = - 1/16 z + 1/80 y + 1/16 - 1/80 x, + + COEFF(1, 1, -1) = 1/80 y + 1/80 x + 1/20 - 1/16 z, + + COEFF(2, 1, -1) = 3/80 + 1/80 y + 3/80 x - 1/16 z, + + COEFF(-1, 2, -1) = 3/80 y + 1/16 - 3/80 x - 1/16 z, + + COEFF(0, 2, -1) = - 1/80 x + 1/20 - 1/16 z + 3/80 y, + + COEFF(1, 2, -1) = - 1/16 z + 3/80 y + 1/80 x + 3/80, + + COEFF(2, 2, -1) = 1/40 - 1/16 z + 3/80 y + 3/80 x, + + 13 + COEFF(-1, -1, 0) = - -- + 3/80 x + 3/80 y + 3/16 z, + 80 + + COEFF(0, -1, 0) = 3/80 y + 1/80 x - 3/20 + 3/16 z, + + 11 + COEFF(1, -1, 0) = 3/16 z - -- + 3/80 y - 1/80 x, + 80 + + COEFF(2, -1, 0) = 3/80 y - 3/80 x - 1/8 + 3/16 z, + + COEFF(-1, 0, 0) = - 3/20 + 1/80 y + 3/16 z + 3/80 x, + + 11 + COEFF(0, 0, 0) = 3/16 z + 1/80 y + 1/80 x - --, + 80 + + COEFF(1, 0, 0) = 3/16 z - 1/80 x - 1/8 + 1/80 y, + + COEFF(2, 0, 0) = - 3/80 x + 1/80 y + 3/16 z - 9/80, + + 11 + COEFF(-1, 1, 0) = 3/80 x + 3/16 z - 1/80 y - --, + 80 + + COEFF(0, 1, 0) = 3/16 z - 1/8 + 1/80 x - 1/80 y, + + COEFF(1, 1, 0) = 3/16 z - 9/80 - 1/80 y - 1/80 x, + + COEFF(2, 1, 0) = 3/16 z - 1/10 - 3/80 x - 1/80 y, + + COEFF(-1, 2, 0) = 3/16 z - 1/8 - 3/80 y + 3/80 x, + + COEFF(0, 2, 0) = - 9/80 + 1/80 x - 3/80 y + 3/16 z, + + COEFF(1, 2, 0) = 3/16 z - 1/10 - 3/80 y - 1/80 x, + + COEFF(2, 2, 0) = - 3/80 x + 3/16 z - 7/80 - 3/80 y, + + COEFF(-1, -1, 1) = - 3/16 z + 1/40 + 3/80 x + 3/80 y, + + COEFF(0, -1, 1) = - 3/16 z + 3/80 + 1/80 x + 3/80 y, + + COEFF(1, -1, 1) = 1/20 - 1/80 x + 3/80 y - 3/16 z, + + COEFF(2, -1, 1) = - 3/16 z + 3/80 y - 3/80 x + 1/16, + + COEFF(-1, 0, 1) = 1/80 y - 3/16 z + 3/80 x + 3/80, + + COEFF(0, 0, 1) = 1/80 x - 3/16 z + 1/80 y + 1/20, + + COEFF(1, 0, 1) = 1/16 - 3/16 z - 1/80 x + 1/80 y, + + COEFF(2, 0, 1) = - 3/80 x - 3/16 z + 3/40 + 1/80 y, + + COEFF(-1, 1, 1) = - 1/80 y - 3/16 z + 3/80 x + 1/20, + + COEFF(0, 1, 1) = 1/16 - 3/16 z + 1/80 x - 1/80 y, + + COEFF(1, 1, 1) = - 3/16 z - 1/80 y - 1/80 x + 3/40, + + COEFF(2, 1, 1) = - 3/80 x - 3/16 z - 1/80 y + 7/80, + + COEFF(-1, 2, 1) = 3/80 x + 1/16 - 3/16 z - 3/80 y, + + COEFF(0, 2, 1) = 1/80 x - 3/16 z - 3/80 y + 3/40, + + COEFF(1, 2, 1) = - 3/16 z - 1/80 x - 3/80 y + 7/80, + + COEFF(2, 2, 1) = - 3/80 x - 3/16 z + 1/10 - 3/80 y, + + COEFF(-1, -1, 2) = - 3/80 x + 3/80 - 3/80 y + 1/16 z, + + COEFF(0, -1, 2) = 1/16 z + 1/40 - 1/80 x - 3/80 y, + + COEFF(1, -1, 2) = 1/80 x - 3/80 y + 1/80 + 1/16 z, + + COEFF(2, -1, 2) = - 3/80 y + 3/80 x + 1/16 z, + + COEFF(-1, 0, 2) = 1/16 z - 3/80 x + 1/40 - 1/80 y, + + COEFF(0, 0, 2) = - 1/80 y + 1/16 z - 1/80 x + 1/80, + + COEFF(1, 0, 2) = 1/80 x - 1/80 y + 1/16 z, + + COEFF(2, 0, 2) = 1/16 z + 3/80 x - 1/80 y - 1/80, + + COEFF(-1, 1, 2) = 1/16 z - 3/80 x + 1/80 y + 1/80, + + COEFF(0, 1, 2) = 1/80 y + 1/16 z - 1/80 x, + + COEFF(1, 1, 2) = 1/16 z + 1/80 y - 1/80 + 1/80 x, + + COEFF(2, 1, 2) = 3/80 x + 1/16 z - 1/40 + 1/80 y, + + COEFF(-1, 2, 2) = - 3/80 x + 3/80 y + 1/16 z, + + COEFF(0, 2, 2) = 3/80 y + 1/16 z - 1/80 - 1/80 x, + + COEFF(1, 2, 2) = 3/80 y - 1/40 + 1/16 z + 1/80 x, + + COEFF(2, 2, 2) = 3/80 x + 3/80 y - 3/80 + 1/16 z] + +> print_coeff__lc_of_data(%, "coeff_dzz_", "fp", +> "3d.coeffs/3d.cube.order3.smooth0/coeff-dzz.compute.c"); +bytes used=569225384, alloc=4783252, time=62.45 +bytes used=570225608, alloc=4783252, time=62.53 +bytes used=571225800, alloc=4783252, time=62.68 +bytes used=572226132, alloc=4783252, time=62.76 +bytes used=573226324, alloc=4783252, time=63.08 +bytes used=574226768, alloc=4783252, time=63.15 +bytes used=575226968, alloc=4783252, time=63.22 +bytes used=576229920, alloc=4783252, time=63.31 +bytes used=577230128, alloc=4783252, time=63.41 +bytes used=578230428, alloc=4783252, time=63.79 +bytes used=579230624, alloc=4783252, time=64.02 +bytes used=580230908, alloc=4783252, time=64.36 +> +######################################## +> +# +# 3d, cube, order=4, smoothing=0 (size=5) +# +> +# interpolating polynomial +> interp_3d_cube_order4_smooth0 +> := polynomial_interpolant(fn_3d_order4, coeff_list_3d_order4, +> coord_list_3d, posn_list_3d_size5); +bytes used=581231084, alloc=4783252, time=64.46 +bytes used=582231304, alloc=4783252, time=64.53 +bytes used=583231476, alloc=4783252, time=64.61 +bytes used=584231732, alloc=4783252, time=64.69 +bytes used=585231956, alloc=4783252, time=64.77 +bytes used=586438584, alloc=4783252, time=64.84 +bytes used=587556912, alloc=4783252, time=64.92 +bytes used=588560008, alloc=4783252, time=64.99 +bytes used=589560488, alloc=4783252, time=65.06 +bytes used=590560968, alloc=4783252, time=65.12 +bytes used=591561448, alloc=4783252, time=65.19 +bytes used=592561928, alloc=4783252, time=65.26 +bytes used=593562568, alloc=4783252, time=65.33 +bytes used=594563048, alloc=4783252, time=65.39 +bytes used=595563528, alloc=4783252, time=65.46 +bytes used=596564008, alloc=4783252, time=65.53 +bytes used=597564488, alloc=4783252, time=65.60 +bytes used=598564968, alloc=4783252, time=65.67 +bytes used=599565156, alloc=4783252, time=65.77 +bytes used=600565272, alloc=4783252, time=65.83 +bytes used=601565452, alloc=4783252, time=65.89 +bytes used=602565628, alloc=4783252, time=65.96 +bytes used=603565768, alloc=4783252, time=66.02 +bytes used=604565904, alloc=4783252, time=66.09 +bytes used=605566056, alloc=4783252, time=66.15 +bytes used=606566212, alloc=4783252, time=66.22 +bytes used=607566328, alloc=4783252, time=66.28 +bytes used=608566472, alloc=4783252, time=66.35 +bytes used=609566704, alloc=4783252, time=66.41 +bytes used=610566872, alloc=4783252, time=66.48 +bytes used=611567068, alloc=4783252, time=66.54 +bytes used=612567272, alloc=4783252, time=66.61 +bytes used=613577628, alloc=4783252, time=66.67 +bytes used=614577776, alloc=4783252, time=66.74 +bytes used=615578148, alloc=4783252, time=66.81 +bytes used=616586456, alloc=4783252, time=66.88 +bytes used=617588560, alloc=4783252, time=66.96 +bytes used=618596448, alloc=4783252, time=67.03 +bytes used=619605268, alloc=4783252, time=67.10 +bytes used=620605448, alloc=4783252, time=67.17 +bytes used=621606684, alloc=4783252, time=67.24 +bytes used=622606864, alloc=4783252, time=67.31 +bytes used=623607064, alloc=4783252, time=67.38 +bytes used=624607276, alloc=4783252, time=67.44 +bytes used=625607580, alloc=4783252, time=67.51 +bytes used=626607792, alloc=4783252, time=67.58 +bytes used=627607940, alloc=4783252, time=67.64 +bytes used=628608144, alloc=4783252, time=67.72 +bytes used=629613872, alloc=4783252, time=67.79 +bytes used=630613992, alloc=4783252, time=67.86 +bytes used=631618724, alloc=4783252, time=67.94 +bytes used=632618920, alloc=4783252, time=68.01 +bytes used=633620616, alloc=4783252, time=68.08 +bytes used=634620772, alloc=4783252, time=68.16 +bytes used=635623912, alloc=4783252, time=68.23 +bytes used=636624204, alloc=4783252, time=68.30 +bytes used=637624440, alloc=4783252, time=68.38 +bytes used=638627952, alloc=4783252, time=68.45 +bytes used=639628136, alloc=4783252, time=68.52 +bytes used=640637360, alloc=4783252, time=68.59 +bytes used=641640964, alloc=4783252, time=68.66 +bytes used=642643240, alloc=4783252, time=68.73 +bytes used=643643360, alloc=4783252, time=68.81 +bytes used=644648140, alloc=4783252, time=68.88 +bytes used=645649632, alloc=4783252, time=68.95 +bytes used=646649832, alloc=4783252, time=69.02 +bytes used=647650988, alloc=4783252, time=69.10 +bytes used=648664876, alloc=4783252, time=69.17 +bytes used=649665056, alloc=4783252, time=69.24 +bytes used=650665232, alloc=4783252, time=69.31 +bytes used=651666372, alloc=4783252, time=69.39 +bytes used=652667628, alloc=4783252, time=69.46 +bytes used=653668688, alloc=4783252, time=69.53 +bytes used=654671680, alloc=4783252, time=69.60 +bytes used=655671888, alloc=4783252, time=69.67 +bytes used=656672024, alloc=4783252, time=69.75 +bytes used=657679984, alloc=4783252, time=69.82 +bytes used=658680180, alloc=4783252, time=69.89 +bytes used=659680364, alloc=4783252, time=69.96 +bytes used=660688888, alloc=4783252, time=70.03 +bytes used=661694576, alloc=4783252, time=70.10 +bytes used=662694760, alloc=4783252, time=70.18 +bytes used=663698152, alloc=4783252, time=70.25 +bytes used=664704452, alloc=4783252, time=70.32 +bytes used=665707184, alloc=4783252, time=70.39 +bytes used=666709320, alloc=4783252, time=70.46 +bytes used=667709460, alloc=4783252, time=70.54 +bytes used=668709672, alloc=4783252, time=70.61 +bytes used=669709844, alloc=4783252, time=70.68 +bytes used=670711976, alloc=4783252, time=70.76 +bytes used=671712124, alloc=4783252, time=70.83 +bytes used=672712276, alloc=4783252, time=70.90 +bytes used=673721464, alloc=4783252, time=70.97 +bytes used=674731500, alloc=4783252, time=71.04 +bytes used=675731640, alloc=4783252, time=71.11 +bytes used=676737452, alloc=4783252, time=71.18 +bytes used=677737632, alloc=4783252, time=71.26 +bytes used=678737804, alloc=4783252, time=71.34 +bytes used=679748600, alloc=4783252, time=71.41 +bytes used=680748728, alloc=4783252, time=71.47 +bytes used=681748936, alloc=4783252, time=71.55 +bytes used=682756776, alloc=4783252, time=71.63 +bytes used=683758744, alloc=4783252, time=71.70 +bytes used=684770412, alloc=4783252, time=71.77 +bytes used=685770552, alloc=4783252, time=71.84 +bytes used=686770736, alloc=4783252, time=71.91 +bytes used=687782292, alloc=4783252, time=71.98 +bytes used=688782436, alloc=4783252, time=72.06 +bytes used=689783336, alloc=4783252, time=72.13 +bytes used=690787012, alloc=4783252, time=72.19 + 23 272 +interp_3d_cube_order4_smooth0 := - ---- DATA(-1, 1, -1) + ---- DATA(0, 1, -1) + 6125 6125 + + 23 272 + - ---- DATA(1, 1, -1) + ---- DATA(-1, -1, 0) + (1/1000 DATA(-1, 1, -1) + 6125 6125 + + - 1/1000 DATA(1, 1, -1) - 1/1000 DATA(-1, 1, 1) - 1/1000 DATA(1, -1, 1) + + + 1/1000 DATA(-1, -1, 1) + 1/250 DATA(-1, -2, 2) - 1/250 DATA(1, -2, 2) + + + 1/250 DATA(-2, -1, 2) - 1/125 DATA(2, -2, 2) - 1/250 DATA(-2, 1, 2) + + + 1/1000 DATA(1, 1, 1) - 1/125 DATA(-2, 2, 2) - 1/1000 DATA(-1, -1, -1) + + - 1/500 DATA(1, 2, -1) - 1/500 DATA(2, 1, -1) + 1/500 DATA(-1, 2, -1) + + + 1/500 DATA(2, -1, -1) + 1/500 DATA(2, 1, 1) - 1/500 DATA(-1, 2, 1) + + + 1/500 DATA(1, 2, 1) - 1/500 DATA(2, -1, 1) + 1/1000 DATA(1, -1, -1) + + - 1/250 DATA(2, 2, -1) + 1/250 DATA(1, 2, 2) - 1/250 DATA(-2, -1, -2) + + + 1/125 DATA(2, 2, 2) + 1/125 DATA(2, -2, -2) + 1/250 DATA(1, -2, -2) + + + 1/500 DATA(1, 1, 2) + 1/250 DATA(2, 1, 2) - 1/250 DATA(-1, 2, 2) + + - 1/250 DATA(-1, -2, -2) - 1/500 DATA(-1, 1, 2) - 1/125 DATA(-2, -2, -2) + + - 1/500 DATA(1, -1, 2) - 1/250 DATA(2, -1, 2) + 1/500 DATA(-1, -1, 2) + + + 1/250 DATA(2, 2, 1) + 1/125 DATA(-2, 2, -2) - 1/250 DATA(2, 1, -2) + + - 1/500 DATA(1, 1, -2) + 1/500 DATA(-1, 1, -2) + 1/250 DATA(-2, 1, -2) + + + 1/250 DATA(2, -1, -2) + 1/500 DATA(1, -1, -2) - 1/500 DATA(-1, -1, -2) + + + 1/250 DATA(2, -2, -1) + 1/500 DATA(1, -2, -1) - 1/500 DATA(-1, -2, -1) + + - 1/250 DATA(-2, -2, -1) - 1/125 DATA(2, 2, -2) - 1/250 DATA(1, 2, -2) + + + 1/250 DATA(-1, 2, -2) + 1/500 DATA(-2, 1, -1) - 1/500 DATA(-2, -1, -1) + + + 1/250 DATA(-2, 2, -1) + 1/250 DATA(-2, -2, 1) + 1/500 DATA(-1, -2, 1) + + - 1/500 DATA(1, -2, 1) - 1/250 DATA(2, -2, 1) + 1/500 DATA(-2, -1, 1) + + - 1/500 DATA(-2, 1, 1) - 1/250 DATA(-2, 2, 1) + 1/125 DATA(-2, -2, 2)) x y + + 592 272 592 + z + ---- DATA(0, -1, 0) + ---- DATA(1, -1, 0) + ---- DATA(-1, 0, 0) + 6125 6125 6125 + + 272 + + ---- DATA(-1, 1, 0) + (- 1/1400 DATA(-1, 1, -1) + 1/1400 DATA(1, 1, -1) + 6125 + + + 1/1400 DATA(-1, 1, 1) + 1/700 DATA(-1, 0, 1) - 1/1400 DATA(1, -1, 1) + + + 1/1400 DATA(-1, -1, 1) - 1/350 DATA(-1, -2, 2) - 1/700 DATA(-1, 0, -1) + + + 1/700 DATA(1, 0, -1) + 1/350 DATA(1, -2, 2) + 1/350 DATA(-2, -1, 2) + + + 1/175 DATA(2, -2, 2) + 1/175 DATA(-2, 0, 2) + 1/350 DATA(-2, 1, 2) + + - 1/700 DATA(1, 0, 1) - 1/1400 DATA(1, 1, 1) - 1/175 DATA(-2, 2, 2) + + - 1/1400 DATA(-1, -1, -1) - 1/700 DATA(1, 2, -1) + 1/700 DATA(2, 1, -1) + + + 1/700 DATA(-1, 2, -1) + 1/700 DATA(2, -1, -1) + 1/350 DATA(2, 0, -1) + + - 1/700 DATA(2, 1, 1) - 1/700 DATA(-1, 2, 1) + 1/700 DATA(1, 2, 1) + + - 1/700 DATA(2, -1, 1) - 1/350 DATA(2, 0, 1) + 1/1400 DATA(1, -1, -1) + + - 1/350 DATA(2, 2, -1) + 1/350 DATA(1, 2, 2) - 1/350 DATA(-2, -1, -2) + + + 1/175 DATA(2, 2, 2) - 1/175 DATA(2, -2, -2) - 1/350 DATA(1, -2, -2) + + - 1/700 DATA(1, 1, 2) - 1/350 DATA(2, 1, 2) - 1/350 DATA(-1, 2, 2) + + + 1/350 DATA(-1, -2, -2) - 1/350 DATA(1, 0, 2) - 1/175 DATA(2, 0, 2) + + + 1/700 DATA(-1, 1, 2) + 1/175 DATA(-2, -2, -2) - 1/700 DATA(1, -1, 2) + + - 1/350 DATA(2, -1, 2) + 1/350 DATA(-1, 0, 2) + 1/700 DATA(-1, -1, 2) + + + 1/350 DATA(2, 2, 1) + 1/175 DATA(-2, 2, -2) + 1/350 DATA(2, 1, -2) + + + 1/700 DATA(1, 1, -2) - 1/700 DATA(-1, 1, -2) - 1/350 DATA(-2, 1, -2) + + + 1/175 DATA(2, 0, -2) + 1/350 DATA(1, 0, -2) - 1/350 DATA(-1, 0, -2) + + - 1/175 DATA(-2, 0, -2) + 1/350 DATA(2, -1, -2) + 1/700 DATA(1, -1, -2) + + - 1/700 DATA(-1, -1, -2) - 1/350 DATA(2, -2, -1) - 1/700 DATA(1, -2, -1) + + + 1/700 DATA(-1, -2, -1) + 1/350 DATA(-2, -2, -1) - 1/175 DATA(2, 2, -2) + + - 1/350 DATA(1, 2, -2) + 1/350 DATA(-1, 2, -2) - 1/700 DATA(-2, 1, -1) + + - 1/350 DATA(-2, 0, -1) - 1/700 DATA(-2, -1, -1) + 1/350 DATA(-2, 2, -1) + + - 1/350 DATA(-2, -2, 1) - 1/700 DATA(-1, -2, 1) + 1/700 DATA(1, -2, 1) + + + 1/350 DATA(2, -2, 1) + 1/700 DATA(-2, -1, 1) + 1/350 DATA(-2, 0, 1) + + + 1/700 DATA(-2, 1, 1) - 1/350 DATA(-2, 2, 1) - 1/175 DATA(-2, -2, 2)) x + + 2 23 272 23 + y z - ---- DATA(-1, 1, 1) + ---- DATA(-1, 0, 1) - ---- DATA(1, -1, 1) + 6125 6125 6125 + + 23 272 + - ---- DATA(-1, -1, 1) + ---- DATA(0, -1, 1) + (- 1/700 DATA(-1, 1, -1) + 6125 6125 + + - 1/700 DATA(0, 1, -1) - 1/700 DATA(1, 1, -1) + 1/350 DATA(-1, -1, 0) + + + 1/350 DATA(0, -1, 0) + 1/350 DATA(1, -1, 0) - 1/350 DATA(-1, 1, 0) + + - 1/700 DATA(-1, 1, 1) + 1/700 DATA(1, -1, 1) + 1/700 DATA(-1, -1, 1) + + + 1/700 DATA(0, -1, 1) - 1/175 DATA(-1, -2, 2) - 1/175 DATA(0, -2, 2) + + - 1/350 DATA(0, 1, 0) - 1/350 DATA(1, 1, 0) - 1/175 DATA(1, -2, 2) + + - 1/350 DATA(-2, -1, 2) - 1/175 DATA(2, -2, 2) + 1/350 DATA(-2, 1, 2) + + - 1/700 DATA(0, 1, 1) - 1/700 DATA(1, 1, 1) + 1/175 DATA(-2, 2, 2) + + + 1/700 DATA(-1, -1, -1) + 1/700 DATA(0, -1, -1) - 1/350 DATA(1, 2, -1) + + - 1/700 DATA(2, 1, -1) - 1/350 DATA(-1, 2, -1) - 1/350 DATA(0, 2, -1) + + + 1/700 DATA(2, -1, -1) - 1/700 DATA(2, 1, 1) - 1/350 DATA(-1, 2, 1) + + - 1/350 DATA(0, 2, 1) - 1/350 DATA(1, 2, 1) + 1/700 DATA(2, -1, 1) + + + 1/700 DATA(1, -1, -1) - 1/175 DATA(1, 2, 0) - 1/175 DATA(2, 2, 0) + + - 1/350 DATA(2, 1, 0) - 1/175 DATA(-1, 2, 0) - 1/175 DATA(0, 2, 0) + + + 1/350 DATA(2, -1, 0) - 1/350 DATA(2, 2, -1) + 1/175 DATA(1, 2, 2) + + - 1/350 DATA(-2, -1, -2) + 1/175 DATA(2, 2, 2) - 1/175 DATA(2, -2, -2) + + - 1/175 DATA(1, -2, -2) + 1/350 DATA(1, 1, 2) + 1/350 DATA(2, 1, 2) + + + 1/175 DATA(-1, 2, 2) + 1/175 DATA(0, 2, 2) - 1/175 DATA(0, -2, -2) + + - 1/175 DATA(-1, -2, -2) + 1/350 DATA(-1, 1, 2) + 1/350 DATA(0, 1, 2) + + - 1/175 DATA(-2, -2, -2) - 1/350 DATA(1, -1, 2) - 1/350 DATA(2, -1, 2) + + - 1/350 DATA(-1, -1, 2) - 1/350 DATA(0, -1, 2) - 1/350 DATA(2, 2, 1) + + + 1/175 DATA(-2, 2, -2) + 1/350 DATA(2, 1, -2) + 1/350 DATA(1, 1, -2) + + + 1/350 DATA(0, 1, -2) + 1/350 DATA(-1, 1, -2) + 1/350 DATA(-2, 1, -2) + + - 1/350 DATA(2, -1, -2) - 1/350 DATA(1, -1, -2) - 1/350 DATA(0, -1, -2) + + - 1/350 DATA(-1, -1, -2) + 1/350 DATA(2, -2, -1) + 1/350 DATA(1, -2, -1) + + + 1/350 DATA(0, -2, -1) + 1/350 DATA(-1, -2, -1) + 1/350 DATA(-2, -2, -1) + + + 1/175 DATA(2, 2, -2) + 1/175 DATA(1, 2, -2) + 1/175 DATA(0, 2, -2) + + + 1/175 DATA(-1, 2, -2) - 1/700 DATA(-2, 1, -1) + 1/700 DATA(-2, -1, -1) + + - 1/350 DATA(-2, 2, -1) + 1/175 DATA(0, -2, 0) + 1/175 DATA(-1, -2, 0) + + + 1/175 DATA(-2, -2, 0) + 1/350 DATA(-2, -1, 0) + 1/175 DATA(2, -2, 0) + + + 1/175 DATA(1, -2, 0) - 1/350 DATA(-2, 1, 0) - 1/175 DATA(-2, 2, 0) + + + 1/350 DATA(-2, -2, 1) + 1/350 DATA(-1, -2, 1) + 1/350 DATA(1, -2, 1) + + + 1/350 DATA(0, -2, 1) + 1/350 DATA(2, -2, 1) + 1/700 DATA(-2, -1, 1) + + - 1/700 DATA(-2, 1, 1) - 1/350 DATA(-2, 2, 1) - 1/175 DATA(-2, -2, 2)) y + + 2 + z + (1/700 DATA(-1, 1, -1) - 1/700 DATA(1, 1, -1) + 1/350 DATA(-1, -1, 0) + + - 1/350 DATA(1, -1, 0) + 1/350 DATA(-1, 0, 0) + 1/350 DATA(-1, 1, 0) + + + 1/700 DATA(-1, 1, 1) + 1/700 DATA(-1, 0, 1) - 1/700 DATA(1, -1, 1) + + + 1/700 DATA(-1, -1, 1) - 1/350 DATA(-1, -2, 2) + 1/700 DATA(-1, 0, -1) + + - 1/700 DATA(1, 0, -1) - 1/350 DATA(1, 0, 0) - 1/350 DATA(1, 1, 0) + + + 1/350 DATA(1, -2, 2) - 1/175 DATA(-2, -1, 2) + 1/175 DATA(2, -2, 2) + + - 1/175 DATA(-2, 0, 2) - 1/175 DATA(-2, 1, 2) - 1/700 DATA(1, 0, 1) + + - 1/700 DATA(1, 1, 1) - 1/175 DATA(-2, 2, 2) + 1/700 DATA(-1, -1, -1) + + - 1/700 DATA(1, 2, -1) - 1/350 DATA(2, 1, -1) + 1/700 DATA(-1, 2, -1) + + - 1/350 DATA(2, -1, -1) - 1/350 DATA(2, 0, -1) - 1/350 DATA(2, 1, 1) + + + 1/700 DATA(-1, 2, 1) - 1/700 DATA(1, 2, 1) - 1/350 DATA(2, -1, 1) + + - 1/350 DATA(2, 0, 1) - 1/700 DATA(1, -1, -1) - 1/350 DATA(1, 2, 0) + + - 1/175 DATA(2, 2, 0) - 1/175 DATA(2, 1, 0) + 1/350 DATA(-1, 2, 0) + + - 1/175 DATA(2, -1, 0) - 1/175 DATA(2, 0, 0) - 1/350 DATA(2, 2, -1) + + + 1/350 DATA(1, 2, 2) - 1/175 DATA(-2, -1, -2) + 1/175 DATA(2, 2, 2) + + + 1/175 DATA(2, -2, -2) + 1/350 DATA(1, -2, -2) + 1/350 DATA(1, 1, 2) + + + 1/175 DATA(2, 1, 2) - 1/350 DATA(-1, 2, 2) - 1/350 DATA(-1, -2, -2) + + + 1/350 DATA(1, 0, 2) + 1/175 DATA(2, 0, 2) - 1/350 DATA(-1, 1, 2) + + - 1/175 DATA(-2, -2, -2) + 1/350 DATA(1, -1, 2) + 1/175 DATA(2, -1, 2) + + - 1/350 DATA(-1, 0, 2) - 1/350 DATA(-1, -1, 2) - 1/350 DATA(2, 2, 1) + + - 1/175 DATA(-2, 2, -2) + 1/175 DATA(2, 1, -2) + 1/350 DATA(1, 1, -2) + + - 1/350 DATA(-1, 1, -2) - 1/175 DATA(-2, 1, -2) + 1/175 DATA(2, 0, -2) + + + 1/350 DATA(1, 0, -2) - 1/350 DATA(-1, 0, -2) - 1/175 DATA(-2, 0, -2) + + + 1/175 DATA(2, -1, -2) + 1/350 DATA(1, -1, -2) - 1/350 DATA(-1, -1, -2) + + - 1/350 DATA(2, -2, -1) - 1/700 DATA(1, -2, -1) + 1/700 DATA(-1, -2, -1) + + + 1/350 DATA(-2, -2, -1) + 1/175 DATA(2, 2, -2) + 1/350 DATA(1, 2, -2) + + - 1/350 DATA(-1, 2, -2) + 1/350 DATA(-2, 1, -1) + 1/350 DATA(-2, 0, -1) + + + 1/350 DATA(-2, -1, -1) + 1/350 DATA(-2, 2, -1) + 1/350 DATA(-1, -2, 0) + + + 1/175 DATA(-2, -2, 0) + 1/175 DATA(-2, 0, 0) + 1/175 DATA(-2, -1, 0) + + - 1/175 DATA(2, -2, 0) - 1/350 DATA(1, -2, 0) + 1/175 DATA(-2, 1, 0) + + + 1/175 DATA(-2, 2, 0) + 1/350 DATA(-2, -2, 1) + 1/700 DATA(-1, -2, 1) + + - 1/700 DATA(1, -2, 1) - 1/350 DATA(2, -2, 1) + 1/350 DATA(-2, -1, 1) + + + 1/350 DATA(-2, 0, 1) + 1/350 DATA(-2, 1, 1) + 1/350 DATA(-2, 2, 1) + + 2 / 137 + - 1/175 DATA(-2, -2, 2)) x z + |- ---- DATA(-1, 1, -1) + \ 5250 + + 137 289 289 + + ---- DATA(1, 1, -1) + ----- DATA(-1, -1, 0) - ----- DATA(1, -1, 0) + 5250 10500 10500 + + 289 137 137 + - ----- DATA(-1, 1, 0) - ---- DATA(-1, 1, 1) - ---- DATA(1, -1, 1) + 10500 5250 5250 + + 137 107 289 + + ---- DATA(-1, -1, 1) + ---- DATA(-1, -2, 2) + ----- DATA(1, 1, 0) + 5250 7000 10500 + + 107 107 137 + - ---- DATA(1, -2, 2) + ---- DATA(-2, -1, 2) + ---- DATA(2, -2, 2) + 7000 7000 5250 + + 107 137 137 + - ---- DATA(-2, 1, 2) + ---- DATA(1, 1, 1) + ---- DATA(-2, 2, 2) + 7000 5250 5250 + + 137 167 167 + + ---- DATA(-1, -1, -1) + ---- DATA(1, 2, -1) + ---- DATA(2, 1, -1) + 5250 7000 7000 + + 167 167 167 + - ---- DATA(-1, 2, -1) - ---- DATA(2, -1, -1) + ---- DATA(2, 1, 1) + 7000 7000 7000 + + 167 167 167 + - ---- DATA(-1, 2, 1) + ---- DATA(1, 2, 1) - ---- DATA(2, -1, 1) + 7000 7000 7000 + + 137 187 17 + - ---- DATA(1, -1, -1) + ---- DATA(1, 2, 0) - ---- DATA(2, 2, 0) + 5250 7000 5250 + + 187 187 187 + + ---- DATA(2, 1, 0) - ---- DATA(-1, 2, 0) - ---- DATA(2, -1, 0) + 7000 7000 7000 + + 47 107 107 + - ---- DATA(2, 2, -1) + ---- DATA(1, 2, 2) + ---- DATA(-2, -1, -2) + 5250 7000 7000 + + 137 137 107 + - ---- DATA(2, 2, 2) + ---- DATA(2, -2, -2) - ---- DATA(1, -2, -2) + 5250 5250 7000 + + 229 107 107 + + ----- DATA(1, 1, 2) + ---- DATA(2, 1, 2) - ---- DATA(-1, 2, 2) + 10500 7000 7000 + + 107 229 137 + + ---- DATA(-1, -2, -2) - ----- DATA(-1, 1, 2) - ---- DATA(-2, -2, -2) + 7000 10500 5250 + + 229 107 229 + - ----- DATA(1, -1, 2) - ---- DATA(2, -1, 2) + ----- DATA(-1, -1, 2) + 10500 7000 10500 + + 47 137 107 + - ---- DATA(2, 2, 1) + ---- DATA(-2, 2, -2) + ---- DATA(2, 1, -2) + 5250 5250 7000 + + 229 229 107 + + ----- DATA(1, 1, -2) - ----- DATA(-1, 1, -2) - ---- DATA(-2, 1, -2) + 10500 10500 7000 + + 107 229 229 + - ---- DATA(2, -1, -2) - ----- DATA(1, -1, -2) + ----- DATA(-1, -1, -2) + 7000 10500 10500 + + 47 167 167 + + ---- DATA(2, -2, -1) - ---- DATA(1, -2, -1) + ---- DATA(-1, -2, -1) + 5250 7000 7000 + + 47 137 107 + - ---- DATA(-2, -2, -1) - ---- DATA(2, 2, -2) + ---- DATA(1, 2, -2) + 5250 5250 7000 + + 107 167 167 + - ---- DATA(-1, 2, -2) - ---- DATA(-2, 1, -1) + ---- DATA(-2, -1, -1) + 7000 7000 7000 + + 47 187 17 + + ---- DATA(-2, 2, -1) + ---- DATA(-1, -2, 0) - ---- DATA(-2, -2, 0) + 5250 7000 5250 + + 187 17 187 + + ---- DATA(-2, -1, 0) + ---- DATA(2, -2, 0) - ---- DATA(1, -2, 0) + 7000 5250 7000 + + 187 17 47 + - ---- DATA(-2, 1, 0) + ---- DATA(-2, 2, 0) - ---- DATA(-2, -2, 1) + 7000 5250 5250 + + 167 167 47 + + ---- DATA(-1, -2, 1) - ---- DATA(1, -2, 1) + ---- DATA(2, -2, 1) + 7000 7000 5250 + + 167 167 47 + + ---- DATA(-2, -1, 1) - ---- DATA(-2, 1, 1) + ---- DATA(-2, 2, 1) + 7000 7000 5250 + + 137 \ / 137 + - ---- DATA(-2, -2, 2)| x y + |- ---- DATA(-1, 1, -1) + 5250 / \ 5250 + + 289 137 137 + - ----- DATA(0, 1, -1) - ---- DATA(1, 1, -1) + ---- DATA(-1, 1, 1) + 10500 5250 5250 + + 137 137 289 + - ---- DATA(1, -1, 1) - ---- DATA(-1, -1, 1) - ----- DATA(0, -1, 1) + 5250 5250 10500 + + 47 17 47 + + ---- DATA(-1, -2, 2) + ---- DATA(0, -2, 2) + ---- DATA(1, -2, 2) + 5250 5250 5250 + + 107 137 107 + - ---- DATA(-2, -1, 2) + ---- DATA(2, -2, 2) + ---- DATA(-2, 1, 2) + 7000 5250 7000 + + 289 137 137 + + ----- DATA(0, 1, 1) + ---- DATA(1, 1, 1) - ---- DATA(-2, 2, 2) + 10500 5250 5250 + + 137 289 167 + + ---- DATA(-1, -1, -1) + ----- DATA(0, -1, -1) - ---- DATA(1, 2, -1) + 5250 10500 7000 + + 229 167 187 + - ----- DATA(2, 1, -1) - ---- DATA(-1, 2, -1) - ---- DATA(0, 2, -1) + 10500 7000 7000 + + 229 229 167 + + ----- DATA(2, -1, -1) + ----- DATA(2, 1, 1) + ---- DATA(-1, 2, 1) + 10500 10500 7000 + + 187 167 229 + + ---- DATA(0, 2, 1) + ---- DATA(1, 2, 1) - ----- DATA(2, -1, 1) + 7000 7000 10500 + + 137 107 47 + + ---- DATA(1, -1, -1) - ---- DATA(2, 2, -1) - ---- DATA(1, 2, 2) + 5250 7000 5250 + + 107 137 137 + + ---- DATA(-2, -1, -2) - ---- DATA(2, 2, 2) - ---- DATA(2, -2, -2) + 7000 5250 5250 + + 47 167 107 + - ---- DATA(1, -2, -2) + ---- DATA(1, 1, 2) + ---- DATA(2, 1, 2) + 5250 7000 7000 + + 47 17 17 + - ---- DATA(-1, 2, 2) - ---- DATA(0, 2, 2) - ---- DATA(0, -2, -2) + 5250 5250 5250 + + 47 167 187 + - ---- DATA(-1, -2, -2) + ---- DATA(-1, 1, 2) + ---- DATA(0, 1, 2) + 5250 7000 7000 + + 137 167 107 + - ---- DATA(-2, -2, -2) - ---- DATA(1, -1, 2) - ---- DATA(2, -1, 2) + 5250 7000 7000 + + 167 187 107 + - ---- DATA(-1, -1, 2) - ---- DATA(0, -1, 2) + ---- DATA(2, 2, 1) + 7000 7000 7000 + + 137 107 167 + + ---- DATA(-2, 2, -2) - ---- DATA(2, 1, -2) - ---- DATA(1, 1, -2) + 5250 7000 7000 + + 187 167 107 + - ---- DATA(0, 1, -2) - ---- DATA(-1, 1, -2) - ---- DATA(-2, 1, -2) + 7000 7000 7000 + + 107 167 187 + + ---- DATA(2, -1, -2) + ---- DATA(1, -1, -2) + ---- DATA(0, -1, -2) + 7000 7000 7000 + + 167 107 167 + + ---- DATA(-1, -1, -2) + ---- DATA(2, -2, -1) + ---- DATA(1, -2, -1) + 7000 7000 7000 + + 187 167 107 + + ---- DATA(0, -2, -1) + ---- DATA(-1, -2, -1) + ---- DATA(-2, -2, -1) + 7000 7000 7000 + + 137 47 17 + + ---- DATA(2, 2, -2) + ---- DATA(1, 2, -2) + ---- DATA(0, 2, -2) + 5250 5250 5250 + + 47 229 229 + + ---- DATA(-1, 2, -2) - ----- DATA(-2, 1, -1) + ----- DATA(-2, -1, -1) + 5250 10500 10500 + + 107 107 167 + - ---- DATA(-2, 2, -1) - ---- DATA(-2, -2, 1) - ---- DATA(-1, -2, 1) + 7000 7000 7000 + + 167 187 107 + - ---- DATA(1, -2, 1) - ---- DATA(0, -2, 1) - ---- DATA(2, -2, 1) + 7000 7000 7000 + + 229 229 107 + - ----- DATA(-2, -1, 1) + ----- DATA(-2, 1, 1) + ---- DATA(-2, 2, 1) + 10500 10500 7000 + + 137 \ /137 137 + + ---- DATA(-2, -2, 2)| y z + |---- DATA(-1, 1, -1) - ---- DATA(1, 1, -1) + 5250 / \5250 5250 + + 137 289 137 + - ---- DATA(-1, 1, 1) - ----- DATA(-1, 0, 1) + ---- DATA(1, -1, 1) + 5250 10500 5250 + + 137 107 289 + - ---- DATA(-1, -1, 1) - ---- DATA(-1, -2, 2) + ----- DATA(-1, 0, -1) + 5250 7000 10500 + + 289 107 47 + - ----- DATA(1, 0, -1) + ---- DATA(1, -2, 2) + ---- DATA(-2, -1, 2) + 10500 7000 5250 + + 137 17 47 + - ---- DATA(2, -2, 2) + ---- DATA(-2, 0, 2) + ---- DATA(-2, 1, 2) + 5250 5250 5250 + + 289 137 137 + + ----- DATA(1, 0, 1) + ---- DATA(1, 1, 1) + ---- DATA(-2, 2, 2) + 10500 5250 5250 + + 137 229 167 + + ---- DATA(-1, -1, -1) - ----- DATA(1, 2, -1) - ---- DATA(2, 1, -1) + 5250 10500 7000 + + 229 167 187 + + ----- DATA(-1, 2, -1) - ---- DATA(2, -1, -1) - ---- DATA(2, 0, -1) + 10500 7000 7000 + + 167 229 229 + + ---- DATA(2, 1, 1) - ----- DATA(-1, 2, 1) + ----- DATA(1, 2, 1) + 7000 10500 10500 + + 167 187 137 + + ---- DATA(2, -1, 1) + ---- DATA(2, 0, 1) - ---- DATA(1, -1, -1) + 7000 7000 5250 + + 107 107 47 + - ---- DATA(2, 2, -1) + ---- DATA(1, 2, 2) - ---- DATA(-2, -1, -2) + 7000 7000 5250 + + 137 137 107 + - ---- DATA(2, 2, 2) + ---- DATA(2, -2, -2) - ---- DATA(1, -2, -2) + 5250 5250 7000 + + 167 47 107 + + ---- DATA(1, 1, 2) - ---- DATA(2, 1, 2) - ---- DATA(-1, 2, 2) + 7000 5250 7000 + + 107 187 17 + + ---- DATA(-1, -2, -2) + ---- DATA(1, 0, 2) - ---- DATA(2, 0, 2) + 7000 7000 5250 + + 167 137 167 + - ---- DATA(-1, 1, 2) - ---- DATA(-2, -2, -2) + ---- DATA(1, -1, 2) + 7000 5250 7000 + + 47 187 167 + - ---- DATA(2, -1, 2) - ---- DATA(-1, 0, 2) - ---- DATA(-1, -1, 2) + 5250 7000 7000 + + 107 137 47 + + ---- DATA(2, 2, 1) - ---- DATA(-2, 2, -2) + ---- DATA(2, 1, -2) + 7000 5250 5250 + + 167 167 47 + - ---- DATA(1, 1, -2) + ---- DATA(-1, 1, -2) - ---- DATA(-2, 1, -2) + 7000 7000 5250 + + 17 187 187 + + ---- DATA(2, 0, -2) - ---- DATA(1, 0, -2) + ---- DATA(-1, 0, -2) + 5250 7000 7000 + + 17 47 167 + - ---- DATA(-2, 0, -2) + ---- DATA(2, -1, -2) - ---- DATA(1, -1, -2) + 5250 5250 7000 + + 167 107 229 + + ---- DATA(-1, -1, -2) - ---- DATA(2, -2, -1) - ----- DATA(1, -2, -1) + 7000 7000 10500 + + 229 107 137 + + ----- DATA(-1, -2, -1) + ---- DATA(-2, -2, -1) + ---- DATA(2, 2, -2) + 10500 7000 5250 + + 107 107 167 + - ---- DATA(1, 2, -2) + ---- DATA(-1, 2, -2) + ---- DATA(-2, 1, -1) + 7000 7000 7000 + + 187 167 107 + + ---- DATA(-2, 0, -1) + ---- DATA(-2, -1, -1) + ---- DATA(-2, 2, -1) + 7000 7000 7000 + + 107 229 229 + - ---- DATA(-2, -2, 1) - ----- DATA(-1, -2, 1) + ----- DATA(1, -2, 1) + 7000 10500 10500 + + 107 167 187 + + ---- DATA(2, -2, 1) - ---- DATA(-2, -1, 1) - ---- DATA(-2, 0, 1) + 7000 7000 7000 + + 167 107 137 \ + - ---- DATA(-2, 1, 1) - ---- DATA(-2, 2, 1) + ---- DATA(-2, -2, 2)| x z + + 7000 7000 5250 / + + (1/700 DATA(-1, 1, -1) - 1/700 DATA(1, 1, -1) + 1/700 DATA(-1, -1, 0) + + - 1/700 DATA(1, -1, 0) + 1/350 DATA(-1, 0, 0) + 1/700 DATA(-1, 1, 0) + + + 1/700 DATA(-1, 1, 1) + 1/350 DATA(-1, 0, 1) - 1/700 DATA(1, -1, 1) + + + 1/700 DATA(-1, -1, 1) - 1/350 DATA(-1, -2, 2) + 1/350 DATA(-1, 0, -1) + + - 1/350 DATA(1, 0, -1) - 1/350 DATA(1, 0, 0) - 1/700 DATA(1, 1, 0) + + + 1/350 DATA(1, -2, 2) + 1/350 DATA(-2, -1, 2) + 1/175 DATA(2, -2, 2) + + + 1/175 DATA(-2, 0, 2) + 1/350 DATA(-2, 1, 2) - 1/350 DATA(1, 0, 1) + + - 1/700 DATA(1, 1, 1) - 1/175 DATA(-2, 2, 2) + 1/700 DATA(-1, -1, -1) + + + 1/350 DATA(1, 2, -1) - 1/350 DATA(2, 1, -1) - 1/350 DATA(-1, 2, -1) + + - 1/350 DATA(2, -1, -1) - 1/175 DATA(2, 0, -1) - 1/350 DATA(2, 1, 1) + + - 1/350 DATA(-1, 2, 1) + 1/350 DATA(1, 2, 1) - 1/350 DATA(2, -1, 1) + + - 1/175 DATA(2, 0, 1) - 1/700 DATA(1, -1, -1) + 1/350 DATA(1, 2, 0) + + + 1/175 DATA(2, 2, 0) - 1/350 DATA(2, 1, 0) - 1/350 DATA(-1, 2, 0) + + - 1/350 DATA(2, -1, 0) - 1/175 DATA(2, 0, 0) + 1/175 DATA(2, 2, -1) + + + 1/350 DATA(1, 2, 2) + 1/350 DATA(-2, -1, -2) + 1/175 DATA(2, 2, 2) + + + 1/175 DATA(2, -2, -2) + 1/350 DATA(1, -2, -2) - 1/700 DATA(1, 1, 2) + + - 1/350 DATA(2, 1, 2) - 1/350 DATA(-1, 2, 2) - 1/350 DATA(-1, -2, -2) + + - 1/350 DATA(1, 0, 2) - 1/175 DATA(2, 0, 2) + 1/700 DATA(-1, 1, 2) + + - 1/175 DATA(-2, -2, -2) - 1/700 DATA(1, -1, 2) - 1/350 DATA(2, -1, 2) + + + 1/350 DATA(-1, 0, 2) + 1/700 DATA(-1, -1, 2) + 1/175 DATA(2, 2, 1) + + - 1/175 DATA(-2, 2, -2) - 1/350 DATA(2, 1, -2) - 1/700 DATA(1, 1, -2) + + + 1/700 DATA(-1, 1, -2) + 1/350 DATA(-2, 1, -2) - 1/175 DATA(2, 0, -2) + + - 1/350 DATA(1, 0, -2) + 1/350 DATA(-1, 0, -2) + 1/175 DATA(-2, 0, -2) + + - 1/350 DATA(2, -1, -2) - 1/700 DATA(1, -1, -2) + 1/700 DATA(-1, -1, -2) + + + 1/175 DATA(2, -2, -1) + 1/350 DATA(1, -2, -1) - 1/350 DATA(-1, -2, -1) + + - 1/175 DATA(-2, -2, -1) + 1/175 DATA(2, 2, -2) + 1/350 DATA(1, 2, -2) + + - 1/350 DATA(-1, 2, -2) + 1/350 DATA(-2, 1, -1) + 1/175 DATA(-2, 0, -1) + + + 1/350 DATA(-2, -1, -1) - 1/175 DATA(-2, 2, -1) - 1/350 DATA(-1, -2, 0) + + - 1/175 DATA(-2, -2, 0) + 1/175 DATA(-2, 0, 0) + 1/350 DATA(-2, -1, 0) + + + 1/175 DATA(2, -2, 0) + 1/350 DATA(1, -2, 0) + 1/350 DATA(-2, 1, 0) + + - 1/175 DATA(-2, 2, 0) - 1/175 DATA(-2, -2, 1) - 1/350 DATA(-1, -2, 1) + + + 1/350 DATA(1, -2, 1) + 1/175 DATA(2, -2, 1) + 1/350 DATA(-2, -1, 1) + + + 1/175 DATA(-2, 0, 1) + 1/350 DATA(-2, 1, 1) - 1/175 DATA(-2, 2, 1) + + 2 + - 1/175 DATA(-2, -2, 2)) x y + (- 1/700 DATA(-1, 1, -1) + + - 1/350 DATA(0, 1, -1) - 1/700 DATA(1, 1, -1) + 1/700 DATA(-1, -1, 0) + + + 1/350 DATA(0, -1, 0) + 1/700 DATA(1, -1, 0) - 1/700 DATA(-1, 1, 0) + + - 1/700 DATA(-1, 1, 1) + 1/700 DATA(1, -1, 1) + 1/700 DATA(-1, -1, 1) + + + 1/350 DATA(0, -1, 1) + 1/350 DATA(-1, -2, 2) + 1/175 DATA(0, -2, 2) + + - 1/350 DATA(0, 1, 0) - 1/700 DATA(1, 1, 0) + 1/350 DATA(1, -2, 2) + + - 1/350 DATA(-2, -1, 2) - 1/175 DATA(2, -2, 2) + 1/350 DATA(-2, 1, 2) + + - 1/350 DATA(0, 1, 1) - 1/700 DATA(1, 1, 1) + 1/175 DATA(-2, 2, 2) + + + 1/700 DATA(-1, -1, -1) + 1/350 DATA(0, -1, -1) - 1/350 DATA(1, 2, -1) + + + 1/350 DATA(2, 1, -1) - 1/350 DATA(-1, 2, -1) - 1/175 DATA(0, 2, -1) + + - 1/350 DATA(2, -1, -1) + 1/350 DATA(2, 1, 1) - 1/350 DATA(-1, 2, 1) + + - 1/175 DATA(0, 2, 1) - 1/350 DATA(1, 2, 1) - 1/350 DATA(2, -1, 1) + + + 1/700 DATA(1, -1, -1) - 1/350 DATA(1, 2, 0) + 1/175 DATA(2, 2, 0) + + + 1/350 DATA(2, 1, 0) - 1/350 DATA(-1, 2, 0) - 1/175 DATA(0, 2, 0) + + - 1/350 DATA(2, -1, 0) + 1/175 DATA(2, 2, -1) - 1/350 DATA(1, 2, 2) + + - 1/350 DATA(-2, -1, -2) + 1/175 DATA(2, 2, 2) - 1/175 DATA(2, -2, -2) + + + 1/350 DATA(1, -2, -2) - 1/700 DATA(1, 1, 2) + 1/350 DATA(2, 1, 2) + + - 1/350 DATA(-1, 2, 2) - 1/175 DATA(0, 2, 2) + 1/175 DATA(0, -2, -2) + + + 1/350 DATA(-1, -2, -2) - 1/700 DATA(-1, 1, 2) - 1/350 DATA(0, 1, 2) + + - 1/175 DATA(-2, -2, -2) + 1/700 DATA(1, -1, 2) - 1/350 DATA(2, -1, 2) + + + 1/700 DATA(-1, -1, 2) + 1/350 DATA(0, -1, 2) + 1/175 DATA(2, 2, 1) + + + 1/175 DATA(-2, 2, -2) + 1/350 DATA(2, 1, -2) - 1/700 DATA(1, 1, -2) + + - 1/350 DATA(0, 1, -2) - 1/700 DATA(-1, 1, -2) + 1/350 DATA(-2, 1, -2) + + - 1/350 DATA(2, -1, -2) + 1/700 DATA(1, -1, -2) + 1/350 DATA(0, -1, -2) + + + 1/700 DATA(-1, -1, -2) - 1/175 DATA(2, -2, -1) + 1/350 DATA(1, -2, -1) + + + 1/175 DATA(0, -2, -1) + 1/350 DATA(-1, -2, -1) - 1/175 DATA(-2, -2, -1) + + + 1/175 DATA(2, 2, -2) - 1/350 DATA(1, 2, -2) - 1/175 DATA(0, 2, -2) + + - 1/350 DATA(-1, 2, -2) + 1/350 DATA(-2, 1, -1) - 1/350 DATA(-2, -1, -1) + + + 1/175 DATA(-2, 2, -1) + 1/175 DATA(0, -2, 0) + 1/350 DATA(-1, -2, 0) + + - 1/175 DATA(-2, -2, 0) - 1/350 DATA(-2, -1, 0) - 1/175 DATA(2, -2, 0) + + + 1/350 DATA(1, -2, 0) + 1/350 DATA(-2, 1, 0) + 1/175 DATA(-2, 2, 0) + + - 1/175 DATA(-2, -2, 1) + 1/350 DATA(-1, -2, 1) + 1/350 DATA(1, -2, 1) + + + 1/175 DATA(0, -2, 1) - 1/175 DATA(2, -2, 1) - 1/350 DATA(-2, -1, 1) + + 2 + + 1/350 DATA(-2, 1, 1) + 1/175 DATA(-2, 2, 1) - 1/175 DATA(-2, -2, 2)) x + + y + (1/700 DATA(-1, 1, -1) + 1/700 DATA(0, 1, -1) + 1/700 DATA(1, 1, -1) + + - 1/700 DATA(-1, 1, 1) - 1/350 DATA(-1, 0, 1) - 1/700 DATA(1, -1, 1) + + - 1/700 DATA(-1, -1, 1) - 1/700 DATA(0, -1, 1) + 1/175 DATA(-1, -2, 2) + + + 1/175 DATA(0, -2, 2) + 1/350 DATA(-1, 0, -1) + 1/350 DATA(0, 0, -1) + + + 1/350 DATA(1, 0, -1) - 1/350 DATA(0, 0, 1) + 1/175 DATA(1, -2, 2) + + - 1/350 DATA(-2, -1, 2) + 1/175 DATA(2, -2, 2) - 1/175 DATA(-2, 0, 2) + + - 1/350 DATA(-2, 1, 2) - 1/350 DATA(1, 0, 1) - 1/700 DATA(0, 1, 1) + + - 1/700 DATA(1, 1, 1) + 1/175 DATA(-2, 2, 2) + 1/700 DATA(-1, -1, -1) + + + 1/700 DATA(0, -1, -1) - 1/350 DATA(1, 2, -1) + 1/700 DATA(2, 1, -1) + + - 1/350 DATA(-1, 2, -1) - 1/350 DATA(0, 2, -1) + 1/700 DATA(2, -1, -1) + + + 1/350 DATA(2, 0, -1) - 1/700 DATA(2, 1, 1) + 1/350 DATA(-1, 2, 1) + + + 1/350 DATA(0, 2, 1) + 1/350 DATA(1, 2, 1) - 1/700 DATA(2, -1, 1) + + - 1/350 DATA(2, 0, 1) + 1/700 DATA(1, -1, -1) - 1/350 DATA(2, 2, -1) + + + 1/175 DATA(1, 2, 2) + 1/350 DATA(-2, -1, -2) + 1/175 DATA(2, 2, 2) + + - 1/175 DATA(2, -2, -2) - 1/175 DATA(1, -2, -2) - 1/350 DATA(1, 1, 2) + + - 1/350 DATA(2, 1, 2) + 1/175 DATA(-1, 2, 2) + 1/175 DATA(0, 2, 2) + + - 1/175 DATA(0, -2, -2) - 1/175 DATA(-1, -2, -2) - 1/175 DATA(1, 0, 2) + + - 1/175 DATA(2, 0, 2) - 1/350 DATA(-1, 1, 2) - 1/350 DATA(0, 1, 2) + + - 1/175 DATA(-2, -2, -2) - 1/350 DATA(1, -1, 2) - 1/350 DATA(2, -1, 2) + + - 1/175 DATA(-1, 0, 2) - 1/175 DATA(0, 0, 2) - 1/350 DATA(-1, -1, 2) + + - 1/350 DATA(0, -1, 2) + 1/350 DATA(2, 2, 1) - 1/175 DATA(-2, 2, -2) + + + 1/350 DATA(2, 1, -2) + 1/350 DATA(1, 1, -2) + 1/350 DATA(0, 1, -2) + + + 1/350 DATA(-1, 1, -2) + 1/350 DATA(-2, 1, -2) + 1/175 DATA(2, 0, -2) + + + 1/175 DATA(0, 0, -2) + 1/175 DATA(1, 0, -2) + 1/175 DATA(-1, 0, -2) + + + 1/175 DATA(-2, 0, -2) + 1/350 DATA(2, -1, -2) + 1/350 DATA(1, -1, -2) + + + 1/350 DATA(0, -1, -2) + 1/350 DATA(-1, -1, -2) - 1/350 DATA(2, -2, -1) + + - 1/350 DATA(1, -2, -1) - 1/350 DATA(0, -2, -1) - 1/350 DATA(-1, -2, -1) + + - 1/350 DATA(-2, -2, -1) - 1/175 DATA(2, 2, -2) - 1/175 DATA(1, 2, -2) + + - 1/175 DATA(0, 2, -2) - 1/175 DATA(-1, 2, -2) + 1/700 DATA(-2, 1, -1) + + + 1/350 DATA(-2, 0, -1) + 1/700 DATA(-2, -1, -1) - 1/350 DATA(-2, 2, -1) + + + 1/350 DATA(-2, -2, 1) + 1/350 DATA(-1, -2, 1) + 1/350 DATA(1, -2, 1) + + + 1/350 DATA(0, -2, 1) + 1/350 DATA(2, -2, 1) - 1/700 DATA(-2, -1, 1) + + - 1/350 DATA(-2, 0, 1) - 1/700 DATA(-2, 1, 1) + 1/350 DATA(-2, 2, 1) + + 2 + + 1/175 DATA(-2, -2, 2)) y z + (1/700 DATA(-1, 1, -1) + + + 1/350 DATA(0, 1, -1) + 1/700 DATA(1, 1, -1) - 1/700 DATA(-1, 1, 1) + + - 1/700 DATA(-1, 0, 1) - 1/700 DATA(1, -1, 1) - 1/700 DATA(-1, -1, 1) + + - 1/350 DATA(0, -1, 1) - 1/350 DATA(-1, -2, 2) - 1/175 DATA(0, -2, 2) + + + 1/700 DATA(-1, 0, -1) + 1/350 DATA(0, 0, -1) + 1/700 DATA(1, 0, -1) + + - 1/350 DATA(0, 0, 1) - 1/350 DATA(1, -2, 2) + 1/175 DATA(-2, -1, 2) + + + 1/175 DATA(2, -2, 2) + 1/175 DATA(-2, 0, 2) + 1/175 DATA(-2, 1, 2) + + - 1/700 DATA(1, 0, 1) - 1/350 DATA(0, 1, 1) - 1/700 DATA(1, 1, 1) + + + 1/175 DATA(-2, 2, 2) + 1/700 DATA(-1, -1, -1) + 1/350 DATA(0, -1, -1) + + + 1/700 DATA(1, 2, -1) - 1/350 DATA(2, 1, -1) + 1/700 DATA(-1, 2, -1) + + + 1/350 DATA(0, 2, -1) - 1/350 DATA(2, -1, -1) - 1/350 DATA(2, 0, -1) + + + 1/350 DATA(2, 1, 1) - 1/700 DATA(-1, 2, 1) - 1/350 DATA(0, 2, 1) + + - 1/700 DATA(1, 2, 1) + 1/350 DATA(2, -1, 1) + 1/350 DATA(2, 0, 1) + + + 1/700 DATA(1, -1, -1) - 1/350 DATA(2, 2, -1) - 1/350 DATA(1, 2, 2) + + - 1/175 DATA(-2, -1, -2) + 1/175 DATA(2, 2, 2) - 1/175 DATA(2, -2, -2) + + + 1/350 DATA(1, -2, -2) - 1/350 DATA(1, 1, 2) + 1/175 DATA(2, 1, 2) + + - 1/350 DATA(-1, 2, 2) - 1/175 DATA(0, 2, 2) + 1/175 DATA(0, -2, -2) + + + 1/350 DATA(-1, -2, -2) - 1/350 DATA(1, 0, 2) + 1/175 DATA(2, 0, 2) + + - 1/350 DATA(-1, 1, 2) - 1/175 DATA(0, 1, 2) - 1/175 DATA(-2, -2, -2) + + - 1/350 DATA(1, -1, 2) + 1/175 DATA(2, -1, 2) - 1/350 DATA(-1, 0, 2) + + - 1/175 DATA(0, 0, 2) - 1/350 DATA(-1, -1, 2) - 1/175 DATA(0, -1, 2) + + + 1/350 DATA(2, 2, 1) - 1/175 DATA(-2, 2, -2) - 1/175 DATA(2, 1, -2) + + + 1/350 DATA(1, 1, -2) + 1/175 DATA(0, 1, -2) + 1/350 DATA(-1, 1, -2) + + - 1/175 DATA(-2, 1, -2) - 1/175 DATA(2, 0, -2) + 1/175 DATA(0, 0, -2) + + + 1/350 DATA(1, 0, -2) + 1/350 DATA(-1, 0, -2) - 1/175 DATA(-2, 0, -2) + + - 1/175 DATA(2, -1, -2) + 1/350 DATA(1, -1, -2) + 1/175 DATA(0, -1, -2) + + + 1/350 DATA(-1, -1, -2) - 1/350 DATA(2, -2, -1) + 1/700 DATA(1, -2, -1) + + + 1/350 DATA(0, -2, -1) + 1/700 DATA(-1, -2, -1) - 1/350 DATA(-2, -2, -1) + + - 1/175 DATA(2, 2, -2) + 1/350 DATA(1, 2, -2) + 1/175 DATA(0, 2, -2) + + + 1/350 DATA(-1, 2, -2) - 1/350 DATA(-2, 1, -1) - 1/350 DATA(-2, 0, -1) + + - 1/350 DATA(-2, -1, -1) - 1/350 DATA(-2, 2, -1) + 1/350 DATA(-2, -2, 1) + + - 1/700 DATA(-1, -2, 1) - 1/700 DATA(1, -2, 1) - 1/350 DATA(0, -2, 1) + + + 1/350 DATA(2, -2, 1) + 1/350 DATA(-2, -1, 1) + 1/350 DATA(-2, 0, 1) + + 2 + + 1/350 DATA(-2, 1, 1) + 1/350 DATA(-2, 2, 1) + 1/175 DATA(-2, -2, 2)) x + + z + (1/300 DATA(-1, 1, -1) - 1/300 DATA(1, 1, -1) - 1/300 DATA(-1, -1, 0) + + + 1/300 DATA(1, -1, 0) + 1/300 DATA(-1, 1, 0) + 1/300 DATA(-1, 1, 1) + + + 1/300 DATA(1, -1, 1) - 1/300 DATA(-1, -1, 1) + 1/600 DATA(-1, -2, 2) + + - 1/300 DATA(1, 1, 0) - 1/600 DATA(1, -2, 2) - 1/150 DATA(-2, -1, 2) + + - 1/300 DATA(2, -2, 2) + 1/150 DATA(-2, 1, 2) - 1/300 DATA(1, 1, 1) + + - 1/300 DATA(-2, 2, 2) - 1/300 DATA(-1, -1, -1) + 1/600 DATA(1, 2, -1) + + - 1/150 DATA(2, 1, -1) - 1/600 DATA(-1, 2, -1) + 1/150 DATA(2, -1, -1) + + - 1/150 DATA(2, 1, 1) - 1/600 DATA(-1, 2, 1) + 1/600 DATA(1, 2, 1) + + + 1/150 DATA(2, -1, 1) + 1/300 DATA(1, -1, -1) + 1/600 DATA(1, 2, 0) + + + 1/300 DATA(2, 2, 0) - 1/150 DATA(2, 1, 0) - 1/600 DATA(-1, 2, 0) + + + 1/150 DATA(2, -1, 0) + 1/300 DATA(2, 2, -1) + 1/600 DATA(1, 2, 2) + + - 1/150 DATA(-2, -1, -2) + 1/300 DATA(2, 2, 2) - 1/300 DATA(2, -2, -2) + + - 1/600 DATA(1, -2, -2) - 1/300 DATA(1, 1, 2) - 1/150 DATA(2, 1, 2) + + - 1/600 DATA(-1, 2, 2) + 1/600 DATA(-1, -2, -2) + 1/300 DATA(-1, 1, 2) + + + 1/300 DATA(-2, -2, -2) + 1/300 DATA(1, -1, 2) + 1/150 DATA(2, -1, 2) + + - 1/300 DATA(-1, -1, 2) + 1/300 DATA(2, 2, 1) - 1/300 DATA(-2, 2, -2) + + - 1/150 DATA(2, 1, -2) - 1/300 DATA(1, 1, -2) + 1/300 DATA(-1, 1, -2) + + + 1/150 DATA(-2, 1, -2) + 1/150 DATA(2, -1, -2) + 1/300 DATA(1, -1, -2) + + - 1/300 DATA(-1, -1, -2) - 1/300 DATA(2, -2, -1) - 1/600 DATA(1, -2, -1) + + + 1/600 DATA(-1, -2, -1) + 1/300 DATA(-2, -2, -1) + 1/300 DATA(2, 2, -2) + + + 1/600 DATA(1, 2, -2) - 1/600 DATA(-1, 2, -2) + 1/150 DATA(-2, 1, -1) + + - 1/150 DATA(-2, -1, -1) - 1/300 DATA(-2, 2, -1) + 1/600 DATA(-1, -2, 0) + + + 1/300 DATA(-2, -2, 0) - 1/150 DATA(-2, -1, 0) - 1/300 DATA(2, -2, 0) + + - 1/600 DATA(1, -2, 0) + 1/150 DATA(-2, 1, 0) - 1/300 DATA(-2, 2, 0) + + + 1/300 DATA(-2, -2, 1) + 1/600 DATA(-1, -2, 1) - 1/600 DATA(1, -2, 1) + + - 1/300 DATA(2, -2, 1) - 1/150 DATA(-2, -1, 1) + 1/150 DATA(-2, 1, 1) + + 3 + - 1/300 DATA(-2, 2, 1) + 1/300 DATA(-2, -2, 2)) x y + ( + + 1/980 DATA(-1, 1, -1) + 1/490 DATA(0, 1, -1) + 1/980 DATA(1, 1, -1) + + + 1/980 DATA(-1, -1, 0) + 1/490 DATA(0, -1, 0) + 1/980 DATA(1, -1, 0) + + + 1/490 DATA(-1, 0, 0) + 1/980 DATA(-1, 1, 0) + 1/980 DATA(-1, 1, 1) + + + 1/490 DATA(-1, 0, 1) + 1/980 DATA(1, -1, 1) + 1/980 DATA(-1, -1, 1) + + + 1/490 DATA(0, -1, 1) - 1/490 DATA(-1, -2, 2) - 1/245 DATA(0, -2, 2) + + + 1/490 DATA(-1, 0, -1) + 1/245 DATA(0, 0, -1) + 1/490 DATA(1, 0, -1) + + + 1/245 DATA(0, 0, 0) + 1/490 DATA(1, 0, 0) + 1/490 DATA(0, 1, 0) + + + 1/980 DATA(1, 1, 0) + 1/245 DATA(0, 0, 1) - 1/490 DATA(1, -2, 2) + + - 1/490 DATA(-2, -1, 2) + 1/245 DATA(2, -2, 2) - 1/245 DATA(-2, 0, 2) + + - 1/490 DATA(-2, 1, 2) + 1/490 DATA(1, 0, 1) + 1/490 DATA(0, 1, 1) + + + 1/980 DATA(1, 1, 1) + 1/245 DATA(-2, 2, 2) + 1/980 DATA(-1, -1, -1) + + + 1/490 DATA(0, -1, -1) - 1/490 DATA(1, 2, -1) - 1/490 DATA(2, 1, -1) + + - 1/490 DATA(-1, 2, -1) - 1/245 DATA(0, 2, -1) - 1/490 DATA(2, -1, -1) + + - 1/245 DATA(2, 0, -1) - 1/490 DATA(2, 1, 1) - 1/490 DATA(-1, 2, 1) + + - 1/245 DATA(0, 2, 1) - 1/490 DATA(1, 2, 1) - 1/490 DATA(2, -1, 1) + + - 1/245 DATA(2, 0, 1) + 1/980 DATA(1, -1, -1) - 1/490 DATA(1, 2, 0) + + + 1/245 DATA(2, 2, 0) - 1/490 DATA(2, 1, 0) - 1/490 DATA(-1, 2, 0) + + - 1/245 DATA(0, 2, 0) - 1/490 DATA(2, -1, 0) - 1/245 DATA(2, 0, 0) + + + 1/245 DATA(2, 2, -1) - 1/490 DATA(1, 2, 2) - 1/490 DATA(-2, -1, -2) + + + 1/245 DATA(2, 2, 2) + 1/245 DATA(2, -2, -2) - 1/490 DATA(1, -2, -2) + + + 1/980 DATA(1, 1, 2) - 1/490 DATA(2, 1, 2) - 1/490 DATA(-1, 2, 2) + + - 1/245 DATA(0, 2, 2) - 1/245 DATA(0, -2, -2) - 1/490 DATA(-1, -2, -2) + + + 1/490 DATA(1, 0, 2) - 1/245 DATA(2, 0, 2) + 1/980 DATA(-1, 1, 2) + + + 1/490 DATA(0, 1, 2) + 1/245 DATA(-2, -2, -2) + 1/980 DATA(1, -1, 2) + + - 1/490 DATA(2, -1, 2) + 1/490 DATA(-1, 0, 2) + 1/245 DATA(0, 0, 2) + + + 1/980 DATA(-1, -1, 2) + 1/490 DATA(0, -1, 2) + 1/245 DATA(2, 2, 1) + + + 1/245 DATA(-2, 2, -2) - 1/490 DATA(2, 1, -2) + 1/980 DATA(1, 1, -2) + + + 1/490 DATA(0, 1, -2) + 1/980 DATA(-1, 1, -2) - 1/490 DATA(-2, 1, -2) + + - 1/245 DATA(2, 0, -2) + 1/245 DATA(0, 0, -2) + 1/490 DATA(1, 0, -2) + + + 1/490 DATA(-1, 0, -2) - 1/245 DATA(-2, 0, -2) - 1/490 DATA(2, -1, -2) + + + 1/980 DATA(1, -1, -2) + 1/490 DATA(0, -1, -2) + 1/980 DATA(-1, -1, -2) + + + 1/245 DATA(2, -2, -1) - 1/490 DATA(1, -2, -1) - 1/245 DATA(0, -2, -1) + + - 1/490 DATA(-1, -2, -1) + 1/245 DATA(-2, -2, -1) + 1/245 DATA(2, 2, -2) + + - 1/490 DATA(1, 2, -2) - 1/245 DATA(0, 2, -2) - 1/490 DATA(-1, 2, -2) + + - 1/490 DATA(-2, 1, -1) - 1/245 DATA(-2, 0, -1) - 1/490 DATA(-2, -1, -1) + + + 1/245 DATA(-2, 2, -1) - 1/245 DATA(0, -2, 0) - 1/490 DATA(-1, -2, 0) + + + 1/245 DATA(-2, -2, 0) - 1/245 DATA(-2, 0, 0) - 1/490 DATA(-2, -1, 0) + + + 1/245 DATA(2, -2, 0) - 1/490 DATA(1, -2, 0) - 1/490 DATA(-2, 1, 0) + + + 1/245 DATA(-2, 2, 0) + 1/245 DATA(-2, -2, 1) - 1/490 DATA(-1, -2, 1) + + - 1/490 DATA(1, -2, 1) - 1/245 DATA(0, -2, 1) + 1/245 DATA(2, -2, 1) + + - 1/490 DATA(-2, -1, 1) - 1/245 DATA(-2, 0, 1) - 1/490 DATA(-2, 1, 1) + + 2 2 + + 1/245 DATA(-2, 2, 1) + 1/245 DATA(-2, -2, 2)) x y + ( + + 1/300 DATA(-1, 1, -1) - 1/300 DATA(1, 1, -1) - 1/300 DATA(-1, -1, 0) + + + 1/300 DATA(1, -1, 0) + 1/300 DATA(-1, 1, 0) + 1/300 DATA(-1, 1, 1) + + + 1/300 DATA(1, -1, 1) - 1/300 DATA(-1, -1, 1) - 1/150 DATA(-1, -2, 2) + + - 1/300 DATA(1, 1, 0) + 1/150 DATA(1, -2, 2) + 1/600 DATA(-2, -1, 2) + + - 1/300 DATA(2, -2, 2) - 1/600 DATA(-2, 1, 2) - 1/300 DATA(1, 1, 1) + + - 1/300 DATA(-2, 2, 2) - 1/300 DATA(-1, -1, -1) - 1/150 DATA(1, 2, -1) + + + 1/600 DATA(2, 1, -1) + 1/150 DATA(-1, 2, -1) - 1/600 DATA(2, -1, -1) + + + 1/600 DATA(2, 1, 1) + 1/150 DATA(-1, 2, 1) - 1/150 DATA(1, 2, 1) + + - 1/600 DATA(2, -1, 1) + 1/300 DATA(1, -1, -1) - 1/150 DATA(1, 2, 0) + + + 1/300 DATA(2, 2, 0) + 1/600 DATA(2, 1, 0) + 1/150 DATA(-1, 2, 0) + + - 1/600 DATA(2, -1, 0) + 1/300 DATA(2, 2, -1) - 1/150 DATA(1, 2, 2) + + + 1/600 DATA(-2, -1, -2) + 1/300 DATA(2, 2, 2) - 1/300 DATA(2, -2, -2) + + + 1/150 DATA(1, -2, -2) - 1/300 DATA(1, 1, 2) + 1/600 DATA(2, 1, 2) + + + 1/150 DATA(-1, 2, 2) - 1/150 DATA(-1, -2, -2) + 1/300 DATA(-1, 1, 2) + + + 1/300 DATA(-2, -2, -2) + 1/300 DATA(1, -1, 2) - 1/600 DATA(2, -1, 2) + + - 1/300 DATA(-1, -1, 2) + 1/300 DATA(2, 2, 1) - 1/300 DATA(-2, 2, -2) + + + 1/600 DATA(2, 1, -2) - 1/300 DATA(1, 1, -2) + 1/300 DATA(-1, 1, -2) + + - 1/600 DATA(-2, 1, -2) - 1/600 DATA(2, -1, -2) + 1/300 DATA(1, -1, -2) + + - 1/300 DATA(-1, -1, -2) - 1/300 DATA(2, -2, -1) + 1/150 DATA(1, -2, -1) + + - 1/150 DATA(-1, -2, -1) + 1/300 DATA(-2, -2, -1) + 1/300 DATA(2, 2, -2) + + - 1/150 DATA(1, 2, -2) + 1/150 DATA(-1, 2, -2) - 1/600 DATA(-2, 1, -1) + + + 1/600 DATA(-2, -1, -1) - 1/300 DATA(-2, 2, -1) - 1/150 DATA(-1, -2, 0) + + + 1/300 DATA(-2, -2, 0) + 1/600 DATA(-2, -1, 0) - 1/300 DATA(2, -2, 0) + + + 1/150 DATA(1, -2, 0) - 1/600 DATA(-2, 1, 0) - 1/300 DATA(-2, 2, 0) + + + 1/300 DATA(-2, -2, 1) - 1/150 DATA(-1, -2, 1) + 1/150 DATA(1, -2, 1) + + - 1/300 DATA(2, -2, 1) + 1/600 DATA(-2, -1, 1) - 1/600 DATA(-2, 1, 1) + + 3 + - 1/300 DATA(-2, 2, 1) + 1/300 DATA(-2, -2, 2)) x y + ( + + 1/300 DATA(-1, 1, -1) + 1/300 DATA(0, 1, -1) + 1/300 DATA(1, 1, -1) + + - 1/300 DATA(-1, 1, 1) + 1/300 DATA(1, -1, 1) + 1/300 DATA(-1, -1, 1) + + + 1/300 DATA(0, -1, 1) - 1/300 DATA(-1, -2, 2) - 1/300 DATA(0, -2, 2) + + - 1/300 DATA(1, -2, 2) + 1/150 DATA(-2, -1, 2) - 1/300 DATA(2, -2, 2) + + - 1/150 DATA(-2, 1, 2) - 1/300 DATA(0, 1, 1) - 1/300 DATA(1, 1, 1) + + + 1/300 DATA(-2, 2, 2) - 1/300 DATA(-1, -1, -1) - 1/300 DATA(0, -1, -1) + + - 1/600 DATA(1, 2, -1) + 1/300 DATA(2, 1, -1) - 1/600 DATA(-1, 2, -1) + + - 1/600 DATA(0, 2, -1) - 1/300 DATA(2, -1, -1) - 1/300 DATA(2, 1, 1) + + + 1/600 DATA(-1, 2, 1) + 1/600 DATA(0, 2, 1) + 1/600 DATA(1, 2, 1) + + + 1/300 DATA(2, -1, 1) - 1/300 DATA(1, -1, -1) - 1/600 DATA(2, 2, -1) + + + 1/300 DATA(1, 2, 2) - 1/150 DATA(-2, -1, -2) + 1/300 DATA(2, 2, 2) + + + 1/300 DATA(2, -2, -2) + 1/300 DATA(1, -2, -2) - 1/150 DATA(1, 1, 2) + + - 1/150 DATA(2, 1, 2) + 1/300 DATA(-1, 2, 2) + 1/300 DATA(0, 2, 2) + + + 1/300 DATA(0, -2, -2) + 1/300 DATA(-1, -2, -2) - 1/150 DATA(-1, 1, 2) + + - 1/150 DATA(0, 1, 2) + 1/300 DATA(-2, -2, -2) + 1/150 DATA(1, -1, 2) + + + 1/150 DATA(2, -1, 2) + 1/150 DATA(-1, -1, 2) + 1/150 DATA(0, -1, 2) + + + 1/600 DATA(2, 2, 1) - 1/300 DATA(-2, 2, -2) + 1/150 DATA(2, 1, -2) + + + 1/150 DATA(1, 1, -2) + 1/150 DATA(0, 1, -2) + 1/150 DATA(-1, 1, -2) + + + 1/150 DATA(-2, 1, -2) - 1/150 DATA(2, -1, -2) - 1/150 DATA(1, -1, -2) + + - 1/150 DATA(0, -1, -2) - 1/150 DATA(-1, -1, -2) + 1/600 DATA(2, -2, -1) + + + 1/600 DATA(1, -2, -1) + 1/600 DATA(0, -2, -1) + 1/600 DATA(-1, -2, -1) + + + 1/600 DATA(-2, -2, -1) - 1/300 DATA(2, 2, -2) - 1/300 DATA(1, 2, -2) + + - 1/300 DATA(0, 2, -2) - 1/300 DATA(-1, 2, -2) + 1/300 DATA(-2, 1, -1) + + - 1/300 DATA(-2, -1, -1) - 1/600 DATA(-2, 2, -1) - 1/600 DATA(-2, -2, 1) + + - 1/600 DATA(-1, -2, 1) - 1/600 DATA(1, -2, 1) - 1/600 DATA(0, -2, 1) + + - 1/600 DATA(2, -2, 1) + 1/300 DATA(-2, -1, 1) - 1/300 DATA(-2, 1, 1) + + 3 + + 1/600 DATA(-2, 2, 1) - 1/300 DATA(-2, -2, 2)) y z + ( + + - 1/300 DATA(-1, 1, -1) + 1/300 DATA(1, 1, -1) + 1/300 DATA(-1, 1, 1) + + + 1/300 DATA(-1, 0, 1) - 1/300 DATA(1, -1, 1) + 1/300 DATA(-1, -1, 1) + + + 1/150 DATA(-1, -2, 2) - 1/300 DATA(-1, 0, -1) + 1/300 DATA(1, 0, -1) + + - 1/150 DATA(1, -2, 2) - 1/300 DATA(-2, -1, 2) + 1/300 DATA(2, -2, 2) + + - 1/300 DATA(-2, 0, 2) - 1/300 DATA(-2, 1, 2) - 1/300 DATA(1, 0, 1) + + - 1/300 DATA(1, 1, 1) - 1/300 DATA(-2, 2, 2) - 1/300 DATA(-1, -1, -1) + + + 1/300 DATA(1, 2, -1) - 1/600 DATA(2, 1, -1) - 1/300 DATA(-1, 2, -1) + + - 1/600 DATA(2, -1, -1) - 1/600 DATA(2, 0, -1) + 1/600 DATA(2, 1, 1) + + + 1/300 DATA(-1, 2, 1) - 1/300 DATA(1, 2, 1) + 1/600 DATA(2, -1, 1) + + + 1/600 DATA(2, 0, 1) + 1/300 DATA(1, -1, -1) - 1/600 DATA(2, 2, -1) + + - 1/150 DATA(1, 2, 2) + 1/300 DATA(-2, -1, -2) + 1/300 DATA(2, 2, 2) + + - 1/300 DATA(2, -2, -2) + 1/150 DATA(1, -2, -2) - 1/150 DATA(1, 1, 2) + + + 1/300 DATA(2, 1, 2) + 1/150 DATA(-1, 2, 2) - 1/150 DATA(-1, -2, -2) + + - 1/150 DATA(1, 0, 2) + 1/300 DATA(2, 0, 2) + 1/150 DATA(-1, 1, 2) + + + 1/300 DATA(-2, -2, -2) - 1/150 DATA(1, -1, 2) + 1/300 DATA(2, -1, 2) + + + 1/150 DATA(-1, 0, 2) + 1/150 DATA(-1, -1, 2) + 1/600 DATA(2, 2, 1) + + + 1/300 DATA(-2, 2, -2) - 1/300 DATA(2, 1, -2) + 1/150 DATA(1, 1, -2) + + - 1/150 DATA(-1, 1, -2) + 1/300 DATA(-2, 1, -2) - 1/300 DATA(2, 0, -2) + + + 1/150 DATA(1, 0, -2) - 1/150 DATA(-1, 0, -2) + 1/300 DATA(-2, 0, -2) + + - 1/300 DATA(2, -1, -2) + 1/150 DATA(1, -1, -2) - 1/150 DATA(-1, -1, -2) + + - 1/600 DATA(2, -2, -1) + 1/300 DATA(1, -2, -1) - 1/300 DATA(-1, -2, -1) + + + 1/600 DATA(-2, -2, -1) - 1/300 DATA(2, 2, -2) + 1/150 DATA(1, 2, -2) + + - 1/150 DATA(-1, 2, -2) + 1/600 DATA(-2, 1, -1) + 1/600 DATA(-2, 0, -1) + + + 1/600 DATA(-2, -1, -1) + 1/600 DATA(-2, 2, -1) - 1/600 DATA(-2, -2, 1) + + + 1/300 DATA(-1, -2, 1) - 1/300 DATA(1, -2, 1) + 1/600 DATA(2, -2, 1) + + - 1/600 DATA(-2, -1, 1) - 1/600 DATA(-2, 0, 1) - 1/600 DATA(-2, 1, 1) + + 3 + - 1/600 DATA(-2, 2, 1) - 1/300 DATA(-2, -2, 2)) x z + ( + + 1/980 DATA(-1, 1, -1) + 1/980 DATA(0, 1, -1) + 1/980 DATA(1, 1, -1) + + + 1/490 DATA(-1, -1, 0) + 1/490 DATA(0, -1, 0) + 1/490 DATA(1, -1, 0) + + + 1/245 DATA(-1, 0, 0) + 1/490 DATA(-1, 1, 0) + 1/980 DATA(-1, 1, 1) + + + 1/490 DATA(-1, 0, 1) + 1/980 DATA(1, -1, 1) + 1/980 DATA(-1, -1, 1) + + + 1/980 DATA(0, -1, 1) + 1/245 DATA(-1, -2, 2) + 1/245 DATA(0, -2, 2) + + + 1/490 DATA(-1, 0, -1) + 1/490 DATA(0, 0, -1) + 1/490 DATA(1, 0, -1) + + + 1/245 DATA(0, 0, 0) + 1/245 DATA(1, 0, 0) + 1/490 DATA(0, 1, 0) + + + 1/490 DATA(1, 1, 0) + 1/490 DATA(0, 0, 1) + 1/245 DATA(1, -2, 2) + + - 1/490 DATA(-2, -1, 2) + 1/245 DATA(2, -2, 2) - 1/245 DATA(-2, 0, 2) + + - 1/490 DATA(-2, 1, 2) + 1/490 DATA(1, 0, 1) + 1/980 DATA(0, 1, 1) + + + 1/980 DATA(1, 1, 1) + 1/245 DATA(-2, 2, 2) + 1/980 DATA(-1, -1, -1) + + + 1/980 DATA(0, -1, -1) - 1/490 DATA(1, 2, -1) + 1/980 DATA(2, 1, -1) + + - 1/490 DATA(-1, 2, -1) - 1/490 DATA(0, 2, -1) + 1/980 DATA(2, -1, -1) + + + 1/490 DATA(2, 0, -1) + 1/980 DATA(2, 1, 1) - 1/490 DATA(-1, 2, 1) + + - 1/490 DATA(0, 2, 1) - 1/490 DATA(1, 2, 1) + 1/980 DATA(2, -1, 1) + + + 1/490 DATA(2, 0, 1) + 1/980 DATA(1, -1, -1) - 1/245 DATA(1, 2, 0) + + - 1/245 DATA(2, 2, 0) + 1/490 DATA(2, 1, 0) - 1/245 DATA(-1, 2, 0) + + - 1/245 DATA(0, 2, 0) + 1/490 DATA(2, -1, 0) + 1/245 DATA(2, 0, 0) + + - 1/490 DATA(2, 2, -1) + 1/245 DATA(1, 2, 2) - 1/490 DATA(-2, -1, -2) + + + 1/245 DATA(2, 2, 2) + 1/245 DATA(2, -2, -2) + 1/245 DATA(1, -2, -2) + + - 1/490 DATA(1, 1, 2) - 1/490 DATA(2, 1, 2) + 1/245 DATA(-1, 2, 2) + + + 1/245 DATA(0, 2, 2) + 1/245 DATA(0, -2, -2) + 1/245 DATA(-1, -2, -2) + + - 1/245 DATA(1, 0, 2) - 1/245 DATA(2, 0, 2) - 1/490 DATA(-1, 1, 2) + + - 1/490 DATA(0, 1, 2) + 1/245 DATA(-2, -2, -2) - 1/490 DATA(1, -1, 2) + + - 1/490 DATA(2, -1, 2) - 1/245 DATA(-1, 0, 2) - 1/245 DATA(0, 0, 2) + + - 1/490 DATA(-1, -1, 2) - 1/490 DATA(0, -1, 2) - 1/490 DATA(2, 2, 1) + + + 1/245 DATA(-2, 2, -2) - 1/490 DATA(2, 1, -2) - 1/490 DATA(1, 1, -2) + + - 1/490 DATA(0, 1, -2) - 1/490 DATA(-1, 1, -2) - 1/490 DATA(-2, 1, -2) + + - 1/245 DATA(2, 0, -2) - 1/245 DATA(0, 0, -2) - 1/245 DATA(1, 0, -2) + + - 1/245 DATA(-1, 0, -2) - 1/245 DATA(-2, 0, -2) - 1/490 DATA(2, -1, -2) + + - 1/490 DATA(1, -1, -2) - 1/490 DATA(0, -1, -2) - 1/490 DATA(-1, -1, -2) + + - 1/490 DATA(2, -2, -1) - 1/490 DATA(1, -2, -1) - 1/490 DATA(0, -2, -1) + + - 1/490 DATA(-1, -2, -1) - 1/490 DATA(-2, -2, -1) + 1/245 DATA(2, 2, -2) + + + 1/245 DATA(1, 2, -2) + 1/245 DATA(0, 2, -2) + 1/245 DATA(-1, 2, -2) + + + 1/980 DATA(-2, 1, -1) + 1/490 DATA(-2, 0, -1) + 1/980 DATA(-2, -1, -1) + + - 1/490 DATA(-2, 2, -1) - 1/245 DATA(0, -2, 0) - 1/245 DATA(-1, -2, 0) + + - 1/245 DATA(-2, -2, 0) + 1/245 DATA(-2, 0, 0) + 1/490 DATA(-2, -1, 0) + + - 1/245 DATA(2, -2, 0) - 1/245 DATA(1, -2, 0) + 1/490 DATA(-2, 1, 0) + + - 1/245 DATA(-2, 2, 0) - 1/490 DATA(-2, -2, 1) - 1/490 DATA(-1, -2, 1) + + - 1/490 DATA(1, -2, 1) - 1/490 DATA(0, -2, 1) - 1/490 DATA(2, -2, 1) + + + 1/980 DATA(-2, -1, 1) + 1/490 DATA(-2, 0, 1) + 1/980 DATA(-2, 1, 1) + + 2 2 + - 1/490 DATA(-2, 2, 1) + 1/245 DATA(-2, -2, 2)) y z + ( + + 1/980 DATA(-1, 1, -1) + 1/490 DATA(0, 1, -1) + 1/980 DATA(1, 1, -1) + + + 1/490 DATA(-1, -1, 0) + 1/245 DATA(0, -1, 0) + 1/490 DATA(1, -1, 0) + + + 1/490 DATA(-1, 0, 0) + 1/490 DATA(-1, 1, 0) + 1/980 DATA(-1, 1, 1) + + + 1/980 DATA(-1, 0, 1) + 1/980 DATA(1, -1, 1) + 1/980 DATA(-1, -1, 1) + + + 1/490 DATA(0, -1, 1) - 1/490 DATA(-1, -2, 2) - 1/245 DATA(0, -2, 2) + + + 1/980 DATA(-1, 0, -1) + 1/490 DATA(0, 0, -1) + 1/980 DATA(1, 0, -1) + + + 1/245 DATA(0, 0, 0) + 1/490 DATA(1, 0, 0) + 1/245 DATA(0, 1, 0) + + + 1/490 DATA(1, 1, 0) + 1/490 DATA(0, 0, 1) - 1/490 DATA(1, -2, 2) + + + 1/245 DATA(-2, -1, 2) + 1/245 DATA(2, -2, 2) + 1/245 DATA(-2, 0, 2) + + + 1/245 DATA(-2, 1, 2) + 1/980 DATA(1, 0, 1) + 1/490 DATA(0, 1, 1) + + + 1/980 DATA(1, 1, 1) + 1/245 DATA(-2, 2, 2) + 1/980 DATA(-1, -1, -1) + + + 1/490 DATA(0, -1, -1) + 1/980 DATA(1, 2, -1) - 1/490 DATA(2, 1, -1) + + + 1/980 DATA(-1, 2, -1) + 1/490 DATA(0, 2, -1) - 1/490 DATA(2, -1, -1) + + - 1/490 DATA(2, 0, -1) - 1/490 DATA(2, 1, 1) + 1/980 DATA(-1, 2, 1) + + + 1/490 DATA(0, 2, 1) + 1/980 DATA(1, 2, 1) - 1/490 DATA(2, -1, 1) + + - 1/490 DATA(2, 0, 1) + 1/980 DATA(1, -1, -1) + 1/490 DATA(1, 2, 0) + + - 1/245 DATA(2, 2, 0) - 1/245 DATA(2, 1, 0) + 1/490 DATA(-1, 2, 0) + + + 1/245 DATA(0, 2, 0) - 1/245 DATA(2, -1, 0) - 1/245 DATA(2, 0, 0) + + - 1/490 DATA(2, 2, -1) - 1/490 DATA(1, 2, 2) + 1/245 DATA(-2, -1, -2) + + + 1/245 DATA(2, 2, 2) + 1/245 DATA(2, -2, -2) - 1/490 DATA(1, -2, -2) + + - 1/490 DATA(1, 1, 2) + 1/245 DATA(2, 1, 2) - 1/490 DATA(-1, 2, 2) + + - 1/245 DATA(0, 2, 2) - 1/245 DATA(0, -2, -2) - 1/490 DATA(-1, -2, -2) + + - 1/490 DATA(1, 0, 2) + 1/245 DATA(2, 0, 2) - 1/490 DATA(-1, 1, 2) + + - 1/245 DATA(0, 1, 2) + 1/245 DATA(-2, -2, -2) - 1/490 DATA(1, -1, 2) + + + 1/245 DATA(2, -1, 2) - 1/490 DATA(-1, 0, 2) - 1/245 DATA(0, 0, 2) + + - 1/490 DATA(-1, -1, 2) - 1/245 DATA(0, -1, 2) - 1/490 DATA(2, 2, 1) + + + 1/245 DATA(-2, 2, -2) + 1/245 DATA(2, 1, -2) - 1/490 DATA(1, 1, -2) + + - 1/245 DATA(0, 1, -2) - 1/490 DATA(-1, 1, -2) + 1/245 DATA(-2, 1, -2) + + + 1/245 DATA(2, 0, -2) - 1/245 DATA(0, 0, -2) - 1/490 DATA(1, 0, -2) + + - 1/490 DATA(-1, 0, -2) + 1/245 DATA(-2, 0, -2) + 1/245 DATA(2, -1, -2) + + - 1/490 DATA(1, -1, -2) - 1/245 DATA(0, -1, -2) - 1/490 DATA(-1, -1, -2) + + - 1/490 DATA(2, -2, -1) + 1/980 DATA(1, -2, -1) + 1/490 DATA(0, -2, -1) + + + 1/980 DATA(-1, -2, -1) - 1/490 DATA(-2, -2, -1) + 1/245 DATA(2, 2, -2) + + - 1/490 DATA(1, 2, -2) - 1/245 DATA(0, 2, -2) - 1/490 DATA(-1, 2, -2) + + - 1/490 DATA(-2, 1, -1) - 1/490 DATA(-2, 0, -1) - 1/490 DATA(-2, -1, -1) + + - 1/490 DATA(-2, 2, -1) + 1/245 DATA(0, -2, 0) + 1/490 DATA(-1, -2, 0) + + - 1/245 DATA(-2, -2, 0) - 1/245 DATA(-2, 0, 0) - 1/245 DATA(-2, -1, 0) + + - 1/245 DATA(2, -2, 0) + 1/490 DATA(1, -2, 0) - 1/245 DATA(-2, 1, 0) + + - 1/245 DATA(-2, 2, 0) - 1/490 DATA(-2, -2, 1) + 1/980 DATA(-1, -2, 1) + + + 1/980 DATA(1, -2, 1) + 1/490 DATA(0, -2, 1) - 1/490 DATA(2, -2, 1) + + - 1/490 DATA(-2, -1, 1) - 1/490 DATA(-2, 0, 1) - 1/490 DATA(-2, 1, 1) + + 2 2 + - 1/490 DATA(-2, 2, 1) + 1/245 DATA(-2, -2, 2)) x z + ( + + 1/300 DATA(-1, 1, -1) + 1/300 DATA(0, 1, -1) + 1/300 DATA(1, 1, -1) + + - 1/300 DATA(-1, 1, 1) + 1/300 DATA(1, -1, 1) + 1/300 DATA(-1, -1, 1) + + + 1/300 DATA(0, -1, 1) - 1/300 DATA(-1, -2, 2) - 1/300 DATA(0, -2, 2) + + - 1/300 DATA(1, -2, 2) - 1/600 DATA(-2, -1, 2) - 1/300 DATA(2, -2, 2) + + + 1/600 DATA(-2, 1, 2) - 1/300 DATA(0, 1, 1) - 1/300 DATA(1, 1, 1) + + + 1/300 DATA(-2, 2, 2) - 1/300 DATA(-1, -1, -1) - 1/300 DATA(0, -1, -1) + + + 1/150 DATA(1, 2, -1) + 1/300 DATA(2, 1, -1) + 1/150 DATA(-1, 2, -1) + + + 1/150 DATA(0, 2, -1) - 1/300 DATA(2, -1, -1) - 1/300 DATA(2, 1, 1) + + - 1/150 DATA(-1, 2, 1) - 1/150 DATA(0, 2, 1) - 1/150 DATA(1, 2, 1) + + + 1/300 DATA(2, -1, 1) - 1/300 DATA(1, -1, -1) + 1/150 DATA(2, 2, -1) + + + 1/300 DATA(1, 2, 2) + 1/600 DATA(-2, -1, -2) + 1/300 DATA(2, 2, 2) + + + 1/300 DATA(2, -2, -2) + 1/300 DATA(1, -2, -2) + 1/600 DATA(1, 1, 2) + + + 1/600 DATA(2, 1, 2) + 1/300 DATA(-1, 2, 2) + 1/300 DATA(0, 2, 2) + + + 1/300 DATA(0, -2, -2) + 1/300 DATA(-1, -2, -2) + 1/600 DATA(-1, 1, 2) + + + 1/600 DATA(0, 1, 2) + 1/300 DATA(-2, -2, -2) - 1/600 DATA(1, -1, 2) + + - 1/600 DATA(2, -1, 2) - 1/600 DATA(-1, -1, 2) - 1/600 DATA(0, -1, 2) + + - 1/150 DATA(2, 2, 1) - 1/300 DATA(-2, 2, -2) - 1/600 DATA(2, 1, -2) + + - 1/600 DATA(1, 1, -2) - 1/600 DATA(0, 1, -2) - 1/600 DATA(-1, 1, -2) + + - 1/600 DATA(-2, 1, -2) + 1/600 DATA(2, -1, -2) + 1/600 DATA(1, -1, -2) + + + 1/600 DATA(0, -1, -2) + 1/600 DATA(-1, -1, -2) - 1/150 DATA(2, -2, -1) + + - 1/150 DATA(1, -2, -1) - 1/150 DATA(0, -2, -1) - 1/150 DATA(-1, -2, -1) + + - 1/150 DATA(-2, -2, -1) - 1/300 DATA(2, 2, -2) - 1/300 DATA(1, 2, -2) + + - 1/300 DATA(0, 2, -2) - 1/300 DATA(-1, 2, -2) + 1/300 DATA(-2, 1, -1) + + - 1/300 DATA(-2, -1, -1) + 1/150 DATA(-2, 2, -1) + 1/150 DATA(-2, -2, 1) + + + 1/150 DATA(-1, -2, 1) + 1/150 DATA(1, -2, 1) + 1/150 DATA(0, -2, 1) + + + 1/150 DATA(2, -2, 1) + 1/300 DATA(-2, -1, 1) - 1/300 DATA(-2, 1, 1) + + 3 + - 1/150 DATA(-2, 2, 1) - 1/300 DATA(-2, -2, 2)) y z + ( + + - 1/300 DATA(-1, 1, -1) + 1/300 DATA(1, 1, -1) + 1/300 DATA(-1, 1, 1) + + + 1/300 DATA(-1, 0, 1) - 1/300 DATA(1, -1, 1) + 1/300 DATA(-1, -1, 1) + + - 1/600 DATA(-1, -2, 2) - 1/300 DATA(-1, 0, -1) + 1/300 DATA(1, 0, -1) + + + 1/600 DATA(1, -2, 2) - 1/300 DATA(-2, -1, 2) + 1/300 DATA(2, -2, 2) + + - 1/300 DATA(-2, 0, 2) - 1/300 DATA(-2, 1, 2) - 1/300 DATA(1, 0, 1) + + - 1/300 DATA(1, 1, 1) - 1/300 DATA(-2, 2, 2) - 1/300 DATA(-1, -1, -1) + + + 1/300 DATA(1, 2, -1) + 1/150 DATA(2, 1, -1) - 1/300 DATA(-1, 2, -1) + + + 1/150 DATA(2, -1, -1) + 1/150 DATA(2, 0, -1) - 1/150 DATA(2, 1, 1) + + + 1/300 DATA(-1, 2, 1) - 1/300 DATA(1, 2, 1) - 1/150 DATA(2, -1, 1) + + - 1/150 DATA(2, 0, 1) + 1/300 DATA(1, -1, -1) + 1/150 DATA(2, 2, -1) + + + 1/600 DATA(1, 2, 2) + 1/300 DATA(-2, -1, -2) + 1/300 DATA(2, 2, 2) + + - 1/300 DATA(2, -2, -2) - 1/600 DATA(1, -2, -2) + 1/600 DATA(1, 1, 2) + + + 1/300 DATA(2, 1, 2) - 1/600 DATA(-1, 2, 2) + 1/600 DATA(-1, -2, -2) + + + 1/600 DATA(1, 0, 2) + 1/300 DATA(2, 0, 2) - 1/600 DATA(-1, 1, 2) + + + 1/300 DATA(-2, -2, -2) + 1/600 DATA(1, -1, 2) + 1/300 DATA(2, -1, 2) + + - 1/600 DATA(-1, 0, 2) - 1/600 DATA(-1, -1, 2) - 1/150 DATA(2, 2, 1) + + + 1/300 DATA(-2, 2, -2) - 1/300 DATA(2, 1, -2) - 1/600 DATA(1, 1, -2) + + + 1/600 DATA(-1, 1, -2) + 1/300 DATA(-2, 1, -2) - 1/300 DATA(2, 0, -2) + + - 1/600 DATA(1, 0, -2) + 1/600 DATA(-1, 0, -2) + 1/300 DATA(-2, 0, -2) + + - 1/300 DATA(2, -1, -2) - 1/600 DATA(1, -1, -2) + 1/600 DATA(-1, -1, -2) + + + 1/150 DATA(2, -2, -1) + 1/300 DATA(1, -2, -1) - 1/300 DATA(-1, -2, -1) + + - 1/150 DATA(-2, -2, -1) - 1/300 DATA(2, 2, -2) - 1/600 DATA(1, 2, -2) + + + 1/600 DATA(-1, 2, -2) - 1/150 DATA(-2, 1, -1) - 1/150 DATA(-2, 0, -1) + + - 1/150 DATA(-2, -1, -1) - 1/150 DATA(-2, 2, -1) + 1/150 DATA(-2, -2, 1) + + + 1/300 DATA(-1, -2, 1) - 1/300 DATA(1, -2, 1) - 1/150 DATA(2, -2, 1) + + + 1/150 DATA(-2, -1, 1) + 1/150 DATA(-2, 0, 1) + 1/150 DATA(-2, 1, 1) + + 3 + + 1/150 DATA(-2, 2, 1) - 1/300 DATA(-2, -2, 2)) x z + + 47 272 + - 2/125 DATA(-1, -2, 2) + ---- DATA(0, -2, 2) + ---- DATA(-1, 0, -1) + 6125 6125 + + 592 272 937 + + ---- DATA(0, 0, -1) + ---- DATA(1, 0, -1) + ---- DATA(0, 0, 0) + 6125 6125 6125 + + 592 592 272 + + ---- DATA(1, 0, 0) + ---- DATA(0, 1, 0) + ---- DATA(1, 1, 0) + 6125 6125 6125 + + 592 + + ---- DATA(0, 0, 1) - 2/125 DATA(1, -2, 2) - 2/125 DATA(-2, -1, 2) + 6125 + + 202 47 + + ---- DATA(2, -2, 2) + ---- DATA(-2, 0, 2) + (1/1400 DATA(-1, 1, -1) + 6125 6125 + + - 1/1400 DATA(1, 1, -1) - 1/700 DATA(-1, -1, 0) + 1/700 DATA(1, -1, 0) + + + 1/700 DATA(-1, 1, 0) + 1/1400 DATA(-1, 1, 1) + 1/1400 DATA(1, -1, 1) + + - 1/1400 DATA(-1, -1, 1) + 1/350 DATA(-1, -2, 2) - 1/700 DATA(1, 1, 0) + + - 1/350 DATA(1, -2, 2) + 1/350 DATA(-2, -1, 2) - 1/175 DATA(2, -2, 2) + + - 1/350 DATA(-2, 1, 2) - 1/1400 DATA(1, 1, 1) - 1/175 DATA(-2, 2, 2) + + - 1/1400 DATA(-1, -1, -1) - 1/700 DATA(1, 2, -1) - 1/700 DATA(2, 1, -1) + + + 1/700 DATA(-1, 2, -1) + 1/700 DATA(2, -1, -1) - 1/700 DATA(2, 1, 1) + + + 1/700 DATA(-1, 2, 1) - 1/700 DATA(1, 2, 1) + 1/700 DATA(2, -1, 1) + + + 1/1400 DATA(1, -1, -1) - 1/350 DATA(1, 2, 0) - 1/175 DATA(2, 2, 0) + + - 1/350 DATA(2, 1, 0) + 1/350 DATA(-1, 2, 0) + 1/350 DATA(2, -1, 0) + + - 1/350 DATA(2, 2, -1) + 1/350 DATA(1, 2, 2) + 1/350 DATA(-2, -1, -2) + + + 1/175 DATA(2, 2, 2) - 1/175 DATA(2, -2, -2) - 1/350 DATA(1, -2, -2) + + + 1/700 DATA(1, 1, 2) + 1/350 DATA(2, 1, 2) - 1/350 DATA(-1, 2, 2) + + + 1/350 DATA(-1, -2, -2) - 1/700 DATA(-1, 1, 2) + 1/175 DATA(-2, -2, -2) + + - 1/700 DATA(1, -1, 2) - 1/350 DATA(2, -1, 2) + 1/700 DATA(-1, -1, 2) + + - 1/350 DATA(2, 2, 1) - 1/175 DATA(-2, 2, -2) + 1/350 DATA(2, 1, -2) + + + 1/700 DATA(1, 1, -2) - 1/700 DATA(-1, 1, -2) - 1/350 DATA(-2, 1, -2) + + - 1/350 DATA(2, -1, -2) - 1/700 DATA(1, -1, -2) + 1/700 DATA(-1, -1, -2) + + + 1/350 DATA(2, -2, -1) + 1/700 DATA(1, -2, -1) - 1/700 DATA(-1, -2, -1) + + - 1/350 DATA(-2, -2, -1) + 1/175 DATA(2, 2, -2) + 1/350 DATA(1, 2, -2) + + - 1/350 DATA(-1, 2, -2) + 1/700 DATA(-2, 1, -1) - 1/700 DATA(-2, -1, -1) + + + 1/350 DATA(-2, 2, -1) - 1/350 DATA(-1, -2, 0) - 1/175 DATA(-2, -2, 0) + + - 1/350 DATA(-2, -1, 0) + 1/175 DATA(2, -2, 0) + 1/350 DATA(1, -2, 0) + + + 1/350 DATA(-2, 1, 0) + 1/175 DATA(-2, 2, 0) - 1/350 DATA(-2, -2, 1) + + - 1/700 DATA(-1, -2, 1) + 1/700 DATA(1, -2, 1) + 1/350 DATA(2, -2, 1) + + - 1/700 DATA(-2, -1, 1) + 1/700 DATA(-2, 1, 1) + 1/350 DATA(-2, 2, 1) + + 2 + + 1/175 DATA(-2, -2, 2)) x y z + (1/1400 DATA(-1, 1, -1) + + + 1/700 DATA(0, 1, -1) + 1/1400 DATA(1, 1, -1) - 1/1400 DATA(-1, 1, 1) + + + 1/1400 DATA(1, -1, 1) + 1/1400 DATA(-1, -1, 1) + 1/700 DATA(0, -1, 1) + + + 1/350 DATA(-1, -2, 2) + 1/175 DATA(0, -2, 2) + 1/350 DATA(1, -2, 2) + + - 1/350 DATA(-2, -1, 2) - 1/175 DATA(2, -2, 2) + 1/350 DATA(-2, 1, 2) + + - 1/700 DATA(0, 1, 1) - 1/1400 DATA(1, 1, 1) + 1/175 DATA(-2, 2, 2) + + - 1/1400 DATA(-1, -1, -1) - 1/700 DATA(0, -1, -1) + 1/700 DATA(1, 2, -1) + + - 1/700 DATA(2, 1, -1) + 1/700 DATA(-1, 2, -1) + 1/350 DATA(0, 2, -1) + + + 1/700 DATA(2, -1, -1) + 1/700 DATA(2, 1, 1) - 1/700 DATA(-1, 2, 1) + + - 1/350 DATA(0, 2, 1) - 1/700 DATA(1, 2, 1) - 1/700 DATA(2, -1, 1) + + - 1/1400 DATA(1, -1, -1) - 1/350 DATA(2, 2, -1) - 1/350 DATA(1, 2, 2) + + + 1/350 DATA(-2, -1, -2) + 1/175 DATA(2, 2, 2) + 1/175 DATA(2, -2, -2) + + - 1/350 DATA(1, -2, -2) - 1/700 DATA(1, 1, 2) + 1/350 DATA(2, 1, 2) + + - 1/350 DATA(-1, 2, 2) - 1/175 DATA(0, 2, 2) - 1/175 DATA(0, -2, -2) + + - 1/350 DATA(-1, -2, -2) - 1/700 DATA(-1, 1, 2) - 1/350 DATA(0, 1, 2) + + + 1/175 DATA(-2, -2, -2) + 1/700 DATA(1, -1, 2) - 1/350 DATA(2, -1, 2) + + + 1/700 DATA(-1, -1, 2) + 1/350 DATA(0, -1, 2) + 1/350 DATA(2, 2, 1) + + - 1/175 DATA(-2, 2, -2) - 1/350 DATA(2, 1, -2) + 1/700 DATA(1, 1, -2) + + + 1/350 DATA(0, 1, -2) + 1/700 DATA(-1, 1, -2) - 1/350 DATA(-2, 1, -2) + + + 1/350 DATA(2, -1, -2) - 1/700 DATA(1, -1, -2) - 1/350 DATA(0, -1, -2) + + - 1/700 DATA(-1, -1, -2) + 1/350 DATA(2, -2, -1) - 1/700 DATA(1, -2, -1) + + - 1/350 DATA(0, -2, -1) - 1/700 DATA(-1, -2, -1) + 1/350 DATA(-2, -2, -1) + + - 1/175 DATA(2, 2, -2) + 1/350 DATA(1, 2, -2) + 1/175 DATA(0, 2, -2) + + + 1/350 DATA(-1, 2, -2) - 1/700 DATA(-2, 1, -1) + 1/700 DATA(-2, -1, -1) + + - 1/350 DATA(-2, 2, -1) - 1/350 DATA(-2, -2, 1) + 1/700 DATA(-1, -2, 1) + + + 1/700 DATA(1, -2, 1) + 1/350 DATA(0, -2, 1) - 1/350 DATA(2, -2, 1) + + - 1/700 DATA(-2, -1, 1) + 1/700 DATA(-2, 1, 1) + 1/350 DATA(-2, 2, 1) + + 2 + - 1/175 DATA(-2, -2, 2)) x y z - 2/125 DATA(-2, 1, 2) + + 272 272 23 + + ---- DATA(1, 0, 1) + ---- DATA(0, 1, 1) - ---- DATA(1, 1, 1) + 6125 6125 6125 + + 202 / 83 151 + + ---- DATA(-2, 2, 2) + |---- DATA(-1, 1, -1) + ---- DATA(0, 1, -1) + 6125 \3675 7350 + + 83 57 61 + + ---- DATA(1, 1, -1) - --- DATA(-1, -1, 0) - --- DATA(0, -1, 0) + 3675 980 980 + + 57 61 57 + - --- DATA(1, -1, 0) - --- DATA(-1, 0, 0) - --- DATA(-1, 1, 0) + 980 980 980 + + 83 151 83 + + ---- DATA(-1, 1, 1) + ---- DATA(-1, 0, 1) + ---- DATA(1, -1, 1) + 3675 7350 3675 + + 83 151 169 + + ---- DATA(-1, -1, 1) + ---- DATA(0, -1, 1) - ----- DATA(-1, -2, 2) + 3675 7350 29400 + + 151 68 + - 1/600 DATA(0, -2, 2) + ---- DATA(-1, 0, -1) + ---- DATA(0, 0, -1) + 7350 3675 + + 151 13 61 + + ---- DATA(1, 0, -1) - --- DATA(0, 0, 0) - --- DATA(1, 0, 0) + 7350 196 980 + + 61 57 68 + - --- DATA(0, 1, 0) - --- DATA(1, 1, 0) + ---- DATA(0, 0, 1) + 980 980 3675 + + 169 169 529 + - ----- DATA(1, -2, 2) - ----- DATA(-2, -1, 2) - ----- DATA(2, -2, 2) + 29400 29400 29400 + + 169 151 + - 1/600 DATA(-2, 0, 2) - ----- DATA(-2, 1, 2) + ---- DATA(1, 0, 1) + 29400 7350 + + 151 83 529 + + ---- DATA(0, 1, 1) + ---- DATA(1, 1, 1) - ----- DATA(-2, 2, 2) + 7350 3675 29400 + + 83 151 211 + + ---- DATA(-1, -1, -1) + ---- DATA(0, -1, -1) + ---- DATA(1, 2, -1) + 3675 7350 7350 + + 211 211 + + ---- DATA(2, 1, -1) + ---- DATA(-1, 2, -1) + 2/75 DATA(0, 2, -1) + 7350 7350 + + 211 211 + + ---- DATA(2, -1, -1) + 2/75 DATA(2, 0, -1) + ---- DATA(2, 1, 1) + 7350 7350 + + 211 211 + + ---- DATA(-1, 2, 1) + 2/75 DATA(0, 2, 1) + ---- DATA(1, 2, 1) + 7350 7350 + + 211 83 + + ---- DATA(2, -1, 1) + 2/75 DATA(2, 0, 1) + ---- DATA(1, -1, -1) + 7350 3675 + + 33 + - 9/196 DATA(1, 2, 0) - --- DATA(2, 2, 0) - 9/196 DATA(2, 1, 0) + 980 + + - 9/196 DATA(-1, 2, 0) - 1/20 DATA(0, 2, 0) - 9/196 DATA(2, -1, 0) + + 128 169 + - 1/20 DATA(2, 0, 0) + ---- DATA(2, 2, -1) - ----- DATA(1, 2, 2) + 3675 29400 + + 169 529 529 + - ----- DATA(-2, -1, -2) - ----- DATA(2, 2, 2) - ----- DATA(2, -2, -2) + 29400 29400 29400 + + 169 191 169 + - ----- DATA(1, -2, -2) + ----- DATA(1, 1, 2) - ----- DATA(2, 1, 2) + 29400 29400 29400 + + 169 + - ----- DATA(-1, 2, 2) - 1/600 DATA(0, 2, 2) - 1/600 DATA(0, -2, -2) + 29400 + + 169 311 + - ----- DATA(-1, -2, -2) + ----- DATA(1, 0, 2) - 1/600 DATA(2, 0, 2) + 29400 29400 + + 191 311 529 + + ----- DATA(-1, 1, 2) + ----- DATA(0, 1, 2) - ----- DATA(-2, -2, -2) + 29400 29400 29400 + + 191 169 311 + + ----- DATA(1, -1, 2) - ----- DATA(2, -1, 2) + ----- DATA(-1, 0, 2) + 29400 29400 29400 + + 431 191 311 + + ----- DATA(0, 0, 2) + ----- DATA(-1, -1, 2) + ----- DATA(0, -1, 2) + 29400 29400 29400 + + 128 529 169 + + ---- DATA(2, 2, 1) - ----- DATA(-2, 2, -2) - ----- DATA(2, 1, -2) + 3675 29400 29400 + + 191 311 191 + + ----- DATA(1, 1, -2) + ----- DATA(0, 1, -2) + ----- DATA(-1, 1, -2) + 29400 29400 29400 + + 169 431 + - ----- DATA(-2, 1, -2) - 1/600 DATA(2, 0, -2) + ----- DATA(0, 0, -2) + 29400 29400 + + 311 311 + + ----- DATA(1, 0, -2) + ----- DATA(-1, 0, -2) - 1/600 DATA(-2, 0, -2) + 29400 29400 + + 169 191 311 + - ----- DATA(2, -1, -2) + ----- DATA(1, -1, -2) + ----- DATA(0, -1, -2) + 29400 29400 29400 + + 191 128 211 + + ----- DATA(-1, -1, -2) + ---- DATA(2, -2, -1) + ---- DATA(1, -2, -1) + 29400 3675 7350 + + 211 128 + + 2/75 DATA(0, -2, -1) + ---- DATA(-1, -2, -1) + ---- DATA(-2, -2, -1) + 7350 3675 + + 529 169 + - ----- DATA(2, 2, -2) - ----- DATA(1, 2, -2) - 1/600 DATA(0, 2, -2) + 29400 29400 + + 169 211 + - ----- DATA(-1, 2, -2) + ---- DATA(-2, 1, -1) + 2/75 DATA(-2, 0, -1) + 29400 7350 + + 211 128 + + ---- DATA(-2, -1, -1) + ---- DATA(-2, 2, -1) - 1/20 DATA(0, -2, 0) + 7350 3675 + + 33 + - 9/196 DATA(-1, -2, 0) - --- DATA(-2, -2, 0) - 1/20 DATA(-2, 0, 0) + 980 + + 33 + - 9/196 DATA(-2, -1, 0) - --- DATA(2, -2, 0) - 9/196 DATA(1, -2, 0) + 980 + + 33 128 + - 9/196 DATA(-2, 1, 0) - --- DATA(-2, 2, 0) + ---- DATA(-2, -2, 1) + 980 3675 + + 211 211 + + ---- DATA(-1, -2, 1) + ---- DATA(1, -2, 1) + 2/75 DATA(0, -2, 1) + 7350 7350 + + 128 211 + + ---- DATA(2, -2, 1) + ---- DATA(-2, -1, 1) + 2/75 DATA(-2, 0, 1) + 3675 7350 + + 211 128 529 \ 2 + + ---- DATA(-2, 1, 1) + ---- DATA(-2, 2, 1) - ----- DATA(-2, -2, 2)| z + + 7350 3675 29400 / + + (- 1/150 DATA(-1, 1, -1) - 1/150 DATA(0, 1, -1) - 1/150 DATA(1, 1, -1) + + + 1/150 DATA(-1, -1, 0) + 1/150 DATA(0, -1, 0) + 1/150 DATA(1, -1, 0) + + - 1/150 DATA(-1, 1, 0) - 1/150 DATA(-1, 1, 1) + 1/150 DATA(1, -1, 1) + + + 1/150 DATA(-1, -1, 1) + 1/150 DATA(0, -1, 1) - 1/300 DATA(-1, -2, 2) + + - 1/300 DATA(0, -2, 2) - 1/150 DATA(0, 1, 0) - 1/150 DATA(1, 1, 0) + + - 1/300 DATA(1, -2, 2) + 1/150 DATA(-2, -1, 2) - 1/300 DATA(2, -2, 2) + + - 1/150 DATA(-2, 1, 2) - 1/150 DATA(0, 1, 1) - 1/150 DATA(1, 1, 1) + + + 1/300 DATA(-2, 2, 2) + 1/150 DATA(-1, -1, -1) + 1/150 DATA(0, -1, -1) + + + 1/300 DATA(1, 2, -1) - 1/150 DATA(2, 1, -1) + 1/300 DATA(-1, 2, -1) + + + 1/300 DATA(0, 2, -1) + 1/150 DATA(2, -1, -1) - 1/150 DATA(2, 1, 1) + + + 1/300 DATA(-1, 2, 1) + 1/300 DATA(0, 2, 1) + 1/300 DATA(1, 2, 1) + + + 1/150 DATA(2, -1, 1) + 1/150 DATA(1, -1, -1) + 1/300 DATA(1, 2, 0) + + + 1/300 DATA(2, 2, 0) - 1/150 DATA(2, 1, 0) + 1/300 DATA(-1, 2, 0) + + + 1/300 DATA(0, 2, 0) + 1/150 DATA(2, -1, 0) + 1/300 DATA(2, 2, -1) + + + 1/300 DATA(1, 2, 2) + 1/150 DATA(-2, -1, -2) + 1/300 DATA(2, 2, 2) + + - 1/300 DATA(2, -2, -2) - 1/300 DATA(1, -2, -2) - 1/150 DATA(1, 1, 2) + + - 1/150 DATA(2, 1, 2) + 1/300 DATA(-1, 2, 2) + 1/300 DATA(0, 2, 2) + + - 1/300 DATA(0, -2, -2) - 1/300 DATA(-1, -2, -2) - 1/150 DATA(-1, 1, 2) + + - 1/150 DATA(0, 1, 2) - 1/300 DATA(-2, -2, -2) + 1/150 DATA(1, -1, 2) + + + 1/150 DATA(2, -1, 2) + 1/150 DATA(-1, -1, 2) + 1/150 DATA(0, -1, 2) + + + 1/300 DATA(2, 2, 1) + 1/300 DATA(-2, 2, -2) - 1/150 DATA(2, 1, -2) + + - 1/150 DATA(1, 1, -2) - 1/150 DATA(0, 1, -2) - 1/150 DATA(-1, 1, -2) + + - 1/150 DATA(-2, 1, -2) + 1/150 DATA(2, -1, -2) + 1/150 DATA(1, -1, -2) + + + 1/150 DATA(0, -1, -2) + 1/150 DATA(-1, -1, -2) - 1/300 DATA(2, -2, -1) + + - 1/300 DATA(1, -2, -1) - 1/300 DATA(0, -2, -1) - 1/300 DATA(-1, -2, -1) + + - 1/300 DATA(-2, -2, -1) + 1/300 DATA(2, 2, -2) + 1/300 DATA(1, 2, -2) + + + 1/300 DATA(0, 2, -2) + 1/300 DATA(-1, 2, -2) - 1/150 DATA(-2, 1, -1) + + + 1/150 DATA(-2, -1, -1) + 1/300 DATA(-2, 2, -1) - 1/300 DATA(0, -2, 0) + + - 1/300 DATA(-1, -2, 0) - 1/300 DATA(-2, -2, 0) + 1/150 DATA(-2, -1, 0) + + - 1/300 DATA(2, -2, 0) - 1/300 DATA(1, -2, 0) - 1/150 DATA(-2, 1, 0) + + + 1/300 DATA(-2, 2, 0) - 1/300 DATA(-2, -2, 1) - 1/300 DATA(-1, -2, 1) + + - 1/300 DATA(1, -2, 1) - 1/300 DATA(0, -2, 1) - 1/300 DATA(2, -2, 1) + + + 1/150 DATA(-2, -1, 1) - 1/150 DATA(-2, 1, 1) + 1/300 DATA(-2, 2, 1) + + 3 / 17 17 + - 1/300 DATA(-2, -2, 2)) y + |- --- DATA(-1, 1, -1) + --- DATA(1, 1, -1) + \ 525 525 + + 37 37 + - ---- DATA(-1, -1, 0) + ---- DATA(1, -1, 0) - 4/105 DATA(-1, 0, 0) + 1050 1050 + + 37 17 37 + - ---- DATA(-1, 1, 0) - --- DATA(-1, 1, 1) - ---- DATA(-1, 0, 1) + 1050 525 1050 + + 17 17 + + --- DATA(1, -1, 1) - --- DATA(-1, -1, 1) - 8/525 DATA(-1, -2, 2) + 525 525 + + 37 37 + - ---- DATA(-1, 0, -1) + ---- DATA(1, 0, -1) + 4/105 DATA(1, 0, 0) + 1050 1050 + + 37 19 + + ---- DATA(1, 1, 0) + 8/525 DATA(1, -2, 2) + ---- DATA(-2, -1, 2) + 1050 2100 + + 11 19 + - --- DATA(2, -2, 2) + 1/300 DATA(-2, 0, 2) + ---- DATA(-2, 1, 2) + 420 2100 + + 37 17 11 + + ---- DATA(1, 0, 1) + --- DATA(1, 1, 1) + --- DATA(-2, 2, 2) + 1050 525 420 + + 17 17 + - --- DATA(-1, -1, -1) + 1/42 DATA(1, 2, -1) + ---- DATA(2, 1, -1) + 525 2100 + + 17 29 + - 1/42 DATA(-1, 2, -1) + ---- DATA(2, -1, -1) + ---- DATA(2, 0, -1) + 2100 2100 + + 17 + + ---- DATA(2, 1, 1) - 1/42 DATA(-1, 2, 1) + 1/42 DATA(1, 2, 1) + 2100 + + 17 29 17 + + ---- DATA(2, -1, 1) + ---- DATA(2, 0, 1) + --- DATA(1, -1, -1) + 2100 2100 525 + + 29 + + 2/75 DATA(1, 2, 0) - 1/300 DATA(2, 2, 0) + ---- DATA(2, 1, 0) + 2100 + + 29 41 + - 2/75 DATA(-1, 2, 0) + ---- DATA(2, -1, 0) + ---- DATA(2, 0, 0) + 2100 2100 + + 19 19 + - ---- DATA(2, 2, -1) + 8/525 DATA(1, 2, 2) + ---- DATA(-2, -1, -2) + 2100 2100 + + 11 11 + - --- DATA(2, 2, 2) - --- DATA(2, -2, -2) + 8/525 DATA(1, -2, -2) + 420 420 + + 19 + + 1/42 DATA(1, 1, 2) - ---- DATA(2, 1, 2) - 8/525 DATA(-1, 2, 2) + 2100 + + - 8/525 DATA(-1, -2, -2) + 2/75 DATA(1, 0, 2) - 1/300 DATA(2, 0, 2) + + 11 + - 1/42 DATA(-1, 1, 2) + --- DATA(-2, -2, -2) + 1/42 DATA(1, -1, 2) + 420 + + 19 + - ---- DATA(2, -1, 2) - 2/75 DATA(-1, 0, 2) - 1/42 DATA(-1, -1, 2) + 2100 + + 19 11 19 + - ---- DATA(2, 2, 1) + --- DATA(-2, 2, -2) - ---- DATA(2, 1, -2) + 2100 420 2100 + + 19 + + 1/42 DATA(1, 1, -2) - 1/42 DATA(-1, 1, -2) + ---- DATA(-2, 1, -2) + 2100 + + - 1/300 DATA(2, 0, -2) + 2/75 DATA(1, 0, -2) - 2/75 DATA(-1, 0, -2) + + 19 + + 1/300 DATA(-2, 0, -2) - ---- DATA(2, -1, -2) + 1/42 DATA(1, -1, -2) + 2100 + + 19 + - 1/42 DATA(-1, -1, -2) - ---- DATA(2, -2, -1) + 1/42 DATA(1, -2, -1) + 2100 + + 19 11 + - 1/42 DATA(-1, -2, -1) + ---- DATA(-2, -2, -1) - --- DATA(2, 2, -2) + 2100 420 + + 17 + + 8/525 DATA(1, 2, -2) - 8/525 DATA(-1, 2, -2) - ---- DATA(-2, 1, -1) + 2100 + + 29 17 19 + - ---- DATA(-2, 0, -1) - ---- DATA(-2, -1, -1) + ---- DATA(-2, 2, -1) + 2100 2100 2100 + + 41 + - 2/75 DATA(-1, -2, 0) + 1/300 DATA(-2, -2, 0) - ---- DATA(-2, 0, 0) + 2100 + + 29 + - ---- DATA(-2, -1, 0) - 1/300 DATA(2, -2, 0) + 2/75 DATA(1, -2, 0) + 2100 + + 29 19 + - ---- DATA(-2, 1, 0) + 1/300 DATA(-2, 2, 0) + ---- DATA(-2, -2, 1) + 2100 2100 + + 19 + - 1/42 DATA(-1, -2, 1) + 1/42 DATA(1, -2, 1) - ---- DATA(2, -2, 1) + 2100 + + 17 29 17 + - ---- DATA(-2, -1, 1) - ---- DATA(-2, 0, 1) - ---- DATA(-2, 1, 1) + 2100 2100 2100 + + 19 11 \ /17 + + ---- DATA(-2, 2, 1) + --- DATA(-2, -2, 2)| x + |--- DATA(-1, 1, -1) + 2100 420 / \525 + + 37 17 37 + + ---- DATA(0, 1, -1) + --- DATA(1, 1, -1) - ---- DATA(-1, -1, 0) + 1050 525 1050 + + 37 37 + - 4/105 DATA(0, -1, 0) - ---- DATA(1, -1, 0) + ---- DATA(-1, 1, 0) + 1050 1050 + + 17 17 17 + + --- DATA(-1, 1, 1) - --- DATA(1, -1, 1) - --- DATA(-1, -1, 1) + 525 525 525 + + 37 19 + - ---- DATA(0, -1, 1) + ---- DATA(-1, -2, 2) + 1/300 DATA(0, -2, 2) + 1050 2100 + + 37 19 + + 4/105 DATA(0, 1, 0) + ---- DATA(1, 1, 0) + ---- DATA(1, -2, 2) + 1050 2100 + + 11 + - 8/525 DATA(-2, -1, 2) + --- DATA(2, -2, 2) + 8/525 DATA(-2, 1, 2) + 420 + + 37 17 11 + + ---- DATA(0, 1, 1) + --- DATA(1, 1, 1) - --- DATA(-2, 2, 2) + 1050 525 420 + + 17 37 17 + - --- DATA(-1, -1, -1) - ---- DATA(0, -1, -1) + ---- DATA(1, 2, -1) + 525 1050 2100 + + 17 29 + + 1/42 DATA(2, 1, -1) + ---- DATA(-1, 2, -1) + ---- DATA(0, 2, -1) + 2100 2100 + + 17 + - 1/42 DATA(2, -1, -1) + 1/42 DATA(2, 1, 1) + ---- DATA(-1, 2, 1) + 2100 + + 29 17 + + ---- DATA(0, 2, 1) + ---- DATA(1, 2, 1) - 1/42 DATA(2, -1, 1) + 2100 2100 + + 17 29 + - --- DATA(1, -1, -1) + ---- DATA(1, 2, 0) - 1/300 DATA(2, 2, 0) + 525 2100 + + 29 41 + + 2/75 DATA(2, 1, 0) + ---- DATA(-1, 2, 0) + ---- DATA(0, 2, 0) + 2100 2100 + + 19 19 + - 2/75 DATA(2, -1, 0) - ---- DATA(2, 2, -1) - ---- DATA(1, 2, 2) + 2100 2100 + + 11 11 + - 8/525 DATA(-2, -1, -2) - --- DATA(2, 2, 2) + --- DATA(2, -2, -2) + 420 420 + + 19 + + ---- DATA(1, -2, -2) + 1/42 DATA(1, 1, 2) + 8/525 DATA(2, 1, 2) + 2100 + + 19 + - ---- DATA(-1, 2, 2) - 1/300 DATA(0, 2, 2) + 1/300 DATA(0, -2, -2) + 2100 + + 19 + + ---- DATA(-1, -2, -2) + 1/42 DATA(-1, 1, 2) + 2/75 DATA(0, 1, 2) + 2100 + + 11 + + --- DATA(-2, -2, -2) - 1/42 DATA(1, -1, 2) - 8/525 DATA(2, -1, 2) + 420 + + 19 + - 1/42 DATA(-1, -1, 2) - 2/75 DATA(0, -1, 2) - ---- DATA(2, 2, 1) + 2100 + + 11 + - --- DATA(-2, 2, -2) + 8/525 DATA(2, 1, -2) + 1/42 DATA(1, 1, -2) + 420 + + + 2/75 DATA(0, 1, -2) + 1/42 DATA(-1, 1, -2) + 8/525 DATA(-2, 1, -2) + + - 8/525 DATA(2, -1, -2) - 1/42 DATA(1, -1, -2) - 2/75 DATA(0, -1, -2) + + 19 17 + - 1/42 DATA(-1, -1, -2) + ---- DATA(2, -2, -1) - ---- DATA(1, -2, -1) + 2100 2100 + + 29 17 19 + - ---- DATA(0, -2, -1) - ---- DATA(-1, -2, -1) + ---- DATA(-2, -2, -1) + 2100 2100 2100 + + 11 19 + - --- DATA(2, 2, -2) - ---- DATA(1, 2, -2) - 1/300 DATA(0, 2, -2) + 420 2100 + + 19 + - ---- DATA(-1, 2, -2) + 1/42 DATA(-2, 1, -1) - 1/42 DATA(-2, -1, -1) + 2100 + + 19 41 29 + - ---- DATA(-2, 2, -1) - ---- DATA(0, -2, 0) - ---- DATA(-1, -2, 0) + 2100 2100 2100 + + + 1/300 DATA(-2, -2, 0) - 2/75 DATA(-2, -1, 0) + 1/300 DATA(2, -2, 0) + + 29 + - ---- DATA(1, -2, 0) + 2/75 DATA(-2, 1, 0) - 1/300 DATA(-2, 2, 0) + 2100 + + 19 17 17 + + ---- DATA(-2, -2, 1) - ---- DATA(-1, -2, 1) - ---- DATA(1, -2, 1) + 2100 2100 2100 + + 29 19 + - ---- DATA(0, -2, 1) + ---- DATA(2, -2, 1) - 1/42 DATA(-2, -1, 1) + 2100 2100 + + 19 11 \ / + + 1/42 DATA(-2, 1, 1) - ---- DATA(-2, 2, 1) + --- DATA(-2, -2, 2)| y + | + 2100 420 / \ + + 17 37 17 + - --- DATA(-1, 1, -1) - ---- DATA(0, 1, -1) - --- DATA(1, 1, -1) + 525 1050 525 + + 17 37 17 + + --- DATA(-1, 1, 1) + ---- DATA(-1, 0, 1) + --- DATA(1, -1, 1) + 525 1050 525 + + 17 37 19 + + --- DATA(-1, -1, 1) + ---- DATA(0, -1, 1) - ---- DATA(-1, -2, 2) + 525 1050 2100 + + 37 + - 1/300 DATA(0, -2, 2) - ---- DATA(-1, 0, -1) - 4/105 DATA(0, 0, -1) + 1050 + + 37 19 + - ---- DATA(1, 0, -1) + 4/105 DATA(0, 0, 1) - ---- DATA(1, -2, 2) + 1050 2100 + + 19 11 + - ---- DATA(-2, -1, 2) - --- DATA(2, -2, 2) - 1/300 DATA(-2, 0, 2) + 2100 420 + + 19 37 37 + - ---- DATA(-2, 1, 2) + ---- DATA(1, 0, 1) + ---- DATA(0, 1, 1) + 2100 1050 1050 + + 17 11 17 + + --- DATA(1, 1, 1) - --- DATA(-2, 2, 2) - --- DATA(-1, -1, -1) + 525 420 525 + + 37 + - ---- DATA(0, -1, -1) - 1/42 DATA(1, 2, -1) - 1/42 DATA(2, 1, -1) + 1050 + + - 1/42 DATA(-1, 2, -1) - 2/75 DATA(0, 2, -1) - 1/42 DATA(2, -1, -1) + + - 2/75 DATA(2, 0, -1) + 1/42 DATA(2, 1, 1) + 1/42 DATA(-1, 2, 1) + + + 2/75 DATA(0, 2, 1) + 1/42 DATA(1, 2, 1) + 1/42 DATA(2, -1, 1) + + 17 + + 2/75 DATA(2, 0, 1) - --- DATA(1, -1, -1) - 8/525 DATA(2, 2, -1) + 525 + + 19 19 11 + - ---- DATA(1, 2, 2) + ---- DATA(-2, -1, -2) - --- DATA(2, 2, 2) + 2100 2100 420 + + 11 19 17 + + --- DATA(2, -2, -2) + ---- DATA(1, -2, -2) + ---- DATA(1, 1, 2) + 420 2100 2100 + + 19 19 + - ---- DATA(2, 1, 2) - ---- DATA(-1, 2, 2) - 1/300 DATA(0, 2, 2) + 2100 2100 + + 19 29 + + 1/300 DATA(0, -2, -2) + ---- DATA(-1, -2, -2) + ---- DATA(1, 0, 2) + 2100 2100 + + 17 29 + - 1/300 DATA(2, 0, 2) + ---- DATA(-1, 1, 2) + ---- DATA(0, 1, 2) + 2100 2100 + + 11 17 19 + + --- DATA(-2, -2, -2) + ---- DATA(1, -1, 2) - ---- DATA(2, -1, 2) + 420 2100 2100 + + 29 41 17 + + ---- DATA(-1, 0, 2) + ---- DATA(0, 0, 2) + ---- DATA(-1, -1, 2) + 2100 2100 2100 + + 29 11 + + ---- DATA(0, -1, 2) + 8/525 DATA(2, 2, 1) + --- DATA(-2, 2, -2) + 2100 420 + + 19 17 29 + + ---- DATA(2, 1, -2) - ---- DATA(1, 1, -2) - ---- DATA(0, 1, -2) + 2100 2100 2100 + + 17 19 + - ---- DATA(-1, 1, -2) + ---- DATA(-2, 1, -2) + 1/300 DATA(2, 0, -2) + 2100 2100 + + 41 29 29 + - ---- DATA(0, 0, -2) - ---- DATA(1, 0, -2) - ---- DATA(-1, 0, -2) + 2100 2100 2100 + + 19 17 + + 1/300 DATA(-2, 0, -2) + ---- DATA(2, -1, -2) - ---- DATA(1, -1, -2) + 2100 2100 + + 29 17 + - ---- DATA(0, -1, -2) - ---- DATA(-1, -1, -2) - 8/525 DATA(2, -2, -1) + 2100 2100 + + - 1/42 DATA(1, -2, -1) - 2/75 DATA(0, -2, -1) - 1/42 DATA(-1, -2, -1) + + 11 19 + - 8/525 DATA(-2, -2, -1) + --- DATA(2, 2, -2) + ---- DATA(1, 2, -2) + 420 2100 + + 19 + + 1/300 DATA(0, 2, -2) + ---- DATA(-1, 2, -2) - 1/42 DATA(-2, 1, -1) + 2100 + + - 2/75 DATA(-2, 0, -1) - 1/42 DATA(-2, -1, -1) - 8/525 DATA(-2, 2, -1) + + + 8/525 DATA(-2, -2, 1) + 1/42 DATA(-1, -2, 1) + 1/42 DATA(1, -2, 1) + + + 2/75 DATA(0, -2, 1) + 8/525 DATA(2, -2, 1) + 1/42 DATA(-2, -1, 1) + + + 2/75 DATA(-2, 0, 1) + 1/42 DATA(-2, 1, 1) + 8/525 DATA(-2, 2, 1) + + 11 \ / 83 151 + - --- DATA(-2, -2, 2)| z + |---- DATA(-1, 1, -1) + ---- DATA(0, 1, -1) + 420 / \3675 7350 + + 83 151 68 + + ---- DATA(1, 1, -1) + ---- DATA(-1, -1, 0) + ---- DATA(0, -1, 0) + 3675 7350 3675 + + 151 61 151 + + ---- DATA(1, -1, 0) - --- DATA(-1, 0, 0) + ---- DATA(-1, 1, 0) + 7350 980 7350 + + 83 57 83 + + ---- DATA(-1, 1, 1) - --- DATA(-1, 0, 1) + ---- DATA(1, -1, 1) + 3675 980 3675 + + 83 151 169 + + ---- DATA(-1, -1, 1) + ---- DATA(0, -1, 1) - ----- DATA(-1, -2, 2) + 3675 7350 29400 + + 57 61 + - 1/600 DATA(0, -2, 2) - --- DATA(-1, 0, -1) - --- DATA(0, 0, -1) + 980 980 + + 57 13 61 + - --- DATA(1, 0, -1) - --- DATA(0, 0, 0) - --- DATA(1, 0, 0) + 980 196 980 + + 68 151 61 + + ---- DATA(0, 1, 0) + ---- DATA(1, 1, 0) - --- DATA(0, 0, 1) + 3675 7350 980 + + 169 128 529 + - ----- DATA(1, -2, 2) + ---- DATA(-2, -1, 2) - ----- DATA(2, -2, 2) + 29400 3675 29400 + + 33 128 57 + - --- DATA(-2, 0, 2) + ---- DATA(-2, 1, 2) - --- DATA(1, 0, 1) + 980 3675 980 + + 151 83 529 + + ---- DATA(0, 1, 1) + ---- DATA(1, 1, 1) - ----- DATA(-2, 2, 2) + 7350 3675 29400 + + 83 151 191 + + ---- DATA(-1, -1, -1) + ---- DATA(0, -1, -1) + ----- DATA(1, 2, -1) + 3675 7350 29400 + + 211 191 311 + + ---- DATA(2, 1, -1) + ----- DATA(-1, 2, -1) + ----- DATA(0, 2, -1) + 7350 29400 29400 + + 211 211 + + ---- DATA(2, -1, -1) - 9/196 DATA(2, 0, -1) + ---- DATA(2, 1, 1) + 7350 7350 + + 191 311 191 + + ----- DATA(-1, 2, 1) + ----- DATA(0, 2, 1) + ----- DATA(1, 2, 1) + 29400 29400 29400 + + 211 83 + + ---- DATA(2, -1, 1) - 9/196 DATA(2, 0, 1) + ---- DATA(1, -1, -1) + 7350 3675 + + 311 + + ----- DATA(1, 2, 0) - 1/600 DATA(2, 2, 0) + 2/75 DATA(2, 1, 0) + 29400 + + 311 431 + + ----- DATA(-1, 2, 0) + ----- DATA(0, 2, 0) + 2/75 DATA(2, -1, 0) + 29400 29400 + + 169 169 + - 1/20 DATA(2, 0, 0) - ----- DATA(2, 2, -1) - ----- DATA(1, 2, 2) + 29400 29400 + + 128 529 529 + + ---- DATA(-2, -1, -2) - ----- DATA(2, 2, 2) - ----- DATA(2, -2, -2) + 3675 29400 29400 + + 169 211 128 + - ----- DATA(1, -2, -2) + ---- DATA(1, 1, 2) + ---- DATA(2, 1, 2) + 29400 7350 3675 + + 169 + - ----- DATA(-1, 2, 2) - 1/600 DATA(0, 2, 2) - 1/600 DATA(0, -2, -2) + 29400 + + 169 33 + - ----- DATA(-1, -2, -2) - 9/196 DATA(1, 0, 2) - --- DATA(2, 0, 2) + 29400 980 + + 211 529 + + ---- DATA(-1, 1, 2) + 2/75 DATA(0, 1, 2) - ----- DATA(-2, -2, -2) + 7350 29400 + + 211 128 + + ---- DATA(1, -1, 2) + ---- DATA(2, -1, 2) - 9/196 DATA(-1, 0, 2) + 7350 3675 + + 211 + - 1/20 DATA(0, 0, 2) + ---- DATA(-1, -1, 2) + 2/75 DATA(0, -1, 2) + 7350 + + 169 529 128 + - ----- DATA(2, 2, 1) - ----- DATA(-2, 2, -2) + ---- DATA(2, 1, -2) + 29400 29400 3675 + + 211 211 + + ---- DATA(1, 1, -2) + 2/75 DATA(0, 1, -2) + ---- DATA(-1, 1, -2) + 7350 7350 + + 128 33 + + ---- DATA(-2, 1, -2) - --- DATA(2, 0, -2) - 1/20 DATA(0, 0, -2) + 3675 980 + + 33 + - 9/196 DATA(1, 0, -2) - 9/196 DATA(-1, 0, -2) - --- DATA(-2, 0, -2) + 980 + + 128 211 + + ---- DATA(2, -1, -2) + ---- DATA(1, -1, -2) + 2/75 DATA(0, -1, -2) + 3675 7350 + + 211 169 191 + + ---- DATA(-1, -1, -2) - ----- DATA(2, -2, -1) + ----- DATA(1, -2, -1) + 7350 29400 29400 + + 311 191 169 + + ----- DATA(0, -2, -1) + ----- DATA(-1, -2, -1) - ----- DATA(-2, -2, -1) + 29400 29400 29400 + + 529 169 + - ----- DATA(2, 2, -2) - ----- DATA(1, 2, -2) - 1/600 DATA(0, 2, -2) + 29400 29400 + + 169 211 + - ----- DATA(-1, 2, -2) + ---- DATA(-2, 1, -1) - 9/196 DATA(-2, 0, -1) + 29400 7350 + + 211 169 431 + + ---- DATA(-2, -1, -1) - ----- DATA(-2, 2, -1) + ----- DATA(0, -2, 0) + 7350 29400 29400 + + 311 + + ----- DATA(-1, -2, 0) - 1/600 DATA(-2, -2, 0) - 1/20 DATA(-2, 0, 0) + 29400 + + 311 + + 2/75 DATA(-2, -1, 0) - 1/600 DATA(2, -2, 0) + ----- DATA(1, -2, 0) + 29400 + + 169 + + 2/75 DATA(-2, 1, 0) - 1/600 DATA(-2, 2, 0) - ----- DATA(-2, -2, 1) + 29400 + + 191 191 311 + + ----- DATA(-1, -2, 1) + ----- DATA(1, -2, 1) + ----- DATA(0, -2, 1) + 29400 29400 29400 + + 169 211 + - ----- DATA(2, -2, 1) + ---- DATA(-2, -1, 1) - 9/196 DATA(-2, 0, 1) + 29400 7350 + + 211 169 529 \ 2 + + ---- DATA(-2, 1, 1) - ----- DATA(-2, 2, 1) - ----- DATA(-2, -2, 2)| y + 7350 29400 29400 / + + + (- 1/150 DATA(-1, 1, -1) - 1/150 DATA(0, 1, -1) - 1/150 DATA(1, 1, -1) + + + 1/100 DATA(-1, -1, 0) + 1/100 DATA(0, -1, 0) + 1/100 DATA(1, -1, 0) + + + 1/100 DATA(-1, 0, 0) + 1/100 DATA(-1, 1, 0) - 1/150 DATA(-1, 1, 1) + + - 1/150 DATA(-1, 0, 1) - 1/150 DATA(1, -1, 1) - 1/150 DATA(-1, -1, 1) + + - 1/150 DATA(0, -1, 1) + 1/600 DATA(-1, -2, 2) + 1/600 DATA(0, -2, 2) + + - 1/150 DATA(-1, 0, -1) - 1/150 DATA(0, 0, -1) - 1/150 DATA(1, 0, -1) + + + 1/100 DATA(0, 0, 0) + 1/100 DATA(1, 0, 0) + 1/100 DATA(0, 1, 0) + + + 1/100 DATA(1, 1, 0) - 1/150 DATA(0, 0, 1) + 1/600 DATA(1, -2, 2) + + + 1/600 DATA(-2, -1, 2) + 1/600 DATA(2, -2, 2) + 1/600 DATA(-2, 0, 2) + + + 1/600 DATA(-2, 1, 2) - 1/150 DATA(1, 0, 1) - 1/150 DATA(0, 1, 1) + + - 1/150 DATA(1, 1, 1) + 1/600 DATA(-2, 2, 2) - 1/150 DATA(-1, -1, -1) + + - 1/150 DATA(0, -1, -1) - 1/150 DATA(1, 2, -1) - 1/150 DATA(2, 1, -1) + + - 1/150 DATA(-1, 2, -1) - 1/150 DATA(0, 2, -1) - 1/150 DATA(2, -1, -1) + + - 1/150 DATA(2, 0, -1) - 1/150 DATA(2, 1, 1) - 1/150 DATA(-1, 2, 1) + + - 1/150 DATA(0, 2, 1) - 1/150 DATA(1, 2, 1) - 1/150 DATA(2, -1, 1) + + - 1/150 DATA(2, 0, 1) - 1/150 DATA(1, -1, -1) + 1/100 DATA(1, 2, 0) + + + 1/100 DATA(2, 2, 0) + 1/100 DATA(2, 1, 0) + 1/100 DATA(-1, 2, 0) + + + 1/100 DATA(0, 2, 0) + 1/100 DATA(2, -1, 0) + 1/100 DATA(2, 0, 0) + + - 1/150 DATA(2, 2, -1) + 1/600 DATA(1, 2, 2) + 1/600 DATA(-2, -1, -2) + + + 1/600 DATA(2, 2, 2) + 1/600 DATA(2, -2, -2) + 1/600 DATA(1, -2, -2) + + + 1/600 DATA(1, 1, 2) + 1/600 DATA(2, 1, 2) + 1/600 DATA(-1, 2, 2) + + + 1/600 DATA(0, 2, 2) + 1/600 DATA(0, -2, -2) + 1/600 DATA(-1, -2, -2) + + + 1/600 DATA(1, 0, 2) + 1/600 DATA(2, 0, 2) + 1/600 DATA(-1, 1, 2) + + + 1/600 DATA(0, 1, 2) + 1/600 DATA(-2, -2, -2) + 1/600 DATA(1, -1, 2) + + + 1/600 DATA(2, -1, 2) + 1/600 DATA(-1, 0, 2) + 1/600 DATA(0, 0, 2) + + + 1/600 DATA(-1, -1, 2) + 1/600 DATA(0, -1, 2) - 1/150 DATA(2, 2, 1) + + + 1/600 DATA(-2, 2, -2) + 1/600 DATA(2, 1, -2) + 1/600 DATA(1, 1, -2) + + + 1/600 DATA(0, 1, -2) + 1/600 DATA(-1, 1, -2) + 1/600 DATA(-2, 1, -2) + + + 1/600 DATA(2, 0, -2) + 1/600 DATA(0, 0, -2) + 1/600 DATA(1, 0, -2) + + + 1/600 DATA(-1, 0, -2) + 1/600 DATA(-2, 0, -2) + 1/600 DATA(2, -1, -2) + + + 1/600 DATA(1, -1, -2) + 1/600 DATA(0, -1, -2) + 1/600 DATA(-1, -1, -2) + + - 1/150 DATA(2, -2, -1) - 1/150 DATA(1, -2, -1) - 1/150 DATA(0, -2, -1) + + - 1/150 DATA(-1, -2, -1) - 1/150 DATA(-2, -2, -1) + 1/600 DATA(2, 2, -2) + + + 1/600 DATA(1, 2, -2) + 1/600 DATA(0, 2, -2) + 1/600 DATA(-1, 2, -2) + + - 1/150 DATA(-2, 1, -1) - 1/150 DATA(-2, 0, -1) - 1/150 DATA(-2, -1, -1) + + - 1/150 DATA(-2, 2, -1) + 1/100 DATA(0, -2, 0) + 1/100 DATA(-1, -2, 0) + + + 1/100 DATA(-2, -2, 0) + 1/100 DATA(-2, 0, 0) + 1/100 DATA(-2, -1, 0) + + + 1/100 DATA(2, -2, 0) + 1/100 DATA(1, -2, 0) + 1/100 DATA(-2, 1, 0) + + + 1/100 DATA(-2, 2, 0) - 1/150 DATA(-2, -2, 1) - 1/150 DATA(-1, -2, 1) + + - 1/150 DATA(1, -2, 1) - 1/150 DATA(0, -2, 1) - 1/150 DATA(2, -2, 1) + + - 1/150 DATA(-2, -1, 1) - 1/150 DATA(-2, 0, 1) - 1/150 DATA(-2, 1, 1) + + 4 + - 1/150 DATA(-2, 2, 1) + 1/600 DATA(-2, -2, 2)) z + ( + + - 1/150 DATA(-1, 1, -1) + 1/100 DATA(0, 1, -1) - 1/150 DATA(1, 1, -1) + + - 1/150 DATA(-1, -1, 0) + 1/100 DATA(0, -1, 0) - 1/150 DATA(1, -1, 0) + + - 1/150 DATA(-1, 0, 0) - 1/150 DATA(-1, 1, 0) - 1/150 DATA(-1, 1, 1) + + - 1/150 DATA(-1, 0, 1) - 1/150 DATA(1, -1, 1) - 1/150 DATA(-1, -1, 1) + + + 1/100 DATA(0, -1, 1) - 1/150 DATA(-1, -2, 2) + 1/100 DATA(0, -2, 2) + + - 1/150 DATA(-1, 0, -1) + 1/100 DATA(0, 0, -1) - 1/150 DATA(1, 0, -1) + + + 1/100 DATA(0, 0, 0) - 1/150 DATA(1, 0, 0) + 1/100 DATA(0, 1, 0) + + - 1/150 DATA(1, 1, 0) + 1/100 DATA(0, 0, 1) - 1/150 DATA(1, -2, 2) + + + 1/600 DATA(-2, -1, 2) + 1/600 DATA(2, -2, 2) + 1/600 DATA(-2, 0, 2) + + + 1/600 DATA(-2, 1, 2) - 1/150 DATA(1, 0, 1) + 1/100 DATA(0, 1, 1) + + - 1/150 DATA(1, 1, 1) + 1/600 DATA(-2, 2, 2) - 1/150 DATA(-1, -1, -1) + + + 1/100 DATA(0, -1, -1) - 1/150 DATA(1, 2, -1) + 1/600 DATA(2, 1, -1) + + - 1/150 DATA(-1, 2, -1) + 1/100 DATA(0, 2, -1) + 1/600 DATA(2, -1, -1) + + + 1/600 DATA(2, 0, -1) + 1/600 DATA(2, 1, 1) - 1/150 DATA(-1, 2, 1) + + + 1/100 DATA(0, 2, 1) - 1/150 DATA(1, 2, 1) + 1/600 DATA(2, -1, 1) + + + 1/600 DATA(2, 0, 1) - 1/150 DATA(1, -1, -1) - 1/150 DATA(1, 2, 0) + + + 1/600 DATA(2, 2, 0) + 1/600 DATA(2, 1, 0) - 1/150 DATA(-1, 2, 0) + + + 1/100 DATA(0, 2, 0) + 1/600 DATA(2, -1, 0) + 1/600 DATA(2, 0, 0) + + + 1/600 DATA(2, 2, -1) - 1/150 DATA(1, 2, 2) + 1/600 DATA(-2, -1, -2) + + + 1/600 DATA(2, 2, 2) + 1/600 DATA(2, -2, -2) - 1/150 DATA(1, -2, -2) + + - 1/150 DATA(1, 1, 2) + 1/600 DATA(2, 1, 2) - 1/150 DATA(-1, 2, 2) + + + 1/100 DATA(0, 2, 2) + 1/100 DATA(0, -2, -2) - 1/150 DATA(-1, -2, -2) + + - 1/150 DATA(1, 0, 2) + 1/600 DATA(2, 0, 2) - 1/150 DATA(-1, 1, 2) + + + 1/100 DATA(0, 1, 2) + 1/600 DATA(-2, -2, -2) - 1/150 DATA(1, -1, 2) + + + 1/600 DATA(2, -1, 2) - 1/150 DATA(-1, 0, 2) + 1/100 DATA(0, 0, 2) + + - 1/150 DATA(-1, -1, 2) + 1/100 DATA(0, -1, 2) + 1/600 DATA(2, 2, 1) + + + 1/600 DATA(-2, 2, -2) + 1/600 DATA(2, 1, -2) - 1/150 DATA(1, 1, -2) + + + 1/100 DATA(0, 1, -2) - 1/150 DATA(-1, 1, -2) + 1/600 DATA(-2, 1, -2) + + + 1/600 DATA(2, 0, -2) + 1/100 DATA(0, 0, -2) - 1/150 DATA(1, 0, -2) + + - 1/150 DATA(-1, 0, -2) + 1/600 DATA(-2, 0, -2) + 1/600 DATA(2, -1, -2) + + - 1/150 DATA(1, -1, -2) + 1/100 DATA(0, -1, -2) - 1/150 DATA(-1, -1, -2) + + + 1/600 DATA(2, -2, -1) - 1/150 DATA(1, -2, -1) + 1/100 DATA(0, -2, -1) + + - 1/150 DATA(-1, -2, -1) + 1/600 DATA(-2, -2, -1) + 1/600 DATA(2, 2, -2) + + - 1/150 DATA(1, 2, -2) + 1/100 DATA(0, 2, -2) - 1/150 DATA(-1, 2, -2) + + + 1/600 DATA(-2, 1, -1) + 1/600 DATA(-2, 0, -1) + 1/600 DATA(-2, -1, -1) + + + 1/600 DATA(-2, 2, -1) + 1/100 DATA(0, -2, 0) - 1/150 DATA(-1, -2, 0) + + + 1/600 DATA(-2, -2, 0) + 1/600 DATA(-2, 0, 0) + 1/600 DATA(-2, -1, 0) + + + 1/600 DATA(2, -2, 0) - 1/150 DATA(1, -2, 0) + 1/600 DATA(-2, 1, 0) + + + 1/600 DATA(-2, 2, 0) + 1/600 DATA(-2, -2, 1) - 1/150 DATA(-1, -2, 1) + + - 1/150 DATA(1, -2, 1) + 1/100 DATA(0, -2, 1) + 1/600 DATA(2, -2, 1) + + + 1/600 DATA(-2, -1, 1) + 1/600 DATA(-2, 0, 1) + 1/600 DATA(-2, 1, 1) + + 4 + + 1/600 DATA(-2, 2, 1) + 1/600 DATA(-2, -2, 2)) x + ( + + - 1/150 DATA(-1, 1, -1) - 1/150 DATA(0, 1, -1) - 1/150 DATA(1, 1, -1) + + - 1/150 DATA(-1, -1, 0) - 1/150 DATA(0, -1, 0) - 1/150 DATA(1, -1, 0) + + + 1/100 DATA(-1, 0, 0) - 1/150 DATA(-1, 1, 0) - 1/150 DATA(-1, 1, 1) + + + 1/100 DATA(-1, 0, 1) - 1/150 DATA(1, -1, 1) - 1/150 DATA(-1, -1, 1) + + - 1/150 DATA(0, -1, 1) + 1/600 DATA(-1, -2, 2) + 1/600 DATA(0, -2, 2) + + + 1/100 DATA(-1, 0, -1) + 1/100 DATA(0, 0, -1) + 1/100 DATA(1, 0, -1) + + + 1/100 DATA(0, 0, 0) + 1/100 DATA(1, 0, 0) - 1/150 DATA(0, 1, 0) + + - 1/150 DATA(1, 1, 0) + 1/100 DATA(0, 0, 1) + 1/600 DATA(1, -2, 2) + + - 1/150 DATA(-2, -1, 2) + 1/600 DATA(2, -2, 2) + 1/100 DATA(-2, 0, 2) + + - 1/150 DATA(-2, 1, 2) + 1/100 DATA(1, 0, 1) - 1/150 DATA(0, 1, 1) + + - 1/150 DATA(1, 1, 1) + 1/600 DATA(-2, 2, 2) - 1/150 DATA(-1, -1, -1) + + - 1/150 DATA(0, -1, -1) + 1/600 DATA(1, 2, -1) - 1/150 DATA(2, 1, -1) + + + 1/600 DATA(-1, 2, -1) + 1/600 DATA(0, 2, -1) - 1/150 DATA(2, -1, -1) + + + 1/100 DATA(2, 0, -1) - 1/150 DATA(2, 1, 1) + 1/600 DATA(-1, 2, 1) + + + 1/600 DATA(0, 2, 1) + 1/600 DATA(1, 2, 1) - 1/150 DATA(2, -1, 1) + + + 1/100 DATA(2, 0, 1) - 1/150 DATA(1, -1, -1) + 1/600 DATA(1, 2, 0) + + + 1/600 DATA(2, 2, 0) - 1/150 DATA(2, 1, 0) + 1/600 DATA(-1, 2, 0) + + + 1/600 DATA(0, 2, 0) - 1/150 DATA(2, -1, 0) + 1/100 DATA(2, 0, 0) + + + 1/600 DATA(2, 2, -1) + 1/600 DATA(1, 2, 2) - 1/150 DATA(-2, -1, -2) + + + 1/600 DATA(2, 2, 2) + 1/600 DATA(2, -2, -2) + 1/600 DATA(1, -2, -2) + + - 1/150 DATA(1, 1, 2) - 1/150 DATA(2, 1, 2) + 1/600 DATA(-1, 2, 2) + + + 1/600 DATA(0, 2, 2) + 1/600 DATA(0, -2, -2) + 1/600 DATA(-1, -2, -2) + + + 1/100 DATA(1, 0, 2) + 1/100 DATA(2, 0, 2) - 1/150 DATA(-1, 1, 2) + + - 1/150 DATA(0, 1, 2) + 1/600 DATA(-2, -2, -2) - 1/150 DATA(1, -1, 2) + + - 1/150 DATA(2, -1, 2) + 1/100 DATA(-1, 0, 2) + 1/100 DATA(0, 0, 2) + + - 1/150 DATA(-1, -1, 2) - 1/150 DATA(0, -1, 2) + 1/600 DATA(2, 2, 1) + + + 1/600 DATA(-2, 2, -2) - 1/150 DATA(2, 1, -2) - 1/150 DATA(1, 1, -2) + + - 1/150 DATA(0, 1, -2) - 1/150 DATA(-1, 1, -2) - 1/150 DATA(-2, 1, -2) + + + 1/100 DATA(2, 0, -2) + 1/100 DATA(0, 0, -2) + 1/100 DATA(1, 0, -2) + + + 1/100 DATA(-1, 0, -2) + 1/100 DATA(-2, 0, -2) - 1/150 DATA(2, -1, -2) + + - 1/150 DATA(1, -1, -2) - 1/150 DATA(0, -1, -2) - 1/150 DATA(-1, -1, -2) + + + 1/600 DATA(2, -2, -1) + 1/600 DATA(1, -2, -1) + 1/600 DATA(0, -2, -1) + + + 1/600 DATA(-1, -2, -1) + 1/600 DATA(-2, -2, -1) + 1/600 DATA(2, 2, -2) + + + 1/600 DATA(1, 2, -2) + 1/600 DATA(0, 2, -2) + 1/600 DATA(-1, 2, -2) + + - 1/150 DATA(-2, 1, -1) + 1/100 DATA(-2, 0, -1) - 1/150 DATA(-2, -1, -1) + + + 1/600 DATA(-2, 2, -1) + 1/600 DATA(0, -2, 0) + 1/600 DATA(-1, -2, 0) + + + 1/600 DATA(-2, -2, 0) + 1/100 DATA(-2, 0, 0) - 1/150 DATA(-2, -1, 0) + + + 1/600 DATA(2, -2, 0) + 1/600 DATA(1, -2, 0) - 1/150 DATA(-2, 1, 0) + + + 1/600 DATA(-2, 2, 0) + 1/600 DATA(-2, -2, 1) + 1/600 DATA(-1, -2, 1) + + + 1/600 DATA(1, -2, 1) + 1/600 DATA(0, -2, 1) + 1/600 DATA(2, -2, 1) + + - 1/150 DATA(-2, -1, 1) + 1/100 DATA(-2, 0, 1) - 1/150 DATA(-2, 1, 1) + + 4 23 + + 1/600 DATA(-2, 2, 1) + 1/600 DATA(-2, -2, 2)) y - ---- DATA(-1, -1, -1) + 6125 + + 272 173 173 + + ---- DATA(0, -1, -1) - ---- DATA(1, 2, -1) - ---- DATA(2, 1, -1) + 6125 6125 6125 + + 173 47 173 + - ---- DATA(-1, 2, -1) + ---- DATA(0, 2, -1) - ---- DATA(2, -1, -1) + 6125 6125 6125 + + 47 + + ---- DATA(2, 0, -1) + (1/150 DATA(-1, 1, -1) - 1/150 DATA(1, 1, -1) + 6125 + + + 1/150 DATA(-1, -1, 0) - 1/150 DATA(1, -1, 0) + 1/150 DATA(-1, 0, 0) + + + 1/150 DATA(-1, 1, 0) + 1/150 DATA(-1, 1, 1) + 1/150 DATA(-1, 0, 1) + + - 1/150 DATA(1, -1, 1) + 1/150 DATA(-1, -1, 1) + 1/150 DATA(-1, -2, 2) + + + 1/150 DATA(-1, 0, -1) - 1/150 DATA(1, 0, -1) - 1/150 DATA(1, 0, 0) + + - 1/150 DATA(1, 1, 0) - 1/150 DATA(1, -2, 2) - 1/300 DATA(-2, -1, 2) + + + 1/300 DATA(2, -2, 2) - 1/300 DATA(-2, 0, 2) - 1/300 DATA(-2, 1, 2) + + - 1/150 DATA(1, 0, 1) - 1/150 DATA(1, 1, 1) - 1/300 DATA(-2, 2, 2) + + + 1/150 DATA(-1, -1, -1) - 1/150 DATA(1, 2, -1) + 1/300 DATA(2, 1, -1) + + + 1/150 DATA(-1, 2, -1) + 1/300 DATA(2, -1, -1) + 1/300 DATA(2, 0, -1) + + + 1/300 DATA(2, 1, 1) + 1/150 DATA(-1, 2, 1) - 1/150 DATA(1, 2, 1) + + + 1/300 DATA(2, -1, 1) + 1/300 DATA(2, 0, 1) - 1/150 DATA(1, -1, -1) + + - 1/150 DATA(1, 2, 0) + 1/300 DATA(2, 2, 0) + 1/300 DATA(2, 1, 0) + + + 1/150 DATA(-1, 2, 0) + 1/300 DATA(2, -1, 0) + 1/300 DATA(2, 0, 0) + + + 1/300 DATA(2, 2, -1) - 1/150 DATA(1, 2, 2) - 1/300 DATA(-2, -1, -2) + + + 1/300 DATA(2, 2, 2) + 1/300 DATA(2, -2, -2) - 1/150 DATA(1, -2, -2) + + - 1/150 DATA(1, 1, 2) + 1/300 DATA(2, 1, 2) + 1/150 DATA(-1, 2, 2) + + + 1/150 DATA(-1, -2, -2) - 1/150 DATA(1, 0, 2) + 1/300 DATA(2, 0, 2) + + + 1/150 DATA(-1, 1, 2) - 1/300 DATA(-2, -2, -2) - 1/150 DATA(1, -1, 2) + + + 1/300 DATA(2, -1, 2) + 1/150 DATA(-1, 0, 2) + 1/150 DATA(-1, -1, 2) + + + 1/300 DATA(2, 2, 1) - 1/300 DATA(-2, 2, -2) + 1/300 DATA(2, 1, -2) + + - 1/150 DATA(1, 1, -2) + 1/150 DATA(-1, 1, -2) - 1/300 DATA(-2, 1, -2) + + + 1/300 DATA(2, 0, -2) - 1/150 DATA(1, 0, -2) + 1/150 DATA(-1, 0, -2) + + - 1/300 DATA(-2, 0, -2) + 1/300 DATA(2, -1, -2) - 1/150 DATA(1, -1, -2) + + + 1/150 DATA(-1, -1, -2) + 1/300 DATA(2, -2, -1) - 1/150 DATA(1, -2, -1) + + + 1/150 DATA(-1, -2, -1) - 1/300 DATA(-2, -2, -1) + 1/300 DATA(2, 2, -2) + + - 1/150 DATA(1, 2, -2) + 1/150 DATA(-1, 2, -2) - 1/300 DATA(-2, 1, -1) + + - 1/300 DATA(-2, 0, -1) - 1/300 DATA(-2, -1, -1) - 1/300 DATA(-2, 2, -1) + + + 1/150 DATA(-1, -2, 0) - 1/300 DATA(-2, -2, 0) - 1/300 DATA(-2, 0, 0) + + - 1/300 DATA(-2, -1, 0) + 1/300 DATA(2, -2, 0) - 1/150 DATA(1, -2, 0) + + - 1/300 DATA(-2, 1, 0) - 1/300 DATA(-2, 2, 0) - 1/300 DATA(-2, -2, 1) + + + 1/150 DATA(-1, -2, 1) - 1/150 DATA(1, -2, 1) + 1/300 DATA(2, -2, 1) + + - 1/300 DATA(-2, -1, 1) - 1/300 DATA(-2, 0, 1) - 1/300 DATA(-2, 1, 1) + + 3 + - 1/300 DATA(-2, 2, 1) - 1/300 DATA(-2, -2, 2)) x + ( + + 1/150 DATA(-1, 1, -1) + 1/150 DATA(0, 1, -1) + 1/150 DATA(1, 1, -1) + + - 1/150 DATA(-1, 1, 1) - 1/150 DATA(-1, 0, 1) - 1/150 DATA(1, -1, 1) + + - 1/150 DATA(-1, -1, 1) - 1/150 DATA(0, -1, 1) + 1/300 DATA(-1, -2, 2) + + + 1/300 DATA(0, -2, 2) + 1/150 DATA(-1, 0, -1) + 1/150 DATA(0, 0, -1) + + + 1/150 DATA(1, 0, -1) - 1/150 DATA(0, 0, 1) + 1/300 DATA(1, -2, 2) + + + 1/300 DATA(-2, -1, 2) + 1/300 DATA(2, -2, 2) + 1/300 DATA(-2, 0, 2) + + + 1/300 DATA(-2, 1, 2) - 1/150 DATA(1, 0, 1) - 1/150 DATA(0, 1, 1) + + - 1/150 DATA(1, 1, 1) + 1/300 DATA(-2, 2, 2) + 1/150 DATA(-1, -1, -1) + + + 1/150 DATA(0, -1, -1) + 1/150 DATA(1, 2, -1) + 1/150 DATA(2, 1, -1) + + + 1/150 DATA(-1, 2, -1) + 1/150 DATA(0, 2, -1) + 1/150 DATA(2, -1, -1) + + + 1/150 DATA(2, 0, -1) - 1/150 DATA(2, 1, 1) - 1/150 DATA(-1, 2, 1) + + - 1/150 DATA(0, 2, 1) - 1/150 DATA(1, 2, 1) - 1/150 DATA(2, -1, 1) + + - 1/150 DATA(2, 0, 1) + 1/150 DATA(1, -1, -1) + 1/150 DATA(2, 2, -1) + + + 1/300 DATA(1, 2, 2) - 1/300 DATA(-2, -1, -2) + 1/300 DATA(2, 2, 2) + + - 1/300 DATA(2, -2, -2) - 1/300 DATA(1, -2, -2) + 1/300 DATA(1, 1, 2) + + + 1/300 DATA(2, 1, 2) + 1/300 DATA(-1, 2, 2) + 1/300 DATA(0, 2, 2) + + - 1/300 DATA(0, -2, -2) - 1/300 DATA(-1, -2, -2) + 1/300 DATA(1, 0, 2) + + + 1/300 DATA(2, 0, 2) + 1/300 DATA(-1, 1, 2) + 1/300 DATA(0, 1, 2) + + - 1/300 DATA(-2, -2, -2) + 1/300 DATA(1, -1, 2) + 1/300 DATA(2, -1, 2) + + + 1/300 DATA(-1, 0, 2) + 1/300 DATA(0, 0, 2) + 1/300 DATA(-1, -1, 2) + + + 1/300 DATA(0, -1, 2) - 1/150 DATA(2, 2, 1) - 1/300 DATA(-2, 2, -2) + + - 1/300 DATA(2, 1, -2) - 1/300 DATA(1, 1, -2) - 1/300 DATA(0, 1, -2) + + - 1/300 DATA(-1, 1, -2) - 1/300 DATA(-2, 1, -2) - 1/300 DATA(2, 0, -2) + + - 1/300 DATA(0, 0, -2) - 1/300 DATA(1, 0, -2) - 1/300 DATA(-1, 0, -2) + + - 1/300 DATA(-2, 0, -2) - 1/300 DATA(2, -1, -2) - 1/300 DATA(1, -1, -2) + + - 1/300 DATA(0, -1, -2) - 1/300 DATA(-1, -1, -2) + 1/150 DATA(2, -2, -1) + + + 1/150 DATA(1, -2, -1) + 1/150 DATA(0, -2, -1) + 1/150 DATA(-1, -2, -1) + + + 1/150 DATA(-2, -2, -1) - 1/300 DATA(2, 2, -2) - 1/300 DATA(1, 2, -2) + + - 1/300 DATA(0, 2, -2) - 1/300 DATA(-1, 2, -2) + 1/150 DATA(-2, 1, -1) + + + 1/150 DATA(-2, 0, -1) + 1/150 DATA(-2, -1, -1) + 1/150 DATA(-2, 2, -1) + + - 1/150 DATA(-2, -2, 1) - 1/150 DATA(-1, -2, 1) - 1/150 DATA(1, -2, 1) + + - 1/150 DATA(0, -2, 1) - 1/150 DATA(2, -2, 1) - 1/150 DATA(-2, -1, 1) + + - 1/150 DATA(-2, 0, 1) - 1/150 DATA(-2, 1, 1) - 1/150 DATA(-2, 2, 1) + + 3 173 173 + + 1/300 DATA(-2, -2, 2)) z - ---- DATA(2, 1, 1) - ---- DATA(-1, 2, 1) + 6125 6125 + + 47 173 173 + + ---- DATA(0, 2, 1) - ---- DATA(1, 2, 1) - ---- DATA(2, -1, 1) + 6125 6125 6125 + + 47 23 47 + + ---- DATA(2, 0, 1) - ---- DATA(1, -1, -1) + ---- DATA(1, 2, 0) + 6125 6125 6125 + + 47 47 47 + + ---- DATA(2, 2, 0) + ---- DATA(2, 1, 0) + ---- DATA(-1, 2, 0) + 6125 6125 6125 + + 292 47 292 + + ---- DATA(0, 2, 0) + ---- DATA(2, -1, 0) + ---- DATA(2, 0, 0) + 6125 6125 6125 + + - 2/125 DATA(2, 2, -1) - 2/125 DATA(1, 2, 2) - 2/125 DATA(-2, -1, -2) + + 202 202 + + ---- DATA(2, 2, 2) + ---- DATA(2, -2, -2) - 2/125 DATA(1, -2, -2) + 6125 6125 + + 173 + - ---- DATA(1, 1, 2) - 2/125 DATA(2, 1, 2) - 2/125 DATA(-1, 2, 2) + 6125 + + 47 47 + + ---- DATA(0, 2, 2) + ---- DATA(0, -2, -2) - 2/125 DATA(-1, -2, -2) + 6125 6125 + + 47 47 173 + + ---- DATA(1, 0, 2) + ---- DATA(2, 0, 2) - ---- DATA(-1, 1, 2) + 6125 6125 6125 + + 47 202 173 + + ---- DATA(0, 1, 2) + ---- DATA(-2, -2, -2) - ---- DATA(1, -1, 2) + 6125 6125 6125 + + 47 292 + - 2/125 DATA(2, -1, 2) + ---- DATA(-1, 0, 2) + ---- DATA(0, 0, 2) + 6125 6125 + + 173 47 + - ---- DATA(-1, -1, 2) + ---- DATA(0, -1, 2) - 2/125 DATA(2, 2, 1) + 6125 6125 + + 202 173 + + ---- DATA(-2, 2, -2) - 2/125 DATA(2, 1, -2) - ---- DATA(1, 1, -2) + 6125 6125 + + 47 173 + + ---- DATA(0, 1, -2) - ---- DATA(-1, 1, -2) - 2/125 DATA(-2, 1, -2) + 6125 6125 + + 47 292 47 + + ---- DATA(2, 0, -2) + ---- DATA(0, 0, -2) + ---- DATA(1, 0, -2) + 6125 6125 6125 + + 47 47 + + ---- DATA(-1, 0, -2) + ---- DATA(-2, 0, -2) - 2/125 DATA(2, -1, -2) + 6125 6125 + + 173 47 173 + - ---- DATA(1, -1, -2) + ---- DATA(0, -1, -2) - ---- DATA(-1, -1, -2) + 6125 6125 6125 + + 173 47 + - 2/125 DATA(2, -2, -1) - ---- DATA(1, -2, -1) + ---- DATA(0, -2, -1) + 6125 6125 + + 173 202 + - ---- DATA(-1, -2, -1) - 2/125 DATA(-2, -2, -1) + ---- DATA(2, 2, -2) + 6125 6125 + + 47 + - 2/125 DATA(1, 2, -2) + ---- DATA(0, 2, -2) - 2/125 DATA(-1, 2, -2) + 6125 + + 173 47 173 + - ---- DATA(-2, 1, -1) + ---- DATA(-2, 0, -1) - ---- DATA(-2, -1, -1) + 6125 6125 6125 + + 292 47 + - 2/125 DATA(-2, 2, -1) + ---- DATA(0, -2, 0) + ---- DATA(-1, -2, 0) + 6125 6125 + + 47 292 47 + + ---- DATA(-2, -2, 0) + ---- DATA(-2, 0, 0) + ---- DATA(-2, -1, 0) + 6125 6125 6125 + + 47 47 47 + + ---- DATA(2, -2, 0) + ---- DATA(1, -2, 0) + ---- DATA(-2, 1, 0) + 6125 6125 6125 + + 47 / 83 + + ---- DATA(-2, 2, 0) - 2/125 DATA(-2, -2, 1) + |---- DATA(-1, 1, -1) + 6125 \3675 + + 57 83 151 + - --- DATA(0, 1, -1) + ---- DATA(1, 1, -1) + ---- DATA(-1, -1, 0) + 980 3675 7350 + + 61 151 68 + - --- DATA(0, -1, 0) + ---- DATA(1, -1, 0) + ---- DATA(-1, 0, 0) + 980 7350 3675 + + 151 83 151 + + ---- DATA(-1, 1, 0) + ---- DATA(-1, 1, 1) + ---- DATA(-1, 0, 1) + 7350 3675 7350 + + 83 83 57 + + ---- DATA(1, -1, 1) + ---- DATA(-1, -1, 1) - --- DATA(0, -1, 1) + 3675 3675 980 + + 128 33 151 + + ---- DATA(-1, -2, 2) - --- DATA(0, -2, 2) + ---- DATA(-1, 0, -1) + 3675 980 7350 + + 61 151 13 + - --- DATA(0, 0, -1) + ---- DATA(1, 0, -1) - --- DATA(0, 0, 0) + 980 7350 196 + + 68 61 151 + + ---- DATA(1, 0, 0) - --- DATA(0, 1, 0) + ---- DATA(1, 1, 0) + 3675 980 7350 + + 61 128 169 + - --- DATA(0, 0, 1) + ---- DATA(1, -2, 2) - ----- DATA(-2, -1, 2) + 980 3675 29400 + + 529 169 + - ----- DATA(2, -2, 2) - 1/600 DATA(-2, 0, 2) - ----- DATA(-2, 1, 2) + 29400 29400 + + 151 57 83 + + ---- DATA(1, 0, 1) - --- DATA(0, 1, 1) + ---- DATA(1, 1, 1) + 7350 980 3675 + + 529 83 57 + - ----- DATA(-2, 2, 2) + ---- DATA(-1, -1, -1) - --- DATA(0, -1, -1) + 29400 3675 980 + + 211 191 211 + + ---- DATA(1, 2, -1) + ----- DATA(2, 1, -1) + ---- DATA(-1, 2, -1) + 7350 29400 7350 + + 191 311 + - 9/196 DATA(0, 2, -1) + ----- DATA(2, -1, -1) + ----- DATA(2, 0, -1) + 29400 29400 + + 191 211 + + ----- DATA(2, 1, 1) + ---- DATA(-1, 2, 1) - 9/196 DATA(0, 2, 1) + 29400 7350 + + 211 191 311 + + ---- DATA(1, 2, 1) + ----- DATA(2, -1, 1) + ----- DATA(2, 0, 1) + 7350 29400 29400 + + 83 + + ---- DATA(1, -1, -1) + 2/75 DATA(1, 2, 0) - 1/600 DATA(2, 2, 0) + 3675 + + 311 + + ----- DATA(2, 1, 0) + 2/75 DATA(-1, 2, 0) - 1/20 DATA(0, 2, 0) + 29400 + + 311 431 169 + + ----- DATA(2, -1, 0) + ----- DATA(2, 0, 0) - ----- DATA(2, 2, -1) + 29400 29400 29400 + + 128 169 529 + + ---- DATA(1, 2, 2) - ----- DATA(-2, -1, -2) - ----- DATA(2, 2, 2) + 3675 29400 29400 + + 529 128 211 + - ----- DATA(2, -2, -2) + ---- DATA(1, -2, -2) + ---- DATA(1, 1, 2) + 29400 3675 7350 + + 169 128 33 + - ----- DATA(2, 1, 2) + ---- DATA(-1, 2, 2) - --- DATA(0, 2, 2) + 29400 3675 980 + + 33 128 + - --- DATA(0, -2, -2) + ---- DATA(-1, -2, -2) + 2/75 DATA(1, 0, 2) + 980 3675 + + 211 + - 1/600 DATA(2, 0, 2) + ---- DATA(-1, 1, 2) - 9/196 DATA(0, 1, 2) + 7350 + + 529 211 169 + - ----- DATA(-2, -2, -2) + ---- DATA(1, -1, 2) - ----- DATA(2, -1, 2) + 29400 7350 29400 + + 211 + + 2/75 DATA(-1, 0, 2) - 1/20 DATA(0, 0, 2) + ---- DATA(-1, -1, 2) + 7350 + + 169 529 + - 9/196 DATA(0, -1, 2) - ----- DATA(2, 2, 1) - ----- DATA(-2, 2, -2) + 29400 29400 + + 169 211 + - ----- DATA(2, 1, -2) + ---- DATA(1, 1, -2) - 9/196 DATA(0, 1, -2) + 29400 7350 + + 211 169 + + ---- DATA(-1, 1, -2) - ----- DATA(-2, 1, -2) - 1/600 DATA(2, 0, -2) + 7350 29400 + + - 1/20 DATA(0, 0, -2) + 2/75 DATA(1, 0, -2) + 2/75 DATA(-1, 0, -2) + + 169 211 + - 1/600 DATA(-2, 0, -2) - ----- DATA(2, -1, -2) + ---- DATA(1, -1, -2) + 29400 7350 + + 211 169 + - 9/196 DATA(0, -1, -2) + ---- DATA(-1, -1, -2) - ----- DATA(2, -2, -1) + 7350 29400 + + 211 211 + + ---- DATA(1, -2, -1) - 9/196 DATA(0, -2, -1) + ---- DATA(-1, -2, -1) + 7350 7350 + + 169 529 128 + - ----- DATA(-2, -2, -1) - ----- DATA(2, 2, -2) + ---- DATA(1, 2, -2) + 29400 29400 3675 + + 33 128 191 + - --- DATA(0, 2, -2) + ---- DATA(-1, 2, -2) + ----- DATA(-2, 1, -1) + 980 3675 29400 + + 311 191 169 + + ----- DATA(-2, 0, -1) + ----- DATA(-2, -1, -1) - ----- DATA(-2, 2, -1) + 29400 29400 29400 + + - 1/20 DATA(0, -2, 0) + 2/75 DATA(-1, -2, 0) - 1/600 DATA(-2, -2, 0) + + 431 311 + + ----- DATA(-2, 0, 0) + ----- DATA(-2, -1, 0) - 1/600 DATA(2, -2, 0) + 29400 29400 + + 311 + + 2/75 DATA(1, -2, 0) + ----- DATA(-2, 1, 0) - 1/600 DATA(-2, 2, 0) + 29400 + + 169 211 211 + - ----- DATA(-2, -2, 1) + ---- DATA(-1, -2, 1) + ---- DATA(1, -2, 1) + 29400 7350 7350 + + 169 191 + - 9/196 DATA(0, -2, 1) - ----- DATA(2, -2, 1) + ----- DATA(-2, -1, 1) + 29400 29400 + + 311 191 169 + + ----- DATA(-2, 0, 1) + ----- DATA(-2, 1, 1) - ----- DATA(-2, 2, 1) + 29400 29400 29400 + + 529 \ 2 173 173 + - ----- DATA(-2, -2, 2)| x - ---- DATA(-1, -2, 1) - ---- DATA(1, -2, 1) + 29400 / 6125 6125 + + 47 173 + + ---- DATA(0, -2, 1) - 2/125 DATA(2, -2, 1) - ---- DATA(-2, -1, 1) + 6125 6125 + + 47 173 + + ---- DATA(-2, 0, 1) - ---- DATA(-2, 1, 1) - 2/125 DATA(-2, 2, 1) + 6125 6125 + + 202 + + ---- DATA(-2, -2, 2) + 6125 + +> +# I +> coeff_as_lc_of_data(%, posn_list_3d_size5); +bytes used=691971756, alloc=4783252, time=72.27 +bytes used=692972088, alloc=4783252, time=72.35 +bytes used=694025408, alloc=4783252, time=72.43 +bytes used=695101396, alloc=4783252, time=72.50 +bytes used=696101512, alloc=4783252, time=72.58 +bytes used=697149588, alloc=4783252, time=72.67 +bytes used=698150188, alloc=4783252, time=72.74 +bytes used=699317088, alloc=4783252, time=72.84 +bytes used=700317476, alloc=4783252, time=72.91 +bytes used=701388852, alloc=4783252, time=72.99 +bytes used=702495168, alloc=4783252, time=73.09 +bytes used=703495392, alloc=4783252, time=73.18 +bytes used=704527724, alloc=4783252, time=73.28 +bytes used=705528140, alloc=4783252, time=73.36 +bytes used=706568892, alloc=4783252, time=73.46 +bytes used=707569140, alloc=4783252, time=73.55 +bytes used=708700932, alloc=4783252, time=73.64 +bytes used=709755956, alloc=4783252, time=73.73 +bytes used=710944504, alloc=4783252, time=73.84 +bytes used=711944780, alloc=4783252, time=73.94 +bytes used=712984132, alloc=4783252, time=74.03 +bytes used=714086972, alloc=4783252, time=74.12 +bytes used=715163944, alloc=4783252, time=74.22 +bytes used=716164312, alloc=4783252, time=74.31 +bytes used=717164620, alloc=4783252, time=74.40 +bytes used=718184008, alloc=4783252, time=74.50 +bytes used=719184428, alloc=4783252, time=74.59 +bytes used=720184692, alloc=4783252, time=74.68 +bytes used=721184888, alloc=4783252, time=74.78 +bytes used=722186120, alloc=4979824, time=74.88 +bytes used=723258944, alloc=5045348, time=74.98 +bytes used=724347388, alloc=5504016, time=75.08 +bytes used=725477564, alloc=5569540, time=75.18 +bytes used=726548664, alloc=5635064, time=75.29 +bytes used=727573676, alloc=5700588, time=75.39 +bytes used=728574056, alloc=5766112, time=75.49 +bytes used=729574184, alloc=5831636, time=75.59 +bytes used=730684988, alloc=5962684, time=75.69 +bytes used=731753244, alloc=6028208, time=75.80 +bytes used=732753524, alloc=6159256, time=75.90 +bytes used=733839216, alloc=6159256, time=76.00 +bytes used=734910196, alloc=6421352, time=76.10 +bytes used=735911656, alloc=6421352, time=76.20 +bytes used=736935036, alloc=6552400, time=76.30 +bytes used=737935208, alloc=6617924, time=76.40 +bytes used=738966628, alloc=6683448, time=76.51 +bytes used=740020884, alloc=6945544, time=76.58 +bytes used=741024712, alloc=6945544, time=76.64 +bytes used=742028420, alloc=6945544, time=76.70 +bytes used=743032128, alloc=6945544, time=76.76 +bytes used=744036020, alloc=6945544, time=76.82 +bytes used=745039912, alloc=6945544, time=76.88 +bytes used=746043740, alloc=6945544, time=76.94 +bytes used=747047448, alloc=6945544, time=77.00 +bytes used=748051156, alloc=6945544, time=77.05 +bytes used=749054864, alloc=6945544, time=77.11 +bytes used=750058572, alloc=6945544, time=77.17 +bytes used=751062464, alloc=6945544, time=77.23 +bytes used=752066356, alloc=6945544, time=77.30 + 11 11 11 2 2 +[COEFF(-2, -2, -2) = --- x + --- y + --- z + 1/175 x y z + 1/175 x y z + 420 420 420 + + 2 529 2 529 2 529 2 3 3 + + 1/175 x y z - ----- z - ----- y - ----- x - 1/300 x - 1/300 y + 29400 29400 29400 + + 3 4 4 4 202 + - 1/300 z + 1/600 y + 1/600 x + 1/600 z + ---- - 1/125 x y z + 6125 + + 137 137 2 2 2 3 3 + - ---- x z - ---- y z - 1/175 x z + 1/245 x z + 1/300 x z + 1/300 y z + 5250 5250 + + 3 2 2 2 3 2 2 + + 1/300 x z + 1/245 y z - 1/175 y z + 1/300 x y + 1/245 x y + + 137 2 2 2 2 + - ---- x y - 1/175 y z - 1/175 x y - 1/175 x y - 1/175 x z + 5250 + + 3 3 19 19 + + 1/300 x y + 1/300 y z, COEFF(-1, -2, -2) = - 8/525 x + ---- y + ---- z + 2100 2100 + + 2 2 2 169 2 169 2 + - 1/350 x y z + 1/350 x y z + 1/350 x y z - ----- z - ----- y + 29400 29400 + + 128 2 3 3 3 4 4 + + ---- x + 1/150 x - 1/300 y - 1/300 z + 1/600 y - 1/150 x + 3675 + + 4 107 47 2 + + 1/600 z - 2/125 - 1/250 x y z + ---- x z - ---- y z - 1/350 x z + 7000 5250 + + 2 2 3 3 3 2 2 + - 1/490 x z + 1/600 x z + 1/300 y z - 1/150 x z + 1/245 y z + + 2 3 2 2 107 2 + - 1/175 y z - 1/150 x y - 1/490 x y + ---- x y - 1/175 y z + 7000 + + 2 2 2 3 3 + + 1/350 x y - 1/350 x y + 1/350 x z + 1/600 x y + 1/300 y z, + + 2 2 2 17 3 + COEFF(0, -2, -2) = 1/245 y z - 1/175 y z + 1/300 y - ---- y z - 1/300 y + 5250 + + 2 2 2 2 2 2 4 + - 1/245 x z + 1/175 x z + 1/175 x y - 1/245 x y + 1/100 x + + 2 2 33 2 2 3 + - 1/600 y - 1/175 y z + 1/300 z - --- x - 1/600 z - 1/300 z + 980 + + 3 4 2 3 4 47 + + 1/300 y z + 1/600 y - 1/175 x y z + 1/300 y z + 1/600 z + ----, + 6125 + + 19 19 2 2 + COEFF(1, -2, -2) = 8/525 x + ---- y + ---- z - 1/350 x y z - 1/350 x y z + 2100 2100 + + 2 169 2 169 2 128 2 3 3 + - 1/350 x y z - ----- z - ----- y + ---- x - 1/150 x - 1/300 y + 29400 29400 3675 + + 3 4 4 4 + - 1/300 z + 1/600 y - 1/150 x + 1/600 z - 2/125 + 1/250 x y z + + 107 47 2 2 2 3 3 + - ---- x z - ---- y z + 1/350 x z - 1/490 x z - 1/600 x z + 1/300 y z + 7000 5250 + + 3 2 2 2 3 2 2 + + 1/150 x z + 1/245 y z - 1/175 y z + 1/150 x y - 1/490 x y + + 107 2 2 2 2 + - ---- x y - 1/175 y z + 1/350 x y + 1/350 x y + 1/350 x z + 7000 + + 3 3 11 11 11 + - 1/600 x y + 1/300 y z, COEFF(2, -2, -2) = - --- x + --- y + --- z + 420 420 420 + + 2 2 2 529 2 529 2 + + 1/175 x y z - 1/175 x y z - 1/175 x y z - ----- z - ----- y + 29400 29400 + + 529 2 3 3 3 4 4 + - ----- x + 1/300 x - 1/300 y - 1/300 z + 1/600 y + 1/600 x + 29400 + + 4 202 137 137 2 + + 1/600 z + ---- + 1/125 x y z + ---- x z - ---- y z + 1/175 x z + 6125 5250 5250 + + 2 2 3 3 3 2 2 + + 1/245 x z - 1/300 x z + 1/300 y z - 1/300 x z + 1/245 y z + + 2 3 2 2 137 2 + - 1/175 y z - 1/300 x y + 1/245 x y + ---- x y - 1/175 y z + 5250 + + 2 2 2 3 3 + - 1/175 x y + 1/175 x y - 1/175 x z - 1/300 x y + 1/300 y z, + + 19 19 2 2 + COEFF(-2, -1, -2) = ---- x - 8/525 y + ---- z + 1/350 x y z + 1/350 x y z + 2100 2100 + + 2 169 2 128 2 169 2 3 3 + - 1/350 x y z - ----- z + ---- y - ----- x - 1/300 x + 1/150 y + 29400 3675 29400 + + 3 4 4 4 + - 1/300 z - 1/150 y + 1/600 x + 1/600 z - 2/125 - 1/250 x y z + + 47 107 2 2 2 3 3 + - ---- x z + ---- y z - 1/175 x z + 1/245 x z + 1/300 x z + 1/600 y z + 5250 7000 + + 3 2 2 2 3 2 2 + + 1/300 x z - 1/490 y z - 1/350 y z + 1/600 x y - 1/490 x y + + 107 2 2 2 2 + + ---- x y + 1/350 y z - 1/350 x y + 1/350 x y - 1/175 x z + 7000 + + 3 3 17 + - 1/150 x y - 1/150 y z, COEFF(-1, -1, -2) = - 1/42 x - 1/42 y - ---- z + 2100 + + 2 2 2 191 2 211 2 + - 1/700 x y z + 1/700 x y z - 1/700 x y z + ----- z + ---- y + 29400 7350 + + 211 2 3 3 3 4 4 + + ---- x + 1/150 x + 1/150 y - 1/300 z - 1/150 y - 1/150 x + 7350 + + 4 173 167 167 2 + + 1/600 z - ---- - 1/500 x y z + ---- x z + ---- y z - 1/350 x z + 6125 7000 7000 + + 2 2 3 3 3 2 2 + - 1/490 x z + 1/600 x z + 1/600 y z - 1/150 x z - 1/490 y z + + 2 3 2 2 229 2 + - 1/350 y z - 1/300 x y + 1/980 x y + ----- x y + 1/350 y z + 10500 + + 2 2 2 3 3 + + 1/700 x y + 1/700 x y + 1/350 x z - 1/300 x y - 1/150 y z, + + 4 4 3 2 + COEFF(0, -1, -2) = 1/100 x + 1/600 z + 1/150 y - 1/350 y z + + 2 4 2 187 2 3 + - 1/350 x y z - 1/150 y - 9/196 x + ---- y z + 1/350 x y - 1/150 y z + 7000 + + 311 2 3 2 47 3 + + ----- z - 1/300 z + 1/175 x z + ---- + 1/600 y z - 2/75 y + 29400 6125 + + 2 2 2 2 2 2 2 2 29 + + 1/490 x y + 2/75 y - 1/245 x z + 1/350 y z - 1/490 y z - ---- z, + 2100 + + 17 2 2 + COEFF(1, -1, -2) = 1/42 x - 1/42 y - ---- z - 1/700 x y z - 1/700 x y z + 2100 + + 2 191 2 211 2 211 2 3 3 + + 1/700 x y z + ----- z + ---- y + ---- x - 1/150 x + 1/150 y + 29400 7350 7350 + + 3 4 4 4 173 + - 1/300 z - 1/150 y - 1/150 x + 1/600 z - ---- + 1/500 x y z + 6125 + + 167 167 2 2 2 3 3 + - ---- x z + ---- y z + 1/350 x z - 1/490 x z - 1/600 x z + 1/600 y z + 7000 7000 + + 3 2 2 2 3 2 2 + + 1/150 x z - 1/490 y z - 1/350 y z + 1/300 x y + 1/980 x y + + 229 2 2 2 2 + - ----- x y + 1/350 y z + 1/700 x y - 1/700 x y + 1/350 x z + 10500 + + 3 3 19 19 + + 1/300 x y - 1/150 y z, COEFF(2, -1, -2) = - ---- x - 8/525 y + ---- z + 2100 2100 + + 2 2 2 169 2 128 2 + + 1/350 x y z - 1/350 x y z + 1/350 x y z - ----- z + ---- y + 29400 3675 + + 169 2 3 3 3 4 4 + - ----- x + 1/300 x + 1/150 y - 1/300 z - 1/150 y + 1/600 x + 29400 + + 4 47 107 2 + + 1/600 z - 2/125 + 1/250 x y z + ---- x z + ---- y z + 1/175 x z + 5250 7000 + + 2 2 3 3 3 2 2 + + 1/245 x z - 1/300 x z + 1/600 y z - 1/300 x z - 1/490 y z + + 2 3 2 2 107 2 + - 1/350 y z - 1/600 x y - 1/490 x y - ---- x y + 1/350 y z + 7000 + + 2 2 2 3 3 + - 1/350 x y - 1/350 x y - 1/175 x z + 1/150 x y - 1/150 y z, + + 2 4 2 2 2 + COEFF(-2, 0, -2) = - 1/175 x z + 1/600 z + 1/175 x y + 1/245 x z + + 2 2 2 2 3 4 + + 1/300 z + 1/175 y z - 1/600 x - 1/245 y z + 1/300 x z + 1/100 y + + 3 2 2 2 2 4 + + 1/300 x z + 1/300 x - 1/245 x y - 1/600 z - 1/175 x z + 1/600 x + + 3 17 3 2 47 33 2 + - 1/300 x - ---- x z - 1/300 z - 1/175 x y z + ---- - --- y , + 5250 6125 980 + + 4 2 2 3 + COEFF(-1, 0, -2) = - 2/75 x + 1/600 z - 9/196 y + 1/175 y z + 1/150 x + + 3 2 2 29 2 2 4 2 2 + - 1/300 z + 1/490 x y - ---- z - 1/245 y z + 1/100 y - 1/490 x z + 2100 + + 2 311 2 2 4 3 47 + + 2/75 x + ----- z + 1/350 x z - 1/150 x + 1/600 x z + ---- + 29400 6125 + + 187 2 3 2 2 + + ---- x z - 1/350 x y z - 1/150 x z + 1/350 x y - 1/350 x z , + 7000 + + 292 4 2 431 2 4 2 + COEFF(0, 0, -2) = ---- + 1/100 y - 1/20 y + ----- z + 1/100 x - 1/20 x + 6125 29400 + + 2 2 2 2 2 3 4 41 + - 1/245 x z - 1/245 y z + 1/175 x z - 1/300 z + 1/600 z - ---- z + 2100 + + 2 2 2 2 4 + + 1/245 x y + 1/175 y z, COEFF(1, 0, -2) = 1/175 y z + 1/600 z + + 2 2 2 2 47 4 2 2 + - 1/245 y z + 1/490 x y + ---- - 1/150 x + 1/350 x z - 9/196 y + 6125 + + 2 3 3 29 2 + + 2/75 x - 1/350 x y + 1/150 x z - 1/150 x - ---- z + 1/350 x y z + 2100 + + 2 187 3 311 2 2 3 + + 1/350 x z - ---- x z - 1/300 z + ----- z + 2/75 x - 1/600 x z + 7000 29400 + + 4 2 2 3 2 + + 1/100 y - 1/490 x z , COEFF(2, 0, -2) = - 1/300 z - 1/175 x z + + 4 4 2 4 47 + + 1/600 z + 1/600 x + 1/175 y z + 1/100 y + ---- + 1/300 z + 6125 + + 2 2 33 2 2 3 3 + - 1/175 x y - 1/600 x - --- y + 1/175 x z - 1/300 x z - 1/300 x z + 980 + + 3 2 2 2 2 2 2 + + 1/300 x + 1/245 x z - 1/600 z - 1/245 y z + 1/175 x y z + + 2 2 17 19 + - 1/245 x y - 1/300 x + ---- x z, COEFF(-2, 1, -2) = ---- x + 8/525 y + 5250 2100 + + 19 2 2 2 169 2 128 2 + + ---- z - 1/350 x y z - 1/350 x y z - 1/350 x y z - ----- z + ---- y + 2100 29400 3675 + + 169 2 3 3 3 4 4 + - ----- x - 1/300 x - 1/150 y - 1/300 z - 1/150 y + 1/600 x + 29400 + + 4 47 107 2 + + 1/600 z - 2/125 + 1/250 x y z - ---- x z - ---- y z - 1/175 x z + 5250 7000 + + 2 2 3 3 3 2 2 + + 1/245 x z + 1/300 x z - 1/600 y z + 1/300 x z - 1/490 y z + + 2 3 2 2 107 2 + + 1/350 y z - 1/600 x y - 1/490 x y - ---- x y + 1/350 y z + 7000 + + 2 2 2 3 3 + + 1/350 x y + 1/350 x y - 1/175 x z + 1/150 x y + 1/150 y z, + + 17 2 2 + COEFF(-1, 1, -2) = - 1/42 x + 1/42 y - ---- z + 1/700 x y z - 1/700 x y z + 2100 + + 2 191 2 211 2 211 2 3 3 + - 1/700 x y z + ----- z + ---- y + ---- x + 1/150 x - 1/150 y + 29400 7350 7350 + + 3 4 4 4 173 + - 1/300 z - 1/150 y - 1/150 x + 1/600 z - ---- + 1/500 x y z + 6125 + + 167 167 2 2 2 3 3 + + ---- x z - ---- y z - 1/350 x z - 1/490 x z + 1/600 x z - 1/600 y z + 7000 7000 + + 3 2 2 2 3 2 2 + - 1/150 x z - 1/490 y z + 1/350 y z + 1/300 x y + 1/980 x y + + 229 2 2 2 2 + - ----- x y + 1/350 y z - 1/700 x y + 1/700 x y + 1/350 x z + 10500 + + 3 3 187 311 2 + + 1/300 x y + 1/150 y z, COEFF(0, 1, -2) = - ---- y z + ----- z + 7000 29400 + + 2 2 2 2 2 3 + + 1/350 x y z + 1/175 x z - 1/490 y z - 9/196 x - 1/150 y + 2/75 y + + 3 2 4 4 2 3 + - 1/600 y z + 1/350 y z + 1/600 z + 1/100 x - 1/350 x y + 1/150 y z + + 2 2 3 2 47 29 2 2 + - 1/245 x z - 1/300 z + 2/75 y + ---- - ---- z + 1/490 x y + 6125 2100 + + 4 2 17 + - 1/150 y + 1/350 y z, COEFF(1, 1, -2) = 1/42 x + 1/42 y - ---- z + 2100 + + 2 2 2 191 2 211 2 + + 1/700 x y z + 1/700 x y z + 1/700 x y z + ----- z + ---- y + 29400 7350 + + 211 2 3 3 3 4 4 + + ---- x - 1/150 x - 1/150 y - 1/300 z - 1/150 y - 1/150 x + 7350 + + 4 173 167 167 2 + + 1/600 z - ---- - 1/500 x y z - ---- x z - ---- y z + 1/350 x z + 6125 7000 7000 + + 2 2 3 3 3 2 2 + - 1/490 x z - 1/600 x z - 1/600 y z + 1/150 x z - 1/490 y z + + 2 3 2 2 229 2 + + 1/350 y z - 1/300 x y + 1/980 x y + ----- x y + 1/350 y z + 10500 + + 2 2 2 3 3 + - 1/700 x y - 1/700 x y + 1/350 x z - 1/300 x y + 1/150 y z, + + 19 19 2 2 + COEFF(2, 1, -2) = - ---- x + 8/525 y + ---- z - 1/350 x y z + 1/350 x y z + 2100 2100 + + 2 169 2 128 2 169 2 3 3 + + 1/350 x y z - ----- z + ---- y - ----- x + 1/300 x - 1/150 y + 29400 3675 29400 + + 3 4 4 4 + - 1/300 z - 1/150 y + 1/600 x + 1/600 z - 2/125 - 1/250 x y z + + 47 107 2 2 2 3 3 + + ---- x z - ---- y z + 1/175 x z + 1/245 x z - 1/300 x z - 1/600 y z + 5250 7000 + + 3 2 2 2 3 2 2 + - 1/300 x z - 1/490 y z + 1/350 y z + 1/600 x y - 1/490 x y + + 107 2 2 2 2 + + ---- x y + 1/350 y z + 1/350 x y - 1/350 x y - 1/175 x z + 7000 + + 3 3 11 11 11 + - 1/150 x y + 1/150 y z, COEFF(-2, 2, -2) = --- x - --- y + --- z + 420 420 420 + + 2 2 2 529 2 529 2 + - 1/175 x y z - 1/175 x y z + 1/175 x y z - ----- z - ----- y + 29400 29400 + + 529 2 3 3 3 4 4 + - ----- x - 1/300 x + 1/300 y - 1/300 z + 1/600 y + 1/600 x + 29400 + + 4 202 137 137 2 + + 1/600 z + ---- + 1/125 x y z - ---- x z + ---- y z - 1/175 x z + 6125 5250 5250 + + 2 2 3 3 3 2 2 + + 1/245 x z + 1/300 x z - 1/300 y z + 1/300 x z + 1/245 y z + + 2 3 2 2 137 2 + + 1/175 y z - 1/300 x y + 1/245 x y + ---- x y - 1/175 y z + 5250 + + 2 2 2 3 3 + + 1/175 x y - 1/175 x y - 1/175 x z - 1/300 x y - 1/300 y z, + + 19 19 2 + COEFF(-1, 2, -2) = - 8/525 x - ---- y + ---- z + 1/350 x y z + 2100 2100 + + 2 2 169 2 169 2 128 2 3 + - 1/350 x y z + 1/350 x y z - ----- z - ----- y + ---- x + 1/150 x + 29400 29400 3675 + + 3 3 4 4 4 + + 1/300 y - 1/300 z + 1/600 y - 1/150 x + 1/600 z - 2/125 + + 107 47 2 2 2 + + 1/250 x y z + ---- x z + ---- y z - 1/350 x z - 1/490 x z + 7000 5250 + + 3 3 3 2 2 2 + + 1/600 x z - 1/300 y z - 1/150 x z + 1/245 y z + 1/175 y z + + 3 2 2 107 2 2 + + 1/150 x y - 1/490 x y - ---- x y - 1/175 y z - 1/350 x y + 7000 + + 2 2 3 3 + - 1/350 x y + 1/350 x z - 1/600 x y - 1/300 y z, COEFF(0, 2, -2) = + + 2 2 17 2 2 47 + 1/175 x y z - 1/600 z + 1/300 z + ---- y z - 1/245 x y + ---- + 5250 6125 + + 4 2 2 3 2 3 3 + + 1/600 y + 1/245 y z + 1/300 y - 1/600 y - 1/300 y z - 1/300 z + + 2 2 2 2 2 + + 1/175 y z - 1/300 y + 1/175 x z - 1/245 x z - 1/175 y z + + 2 3 33 2 4 4 + - 1/175 x y - 1/300 y z - --- x + 1/100 x + 1/600 z , COEFF(1, 2, -2) + 980 + + 19 19 2 2 2 + = 8/525 x - ---- y + ---- z + 1/350 x y z + 1/350 x y z - 1/350 x y z + 2100 2100 + + 169 2 169 2 128 2 3 3 3 + - ----- z - ----- y + ---- x - 1/150 x + 1/300 y - 1/300 z + 29400 29400 3675 + + 4 4 4 107 + + 1/600 y - 1/150 x + 1/600 z - 2/125 - 1/250 x y z - ---- x z + 7000 + + 47 2 2 2 3 3 + + ---- y z + 1/350 x z - 1/490 x z - 1/600 x z - 1/300 y z + 5250 + + 3 2 2 2 3 2 2 + + 1/150 x z + 1/245 y z + 1/175 y z - 1/150 x y - 1/490 x y + + 107 2 2 2 2 + + ---- x y - 1/175 y z - 1/350 x y + 1/350 x y + 1/350 x z + 7000 + + 3 3 11 11 11 + + 1/600 x y - 1/300 y z, COEFF(2, 2, -2) = - --- x - --- y + --- z + 420 420 420 + + 2 2 2 529 2 529 2 + - 1/175 x y z + 1/175 x y z - 1/175 x y z - ----- z - ----- y + 29400 29400 + + 529 2 3 3 3 4 4 + - ----- x + 1/300 x + 1/300 y - 1/300 z + 1/600 y + 1/600 x + 29400 + + 4 202 137 137 2 + + 1/600 z + ---- - 1/125 x y z + ---- x z + ---- y z + 1/175 x z + 6125 5250 5250 + + 2 2 3 3 3 2 2 + + 1/245 x z - 1/300 x z - 1/300 y z - 1/300 x z + 1/245 y z + + 2 3 2 2 137 2 + + 1/175 y z + 1/300 x y + 1/245 x y - ---- x y - 1/175 y z + 5250 + + 2 2 2 3 3 + + 1/175 x y + 1/175 x y - 1/175 x z + 1/300 x y - 1/300 y z, + + 19 19 2 2 + COEFF(-2, -2, -1) = ---- x + ---- y - 8/525 z + 1/350 x y z - 1/350 x y z + 2100 2100 + + 2 128 2 169 2 169 2 3 3 + + 1/350 x y z + ---- z - ----- y - ----- x - 1/300 x - 1/300 y + 3675 29400 29400 + + 3 4 4 4 + + 1/150 z + 1/600 y + 1/600 x - 1/150 z - 2/125 - 1/250 x y z + + 107 107 2 2 2 3 3 + + ---- x z + ---- y z + 1/350 x z - 1/490 x z - 1/150 x z - 1/150 y z + 7000 7000 + + 3 2 2 2 3 2 2 + + 1/600 x z - 1/490 y z + 1/350 y z + 1/300 x y + 1/245 x y + + 47 2 2 2 2 + - ---- x y - 1/350 y z - 1/175 x y - 1/175 x y - 1/350 x z + 5250 + + 3 3 17 + + 1/300 x y + 1/600 y z, COEFF(-1, -2, -1) = - 1/42 x - ---- y - 1/42 z + 2100 + + 2 2 2 211 2 191 2 + - 1/700 x y z - 1/700 x y z + 1/700 x y z + ---- z + ----- y + 7350 29400 + + 211 2 3 3 3 4 4 + + ---- x + 1/150 x - 1/300 y + 1/150 z + 1/600 y - 1/150 x + 7350 + + 4 173 229 167 2 + - 1/150 z - ---- - 1/500 x y z + ----- x z + ---- y z + 1/700 x z + 6125 10500 7000 + + 2 2 3 3 3 2 2 + + 1/980 x z - 1/300 x z - 1/150 y z - 1/300 x z - 1/490 y z + + 2 3 2 2 167 2 + + 1/350 y z - 1/150 x y - 1/490 x y + ---- x y - 1/350 y z + 7000 + + 2 2 2 3 3 + + 1/350 x y - 1/350 x y + 1/700 x z + 1/600 x y + 1/600 y z, + + 2 2 2 4 47 3 + COEFF(0, -2, -1) = - 9/196 x - 1/245 x y + 1/600 y + ---- + 1/150 z + 6125 + + 311 2 2 187 2 2 2 2 + + ----- y + 1/175 x y + ---- y z - 1/490 y z + 2/75 z - 1/350 y z + 29400 7000 + + 4 3 29 2 2 4 + + 1/100 x - 1/150 y z - ---- y - 1/350 x y z + 1/350 y z - 1/150 z + 2100 + + 3 3 2 2 2 + + 1/600 y z - 1/300 y + 1/350 x z - 2/75 z + 1/490 x z , + + 17 2 2 + COEFF(1, -2, -1) = 1/42 x - ---- y - 1/42 z - 1/700 x y z + 1/700 x y z + 2100 + + 2 211 2 191 2 211 2 3 3 + - 1/700 x y z + ---- z + ----- y + ---- x - 1/150 x - 1/300 y + 7350 29400 7350 + + 3 4 4 4 173 + + 1/150 z + 1/600 y - 1/150 x - 1/150 z - ---- + 1/500 x y z + 6125 + + 229 167 2 2 2 3 + - ----- x z + ---- y z - 1/700 x z + 1/980 x z + 1/300 x z + 10500 7000 + + 3 3 2 2 2 3 + - 1/150 y z + 1/300 x z - 1/490 y z + 1/350 y z + 1/150 x y + + 2 2 167 2 2 2 + - 1/490 x y - ---- x y - 1/350 y z + 1/350 x y + 1/350 x y + 7000 + + 2 3 3 19 + + 1/700 x z - 1/600 x y + 1/600 y z, COEFF(2, -2, -1) = - ---- x + 2100 + + 19 2 2 2 128 2 + + ---- y - 8/525 z + 1/350 x y z + 1/350 x y z - 1/350 x y z + ---- z + 2100 3675 + + 169 2 169 2 3 3 3 4 + - ----- y - ----- x + 1/300 x - 1/300 y + 1/150 z + 1/600 y + 29400 29400 + + 4 4 107 107 + + 1/600 x - 1/150 z - 2/125 + 1/250 x y z - ---- x z + ---- y z + 7000 7000 + + 2 2 2 3 3 3 + - 1/350 x z - 1/490 x z + 1/150 x z - 1/150 y z - 1/600 x z + + 2 2 2 3 2 2 47 + - 1/490 y z + 1/350 y z - 1/300 x y + 1/245 x y + ---- x y + 5250 + + 2 2 2 2 3 + - 1/350 y z - 1/175 x y + 1/175 x y - 1/350 x z - 1/300 x y + + 3 17 + + 1/600 y z, COEFF(-2, -1, -1) = - ---- x - 1/42 y - 1/42 z + 2100 + + 2 2 2 211 2 211 2 + + 1/700 x y z - 1/700 x y z - 1/700 x y z + ---- z + ---- y + 7350 7350 + + 191 2 3 3 3 4 4 + + ----- x - 1/300 x + 1/150 y + 1/150 z - 1/150 y + 1/600 x + 29400 + + 4 173 167 229 2 + - 1/150 z - ---- - 1/500 x y z + ---- x z + ----- y z + 1/350 x z + 6125 7000 10500 + + 2 2 3 3 3 2 2 + - 1/490 x z - 1/150 x z - 1/300 y z + 1/600 x z + 1/980 y z + + 2 3 2 2 167 2 + + 1/700 y z + 1/600 x y - 1/490 x y + ---- x y + 1/700 y z + 7000 + + 2 2 2 3 3 + - 1/350 x y + 1/350 x y - 1/350 x z - 1/150 x y - 1/300 y z, + + 17 17 17 2 2 + COEFF(-1, -1, -1) = - --- x - --- y - --- z - 1/1400 x y z - 1/1400 x y z + 525 525 525 + + 2 83 2 83 2 83 2 3 3 + - 1/1400 x y z + ---- z + ---- y + ---- x + 1/150 x + 1/150 y + 3675 3675 3675 + + 3 4 4 4 137 + + 1/150 z - 1/150 y - 1/150 x - 1/150 z - 1/1000 x y z + ---- x z + 5250 + + 137 2 2 2 3 3 + + ---- y z + 1/700 x z + 1/980 x z - 1/300 x z - 1/300 y z + 5250 + + 3 2 2 2 3 2 2 + - 1/300 x z + 1/980 y z + 1/700 y z - 1/300 x y + 1/980 x y + + 137 2 2 2 2 + + ---- x y + 1/700 y z + 1/700 x y + 1/700 x y + 1/700 x z + 5250 + + 3 3 23 2 + - 1/300 x y - 1/300 y z - ----, COEFF(0, -1, -1) = 1/350 x y + 6125 + + 2 3 2 2 2 2 3 272 + - 1/700 x y z + 1/150 y + 1/490 x y + 1/980 y z - 1/300 y z + ---- + 6125 + + 2 2 4 3 4 3 37 + + 1/490 x z - 1/150 y - 1/300 y z - 1/150 z + 1/150 z - ---- z + 1050 + + 2 4 2 57 2 289 2 + + 1/350 x z + 1/100 x + 1/700 y z - --- x + ----- y z + 1/700 y z + 980 10500 + + 151 2 151 2 37 17 17 17 + + ---- z + ---- y - ---- y, COEFF(1, -1, -1) = --- x - --- y - --- z + 7350 7350 1050 525 525 525 + + 2 2 2 83 2 83 2 + - 1/1400 x y z + 1/1400 x y z + 1/1400 x y z + ---- z + ---- y + 3675 3675 + + 83 2 3 3 3 4 4 + + ---- x - 1/150 x + 1/150 y + 1/150 z - 1/150 y - 1/150 x + 3675 + + 4 137 137 2 2 2 + - 1/150 z + 1/1000 x y z - ---- x z + ---- y z - 1/700 x z + 1/980 x z + 5250 5250 + + 3 3 3 2 2 2 + + 1/300 x z - 1/300 y z + 1/300 x z + 1/980 y z + 1/700 y z + + 3 2 2 137 2 2 + + 1/300 x y + 1/980 x y - ---- x y + 1/700 y z + 1/700 x y + 5250 + + 2 2 3 3 23 + - 1/700 x y + 1/700 x z + 1/300 x y - 1/300 y z - ----, + 6125 + + 17 2 2 + COEFF(2, -1, -1) = ---- x - 1/42 y - 1/42 z + 1/700 x y z + 1/700 x y z + 2100 + + 2 211 2 211 2 191 2 3 3 + + 1/700 x y z + ---- z + ---- y + ----- x + 1/300 x + 1/150 y + 7350 7350 29400 + + 3 4 4 4 173 + + 1/150 z - 1/150 y + 1/600 x - 1/150 z - ---- + 1/500 x y z + 6125 + + 167 229 2 2 2 3 + - ---- x z + ----- y z - 1/350 x z - 1/490 x z + 1/150 x z + 7000 10500 + + 3 3 2 2 2 3 + - 1/300 y z - 1/600 x z + 1/980 y z + 1/700 y z - 1/600 x y + + 2 2 167 2 2 2 + - 1/490 x y - ---- x y + 1/700 y z - 1/350 x y - 1/350 x y + 7000 + + 2 3 3 47 + - 1/350 x z + 1/150 x y - 1/300 y z, COEFF(-2, 0, -1) = ---- + 6125 + + 2 2 2 4 2 2 2 + - 1/350 x z + 1/350 x z + 1/175 x y + 1/100 y + 2/75 z - 1/245 x y + + 311 2 2 2 29 2 2 2 2 + + ----- x - 9/196 y - 1/350 x y z - ---- x - 1/490 x z + 1/490 y z + 29400 2100 + + 2 3 4 187 3 + + 1/350 y z - 1/300 x - 2/75 z - 1/150 z + ---- x z + 1/150 z + 7000 + + 3 4 3 151 2 + - 1/150 x z + 1/600 x + 1/600 x z, COEFF(-1, 0, -1) = ---- x + 7350 + + 4 3 272 2 2 2 151 2 + + 1/100 y + 1/150 x + ---- + 1/350 y z + 1/980 x z + ---- z + 6125 7350 + + 289 2 3 2 2 37 2 + + ----- x z + 1/700 x z - 1/300 x z + 1/490 x y - ---- z + 1/700 x z + 10500 1050 + + 57 2 2 4 2 2 37 3 + - --- y + 1/350 x y - 1/150 z + 1/490 y z - ---- x - 1/300 x z + 980 1050 + + 3 2 4 4 + + 1/150 z - 1/700 x y z - 1/150 x , COEFF(0, 0, -1) = 1/100 x + + 2 2 61 2 2 2 2 592 4 + + 1/490 x z - --- y + 1/350 x z + 1/490 y z + ---- + 1/100 y + 980 6125 + + 2 2 61 2 4 68 2 2 + + 1/245 x y - --- x - 4/105 z - 1/150 z + ---- z + 1/350 y z + 980 3675 + + 3 3 2 2 2 + + 1/150 z , COEFF(1, 0, -1) = 1/300 x z + 1/490 x y - 1/700 x z + + 2 37 2 3 2 272 + - 1/350 x y + ---- x + 1/700 x y z + 1/300 x z + 1/350 y z + ---- + 1050 6125 + + 57 2 289 37 2 3 2 2 + - --- y - ----- x z - ---- z + 1/700 x z + 1/150 z + 1/980 x z + 980 10500 1050 + + 4 2 2 151 2 3 4 4 + - 1/150 x + 1/490 y z + ---- z - 1/150 x + 1/100 y - 1/150 z + 7350 + + 151 2 2 4 47 29 + + ---- x , COEFF(2, 0, -1) = - 1/350 x z + 1/100 y + ---- + ---- x + 7350 6125 2100 + + 2 2 311 2 2 2 2 3 + + 1/490 y z + ----- x - 9/196 y + 2/75 z - 1/350 x z + 1/150 z + 29400 + + 2 2 2 4 3 187 + + 1/350 y z - 1/490 x z + 1/600 x + 1/150 x z - 2/75 z - ---- x z + 7000 + + 3 2 2 3 4 + + 1/300 x - 1/175 x y + 1/350 x y z - 1/600 x z - 1/150 z + + 2 2 17 + - 1/245 x y , COEFF(-2, 1, -1) = - ---- x + 1/42 y - 1/42 z + 2100 + + 2 2 2 211 2 211 2 + - 1/700 x y z + 1/700 x y z - 1/700 x y z + ---- z + ---- y + 7350 7350 + + 191 2 3 3 3 4 4 + + ----- x - 1/300 x - 1/150 y + 1/150 z - 1/150 y + 1/600 x + 29400 + + 4 173 167 229 2 + - 1/150 z - ---- + 1/500 x y z + ---- x z - ----- y z + 1/350 x z + 6125 7000 10500 + + 2 2 3 3 3 2 2 + - 1/490 x z - 1/150 x z + 1/300 y z + 1/600 x z + 1/980 y z + + 2 3 2 2 167 2 + - 1/700 y z - 1/600 x y - 1/490 x y - ---- x y + 1/700 y z + 7000 + + 2 2 2 3 3 + + 1/350 x y + 1/350 x y - 1/350 x z + 1/150 x y + 1/300 y z, + + 17 17 17 2 2 + COEFF(-1, 1, -1) = - --- x + --- y - --- z + 1/1400 x y z + 1/1400 x y z + 525 525 525 + + 2 83 2 83 2 83 2 3 3 + - 1/1400 x y z + ---- z + ---- y + ---- x + 1/150 x - 1/150 y + 3675 3675 3675 + + 3 4 4 4 137 + + 1/150 z - 1/150 y - 1/150 x - 1/150 z + 1/1000 x y z + ---- x z + 5250 + + 137 2 2 2 3 3 + - ---- y z + 1/700 x z + 1/980 x z - 1/300 x z + 1/300 y z + 5250 + + 3 2 2 2 3 2 2 + - 1/300 x z + 1/980 y z - 1/700 y z + 1/300 x y + 1/980 x y + + 137 2 2 2 2 + - ---- x y + 1/700 y z - 1/700 x y + 1/700 x y + 1/700 x z + 5250 + + 3 3 23 2 272 + + 1/300 x y + 1/300 y z - ----, COEFF(0, 1, -1) = - 1/350 x y + ---- + 6125 6125 + + 289 57 2 3 4 2 3 + - ----- y z - --- x + 1/300 y z - 1/150 y + 1/700 y z + 1/300 y z + 10500 980 + + 4 37 4 2 2 3 2 2 + - 1/150 z - ---- z + 1/100 x + 1/490 x y + 1/150 z + 1/980 y z + 1050 + + 3 2 2 151 2 151 2 37 + - 1/150 y + 1/350 x z - 1/700 y z + ---- y + ---- z + ---- y + 7350 7350 1050 + + 2 2 2 17 17 17 + + 1/490 x z + 1/700 x y z, COEFF(1, 1, -1) = --- x + --- y - --- z + 525 525 525 + + 2 2 2 83 2 83 2 + + 1/1400 x y z - 1/1400 x y z + 1/1400 x y z + ---- z + ---- y + 3675 3675 + + 83 2 3 3 3 4 4 + + ---- x - 1/150 x - 1/150 y + 1/150 z - 1/150 y - 1/150 x + 3675 + + 4 137 137 2 2 2 + - 1/150 z - 1/1000 x y z - ---- x z - ---- y z - 1/700 x z + 1/980 x z + 5250 5250 + + 3 3 3 2 2 2 + + 1/300 x z + 1/300 y z + 1/300 x z + 1/980 y z - 1/700 y z + + 3 2 2 137 2 2 + - 1/300 x y + 1/980 x y + ---- x y + 1/700 y z - 1/700 x y + 5250 + + 2 2 3 3 23 + - 1/700 x y + 1/700 x z - 1/300 x y + 1/300 y z - ----, + 6125 + + 17 2 2 + COEFF(2, 1, -1) = ---- x + 1/42 y - 1/42 z - 1/700 x y z - 1/700 x y z + 2100 + + 2 211 2 211 2 191 2 3 3 + + 1/700 x y z + ---- z + ---- y + ----- x + 1/300 x - 1/150 y + 7350 7350 29400 + + 3 4 4 4 173 + + 1/150 z - 1/150 y + 1/600 x - 1/150 z - ---- - 1/500 x y z + 6125 + + 167 229 2 2 2 3 + - ---- x z - ----- y z - 1/350 x z - 1/490 x z + 1/150 x z + 7000 10500 + + 3 3 2 2 2 3 + + 1/300 y z - 1/600 x z + 1/980 y z - 1/700 y z + 1/600 x y + + 2 2 167 2 2 2 + - 1/490 x y + ---- x y + 1/700 y z + 1/350 x y - 1/350 x y + 7000 + + 2 3 3 19 19 + - 1/350 x z - 1/150 x y + 1/300 y z, COEFF(-2, 2, -1) = ---- x - ---- y + 2100 2100 + + 2 2 2 128 2 + - 8/525 z - 1/350 x y z + 1/350 x y z + 1/350 x y z + ---- z + 3675 + + 169 2 169 2 3 3 3 4 + - ----- y - ----- x - 1/300 x + 1/300 y + 1/150 z + 1/600 y + 29400 29400 + + 4 4 107 107 + + 1/600 x - 1/150 z - 2/125 + 1/250 x y z + ---- x z - ---- y z + 7000 7000 + + 2 2 2 3 3 3 + + 1/350 x z - 1/490 x z - 1/150 x z + 1/150 y z + 1/600 x z + + 2 2 2 3 2 2 47 + - 1/490 y z - 1/350 y z - 1/300 x y + 1/245 x y + ---- x y + 5250 + + 2 2 2 2 3 + - 1/350 y z + 1/175 x y - 1/175 x y - 1/350 x z - 1/300 x y + + 3 17 2 + - 1/600 y z, COEFF(-1, 2, -1) = - 1/42 x + ---- y - 1/42 z + 1/700 x y z + 2100 + + 2 2 211 2 191 2 211 2 3 + + 1/700 x y z + 1/700 x y z + ---- z + ----- y + ---- x + 1/150 x + 7350 29400 7350 + + 3 3 4 4 4 173 + + 1/300 y + 1/150 z + 1/600 y - 1/150 x - 1/150 z - ---- + 6125 + + 229 167 2 2 2 + + 1/500 x y z + ----- x z - ---- y z + 1/700 x z + 1/980 x z + 10500 7000 + + 3 3 3 2 2 2 + - 1/300 x z + 1/150 y z - 1/300 x z - 1/490 y z - 1/350 y z + + 3 2 2 167 2 2 + + 1/150 x y - 1/490 x y - ---- x y - 1/350 y z - 1/350 x y + 7000 + + 2 2 3 3 + - 1/350 x y + 1/700 x z - 1/600 x y - 1/600 y z, COEFF(0, 2, -1) = + + 2 2 2 3 2 2 4 47 + - 1/490 y z - 1/175 x y - 1/600 y z + 1/490 x z - 1/150 z + ---- + 6125 + + 2 2 3 3 2 2 + + 1/350 x y z - 9/196 x + 1/150 y z - 2/75 z + 1/150 z - 1/245 x y + + 2 3 311 2 2 2 29 + + 1/350 x z + 1/300 y + ----- y + 2/75 z - 1/350 y z + ---- y + 29400 2100 + + 2 4 187 4 + - 1/350 y z + 1/100 x - ---- y z + 1/600 y , COEFF(1, 2, -1) = 1/42 x + 7000 + + 17 2 2 2 211 2 + + ---- y - 1/42 z + 1/700 x y z - 1/700 x y z - 1/700 x y z + ---- z + 2100 7350 + + 191 2 211 2 3 3 3 4 + + ----- y + ---- x - 1/150 x + 1/300 y + 1/150 z + 1/600 y + 29400 7350 + + 4 4 173 229 167 + - 1/150 x - 1/150 z - ---- - 1/500 x y z - ----- x z - ---- y z + 6125 10500 7000 + + 2 2 2 3 3 3 + - 1/700 x z + 1/980 x z + 1/300 x z + 1/150 y z + 1/300 x z + + 2 2 2 3 2 2 167 + - 1/490 y z - 1/350 y z - 1/150 x y - 1/490 x y + ---- x y + 7000 + + 2 2 2 2 3 + - 1/350 y z - 1/350 x y + 1/350 x y + 1/700 x z + 1/600 x y + + 3 19 19 2 + - 1/600 y z, COEFF(2, 2, -1) = - ---- x - ---- y - 8/525 z - 1/350 x y z + 2100 2100 + + 2 2 128 2 169 2 169 2 3 + - 1/350 x y z - 1/350 x y z + ---- z - ----- y - ----- x + 1/300 x + 3675 29400 29400 + + 3 3 4 4 4 + + 1/300 y + 1/150 z + 1/600 y + 1/600 x - 1/150 z - 2/125 + + 107 107 2 2 2 + - 1/250 x y z - ---- x z - ---- y z - 1/350 x z - 1/490 x z + 7000 7000 + + 3 3 3 2 2 2 + + 1/150 x z + 1/150 y z - 1/600 x z - 1/490 y z - 1/350 y z + + 3 2 2 47 2 2 + + 1/300 x y + 1/245 x y - ---- x y - 1/350 y z + 1/175 x y + 5250 + + 2 2 3 3 + + 1/175 x y - 1/350 x z + 1/300 x y - 1/600 y z, COEFF(-2, -2, 0) = + + 47 3 2 2 3 17 2 + ---- + 1/300 x y - 1/245 y z + 1/300 x y - ---- x y + 1/175 x z + 6125 5250 + + 2 2 2 2 2 2 2 + - 1/245 x z + 1/245 x y - 1/175 x y - 1/600 y + 1/175 y z + + 4 3 3 4 33 2 4 2 + + 1/100 z - 1/300 x - 1/300 y + 1/600 x - --- z + 1/600 y - 1/600 x + 980 + + 2 2 + - 1/175 x y + 1/300 y - 1/175 x y z + 1/300 x, COEFF(-1, -2, 0) = + + 2 2 2 2 4 29 2 + - 1/490 x y - 1/245 y z - 2/75 x + 1/100 z - ---- y + 1/350 x y + 2100 + + 311 2 3 3 3 2 2 + + ----- y - 1/300 y - 1/150 x y + 1/600 x y + 1/175 y z + 2/75 x + 29400 + + 4 4 2 2 47 2 + + 1/600 y - 1/150 x - 1/350 x y + 1/350 x z + ---- - 1/350 x y z + 6125 + + 187 2 2 2 3 431 2 + + ---- x y + 1/490 x z - 9/196 z + 1/150 x , COEFF(0, -2, 0) = ----- y + 7000 29400 + + 292 2 2 2 2 2 2 2 + + ---- - 1/245 x y + 1/175 y z + 1/245 x z - 1/20 z - 1/20 x + 6125 + + 2 2 4 4 2 4 3 + - 1/245 y z + 1/100 z + 1/100 x + 1/175 x y + 1/600 y - 1/300 y + + 41 2 2 2 + - ---- y, COEFF(1, -2, 0) = - 1/350 x z + 1/350 x y + 1/350 x y + 2100 + + 3 47 2 3 2 2 + + 1/150 x y + ---- + 1/350 x y z - 1/600 x y - 1/245 y z + 2/75 x + 6125 + + 311 2 2 2 2 2 2 3 + + ----- y - 1/490 x y - 9/196 z + 1/175 y z + 2/75 x - 1/150 x + 29400 + + 4 187 4 2 2 3 29 + + 1/100 z - ---- x y - 1/150 x + 1/490 x z - 1/300 y - ---- y + 7000 2100 + + 4 2 17 2 + + 1/600 y , COEFF(2, -2, 0) = 1/175 x y + ---- x y - 1/600 y + 5250 + + 2 3 3 47 4 2 2 + + 1/175 x y z - 1/300 x y - 1/300 y + ---- + 1/100 z - 1/245 x z + 6125 + + 2 4 3 2 2 2 + - 1/175 x z + 1/600 y - 1/300 x y - 1/600 x + 1/300 y - 1/245 y z + + 3 2 2 2 2 33 2 + - 1/300 x + 1/300 x - 1/175 x y + 1/245 x y + 1/175 y z - --- z + 980 + + 4 3 2 47 2 + + 1/600 x , COEFF(-2, -1, 0) = 1/600 x y + 1/350 x y + ---- + 2/75 y + 6125 + + 2 2 187 2 2 2 2 + - 1/490 x y + ---- x y - 1/350 x y - 1/245 x z + 1/350 y z + 7000 + + 311 2 2 3 3 4 2 2 + + ----- x - 1/350 x y z + 1/150 y - 1/150 x y + 1/600 x + 1/490 y z + 29400 + + 2 3 4 29 4 2 + - 2/75 y + 1/175 x z - 1/300 x + 1/100 z - ---- x - 1/150 y - 9/196 z + 2100 + + 3 151 2 57 2 2 + , COEFF(-1, -1, 0) = - 1/300 x y + ---- x - --- z + 1/350 x z + 7350 980 + + 2 2 4 2 3 37 3 + + 1/980 x y - 1/150 x - 1/700 x y z - 1/300 x y - ---- x + 1/150 y + 1050 + + 3 272 2 2 2 2 151 2 + + 1/150 x + ---- + 1/700 x y + 1/490 y z + 1/700 x y + ---- y + 6125 7350 + + 4 4 2 2 2 289 37 + + 1/100 z - 1/150 y + 1/490 x z + 1/350 y z + ----- x y - ---- y, + 10500 1050 + + 2 2 2 2 + COEFF(0, -1, 0) = - 4/105 y + 1/350 y z + 1/490 x y + 1/350 x y + + 61 2 3 592 2 2 68 2 4 61 2 + - --- x + 1/150 y + ---- + 1/245 x z + ---- y + 1/100 z - --- z + 980 6125 3675 980 + + 2 2 4 4 3 + + 1/490 y z - 1/150 y + 1/100 x , COEFF(1, -1, 0) = 1/300 x y + + 2 2 272 2 2 289 2 + + 1/490 x z + ---- + 1/350 y z - 1/700 x y - ----- x y + 1/700 x y z + 6125 10500 + + 37 3 4 2 37 3 + + ---- x - 1/150 x - 1/150 x + 1/700 x y - ---- y + 1/300 x y + 1050 1050 + + 3 2 2 151 2 2 2 151 2 2 + + 1/150 y + 1/490 y z + ---- y + 1/980 x y + ---- x - 1/350 x z + 7350 7350 + + 4 4 57 2 29 2 + - 1/150 y + 1/100 z - --- z , COEFF(2, -1, 0) = ---- x - 1/350 x y + 980 2100 + + 2 2 2 3 2 2 187 2 + - 9/196 z + 1/490 y z + 1/150 x y - 1/490 x y - ---- x y + 2/75 y + 7000 + + 2 3 4 4 2 47 + - 1/175 x z + 1/150 y - 1/150 y + 1/600 x + 1/350 y z + ---- + 6125 + + 311 2 3 2 2 2 2 + + ----- x + 1/300 x - 1/350 x y + 1/350 x y z - 1/245 x z - 2/75 y + 29400 + + 3 4 4 2 292 + - 1/600 x y + 1/100 z , COEFF(-2, 0, 0) = 1/600 x + 1/175 x z + ---- + 6125 + + 2 41 2 2 2 2 2 3 + - 1/20 z - ---- x - 1/20 y - 1/245 x y - 1/245 x z - 1/300 x + 2100 + + 431 2 2 2 4 2 4 + + ----- x + 1/245 y z + 1/100 z + 1/175 x y + 1/100 y , + 29400 + + 592 61 2 2 2 2 + COEFF(-1, 0, 0) = ---- - --- z + 1/245 y z - 4/105 x + 1/350 x y + 6125 980 + + 4 2 2 4 2 61 2 2 2 + + 1/100 y + 1/490 x y + 1/100 z + 1/350 x z - --- y + 1/490 x z + 980 + + 68 2 4 3 13 2 4 + + ---- x - 1/150 x + 1/150 x , COEFF(0, 0, 0) = - --- y + 1/100 y + 3675 196 + + 937 13 2 2 2 4 2 2 4 + + ---- - --- z + 1/245 x y + 1/100 x + 1/245 y z + 1/100 z + 6125 196 + + 2 2 13 2 2 2 + + 1/245 x z - --- x , COEFF(1, 0, 0) = - 1/350 x z - 1/350 x y + 196 + + 2 2 2 2 61 2 4 3 68 2 + + 1/490 x z + 1/245 y z - --- y + 1/100 z - 1/150 x + ---- x + 980 3675 + + 61 2 592 4 4 2 2 + + 4/105 x - --- z + ---- + 1/100 y - 1/150 x + 1/490 x y , + 980 6125 + + 3 431 2 2 2 + COEFF(2, 0, 0) = 1/300 x + ----- x - 1/175 x y - 1/175 x z + 29400 + + 2 2 41 2 2 4 2 2 2 + - 1/245 x y + ---- x + 1/245 y z + 1/600 x - 1/245 x z - 1/20 z + 2100 + + 292 4 4 2 2 + + ---- + 1/100 y + 1/100 z - 1/20 y , COEFF(-2, 1, 0) = 1/350 x y + 6125 + + 3 47 3 2 3 + - 1/600 x y + ---- + 1/150 x y + 2/75 y + 1/175 x z - 1/150 y + 6125 + + 2 2 187 4 2 311 2 + + 1/490 y z - ---- x y + 1/100 z + 1/350 x y z + ----- x + 7000 29400 + + 2 2 3 2 29 2 2 2 + - 1/490 x y - 1/300 x + 1/350 x y - ---- x - 1/245 x z - 9/196 z + 2100 + + 2 4 4 2 3 + - 1/350 y z - 1/150 y + 1/600 x + 2/75 y , COEFF(-1, 1, 0) = 1/150 x + + 272 3 3 151 2 4 151 2 2 + + ---- + 1/300 x y - 1/150 y + ---- y + 1/100 z + ---- x + 1/350 x z + 6125 7350 7350 + + 2 4 37 3 2 289 + - 1/350 y z - 1/150 y - ---- x + 1/300 x y + 1/700 x y z - ----- x y + 1050 10500 + + 2 2 2 2 2 37 2 2 4 + + 1/490 x z + 1/490 y z + 1/700 x y + ---- y + 1/980 x y - 1/150 x + 1050 + + 57 2 2 2 2 4 3 + - --- z - 1/700 x y, COEFF(0, 1, 0) = 1/245 x z + 1/100 z - 1/150 y + 980 + + 61 2 2 4 2 4 + - --- x - 1/350 y z - 1/150 y + 4/105 y - 1/350 x y + 1/100 x + 980 + + 2 2 2 2 592 61 2 68 2 + + 1/490 x y + 1/490 y z + ---- - --- z + ---- y , COEFF(1, 1, 0) = + 6125 980 3675 + + 3 2 3 4 289 3 + - 1/150 x - 1/350 x z - 1/300 x y + 1/100 z + ----- x y - 1/300 x y + 10500 + + 2 2 37 57 2 151 2 2 2 + - 1/700 x y z - 1/700 x y + ---- x - --- z + ---- y + 1/980 x y + 1050 980 7350 + + 151 2 2 2 3 2 272 2 + + ---- x + 1/490 x z - 1/150 y - 1/350 y z + ---- - 1/700 x y + 7350 6125 + + 37 2 2 4 4 3 + + ---- y + 1/490 y z - 1/150 x - 1/150 y , COEFF(2, 1, 0) = 1/600 x y + 1050 + + 4 3 4 2 29 2 311 2 + - 1/150 y + 1/300 x + 1/100 z + 2/75 y + ---- x - 9/196 z + ----- x + 2100 29400 + + 3 2 2 187 2 2 + - 1/150 x y - 1/350 y z - 1/350 x y z + ---- x y + 1/490 y z + 7000 + + 2 2 2 2 2 4 47 + - 1/350 x y + 1/350 x y - 1/175 x z - 1/245 x z + 1/600 x + ---- + 6125 + + 3 2 2 2 2 + - 1/150 y - 1/490 x y + 2/75 y, COEFF(-2, 2, 0) = - 1/245 y z + + 3 3 4 47 4 + - 1/300 x y + 1/300 x - 1/300 x y + 1/600 y + ---- + 1/600 x + 6125 + + 2 3 2 2 2 33 2 + + 1/175 x y - 1/300 x - 1/300 y + 1/175 x y z - 1/245 x z - --- z + 980 + + 2 2 2 2 2 17 4 + - 1/175 y z - 1/600 x + 1/245 x y - 1/600 y + ---- x y + 1/100 z + 5250 + + 2 3 2 2 + - 1/175 x y + 1/300 y + 1/175 x z , COEFF(-1, 2, 0) = - 1/350 x y + + 2 2 3 3 47 2 2 2 + - 1/245 y z + 1/150 x y - 1/600 x y + ---- + 1/490 x z - 1/175 y z + 6125 + + 2 2 2 3 187 2 + + 1/350 x y z - 1/490 x y + 1/150 x - ---- x y - 2/75 x - 1/350 x y + 7000 + + 2 2 2 311 2 4 4 + - 9/196 z + 1/350 x z + 2/75 x + ----- y + 1/100 z + 1/600 y + 29400 + + 3 4 29 2 2 2 + + 1/300 y - 1/150 x + ---- y, COEFF(0, 2, 0) = - 1/20 x - 1/245 x y + 2100 + + 292 2 2 4 2 4 2 2 + + ---- + 1/245 x z + 1/100 x - 1/175 y z + 1/600 y - 1/245 y z + 6125 + + 2 431 2 4 3 41 2 + - 1/20 z + ----- y + 1/100 z + 1/300 y + ---- y - 1/175 x y, + 29400 2100 + + 3 2 2 2 + COEFF(1, 2, 0) = - 1/150 x - 1/350 x z + 1/490 x z + 2/75 x + + 2 2 2 187 2 2 29 + + 1/350 x y - 1/490 x y + ---- x y - 1/350 x y z - 1/175 y z + ---- y + 7000 2100 + + 47 311 2 2 4 2 2 2 + + ---- + ----- y - 1/350 x y + 1/600 y - 1/245 y z + 2/75 x + 6125 29400 + + 3 4 3 3 4 2 + + 1/600 x y - 1/150 x - 1/150 x y + 1/300 y + 1/100 z - 9/196 z , + + 2 2 2 2 17 + COEFF(2, 2, 0) = - 1/175 x z + 1/175 x y - 1/245 x z - ---- x y + 5250 + + 2 47 2 2 2 2 + - 1/175 y z + ---- + 1/245 x y - 1/175 x y z + 1/175 x y - 1/300 y + 6125 + + 2 2 2 3 4 3 2 + - 1/245 y z - 1/600 y + 1/300 x y + 1/600 y + 1/300 x y - 1/600 x + + 3 4 3 4 33 2 + + 1/300 x + 1/600 x - 1/300 x + 1/300 y + 1/100 z - --- z , + 980 + + 19 19 2 2 + COEFF(-2, -2, 1) = ---- x + ---- y + 8/525 z - 1/350 x y z - 1/350 x y z + 2100 2100 + + 2 128 2 169 2 169 2 3 3 + - 1/350 x y z + ---- z - ----- y - ----- x - 1/300 x - 1/300 y + 3675 29400 29400 + + 3 4 4 4 + - 1/150 z + 1/600 y + 1/600 x - 1/150 z - 2/125 + 1/250 x y z + + 107 107 2 2 2 3 3 + - ---- x z - ---- y z + 1/350 x z - 1/490 x z + 1/150 x z + 1/150 y z + 7000 7000 + + 3 2 2 2 3 2 2 + - 1/600 x z - 1/490 y z + 1/350 y z + 1/300 x y + 1/245 x y + + 47 2 2 2 2 + - ---- x y + 1/350 y z - 1/175 x y - 1/175 x y + 1/350 x z + 5250 + + 3 3 17 + + 1/300 x y - 1/600 y z, COEFF(-1, -2, 1) = - 1/42 x - ---- y + 1/42 z + 2100 + + 2 2 2 211 2 191 2 + + 1/700 x y z - 1/700 x y z - 1/700 x y z + ---- z + ----- y + 7350 29400 + + 211 2 3 3 3 4 4 + + ---- x + 1/150 x - 1/300 y - 1/150 z + 1/600 y - 1/150 x + 7350 + + 4 173 229 167 2 + - 1/150 z - ---- + 1/500 x y z - ----- x z - ---- y z + 1/700 x z + 6125 10500 7000 + + 2 2 3 3 3 2 2 + + 1/980 x z + 1/300 x z + 1/150 y z + 1/300 x z - 1/490 y z + + 2 3 2 2 167 2 + + 1/350 y z - 1/150 x y - 1/490 x y + ---- x y + 1/350 y z + 7000 + + 2 2 2 3 3 + + 1/350 x y - 1/350 x y - 1/700 x z + 1/600 x y - 1/600 y z, + + 2 2 2 2 47 2 + COEFF(0, -2, 1) = 2/75 z + 1/175 x y - 1/245 x y + ---- + 1/350 x y z + 6125 + + 2 2 2 2 3 2 3 + - 1/490 y z + 1/490 x z + 1/150 y z - 9/196 x - 1/600 y z + + 3 311 2 187 4 4 2 + - 1/150 z + ----- y - ---- y z - 1/150 z + 1/100 x + 1/350 y z + 29400 7000 + + 2 3 29 2 4 + + 1/350 y z + 2/75 z - 1/300 y - ---- y - 1/350 x z + 1/600 y , + 2100 + + 17 2 2 + COEFF(1, -2, 1) = 1/42 x - ---- y + 1/42 z + 1/700 x y z + 1/700 x y z + 2100 + + 2 211 2 191 2 211 2 3 3 + + 1/700 x y z + ---- z + ----- y + ---- x - 1/150 x - 1/300 y + 7350 29400 7350 + + 3 4 4 4 173 + - 1/150 z + 1/600 y - 1/150 x - 1/150 z - ---- - 1/500 x y z + 6125 + + 229 167 2 2 2 3 + + ----- x z - ---- y z - 1/700 x z + 1/980 x z - 1/300 x z + 10500 7000 + + 3 3 2 2 2 3 + + 1/150 y z - 1/300 x z - 1/490 y z + 1/350 y z + 1/150 x y + + 2 2 167 2 2 2 + - 1/490 x y - ---- x y + 1/350 y z + 1/350 x y + 1/350 x y + 7000 + + 2 3 3 19 + - 1/700 x z - 1/600 x y - 1/600 y z, COEFF(2, -2, 1) = - ---- x + 2100 + + 19 2 2 2 128 2 + + ---- y + 8/525 z - 1/350 x y z + 1/350 x y z + 1/350 x y z + ---- z + 2100 3675 + + 169 2 169 2 3 3 3 4 + - ----- y - ----- x + 1/300 x - 1/300 y - 1/150 z + 1/600 y + 29400 29400 + + 4 4 107 107 + + 1/600 x - 1/150 z - 2/125 - 1/250 x y z + ---- x z - ---- y z + 7000 7000 + + 2 2 2 3 3 3 + - 1/350 x z - 1/490 x z - 1/150 x z + 1/150 y z + 1/600 x z + + 2 2 2 3 2 2 47 + - 1/490 y z + 1/350 y z - 1/300 x y + 1/245 x y + ---- x y + 5250 + + 2 2 2 2 3 + + 1/350 y z - 1/175 x y + 1/175 x y + 1/350 x z - 1/300 x y + + 3 17 2 + - 1/600 y z, COEFF(-2, -1, 1) = - ---- x - 1/42 y + 1/42 z - 1/700 x y z + 2100 + + 2 2 211 2 211 2 191 2 3 + - 1/700 x y z + 1/700 x y z + ---- z + ---- y + ----- x - 1/300 x + 7350 7350 29400 + + 3 3 4 4 4 173 + + 1/150 y - 1/150 z - 1/150 y + 1/600 x - 1/150 z - ---- + 6125 + + 167 229 2 2 2 + + 1/500 x y z - ---- x z - ----- y z + 1/350 x z - 1/490 x z + 7000 10500 + + 3 3 3 2 2 2 + + 1/150 x z + 1/300 y z - 1/600 x z + 1/980 y z + 1/700 y z + + 3 2 2 167 2 2 + + 1/600 x y - 1/490 x y + ---- x y - 1/700 y z - 1/350 x y + 7000 + + 2 2 3 3 + + 1/350 x y + 1/350 x z - 1/150 x y + 1/300 y z, COEFF(-1, -1, 1) = + + 17 17 17 2 2 2 + - --- x - --- y + --- z + 1/1400 x y z - 1/1400 x y z + 1/1400 x y z + 525 525 525 + + 83 2 83 2 83 2 3 3 3 4 + + ---- z + ---- y + ---- x + 1/150 x + 1/150 y - 1/150 z - 1/150 y + 3675 3675 3675 + + 4 4 137 137 2 + - 1/150 x - 1/150 z + 1/1000 x y z - ---- x z - ---- y z + 1/700 x z + 5250 5250 + + 2 2 3 3 3 2 2 + + 1/980 x z + 1/300 x z + 1/300 y z + 1/300 x z + 1/980 y z + + 2 3 2 2 137 2 + + 1/700 y z - 1/300 x y + 1/980 x y + ---- x y - 1/700 y z + 5250 + + 2 2 2 3 3 23 + + 1/700 x y + 1/700 x y - 1/700 x z - 1/300 x y + 1/300 y z - ----, + 6125 + + 151 2 3 2 4 + COEFF(0, -1, 1) = ---- y + 1/300 y z - 1/350 x z + 1/100 x + 7350 + + 2 2 272 2 2 2 57 2 + + 1/980 y z + ---- + 1/700 y z + 1/350 x y + 1/700 x y z - --- x + 6125 980 + + 289 2 2 3 2 2 37 37 + - ----- y z + 1/490 x z + 1/150 y + 1/490 x y + ---- z - ---- y + 10500 1050 1050 + + 3 3 4 2 4 151 2 + + 1/300 y z - 1/150 z - 1/150 z - 1/700 y z - 1/150 y + ---- z , + 7350 + + 17 17 17 2 2 + COEFF(1, -1, 1) = --- x - --- y + --- z + 1/1400 x y z + 1/1400 x y z + 525 525 525 + + 2 83 2 83 2 83 2 3 3 + - 1/1400 x y z + ---- z + ---- y + ---- x - 1/150 x + 1/150 y + 3675 3675 3675 + + 3 4 4 4 137 + - 1/150 z - 1/150 y - 1/150 x - 1/150 z - 1/1000 x y z + ---- x z + 5250 + + 137 2 2 2 3 3 + - ---- y z - 1/700 x z + 1/980 x z - 1/300 x z + 1/300 y z + 5250 + + 3 2 2 2 3 2 2 + - 1/300 x z + 1/980 y z + 1/700 y z + 1/300 x y + 1/980 x y + + 137 2 2 2 2 + - ---- x y - 1/700 y z + 1/700 x y - 1/700 x y - 1/700 x z + 5250 + + 3 3 23 17 + + 1/300 x y + 1/300 y z - ----, COEFF(2, -1, 1) = ---- x - 1/42 y + 6125 2100 + + 2 2 2 211 2 211 2 + + 1/42 z - 1/700 x y z + 1/700 x y z - 1/700 x y z + ---- z + ---- y + 7350 7350 + + 191 2 3 3 3 4 4 + + ----- x + 1/300 x + 1/150 y - 1/150 z - 1/150 y + 1/600 x + 29400 + + 4 173 167 229 2 + - 1/150 z - ---- - 1/500 x y z + ---- x z - ----- y z - 1/350 x z + 6125 7000 10500 + + 2 2 3 3 3 2 2 + - 1/490 x z - 1/150 x z + 1/300 y z + 1/600 x z + 1/980 y z + + 2 3 2 2 167 2 + + 1/700 y z - 1/600 x y - 1/490 x y - ---- x y - 1/700 y z + 7000 + + 2 2 2 3 3 + - 1/350 x y - 1/350 x y + 1/350 x z + 1/150 x y + 1/300 y z, + + 2 2 47 2 2 2 + COEFF(-2, 0, 1) = - 1/490 x z + ---- - 1/245 x y - 1/350 y z + 6125 + + 2 2 2 3 29 2 311 2 + + 1/350 x z + 1/490 y z + 1/150 x z - ---- x + 1/350 x y z + ----- x + 2100 29400 + + 2 3 4 2 3 + + 1/350 x z - 1/150 z + 1/100 y + 2/75 z + 2/75 z - 1/600 x z + + 3 187 2 2 4 4 + - 1/300 x - ---- x z - 9/196 y + 1/175 x y - 1/150 z + 1/600 x , + 7000 + + 37 2 57 2 3 2 2 + COEFF(-1, 0, 1) = ---- z + 1/350 x y - --- y + 1/300 x z + 1/490 x y + 1050 980 + + 272 2 4 4 3 289 + + ---- - 1/350 y z + 1/100 y - 1/150 z - 1/150 z - ----- x z + 6125 10500 + + 2 151 2 37 2 2 151 2 2 + + 1/700 x z + ---- x - ---- x + 1/490 y z + ---- z - 1/700 x z + 7350 1050 7350 + + 2 2 3 2 4 3 + + 1/980 x z + 1/150 x + 1/700 x y z - 1/150 x + 1/300 x z, + + 2 2 2 2 61 2 2 4 + COEFF(0, 0, 1) = 1/490 x z + 1/490 y z - --- y - 1/350 x z + 1/100 x + 980 + + 61 2 3 592 4 2 4 + - --- x - 1/150 z + ---- + 4/105 z - 1/150 z - 1/350 y z + 1/100 y + 980 6125 + + 2 2 68 2 2 2 2 + + 1/245 x y + ---- z , COEFF(1, 0, 1) = - 1/350 y z + 1/490 x y + 3675 + + 2 2 272 2 2 2 4 57 2 + + 1/980 x z + ---- + 1/490 y z - 1/700 x z - 1/150 x - --- y + 6125 980 + + 37 2 151 2 3 3 2 + + ---- z - 1/350 x y + ---- x - 1/300 x z - 1/150 z - 1/700 x z + 1050 7350 + + 4 2 151 2 37 3 289 + - 1/150 z - 1/700 x y z + ---- z + ---- x - 1/300 x z + ----- x z + 7350 1050 10500 + + 4 3 2 2 2 + + 1/100 y - 1/150 x , COEFF(2, 0, 1) = - 1/350 x z + 1/490 y z + + 187 2 47 2 2 2 2 2 + + ---- x z - 1/350 y z + ---- - 1/245 x y + 1/350 x z - 1/490 x z + 7000 6125 + + 3 311 2 3 29 2 + + 1/600 x z + ----- x - 1/150 x z + 2/75 z + ---- x + 2/75 z + 29400 2100 + + 3 4 2 4 2 4 + + 1/300 x + 1/600 x - 1/350 x y z + 1/100 y - 9/196 y - 1/150 z + + 2 3 17 + - 1/175 x y - 1/150 z , COEFF(-2, 1, 1) = - ---- x + 1/42 y + 1/42 z + 2100 + + 2 2 2 211 2 211 2 + + 1/700 x y z + 1/700 x y z + 1/700 x y z + ---- z + ---- y + 7350 7350 + + 191 2 3 3 3 4 4 + + ----- x - 1/300 x - 1/150 y - 1/150 z - 1/150 y + 1/600 x + 29400 + + 4 173 167 229 2 + - 1/150 z - ---- - 1/500 x y z - ---- x z + ----- y z + 1/350 x z + 6125 7000 10500 + + 2 2 3 3 3 2 2 + - 1/490 x z + 1/150 x z - 1/300 y z - 1/600 x z + 1/980 y z + + 2 3 2 2 167 2 + - 1/700 y z - 1/600 x y - 1/490 x y - ---- x y - 1/700 y z + 7000 + + 2 2 2 3 3 + + 1/350 x y + 1/350 x y + 1/350 x z + 1/150 x y - 1/300 y z, + + 17 17 17 2 2 + COEFF(-1, 1, 1) = - --- x + --- y + --- z - 1/1400 x y z + 1/1400 x y z + 525 525 525 + + 2 83 2 83 2 83 2 3 3 + + 1/1400 x y z + ---- z + ---- y + ---- x + 1/150 x - 1/150 y + 3675 3675 3675 + + 3 4 4 4 137 + - 1/150 z - 1/150 y - 1/150 x - 1/150 z - 1/1000 x y z - ---- x z + 5250 + + 137 2 2 2 3 3 + + ---- y z + 1/700 x z + 1/980 x z + 1/300 x z - 1/300 y z + 5250 + + 3 2 2 2 3 2 2 + + 1/300 x z + 1/980 y z - 1/700 y z + 1/300 x y + 1/980 x y + + 137 2 2 2 2 + - ---- x y - 1/700 y z - 1/700 x y + 1/700 x y - 1/700 x z + 5250 + + 3 3 23 37 3 + + 1/300 x y - 1/300 y z - ----, COEFF(0, 1, 1) = ---- y - 1/150 y + 6125 1050 + + 289 2 4 151 2 2 4 + + ----- y z - 1/700 y z - 1/150 z + ---- z - 1/700 y z + 1/100 x + 10500 7350 + + 151 2 3 37 2 2 2 2 + + ---- y - 1/300 y z + ---- z + 1/980 y z - 1/350 x z - 1/700 x y z + 7350 1050 + + 3 2 2 2 2 272 3 2 + - 1/300 y z + 1/490 x y + 1/490 x z + ---- - 1/150 z - 1/350 x y + 6125 + + 4 57 2 17 17 17 + - 1/150 y - --- x , COEFF(1, 1, 1) = --- x + --- y + --- z + 980 525 525 525 + + 2 2 2 83 2 83 2 + - 1/1400 x y z - 1/1400 x y z - 1/1400 x y z + ---- z + ---- y + 3675 3675 + + 83 2 3 3 3 4 4 + + ---- x - 1/150 x - 1/150 y - 1/150 z - 1/150 y - 1/150 x + 3675 + + 4 137 137 2 2 2 + - 1/150 z + 1/1000 x y z + ---- x z + ---- y z - 1/700 x z + 1/980 x z + 5250 5250 + + 3 3 3 2 2 2 + - 1/300 x z - 1/300 y z - 1/300 x z + 1/980 y z - 1/700 y z + + 3 2 2 137 2 2 + - 1/300 x y + 1/980 x y + ---- x y - 1/700 y z - 1/700 x y + 5250 + + 2 2 3 3 23 + - 1/700 x y - 1/700 x z - 1/300 x y - 1/300 y z - ----, COEFF(2, 1, 1) + 6125 + + 17 2 2 2 + = ---- x + 1/42 y + 1/42 z + 1/700 x y z - 1/700 x y z - 1/700 x y z + 2100 + + 211 2 211 2 191 2 3 3 3 4 + + ---- z + ---- y + ----- x + 1/300 x - 1/150 y - 1/150 z - 1/150 y + 7350 7350 29400 + + 4 4 173 167 229 + + 1/600 x - 1/150 z - ---- + 1/500 x y z + ---- x z + ----- y z + 6125 7000 10500 + + 2 2 2 3 3 3 + - 1/350 x z - 1/490 x z - 1/150 x z - 1/300 y z + 1/600 x z + + 2 2 2 3 2 2 167 + + 1/980 y z - 1/700 y z + 1/600 x y - 1/490 x y + ---- x y + 7000 + + 2 2 2 2 3 + - 1/700 y z + 1/350 x y - 1/350 x y + 1/350 x z - 1/150 x y + + 3 19 19 2 + - 1/300 y z, COEFF(-2, 2, 1) = ---- x - ---- y + 8/525 z + 1/350 x y z + 2100 2100 + + 2 2 128 2 169 2 169 2 3 + + 1/350 x y z - 1/350 x y z + ---- z - ----- y - ----- x - 1/300 x + 3675 29400 29400 + + 3 3 4 4 4 + + 1/300 y - 1/150 z + 1/600 y + 1/600 x - 1/150 z - 2/125 + + 107 107 2 2 2 + - 1/250 x y z - ---- x z + ---- y z + 1/350 x z - 1/490 x z + 7000 7000 + + 3 3 3 2 2 2 + + 1/150 x z - 1/150 y z - 1/600 x z - 1/490 y z - 1/350 y z + + 3 2 2 47 2 2 + - 1/300 x y + 1/245 x y + ---- x y + 1/350 y z + 1/175 x y + 5250 + + 2 2 3 3 + - 1/175 x y + 1/350 x z - 1/300 x y + 1/600 y z, COEFF(-1, 2, 1) = + + 17 2 2 2 + - 1/42 x + ---- y + 1/42 z - 1/700 x y z + 1/700 x y z - 1/700 x y z + 2100 + + 211 2 191 2 211 2 3 3 3 4 + + ---- z + ----- y + ---- x + 1/150 x + 1/300 y - 1/150 z + 1/600 y + 7350 29400 7350 + + 4 4 173 229 167 + - 1/150 x - 1/150 z - ---- - 1/500 x y z - ----- x z + ---- y z + 6125 10500 7000 + + 2 2 2 3 3 3 + + 1/700 x z + 1/980 x z + 1/300 x z - 1/150 y z + 1/300 x z + + 2 2 2 3 2 2 167 + - 1/490 y z - 1/350 y z + 1/150 x y - 1/490 x y - ---- x y + 7000 + + 2 2 2 2 3 + + 1/350 y z - 1/350 x y - 1/350 x y - 1/700 x z - 1/600 x y + + 3 4 3 3 + + 1/600 y z, COEFF(0, 2, 1) = - 1/150 z + 1/300 y - 1/150 y z + + 2 2 2 2 3 2 2 47 + + 1/490 x z + 1/350 y z - 1/350 x z + 1/600 y z - 1/245 x y + ---- + 6125 + + 4 2 2 2 187 4 + + 1/600 y - 1/350 y z - 1/175 x y - 1/350 x y z + ---- y z + 1/100 x + 7000 + + 311 2 29 3 2 2 2 2 + + ----- y + ---- y + 2/75 z - 1/150 z - 9/196 x + 2/75 z - 1/490 y z + 29400 2100 + + 17 2 2 + , COEFF(1, 2, 1) = 1/42 x + ---- y + 1/42 z - 1/700 x y z - 1/700 x y z + 2100 + + 2 211 2 191 2 211 2 3 3 + + 1/700 x y z + ---- z + ----- y + ---- x - 1/150 x + 1/300 y + 7350 29400 7350 + + 3 4 4 4 173 + - 1/150 z + 1/600 y - 1/150 x - 1/150 z - ---- + 1/500 x y z + 6125 + + 229 167 2 2 2 3 + + ----- x z + ---- y z - 1/700 x z + 1/980 x z - 1/300 x z + 10500 7000 + + 3 3 2 2 2 3 + - 1/150 y z - 1/300 x z - 1/490 y z - 1/350 y z - 1/150 x y + + 2 2 167 2 2 2 + - 1/490 x y + ---- x y + 1/350 y z - 1/350 x y + 1/350 x y + 7000 + + 2 3 3 19 19 + - 1/700 x z + 1/600 x y + 1/600 y z, COEFF(2, 2, 1) = - ---- x - ---- y + 2100 2100 + + 2 2 2 128 2 + + 8/525 z + 1/350 x y z - 1/350 x y z + 1/350 x y z + ---- z + 3675 + + 169 2 169 2 3 3 3 4 + - ----- y - ----- x + 1/300 x + 1/300 y - 1/150 z + 1/600 y + 29400 29400 + + 4 4 107 107 + + 1/600 x - 1/150 z - 2/125 + 1/250 x y z + ---- x z + ---- y z + 7000 7000 + + 2 2 2 3 3 3 + - 1/350 x z - 1/490 x z - 1/150 x z - 1/150 y z + 1/600 x z + + 2 2 2 3 2 2 47 + - 1/490 y z - 1/350 y z + 1/300 x y + 1/245 x y - ---- x y + 5250 + + 2 2 2 2 3 + + 1/350 y z + 1/175 x y + 1/175 x y + 1/350 x z + 1/300 x y + + 3 11 11 11 2 + + 1/600 y z, COEFF(-2, -2, 2) = --- x + --- y - --- z - 1/175 x y z + 420 420 420 + + 2 2 529 2 529 2 529 2 3 + + 1/175 x y z - 1/175 x y z - ----- z - ----- y - ----- x - 1/300 x + 29400 29400 29400 + + 3 3 4 4 4 202 + - 1/300 y + 1/300 z + 1/600 y + 1/600 x + 1/600 z + ---- + 6125 + + 137 137 2 2 2 + + 1/125 x y z + ---- x z + ---- y z - 1/175 x z + 1/245 x z + 5250 5250 + + 3 3 3 2 2 2 + - 1/300 x z - 1/300 y z - 1/300 x z + 1/245 y z - 1/175 y z + + 3 2 2 137 2 2 + + 1/300 x y + 1/245 x y - ---- x y + 1/175 y z - 1/175 x y + 5250 + + 2 2 3 3 + - 1/175 x y + 1/175 x z + 1/300 x y - 1/300 y z, COEFF(-1, -2, 2) = + + 19 19 2 2 2 + - 8/525 x + ---- y - ---- z + 1/350 x y z + 1/350 x y z - 1/350 x y z + 2100 2100 + + 169 2 169 2 128 2 3 3 3 + - ----- z - ----- y + ---- x + 1/150 x - 1/300 y + 1/300 z + 29400 29400 3675 + + 4 4 4 107 + + 1/600 y - 1/150 x + 1/600 z - 2/125 + 1/250 x y z - ---- x z + 7000 + + 47 2 2 2 3 3 + + ---- y z - 1/350 x z - 1/490 x z - 1/600 x z - 1/300 y z + 5250 + + 3 2 2 2 3 2 2 + + 1/150 x z + 1/245 y z - 1/175 y z - 1/150 x y - 1/490 x y + + 107 2 2 2 2 + + ---- x y + 1/175 y z + 1/350 x y - 1/350 x y - 1/350 x z + 7000 + + 3 3 2 2 2 + + 1/600 x y - 1/300 y z, COEFF(0, -2, 2) = - 1/245 x z + 1/175 y z + + 2 2 3 2 2 2 2 + - 1/175 x z - 1/600 z - 1/300 y z - 1/245 x y + 1/245 y z + + 3 2 17 2 47 + - 1/300 y + 1/175 x y z + 1/300 y + ---- y z - 1/600 y + ---- + 5250 6125 + + 4 2 33 2 3 4 3 + + 1/600 z - 1/175 y z - --- x - 1/300 y z + 1/600 y + 1/300 z + 980 + + 4 2 19 + + 1/100 x + 1/175 x y - 1/300 z, COEFF(1, -2, 2) = 8/525 x + ---- y + 2100 + + 19 2 2 2 169 2 + - ---- z + 1/350 x y z - 1/350 x y z + 1/350 x y z - ----- z + 2100 29400 + + 169 2 128 2 3 3 3 4 + - ----- y + ---- x - 1/150 x - 1/300 y + 1/300 z + 1/600 y + 29400 3675 + + 4 4 107 47 + - 1/150 x + 1/600 z - 2/125 - 1/250 x y z + ---- x z + ---- y z + 7000 5250 + + 2 2 2 3 3 3 + + 1/350 x z - 1/490 x z + 1/600 x z - 1/300 y z - 1/150 x z + + 2 2 2 3 2 2 107 + + 1/245 y z - 1/175 y z + 1/150 x y - 1/490 x y - ---- x y + 7000 + + 2 2 2 2 3 + + 1/175 y z + 1/350 x y + 1/350 x y - 1/350 x z - 1/600 x y + + 3 11 11 11 2 + - 1/300 y z, COEFF(2, -2, 2) = - --- x + --- y - --- z - 1/175 x y z + 420 420 420 + + 2 2 529 2 529 2 529 2 3 + - 1/175 x y z + 1/175 x y z - ----- z - ----- y - ----- x + 1/300 x + 29400 29400 29400 + + 3 3 4 4 4 202 + - 1/300 y + 1/300 z + 1/600 y + 1/600 x + 1/600 z + ---- + 6125 + + 137 137 2 2 2 + - 1/125 x y z - ---- x z + ---- y z + 1/175 x z + 1/245 x z + 5250 5250 + + 3 3 3 2 2 2 + + 1/300 x z - 1/300 y z + 1/300 x z + 1/245 y z - 1/175 y z + + 3 2 2 137 2 2 + - 1/300 x y + 1/245 x y + ---- x y + 1/175 y z - 1/175 x y + 5250 + + 2 2 3 3 + + 1/175 x y + 1/175 x z - 1/300 x y - 1/300 y z, COEFF(-2, -1, 2) = + + 19 19 2 2 2 + ---- x - 8/525 y - ---- z - 1/350 x y z + 1/350 x y z + 1/350 x y z + 2100 2100 + + 169 2 128 2 169 2 3 3 3 + - ----- z + ---- y - ----- x - 1/300 x + 1/150 y + 1/300 z + 29400 3675 29400 + + 4 4 4 47 + - 1/150 y + 1/600 x + 1/600 z - 2/125 + 1/250 x y z + ---- x z + 5250 + + 107 2 2 2 3 3 + - ---- y z - 1/175 x z + 1/245 x z - 1/300 x z - 1/600 y z + 7000 + + 3 2 2 2 3 2 2 + - 1/300 x z - 1/490 y z - 1/350 y z + 1/600 x y - 1/490 x y + + 107 2 2 2 2 + + ---- x y - 1/350 y z - 1/350 x y + 1/350 x y + 1/175 x z + 7000 + + 3 3 17 + - 1/150 x y + 1/150 y z, COEFF(-1, -1, 2) = - 1/42 x - 1/42 y + ---- z + 2100 + + 2 2 2 191 2 211 2 + + 1/700 x y z + 1/700 x y z + 1/700 x y z + ----- z + ---- y + 29400 7350 + + 211 2 3 3 3 4 4 + + ---- x + 1/150 x + 1/150 y + 1/300 z - 1/150 y - 1/150 x + 7350 + + 4 173 167 167 2 + + 1/600 z - ---- + 1/500 x y z - ---- x z - ---- y z - 1/350 x z + 6125 7000 7000 + + 2 2 3 3 3 2 2 + - 1/490 x z - 1/600 x z - 1/600 y z + 1/150 x z - 1/490 y z + + 2 3 2 2 229 2 + - 1/350 y z - 1/300 x y + 1/980 x y + ----- x y - 1/350 y z + 10500 + + 2 2 2 3 3 + + 1/700 x y + 1/700 x y - 1/350 x z - 1/300 x y + 1/150 y z, + + 2 3 4 29 2 + COEFF(0, -1, 2) = - 9/196 x + 1/150 y - 1/150 y + ---- z - 1/350 y z + 2100 + + 2 2 2 47 3 2 3 + - 1/490 y z + 2/75 y + ---- + 1/300 z + 1/350 x y z + 1/150 y z + 6125 + + 4 2 311 2 187 2 2 + + 1/600 z - 2/75 y - 1/175 x z + ----- z - ---- y z + 1/490 x y + 29400 7000 + + 2 3 2 2 2 4 + - 1/350 y z - 1/600 y z + 1/350 x y - 1/245 x z + 1/100 x , + + 17 2 2 + COEFF(1, -1, 2) = 1/42 x - 1/42 y + ---- z + 1/700 x y z - 1/700 x y z + 2100 + + 2 191 2 211 2 211 2 3 3 + - 1/700 x y z + ----- z + ---- y + ---- x - 1/150 x + 1/150 y + 29400 7350 7350 + + 3 4 4 4 173 + + 1/300 z - 1/150 y - 1/150 x + 1/600 z - ---- - 1/500 x y z + 6125 + + 167 167 2 2 2 3 3 + + ---- x z - ---- y z + 1/350 x z - 1/490 x z + 1/600 x z - 1/600 y z + 7000 7000 + + 3 2 2 2 3 2 2 + - 1/150 x z - 1/490 y z - 1/350 y z + 1/300 x y + 1/980 x y + + 229 2 2 2 2 + - ----- x y - 1/350 y z + 1/700 x y - 1/700 x y - 1/350 x z + 10500 + + 3 3 19 19 + + 1/300 x y + 1/150 y z, COEFF(2, -1, 2) = - ---- x - 8/525 y - ---- z + 2100 2100 + + 2 2 2 169 2 128 2 + - 1/350 x y z - 1/350 x y z - 1/350 x y z - ----- z + ---- y + 29400 3675 + + 169 2 3 3 3 4 4 + - ----- x + 1/300 x + 1/150 y + 1/300 z - 1/150 y + 1/600 x + 29400 + + 4 47 107 2 + + 1/600 z - 2/125 - 1/250 x y z - ---- x z - ---- y z + 1/175 x z + 5250 7000 + + 2 2 3 3 3 2 2 + + 1/245 x z + 1/300 x z - 1/600 y z + 1/300 x z - 1/490 y z + + 2 3 2 2 107 2 + - 1/350 y z - 1/600 x y - 1/490 x y - ---- x y - 1/350 y z + 7000 + + 2 2 2 3 3 + - 1/350 x y - 1/350 x y + 1/175 x z + 1/150 x y + 1/150 y z, + + 47 3 2 3 + COEFF(-2, 0, 2) = ---- + 1/300 z + 1/300 x + 1/175 x z - 1/300 x z + 6125 + + 33 2 17 2 3 2 + - --- y + ---- x z + 1/175 x y z - 1/300 z - 1/300 x - 1/600 z + 980 5250 + + 2 2 2 2 2 4 2 + + 1/245 x z - 1/600 x - 1/175 y z + 1/175 x y + 1/600 x - 1/175 x z + + 2 2 3 4 2 2 4 + - 1/245 x y - 1/300 x z + 1/100 y - 1/245 y z + 1/600 z , + + 2 187 2 2 2 + COEFF(-1, 0, 2) = 1/350 x y - ---- x z - 1/245 y z - 1/175 y z + 7000 + + 2 2 2 3 47 2 2 4 + - 1/350 x z - 1/490 x z - 1/600 x z + ---- + 1/490 x y + 1/600 z + 6125 + + 2 3 3 2 3 2 + + 1/350 x y z + 1/150 x + 1/300 z - 9/196 y + 1/150 x z - 1/350 x z + + 29 311 2 4 2 4 + + ---- z - 2/75 x + ----- z + 1/100 y + 2/75 x - 1/150 x , + 2100 29400 + + 2 2 2 2 2 2 292 + COEFF(0, 0, 2) = - 1/175 y z + 1/245 x y - 1/20 x - 1/245 y z + ---- + 6125 + + 4 2 2 2 431 2 2 4 + + 1/600 z - 1/245 x z - 1/175 x z + ----- z - 1/20 y + 1/100 y + 29400 + + 4 41 3 2 187 + + 1/100 x + ---- z + 1/300 z , COEFF(1, 0, 2) = - 1/350 x y + ---- x z + 2100 7000 + + 2 3 3 2 2 2 47 + + 1/350 x z + 1/600 x z - 1/150 x z - 9/196 y - 1/490 x z + ---- + 6125 + + 311 2 4 2 2 2 4 + + ----- z + 1/600 z - 1/350 x y z + 1/490 x y - 1/150 x + 2/75 x + 29400 + + 4 3 2 2 3 2 + + 1/100 y - 1/150 x - 1/175 y z - 1/350 x z + 1/300 z + 2/75 x + + 2 2 29 47 17 2 + - 1/245 y z + ---- z, COEFF(2, 0, 2) = ---- - ---- x z - 1/175 x y + 2100 6125 5250 + + 2 3 3 2 2 2 + + 1/175 x z + 1/300 x z + 1/300 x z - 1/175 y z - 1/245 y z + + 2 2 4 2 2 4 2 + + 1/245 x z + 1/600 x - 1/245 x y + 1/100 y - 1/175 x y z + + 3 2 4 3 2 + + 1/300 z + 1/175 x z + 1/600 z + 1/300 x - 1/300 x - 1/600 z + + 2 33 2 19 19 + - 1/600 x - --- y - 1/300 z, COEFF(-2, 1, 2) = ---- x + 8/525 y - ---- z + 980 2100 2100 + + 2 2 2 169 2 128 2 + + 1/350 x y z - 1/350 x y z + 1/350 x y z - ----- z + ---- y + 29400 3675 + + 169 2 3 3 3 4 4 + - ----- x - 1/300 x - 1/150 y + 1/300 z - 1/150 y + 1/600 x + 29400 + + 4 47 107 2 + + 1/600 z - 2/125 - 1/250 x y z + ---- x z + ---- y z - 1/175 x z + 5250 7000 + + 2 2 3 3 3 2 2 + + 1/245 x z - 1/300 x z + 1/600 y z - 1/300 x z - 1/490 y z + + 2 3 2 2 107 2 + + 1/350 y z - 1/600 x y - 1/490 x y - ---- x y - 1/350 y z + 7000 + + 2 2 2 3 3 + + 1/350 x y + 1/350 x y + 1/175 x z + 1/150 x y - 1/150 y z, + + 17 2 2 + COEFF(-1, 1, 2) = - 1/42 x + 1/42 y + ---- z - 1/700 x y z - 1/700 x y z + 2100 + + 2 191 2 211 2 211 2 3 3 + + 1/700 x y z + ----- z + ---- y + ---- x + 1/150 x - 1/150 y + 29400 7350 7350 + + 3 4 4 4 173 + + 1/300 z - 1/150 y - 1/150 x + 1/600 z - ---- - 1/500 x y z + 6125 + + 167 167 2 2 2 3 3 + - ---- x z + ---- y z - 1/350 x z - 1/490 x z - 1/600 x z + 1/600 y z + 7000 7000 + + 3 2 2 2 3 2 2 + + 1/150 x z - 1/490 y z + 1/350 y z + 1/300 x y + 1/980 x y + + 229 2 2 2 2 + - ----- x y - 1/350 y z - 1/700 x y + 1/700 x y - 1/350 x z + 10500 + + 3 3 2 3 + + 1/300 x y - 1/150 y z, COEFF(0, 1, 2) = - 1/175 x z - 1/150 y z + + 29 4 2 2 3 311 2 + + ---- z - 1/150 y - 1/350 x y - 9/196 x + 1/300 z + ----- z + 2/75 y + 2100 29400 + + 2 2 2 2 4 2 2 + - 1/350 x y z - 1/350 y z - 1/490 y z + 1/100 x + 1/490 x y + + 3 3 2 4 2 47 + - 1/150 y + 1/600 y z + 2/75 y + 1/600 z + 1/350 y z + ---- + 6125 + + 2 2 187 17 + - 1/245 x z + ---- y z, COEFF(1, 1, 2) = 1/42 x + 1/42 y + ---- z + 7000 2100 + + 2 2 2 191 2 211 2 + - 1/700 x y z + 1/700 x y z - 1/700 x y z + ----- z + ---- y + 29400 7350 + + 211 2 3 3 3 4 4 + + ---- x - 1/150 x - 1/150 y + 1/300 z - 1/150 y - 1/150 x + 7350 + + 4 173 167 167 2 + + 1/600 z - ---- + 1/500 x y z + ---- x z + ---- y z + 1/350 x z + 6125 7000 7000 + + 2 2 3 3 3 2 2 + - 1/490 x z + 1/600 x z + 1/600 y z - 1/150 x z - 1/490 y z + + 2 3 2 2 229 2 + + 1/350 y z - 1/300 x y + 1/980 x y + ----- x y - 1/350 y z + 10500 + + 2 2 2 3 3 + - 1/700 x y - 1/700 x y - 1/350 x z - 1/300 x y - 1/150 y z, + + 19 19 2 2 + COEFF(2, 1, 2) = - ---- x + 8/525 y - ---- z + 1/350 x y z + 1/350 x y z + 2100 2100 + + 2 169 2 128 2 169 2 3 3 + - 1/350 x y z - ----- z + ---- y - ----- x + 1/300 x - 1/150 y + 29400 3675 29400 + + 3 4 4 4 + + 1/300 z - 1/150 y + 1/600 x + 1/600 z - 2/125 + 1/250 x y z + + 47 107 2 2 2 3 3 + - ---- x z + ---- y z + 1/175 x z + 1/245 x z + 1/300 x z + 1/600 y z + 5250 7000 + + 3 2 2 2 3 2 2 + + 1/300 x z - 1/490 y z + 1/350 y z + 1/600 x y - 1/490 x y + + 107 2 2 2 2 + + ---- x y - 1/350 y z + 1/350 x y - 1/350 x y + 1/175 x z + 7000 + + 3 3 11 11 11 + - 1/150 x y - 1/150 y z, COEFF(-2, 2, 2) = --- x - --- y - --- z + 420 420 420 + + 2 2 2 529 2 529 2 + + 1/175 x y z - 1/175 x y z - 1/175 x y z - ----- z - ----- y + 29400 29400 + + 529 2 3 3 3 4 4 + - ----- x - 1/300 x + 1/300 y + 1/300 z + 1/600 y + 1/600 x + 29400 + + 4 202 137 137 2 + + 1/600 z + ---- - 1/125 x y z + ---- x z - ---- y z - 1/175 x z + 6125 5250 5250 + + 2 2 3 3 3 2 2 + + 1/245 x z - 1/300 x z + 1/300 y z - 1/300 x z + 1/245 y z + + 2 3 2 2 137 2 + + 1/175 y z - 1/300 x y + 1/245 x y + ---- x y + 1/175 y z + 5250 + + 2 2 2 3 3 + + 1/175 x y - 1/175 x y + 1/175 x z - 1/300 x y + 1/300 y z, + + 19 19 2 2 + COEFF(-1, 2, 2) = - 8/525 x - ---- y - ---- z - 1/350 x y z - 1/350 x y z + 2100 2100 + + 2 169 2 169 2 128 2 3 3 + - 1/350 x y z - ----- z - ----- y + ---- x + 1/150 x + 1/300 y + 29400 29400 3675 + + 3 4 4 4 + + 1/300 z + 1/600 y - 1/150 x + 1/600 z - 2/125 - 1/250 x y z + + 107 47 2 2 2 3 3 + - ---- x z - ---- y z - 1/350 x z - 1/490 x z - 1/600 x z + 1/300 y z + 7000 5250 + + 3 2 2 2 3 2 2 + + 1/150 x z + 1/245 y z + 1/175 y z + 1/150 x y - 1/490 x y + + 107 2 2 2 2 + - ---- x y + 1/175 y z - 1/350 x y - 1/350 x y - 1/350 x z + 7000 + + 3 3 33 2 3 + - 1/600 x y + 1/300 y z, COEFF(0, 2, 2) = - --- x + 1/300 y z + 980 + + 2 2 2 2 2 2 + + 1/175 y z - 1/175 x y z - 1/600 z + 1/245 y z - 1/175 x y + + 4 47 3 3 2 4 4 + + 1/600 z + ---- + 1/300 z + 1/300 y z - 1/600 y + 1/100 x + 1/600 y + 6125 + + 2 2 2 2 17 2 2 + - 1/175 x z - 1/300 y + 1/175 y z - 1/245 x y - ---- y z - 1/245 x z + 5250 + + 3 19 19 + + 1/300 y - 1/300 z, COEFF(1, 2, 2) = 8/525 x - ---- y - ---- z + 2100 2100 + + 2 2 2 169 2 169 2 + - 1/350 x y z + 1/350 x y z + 1/350 x y z - ----- z - ----- y + 29400 29400 + + 128 2 3 3 3 4 4 + + ---- x - 1/150 x + 1/300 y + 1/300 z + 1/600 y - 1/150 x + 3675 + + 4 107 47 2 + + 1/600 z - 2/125 + 1/250 x y z + ---- x z - ---- y z + 1/350 x z + 7000 5250 + + 2 2 3 3 3 2 2 + - 1/490 x z + 1/600 x z + 1/300 y z - 1/150 x z + 1/245 y z + + 2 3 2 2 107 2 + + 1/175 y z - 1/150 x y - 1/490 x y + ---- x y + 1/175 y z + 7000 + + 2 2 2 3 3 + - 1/350 x y + 1/350 x y - 1/350 x z + 1/600 x y + 1/300 y z, + + 11 11 11 2 2 + COEFF(2, 2, 2) = - --- x - --- y - --- z + 1/175 x y z + 1/175 x y z + 420 420 420 + + 2 529 2 529 2 529 2 3 3 + + 1/175 x y z - ----- z - ----- y - ----- x + 1/300 x + 1/300 y + 29400 29400 29400 + + 3 4 4 4 202 + + 1/300 z + 1/600 y + 1/600 x + 1/600 z + ---- + 1/125 x y z + 6125 + + 137 137 2 2 2 3 3 + - ---- x z - ---- y z + 1/175 x z + 1/245 x z + 1/300 x z + 1/300 y z + 5250 5250 + + 3 2 2 2 3 2 2 + + 1/300 x z + 1/245 y z + 1/175 y z + 1/300 x y + 1/245 x y + + 137 2 2 2 2 + - ---- x y + 1/175 y z + 1/175 x y + 1/175 x y + 1/175 x z + 5250 + + 3 3 + + 1/300 x y + 1/300 y z] + +> print_coeff__lc_of_data(%, "coeff_I_", "fp", +> "3d.coeffs/3d.cube.order4.smooth0/coeff-I.compute.c"); +bytes used=753066536, alloc=6945544, time=77.38 +bytes used=754066688, alloc=6945544, time=77.47 +bytes used=755066844, alloc=6945544, time=77.54 +bytes used=756067380, alloc=6945544, time=77.62 +bytes used=757067540, alloc=6945544, time=77.69 +bytes used=758067700, alloc=6945544, time=77.77 +bytes used=759068112, alloc=6945544, time=77.85 +bytes used=760068848, alloc=6945544, time=77.92 +bytes used=761069184, alloc=6945544, time=78.00 +bytes used=762069348, alloc=6945544, time=78.07 +bytes used=763069888, alloc=6945544, time=78.14 +bytes used=764070052, alloc=6945544, time=78.22 +bytes used=765070204, alloc=6945544, time=78.30 +bytes used=766070420, alloc=6945544, time=78.40 +bytes used=767070584, alloc=6945544, time=78.92 +bytes used=768071084, alloc=6945544, time=79.45 +bytes used=769071424, alloc=6945544, time=79.97 +bytes used=770071580, alloc=6945544, time=80.48 +bytes used=771072280, alloc=6945544, time=80.98 +bytes used=772072552, alloc=6945544, time=81.18 +bytes used=773072740, alloc=6945544, time=81.26 +bytes used=774072940, alloc=6945544, time=81.35 +bytes used=775073152, alloc=6945544, time=81.44 +bytes used=776073480, alloc=6945544, time=81.53 +bytes used=777073652, alloc=6945544, time=81.62 +bytes used=778073816, alloc=6945544, time=81.70 +bytes used=779074120, alloc=6945544, time=81.79 +bytes used=780074308, alloc=6945544, time=81.88 +bytes used=781074472, alloc=6945544, time=81.97 +bytes used=782074688, alloc=6945544, time=82.07 +bytes used=783330180, alloc=6945544, time=82.15 +bytes used=784394728, alloc=6945544, time=82.21 +bytes used=785451216, alloc=6945544, time=82.27 +bytes used=786494956, alloc=6945544, time=82.33 +bytes used=787523620, alloc=6945544, time=82.39 +bytes used=788543956, alloc=6945544, time=82.45 +bytes used=789554088, alloc=6945544, time=82.51 +bytes used=790557268, alloc=6945544, time=82.57 +bytes used=791558968, alloc=6945544, time=82.63 +bytes used=792790916, alloc=6945544, time=82.70 +bytes used=794017824, alloc=6945544, time=82.77 +bytes used=795233084, alloc=6945544, time=82.84 +bytes used=796439252, alloc=6945544, time=82.91 +bytes used=797637176, alloc=6945544, time=82.98 +bytes used=798826664, alloc=6945544, time=83.05 +bytes used=800011540, alloc=6945544, time=83.11 +bytes used=801195100, alloc=6945544, time=83.18 +bytes used=802375532, alloc=6945544, time=83.25 +bytes used=803545472, alloc=6945544, time=83.32 +bytes used=804686732, alloc=6945544, time=83.39 +bytes used=805799200, alloc=6945544, time=83.46 +bytes used=806896404, alloc=6945544, time=83.53 +bytes used=807976032, alloc=6945544, time=83.59 +bytes used=809033384, alloc=6945544, time=83.66 +bytes used=810071824, alloc=6945544, time=83.73 +bytes used=811089856, alloc=6945544, time=83.80 +bytes used=812092200, alloc=6945544, time=83.86 +bytes used=813247076, alloc=6945544, time=83.94 +bytes used=814375196, alloc=6945544, time=84.01 +bytes used=815469140, alloc=6945544, time=84.08 +bytes used=816536992, alloc=6945544, time=84.16 +bytes used=817583152, alloc=6945544, time=84.23 +bytes used=818598820, alloc=6945544, time=84.30 +bytes used=819734660, alloc=6945544, time=84.38 +bytes used=820820768, alloc=6945544, time=84.46 +bytes used=821861556, alloc=6945544, time=84.54 +bytes used=822875180, alloc=6945544, time=84.62 +bytes used=823875444, alloc=6945544, time=84.70 +bytes used=825004496, alloc=6945544, time=84.78 +bytes used=826122080, alloc=6945544, time=84.87 +bytes used=827234252, alloc=6945544, time=84.95 +bytes used=828339788, alloc=6945544, time=85.04 +bytes used=829440256, alloc=6945544, time=85.13 +bytes used=830525428, alloc=6945544, time=85.21 +bytes used=831526592, alloc=6945544, time=85.30 +bytes used=832578140, alloc=6945544, time=85.40 +bytes used=833588820, alloc=6945544, time=85.49 +bytes used=834646356, alloc=6945544, time=85.59 +bytes used=835663652, alloc=6945544, time=85.69 +bytes used=836675244, alloc=6945544, time=85.79 +bytes used=837677520, alloc=6945544, time=85.89 +bytes used=838678588, alloc=6945544, time=85.99 +bytes used=839679508, alloc=6945544, time=86.09 +bytes used=840687200, alloc=6945544, time=86.18 +bytes used=841756664, alloc=6945544, time=86.28 +bytes used=842757664, alloc=6945544, time=86.35 +bytes used=843757844, alloc=6945544, time=86.42 +bytes used=844787924, alloc=6945544, time=88.39 +bytes used=845788228, alloc=6945544, time=88.84 +bytes used=846788400, alloc=6945544, time=88.93 +bytes used=847788556, alloc=6945544, time=89.03 +bytes used=848788824, alloc=6945544, time=89.11 +bytes used=849789200, alloc=6945544, time=89.18 +bytes used=850789352, alloc=6945544, time=89.26 +bytes used=851789616, alloc=6945544, time=89.34 +bytes used=852790220, alloc=6945544, time=89.41 +bytes used=853790864, alloc=6945544, time=89.48 +bytes used=854791112, alloc=6945544, time=89.55 +bytes used=855791868, alloc=6945544, time=89.62 +bytes used=856792040, alloc=6945544, time=89.69 +bytes used=857792788, alloc=6945544, time=89.77 +bytes used=858793268, alloc=6945544, time=89.85 +bytes used=859794440, alloc=6945544, time=89.92 +bytes used=860799288, alloc=6945544, time=89.99 +bytes used=861799720, alloc=6945544, time=90.06 +bytes used=862799932, alloc=6945544, time=90.13 +bytes used=863800564, alloc=6945544, time=90.21 +bytes used=864800836, alloc=6945544, time=90.29 +bytes used=865806564, alloc=6945544, time=90.38 +bytes used=866810432, alloc=6945544, time=90.46 +bytes used=867810792, alloc=6945544, time=90.54 +bytes used=868811396, alloc=6945544, time=90.61 +bytes used=869812612, alloc=6945544, time=90.68 +bytes used=870818344, alloc=6945544, time=90.75 +bytes used=871819736, alloc=6945544, time=90.83 +bytes used=872820064, alloc=6945544, time=90.91 +bytes used=873820252, alloc=6945544, time=90.98 +bytes used=874822512, alloc=6945544, time=91.06 +bytes used=875822800, alloc=6945544, time=91.13 +bytes used=876823264, alloc=6945544, time=91.22 +bytes used=877823512, alloc=6945544, time=91.29 +bytes used=878823812, alloc=6945544, time=91.38 +bytes used=879824176, alloc=6945544, time=91.45 +bytes used=880824840, alloc=6945544, time=91.53 +bytes used=881825124, alloc=6945544, time=91.61 +bytes used=882825352, alloc=6945544, time=91.69 +bytes used=883825508, alloc=6945544, time=91.77 +bytes used=884825676, alloc=6945544, time=91.86 +bytes used=885825824, alloc=6945544, time=91.96 +bytes used=886825992, alloc=6945544, time=92.12 +bytes used=887834116, alloc=6945544, time=92.26 +bytes used=888863632, alloc=6945544, time=92.37 +bytes used=889863984, alloc=6945544, time=92.49 +bytes used=890891568, alloc=6945544, time=92.61 +bytes used=891891744, alloc=6945544, time=92.75 +bytes used=892892384, alloc=6945544, time=92.90 +bytes used=893928652, alloc=6945544, time=93.02 +bytes used=894929500, alloc=6945544, time=93.15 +bytes used=895946464, alloc=6945544, time=93.30 +bytes used=896946696, alloc=6945544, time=93.44 +bytes used=897946856, alloc=6945544, time=93.59 +bytes used=898947048, alloc=6945544, time=93.76 +bytes used=899947316, alloc=6945544, time=93.94 +bytes used=900947876, alloc=6945544, time=94.09 +bytes used=901971312, alloc=6945544, time=94.25 +bytes used=902971584, alloc=6945544, time=94.38 +bytes used=903971860, alloc=6945544, time=94.53 +bytes used=904972080, alloc=6945544, time=94.68 +bytes used=905997204, alloc=6945544, time=94.84 +bytes used=906997396, alloc=6945544, time=94.96 +bytes used=907997568, alloc=6945544, time=95.08 +bytes used=908997828, alloc=6945544, time=95.24 +bytes used=909998008, alloc=6945544, time=95.34 +bytes used=911002232, alloc=6945544, time=95.43 +bytes used=912038568, alloc=6945544, time=95.52 +bytes used=913038788, alloc=6945544, time=95.61 +bytes used=914039024, alloc=6945544, time=95.70 +bytes used=915039240, alloc=6945544, time=95.80 +bytes used=916039456, alloc=6945544, time=95.95 +bytes used=917078796, alloc=6945544, time=96.06 +bytes used=918089332, alloc=6945544, time=96.15 +bytes used=919089556, alloc=6945544, time=96.26 +bytes used=920097256, alloc=6945544, time=96.37 +bytes used=921133500, alloc=6945544, time=96.47 +bytes used=922167660, alloc=6945544, time=96.59 +bytes used=923204264, alloc=6945544, time=96.70 +bytes used=924243500, alloc=6945544, time=96.82 +bytes used=925255732, alloc=6945544, time=96.94 +bytes used=926286464, alloc=6945544, time=97.05 +bytes used=927306308, alloc=6945544, time=97.15 +bytes used=928314668, alloc=6945544, time=97.27 +bytes used=929331912, alloc=6945544, time=97.38 +bytes used=930348964, alloc=6945544, time=97.48 +bytes used=931349132, alloc=6945544, time=97.58 +bytes used=932382792, alloc=6945544, time=97.68 +bytes used=933411952, alloc=6945544, time=97.80 +bytes used=934412200, alloc=6945544, time=97.91 +bytes used=935420400, alloc=6945544, time=98.00 +bytes used=936459692, alloc=6945544, time=98.10 +bytes used=937461576, alloc=6945544, time=98.19 +bytes used=938479660, alloc=6945544, time=98.28 +bytes used=939479844, alloc=6945544, time=98.38 +bytes used=940482196, alloc=6945544, time=98.48 +bytes used=941482452, alloc=6945544, time=98.58 +bytes used=942521988, alloc=6945544, time=98.69 +bytes used=943542600, alloc=6945544, time=98.78 +bytes used=944542808, alloc=6945544, time=98.86 +bytes used=945543464, alloc=6945544, time=98.93 +bytes used=946573028, alloc=6945544, time=101.31 +bytes used=947581368, alloc=6945544, time=101.62 +bytes used=948581676, alloc=6945544, time=102.59 +bytes used=949581864, alloc=6945544, time=102.69 +bytes used=950582084, alloc=6945544, time=102.79 +bytes used=951582448, alloc=6945544, time=102.86 +bytes used=952582812, alloc=6945544, time=102.94 +bytes used=953582988, alloc=6945544, time=103.01 +bytes used=954583196, alloc=6945544, time=103.08 +bytes used=955583940, alloc=6945544, time=103.15 +bytes used=956584108, alloc=6945544, time=103.24 +bytes used=957584444, alloc=6945544, time=103.31 +bytes used=958584640, alloc=6945544, time=103.40 +bytes used=959585012, alloc=6945544, time=103.47 +bytes used=960585260, alloc=6945544, time=103.57 +bytes used=961585624, alloc=6945544, time=103.64 +bytes used=962585920, alloc=6945544, time=103.71 +bytes used=963586212, alloc=6945544, time=103.78 +bytes used=964586708, alloc=6945544, time=103.85 +bytes used=965586964, alloc=6945544, time=103.92 +bytes used=966587812, alloc=6945544, time=104.02 +bytes used=967588152, alloc=6945544, time=104.10 +bytes used=968588644, alloc=6945544, time=104.19 +bytes used=969589144, alloc=6945544, time=104.26 +bytes used=970589448, alloc=6945544, time=104.33 +bytes used=971589612, alloc=6945544, time=104.40 +bytes used=972589860, alloc=6945544, time=104.49 +bytes used=973590180, alloc=6945544, time=104.57 +bytes used=974590336, alloc=6945544, time=104.64 +bytes used=975590944, alloc=6945544, time=104.72 +bytes used=976591200, alloc=6945544, time=104.82 +bytes used=977591364, alloc=6945544, time=104.89 +bytes used=978591576, alloc=6945544, time=104.97 +bytes used=979591812, alloc=6945544, time=105.05 +bytes used=980592044, alloc=6945544, time=105.25 +bytes used=981593644, alloc=6945544, time=105.44 +bytes used=982604180, alloc=6945544, time=105.57 +bytes used=983618116, alloc=6945544, time=105.69 +bytes used=984618332, alloc=6945544, time=105.80 +bytes used=985618600, alloc=6945544, time=105.93 +bytes used=986644632, alloc=6945544, time=106.05 +bytes used=987650632, alloc=6945544, time=106.17 +bytes used=988669860, alloc=6945544, time=106.29 +bytes used=989671252, alloc=6945544, time=106.41 +bytes used=990671696, alloc=6945544, time=106.53 +bytes used=991672180, alloc=6945544, time=106.66 +bytes used=992714672, alloc=6945544, time=106.78 +bytes used=993714852, alloc=6945544, time=106.91 +bytes used=994752948, alloc=6945544, time=107.06 +bytes used=995753188, alloc=6945544, time=107.21 +bytes used=996753792, alloc=6945544, time=107.34 +bytes used=997754032, alloc=6945544, time=107.48 +bytes used=998779032, alloc=6945544, time=107.63 +bytes used=999784008, alloc=6945544, time=107.85 +bytes used=1000825200, alloc=6945544, time=108.00 +bytes used=1001829732, alloc=6945544, time=108.14 +bytes used=1002831112, alloc=6945544, time=108.29 +bytes used=1003873072, alloc=6945544, time=108.44 +bytes used=1004905380, alloc=6945544, time=108.57 +bytes used=1005913924, alloc=6945544, time=108.73 +bytes used=1006914112, alloc=6945544, time=108.86 +bytes used=1007914372, alloc=6945544, time=109.01 +bytes used=1008922188, alloc=6945544, time=109.17 +bytes used=1009941648, alloc=6945544, time=109.33 +bytes used=1010945800, alloc=6945544, time=109.49 +bytes used=1011947488, alloc=6945544, time=109.64 +bytes used=1012966840, alloc=6945544, time=109.82 +bytes used=1014003192, alloc=6945544, time=109.96 +bytes used=1015003424, alloc=6945544, time=110.09 +bytes used=1016003632, alloc=6945544, time=110.21 +bytes used=1017003820, alloc=6945544, time=110.32 +bytes used=1018004172, alloc=6945544, time=110.44 +bytes used=1019004336, alloc=6945544, time=110.56 +bytes used=1020004496, alloc=6945544, time=110.67 +bytes used=1021004912, alloc=6945544, time=110.75 +bytes used=1022005472, alloc=6945544, time=110.82 +bytes used=1023011816, alloc=6945544, time=113.91 +bytes used=1024030772, alloc=6945544, time=114.08 +bytes used=1025045008, alloc=6945544, time=114.28 +bytes used=1026054032, alloc=6945544, time=114.51 +bytes used=1027054224, alloc=6945544, time=114.71 +bytes used=1028054464, alloc=6945544, time=115.79 +bytes used=1029054628, alloc=6945544, time=116.63 +bytes used=1030054864, alloc=6945544, time=116.73 +bytes used=1031100840, alloc=6945544, time=116.84 +bytes used=1032100992, alloc=6945544, time=116.92 +bytes used=1033101256, alloc=6945544, time=116.99 +bytes used=1034101436, alloc=6945544, time=117.06 +bytes used=1035101892, alloc=6945544, time=117.14 +bytes used=1036102224, alloc=6945544, time=117.21 +bytes used=1037102388, alloc=6945544, time=117.29 +bytes used=1038102656, alloc=6945544, time=117.36 +bytes used=1039102936, alloc=6945544, time=117.44 +bytes used=1040103200, alloc=6945544, time=117.50 +bytes used=1041103444, alloc=6945544, time=117.58 +bytes used=1042103624, alloc=6945544, time=117.65 +bytes used=1043103972, alloc=6945544, time=117.72 +bytes used=1044104216, alloc=6945544, time=117.80 +bytes used=1045104340, alloc=6945544, time=117.87 +bytes used=1046104568, alloc=6945544, time=117.95 +bytes used=1047105048, alloc=6945544, time=118.02 +bytes used=1048105436, alloc=6945544, time=118.09 +bytes used=1049105696, alloc=6945544, time=118.17 +bytes used=1050105832, alloc=6945544, time=118.25 +bytes used=1051105956, alloc=6945544, time=118.32 +bytes used=1052106368, alloc=6945544, time=118.40 +bytes used=1053106608, alloc=6945544, time=118.47 +bytes used=1054106752, alloc=6945544, time=118.54 +bytes used=1055107072, alloc=6945544, time=118.62 +bytes used=1056107188, alloc=6945544, time=118.69 +bytes used=1057107484, alloc=6945544, time=118.77 +bytes used=1058107752, alloc=6945544, time=118.84 +bytes used=1059108108, alloc=6945544, time=118.92 +bytes used=1060108328, alloc=6945544, time=118.99 +bytes used=1061108652, alloc=6945544, time=119.06 +bytes used=1062109148, alloc=6945544, time=119.14 +bytes used=1063109420, alloc=6945544, time=119.22 +bytes used=1064109560, alloc=6945544, time=119.29 +bytes used=1065109800, alloc=6945544, time=119.37 +bytes used=1066110008, alloc=6945544, time=119.44 +bytes used=1067110228, alloc=6945544, time=119.80 +bytes used=1068111104, alloc=6945544, time=120.15 +bytes used=1069112168, alloc=6945544, time=120.51 +bytes used=1070114620, alloc=6945544, time=120.72 +bytes used=1071114752, alloc=6945544, time=120.95 +bytes used=1072114916, alloc=6945544, time=121.11 +bytes used=1073115056, alloc=6945544, time=121.22 +bytes used=1074115268, alloc=6945544, time=121.33 +bytes used=1075115420, alloc=6945544, time=121.45 +bytes used=1076115608, alloc=6945544, time=121.56 +bytes used=1077115872, alloc=6945544, time=121.67 +bytes used=1078116068, alloc=6945544, time=124.73 +bytes used=1079116224, alloc=6945544, time=125.86 +bytes used=1080116488, alloc=6945544, time=126.68 +bytes used=1081116936, alloc=6945544, time=126.78 +bytes used=1082117440, alloc=6945544, time=126.86 +bytes used=1083117784, alloc=6945544, time=126.93 +bytes used=1084118116, alloc=6945544, time=127.01 +bytes used=1085118340, alloc=6945544, time=127.08 +bytes used=1086118560, alloc=6945544, time=127.15 +bytes used=1087118884, alloc=6945544, time=127.23 +bytes used=1088119300, alloc=6945544, time=127.30 +bytes used=1089119516, alloc=6945544, time=127.38 +bytes used=1090119688, alloc=6945544, time=127.45 +bytes used=1091119860, alloc=6945544, time=127.53 +bytes used=1092120228, alloc=6945544, time=127.60 +bytes used=1093120520, alloc=6945544, time=127.67 +bytes used=1094120692, alloc=6945544, time=127.75 +bytes used=1095121004, alloc=6945544, time=127.82 +bytes used=1096121264, alloc=6945544, time=127.90 +bytes used=1097121420, alloc=6945544, time=127.97 +bytes used=1098121584, alloc=6945544, time=128.05 +bytes used=1099121780, alloc=6945544, time=128.12 +bytes used=1100122016, alloc=6945544, time=128.20 +bytes used=1101122192, alloc=6945544, time=128.27 +bytes used=1102122348, alloc=6945544, time=128.35 +bytes used=1103122536, alloc=6945544, time=128.42 +bytes used=1104122888, alloc=6945544, time=128.49 +bytes used=1105123304, alloc=6945544, time=128.57 +bytes used=1106123472, alloc=6945544, time=128.64 +bytes used=1107123728, alloc=6945544, time=128.72 +bytes used=1108123984, alloc=6945544, time=128.79 +bytes used=1109124440, alloc=6945544, time=128.86 +bytes used=1110124596, alloc=6945544, time=128.94 +bytes used=1111124772, alloc=6945544, time=129.01 +bytes used=1112125268, alloc=6945544, time=129.09 +bytes used=1113125700, alloc=6945544, time=129.16 +bytes used=1114126164, alloc=6945544, time=129.23 +bytes used=1115126388, alloc=6945544, time=129.30 +bytes used=1116126748, alloc=6945544, time=129.42 +bytes used=1117126900, alloc=6945544, time=129.86 +bytes used=1118127156, alloc=6945544, time=130.33 +bytes used=1119127356, alloc=6945544, time=130.64 +bytes used=1120127528, alloc=6945544, time=130.82 +bytes used=1121127692, alloc=6945544, time=130.94 +bytes used=1122127860, alloc=6945544, time=131.05 +bytes used=1123128020, alloc=6945544, time=131.17 +bytes used=1124129100, alloc=6945544, time=131.28 +bytes used=1125129252, alloc=6945544, time=133.86 +bytes used=1126129452, alloc=6945544, time=136.09 +bytes used=1127129620, alloc=6945544, time=136.19 +bytes used=1128129868, alloc=6945544, time=136.27 +bytes used=1129130032, alloc=6945544, time=136.35 +bytes used=1130130288, alloc=6945544, time=136.42 +bytes used=1131130492, alloc=6945544, time=136.50 +bytes used=1132131160, alloc=6945544, time=136.57 +bytes used=1133131676, alloc=6945544, time=136.64 +bytes used=1134131984, alloc=6945544, time=136.72 +bytes used=1135132276, alloc=6945544, time=136.79 +bytes used=1136132676, alloc=6945544, time=136.87 +bytes used=1137132960, alloc=6945544, time=136.94 +bytes used=1138133464, alloc=6945544, time=137.02 +bytes used=1139133776, alloc=6945544, time=137.09 +bytes used=1140133944, alloc=6945544, time=137.17 +bytes used=1141134236, alloc=6945544, time=137.24 +bytes used=1142134400, alloc=6945544, time=137.32 +bytes used=1143134552, alloc=6945544, time=137.39 +bytes used=1144134728, alloc=6945544, time=137.46 +bytes used=1145134884, alloc=6945544, time=137.54 +bytes used=1146135244, alloc=6945544, time=137.61 +bytes used=1147135420, alloc=6945544, time=137.69 +bytes used=1148135576, alloc=6945544, time=137.76 +bytes used=1149135912, alloc=6945544, time=137.84 +bytes used=1150136292, alloc=6945544, time=137.91 +bytes used=1151136728, alloc=6945544, time=137.99 +bytes used=1152137008, alloc=6945544, time=138.06 +bytes used=1153137232, alloc=6945544, time=138.14 +bytes used=1154137528, alloc=6945544, time=138.21 +bytes used=1155137772, alloc=6945544, time=138.30 +bytes used=1156138072, alloc=6945544, time=138.37 +bytes used=1157138504, alloc=6945544, time=138.45 +bytes used=1158138748, alloc=6945544, time=138.52 +bytes used=1159139260, alloc=6945544, time=138.59 +bytes used=1160139460, alloc=6945544, time=138.67 +bytes used=1161139612, alloc=6945544, time=138.74 +bytes used=1162140064, alloc=6945544, time=138.93 +bytes used=1163141868, alloc=6945544, time=139.36 +bytes used=1164142108, alloc=6945544, time=139.84 +bytes used=1165142268, alloc=6945544, time=140.17 +bytes used=1166142460, alloc=6945544, time=140.28 +bytes used=1167142720, alloc=6945544, time=140.40 +bytes used=1168142920, alloc=6945544, time=140.51 +bytes used=1169143100, alloc=6945544, time=140.63 +bytes used=1170143300, alloc=6945544, time=140.74 +bytes used=1171143488, alloc=6945544, time=144.92 +bytes used=1172143640, alloc=6945544, time=145.68 +bytes used=1173143936, alloc=6945544, time=145.78 +bytes used=1174144284, alloc=6945544, time=145.85 +bytes used=1175144484, alloc=6945544, time=145.93 +bytes used=1176144852, alloc=6945544, time=146.00 +bytes used=1177145140, alloc=6945544, time=146.08 +bytes used=1178145316, alloc=6945544, time=146.15 +bytes used=1179145488, alloc=6945544, time=146.23 +bytes used=1180145760, alloc=6945544, time=146.30 +bytes used=1181145976, alloc=6945544, time=146.37 +bytes used=1182146460, alloc=6945544, time=146.45 +bytes used=1183146680, alloc=6945544, time=146.52 +bytes used=1184146984, alloc=6945544, time=146.60 +bytes used=1185147196, alloc=6945544, time=146.67 +bytes used=1186147356, alloc=6945544, time=146.75 +bytes used=1187147672, alloc=6945544, time=146.82 +bytes used=1188148024, alloc=6945544, time=146.89 +bytes used=1189148180, alloc=6945544, time=146.97 +bytes used=1190148540, alloc=6945544, time=147.04 +bytes used=1191149008, alloc=6945544, time=147.12 +bytes used=1192149196, alloc=6945544, time=147.19 +bytes used=1193149448, alloc=6945544, time=147.27 +bytes used=1194149824, alloc=6945544, time=147.34 +bytes used=1195150288, alloc=6945544, time=147.42 +bytes used=1196150444, alloc=6945544, time=147.49 +bytes used=1197150628, alloc=6945544, time=147.56 +bytes used=1198151004, alloc=6945544, time=147.64 +bytes used=1199151156, alloc=6945544, time=147.71 +bytes used=1200151336, alloc=6945544, time=147.79 +bytes used=1201151776, alloc=6945544, time=147.86 +bytes used=1202152204, alloc=6945544, time=147.94 +bytes used=1203152652, alloc=6945544, time=148.01 +bytes used=1204152952, alloc=6945544, time=148.08 +bytes used=1205153348, alloc=6945544, time=148.16 +bytes used=1206153600, alloc=6945544, time=148.23 +bytes used=1207153868, alloc=6945544, time=148.31 +bytes used=1208154328, alloc=6945544, time=148.60 +bytes used=1209154744, alloc=6945544, time=149.12 +bytes used=1210154924, alloc=6945544, time=149.47 +bytes used=1211155132, alloc=6945544, time=149.73 +bytes used=1212155328, alloc=6945544, time=149.85 +bytes used=1213155500, alloc=6945544, time=149.95 +bytes used=1214155664, alloc=6945544, time=150.07 +bytes used=1215155876, alloc=6945544, time=150.18 +bytes used=1216156056, alloc=6945544, time=151.98 +bytes used=1217158092, alloc=6945544, time=155.06 +bytes used=1218159288, alloc=6945544, time=155.36 +bytes used=1219159520, alloc=6945544, time=155.66 +bytes used=1220161512, alloc=6945544, time=155.88 +bytes used=1221165628, alloc=6945544, time=156.06 +bytes used=1222166164, alloc=6945544, time=156.13 +bytes used=1223166336, alloc=6945544, time=156.19 +bytes used=1224166512, alloc=6945544, time=156.32 +bytes used=1225166808, alloc=6945544, time=156.45 +bytes used=1226167008, alloc=6945544, time=156.60 +bytes used=1227167164, alloc=6945544, time=156.73 +> +# d/dx +> simplify( diff(interp_3d_cube_order4_smooth0,x) ); +bytes used=1228167336, alloc=6945544, time=156.84 +bytes used=1229168568, alloc=6945544, time=156.92 +bytes used=1230168960, alloc=6945544, time=156.99 +bytes used=1231169716, alloc=6945544, time=157.06 +bytes used=1232170104, alloc=6945544, time=157.13 +bytes used=1233170264, alloc=6945544, time=157.20 +bytes used=1234170424, alloc=6945544, time=157.28 +bytes used=1235170584, alloc=6945544, time=157.35 +bytes used=1236170752, alloc=6945544, time=157.42 +bytes used=1237170948, alloc=6945544, time=157.50 +bytes used=1238171108, alloc=6945544, time=157.57 +bytes used=1239171268, alloc=6945544, time=157.65 +bytes used=1240655088, alloc=6945544, time=157.76 +bytes used=1241655468, alloc=6945544, time=157.85 +bytes used=1242655604, alloc=6945544, time=157.93 +bytes used=1243656096, alloc=6945544, time=158.00 +bytes used=1244656260, alloc=6945544, time=158.09 +bytes used=1245656428, alloc=6945544, time=158.17 +bytes used=1246656772, alloc=6945544, time=158.25 +bytes used=1247656916, alloc=6945544, time=158.33 +bytes used=1248657068, alloc=6945544, time=158.42 +bytes used=1249657736, alloc=6945544, time=158.50 +bytes used=1250657896, alloc=6945544, time=158.59 +bytes used=1251658640, alloc=6945544, time=158.68 +bytes used=1252658788, alloc=6945544, time=158.78 +bytes used=1253658948, alloc=6945544, time=158.87 +bytes used=1254659072, alloc=6945544, time=158.97 +bytes used=1255659268, alloc=6945544, time=159.07 +bytes used=1256659408, alloc=6945544, time=159.16 +bytes used=1257659592, alloc=6945544, time=159.25 + 17 17 37 +- --- DATA(-1, 1, -1) + --- DATA(1, 1, -1) - ---- DATA(-1, -1, 0) + 525 525 1050 + + 37 37 + + ---- DATA(1, -1, 0) - 4/105 DATA(-1, 0, 0) - ---- DATA(-1, 1, 0) + 1050 1050 + + 17 37 17 + - --- DATA(-1, 1, 1) - ---- DATA(-1, 0, 1) + --- DATA(1, -1, 1) + 525 1050 525 + + 17 + - --- DATA(-1, -1, 1) - 1/175 x y z DATA(2, 2, -1) - 8/525 DATA(-1, -2, 2) + 525 + + 37 37 + - ---- DATA(-1, 0, -1) + ---- DATA(1, 0, -1) + 4/105 DATA(1, 0, 0) + 1050 1050 + + 37 + + ---- DATA(1, 1, 0) + 1/700 x y z DATA(1, 1, -1) + 1050 + + + 1/175 x y z DATA(2, 1, 2) - 1/175 x y z DATA(1, -2, -2) + + + 1/700 x y z DATA(-1, 1, -1) + 2/175 x y z DATA(2, 2, 2) + + - 1/175 x y z DATA(1, 2, 2) + 2/175 x y z DATA(2, -2, -2) + + + 1/175 x y z DATA(-2, -1, -2) - 1/700 x y z DATA(1, -1, -1) + + + 1/175 x y z DATA(2, 2, 1) - 2/175 x y z DATA(-2, 2, -2) + + + 1/350 x y z DATA(1, -1, 2) - 1/175 x y z DATA(2, -1, 2) + + - 1/175 x y z DATA(-1, -2, -2) + 1/700 x y z DATA(-1, -1, 1) + + - 1/175 x y z DATA(-1, 2, 2) - 1/350 x y z DATA(-1, 1, 2) + + + 2/175 x y z DATA(-2, -2, -2) + 1/700 x y z DATA(1, -1, 1) + + - 1/700 x y z DATA(-1, 1, 1) - 1/350 x y z DATA(1, -2, -1) + + - 1/350 x y z DATA(-1, -2, -1) + 1/350 x y z DATA(1, 1, -2) + + - 1/175 x y z DATA(-2, 1, -2) + 1/350 x y z DATA(-1, 1, -2) + + + 1/175 x y z DATA(-1, -2, 2) + 8/525 DATA(1, -2, 2) + + + 1/175 x y z DATA(2, -1, -2) + 1/350 x y z DATA(-1, -1, 2) + + - 1/175 x y z DATA(2, 1, -2) - 1/350 x y z DATA(-2, 1, -1) + + + 1/350 x y z DATA(-2, -1, -1) + 1/175 x y z DATA(-2, -2, -1) + + 19 + + ---- DATA(-2, -1, 2) - 1/350 x y z DATA(-1, -1, -2) + 2100 + + - 2/175 x y z DATA(2, 2, -2) - 1/350 x y z DATA(1, -1, -2) + + 11 + + 1/175 x y z DATA(2, -2, -1) - --- DATA(2, -2, 2) + 420 + + - 1/350 x y z DATA(-2, -1, 1) + 1/175 x y z DATA(1, 2, -2) + + + 1/175 x y z DATA(-1, 2, -2) + 1/350 x y z DATA(-1, -2, 1) + + - 1/350 x y z DATA(1, 1, 2) + 1/350 x y z DATA(1, -2, 1) + + + 1/175 x y z DATA(1, -2, 2) - 1/175 x y z DATA(2, -2, 1) + + + 1/175 x y z DATA(-2, 2, 1) - 1/175 x y z DATA(-2, -2, 1) + + - 1/175 x y z DATA(-2, 2, -1) + 1/350 x y z DATA(0, 1, -1) + + + 1/350 x y z DATA(0, -1, 1) + 1/300 DATA(-2, 0, 2) + + + 1/350 x y z DATA(-2, 1, 1) - 1/175 x y z DATA(-2, -1, 2) + + - 2/175 x y z DATA(-2, -2, 2) - 2/175 x y z DATA(0, 2, 2) + + - 2/175 x y z DATA(2, -2, 2) - 1/350 x y z DATA(0, -1, -1) + + 19 + + ---- DATA(-2, 1, 2) + 2/175 x y z DATA(0, -2, 2) + 2100 + + + 1/175 x y z DATA(0, 2, -1) - 1/175 x y z DATA(0, 2, 1) + + 37 17 + + ---- DATA(1, 0, 1) + --- DATA(1, 1, 1) - 2/175 x y z DATA(0, -2, -2) + 1050 525 + + + 1/175 x y z DATA(0, 1, -2) + 1/175 x y z DATA(0, -1, 2) + + 11 + - 1/175 x y z DATA(0, -1, -2) + --- DATA(-2, 2, 2) + 420 + + - 1/175 x y z DATA(0, 1, 2) - 1/350 x y z DATA(0, 1, 1) + + - 1/175 x y z DATA(0, -2, -1) + 2/175 x y z DATA(0, 2, -2) + + + 1/175 x y z DATA(0, -2, 1) - 1/700 x y z DATA(-1, -1, -1) + + - 1/700 x y z DATA(1, 1, 1) + 1/175 x y z DATA(-2, 1, 2) + + 2 2 + - 1/350 y z DATA(-2, 1, -2) - 1/350 y z DATA(2, -1, -2) + + 2 + - 1/700 y z DATA(1, -1, -2) + 1/250 y z DATA(2, -2, -1) + + + 1/500 y z DATA(1, -2, -1) - 1/500 y z DATA(-1, -2, -1) + + - 1/250 y z DATA(-2, -2, -1) - 1/125 y z DATA(2, 2, -2) + + - 1/250 y z DATA(1, 2, -2) + 1/250 y z DATA(-1, 2, -2) + + - 1/350 x y z DATA(2, -1, 1) + 1/500 y z DATA(-2, 1, -1) + + - 1/500 y z DATA(-2, -1, -1) - 1/350 x y z DATA(1, 2, 1) + + - 1/350 x y z DATA(-1, 2, 1) + 1/250 y z DATA(-2, 2, -1) + + + 1/250 y z DATA(-2, -2, 1) + 1/350 x y z DATA(2, 1, 1) + + + 1/350 x y z DATA(1, 2, -1) + 1/350 x y z DATA(-1, 2, -1) + + 2 + + 2/175 x y z DATA(-2, 2, 2) - 1/700 y z DATA(1, 2, 1) + + 2 2 + + 1/700 y z DATA(2, -1, 1) + 1/1400 y z DATA(1, -1, -1) + + 2 2 + - 1/350 y z DATA(2, 2, -1) + 1/350 y z DATA(1, 2, 2) + + 2 2 + + 1/350 y z DATA(-2, -1, -2) + 1/175 y z DATA(2, 2, 2) + + 2 2 + - 1/175 y z DATA(2, -2, -2) + 1/1400 y z DATA(-1, 1, -1) + + 2 2 + - 1/350 y z DATA(1, -2, -2) + 1/350 y z DATA(2, 1, 2) + + 2 2 + - 1/350 y z DATA(-1, 2, 2) + 1/350 y z DATA(-1, -2, -2) + + 2 2 + - 1/700 y z DATA(-1, 1, 2) + 1/175 y z DATA(-2, -2, -2) + + 2 2 + - 1/700 y z DATA(1, -1, 2) - 1/350 y z DATA(2, -1, 2) + + 2 2 + + 1/700 y z DATA(-1, -1, 2) - 1/350 y z DATA(2, 2, 1) + + 2 2 + - 1/175 y z DATA(-2, 2, -2) + 1/350 y z DATA(2, 1, -2) + + 2 2 + + 1/700 y z DATA(1, 1, -2) - 1/700 y z DATA(-1, 1, -2) + + 2 2 + + 1/700 y z DATA(-1, 1, 0) + 1/1400 y z DATA(-1, 1, 1) + + 2 2 + + 1/1400 y z DATA(1, -1, 1) - 1/1400 y z DATA(-1, -1, 1) + + 2 17 + + 1/350 y z DATA(-1, -2, 2) - --- DATA(-1, -1, -1) + 525 + + 2 2 + - 1/700 y z DATA(1, 1, 0) - 1/350 y z DATA(1, -2, 2) + + 2 2 + + 1/350 y z DATA(-2, -1, 2) - 1/175 y z DATA(2, -2, 2) + + 2 2 + - 1/350 y z DATA(-2, 1, 2) - 1/1400 y z DATA(1, 1, 1) + + 2 2 + - 1/175 y z DATA(-2, 2, 2) - 1/1400 y z DATA(-1, -1, -1) + + 2 2 + - 1/700 y z DATA(1, 2, -1) - 1/700 y z DATA(2, 1, -1) + + 2 2 + + 1/700 y z DATA(-1, 2, -1) + 1/700 y z DATA(2, -1, -1) + + 2 2 + - 1/700 y z DATA(2, 1, 1) + 1/700 y z DATA(-1, 2, 1) + + 2 2 + - 1/350 y z DATA(2, -1, 2) + 1/700 y z DATA(-1, -1, 2) + + 2 2 + + 1/350 y z DATA(2, 2, 1) + 1/175 y z DATA(-2, 2, -2) + + 2 2 + + 1/350 y z DATA(2, 1, -2) + 1/700 y z DATA(1, 1, -2) + + 2 + - 1/700 y z DATA(-1, 1, -2) + 1/42 DATA(1, 2, -1) + + 2 2 + - 1/350 y z DATA(-2, 1, -2) + 1/350 y z DATA(2, -1, -2) + + 17 2 + + ---- DATA(2, 1, -1) - 1/42 DATA(-1, 2, -1) + 1/700 y z DATA(1, -1, -2) + 2100 + + 2 2 + - 1/700 y z DATA(-1, -1, -2) - 1/350 y z DATA(2, -2, -1) + + 2 2 + - 1/700 y z DATA(1, -2, -1) + 1/700 y z DATA(-1, -2, -1) + + 2 + + 1/350 y z DATA(-2, -2, -1) - 1/250 y z DATA(2, -2, 1) + + + 1/500 y z DATA(-2, -1, 1) - 1/500 y z DATA(-2, 1, 1) + + 17 29 + + ---- DATA(2, -1, -1) + ---- DATA(2, 0, -1) - 1/250 y z DATA(-2, 2, 1) + 2100 2100 + + 2 + + 1/125 y z DATA(-2, -2, 2) - 1/700 y z DATA(-1, -1, 0) + + 2 2 + + 1/700 y z DATA(1, -1, 0) - 1/700 y z DATA(1, 2, -1) + + 17 2 + + ---- DATA(2, 1, 1) - 1/42 DATA(-1, 2, 1) + 1/700 y z DATA(2, 1, -1) + 2100 + + 2 + + 1/42 DATA(1, 2, 1) + 1/700 y z DATA(-1, 2, -1) + + 2 2 + + 1/700 y z DATA(2, -1, -1) - 1/700 y z DATA(2, 1, 1) + + 2 + - 1/700 y z DATA(-1, 2, 1) - 1/500 y z DATA(-1, -1, -2) + + 17 2 29 + + ---- DATA(2, -1, 1) + 1/700 y z DATA(1, 2, 1) + ---- DATA(2, 0, 1) + 2100 2100 + + 17 2 + + --- DATA(1, -1, -1) - 1/700 y z DATA(2, -1, 1) + 525 + + 2 + + 1/1400 y z DATA(1, -1, -1) + 2/75 DATA(1, 2, 0) - 1/300 DATA(2, 2, 0) + + 2 2 + - 1/350 y z DATA(2, 2, -1) + 1/350 y z DATA(1, 2, 2) + + 2 2 + - 1/350 y z DATA(-2, -1, -2) + 1/175 y z DATA(2, 2, 2) + + 29 2 + + ---- DATA(2, 1, 0) - 1/175 y z DATA(2, -2, -2) - 2/75 DATA(-1, 2, 0) + 2100 + + 2 2 + - 1/1400 y z DATA(-1, 1, -1) - 1/350 y z DATA(1, -2, -2) + + 2 2 + - 1/350 y z DATA(2, 1, 2) - 1/350 y z DATA(-1, 2, 2) + + 2 2 + + 1/350 y z DATA(-1, -2, -2) + 1/700 y z DATA(-1, 1, 2) + + 29 41 2 + + ---- DATA(2, -1, 0) + ---- DATA(2, 0, 0) + 1/175 y z DATA(-2, -2, -2) + 2100 2100 + + 19 2 + - ---- DATA(2, 2, -1) - 1/700 y z DATA(1, -1, 2) + 2100 + + 2 2 + + 1/350 y z DATA(-2, 2, 1) + 1/175 y z DATA(-2, -2, 2) + + 2 19 + - 1/350 y z DATA(1, 2, 0) + 8/525 DATA(1, 2, 2) + ---- DATA(-2, -1, -2) + 2100 + + 11 2 2 + - --- DATA(2, 2, 2) - 1/175 y z DATA(2, 2, 0) - 1/350 y z DATA(2, 1, 0) + 420 + + 2 2 + + 1/350 y z DATA(-1, 2, 0) + 1/350 y z DATA(2, -1, 0) + + 2 2 + - 1/350 y z DATA(-1, -2, 0) - 1/175 y z DATA(-2, -2, 0) + + 11 2 + - --- DATA(2, -2, -2) - 1/350 y z DATA(-2, -1, 0) + 8/525 DATA(1, -2, -2) + 420 + + 19 2 + + 1/42 DATA(1, 1, 2) - ---- DATA(2, 1, 2) + 1/175 y z DATA(2, -2, 0) + 2100 + + 2 + - 8/525 DATA(-1, 2, 2) + 1/350 y z DATA(1, -2, 0) + + - 8/525 DATA(-1, -2, -2) + 2/75 DATA(1, 0, 2) - 1/300 DATA(2, 0, 2) + + 2 11 + - 1/42 DATA(-1, 1, 2) + 1/350 y z DATA(-2, 1, 0) + --- DATA(-2, -2, -2) + 420 + + 2 2 + + 1/175 y z DATA(-2, 2, 0) + 1/1400 y z DATA(-1, 1, 1) + + 2 2 + + 1/700 y z DATA(-1, 0, 1) - 1/1400 y z DATA(1, -1, 1) + + 2 2 + + 1/1400 y z DATA(-1, -1, 1) - 1/350 y z DATA(-1, -2, 2) + + 2 19 + - 1/700 y z DATA(-1, 0, -1) + 1/42 DATA(1, -1, 2) - ---- DATA(2, -1, 2) + 2100 + + 2 + + 1/700 y z DATA(1, 0, -1) - 2/75 DATA(-1, 0, 2) + + 2 2 + + 1/350 y z DATA(1, -2, 2) + 1/350 y z DATA(-2, -1, 2) + + 2 2 + + 1/175 y z DATA(2, -2, 2) + 1/350 y z DATA(-2, 1, 2) + + 2 19 + - 1/1400 y z DATA(1, 1, 1) - 1/42 DATA(-1, -1, 2) - ---- DATA(2, 2, 1) + 2100 + + 2 2 + - 1/175 y z DATA(-2, 2, 2) - 1/1400 y z DATA(-1, -1, -1) + + - 2/175 x z DATA(-2, -1, -2) + 2/175 x z DATA(2, 2, 2) + + 11 + + --- DATA(-2, 2, -2) - 2/175 x z DATA(2, -2, -2) + 420 + + 19 + + 1/350 x z DATA(-1, 1, -1) - ---- DATA(2, 1, -2) + 2100 + + 2 + + 1/500 y z DATA(-1, 2, -1) + 1/700 y z DATA(-1, -1, -2) + + 2 + + 1/42 DATA(1, 1, -2) + 1/350 y z DATA(2, -2, -1) - 1/42 DATA(-1, 1, -2) + + 2 2 + + 1/700 y z DATA(1, -2, -1) - 1/700 y z DATA(-1, -2, -1) + + 2 2 + - 1/350 y z DATA(-2, -2, -1) + 1/175 y z DATA(2, 2, -2) + + 2 2 + + 1/350 y z DATA(1, 2, -2) - 1/350 y z DATA(-1, 2, -2) + + 2 2 + + 1/700 y z DATA(-2, 1, -1) - 1/700 y z DATA(-2, -1, -1) + + 19 2 + + ---- DATA(-2, 1, -2) + 1/350 y z DATA(-2, 2, -1) + 2100 + + 2 + - 1/350 y z DATA(-2, -2, 1) - 1/300 DATA(2, 0, -2) + 2/75 DATA(1, 0, -2) + + 2 + - 1/700 y z DATA(-1, -2, 1) - 2/75 DATA(-1, 0, -2) + + 2 19 + + 1/700 y z DATA(1, -2, 1) + 1/300 DATA(-2, 0, -2) - ---- DATA(2, -1, -2) + 2100 + + 2 2 + + 1/700 y z DATA(1, 1, 2) + 1/350 y z DATA(2, -2, 1) + + 2 + - 1/700 y z DATA(-2, -1, 1) + 1/42 DATA(1, -1, -2) + + 2 + + 1/700 y z DATA(-2, 1, 1) - 1/42 DATA(-1, -1, -2) + + + 1/350 x z DATA(1, 1, -1) - 1/350 x z DATA(-1, 1, 1) + + 19 + - 1/350 x z DATA(-1, 0, 1) - ---- DATA(2, -2, -1) + 2100 + + - 1/350 x z DATA(1, -1, 1) - 1/350 x z DATA(-1, -1, 1) + + - 1/175 x z DATA(-1, -2, 2) + 1/350 x z DATA(-1, 0, -1) + + + 1/350 x z DATA(1, 0, -1) - 1/175 x z DATA(1, -2, 2) + + + 1/42 DATA(1, -2, -1) + 2/175 x z DATA(-2, -1, 2) + + + 2/175 x z DATA(2, -2, 2) + 2/175 x z DATA(-2, 1, 2) + + - 1/350 x z DATA(1, 1, 1) + 2/175 x z DATA(-2, 2, 2) + + + 1/350 x z DATA(-1, -1, -1) - 1/42 DATA(-1, -2, -1) + + + 1/350 x z DATA(1, 2, -1) - 1/175 x z DATA(2, 1, -1) + + 19 + + ---- DATA(-2, -2, -1) + 1/350 x z DATA(-1, 2, -1) + 2100 + + 11 + - 1/175 x z DATA(2, -1, -1) + 1/175 x z DATA(2, 1, 1) - --- DATA(2, 2, -2) + 420 + + - 1/350 x z DATA(-1, 2, 1) - 1/350 x z DATA(1, 2, 1) + + + 1/175 x z DATA(2, -1, 1) + 8/525 DATA(1, 2, -2) + + + 1/350 x z DATA(1, -1, -1) - 1/175 x z DATA(2, 2, -1) + + - 1/175 x z DATA(1, 2, 2) - 8/525 DATA(-1, 2, -2) + + 2 17 + - 1/350 y z DATA(-2, 2, 1) - ---- DATA(-2, 1, -1) + 2100 + + 2 2 + - 1/175 y z DATA(-2, -2, 2) + 1/175 y z DATA(-2, 0, 2) + + 2 2 + - 1/700 y z DATA(1, 0, 1) - 1/350 y z DATA(2, 0, 1) + + 2 2 + - 1/350 y z DATA(1, 0, 2) - 1/175 y z DATA(2, 0, 2) + + 2 2 + + 1/350 y z DATA(-1, 0, 2) + 1/175 y z DATA(2, 0, -2) + + 2 29 + + 1/350 y z DATA(1, 0, -2) - ---- DATA(-2, 0, -1) + 2100 + + 2 2 + + 1/350 y z DATA(2, 0, -1) - 1/350 y z DATA(-1, 0, -2) + + 2 2 + - 1/175 y z DATA(-2, 0, -2) - 1/350 y z DATA(-2, 0, -1) + + 17 2 + - ---- DATA(-2, -1, -1) + 1/350 y z DATA(-2, 0, 1) + 2100 + + 2 2 + - 1/175 y z DATA(2, 2, -2) - 1/350 y z DATA(1, 2, -2) + + 2 19 + + 1/350 y z DATA(-1, 2, -2) + ---- DATA(-2, 2, -1) + 2100 + + 2 2 + - 1/700 y z DATA(-2, 1, -1) - 1/700 y z DATA(-2, -1, -1) + + 2 2 + + 1/350 y z DATA(-2, 2, -1) - 1/350 y z DATA(-2, -2, 1) + + 2 2 + - 1/700 y z DATA(-1, -2, 1) + 1/700 y z DATA(1, -2, 1) + + 2 2 + - 1/700 y z DATA(1, 1, 2) + 1/350 y z DATA(2, -2, 1) + + 2 2 + + 1/700 y z DATA(-2, -1, 1) + 1/700 y z DATA(-2, 1, 1) + + - 1/175 x z DATA(0, -2, 1) + 2/175 x z DATA(-2, 0, 2) + + - 2/75 DATA(-1, -2, 0) - 2/175 x z DATA(0, 1, 2) + 1/300 DATA(-2, -2, 0) + + - 1/175 x z DATA(0, 1, 1) + 1/175 x z DATA(0, -2, -1) + + - 1/350 x z DATA(1, 0, 1) + 1/175 x z DATA(2, 0, 1) + + - 1/175 x z DATA(1, 0, 2) + 2/175 x z DATA(2, 0, 2) + + 41 + - 1/175 x z DATA(-1, 0, 2) - ---- DATA(-2, 0, 0) + 2100 + + + 1/175 x z DATA(0, 2, -1) - 1/175 x z DATA(0, 2, 1) + + - 2/175 x z DATA(0, 2, 2) + 2/175 x z DATA(0, -2, -2) + + 29 + - 2/175 x z DATA(0, -1, 2) - ---- DATA(-2, -1, 0) + 2100 + + + 2/175 x z DATA(0, 1, -2) + 2/175 x z DATA(0, -1, -2) + + - 1/300 DATA(2, -2, 0) + 2/75 DATA(1, -2, 0) + 2/175 x z DATA(0, 2, -2) + + + 1/175 x z DATA(-2, -2, 1) - 1/350 x z DATA(-1, -2, 1) + + 29 + - 1/350 x z DATA(1, -2, 1) - 1/175 x z DATA(1, 1, 2) - ---- DATA(-2, 1, 0) + 2100 + + + 1/175 x z DATA(2, -2, 1) + 1/175 x z DATA(-2, -1, 1) + + + 1/175 x z DATA(-2, 1, 1) + 1/175 x z DATA(-2, 2, 1) + + + 2/175 x z DATA(-2, -2, 2) + 1/175 x z DATA(0, 1, -1) + + - 1/175 x z DATA(0, -1, 1) - 2/175 x z DATA(0, -2, 2) + + + 1/175 x z DATA(0, -1, -1) - 1/175 x z DATA(-2, -2, -1) + + - 2/175 x z DATA(2, 2, -2) + 1/175 x z DATA(1, 2, -2) + + + 1/175 x z DATA(-1, 2, -2) + 1/300 DATA(-2, 2, 0) + + - 1/175 x z DATA(-2, 1, -1) - 1/175 x z DATA(-2, -1, -1) + + - 1/175 x z DATA(-2, 2, -1) + 1/175 x z DATA(1, -1, -2) + + 19 + + ---- DATA(-2, -2, 1) + 1/175 x z DATA(-1, -1, -2) + 2100 + + - 1/175 x z DATA(2, -2, -1) + 1/350 x z DATA(1, -2, -1) + + + 1/350 x z DATA(-1, -2, -1) + 1/175 x z DATA(2, 2, 1) + + - 2/175 x z DATA(-2, 2, -2) - 2/175 x z DATA(2, 1, -2) + + - 1/42 DATA(-1, -2, 1) + 1/175 x z DATA(1, 1, -2) + + + 1/175 x z DATA(-1, 1, -2) - 2/175 x z DATA(-2, 1, -2) + + - 2/175 x z DATA(2, -1, -2) + 1/42 DATA(1, -2, 1) + + - 1/175 x z DATA(-1, 1, 2) - 2/175 x z DATA(-2, -2, -2) + + - 1/175 x z DATA(1, -1, 2) + 2/175 x z DATA(2, -1, 2) + + - 1/175 x z DATA(-1, -1, 2) + 1/175 x y DATA(-1, -2, 1) + + 19 + + 1/175 x y DATA(1, -2, 1) - ---- DATA(2, -2, 1) - 1/350 x y DATA(1, 1, 2) + 2100 + + - 2/175 x y DATA(2, -2, 1) + 1/175 x z DATA(1, -2, -2) + + + 2/175 x z DATA(2, 1, 2) - 1/175 x z DATA(-1, 2, 2) + + 2 + + 1/175 x z DATA(-1, -2, -2) + 2/245 x y DATA(-2, 2, -2) + + 2 2 + + 2/245 x y DATA(2, 2, 1) + 1/490 x y DATA(-1, -1, 2) + + 2 2 + - 1/245 x y DATA(2, -1, 2) + 1/490 x y DATA(1, -1, 2) + + 2 2 + + 2/245 x y DATA(-2, -2, -2) + 1/490 x y DATA(-1, 1, 2) + + 2 2 + - 1/245 x y DATA(-1, -2, -2) - 1/245 x y DATA(-1, 2, 2) + + 2 2 + - 1/245 x y DATA(2, 1, 2) - 1/245 x y DATA(1, -2, -2) + + 2 2 + + 1/490 x y DATA(-1, 1, -1) + 2/245 x y DATA(2, -2, -2) + + 2 2 + + 2/245 x y DATA(2, 2, 2) - 1/245 x y DATA(-2, -1, -2) + + 2 2 + - 1/245 x y DATA(1, 2, 2) + 2/245 x y DATA(2, 2, -1) + + 2 2 + + 1/490 x y DATA(1, -1, -1) - 1/245 x y DATA(2, -1, 1) + + 2 2 + - 1/245 x y DATA(1, 2, 1) - 1/245 x y DATA(-2, -1, 0) + + 2 2 + + 2/245 x y DATA(-2, -2, 0) - 1/245 x y DATA(-1, -2, 0) + + 2 2 + - 1/245 x y DATA(2, -1, 0) - 1/245 x y DATA(-1, 2, 0) + + 2 2 + - 1/245 x y DATA(2, 1, 0) + 2/245 x y DATA(2, 2, 0) + + 2 2 + - 1/245 x y DATA(1, 2, 0) - 2/245 x y DATA(0, -2, 1) + + 2 2 + - 2/245 x y DATA(0, 2, -2) + 1/245 x y DATA(0, -1, -2) + + 2 2 + + 1/245 x y DATA(0, 1, -2) + 1/245 x y DATA(0, -1, 2) + + 2 + - 2/245 x y DATA(0, -2, -2) + 1/350 x y z DATA(2, -1, -1) + + 2 2 + + 1/245 x y DATA(-1, 0, 0) + 1/490 x y DATA(1, -1, 0) + + 2 2 + + 1/490 x y DATA(-1, -1, 0) - 1/100 x y DATA(-2, 2, 0) + + 2 2 + - 1/200 x y DATA(-2, 1, 0) + 1/50 x y DATA(1, -2, 0) + + 2 2 + - 1/100 x y DATA(2, -2, 0) + 1/200 x y DATA(-2, -1, 0) + + 2 2 + + 1/100 x y DATA(-2, -2, 0) - 1/50 x y DATA(-1, -2, 0) + + 2 2 + - 1/200 x y DATA(2, -1, 0) + 1/50 x y DATA(-1, 2, 0) + + 2 + + 1/200 x y DATA(2, 1, 0) + 1/500 y z DATA(-1, -1, 2) + + 2 2 + - 1/245 x y DATA(-1, -2, 1) + 2/245 x y DATA(-2, -2, 1) + + 2 2 + + 2/245 x y DATA(-2, 2, -1) - 1/245 x y DATA(-2, -1, -1) + + 2 2 + - 1/245 x y DATA(-2, 1, -1) - 1/245 x y DATA(-1, 2, -2) + + 2 2 + - 1/245 x y DATA(1, 2, -2) + 2/245 x y DATA(2, 2, -2) + + 2 2 + + 2/245 x y DATA(-2, -2, -1) - 1/245 x y DATA(-1, -2, -1) + + 2 2 + - 1/245 x y DATA(1, -2, -1) + 2/245 x y DATA(2, -2, -1) + + 2 2 + + 1/490 x y DATA(-1, -1, -2) + 1/490 x y DATA(1, -1, -2) + + 2 2 + - 1/245 x y DATA(2, -1, -2) - 1/245 x y DATA(-2, 1, -2) + + 2 + + 1/250 y z DATA(2, 2, 1) + 1/490 x y DATA(-1, 1, -2) + + 2 2 + + 1/490 x y DATA(1, 1, -2) - 1/245 x y DATA(2, 1, -2) + + 2 + - 1/175 x y DATA(-2, -1, -1) + 1/100 x y DATA(-1, 1, -1) + + 2 2 + - 1/100 x y DATA(2, -2, -2) + 1/100 x y DATA(2, 2, 2) + + 2 2 + + 1/200 x y DATA(-2, -1, -2) - 1/50 x y DATA(1, 2, 2) + + 2 2 + + 1/100 x y DATA(2, 2, -1) - 1/245 x y DATA(-1, 2, 1) + + 2 2 + - 1/245 x y DATA(2, 1, 1) - 1/245 x y DATA(2, -1, -1) + + 2 2 + - 1/245 x y DATA(-1, 2, -1) - 1/245 x y DATA(2, 1, -1) + + 2 2 + - 1/245 x y DATA(1, 2, -1) + 1/490 x y DATA(-1, -1, -1) + + 2 2 + + 2/245 x y DATA(-2, 2, 2) + 1/490 x y DATA(1, 1, 1) + + 2 2 + - 1/245 x y DATA(-2, 1, 2) + 2/245 x y DATA(2, -2, 2) + + 2 2 + - 1/245 x y DATA(-2, -1, 2) - 1/245 x y DATA(1, -2, 2) + + 2 2 + + 1/490 x y DATA(1, 1, 0) + 1/245 x y DATA(1, 0, 0) + + 2 + + 1/245 x y DATA(1, 0, -1) + 1/125 y z DATA(-2, 2, -2) + + 2 2 + + 1/245 x y DATA(-1, 0, -1) - 1/245 x y DATA(-1, -2, 2) + + 2 + + 1/500 y z DATA(1, -1, -2) + 1/490 x y DATA(-1, -1, 1) + + 2 2 + + 1/490 x y DATA(1, -1, 1) + 1/245 x y DATA(-1, 0, 1) + + 2 2 + + 1/490 x y DATA(-1, 1, 1) + 1/490 x y DATA(-1, 1, 0) + + 2 + - 1/350 x y z DATA(2, 1, -1) - 1/200 x y DATA(-2, 1, -1) + + 2 2 + + 1/50 x y DATA(-1, 2, -2) - 1/50 x y DATA(1, 2, -2) + + 2 2 + + 1/100 x y DATA(2, 2, -2) + 1/100 x y DATA(-2, -2, -1) + + 2 2 + - 1/50 x y DATA(-1, -2, -1) + 1/50 x y DATA(1, -2, -1) + + 2 2 + - 1/100 x y DATA(2, -2, -1) - 1/100 x y DATA(-1, -1, -2) + + 2 2 + + 1/100 x y DATA(1, -1, -2) - 1/200 x y DATA(2, -1, -2) + + 2 2 + - 1/200 x y DATA(-2, 1, -2) + 1/100 x y DATA(-1, 1, -2) + + 2 2 + - 1/100 x y DATA(1, 1, -2) + 1/200 x y DATA(2, 1, -2) + + 2 2 + - 1/100 x y DATA(-2, 2, -2) + 1/100 x y DATA(2, 2, 1) + + 2 2 + - 1/100 x y DATA(-1, -1, 2) - 1/200 x y DATA(2, -1, 2) + + 2 2 + + 1/100 x y DATA(1, -1, 2) + 1/100 x y DATA(-2, -2, -2) + + 2 2 + + 1/100 x y DATA(-1, 1, 2) - 1/50 x y DATA(-1, -2, -2) + + 2 2 + + 1/50 x y DATA(-1, 2, 2) + 1/200 x y DATA(2, 1, 2) + + 2 2 + + 1/50 x y DATA(1, -2, -2) - 1/700 z DATA(1, 2, 1) + + 2 2 + + 1/50 x z DATA(1, 0, -2) - 1/100 x z DATA(2, 0, -2) + + 2 2 + + 1/50 x z DATA(-1, 0, 2) + 1/100 x z DATA(2, 0, 2) + + 2 2 + - 1/50 x z DATA(1, 0, 2) + 1/200 x z DATA(2, 0, 1) + + 2 2 + - 1/100 x z DATA(1, 0, 1) - 1/100 x z DATA(-2, 0, 2) + + 2 2 + - 1/100 x z DATA(-2, -2, 2) - 1/200 x z DATA(-2, 2, 1) + + 2 2 + - 1/200 x z DATA(-2, 1, 1) - 1/200 x z DATA(-2, -1, 1) + + 2 2 + + 1/200 x z DATA(2, -2, 1) - 1/50 x z DATA(1, 1, 2) + + 2 2 + - 1/100 x z DATA(1, -2, 1) + 1/100 x z DATA(-1, -2, 1) + + 2 2 + - 1/200 x z DATA(-2, -2, 1) + 1/200 x z DATA(-2, 2, -1) + + 2 2 + + 1/200 x z DATA(-2, -1, -1) + 1/200 x z DATA(-2, 1, -1) + + 2 2 + - 1/50 x z DATA(-1, 2, -2) + 1/50 x z DATA(1, 2, -2) + + 2 2 + - 1/100 x z DATA(2, 2, -2) + 1/200 x z DATA(-2, -2, -1) + + 2 2 + - 1/100 x z DATA(-1, -2, -1) + 1/100 x z DATA(1, -2, -1) + + 2 2 + + 1/100 x y DATA(2, 2, 0) - 1/50 x y DATA(1, 2, 0) + + 2 2 + + 1/100 x y DATA(-2, -2, 2) - 1/100 x y DATA(-2, 2, 1) + + 2 2 + - 1/200 x y DATA(-2, 1, 1) + 1/200 x y DATA(-2, -1, 1) + + 2 2 + - 1/100 x y DATA(2, -2, 1) - 1/100 x y DATA(1, 1, 2) + + 2 2 + + 1/50 x y DATA(1, -2, 1) - 1/50 x y DATA(-1, -2, 1) + + 2 2 + + 1/100 x y DATA(-2, -2, 1) - 1/100 x y DATA(-2, 2, -1) + + 2 2 + + 1/200 x y DATA(-2, -1, -1) - 1/350 z DATA(2, -1, 1) + + 2 2 + - 1/100 x y DATA(1, 1, 1) - 1/200 x y DATA(-2, 1, 2) + + 2 2 + - 1/100 x y DATA(2, -2, 2) + 1/200 x y DATA(-2, -1, 2) + + 2 2 + + 1/50 x y DATA(1, -2, 2) - 1/100 x y DATA(1, 1, 0) + + 2 2 + - 1/50 x y DATA(-1, -2, 2) - 1/100 x y DATA(-1, -1, 1) + + 2 2 + + 1/100 x y DATA(1, -1, 1) + 1/100 x y DATA(-1, 1, 1) + + 2 2 + + 1/100 x y DATA(-1, 1, 0) + 1/100 x y DATA(1, -1, 0) + + 2 2 + - 1/100 x y DATA(-1, -1, 0) - 1/100 x y DATA(1, 1, -1) + + 2 2 + - 1/200 x z DATA(-2, 0, 1) + 1/200 x z DATA(-2, 0, -1) + + 2 2 + + 1/100 x z DATA(-2, 0, -2) - 1/50 x z DATA(-1, 0, -2) + + 2 2 + - 1/200 x z DATA(2, 0, -1) - 1/700 z DATA(1, -1, -1) + + 2 2 + - 1/100 x z DATA(-2, 2, 2) - 1/100 x z DATA(1, 1, 1) + + 2 + - 1/250 y z DATA(2, 1, -2) - 1/100 x z DATA(-2, 1, 2) + + 2 2 + + 1/100 x z DATA(2, -2, 2) - 1/100 x z DATA(-2, -1, 2) + + 2 2 + - 1/50 x z DATA(1, -2, 2) + 1/100 x z DATA(1, 0, -1) + + 2 2 + - 1/100 x z DATA(-1, 0, -1) + 1/50 x z DATA(-1, -2, 2) + + 2 2 + + 1/100 x y DATA(1, -1, -1) - 1/200 x y DATA(2, -1, 1) + + 2 2 + - 1/50 x y DATA(1, 2, 1) + 1/50 x y DATA(-1, 2, 1) + + 2 2 + + 1/200 x y DATA(2, 1, 1) - 1/200 x y DATA(2, -1, -1) + + 2 2 + + 1/50 x y DATA(-1, 2, -1) + 1/200 x y DATA(2, 1, -1) + + 2 2 + - 1/50 x y DATA(1, 2, -1) - 1/100 x y DATA(-1, -1, -1) + + 2 + - 1/100 x y DATA(-2, 2, 2) + 2/175 x y DATA(0, -2, -1) + + - 1/175 x y DATA(0, 1, 1) - 1/175 x y DATA(0, 1, 2) + + + 2/175 x y DATA(-2, 2, 0) + 1/175 x y DATA(-2, 1, 0) + + + 1/175 x y DATA(1, -2, 0) - 2/175 x y DATA(2, -2, 0) + + - 1/175 x y DATA(-2, -1, 0) - 2/175 x y DATA(-2, -2, 0) + + + 1/175 x y DATA(-1, -2, 0) - 1/175 x y DATA(2, -1, 0) + + - 1/175 x y DATA(-1, 2, 0) + 1/175 x y DATA(2, 1, 0) + + + 2/175 x y DATA(2, 2, 0) - 1/175 x y DATA(1, 2, 0) + + + 2/175 x y DATA(0, -2, 1) - 2/175 x y DATA(0, 2, -2) + + + 1/175 x y DATA(0, -1, -2) - 1/175 x y DATA(0, 1, -2) + + + 1/175 x y DATA(0, -1, 2) + 2/175 x y DATA(0, -2, -2) + + - 2/175 x y DATA(0, 2, 2) - 2/175 x y DATA(0, 2, 1) + + - 2/175 x y DATA(0, 2, -1) + 1/175 x y DATA(0, -1, -1) + + + 2/175 x y DATA(0, -2, 2) + 1/175 x y DATA(0, -1, 1) + + - 1/175 x y DATA(0, 1, -1) - 2/175 x y DATA(-2, -2, 2) + + + 2/175 x y DATA(-2, 2, 1) + 1/175 x y DATA(-2, 1, 1) + + 2 + - 1/175 x y DATA(-2, -1, 1) - 1/200 x z DATA(2, -2, -1) + + 2 2 + - 1/50 x z DATA(-1, -1, -2) + 1/50 x z DATA(1, -1, -2) + + 2 2 + - 1/100 x z DATA(2, -1, -2) + 1/100 x z DATA(-2, 1, -2) + + 2 2 + - 1/50 x z DATA(-1, 1, -2) + 1/50 x z DATA(1, 1, -2) + + 2 2 + - 1/100 x z DATA(2, 1, -2) + 1/100 x z DATA(-2, 2, -2) + + 2 2 + + 1/200 x z DATA(2, 2, 1) + 1/50 x z DATA(-1, -1, 2) + + 2 2 + + 1/100 x z DATA(2, -1, 2) - 1/50 x z DATA(1, -1, 2) + + 2 2 + + 1/100 x z DATA(-2, -2, -2) + 1/50 x z DATA(-1, 1, 2) + + 2 2 + - 1/50 x z DATA(-1, -2, -2) + 1/50 x z DATA(-1, 2, 2) + + 2 2 + + 1/100 x z DATA(2, 1, 2) + 1/50 x z DATA(1, -2, -2) + + 2 2 + - 1/100 x z DATA(-1, 1, -1) - 1/100 x z DATA(2, -2, -2) + + 2 2 + + 1/100 x z DATA(2, 2, 2) + 1/100 x z DATA(-2, -1, -2) + + 2 2 + - 1/50 x z DATA(1, 2, 2) - 1/200 x z DATA(2, 2, -1) + + 2 2 + + 1/100 x z DATA(1, -1, -1) + 1/200 x z DATA(2, -1, 1) + + 2 2 + - 1/100 x z DATA(1, 2, 1) + 1/100 x z DATA(-1, 2, 1) + + 2 2 + + 1/200 x z DATA(2, 1, 1) - 1/200 x z DATA(2, -1, -1) + + 2 2 + - 1/100 x z DATA(-1, 2, -1) - 1/200 x z DATA(2, 1, -1) + + 2 2 + + 1/100 x z DATA(1, 2, -1) - 1/100 x z DATA(-1, -1, -1) + + 2 2 + - 1/350 z DATA(2, 2, -1) - 1/175 z DATA(-2, -1, -2) + + 2 2 + + 1/175 z DATA(2, 2, 2) + 1/175 z DATA(2, -2, -2) + + 2 2 + + 1/700 z DATA(-1, 1, -1) + 1/350 z DATA(1, -2, -2) + + 2 2 + + 1/175 z DATA(2, 1, 2) - 1/350 z DATA(-1, 2, 2) + + 2 2 + - 1/350 z DATA(-1, -2, -2) - 1/350 z DATA(-1, 1, 2) + + 2 2 + - 1/175 z DATA(-2, -2, -2) + 1/350 z DATA(1, -1, 2) + + 2 2 + + 1/175 z DATA(2, -1, 2) - 1/350 z DATA(-1, -1, 2) + + 2 2 + - 1/350 z DATA(2, 2, 1) - 1/175 z DATA(-2, 2, -2) + + 2 2 + + 1/175 z DATA(2, 1, -2) + 1/350 z DATA(1, 1, -2) + + 2 2 + - 1/350 z DATA(-1, 1, -2) - 1/175 z DATA(-2, 1, -2) + + 2 2 + + 1/700 z DATA(-1, 2, 1) - 1/700 z DATA(1, 1, -1) + + 2 2 + + 1/350 z DATA(-1, -1, 0) - 1/350 z DATA(1, -1, 0) + + 2 2 + + 1/350 z DATA(-1, 0, 0) + 1/350 z DATA(-1, 1, 0) + + 2 2 + + 1/700 z DATA(-1, 1, 1) + 1/700 z DATA(-1, 0, 1) + + 2 2 + - 1/700 z DATA(1, -1, 1) + 1/700 z DATA(-1, -1, 1) + + 2 2 + - 1/350 z DATA(-1, -2, 2) + 1/700 z DATA(-1, 0, -1) + + 2 2 + - 1/700 z DATA(1, 0, -1) - 1/350 z DATA(1, 0, 0) + + 2 2 + - 1/350 z DATA(1, 1, 0) + 1/350 z DATA(1, -2, 2) + + 2 2 + - 1/175 z DATA(-2, -1, 2) + 1/175 z DATA(2, -2, 2) + + 2 2 + - 1/175 z DATA(-2, 1, 2) - 1/700 z DATA(1, 1, 1) + + 2 2 + - 1/175 z DATA(-2, 2, 2) + 1/700 z DATA(-1, -1, -1) + + 2 2 + - 1/700 z DATA(1, 2, -1) + 1/350 y DATA(-2, 1, 0) + + 2 2 + - 1/175 y DATA(-2, 2, 0) + 1/175 y DATA(-2, 0, 2) + + 2 2 2 + - 1/350 y DATA(1, 0, 1) - 1/175 y DATA(2, 0, 1) - 1/350 y DATA(1, 0, 2) + + 2 2 + - 1/175 y DATA(2, 0, 2) + 1/350 y DATA(-1, 0, 2) + + 2 2 + - 1/175 y DATA(2, 0, -2) - 1/350 y DATA(1, 0, -2) + + 2 2 + - 1/175 y DATA(2, 0, -1) + 1/350 y DATA(-1, 0, -2) + + 2 2 + + 1/175 y DATA(-2, 0, -2) + 1/175 y DATA(-2, 0, -1) + + 2 2 + + 1/175 y DATA(-2, 0, 1) - 1/175 y DATA(2, 0, 0) + + 2 2 + + 1/175 y DATA(-2, 0, 0) - 1/50 x DATA(1, 1, -1) + + 2 187 + + 1/50 x DATA(-1, -1, 0) + ---- z DATA(-2, 0, -1) + 7000 + + 2 2 + - 1/700 y DATA(1, 1, -1) + 1/700 y DATA(-1, -1, 0) + + 2 2 + - 1/700 y DATA(1, -1, 0) + 1/350 y DATA(-1, 0, 0) + + 2 2 + + 1/700 y DATA(-1, 1, 0) + 1/700 y DATA(-1, 1, 1) + + 2 2 + + 1/350 y DATA(-1, 0, 1) - 1/700 y DATA(1, -1, 1) + + 2 2 + + 1/700 y DATA(-1, -1, 1) - 1/350 y DATA(-1, -2, 2) + + 2 2 + + 1/350 y DATA(-1, 0, -1) - 1/350 y DATA(1, 0, -1) + + 2 2 + - 1/350 y DATA(1, 0, 0) - 1/700 y DATA(1, 1, 0) + + 2 2 + + 1/350 y DATA(1, -2, 2) + 1/350 y DATA(-2, -1, 2) + + 2 2 + + 1/175 y DATA(2, -2, 2) + 1/350 y DATA(-2, 1, 2) + + 2 2 + - 1/700 y DATA(1, 1, 1) - 1/175 y DATA(-2, 2, 2) + + 2 2 + + 1/700 y DATA(-1, -1, -1) + 1/350 y DATA(1, 2, -1) + + 2 2 + - 1/350 y DATA(2, 1, -1) - 1/350 y DATA(-1, 2, -1) + + 2 2 + - 1/350 y DATA(2, -1, -1) - 1/350 y DATA(2, 1, 1) + + 2 2 + - 1/350 y DATA(-1, 2, 1) + 1/350 y DATA(1, 2, 1) + + 2 2 + - 1/350 y DATA(2, -1, 1) - 1/700 y DATA(1, -1, -1) + + 2 2 + + 1/175 y DATA(2, 2, -1) + 1/350 y DATA(1, 2, 2) + + 2 2 + + 1/350 y DATA(-2, -1, -2) + 1/175 y DATA(2, 2, 2) + + 2 2 + + 1/175 y DATA(2, -2, -2) + 1/700 y DATA(-1, 1, -1) + + 2 2 + + 1/350 y DATA(1, -2, -2) - 1/350 y DATA(2, 1, 2) + + 2 2 + - 1/350 y DATA(-1, 2, 2) - 1/350 y DATA(-1, -2, -2) + + 2 2 + + 1/700 y DATA(-1, 1, 2) - 1/175 y DATA(-2, -2, -2) + + 2 2 + - 1/700 y DATA(1, -1, 2) - 1/350 y DATA(2, -1, 2) + + 2 2 + + 1/700 y DATA(-1, -1, 2) + 1/175 y DATA(2, 2, 1) + + 2 2 + - 1/175 y DATA(-2, 2, -2) - 1/350 y DATA(2, 1, -2) + + 2 2 + - 1/700 y DATA(1, 1, -2) + 1/700 y DATA(-1, 1, -2) + + + 1/500 y z DATA(1, 1, 2) - 1/500 y z DATA(1, -2, 1) + + + 2/175 x y DATA(-2, 2, -1) - 2/175 x y DATA(-2, -2, 1) + + 17 + + 1/500 y z DATA(-1, -2, 1) - ---- DATA(-2, -1, 1) + 2100 + + 2 + - 1/175 x y DATA(-1, 2, -2) - 1/100 x DATA(-2, -2, -2) + + 2 2 + - 1/50 x DATA(1, -1, 2) + 1/100 x DATA(2, -1, 2) + + 2 2 + + 1/50 x DATA(-1, -1, 2) + 1/100 x DATA(2, 2, 1) + + 2 2 + - 1/100 x DATA(-2, 2, -2) + 1/100 x DATA(2, 1, -2) + + 2 2 + - 1/50 x DATA(1, 1, -2) + 1/50 x DATA(-1, 1, -2) + + 2 2 + - 1/100 x DATA(-2, 1, -2) + 1/100 x DATA(2, -1, -2) + + 2 2 + - 1/50 x DATA(1, -1, -2) + 1/50 x DATA(-1, -1, -2) + + 2 2 + + 1/100 x DATA(2, -2, -1) - 1/50 x DATA(1, -2, -1) + + 2 2 2 + - 1/50 x DATA(1, -2, 2) - 1/50 x DATA(1, -1, 0) + 1/50 x DATA(-1, 0, 0) + + 2 2 2 + + 1/50 x DATA(-1, 1, 0) + 1/50 x DATA(-1, 1, 1) + 1/50 x DATA(-1, 0, 1) + + 2 2 + - 1/50 x DATA(1, -1, 1) + 1/50 x DATA(-1, -1, 1) + + 2 2 + + 1/50 x DATA(-1, -2, 2) + 1/50 x DATA(-1, 0, -1) + + 2 2 2 + - 1/50 x DATA(1, 0, -1) - 1/50 x DATA(1, 0, 0) - 1/100 x DATA(-2, 0, 0) + + 3 3 + - 2/75 x DATA(-1, -1, 0) - 2/75 x DATA(1, -1, 0) + + 3 3 3 + - 2/75 x DATA(-1, 0, 0) - 2/75 x DATA(-1, 1, 0) - 2/75 x DATA(-1, 1, 1) + + 3 3 + - 2/75 x DATA(-1, 0, 1) - 2/75 x DATA(1, -1, 1) + + 3 3 + - 2/75 x DATA(-1, -1, 1) - 2/75 x DATA(-1, -2, 2) + + 3 3 3 + - 2/75 x DATA(-1, 0, -1) - 2/75 x DATA(1, 0, -1) - 2/75 x DATA(1, 0, 0) + + 3 3 + - 2/75 x DATA(1, 1, 0) - 2/75 x DATA(1, -2, 2) + + 3 3 + + 1/150 x DATA(-2, -1, 2) + 1/150 x DATA(2, -2, 2) + + 3 3 + + 1/150 x DATA(-2, 1, 2) - 2/75 x DATA(1, 1, 1) + + 3 3 + + 1/150 x DATA(-2, 2, 2) - 2/75 x DATA(-1, -1, -1) + + 3 3 + - 2/75 x DATA(1, 2, -1) + 1/150 x DATA(2, 1, -1) + + 3 3 + - 2/75 x DATA(-1, 2, -1) + 1/150 x DATA(2, -1, -1) + + 3 3 3 + + 1/150 x DATA(2, 1, 1) - 2/75 x DATA(-1, 2, 1) - 2/75 x DATA(1, 2, 1) + + 3 3 + + 1/150 x DATA(2, -1, 1) - 2/75 x DATA(1, -1, -1) + + 3 3 + + 1/150 x DATA(2, 2, -1) - 2/75 x DATA(1, 2, 2) + + 3 3 + + 1/150 x DATA(-2, -1, -2) + 1/150 x DATA(2, 2, 2) + + 3 3 + + 1/150 x DATA(2, -2, -2) - 2/75 x DATA(-1, 1, -1) + + 3 3 + - 2/75 x DATA(1, -2, -2) + 1/150 x DATA(2, 1, 2) + + 3 3 + - 2/75 x DATA(-1, 2, 2) - 2/75 x DATA(-1, -2, -2) + + 3 3 + - 2/75 x DATA(-1, 1, 2) + 1/150 x DATA(-2, -2, -2) + + 3 3 + - 2/75 x DATA(1, -1, 2) + 1/150 x DATA(2, -1, 2) + + 3 3 + - 2/75 x DATA(-1, -1, 2) + 1/150 x DATA(2, 2, 1) + + 3 3 + + 1/150 x DATA(-2, 2, -2) + 1/150 x DATA(2, 1, -2) + + 3 3 + - 2/75 x DATA(1, 1, -2) - 2/75 x DATA(-1, 1, -2) + + 3 3 + + 1/150 x DATA(-2, 1, -2) + 1/150 x DATA(2, -1, -2) + + 3 3 + - 2/75 x DATA(1, -1, -2) - 2/75 x DATA(-1, -1, -2) + + 3 3 + + 1/150 x DATA(2, -2, -1) - 2/75 x DATA(1, -2, -1) + + 3 3 + - 2/75 x DATA(-1, -2, -1) + 1/150 x DATA(-2, -2, -1) + + 2 2 + - 1/50 x DATA(1, 1, 0) - 1/100 x DATA(-2, -1, 2) + + 2 2 + + 1/100 x DATA(2, -2, 2) - 1/100 x DATA(-2, 1, 2) + + 2 2 + - 1/50 x DATA(1, 1, 1) - 1/100 x DATA(-2, 2, 2) + + 2 2 + + 1/50 x DATA(-1, -1, -1) - 1/50 x DATA(1, 2, -1) + + 2 2 + + 1/100 x DATA(2, 1, -1) + 1/50 x DATA(-1, 2, -1) + + 2 2 + + 1/100 x DATA(2, -1, -1) + 1/100 x DATA(2, 1, 1) + + 2 2 2 + + 1/50 x DATA(-1, 2, 1) - 1/50 x DATA(1, 2, 1) + 1/100 x DATA(2, -1, 1) + + 2 2 + - 1/50 x DATA(1, -1, -1) + 1/100 x DATA(2, 2, -1) + + 2 2 + - 1/50 x DATA(1, 2, 2) - 1/100 x DATA(-2, -1, -2) + + 2 2 + + 1/100 x DATA(2, 2, 2) + 1/100 x DATA(2, -2, -2) + + 2 2 + + 1/50 x DATA(-1, 1, -1) - 1/50 x DATA(1, -2, -2) + + 2 2 + + 1/100 x DATA(2, 1, 2) + 1/50 x DATA(-1, 2, 2) + + 2 2 + + 1/50 x DATA(-1, -2, -2) + 1/50 x DATA(-1, 1, 2) + + 3 3 + - 2/75 x DATA(1, 1, -1) + 1/150 x DATA(-2, -1, -1) + + 3 3 + + 1/150 x DATA(-2, 2, -1) + 1/150 x DATA(-2, -2, 1) + + 3 3 3 + - 2/75 x DATA(-1, -2, 1) - 2/75 x DATA(1, -2, 1) - 2/75 x DATA(1, 1, 2) + + 3 3 + + 1/150 x DATA(2, -2, 1) + 1/150 x DATA(-2, -1, 1) + + 3 3 + + 1/150 x DATA(-2, 1, 1) + 1/150 x DATA(-2, 2, 1) + + 2 2 + + 1/50 x DATA(-1, -2, -1) - 1/100 x DATA(-2, -2, -1) + + 2 2 + + 1/100 x DATA(2, 2, -2) - 1/50 x DATA(1, 2, -2) + + 2 2 + + 1/50 x DATA(-1, 2, -2) - 1/100 x DATA(-2, 1, -1) + + 2 2 + - 1/100 x DATA(-2, -1, -1) - 1/100 x DATA(-2, 2, -1) + + 2 2 + - 1/100 x DATA(-2, -2, 1) + 1/50 x DATA(-1, -2, 1) + + 2 2 2 + - 1/50 x DATA(1, -2, 1) - 1/50 x DATA(1, 1, 2) + 1/100 x DATA(2, -2, 1) + + 2 2 + - 1/100 x DATA(-2, -1, 1) - 1/100 x DATA(-2, 1, 1) + + 2 2 + - 1/100 x DATA(-2, 2, 1) - 1/100 x DATA(-2, -2, 2) + + 2 2 2 + - 1/50 x DATA(1, 2, 0) + 1/100 x DATA(2, 2, 0) + 1/100 x DATA(2, 1, 0) + + 2 2 + + 1/50 x DATA(-1, 2, 0) + 1/100 x DATA(2, -1, 0) + + 2 2 + + 1/50 x DATA(-1, -2, 0) - 1/100 x DATA(-2, -2, 0) + + 2 2 + - 1/100 x DATA(-2, -1, 0) + 1/100 x DATA(2, -2, 0) + + 2 2 + - 1/50 x DATA(1, -2, 0) - 1/100 x DATA(-2, 1, 0) + + 2 2 + - 1/100 x DATA(-2, 2, 0) - 1/100 x DATA(-2, 0, 2) + + 2 2 2 + - 1/50 x DATA(1, 0, 1) + 1/100 x DATA(2, 0, 1) - 1/50 x DATA(1, 0, 2) + + 2 2 + + 1/100 x DATA(2, 0, 2) + 1/50 x DATA(-1, 0, 2) + + 2 2 + + 1/100 x DATA(2, 0, -2) - 1/50 x DATA(1, 0, -2) + + 2 2 + + 1/100 x DATA(2, 0, -1) + 1/50 x DATA(-1, 0, -2) + + 2 2 + - 1/100 x DATA(-2, 0, -2) - 1/100 x DATA(-2, 0, -1) + + 2 2 + - 1/100 x DATA(-2, 0, 1) + 1/100 x DATA(2, 0, 0) + + 3 + + 1/250 y z DATA(-2, -1, 2) + 1/25 x DATA(0, -2, 2) + + 3 3 3 + + 1/25 x DATA(0, -1, -1) + 1/25 x DATA(0, 2, -1) + 1/25 x DATA(0, 2, 1) + + 3 3 3 + + 1/25 x DATA(0, 2, 2) + 1/25 x DATA(0, -2, -2) + 1/25 x DATA(0, -1, 2) + + 3 3 + + 1/25 x DATA(0, 1, -2) + 1/25 x DATA(0, -1, -2) + + 3 3 3 + + 1/25 x DATA(0, 2, -2) + 1/25 x DATA(0, -2, 1) - 2/75 x DATA(1, 2, 0) + + 3 3 3 + + 1/150 x DATA(2, 2, 0) + 1/150 x DATA(2, 1, 0) - 2/75 x DATA(-1, 2, 0) + + 3 3 + + 1/150 x DATA(2, -1, 0) - 2/75 x DATA(-1, -2, 0) + + 3 3 + + 1/150 x DATA(-2, -2, 0) + 1/150 x DATA(-2, -1, 0) + + 3 3 + + 1/150 x DATA(2, -2, 0) - 2/75 x DATA(1, -2, 0) + + 3 3 + + 1/150 x DATA(-2, 1, 0) + 1/150 x DATA(-2, 2, 0) + + 3 3 3 + + 1/150 x DATA(-2, 0, 2) + 1/25 x DATA(0, 1, 2) + 1/25 x DATA(0, 1, 1) + + 3 3 3 + + 1/25 x DATA(0, -2, -1) - 2/75 x DATA(1, 0, 1) + 1/150 x DATA(2, 0, 1) + + 3 3 3 + - 2/75 x DATA(1, 0, 2) + 1/150 x DATA(2, 0, 2) - 2/75 x DATA(-1, 0, 2) + + 3 3 + + 1/150 x DATA(2, 0, -2) - 2/75 x DATA(1, 0, -2) + + 3 3 + + 1/150 x DATA(2, 0, -1) - 2/75 x DATA(-1, 0, -2) + + 3 3 + + 1/150 x DATA(-2, 0, -2) + 1/150 x DATA(-2, 0, -1) + + 3 3 + + 1/150 x DATA(-2, 0, 1) + 1/150 x DATA(2, 0, 0) + + 3 3 + + 1/25 x DATA(0, 1, -1) + 1/150 x DATA(2, 2, -2) + + 3 3 + - 2/75 x DATA(1, 2, -2) - 2/75 x DATA(-1, 2, -2) + + 3 151 + + 1/150 x DATA(-2, 1, -1) + ---- x DATA(-1, 0, 1) + 3675 + + 166 256 151 + + ---- x DATA(-1, -1, 1) + ---- x DATA(-1, -2, 2) + ---- x DATA(-1, 0, -1) + 3675 3675 3675 + + 151 136 151 + + ---- x DATA(1, 0, -1) + ---- x DATA(1, 0, 0) + ---- x DATA(1, 1, 0) + 3675 3675 3675 + + 256 169 529 + + ---- x DATA(1, -2, 2) - ----- x DATA(-2, -1, 2) - ----- x DATA(2, -2, 2) + 3675 14700 14700 + + 169 166 529 + - ----- x DATA(-2, 1, 2) + ---- x DATA(1, 1, 1) - ----- x DATA(-2, 2, 2) + 14700 3675 14700 + + 166 211 191 + + ---- x DATA(-1, -1, -1) + ---- x DATA(1, 2, -1) + ----- x DATA(2, 1, -1) + 3675 3675 14700 + + 211 191 191 + + ---- x DATA(-1, 2, -1) + ----- x DATA(2, -1, -1) + ----- x DATA(2, 1, 1) + 3675 14700 14700 + + 211 211 191 + + ---- x DATA(-1, 2, 1) + ---- x DATA(1, 2, 1) + ----- x DATA(2, -1, 1) + 3675 3675 14700 + + 166 169 256 + + ---- x DATA(1, -1, -1) - ----- x DATA(2, 2, -1) + ---- x DATA(1, 2, 2) + 3675 14700 3675 + + 169 3 + - ----- x DATA(-2, -1, -2) + 1/25 x DATA(0, -1, 0) + 14700 + + 3 3 + + 1/150 x DATA(-2, -2, 2) + 1/25 x DATA(0, -1, 1) + + 166 169 211 + + ---- x DATA(1, -1, 1) - ----- x DATA(2, -2, -1) + ---- x DATA(1, -2, -1) + 3675 14700 3675 + + 211 169 + + ---- x DATA(-1, -2, -1) - ----- x DATA(-2, -2, -1) + 3675 14700 + + 529 256 256 + - ----- x DATA(2, 2, -2) + ---- x DATA(1, 2, -2) + ---- x DATA(-1, 2, -2) + 14700 3675 3675 + + 191 191 + + ----- x DATA(-2, 1, -1) + ----- x DATA(-2, -1, -1) + 14700 14700 + + 169 169 + - ----- x DATA(-2, 2, -1) - ----- x DATA(-2, -2, 1) + 14700 14700 + + 211 211 211 + + ---- x DATA(-1, -2, 1) + ---- x DATA(1, -2, 1) + ---- x DATA(1, 1, 2) + 3675 3675 3675 + + 169 166 3 + - ----- x DATA(2, -2, 1) + ---- x DATA(1, 1, -1) + 1/150 x DATA(-2, 0, 0) + 14700 3675 + + 3 3 3 + + 1/25 x DATA(0, 0, -1) + 1/25 x DATA(0, 0, 0) + 1/25 x DATA(0, 1, 0) + + 3 3 3 + + 1/25 x DATA(0, 0, 1) + 1/25 x DATA(0, 0, 2) + 1/25 x DATA(0, 0, -2) + + 3 3 151 + + 1/25 x DATA(0, -2, 0) + 1/25 x DATA(0, 2, 0) + ---- x DATA(-1, -1, 0) + 3675 + + 151 136 151 + + ---- x DATA(1, -1, 0) + ---- x DATA(-1, 0, 0) + ---- x DATA(-1, 1, 0) + 3675 3675 3675 + + 166 311 + + ---- x DATA(-1, 1, 1) + 4/75 x DATA(1, -2, 0) + ----- x DATA(-2, 1, 0) + 3675 14700 + + - 1/300 x DATA(-2, 2, 0) - 1/300 x DATA(-2, 0, 2) - 9/98 x DATA(0, 1, 2) + + 57 151 + - --- x DATA(0, 1, 1) - 9/98 x DATA(0, -2, -1) + ---- x DATA(1, 0, 1) + 490 3675 + + 311 529 + + ----- x DATA(2, 0, 1) + 4/75 x DATA(1, 0, 2) - ----- x DATA(2, 2, 2) + 14700 14700 + + 529 166 + - ----- x DATA(2, -2, -2) + ---- x DATA(-1, 1, -1) + 14700 3675 + + 256 169 256 + + ---- x DATA(1, -2, -2) - ----- x DATA(2, 1, 2) + ---- x DATA(-1, 2, 2) + 3675 14700 3675 + + 256 211 + + ---- x DATA(-1, -2, -2) + ---- x DATA(-1, 1, 2) + 3675 3675 + + 529 211 + - ----- x DATA(-2, -2, -2) + ---- x DATA(1, -1, 2) + 14700 3675 + + 169 211 169 + - ----- x DATA(2, -1, 2) + ---- x DATA(-1, -1, 2) - ----- x DATA(2, 2, 1) + 14700 3675 14700 + + 529 169 211 + - ----- x DATA(-2, 2, -2) - ----- x DATA(2, 1, -2) + ---- x DATA(1, 1, -2) + 14700 14700 3675 + + 211 169 + + ---- x DATA(-1, 1, -2) - ----- x DATA(-2, 1, -2) + 3675 14700 + + 169 211 + - ----- x DATA(2, -1, -2) + ---- x DATA(1, -1, -2) + 14700 3675 + + 211 311 + + ---- x DATA(-1, -1, -2) + ----- x DATA(2, 0, -1) + 3675 14700 + + 311 + - 1/300 x DATA(-2, 0, -2) + ----- x DATA(-2, 0, -1) + 14700 + + 311 431 431 + + ----- x DATA(-2, 0, 1) + ----- x DATA(2, 0, 0) + ----- x DATA(-2, 0, 0) + 14700 14700 14700 + + 61 61 13 + - --- x DATA(0, -1, 0) - --- x DATA(0, 0, -1) - -- x DATA(0, 0, 0) + 490 490 98 + + 61 61 + - --- x DATA(0, 1, 0) - --- x DATA(0, 0, 1) - 1/10 x DATA(0, 0, 2) + 490 490 + + - 1/10 x DATA(0, 0, -2) - 1/10 x DATA(0, -2, 0) - 1/10 x DATA(0, 2, 0) + + 191 191 + + 4/75 x DATA(-1, 0, 2) + ----- x DATA(-2, -1, 1) + ----- x DATA(-2, 1, 1) + 14700 14700 + + 169 529 57 + - ----- x DATA(-2, 2, 1) - ----- x DATA(-2, -2, 2) - --- x DATA(0, 1, -1) + 14700 14700 490 + + 57 33 57 + - --- x DATA(0, -1, 1) - --- x DATA(0, -2, 2) - --- x DATA(0, -1, -1) + 490 490 490 + + 33 + - 9/98 x DATA(0, 2, -1) - 9/98 x DATA(0, 2, 1) - --- x DATA(0, 2, 2) + 490 + + 33 + - --- x DATA(0, -2, -2) - 9/98 x DATA(0, -1, 2) - 9/98 x DATA(0, 1, -2) + 490 + + 33 + - 9/98 x DATA(0, -1, -2) - --- x DATA(0, 2, -2) - 9/98 x DATA(0, -2, 1) + 490 + + 311 + + 4/75 x DATA(1, 2, 0) - 1/300 x DATA(2, 2, 0) + ----- x DATA(2, 1, 0) + 14700 + + 311 + + 4/75 x DATA(-1, 2, 0) + ----- x DATA(2, -1, 0) + 4/75 x DATA(-1, -2, 0) + 14700 + + 311 + - 1/300 x DATA(-2, -2, 0) + ----- x DATA(-2, -1, 0) + 14700 + + - 1/300 x DATA(2, -2, 0) + 4/75 x DATA(-1, 0, -2) + + 3 3 + - 1/300 z DATA(2, -1, -2) + 1/600 z DATA(-1, -1, -2) + + 3 3 + + 1/150 z DATA(2, -2, -1) + 1/300 z DATA(1, -2, -1) + + 3 3 + - 1/300 z DATA(-1, -2, -1) - 1/150 z DATA(-2, -2, -1) + + 3 3 + - 1/300 z DATA(2, 2, -2) - 1/600 z DATA(1, 2, -2) + + 3 3 + + 1/600 z DATA(-1, 2, -2) - 1/150 z DATA(-2, 1, -1) + + 3 3 + - 1/150 z DATA(-2, -1, -1) - 1/150 z DATA(-2, 2, -1) + + 3 3 + + 1/150 z DATA(-2, -2, 1) + 1/300 z DATA(-1, -2, 1) + + 3 3 + - 1/300 z DATA(1, -2, 1) + 1/600 z DATA(1, 1, 2) + + 3 3 + - 1/150 z DATA(2, -2, 1) + 1/150 z DATA(-2, -1, 1) + + 3 3 + + 1/150 z DATA(-2, 1, 1) + 1/150 z DATA(-2, 2, 1) + + 3 3 + - 1/300 z DATA(-2, -2, 2) - 1/300 z DATA(-2, 0, 2) + + 3 3 3 + - 1/300 z DATA(1, 0, 1) - 1/150 z DATA(2, 0, 1) + 1/600 z DATA(1, 0, 2) + + 3 3 + + 1/300 z DATA(2, 0, 2) - 1/600 z DATA(-1, 0, 2) + + 3 3 + - 1/300 z DATA(2, 0, -2) - 1/600 z DATA(1, 0, -2) + + 3 3 + + 1/150 z DATA(2, 0, -1) + 1/600 z DATA(-1, 0, -2) + + 3 3 + + 1/300 z DATA(-2, 0, -2) - 1/150 z DATA(-2, 0, -1) + + 3 3 + + 1/150 z DATA(-2, 0, 1) - 1/600 z DATA(-1, -1, 2) + + 3 3 + + 1/300 z DATA(-1, -1, 1) - 1/600 z DATA(-1, -2, 2) + + 3 3 + - 1/300 z DATA(-1, 0, -1) + 1/300 z DATA(1, 0, -1) + + 3 3 + + 1/600 z DATA(1, -2, 2) - 1/300 z DATA(-2, -1, 2) + + 3 3 + + 1/300 z DATA(2, -2, 2) - 1/600 z DATA(1, -1, -2) + + 187 187 17 + - ---- y DATA(1, -2, 0) - ---- y DATA(-2, 1, 0) + ---- y DATA(-2, 2, 0) + 7000 7000 5250 + + 137 137 47 + - ---- z DATA(1, 1, -1) - ---- z DATA(-1, 1, 1) + ---- y DATA(-2, 2, -1) + 5250 5250 5250 + + 137 289 289 + + ---- y DATA(1, 1, -1) + ----- y DATA(-1, -1, 0) - ----- y DATA(1, -1, 0) + 5250 10500 10500 + + 289 137 137 + - ----- y DATA(-1, 1, 0) - ---- y DATA(-1, 1, 1) - ---- y DATA(1, -1, 1) + 10500 5250 5250 + + 137 107 289 + + ---- y DATA(-1, -1, 1) + ---- y DATA(-1, -2, 2) + ----- y DATA(1, 1, 0) + 5250 7000 10500 + + 107 107 137 + - ---- y DATA(1, -2, 2) + ---- y DATA(-2, -1, 2) + ---- y DATA(2, -2, 2) + 7000 7000 5250 + + 107 137 137 + - ---- y DATA(-2, 1, 2) + ---- y DATA(1, 1, 1) + ---- y DATA(-2, 2, 2) + 7000 5250 5250 + + 137 167 167 + + ---- y DATA(-1, -1, -1) + ---- y DATA(1, 2, -1) + ---- y DATA(2, 1, -1) + 5250 7000 7000 + + 167 167 167 + - ---- y DATA(-1, 2, -1) - ---- y DATA(2, -1, -1) + ---- y DATA(2, 1, 1) + 7000 7000 7000 + + 167 167 167 + - ---- y DATA(-1, 2, 1) + ---- y DATA(1, 2, 1) - ---- y DATA(2, -1, 1) + 7000 7000 7000 + + 137 47 107 + - ---- y DATA(1, -1, -1) - ---- y DATA(2, 2, -1) + ---- y DATA(1, 2, 2) + 5250 5250 7000 + + 107 137 137 + + ---- y DATA(-2, -1, -2) - ---- y DATA(2, 2, 2) + ---- y DATA(2, -2, -2) + 7000 5250 5250 + + 137 107 107 + - ---- y DATA(-1, 1, -1) - ---- y DATA(1, -2, -2) + ---- y DATA(2, 1, 2) + 5250 7000 7000 + + 107 107 229 + - ---- y DATA(-1, 2, 2) + ---- y DATA(-1, -2, -2) - ----- y DATA(-1, 1, 2) + 7000 7000 10500 + + 137 3 + - ---- y DATA(-2, -2, -2) + 1/150 y DATA(2, -1, -1) + 5250 + + 3 3 + - 1/600 y DATA(-1, 2, 1) + 1/600 y DATA(1, 2, 1) + + 3 3 + + 1/150 y DATA(2, -1, 1) + 1/300 y DATA(1, -1, -1) + + 3 3 + + 1/300 y DATA(2, 2, -1) + 1/600 y DATA(1, 2, 2) + + 3 3 + - 1/150 y DATA(-2, -1, -2) + 1/300 y DATA(2, 2, 2) + + 3 3 + - 1/300 y DATA(2, -2, -2) + 1/300 y DATA(-1, 1, -1) + + 3 3 + - 1/600 y DATA(1, -2, -2) - 1/150 y DATA(2, 1, 2) + + 3 3 + - 1/600 y DATA(-1, 2, 2) + 1/600 y DATA(-1, -2, -2) + + 3 3 + + 1/300 y DATA(-1, 1, 2) + 1/300 y DATA(-2, -2, -2) + + 3 3 + + 1/300 y DATA(1, -1, 2) + 1/150 y DATA(2, -1, 2) + + 3 3 + - 1/300 y DATA(-1, -1, 2) + 1/300 y DATA(2, 2, 1) + + 3 3 + - 1/300 y DATA(-2, 2, -2) - 1/150 y DATA(2, 1, -2) + + 3 3 + - 1/300 y DATA(1, 1, -2) + 1/300 y DATA(-1, 1, -2) + + 3 3 + + 1/150 y DATA(-2, 1, -2) + 1/150 y DATA(2, -1, -2) + + 3 3 + + 1/300 y DATA(1, -1, -2) - 1/300 y DATA(-1, -1, -2) + + 3 3 + - 1/300 y DATA(2, -2, -1) - 1/600 y DATA(1, -2, -1) + + 3 3 + + 1/600 y DATA(-1, -2, -1) + 1/300 y DATA(-2, -2, -1) + + 3 3 + + 1/300 y DATA(2, 2, -2) - 1/150 y DATA(2, 1, 1) + + 3 3 + + 1/600 y DATA(1, 2, -2) - 1/600 y DATA(-1, 2, -2) + + 3 3 + + 1/150 y DATA(-2, 1, -1) - 1/150 y DATA(-2, -1, -1) + + 3 3 + - 1/300 y DATA(-2, 2, -1) + 1/300 y DATA(-2, -2, 1) + + 3 3 + + 1/600 y DATA(-1, -2, 1) - 1/600 y DATA(1, -2, 1) + + 3 3 + - 1/300 y DATA(1, 1, 2) - 1/300 y DATA(2, -2, 1) + + 3 3 + - 1/150 y DATA(-2, -1, 1) + 1/150 y DATA(-2, 1, 1) + + 3 3 + - 1/300 y DATA(-2, 2, 1) + 1/300 y DATA(-2, -2, 2) + + 3 3 3 + + 1/600 y DATA(1, 2, 0) + 1/300 y DATA(2, 2, 0) - 1/150 y DATA(2, 1, 0) + + 3 3 + - 1/600 y DATA(-1, 2, 0) + 1/150 y DATA(2, -1, 0) + + 3 3 + + 1/600 y DATA(-1, -2, 0) + 1/300 y DATA(-2, -2, 0) + + 3 3 + - 1/150 y DATA(-2, -1, 0) - 1/300 y DATA(2, -2, 0) + + 3 3 + - 1/600 y DATA(1, -2, 0) + 1/150 y DATA(-2, 1, 0) + + 3 3 + - 1/300 y DATA(-2, 2, 0) - 1/300 y DATA(1, 1, -1) + + 3 3 + - 1/300 y DATA(-1, -1, 0) + 1/300 y DATA(1, -1, 0) + + 3 3 + + 1/300 y DATA(-1, 1, 0) + 1/300 y DATA(-1, 1, 1) + + 3 3 + + 1/300 y DATA(1, -1, 1) - 1/300 y DATA(-1, -1, 1) + + 3 3 + + 1/600 y DATA(-1, -2, 2) - 1/300 y DATA(1, 1, 0) + + 3 3 + - 1/600 y DATA(1, -2, 2) - 1/150 y DATA(-2, -1, 2) + + 3 3 + - 1/300 y DATA(2, -2, 2) + 1/150 y DATA(-2, 1, 2) + + 3 3 + - 1/300 y DATA(1, 1, 1) - 1/300 y DATA(-2, 2, 2) + + 3 3 + - 1/300 y DATA(-1, -1, -1) + 1/600 y DATA(1, 2, -1) + + 3 3 + - 1/150 y DATA(2, 1, -1) - 1/600 y DATA(-1, 2, -1) + + 3 3 + + 1/300 z DATA(2, -1, 2) - 1/150 z DATA(2, 2, 1) + + 3 3 + + 1/300 z DATA(-2, 2, -2) - 1/300 z DATA(2, 1, -2) + + 3 3 + - 1/600 z DATA(1, 1, -2) + 1/600 z DATA(-1, 1, -2) + + 3 3 + + 1/300 z DATA(-2, 1, -2) - 1/300 z DATA(-2, 1, 2) + + 3 3 + - 1/300 z DATA(-2, 2, 2) - 1/300 z DATA(-1, -1, -1) + + 3 3 + + 1/300 z DATA(1, 2, -1) + 1/150 z DATA(2, 1, -1) + + 3 3 + - 1/300 z DATA(-1, 2, -1) + 1/150 z DATA(2, -1, -1) + + 3 3 + - 1/150 z DATA(2, 1, 1) + 1/300 z DATA(-1, 2, 1) + + 3 3 + - 1/300 z DATA(1, 2, 1) - 1/150 z DATA(2, -1, 1) + + 3 3 + + 1/300 z DATA(1, -1, -1) + 1/150 z DATA(2, 2, -1) + + 3 3 + + 1/600 z DATA(1, 2, 2) + 1/300 z DATA(-2, -1, -2) + + 3 3 + + 1/300 z DATA(2, 2, 2) - 1/300 z DATA(2, -2, -2) + + 3 3 + - 1/300 z DATA(-1, 1, -1) - 1/600 z DATA(1, -2, -2) + + 3 3 + + 1/300 z DATA(2, 1, 2) - 1/600 z DATA(-1, 2, 2) + + 3 3 + + 1/600 z DATA(-1, -2, -2) - 1/600 z DATA(-1, 1, 2) + + 3 3 + + 1/300 z DATA(-2, -2, -2) + 1/600 z DATA(1, -1, 2) + + 2 2 + + 1/350 z DATA(-1, 2, 0) + 1/350 z DATA(-1, -2, 0) + + 2 2 + + 1/175 z DATA(-2, -2, 0) + 1/175 z DATA(-2, -1, 0) + + 2 2 + - 1/175 z DATA(2, -2, 0) - 1/350 z DATA(1, -2, 0) + + 2 2 + + 1/175 z DATA(-2, 1, 0) + 1/175 z DATA(-2, 2, 0) + + 2 2 + - 1/175 z DATA(-2, 0, 2) - 1/700 z DATA(1, 0, 1) + + 2 2 2 + - 1/350 z DATA(2, 0, 1) + 1/350 z DATA(1, 0, 2) + 1/175 z DATA(2, 0, 2) + + 2 2 + - 1/350 z DATA(-1, 0, 2) + 1/175 z DATA(2, 0, -2) + + 2 2 + + 1/350 z DATA(1, 0, -2) - 1/350 z DATA(2, 0, -1) + + 2 2 + - 1/350 z DATA(-1, 0, -2) - 1/175 z DATA(-2, 0, -2) + + 2 2 + + 1/350 z DATA(-2, 0, -1) + 1/350 z DATA(-2, 0, 1) + + 2 2 + - 1/175 z DATA(2, 0, 0) + 1/175 z DATA(-2, 0, 0) + + 3 3 + + 1/300 z DATA(1, 1, -1) + 1/300 z DATA(-1, 1, 1) + + 3 3 + + 1/300 z DATA(-1, 0, 1) - 1/300 z DATA(1, -1, 1) + + 2 2 + - 1/175 z DATA(2, -1, 0) + 1/175 z DATA(2, -1, -2) + + 2 2 + + 1/350 z DATA(1, -1, -2) - 1/350 z DATA(-1, -1, -2) + + 2 2 + - 1/350 z DATA(2, -2, -1) - 1/700 z DATA(1, -2, -1) + + 2 2 + + 1/700 z DATA(-1, -2, -1) + 1/350 z DATA(-2, -2, -1) + + 2 2 + + 1/175 z DATA(2, 2, -2) + 1/350 z DATA(1, 2, -2) + + 2 2 + - 1/350 z DATA(-1, 2, -2) + 1/350 z DATA(-2, 1, -1) + + 2 2 + + 1/350 z DATA(-2, -1, -1) + 1/350 z DATA(-2, 2, -1) + + 2 2 + + 1/350 z DATA(-2, -2, 1) + 1/700 z DATA(-1, -2, 1) + + 2 2 + - 1/700 z DATA(1, -2, 1) + 1/350 z DATA(1, 1, 2) + + 2 2 + - 1/350 z DATA(2, -2, 1) + 1/350 z DATA(-2, -1, 1) + + 2 2 + + 1/350 z DATA(-2, 1, 1) + 1/350 z DATA(-2, 2, 1) + + 2 2 + - 1/175 z DATA(-2, -2, 2) - 1/350 z DATA(1, 2, 0) + + 2 2 + - 1/175 z DATA(2, 2, 0) - 1/175 z DATA(2, 1, 0) + + 2 2 + - 1/350 z DATA(2, 1, -1) + 1/700 z DATA(-1, 2, -1) + + 2 + - 1/350 z DATA(2, -1, -1) - 1/300 x DATA(2, 0, 2) + + 3 + - 1/300 x DATA(2, 0, -2) + 4/75 x DATA(1, 0, -2) - 1/300 z DATA(1, 1, 1) + + 17 289 187 + + ---- z DATA(-2, 0, 2) + ----- z DATA(1, 0, 1) + ---- z DATA(2, 0, 1) + 5250 10500 7000 + + 187 17 187 + + ---- z DATA(1, 0, 2) - ---- z DATA(2, 0, 2) - ---- z DATA(-1, 0, 2) + 7000 5250 7000 + + 17 187 187 + + ---- z DATA(2, 0, -2) - ---- z DATA(1, 0, -2) - ---- z DATA(2, 0, -1) + 5250 7000 7000 + + 187 17 229 + + ---- z DATA(-1, 0, -2) - ---- z DATA(-2, 0, -2) - ----- y DATA(1, -1, 2) + 7000 5250 10500 + + 107 229 47 + - ---- y DATA(2, -1, 2) + ----- y DATA(-1, -1, 2) - ---- y DATA(2, 2, 1) + 7000 10500 5250 + + 137 107 229 + + ---- y DATA(-2, 2, -2) + ---- y DATA(2, 1, -2) + ----- y DATA(1, 1, -2) + 5250 7000 10500 + + 229 107 + - ----- y DATA(-1, 1, -2) - ---- y DATA(-2, 1, -2) + 10500 7000 + + 107 229 + - ---- y DATA(2, -1, -2) - ----- y DATA(1, -1, -2) + 7000 10500 + + 229 47 + + ----- y DATA(-1, -1, -2) + ---- y DATA(2, -2, -1) + 10500 5250 + + 167 167 + - ---- y DATA(1, -2, -1) + ---- y DATA(-1, -2, -1) + 7000 7000 + + 47 137 107 + - ---- y DATA(-2, -2, -1) - ---- y DATA(2, 2, -2) + ---- y DATA(1, 2, -2) + 5250 5250 7000 + + 107 167 + - ---- y DATA(-1, 2, -2) - ---- y DATA(-2, 1, -1) + 7000 7000 + + 167 47 + + ---- y DATA(-2, -1, -1) - ---- y DATA(-2, -2, 1) + 7000 5250 + + 167 167 229 + + ---- y DATA(-1, -2, 1) - ---- y DATA(1, -2, 1) + ----- y DATA(1, 1, 2) + 7000 7000 10500 + + 47 167 167 + + ---- y DATA(2, -2, 1) + ---- y DATA(-2, -1, 1) - ---- y DATA(-2, 1, 1) + 5250 7000 7000 + + 47 137 187 + + ---- y DATA(-2, 2, 1) - ---- y DATA(-2, -2, 2) + ---- y DATA(1, 2, 0) + 5250 5250 7000 + + 17 187 187 + - ---- y DATA(2, 2, 0) + ---- y DATA(2, 1, 0) - ---- y DATA(-1, 2, 0) + 5250 7000 7000 + + 187 187 17 + - ---- y DATA(2, -1, 0) + ---- y DATA(-1, -2, 0) - ---- y DATA(-2, -2, 0) + 7000 7000 5250 + + 187 17 107 + + ---- y DATA(-2, -1, 0) + ---- y DATA(2, -2, 0) - ---- z DATA(-1, 2, 2) + 7000 5250 7000 + + 167 137 167 + - ---- z DATA(-1, 1, 2) - ---- z DATA(-2, -2, -2) + ---- z DATA(1, -1, 2) + 7000 5250 7000 + + 47 167 107 + - ---- z DATA(2, -1, 2) - ---- z DATA(-1, -1, 2) + ---- z DATA(2, 2, 1) + 5250 7000 7000 + + 137 47 167 + - ---- z DATA(-2, 2, -2) + ---- z DATA(2, 1, -2) - ---- z DATA(1, 1, -2) + 5250 5250 7000 + + 167 47 47 + + ---- z DATA(-1, 1, -2) - ---- z DATA(-2, 1, -2) + ---- z DATA(2, -1, -2) + 7000 5250 5250 + + 167 167 + - ---- z DATA(1, -1, -2) + ---- z DATA(-1, -1, -2) + 7000 7000 + + 107 229 + - ---- z DATA(2, -2, -1) - ----- z DATA(1, -2, -1) + 7000 10500 + + 229 107 + + ----- z DATA(-1, -2, -1) + ---- z DATA(-2, -2, -1) + 10500 7000 + + 137 107 107 + + ---- z DATA(2, 2, -2) - ---- z DATA(1, 2, -2) + ---- z DATA(-1, 2, -2) + 5250 7000 7000 + + 167 167 + + ---- z DATA(-2, 1, -1) + ---- z DATA(-2, -1, -1) + 7000 7000 + + 107 107 + + ---- z DATA(-2, 2, -1) - ---- z DATA(-2, -2, 1) + 7000 7000 + + 229 229 167 + - ----- z DATA(-1, -2, 1) + ----- z DATA(1, -2, 1) + ---- z DATA(1, 1, 2) + 10500 10500 7000 + + 107 167 167 + + ---- z DATA(2, -2, 1) - ---- z DATA(-2, -1, 1) - ---- z DATA(-2, 1, 1) + 7000 7000 7000 + + 107 137 107 + - ---- z DATA(-2, 2, 1) + ---- z DATA(-2, -2, 2) + ---- z DATA(-1, -2, -2) + 7000 5250 7000 + + 2 2 + + 1/350 y DATA(-2, 1, -2) - 1/350 y DATA(2, -1, -2) + + 2 2 + - 1/700 y DATA(1, -1, -2) + 1/700 y DATA(-1, -1, -2) + + 2 2 + + 1/175 y DATA(2, -2, -1) + 1/350 y DATA(1, -2, -1) + + 2 2 + - 1/350 y DATA(-1, -2, -1) - 1/175 y DATA(-2, -2, -1) + + 2 2 + + 1/175 y DATA(2, 2, -2) + 1/350 y DATA(1, 2, -2) + + 2 2 + - 1/350 y DATA(-1, 2, -2) + 1/350 y DATA(-2, 1, -1) + + 2 2 + + 1/350 y DATA(-2, -1, -1) - 1/175 y DATA(-2, 2, -1) + + 2 2 + - 1/175 y DATA(-2, -2, 1) - 1/350 y DATA(-1, -2, 1) + + 2 2 + + 1/350 y DATA(1, -2, 1) - 1/700 y DATA(1, 1, 2) + + 2 2 + + 1/175 y DATA(2, -2, 1) + 1/350 y DATA(-2, -1, 1) + + 2 2 + + 1/350 y DATA(-2, 1, 1) - 1/175 y DATA(-2, 2, 1) + + 2 2 + - 1/175 y DATA(-2, -2, 2) + 1/350 y DATA(1, 2, 0) + + 2 2 + + 1/175 y DATA(2, 2, 0) - 1/350 y DATA(2, 1, 0) + + 2 2 + - 1/350 y DATA(-1, 2, 0) - 1/350 y DATA(2, -1, 0) + + 2 2 + - 1/350 y DATA(-1, -2, 0) - 1/175 y DATA(-2, -2, 0) + + 2 2 + + 1/350 y DATA(-2, -1, 0) + 1/175 y DATA(2, -2, 0) + + 2 187 289 + + 1/350 y DATA(1, -2, 0) - ---- z DATA(-2, 0, 1) - ----- z DATA(-1, 0, 1) + 7000 10500 + + 137 137 107 + + ---- z DATA(1, -1, 1) - ---- z DATA(-1, -1, 1) - ---- z DATA(-1, -2, 2) + 5250 5250 7000 + + 289 289 107 + + ----- z DATA(-1, 0, -1) - ----- z DATA(1, 0, -1) + ---- z DATA(1, -2, 2) + 10500 10500 7000 + + 47 137 47 + + ---- z DATA(-2, -1, 2) - ---- z DATA(2, -2, 2) + ---- z DATA(-2, 1, 2) + 5250 5250 5250 + + 137 137 137 + + ---- z DATA(1, 1, 1) + ---- z DATA(-2, 2, 2) + ---- z DATA(-1, -1, -1) + 5250 5250 5250 + + 229 167 229 + - ----- z DATA(1, 2, -1) - ---- z DATA(2, 1, -1) + ----- z DATA(-1, 2, -1) + 10500 7000 10500 + + 167 167 229 + - ---- z DATA(2, -1, -1) + ---- z DATA(2, 1, 1) - ----- z DATA(-1, 2, 1) + 7000 7000 10500 + + 229 167 137 + + ----- z DATA(1, 2, 1) + ---- z DATA(2, -1, 1) - ---- z DATA(1, -1, -1) + 10500 7000 5250 + + 107 107 47 + - ---- z DATA(2, 2, -1) + ---- z DATA(1, 2, 2) - ---- z DATA(-2, -1, -2) + 7000 7000 5250 + + 137 137 137 + - ---- z DATA(2, 2, 2) + ---- z DATA(2, -2, -2) + ---- z DATA(-1, 1, -1) + 5250 5250 5250 + + 107 47 + - ---- z DATA(1, -2, -2) - ---- z DATA(2, 1, 2) + 1/250 y z DATA(2, 1, 2) + 7000 5250 + + + 1/1000 y z DATA(-1, 1, -1) + 1/125 y z DATA(2, -2, -2) + + - 1/500 y z DATA(1, 1, -2) + 1/500 y z DATA(-1, 1, -2) + + - 1/250 y z DATA(-2, -1, -2) + 1/125 y z DATA(2, 2, 2) + + + 1/1000 y z DATA(1, -1, -1) - 1/250 y z DATA(2, 2, -1) + + + 1/250 y z DATA(1, 2, 2) + 1/500 y z DATA(1, 2, 1) + + - 1/500 y z DATA(2, -1, 1) + 1/500 y z DATA(2, -1, -1) + + + 1/500 y z DATA(2, 1, 1) - 1/500 y z DATA(-1, 2, 1) + + - 1/500 y z DATA(2, 1, -1) - 1/1000 y z DATA(-1, -1, -1) + + - 1/500 y z DATA(1, 2, -1) - 1/125 y z DATA(-2, 2, 2) + + 2 + + 1/1400 y z DATA(1, 1, -1) - 1/1000 y z DATA(1, 1, -1) + + 2 2 + - 1/1400 y z DATA(1, 1, -1) + 1/490 x z DATA(1, 1, -1) + + 2 + + 1/490 x y DATA(1, 1, -1) - 1/250 y z DATA(-2, 1, 2) + + 2 + + 1/100 x z DATA(1, 1, -1) - 1/350 x y DATA(1, 1, -1) + + - 1/125 y z DATA(2, -2, 2) - 1/250 y z DATA(1, -2, 2) + + + 1/250 y z DATA(-1, -2, 2) + 1/250 y z DATA(1, -2, -2) + + 2 2 + - 2/245 x z DATA(0, -1, 2) - 2/245 x z DATA(0, -2, -2) + + 2 + - 2/245 x z DATA(0, 2, 2) - 1/250 y z DATA(2, -1, 2) + + 2 2 + + 1/245 x z DATA(0, 2, 1) - 1/245 x z DATA(-2, 0, -1) + + 2 2 + + 2/245 x z DATA(-2, 0, -2) - 1/245 x z DATA(-1, 0, -2) + + - 1/125 y z DATA(-2, -2, -2) + 1/1000 y z DATA(-1, -1, 1) + + 2 2 + - 1/245 x z DATA(2, 0, -1) - 1/245 x z DATA(1, 0, -2) + + 2 + + 2/245 x z DATA(2, 0, -2) - 1/500 y z DATA(1, -1, 2) + + 2 2 + - 1/245 x z DATA(-1, 0, 2) + 2/245 x z DATA(2, 0, 2) + + 2 2 + - 1/245 x z DATA(1, 0, 2) - 1/245 x z DATA(2, 0, 1) + + 2 2 + + 1/490 x z DATA(1, 0, 1) + 1/245 x z DATA(0, -2, -1) + + 2 2 + + 1/245 x z DATA(0, 1, 1) - 2/245 x z DATA(0, 1, 2) + + 2 2 + + 2/245 x z DATA(-2, 0, 2) - 2/245 x z DATA(-2, 2, 0) + + 2 2 + + 2/245 x z DATA(0, 2, 0) + 2/245 x z DATA(0, -2, 0) + + 2 2 + - 2/245 x z DATA(0, 0, -2) - 2/245 x z DATA(0, 0, 2) + + 2 2 + + 1/245 x z DATA(0, 0, 1) + 2/245 x z DATA(0, 1, 0) + + 2 2 + + 2/245 x z DATA(0, 0, 0) + 1/245 x z DATA(0, 0, -1) + + 2 2 + + 2/245 x z DATA(0, -1, 0) - 2/245 x z DATA(-2, 0, 0) + + 2 2 + - 2/245 x z DATA(2, 0, 0) - 1/245 x z DATA(-2, 0, 1) + + - 1/250 y z DATA(-1, -2, -2) - 1/500 y z DATA(-1, 1, 2) + + - 1/1000 y z DATA(1, -1, 1) - 1/1000 y z DATA(-1, 1, 1) + + - 1/250 y z DATA(-1, 2, 2) + 1/250 y z DATA(-2, 1, -2) + + 2 2 + - 1/245 x z DATA(-2, 2, 1) - 1/245 x z DATA(-2, 1, 1) + + 2 2 + - 1/245 x z DATA(-2, -1, 1) - 1/245 x z DATA(2, -2, 1) + + 2 2 + - 1/245 x z DATA(1, 1, 2) + 1/490 x z DATA(1, -2, 1) + + 2 2 + + 1/490 x z DATA(-1, -2, 1) - 1/245 x z DATA(-2, -2, 1) + + 2 2 + - 1/245 x z DATA(-2, 2, -1) - 1/245 x z DATA(-2, -1, -1) + + 2 2 + - 1/245 x z DATA(-2, 1, -1) - 1/245 x z DATA(-1, 2, -2) + + 2 2 + - 1/245 x z DATA(1, 2, -2) + 2/245 x z DATA(2, 2, -2) + + 2 2 + - 1/245 x z DATA(-2, -2, -1) + 1/490 x z DATA(-1, -2, -1) + + 2 2 + + 1/490 x z DATA(1, -2, -1) - 1/245 x z DATA(2, -2, -1) + + 2 2 + - 1/245 x z DATA(-1, -1, -2) - 2/245 x z DATA(-2, 1, 0) + + 2 2 + + 1/245 x z DATA(1, -2, 0) - 2/245 x z DATA(2, -2, 0) + + 2 2 + - 2/245 x z DATA(-2, -1, 0) - 2/245 x z DATA(-2, -2, 0) + + 2 2 + + 1/245 x z DATA(-1, -2, 0) - 2/245 x z DATA(2, -1, 0) + + 2 2 + + 1/245 x z DATA(-1, 2, 0) - 2/245 x z DATA(2, 1, 0) + + 2 2 + - 2/245 x z DATA(2, 2, 0) + 1/245 x z DATA(1, 2, 0) + + 2 2 + + 1/245 x z DATA(0, -2, 1) - 2/245 x z DATA(0, 2, -2) + + 2 2 + - 2/245 x z DATA(0, -1, -2) - 2/245 x z DATA(0, 1, -2) + + 2 + - 1/350 z DATA(2, 1, 1) + 1/175 x y DATA(-2, 1, -1) + + 2 2 + - 1/245 x y DATA(1, -2, 0) + 2/245 x y DATA(2, -2, 0) + + 2 + + 1/490 x z DATA(-1, 0, -1) + 1/250 y z DATA(2, -1, -2) + + 2 2 + - 1/245 x z DATA(-1, -2, 2) + 1/490 x z DATA(-1, -1, 1) + + 2 2 + + 1/490 x z DATA(1, -1, 1) + 1/490 x z DATA(-1, 0, 1) + + 2 2 + + 1/490 x z DATA(-1, 1, 1) + 1/245 x z DATA(-1, 1, 0) + + 2 2 + + 1/245 x z DATA(-1, 0, 0) + 1/245 x z DATA(1, -1, 0) + + 2 2 + + 1/245 x z DATA(-1, -1, 0) - 2/245 x y DATA(0, 2, 0) + + 2 2 + - 2/245 x y DATA(0, -2, 0) + 2/245 x y DATA(0, 0, -2) + + 2 2 + + 2/245 x y DATA(0, 0, 2) + 2/245 x y DATA(0, 0, 1) + + 2 2 + + 1/245 x y DATA(0, 1, 0) + 2/245 x y DATA(0, 0, 0) + + 2 + + 1/1000 y z DATA(1, 1, 1) + 2/245 x y DATA(0, 0, -1) + + 2 2 + + 2/245 x z DATA(2, 1, 2) - 1/245 x z DATA(1, -2, -2) + + 2 2 + + 1/490 x z DATA(-1, 1, -1) + 2/245 x z DATA(2, -2, -2) + + 2 2 + + 2/245 x z DATA(2, 2, 2) + 2/245 x z DATA(-2, -1, -2) + + 2 2 + - 1/245 x z DATA(1, 2, 2) - 1/245 x z DATA(2, 2, -1) + + 2 2 + + 1/490 x z DATA(1, -1, -1) - 1/245 x z DATA(2, -1, 1) + + 2 2 + + 1/490 x z DATA(1, 2, 1) + 1/490 x z DATA(-1, 2, 1) + + 2 2 + - 1/245 x z DATA(2, 1, 1) - 1/245 x z DATA(2, -1, -1) + + 2 2 + + 1/490 x z DATA(-1, 2, -1) - 1/245 x z DATA(2, 1, -1) + + 2 2 + + 1/490 x z DATA(1, 2, -1) + 1/490 x z DATA(-1, -1, -1) + + 2 2 + + 2/245 x z DATA(-2, 2, 2) + 1/490 x z DATA(1, 1, 1) + + 2 2 + + 2/245 x z DATA(-2, 1, 2) + 2/245 x z DATA(2, -2, 2) + + 2 2 + + 2/245 x z DATA(-2, -1, 2) - 1/245 x z DATA(1, -2, 2) + + 2 2 + + 1/245 x z DATA(1, 1, 0) + 1/245 x z DATA(1, 0, 0) + + 2 2 + + 1/490 x z DATA(1, 0, -1) - 1/245 x z DATA(1, -1, -2) + + 2 2 + + 2/245 x z DATA(2, -1, -2) + 2/245 x z DATA(-2, 1, -2) + + 2 2 + - 1/245 x z DATA(-1, 1, -2) - 1/245 x z DATA(1, 1, -2) + + 2 2 + + 2/245 x z DATA(2, 1, -2) + 2/245 x z DATA(-2, 2, -2) + + 2 2 + - 1/245 x z DATA(2, 2, 1) - 1/245 x z DATA(-1, -1, 2) + + 2 2 + + 2/245 x z DATA(2, -1, 2) - 1/245 x z DATA(1, -1, 2) + + 2 2 + + 2/245 x z DATA(-2, -2, -2) - 1/245 x z DATA(-1, 1, 2) + + 2 2 + - 1/245 x z DATA(-1, -2, -2) - 1/245 x z DATA(-1, 2, 2) + + 2 2 + + 1/245 x z DATA(0, 2, -1) + 1/245 x z DATA(0, -1, -1) + + 2 2 + - 2/245 x z DATA(0, -2, 2) + 1/245 x z DATA(0, -1, 1) + + 2 2 + + 1/245 x z DATA(0, 1, -1) + 2/245 x z DATA(-2, -2, 2) + + 2 2 + - 2/245 x y DATA(0, 2, 2) - 2/245 x y DATA(0, 2, -1) + + 2 2 + + 1/245 x y DATA(0, -1, -1) - 2/245 x y DATA(0, -2, 2) + + 2 2 + + 1/245 x y DATA(0, -1, 1) + 1/245 x y DATA(0, 1, -1) + + 2 2 + + 2/245 x y DATA(-2, -2, 2) + 2/245 x y DATA(-2, 2, 1) + + 2 2 + - 1/245 x y DATA(-2, 1, 1) - 1/245 x y DATA(-2, -1, 1) + + 2 2 + + 2/245 x y DATA(2, -2, 1) + 1/490 x y DATA(1, 1, 2) + + 2 2 + - 1/245 x y DATA(1, -2, 1) + 1/245 x y DATA(0, -1, 0) + + 2 2 + - 2/245 x y DATA(-2, 0, 0) - 2/245 x y DATA(2, 0, 0) + + 2 2 + - 2/245 x y DATA(-2, 0, 1) - 2/245 x y DATA(0, 2, 1) + + + 2/175 x y DATA(2, 2, -2) - 1/175 x y DATA(1, 2, -2) + + - 2/175 x y DATA(-2, -2, -1) + 1/350 x y DATA(1, -1, -2) + + + 1/350 x y DATA(-1, -1, -2) - 2/175 x y DATA(2, -2, -1) + + + 1/175 x y DATA(1, -2, -1) + 1/175 x y DATA(-1, -2, -1) + + + 1/175 x y DATA(-2, 1, -2) - 1/175 x y DATA(2, -1, -2) + + - 1/350 x y DATA(1, 1, -2) - 1/350 x y DATA(-1, 1, -2) + + 29 + + 2/175 x y DATA(-2, 2, -2) - ---- DATA(-2, 0, 1) + 2100 + + + 1/175 x y DATA(2, 1, -2) + 1/350 x y DATA(1, -1, 2) + + - 1/175 x y DATA(2, -1, 2) + 1/350 x y DATA(-1, -1, 2) + + 17 + + 2/175 x y DATA(2, 2, 1) - ---- DATA(-2, 1, 1) + 2100 + + + 1/175 x y DATA(-1, -2, -2) - 1/350 x y DATA(-1, 1, 2) + + - 2/175 x y DATA(-2, -2, -2) - 1/350 x y DATA(-1, 1, -1) + + + 1/175 x y DATA(1, -2, -2) + 1/175 x y DATA(2, 1, 2) + + 19 + - 1/175 x y DATA(-1, 2, 2) + ---- DATA(-2, 2, 1) + 2/175 x y DATA(2, 2, 2) + 2100 + + - 2/175 x y DATA(2, -2, -2) + 1/350 x y DATA(1, -1, -1) + + + 2/175 x y DATA(2, 2, -1) - 1/175 x y DATA(1, 2, 2) + + - 1/175 x y DATA(-2, -1, -2) - 1/175 x y DATA(1, 2, 1) + + - 1/175 x y DATA(2, -1, 1) - 1/175 x y DATA(-1, 2, 1) + + 11 2 + + --- DATA(-2, -2, 2) + 1/350 z DATA(1, 2, 2) + 420 + + 2 2 + - 2/245 x y DATA(-2, 0, -1) - 2/245 x y DATA(-2, 0, -2) + + 2 2 + + 1/245 x y DATA(-1, 0, -2) - 2/245 x y DATA(2, 0, -1) + + 2 2 + + 1/245 x y DATA(1, 0, -2) - 2/245 x y DATA(2, 0, -2) + + 2 2 + + 1/245 x y DATA(-1, 0, 2) - 2/245 x y DATA(2, 0, 2) + + 2 2 + + 1/245 x y DATA(1, 0, 2) - 2/245 x y DATA(2, 0, 1) + + 2 2 + + 1/245 x y DATA(1, 0, 1) - 2/245 x y DATA(0, -2, -1) + + 2 2 + + 1/245 x y DATA(0, 1, 1) + 1/245 x y DATA(0, 1, 2) + + 2 2 + - 2/245 x y DATA(-2, 0, 2) + 2/245 x y DATA(-2, 2, 0) + + 2 + - 1/245 x y DATA(-2, 1, 0) - 1/175 x y DATA(2, -1, -1) + + - 1/175 x y DATA(-1, 2, -1) + 1/175 x y DATA(2, 1, -1) + + - 1/175 x y DATA(1, 2, -1) + 1/350 x y DATA(-1, -1, -1) + + + 2/175 x y DATA(-2, 2, 2) - 1/350 x y DATA(1, 1, 1) + + + 1/175 x y DATA(-2, 1, 2) - 2/175 x y DATA(2, -2, 2) + + - 1/175 x y DATA(-2, -1, 2) + 1/175 x y DATA(1, -2, 2) + + - 1/350 x y DATA(1, 1, 0) + 1/175 x y DATA(-1, -2, 2) + + + 1/350 x y DATA(-1, -1, 1) + 1/350 x y DATA(1, -1, 1) + + - 1/350 x y DATA(-1, 1, 1) - 1/350 x y DATA(-1, 1, 0) + + + 1/350 x y DATA(1, -1, 0) + 1/350 x y DATA(-1, -1, 0) + + + 2/175 x z DATA(0, 0, -2) - 2/175 x z DATA(0, 0, 2) + + - 1/175 x z DATA(0, 0, 1) + 1/175 x z DATA(0, 0, -1) + + + 1/175 x z DATA(-2, 0, 1) - 1/175 x z DATA(-2, 0, -1) + + - 2/175 x z DATA(-2, 0, -2) + 1/175 x z DATA(-1, 0, -2) + + - 1/175 x z DATA(2, 0, -1) + 1/175 x z DATA(1, 0, -2) + + 2 + - 2/175 x z DATA(2, 0, -2) + 1/100 x z DATA(-1, -1, 1) + + 2 2 + - 1/100 x z DATA(1, -1, 1) + 1/100 x z DATA(-1, 0, 1) + + 2 + + 1/100 x z DATA(-1, 1, 1) - 2/175 x y DATA(0, 2, 0) + + + 2/175 x y DATA(0, -2, 0) - 1/175 x y DATA(0, 1, 0) + + + 1/175 x y DATA(0, -1, 0) + 1/175 x y DATA(2, 1, 1) + +> coeff_as_lc_of_data(%, posn_list_3d_size5); +bytes used=1258660008, alloc=6945544, time=159.34 +bytes used=1259716260, alloc=6945544, time=159.42 +bytes used=1260830476, alloc=6945544, time=159.52 +bytes used=1262024528, alloc=6945544, time=159.62 +bytes used=1263196924, alloc=6945544, time=159.71 +bytes used=1264348824, alloc=6945544, time=159.81 +bytes used=1265480636, alloc=6945544, time=159.90 +bytes used=1266596932, alloc=7142116, time=160.00 +bytes used=1267692080, alloc=7273164, time=160.09 +bytes used=1268766220, alloc=7404212, time=160.19 +bytes used=1269820184, alloc=7600784, time=160.28 +bytes used=1270851124, alloc=7731832, time=160.37 +bytes used=1271863284, alloc=7928404, time=160.47 +bytes used=1272946552, alloc=8059452, time=160.57 +bytes used=1273946864, alloc=8124976, time=160.67 +bytes used=1274947016, alloc=8321548, time=160.78 +bytes used=1276056612, alloc=8518120, time=160.89 +bytes used=1277057256, alloc=8714692, time=161.00 +bytes used=1278184128, alloc=8714692, time=161.10 +bytes used=1279184260, alloc=8976788, time=161.21 +bytes used=1280203028, alloc=9238884, time=161.32 +bytes used=1281203324, alloc=9369932, time=161.44 +bytes used=1282203952, alloc=9566504, time=161.56 +bytes used=1283235708, alloc=9632028, time=161.68 +bytes used=1284271548, alloc=9828600, time=161.80 +bytes used=1285272756, alloc=10025172, time=161.93 +bytes used=1286272948, alloc=10156220, time=162.05 +bytes used=1287311500, alloc=10811460, time=162.18 +bytes used=1288311624, alloc=11139080, time=162.31 +bytes used=1289321568, alloc=11532224, time=162.44 +bytes used=1290356220, alloc=11859844, time=162.58 +bytes used=1291356436, alloc=12384036, time=162.72 +bytes used=1292375824, alloc=12908228, time=162.86 +bytes used=1293375960, alloc=13235848, time=163.00 +bytes used=1294424376, alloc=13628992, time=163.15 +bytes used=1295433888, alloc=14022136, time=163.29 +bytes used=1296435884, alloc=14480804, time=163.44 +bytes used=1297442212, alloc=15136044, time=163.52 +bytes used=1298489976, alloc=15136044, time=163.59 +bytes used=1299537572, alloc=15136044, time=163.66 +bytes used=1300585112, alloc=15136044, time=163.73 +bytes used=1301632540, alloc=15136044, time=163.80 +bytes used=1302680080, alloc=15136044, time=163.87 + 137 2 2 3 2 +[COEFF(-2, -2, -2) = - ---- y - 1/175 z + 1/100 x z + 1/300 y + 1/100 x y + 5250 + + 137 2 2 11 + - ---- z - 1/100 x - 1/125 y z + 2/245 x y + 2/175 x y z + --- + 5250 420 + + 2 529 3 3 + + 1/175 y z - ----- x + 1/150 x - 2/175 x y - 2/175 x z + 1/300 z + 14700 + + 2 2 2 2 + - 1/175 y + 2/245 x z + 1/175 y z , COEFF(-1, -2, -2) = - 1/245 x z + + 2 2 2 2 + - 1/245 x y + 1/175 x y + 1/350 y z - 1/350 z - 1/50 x z - 1/175 x y z + + 2 107 2 3 2 3 107 + + 1/50 x + ---- y + 1/350 y z - 2/75 x - 1/350 y + 1/600 z + ---- z + 7000 7000 + + 2 3 256 + - 8/525 - 1/50 x y + 1/175 x z - 1/250 y z + 1/600 y + ---- x, + 3675 + + 2 33 + COEFF(0, -2, -2) = 2/175 x z - 2/245 x z - 2/175 x y z - --- x + 490 + + 2 3 107 107 + - 2/245 x y + 2/175 x y + 1/25 x , COEFF(1, -2, -2) = - ---- y - ---- z + 7000 7000 + + 3 2 256 2 + - 1/600 y + 1/50 x y + ---- x + 1/175 x y + 1/350 y + 1/175 x z + 3675 + + 2 3 2 + + 1/250 y z - 1/175 x y z - 1/350 y z + 8/525 - 1/600 z - 1/50 x + + 2 2 2 2 3 2 + - 1/245 x z - 1/245 x y - 1/350 y z + 1/50 x z - 2/75 x + 1/350 z , + + 2 2 3 137 + COEFF(2, -2, -2) = - 1/100 x z + 2/245 x y - 1/300 z + ---- y + 5250 + + 2 2 3 137 + - 1/175 y z + 1/175 z + 1/125 y z + 1/150 x + ---- z + 2/175 x y z + 5250 + + 2 2 2 3 2 529 + + 1/100 x + 2/245 x z - 1/175 y z - 1/300 y - 1/100 x y - ----- x + 14700 + + 2 11 + + 1/175 y - --- - 2/175 x y - 2/175 x z, COEFF(-2, -1, -2) = - 2/175 x z + 420 + + 2 2 2 107 + - 1/350 y z + 1/350 y - 1/175 z + ---- y + 1/175 x y z - 1/175 x y + 7000 + + 47 2 2 19 3 3 169 + - ---- z - 1/245 x y - 1/100 x + ---- + 1/300 z + 1/150 x - ----- x + 5250 2100 14700 + + 2 2 3 2 2 + - 1/250 y z + 2/245 x z + 1/200 x y - 1/150 y + 1/100 x z + 1/350 y z + + 211 3 2 167 2 + , COEFF(-1, -1, -2) = ---- x + 1/600 z + 1/490 x y + ---- z - 1/350 z + 3675 7000 + + 3 2 2 2 2 + - 1/300 y + 1/50 x + 1/700 y - 1/42 - 1/100 x y - 1/245 x z + + 2 2 229 + + 1/175 x z - 1/500 y z + 1/700 y z - 1/700 y z + ----- y - 1/350 x y z + 10500 + + 3 2 3 + - 2/75 x - 1/50 x z + 1/350 x y, COEFF(0, -1, -2) = - 9/98 x + 1/25 x + + 2 2 + + 1/245 x y - 1/175 x y z - 2/245 x z + 1/175 x y + 2/175 x z, + + 211 2 2 2 + COEFF(1, -1, -2) = ---- x + 1/50 x z + 1/100 x y + 1/350 z + 1/175 x z + 3675 + + 167 3 3 2 + - ---- z - 2/75 x + 1/300 y - 1/245 x z + 1/500 y z - 1/350 x y z + 7000 + + 2 2 2 3 2 + - 1/700 y + 1/42 - 1/700 y z + 1/490 x y - 1/600 z - 1/50 x + + 2 229 2 + + 1/700 y z - ----- y + 1/350 x y, COEFF(2, -1, -2) = 1/350 y z + 10500 + + 2 169 2 + + 1/250 y z - 1/100 x z + 1/175 x y z - ----- x - 1/350 y z - 2/175 x z + 14700 + + 2 47 2 3 107 19 + - 1/350 y + ---- z + 1/175 z - 1/300 z - ---- y - ---- - 1/175 x y + 5250 7000 2100 + + 3 3 2 2 2 2 + + 1/150 y + 1/150 x - 1/200 x y - 1/245 x y + 2/245 x z + 1/100 x , + + 2 2 2 + COEFF(-2, 0, -2) = - 1/300 x - 2/245 x y + 1/100 x z - 1/175 z + 1/300 + + 3 2 2 17 2 3 + + 1/300 z - 1/100 x - 1/175 y z - ---- z + 2/245 x z + 1/150 x + 5250 + + 2 2 2 + + 1/175 y - 2/175 x z, COEFF(-1, 0, -2) = 1/50 x + 4/75 x - 1/50 x z + + 3 3 2 2 + - 2/75 x + 1/600 z + 1/175 x z - 2/75 - 1/350 y z - 1/350 z + + 2 187 2 2 + - 1/245 x z + ---- z + 1/350 y + 1/245 x y , + 7000 + + 2 2 3 + COEFF(0, 0, -2) = 2/245 x y - 2/245 x z + 2/175 x z + 1/25 x - 1/10 x, + + 2 2 + COEFF(1, 0, -2) = 2/75 + 1/175 x z + 1/245 x y + 4/75 x + 1/350 z + + 3 2 2 3 2 2 + - 1/600 z + 1/50 x z + 1/350 y z - 2/75 x - 1/350 y - 1/50 x + + 2 187 3 + - 1/245 x z - ---- z, COEFF(2, 0, -2) = - 1/300 x - 2/175 x z + 1/150 x + 7000 + + 17 2 2 2 3 + + ---- z - 1/100 x z + 1/100 x - 2/245 x y - 1/300 - 1/300 z + 5250 + + 2 2 2 2 + + 1/175 z + 2/245 x z - 1/175 y + 1/175 y z, COEFF(-2, 1, -2) = + + 107 3 2 2 2 + - ---- y + 1/250 y z + 1/300 z - 1/245 x y + 1/350 y - 1/350 y z + 7000 + + 2 3 47 19 + + 2/245 x z - 1/175 x y z + 1/150 y - 2/175 x z - ---- z + ---- + 5250 2100 + + 3 2 2 2 2 + + 1/150 x + 1/100 x z + 1/175 x y - 1/100 x - 1/175 z - 1/200 x y + + 169 2 2 211 2 + - ----- x - 1/350 y z, COEFF(-1, 1, -2) = 1/50 x + ---- x - 1/350 z + 14700 3675 + + 2 229 2 2 + - 1/700 y z - ----- y - 1/350 x y - 1/50 x z - 1/245 x z + 1/500 y z + 10500 + + 2 3 2 2 167 + + 1/490 x y - 2/75 x + 1/350 x y z + 1/100 x y - 1/700 y z + ---- z + 7000 + + 3 2 3 + + 1/300 y + 1/700 y + 1/175 x z - 1/42 + 1/600 z , COEFF(0, 1, -2) = + + 3 2 + 1/175 x y z + 1/25 x - 1/175 x y + 2/175 x z + 1/245 x y - 9/98 x + + 2 211 229 3 + - 2/245 x z , COEFF(1, 1, -2) = ---- x - 1/500 y z + ----- y - 1/600 z + 3675 10500 + + 2 2 2 3 + + 1/350 x y z + 1/700 y z + 1/175 x z - 1/50 x - 1/245 x z - 2/75 x + + 2 2 2 3 2 167 + + 1/700 y z + 1/350 z + 1/42 - 1/700 y - 1/300 y + 1/490 x y - ---- z + 7000 + + 2 2 + - 1/350 x y - 1/100 x y + 1/50 x z, COEFF(2, 1, -2) = - 1/175 x y z + + 2 19 2 47 3 2 + + 1/175 z - ---- + 1/100 x + ---- z - 2/175 x z + 1/150 x - 1/100 x z + 2100 5250 + + 2 2 3 2 107 + - 1/350 y + 2/245 x z - 1/300 z + 1/350 y z - 1/250 y z + ---- y + 7000 + + 2 2 3 169 2 + + 1/350 y z - 1/245 x y - 1/150 y - ----- x + 1/175 x y + 1/200 x y, + 14700 + + 11 529 3 137 + COEFF(-2, 2, -2) = --- - ----- x - 2/175 x y z + 1/300 z + ---- y + 420 14700 5250 + + 2 3 2 2 2 + - 1/175 z - 1/300 y + 2/175 x y - 1/175 y z + 2/245 x y + 2/245 x z + + 2 2 3 2 + - 2/175 x z - 1/100 x + 1/100 x z + 1/125 y z + 1/150 x + 1/175 y z + + 2 2 137 2 2 + - 1/175 y - 1/100 x y - ---- z, COEFF(-1, 2, -2) = 1/50 x y - 1/50 x z + 5250 + + 2 2 2 2 256 + - 1/245 x y + 1/250 y z + 1/350 y z + 1/50 x - 1/245 x z + ---- x + 3675 + + 107 2 2 3 2 + + ---- z - 1/350 y - 8/525 - 1/350 y z + 1/600 z + 1/175 x z - 1/350 z + 7000 + + 3 107 3 + - 1/600 y - 1/175 x y - ---- y - 2/75 x + 1/175 x y z, COEFF(0, 2, -2) + 7000 + + 33 2 2 + = - --- x - 2/245 x z + 2/175 x z - 2/245 x y + 2/175 x y z - 2/175 x y + 490 + + 3 2 2 + + 1/25 x , COEFF(1, 2, -2) = - 1/245 x y + 1/350 y z - 1/250 y z + + 3 2 2 2 + - 2/75 x + 1/175 x z - 1/50 x y - 1/245 x z - 1/175 x y + 1/350 z + + 2 2 2 3 107 2 + + 1/350 y - 1/50 x + 1/50 x z + 1/600 y - ---- z + 8/525 - 1/350 y z + 7000 + + 107 3 256 529 + + 1/175 x y z + ---- y - 1/600 z + ---- x, COEFF(2, 2, -2) = - ----- x + 7000 3675 14700 + + 2 2 2 2 2 + - 1/175 y z - 1/100 x z + 2/175 x y + 1/175 z + 2/245 x y + 1/100 x + + 11 3 3 137 + - 2/175 x y z - --- + 1/150 x - 1/300 z + ---- z - 2/175 x z + 420 5250 + + 2 2 2 3 137 + + 1/175 y z + 1/175 y - 1/125 y z + 2/245 x z + 1/300 y - ---- y + 5250 + + 2 107 3 + + 1/100 x y, COEFF(-2, -2, -1) = - 2/175 x y + ---- z + 1/150 x + 7000 + + 169 2 2 2 2 + - ----- x + 1/350 y z + 1/100 x y + 1/200 x z - 1/250 y z - 1/245 x z + 14700 + + 2 2 19 3 + + 1/350 z - 1/350 y z + 1/175 x y z - 1/175 x z + ---- + 1/300 y + 2100 + + 3 2 2 2 47 + - 1/150 z + 2/245 x y - 1/175 y - 1/100 x - ---- y, COEFF(-1, -2, -1) + 5250 + + 3 2 2 2 + = - 2/75 x + 1/175 x y - 1/245 x y + 1/700 y z + 1/490 x z + + 2 167 2 2 2 + - 1/100 x z + ---- y + 1/700 z + 1/50 x - 1/42 - 1/350 y + 1/350 x z + 7000 + + 2 229 3 211 + - 1/50 x y - 1/350 x y z - 1/500 y z + ----- z + 1/600 y + ---- x + 10500 3675 + + 2 3 2 + - 1/700 y z - 1/300 z , COEFF(0, -2, -1) = - 1/175 x y z - 2/245 x y + + 2 3 + + 1/245 x z + 1/25 x + 1/175 x z - 9/98 x + 2/175 x y, COEFF(1, -2, -1) + + 2 3 2 2 167 + = 1/42 - 1/50 x - 2/75 x + 1/350 y + 1/175 x y + 1/100 x z - ---- y + 7000 + + 2 211 2 3 3 2 + - 1/700 y z + ---- x - 1/245 x y - 1/600 y + 1/300 z - 1/700 z + 3675 + + 2 2 229 + + 1/350 x z - 1/350 x y z + 1/490 x z + 1/50 x y + 1/500 y z - ----- z + 10500 + + 2 2 3 + + 1/700 y z , COEFF(2, -2, -1) = 1/250 y z + 2/245 x y - 1/300 y + + 47 2 2 107 2 + + ---- y + 1/175 x y z + 1/100 x + 1/175 y - ---- z - 1/245 x z + 5250 7000 + + 2 3 2 3 + - 2/175 x y - 1/350 y z + 1/150 x - 1/175 x z - 1/200 x z + 1/150 z + + 2 19 2 169 2 + - 1/100 x y - ---- + 1/350 y z - ----- x - 1/350 z , COEFF(-2, -1, -1) + 2100 14700 + + 3 2 2 167 191 2 + = 1/150 x - 1/100 x + 1/200 x y + ---- z + ----- x + 1/200 x z + 7000 14700 + + 3 2 3 2 2 + - 1/150 y + 1/350 x y z - 1/700 y z - 1/150 z + 1/350 y - 1/245 x y + + 2 167 17 2 + - 1/245 x z - 1/175 x y - 1/175 x z + ---- y - ---- - 1/700 y z + 7000 2100 + + 2 2 2 + + 1/350 z - 1/500 y z, COEFF(-1, -1, -1) = - 1/100 x z - 1/1400 y z + + 3 2 2 137 + - 2/75 x + 1/700 z - 1/700 x y z + 1/490 x y + 1/350 x z + ---- y + 5250 + + 2 2 137 3 2 + + 1/350 x y + 1/490 x z + 1/50 x + ---- z - 1/300 y - 1/1400 y z + 5250 + + 3 2 2 17 166 + - 1/300 z - 1/100 x y - 1/1000 y z + 1/700 y - --- + ---- x, + 525 3675 + + 57 3 2 + COEFF(0, -1, -1) = - --- x + 1/25 x - 1/350 x y z + 1/245 x z + 1/175 x y + 490 + + 2 2 3 + + 1/175 x z + 1/245 x y , COEFF(1, -1, -1) = 1/1400 y z + 1/300 z + + 2 166 2 2 137 + + 1/1400 y z + 1/350 x y + ---- x - 1/700 y + 1/100 x y - ---- y + 3675 5250 + + 2 3 137 3 + + 1/100 x z - 1/700 x y z - 2/75 x - ---- z + 1/300 y + 1/1000 y z + 5250 + + 2 17 2 2 2 + + 1/350 x z + 1/490 x y + --- - 1/700 z + 1/490 x z - 1/50 x , + 525 + + 2 2 2 17 + COEFF(2, -1, -1) = 1/700 y z - 1/245 x y - 1/175 x z + 1/100 x + ---- + 2100 + + 2 3 2 2 191 + - 1/350 z + 1/150 z - 1/200 x z - 1/175 x y - 1/200 x y + ----- x + 14700 + + 2 2 167 3 + + 1/500 y z + 1/350 x y z - 1/350 y - 1/245 x z - ---- z + 1/150 x + 7000 + + 2 167 3 2 2 + + 1/700 y z - ---- y + 1/150 y , COEFF(-2, 0, -1) = 1/175 y - 1/245 x z + 7000 + + 2 2 311 187 2 + + 1/350 z - 1/350 y z - 1/175 x z + ----- x + ---- z - 2/245 x y + 14700 7000 + + 3 2 3 29 2 + - 1/150 z + 1/200 x z + 1/150 x - ---- - 1/100 x , COEFF(-1, 0, -1) = + 2100 + + 2 2 2 151 3 2 + 1/50 x + 1/245 x y - 1/100 x z + ---- x - 2/75 x + 1/490 x z + 3675 + + 289 37 3 2 2 2 + + 1/350 x z + ----- z - ---- - 1/300 z + 1/350 y + 1/700 z - 1/700 y z + 10500 1050 + + 2 2 3 61 + , COEFF(0, 0, -1) = 1/175 x z + 1/245 x z + 2/245 x y + 1/25 x - --- x, + 490 + + 3 2 2 37 + COEFF(1, 0, -1) = 1/300 z + 1/350 x z - 1/700 z + 1/100 x z + ---- + 1050 + + 2 289 2 2 3 2 + + 1/490 x z - ----- z - 1/350 y - 1/50 x - 2/75 x + 1/700 y z + 10500 + + 2 151 3 2 + + 1/245 x y + ---- x, COEFF(2, 0, -1) = 1/150 x + 1/100 x - 1/175 x z + 3675 + + 2 311 2 2 187 2 + - 1/200 x z + ----- x + 1/350 y z - 1/175 y - ---- z - 1/350 z + 14700 7000 + + 2 29 3 2 167 + - 2/245 x y + ---- + 1/150 z - 1/245 x z , COEFF(-2, 1, -1) = ---- z + 2100 7000 + + 2 2 2 3 17 2 + + 1/350 z - 1/700 y z - 1/245 x z - 1/150 z - ---- - 1/245 x y + 2100 + + 2 2 2 3 167 2 + + 1/700 y z + 1/200 x z + 1/350 y + 1/150 y - ---- y - 1/200 x y + 7000 + + 3 2 + - 1/350 x y z - 1/175 x z + 1/175 x y + 1/500 y z + 1/150 x - 1/100 x + + 191 2 2 + + ----- x, COEFF(-1, 1, -1) = 1/1000 y z + 1/100 x y + 1/490 x y + 14700 + + 137 3 166 17 2 + + 1/700 x y z + ---- z + 1/350 x z - 1/300 z + ---- x - --- + 1/700 z + 5250 3675 525 + + 2 3 2 2 2 + - 1/350 x y + 1/1400 y z - 2/75 x + 1/700 y + 1/50 x - 1/1400 y z + + 2 3 137 2 + + 1/490 x z + 1/300 y - ---- y - 1/100 x z, COEFF(0, 1, -1) = 1/175 x z + 5250 + + 2 2 57 3 + + 1/245 x y + 1/245 x z - --- x - 1/175 x y + 1/350 x y z + 1/25 x , + 490 + + 3 137 166 137 17 2 + COEFF(1, 1, -1) = - 1/300 y + ---- y + ---- x - ---- z + --- - 1/1400 y z + 5250 3675 5250 525 + + 3 2 3 2 2 2 + + 1/300 z + 1/490 x y - 2/75 x + 1/100 x z + 1/490 x z - 1/50 x + + 2 2 + + 1/350 x z - 1/700 y - 1/350 x y - 1/100 x y + 1/700 x y z - 1/1000 y z + + 2 2 17 191 2 + - 1/700 z + 1/1400 y z, COEFF(2, 1, -1) = ---- + ----- x - 1/245 x z + 2100 14700 + + 167 2 2 167 + + 1/175 x y - ---- z - 1/700 y z - 1/350 y + ---- y - 1/175 x z + 7000 7000 + + 2 2 2 3 + - 1/350 x y z - 1/245 x y - 1/500 y z + 1/700 y z - 1/350 z - 1/150 y + + 2 3 2 3 2 + + 1/100 x + 1/150 x - 1/200 x z + 1/150 z + 1/200 x y, + + 2 2 2 19 + COEFF(-2, 2, -1) = 1/350 y z + 2/245 x y + 1/350 z - 1/175 x y z + ---- + 2100 + + 169 2 2 2 107 + - ----- x + 2/175 x y + 1/350 y z - 1/100 x + 1/200 x z + ---- z + 14700 7000 + + 2 3 3 47 + - 1/100 x y + 1/250 y z - 1/150 z - 1/175 x z + 1/150 x + ---- y + 5250 + + 2 2 3 3 + - 1/175 y - 1/245 x z - 1/300 y , COEFF(-1, 2, -1) = - 1/300 z - 1/42 + + 3 2 2 2 229 + - 2/75 x - 1/175 x y - 1/100 x z + 1/700 z + 1/700 y z + ----- z + 10500 + + 2 2 3 2 + + 1/50 x + 1/350 x y z - 1/350 y - 1/600 y + 1/50 x y + 1/500 y z + + 2 2 167 2 211 + - 1/245 x y + 1/490 x z - ---- y + 1/700 y z + 1/350 x z + ---- x, + 7000 3675 + + 3 2 + COEFF(0, 2, -1) = - 9/98 x + 1/25 x - 2/245 x y + 1/175 x y z - 2/175 x y + + 2 2 + + 1/175 x z + 1/245 x z , COEFF(1, 2, -1) = 1/350 x y z - 1/245 x y + + 2 2 2 2 167 + - 1/50 x - 1/175 x y + 1/350 y - 1/700 z - 1/50 x y + ---- y + 7000 + + 3 3 3 229 2 + + 1/350 x z + 1/600 y + 1/300 z - 2/75 x + 1/42 - ----- z + 1/100 x z + 10500 + + 2 211 2 2 + - 1/700 y z + ---- x - 1/700 y z - 1/500 y z + 1/490 x z , + 3675 + + 2 47 3 2 + COEFF(2, 2, -1) = - 1/350 z - ---- y - 1/175 x y z + 1/150 x + 1/100 x + 5250 + + 19 2 2 3 + - ---- + 2/175 x y - 1/200 x z + 1/175 y - 1/250 y z + 1/300 y + 2100 + + 2 169 2 2 107 2 + + 2/245 x y - ----- x - 1/350 y z - 1/245 x z - ---- z - 1/350 y z + 14700 7000 + + 2 3 2 + + 1/100 x y - 1/175 x z + 1/150 z , COEFF(-2, -2, 0) = 1/100 x y + + 2 2 3 17 2 + - 2/245 x z + 2/245 x y + 1/300 + 1/300 y - ---- y + 1/175 z + 5250 + + 2 2 2 3 + - 1/100 x - 1/175 y - 1/300 x - 2/175 x y - 1/175 y z + 1/150 x , + + 2 3 2 2 + COEFF(-1, -2, 0) = 1/245 x z - 2/75 - 2/75 x - 1/350 y + 1/50 x + + 3 187 2 2 2 + + 1/600 y + ---- y + 1/175 x y - 1/50 x y - 1/350 y z - 1/245 x y + 7000 + + 2 + + 1/350 z + 4/75 x, + + 2 3 2 + COEFF(0, -2, 0) = - 2/245 x y - 1/10 x + 2/175 x y + 1/25 x + 2/245 x z , + + 2 3 2 + COEFF(1, -2, 0) = 4/75 x + 1/245 x z + 2/75 - 1/600 y - 1/50 x + + 3 2 2 2 2 + + 1/175 x y - 2/75 x + 1/350 y + 1/350 y z - 1/245 x y - 1/350 z + + 2 187 2 17 + + 1/50 x y - ---- y, COEFF(2, -2, 0) = - 2/245 x z + ---- y - 2/175 x y + 7000 5250 + + 2 2 2 3 2 2 + - 1/175 z + 1/175 y z + 1/100 x - 1/300 y + 1/175 y + 2/245 x y + + 3 2 2 + + 1/150 x - 1/300 - 1/300 x - 1/100 x y, COEFF(-2, -1, 0) = 1/175 z + + 2 2 2 29 3 + - 1/100 x + 1/200 x y - 1/245 x y - ---- + 1/150 x - 1/175 x y + 2100 + + 2 2 187 311 2 3 + - 2/245 x z + 1/350 y + ---- y + ----- x - 1/350 y z - 1/150 y , + 7000 14700 + + 2 2 2 289 37 + COEFF(-1, -1, 0) = 1/700 y + 1/350 z - 1/700 y z + ----- y - ---- + 10500 1050 + + 3 151 3 2 2 + - 2/75 x + ---- x - 1/300 y + 1/350 x y + 1/490 x y - 1/100 x y + 3675 + + 2 2 + + 1/50 x + 1/245 x z , + + 2 3 61 2 + COEFF(0, -1, 0) = 1/175 x y + 1/245 x y + 1/25 x - --- x + 2/245 x z , + 490 + + 3 37 2 2 + COEFF(1, -1, 0) = 1/300 y + ---- + 1/100 x y - 1/700 y + 1/350 x y + 1050 + + 2 2 2 3 151 289 + + 1/490 x y + 1/700 y z - 1/350 z - 2/75 x + ---- x - ----- y + 3675 10500 + + 2 2 29 311 3 + + 1/245 x z - 1/50 x , COEFF(2, -1, 0) = ---- + ----- x + 1/150 y + 2100 14700 + + 3 187 2 2 2 + + 1/150 x - ---- y + 1/100 x - 2/245 x z - 1/175 x y - 1/175 z + 7000 + + 2 2 2 2 + + 1/350 y z - 1/245 x y - 1/350 y - 1/200 x y, COEFF(-2, 0, 0) = + + 3 2 41 2 2 431 2 + 1/150 x - 1/100 x - ---- - 2/245 x y + 1/175 z + ----- x + 1/175 y + 2100 14700 + + 2 2 2 2 + - 2/245 x z , COEFF(-1, 0, 0) = 1/50 x - 4/105 + 1/245 x z + 1/245 x y + + 2 136 3 2 + + 1/350 z + ---- x - 2/75 x + 1/350 y , + 3675 + + 3 2 2 13 + COEFF(0, 0, 0) = 1/25 x + 2/245 x y + 2/245 x z - -- x, COEFF(1, 0, 0) + 98 + + 2 136 2 2 3 + = - 1/350 z + ---- x + 4/105 + 1/245 x z + 1/245 x y - 2/75 x + 3675 + + 2 2 2 2 3 + - 1/350 y - 1/50 x , COEFF(2, 0, 0) = - 2/245 x y - 1/175 z + 1/150 x + + 41 2 2 2 431 + + ---- - 2/245 x z - 1/175 y + 1/100 x + ----- x, COEFF(-2, 1, 0) = + 2100 14700 + + 2 2 29 2 187 2 3 + 1/175 z - 1/245 x y - ---- + 1/350 y z - ---- y - 1/100 x + 1/150 y + 2100 7000 + + 2 311 2 2 3 + - 1/200 x y + 1/175 x y + ----- x - 2/245 x z + 1/350 y + 1/150 x , + 14700 + + 2 151 2 3 + COEFF(-1, 1, 0) = 1/350 z + ---- x + 1/50 x + 1/300 y - 1/350 x y + 3675 + + 289 37 3 2 2 2 + - ----- y - ---- - 2/75 x + 1/490 x y + 1/700 y + 1/700 y z + 10500 1050 + + 2 2 + + 1/245 x z + 1/100 x y, + + 2 2 61 3 + COEFF(0, 1, 0) = 1/245 x y + 2/245 x z - 1/175 x y - --- x + 1/25 x , + 490 + + 2 2 2 2 + COEFF(1, 1, 0) = 1/490 x y - 1/700 y z - 1/700 y - 1/350 z - 1/350 x y + + 2 37 151 3 2 2 3 + - 1/50 x + ---- + ---- x - 2/75 x - 1/100 x y + 1/245 x z - 1/300 y + 1050 3675 + + 289 2 2 311 29 + + ----- y, COEFF(2, 1, 0) = 1/100 x - 1/350 y + ----- x + ---- + 10500 14700 2100 + + 3 3 187 2 2 + - 1/150 y + 1/175 x y + 1/150 x + ---- y - 2/245 x z - 1/350 y z + 7000 + + 2 2 2 2 + + 1/200 x y - 1/245 x y - 1/175 z , COEFF(-2, 2, 0) = 2/245 x y + + 3 2 17 2 + + 1/150 x - 2/245 x z + ---- y + 2/175 x y + 1/175 z - 1/300 x + 1/300 + 5250 + + 2 2 2 3 2 + + 1/175 y z - 1/175 y - 1/100 x y - 1/300 y - 1/100 x , + + 2 2 2 3 + COEFF(-1, 2, 0) = - 1/245 x y + 1/50 x + 1/50 x y - 1/600 y - 1/175 x y + + 3 2 187 2 2 + - 2/75 + 4/75 x - 2/75 x + 1/245 x z - ---- y + 1/350 y z + 1/350 z + 7000 + + 2 + - 1/350 y , + + 3 2 2 + COEFF(0, 2, 0) = 1/25 x - 2/245 x y - 1/10 x + 2/245 x z - 2/175 x y, + + 2 2 3 + COEFF(1, 2, 0) = - 1/350 z + 2/75 + 4/75 x + 1/245 x z - 2/75 x + + 2 2 2 2 3 + - 1/175 x y - 1/350 y z - 1/245 x y + 1/350 y - 1/50 x + 1/600 y + + 187 2 3 2 + + ---- y - 1/50 x y, COEFF(2, 2, 0) = 1/150 x - 1/300 + 1/100 x y + 7000 + + 2 2 2 2 3 + - 2/245 x z + 2/245 x y - 1/300 x - 1/175 z - 1/175 y z + 1/300 y + + 2 17 2 3 + + 2/175 x y + 1/175 y - ---- y + 1/100 x , COEFF(-2, -2, 1) = 1/150 x + 5250 + + 2 2 2 + - 1/175 y + 1/250 y z - 1/350 y z + 1/350 z - 2/175 x y + 1/175 x z + + 3 3 2 2 169 + + 1/150 z + 1/300 y - 1/175 x y z - 1/200 x z + 1/100 x y - ----- x + 14700 + + 2 107 47 2 2 2 19 + - 1/100 x - ---- z - ---- y - 1/245 x z + 2/245 x y - 1/350 y z + ---- + 7000 5250 2100 + + 2 167 211 2 2 + , COEFF(-1, -2, 1) = 1/100 x z + ---- y + ---- x - 1/700 y z + 1/50 x + 7000 3675 + + 2 2 3 3 + - 1/42 - 1/50 x y - 1/700 y z + 1/350 x y z - 2/75 x + 1/300 z + + 2 229 2 + + 1/700 z - ----- z + 1/175 x y - 1/350 y + 1/500 y z - 1/350 x z + 10500 + + 2 3 2 2 + - 1/245 x y + 1/600 y + 1/490 x z , COEFF(0, -2, 1) = 1/245 x z + + 2 3 + + 2/175 x y - 2/245 x y - 9/98 x - 1/175 x z + 1/175 x y z + 1/25 x , + + 3 211 + COEFF(1, -2, 1) = - 1/600 y + 1/350 x y z + ---- x - 1/500 y z - 1/350 x z + 3675 + + 2 2 3 2 2 2 + - 1/700 z + 1/700 y z - 2/75 x - 1/50 x + 1/490 x z + 1/42 + 1/350 y + + 3 167 229 2 2 2 + - 1/300 z - ---- y + ----- z - 1/245 x y - 1/100 x z + 1/50 x y + 7000 10500 + + 2 3 2 + + 1/700 y z + 1/175 x y, COEFF(2, -2, 1) = - 1/300 y + 1/200 x z + + 3 2 2 2 + - 1/150 z - 1/100 x y - 2/175 x y - 1/250 y z + 2/245 x y + 1/100 x + + 169 2 2 19 2 + - ----- x - 1/245 x z + 1/175 x z + 1/175 y - ---- + 1/350 y z + 14700 2100 + + 2 47 107 3 2 + - 1/175 x y z - 1/350 z + ---- y + ---- z + 1/150 x + 1/350 y z , + 5250 7000 + + 191 2 2 + COEFF(-2, -1, 1) = - 1/350 x y z + ----- x + 1/350 z + 1/700 y z + 14700 + + 2 2 167 2 3 + - 1/700 y z + 1/200 x y - ---- z - 1/200 x z + 1/150 z + 1/175 x z + 7000 + + 2 3 2 17 2 + - 1/245 x y + 1/150 x - 1/175 x y - 1/245 x z - ---- + 1/350 y + 2100 + + 3 2 167 3 + - 1/150 y - 1/100 x + ---- y + 1/500 y z, COEFF(-1, -1, 1) = - 1/300 y + 7000 + + 3 137 2 2 + - 2/75 x + ---- y + 1/1000 y z + 1/700 z - 1/350 x z + 1/700 y + 5250 + + 2 3 2 2 2 17 + + 1/50 x + 1/300 z + 1/490 x y + 1/490 x z - 1/100 x y - --- + 525 + + 2 2 166 137 2 + + 1/1400 y z + 1/350 x y + 1/100 x z + ---- x - ---- z - 1/1400 y z + 3675 5250 + + + 1/700 x y z, COEFF(0, -1, 1) = 1/175 x y + 1/350 x y z - 1/175 x z + + 57 2 3 2 2 + - --- x + 1/245 x y + 1/25 x + 1/245 x z , COEFF(1, -1, 1) = 1/1400 y z + 490 + + 3 3 2 2 2 + + 1/350 x y - 1/300 z - 2/75 x + 1/100 x y + 1/490 x y - 1/100 x z + + 137 166 2 17 2 + + ---- z + ---- x + 1/700 x y z - 1/700 z - 1/350 x z + --- + 1/490 x z + 5250 3675 525 + + 2 137 2 3 2 + - 1/1400 y z - ---- y - 1/700 y + 1/300 y - 1/50 x - 1/1000 y z, + 5250 + + 3 2 2 2 + COEFF(2, -1, 1) = 1/150 y + 1/700 y z - 1/700 y z + 1/100 x + + 2 17 2 2 2 + + 1/200 x z + ---- - 1/200 x y - 1/350 y - 1/350 x y z - 1/245 x y + 2100 + + 3 167 3 2 2 + - 1/150 z + ---- z + 1/150 x + 1/175 x z - 1/245 x z - 1/350 z + 7000 + + 191 167 2 + - 1/500 y z + ----- x - 1/175 x y - ---- y, COEFF(-2, 0, 1) = - 1/245 x z + 14700 7000 + + 2 2 2 311 2 3 + + 1/175 y - 2/245 x y - 1/100 x + ----- x - 1/200 x z + 1/150 x + 14700 + + 2 3 187 2 29 + + 1/175 x z + 1/350 z + 1/150 z - ---- z + 1/350 y z - ----, + 7000 2100 + + 3 37 2 3 2 + COEFF(-1, 0, 1) = 1/300 z - ---- + 1/490 x z - 2/75 x + 1/50 x + 1050 + + 289 2 2 2 2 + - ----- z + 1/350 y - 1/350 x z + 1/100 x z + 1/700 z + 1/245 x y + 10500 + + 151 2 + + ---- x + 1/700 y z, + 3675 + + 3 2 61 2 + COEFF(0, 0, 1) = 1/25 x - 1/175 x z + 1/245 x z - --- x + 2/245 x y , + 490 + + 2 2 151 2 3 + COEFF(1, 0, 1) = 1/245 x y - 1/50 x + ---- x - 1/700 z - 2/75 x + 3675 + + 3 2 289 37 2 2 + - 1/300 z - 1/700 y z + ----- z + ---- + 1/490 x z - 1/100 x z + 10500 1050 + + 2 2 3 3 + - 1/350 x z - 1/350 y , COEFF(2, 0, 1) = 1/100 x + 1/150 x - 1/150 z + + 2 2 2 2 311 + + 1/200 x z - 1/350 y z - 1/175 y - 2/245 x y + ----- x + 1/175 x z + 14700 + + 2 2 29 187 + - 1/350 z - 1/245 x z + ---- + ---- z, COEFF(-2, 1, 1) = - 1/500 y z + 2100 7000 + + 2 2 2 + + 1/350 x y z - 1/200 x z - 1/200 x y + 1/700 y z + 1/175 x z + + 2 2 17 167 2 + - 1/245 x z + 1/175 x y + 1/350 y - ---- - ---- z - 1/245 x y + 2100 7000 + + 2 3 2 3 3 191 + - 1/100 x + 1/150 z + 1/350 z + 1/150 x + 1/150 y + ----- x + 14700 + + 2 167 2 + + 1/700 y z - ---- y, COEFF(-1, 1, 1) = 1/700 y - 1/350 x z - 1/1000 y z + 7000 + + 137 3 2 2 3 2 + - ---- y + 1/300 z + 1/100 x y + 1/1400 y z + 1/300 y + 1/490 x z + 5250 + + 137 2 166 2 3 17 + - ---- z + 1/1400 y z + ---- x + 1/490 x y - 2/75 x - 1/700 x y z - --- + 5250 3675 525 + + 2 2 2 2 + + 1/100 x z + 1/50 x + 1/700 z - 1/350 x y, COEFF(0, 1, 1) = 1/245 x y + + 3 57 2 + - 1/175 x z + 1/25 x - --- x + 1/245 x z - 1/175 x y - 1/350 x y z, + 490 + + 137 3 2 + COEFF(1, 1, 1) = ---- z + 1/1000 y z - 1/350 x y - 1/300 z - 1/100 x y + 5250 + + 17 2 2 166 2 3 137 + + --- + 1/490 x z + 1/490 x y + ---- x - 1/700 y - 1/300 y + ---- y + 525 3675 5250 + + 2 2 2 2 + - 1/700 z - 1/50 x - 1/700 x y z - 1/1400 y z - 1/1400 y z + + 2 3 2 + - 1/100 x z - 1/350 x z - 2/75 x , COEFF(2, 1, 1) = 1/200 x y + + 2 2 191 2 + + 1/175 x z - 1/245 x z + 1/200 x z + ----- x - 1/245 x y + 1/500 y z + 14700 + + 167 2 2 2 + + 1/350 x y z + ---- z - 1/350 z + 1/175 x y + 1/100 x - 1/350 y + 7000 + + 3 3 3 17 2 167 2 + - 1/150 y - 1/150 z + 1/150 x + ---- - 1/700 y z + ---- y - 1/700 y z + 2100 7000 + + 2 2 3 + , COEFF(-2, 2, 1) = - 1/200 x z - 1/250 y z - 1/350 y z - 1/300 y + + 2 19 2 + - 1/175 y + 1/175 x z + ---- + 2/245 x y + 1/175 x y z + 2/175 x y + 2100 + + 169 2 2 2 47 3 + - ----- x - 1/245 x z + 1/350 z - 1/100 x + ---- y + 1/150 x + 14700 5250 + + 2 2 107 3 211 + + 1/350 y z - 1/100 x y - ---- z + 1/150 z , COEFF(-1, 2, 1) = ---- x + 7000 3675 + + 2 3 2 2 2 + - 1/175 x y + 1/100 x z - 2/75 x + 1/50 x + 1/490 x z - 1/350 y + + 3 2 229 2 + + 1/300 z + 1/700 z - 1/350 x z - ----- z - 1/42 - 1/245 x y + 10500 + + 3 2 167 2 + - 1/350 x y z - 1/600 y - 1/700 y z - 1/500 y z - ---- y + 1/700 y z + 7000 + + 2 2 + + 1/50 x y, COEFF(0, 2, 1) = - 9/98 x - 1/175 x y z + 1/245 x z + + 3 2 + - 1/175 x z + 1/25 x - 2/175 x y - 2/245 x y , COEFF(1, 2, 1) = + + 2 3 2 167 2 + - 1/100 x z - 2/75 x + 1/700 y z - 1/175 x y + ---- y - 1/700 z + 7000 + + 2 2 3 2 2 + - 1/50 x - 1/50 x y - 1/350 x z - 1/300 z + 1/490 x z - 1/700 y z + + 2 2 211 + - 1/245 x y + 1/350 y - 1/350 x y z + 1/500 y z + 1/42 + ---- x + 3675 + + 229 3 2 47 + + ----- z + 1/600 y , COEFF(2, 2, 1) = 1/100 x y - ---- y + 1/175 x z + 10500 5250 + + 2 3 2 2 + + 1/175 x y z + 1/175 y + 1/150 x + 2/175 x y + 1/100 x + 2/245 x y + + 3 2 19 169 3 2 + - 1/150 z - 1/350 z - ---- - ----- x + 1/300 y - 1/245 x z + 2100 14700 + + 2 2 107 2 + - 1/350 y z + 1/200 x z + ---- z + 1/250 y z + 1/350 y z, + 7000 + + 137 2 529 3 + COEFF(-2, -2, 2) = - ---- y + 1/100 x y - 2/175 x y - ----- x + 1/150 x + 5250 14700 + + 2 2 137 + - 1/100 x + 2/175 x z - 2/175 x y z + 2/245 x y + ---- z + 1/125 y z + 5250 + + 2 2 2 3 3 11 + - 1/175 y - 1/175 y z + 2/245 x z - 1/300 z + 1/300 y + --- + 420 + + 2 2 2 2 + - 1/100 x z - 1/175 z + 1/175 y z , COEFF(-1, -2, 2) = - 1/350 z + + 2 2 3 3 + - 1/350 y z - 1/245 x y + 1/175 x y z - 2/75 x + 1/175 x y - 1/600 z + + 2 107 2 107 + + 1/50 x z + 1/250 y z + ---- y - 1/50 x y - ---- z - 1/175 x z + 7000 7000 + + 2 2 256 2 2 3 + - 1/245 x z - 8/525 - 1/350 y + ---- x + 1/50 x + 1/350 y z + 1/600 y + 3675 + + 33 + , COEFF(0, -2, 2) = 2/175 x y z - 2/175 x z - --- x + 2/175 x y + 490 + + 2 3 2 + - 2/245 x z + 1/25 x - 2/245 x y , COEFF(1, -2, 2) = 1/175 x y + + 2 3 256 2 2 2 + + 1/350 y - 1/600 y + ---- x - 1/50 x z - 1/350 y z + 1/50 x y + 3675 + + 2 2 3 2 3 + - 1/245 x y - 1/250 y z + 1/350 z + 1/600 z - 1/50 x - 2/75 x + + 2 107 107 + + 1/175 x y z - 1/245 x z + ---- z - 1/175 x z + 8/525 - ---- y + 7000 7000 + + 2 2 529 2 + + 1/350 y z, COEFF(2, -2, 2) = 2/245 x z - ----- x + 1/175 z + 14700 + + 2 3 3 137 + - 1/175 y z - 2/175 x y z + 1/300 z - 1/300 y - 2/175 x y - ---- z + 5250 + + 2 137 2 2 + + 1/175 y - 1/125 y z + 2/175 x z + ---- y + 1/100 x z - 1/100 x y + 5250 + + 11 2 3 2 2 + - --- + 1/100 x + 1/150 x + 2/245 x y + 1/175 y z, COEFF(-2, -1, 2) = + 420 + + 2 3 2 2 + 1/350 y z - 1/175 x y z - 1/150 y + 2/175 x z - 1/100 x + 1/350 y + + 3 2 169 2 2 + - 1/300 z + 1/350 y z - 1/175 x y - ----- x - 1/175 z + 2/245 x z + 14700 + + 2 19 3 2 2 107 + - 1/100 x z + ---- + 1/150 x + 1/200 x y - 1/245 x y + ---- y + 2100 7000 + + 47 2 + + 1/250 y z + ---- z, COEFF(-1, -1, 2) = - 1/175 x z + 1/700 y z + 5250 + + 2 3 2 167 + + 1/50 x z - 1/300 y - 1/100 x y + 1/350 x y z - 1/42 - ---- z + 7000 + + 229 3 2 2 2 + + 1/350 x y + ----- y - 1/600 z + 1/700 y - 1/350 z + 1/490 x y + 10500 + + 2 2 3 2 211 + + 1/50 x - 1/245 x z - 2/75 x + 1/700 y z + 1/500 y z + ---- x, + 3675 + + 3 2 + COEFF(0, -1, 2) = - 9/98 x - 2/175 x z + 1/25 x + 1/175 x y z - 2/245 x z + + 2 211 2 2 + + 1/175 x y + 1/245 x y , COEFF(1, -1, 2) = ---- x + 1/350 z - 1/700 y + 3675 + + 167 3 2 + + 1/350 x y z + ---- z + 1/600 z + 1/42 - 1/50 x - 1/175 x z + 7000 + + 2 2 2 229 3 + + 1/490 x y - 1/50 x z + 1/350 x y - 1/700 y z - ----- y - 2/75 x + 10500 + + 2 2 3 2 + - 1/500 y z - 1/700 y z - 1/245 x z + 1/300 y + 1/100 x y, + + 3 2 2 2 169 + COEFF(2, -1, 2) = 1/150 x - 1/350 y z - 1/200 x y + 1/100 x - ----- x + 14700 + + 3 2 47 107 2 + + 1/150 y + 1/175 z - ---- z + 2/175 x z - 1/175 x y - ---- y - 1/350 y + 5250 7000 + + 2 19 2 2 + - 1/175 x y z + 1/100 x z - ---- - 1/250 y z - 1/350 y z + 2/245 x z + 2100 + + 2 3 2 2 + - 1/245 x y + 1/300 z , COEFF(-2, 0, 2) = 1/300 - 1/175 z + 1/175 y z + + 2 2 2 17 + - 1/300 x - 2/245 x y - 1/100 x + 1/175 y + 2/175 x z + ---- z + 5250 + + 2 3 3 2 + - 1/100 x z - 1/300 z + 1/150 x + 2/245 x z , COEFF(-1, 0, 2) = + + 2 2 187 2 3 + - 1/245 x z + 1/50 x - ---- z - 1/350 z + 4/75 x - 1/175 x z - 2/75 x + 7000 + + 2 3 2 2 2 + + 1/245 x y - 1/600 z - 2/75 + 1/350 y z + 1/50 x z + 1/350 y , + + 2 2 3 + COEFF(0, 0, 2) = 2/245 x y - 2/245 x z - 1/10 x - 2/175 x z + 1/25 x , + + 187 2 2 + COEFF(1, 0, 2) = 4/75 x + ---- z - 1/175 x z - 1/350 y + 1/245 x y + 7000 + + 2 2 2 3 2 + - 1/350 y z + 2/75 - 1/245 x z - 1/50 x z + 1/600 z - 1/50 x + + 3 2 2 17 + - 2/75 x + 1/350 z , COEFF(2, 0, 2) = - 1/300 x + 2/245 x z - ---- z + 5250 + + 3 2 2 2 2 2 + + 1/300 z - 2/245 x y + 1/100 x z - 1/175 y z + 1/175 z + 1/100 x + + 3 2 + - 1/300 + 1/150 x + 2/175 x z - 1/175 y , COEFF(-2, 1, 2) = - 1/250 y z + + 2 2 3 3 2 + + 1/350 y z + 2/245 x z + 1/150 y + 1/175 x y z + 1/150 x - 1/100 x z + + 2 169 3 2 2 + + 1/350 y - ----- x - 1/300 z - 1/350 y z + 1/175 x y - 1/200 x y + 14700 + + 2 2 47 19 2 107 + - 1/100 x - 1/245 x y + ---- z + ---- + 2/175 x z - 1/175 z - ---- y, + 5250 2100 7000 + + 211 2 2 229 + COEFF(-1, 1, 2) = - 1/175 x z + ---- x + 1/50 x z + 1/100 x y - ----- y + 3675 10500 + + 167 2 3 2 3 + - ---- z - 1/500 y z + 1/50 x + 1/300 y + 1/490 x y - 1/600 z + 7000 + + 2 3 2 2 + - 1/350 x y + 1/700 y - 2/75 x - 1/350 x y z - 1/350 z + 1/700 y z + + 2 2 2 + - 1/42 - 1/245 x z - 1/700 y z , COEFF(0, 1, 2) = - 2/245 x z + + 2 3 + - 1/175 x y z + 1/245 x y - 1/175 x y - 9/98 x + 1/25 x - 2/175 x z, + + 3 2 2 3 + COEFF(1, 1, 2) = - 1/300 y + 1/42 + 1/350 z - 1/245 x z + 1/600 z + + 211 2 167 3 2 2 + + ---- x - 1/50 x z + ---- z - 2/75 x - 1/50 x + 1/700 y z + 1/500 y z + 3675 7000 + + 229 2 2 2 + - 1/350 x y + ----- y - 1/100 x y - 1/175 x z + 1/490 x y - 1/700 y z + 10500 + + 2 19 3 2 + - 1/700 y - 1/350 x y z, COEFF(2, 1, 2) = - ---- + 1/300 z + 1/100 x z + 2100 + + 3 2 2 3 2 + + 1/150 x - 1/245 x y + 2/175 x z + 1/200 x y - 1/150 y - 1/350 y z + + 169 107 2 2 + + 1/250 y z - ----- x + ---- y + 1/175 z + 2/245 x z + 1/175 x y + 14700 7000 + + 2 2 47 2 + + 1/175 x y z + 1/100 x - 1/350 y - ---- z + 1/350 y z , COEFF(-2, 2, 2) + 5250 + + 11 2 2 2 2 + = --- - 1/100 x y - 1/175 y z + 2/175 x y z - 1/175 y - 1/175 z + 420 + + 2 2 3 3 3 529 + - 1/100 x z - 1/175 y z + 1/150 x - 1/300 z - 1/300 y - ----- x + 14700 + + 2 137 2 2 137 + + 2/175 x y + 2/245 x y + ---- z - 1/100 x + 2/245 x z + ---- y + 5250 5250 + + 3 3 + + 2/175 x z - 1/125 y z, COEFF(-1, 2, 2) = - 2/75 x - 8/525 - 1/600 y + + 2 2 256 2 2 + + 1/50 x y - 1/350 y z - 1/175 x y z + ---- x - 1/350 y + 1/50 x z + 3675 + + 2 3 2 107 2 + - 1/250 y z + 1/50 x - 1/600 z - 1/350 y z - ---- z - 1/245 x y + 7000 + + 107 2 2 + - 1/175 x z - 1/175 x y - ---- y - 1/245 x z - 1/350 z , COEFF(0, 2, 2) + 7000 + + 3 33 2 + = 1/25 x - --- x - 2/175 x y z - 2/175 x z - 2/245 x z - 2/175 x y + 490 + + 2 2 3 + - 2/245 x y , COEFF(1, 2, 2) = - 1/50 x y + 8/525 - 1/175 x z + 1/600 z + + 2 3 2 3 256 + + 1/350 y - 1/175 x y z - 2/75 x - 1/50 x z + 1/600 y + ---- x + 3675 + + 107 2 2 2 107 + + ---- y - 1/50 x + 1/350 y z + 1/250 y z - 1/245 x z + ---- z + 7000 7000 + + 2 2 2 + + 1/350 y z + 1/350 z - 1/175 x y - 1/245 x y , COEFF(2, 2, 2) = + + 2 3 11 2 2 + 1/175 z + 1/300 z + 2/175 x z - --- + 2/175 x y z + 1/175 y z + 1/100 x + 420 + + 2 2 2 2 529 + + 1/175 y z + 2/245 x y + 1/100 x z + 1/100 x y + 1/125 y z - ----- x + 14700 + + 2 137 137 3 3 + + 1/175 y - ---- y - ---- z + 1/150 x + 1/300 y + 2/175 x y + 5250 5250 + + 2 + + 2/245 x z ] + +> print_coeff__lc_of_data(%, "coeff_dx_", "fp", +> "3d.coeffs/3d.cube.order4.smooth0/coeff-dx.compute.c"); +bytes used=1303680372, alloc=15136044, time=163.95 +bytes used=1304680536, alloc=15136044, time=164.03 +bytes used=1305681184, alloc=15136044, time=164.12 +bytes used=1306681764, alloc=15136044, time=164.20 +bytes used=1307681920, alloc=15136044, time=164.29 +bytes used=1308682084, alloc=15136044, time=164.38 +bytes used=1309682272, alloc=15136044, time=164.46 +bytes used=1310682560, alloc=15136044, time=164.71 +bytes used=1311682916, alloc=15136044, time=165.49 +bytes used=1312683440, alloc=15136044, time=166.28 +bytes used=1313683612, alloc=15136044, time=167.06 +bytes used=1314683920, alloc=15136044, time=167.84 +bytes used=1315684260, alloc=15136044, time=168.59 +bytes used=1316684444, alloc=15136044, time=168.75 +bytes used=1317684596, alloc=15136044, time=168.84 +bytes used=1318684800, alloc=15136044, time=168.94 +bytes used=1319685028, alloc=15136044, time=169.03 +bytes used=1320685256, alloc=15136044, time=169.13 +bytes used=1321707328, alloc=15136044, time=169.22 +bytes used=1322812716, alloc=15136044, time=169.29 +bytes used=1323896636, alloc=15136044, time=169.37 +bytes used=1324933564, alloc=15136044, time=169.44 +bytes used=1325942092, alloc=15136044, time=169.51 +bytes used=1327040872, alloc=15136044, time=169.58 +bytes used=1328082548, alloc=15136044, time=169.66 +bytes used=1329168004, alloc=15136044, time=169.73 +bytes used=1330229592, alloc=15136044, time=169.82 +bytes used=1331294972, alloc=15136044, time=169.90 +bytes used=1332317988, alloc=15136044, time=169.99 +bytes used=1333386468, alloc=15136044, time=170.08 +bytes used=1334404600, alloc=15136044, time=170.17 +bytes used=1335430928, alloc=15136044, time=170.26 +bytes used=1336455140, alloc=15136044, time=170.36 +bytes used=1337480256, alloc=15136044, time=170.47 +bytes used=1338480460, alloc=15136044, time=170.57 +bytes used=1339480664, alloc=15136044, time=170.70 +bytes used=1340480844, alloc=15136044, time=172.41 +bytes used=1341481076, alloc=15136044, time=172.72 +bytes used=1342498972, alloc=15136044, time=172.82 +bytes used=1343499612, alloc=15136044, time=172.90 +bytes used=1344499940, alloc=15136044, time=172.99 +bytes used=1345500144, alloc=15136044, time=173.08 +bytes used=1346501208, alloc=15136044, time=173.16 +bytes used=1347501448, alloc=15136044, time=173.24 +bytes used=1348503576, alloc=15136044, time=173.33 +bytes used=1349503956, alloc=15136044, time=173.40 +bytes used=1350504244, alloc=15136044, time=173.48 +bytes used=1351504660, alloc=15136044, time=173.56 +bytes used=1352504996, alloc=15136044, time=173.64 +bytes used=1353505680, alloc=15136044, time=173.72 +bytes used=1354506424, alloc=15136044, time=173.81 +bytes used=1355508656, alloc=15136044, time=173.90 +bytes used=1356508916, alloc=15136044, time=173.99 +bytes used=1357509324, alloc=15136044, time=174.10 +bytes used=1358513068, alloc=15136044, time=174.18 +bytes used=1359513200, alloc=15136044, time=174.27 +bytes used=1360513352, alloc=15136044, time=174.35 +bytes used=1361513648, alloc=15136044, time=174.46 +bytes used=1362513848, alloc=15136044, time=174.59 +bytes used=1363517880, alloc=15136044, time=174.72 +bytes used=1364518004, alloc=15136044, time=174.87 +bytes used=1365519032, alloc=15136044, time=175.00 +bytes used=1366536080, alloc=15136044, time=175.13 +bytes used=1367546280, alloc=15136044, time=175.26 +bytes used=1368546396, alloc=15136044, time=175.39 +bytes used=1369546524, alloc=15136044, time=175.55 +bytes used=1370567748, alloc=15136044, time=175.69 +bytes used=1371569276, alloc=15136044, time=175.81 +bytes used=1372569392, alloc=15136044, time=175.95 +bytes used=1373575408, alloc=15136044, time=176.08 +bytes used=1374575556, alloc=15136044, time=176.23 +bytes used=1375584756, alloc=15136044, time=176.38 +bytes used=1376584948, alloc=15136044, time=176.50 +bytes used=1377585064, alloc=15136044, time=176.63 +bytes used=1378599648, alloc=15136044, time=176.74 +bytes used=1379621768, alloc=15136044, time=176.86 +bytes used=1380621964, alloc=15136044, time=176.98 +bytes used=1381622184, alloc=15136044, time=177.09 +bytes used=1382631952, alloc=15136044, time=177.20 +bytes used=1383632308, alloc=15136044, time=177.30 +bytes used=1384632800, alloc=15136044, time=177.38 +bytes used=1385643816, alloc=15136044, time=179.40 +bytes used=1386644052, alloc=15136044, time=179.73 +bytes used=1387644172, alloc=15136044, time=180.24 +bytes used=1388644332, alloc=15136044, time=180.34 +bytes used=1389644504, alloc=15136044, time=180.42 +bytes used=1390645032, alloc=15136044, time=180.50 +bytes used=1391645356, alloc=15136044, time=180.58 +bytes used=1392645752, alloc=15136044, time=180.64 +bytes used=1393646040, alloc=15136044, time=180.72 +bytes used=1394646344, alloc=15136044, time=180.80 +bytes used=1395648312, alloc=15136044, time=180.87 +bytes used=1396648516, alloc=15136044, time=180.95 +bytes used=1397648748, alloc=15136044, time=181.02 +bytes used=1398649080, alloc=15136044, time=181.10 +bytes used=1399649380, alloc=15136044, time=181.18 +bytes used=1400649696, alloc=15136044, time=181.25 +bytes used=1401650280, alloc=15136044, time=181.33 +bytes used=1402650552, alloc=15136044, time=181.41 +bytes used=1403650972, alloc=15136044, time=181.48 +bytes used=1404651204, alloc=15136044, time=181.56 +bytes used=1405651448, alloc=15136044, time=181.69 +bytes used=1406651644, alloc=15136044, time=181.85 +bytes used=1407653440, alloc=15136044, time=181.97 +bytes used=1408673788, alloc=15136044, time=182.10 +bytes used=1409689096, alloc=15136044, time=182.24 +bytes used=1410690636, alloc=15136044, time=182.37 +bytes used=1411714744, alloc=15136044, time=182.57 +bytes used=1412719180, alloc=15136044, time=182.72 +bytes used=1413720628, alloc=15136044, time=182.85 +bytes used=1414722220, alloc=15136044, time=182.98 +bytes used=1415723844, alloc=15136044, time=183.13 +bytes used=1416745520, alloc=15136044, time=183.27 +bytes used=1417745716, alloc=15136044, time=183.42 +bytes used=1418746016, alloc=15136044, time=183.54 +bytes used=1419746432, alloc=15136044, time=183.62 +bytes used=1420746616, alloc=15136044, time=185.69 +bytes used=1421760744, alloc=15136044, time=186.32 +bytes used=1422760908, alloc=15136044, time=187.15 +bytes used=1423761076, alloc=15136044, time=187.40 +bytes used=1424761228, alloc=15136044, time=187.50 +bytes used=1425761580, alloc=15136044, time=187.58 +bytes used=1426761796, alloc=15136044, time=187.66 +bytes used=1427762136, alloc=15136044, time=187.73 +bytes used=1428762300, alloc=15136044, time=187.81 +bytes used=1429762488, alloc=15136044, time=187.89 +bytes used=1430762900, alloc=15136044, time=187.97 +bytes used=1431763156, alloc=15136044, time=188.05 +bytes used=1432763372, alloc=15136044, time=188.13 +bytes used=1433763580, alloc=15136044, time=188.21 +bytes used=1434763732, alloc=15136044, time=188.29 +bytes used=1435763948, alloc=15136044, time=188.37 +bytes used=1436764124, alloc=15136044, time=188.45 +bytes used=1437764624, alloc=15136044, time=188.53 +bytes used=1438764904, alloc=15136044, time=188.61 +bytes used=1439765112, alloc=15136044, time=188.69 +bytes used=1440767436, alloc=15136044, time=188.76 +bytes used=1441767636, alloc=15136044, time=189.07 +bytes used=1442767804, alloc=15136044, time=189.41 +bytes used=1443769020, alloc=15136044, time=189.56 +bytes used=1444769292, alloc=15136044, time=190.95 +bytes used=1445769504, alloc=15136044, time=192.73 +bytes used=1446769660, alloc=15136044, time=193.12 +bytes used=1447769832, alloc=15136044, time=193.20 +bytes used=1448770072, alloc=15136044, time=193.29 +bytes used=1449770336, alloc=15136044, time=193.36 +bytes used=1450770540, alloc=15136044, time=193.44 +bytes used=1451770868, alloc=15136044, time=193.52 +bytes used=1452771136, alloc=15136044, time=193.60 +bytes used=1453771588, alloc=15136044, time=193.68 +bytes used=1454772028, alloc=15136044, time=193.76 +bytes used=1455772488, alloc=15136044, time=193.84 +bytes used=1456772648, alloc=15136044, time=193.92 +bytes used=1457772948, alloc=15136044, time=194.00 +bytes used=1458773112, alloc=15136044, time=194.07 +bytes used=1459773328, alloc=15136044, time=194.15 +bytes used=1460773668, alloc=15136044, time=194.23 +bytes used=1461774084, alloc=15136044, time=194.31 +bytes used=1462774300, alloc=15136044, time=194.39 +bytes used=1463774568, alloc=15136044, time=194.62 +bytes used=1464775452, alloc=15136044, time=195.02 +bytes used=1465775700, alloc=15136044, time=195.18 +bytes used=1466775940, alloc=15136044, time=197.45 +bytes used=1467776164, alloc=15136044, time=198.56 +bytes used=1468777036, alloc=15136044, time=198.81 +bytes used=1469777604, alloc=15136044, time=198.97 +bytes used=1470778212, alloc=15136044, time=199.02 +bytes used=1471778476, alloc=15136044, time=199.16 +bytes used=1472778644, alloc=15136044, time=199.29 +> +# d/dy +> simplify( diff(interp_3d_cube_order4_smooth0,y) ); +bytes used=1473778924, alloc=15136044, time=199.41 +bytes used=1474779084, alloc=15136044, time=199.49 +bytes used=1475779268, alloc=15136044, time=199.57 +bytes used=1476779656, alloc=15136044, time=199.65 +bytes used=1477779812, alloc=15136044, time=199.73 +bytes used=1478779972, alloc=15136044, time=199.81 +bytes used=1479780148, alloc=15136044, time=199.89 +bytes used=1480780308, alloc=15136044, time=199.97 +bytes used=1481780584, alloc=15136044, time=200.06 +bytes used=1482866432, alloc=15136044, time=200.15 +bytes used=1483866912, alloc=15136044, time=200.21 +bytes used=1484867068, alloc=15136044, time=200.30 +bytes used=1485867228, alloc=15136044, time=200.38 +bytes used=1486867400, alloc=15136044, time=200.46 +bytes used=1487867556, alloc=15136044, time=200.54 +bytes used=1488867688, alloc=15136044, time=200.63 +bytes used=1489868848, alloc=15136044, time=200.72 +bytes used=1490869000, alloc=15136044, time=200.80 +bytes used=1491869116, alloc=15136044, time=200.90 +bytes used=1492869260, alloc=15136044, time=200.99 +bytes used=1493869552, alloc=15136044, time=201.08 +bytes used=1494869784, alloc=15136044, time=201.18 +bytes used=1495869912, alloc=15136044, time=201.28 +bytes used=1496870144, alloc=15136044, time=201.37 +bytes used=1497870532, alloc=15136044, time=201.45 +17 37 17 +--- DATA(-1, 1, -1) + ---- DATA(0, 1, -1) + --- DATA(1, 1, -1) +525 1050 525 + + 37 2 + - ---- DATA(-1, -1, 0) - 1/700 x z DATA(0, -1, -1) - 4/105 DATA(0, -1, 0) + 1050 + + 37 37 151 + - ---- DATA(1, -1, 0) + ---- DATA(-1, 1, 0) + ---- y DATA(0, -1, -1) + 1050 1050 3675 + + 17 311 17 + + --- DATA(-1, 1, 1) + ----- y DATA(0, 2, -1) - --- DATA(1, -1, 1) + 525 14700 525 + + 17 37 + - --- DATA(-1, -1, 1) - ---- DATA(0, -1, 1) - 1/175 x y z DATA(2, 2, -1) + 525 1050 + + 19 + + ---- DATA(-1, -2, 2) + 1/300 DATA(0, -2, 2) + 4/105 DATA(0, 1, 0) + 2100 + + 37 + + ---- DATA(1, 1, 0) + 1/700 x y z DATA(1, 1, -1) + 1050 + + - 1/175 x y z DATA(2, 1, 2) - 1/175 x y z DATA(1, -2, -2) + + - 1/700 x y z DATA(-1, 1, -1) + 2/175 x y z DATA(2, 2, 2) + + + 1/175 x y z DATA(1, 2, 2) - 2/175 x y z DATA(2, -2, -2) + + 151 + + ---- y DATA(0, 1, 1) - 1/175 x y z DATA(-2, -1, -2) + 3675 + + + 1/700 x y z DATA(1, -1, -1) + 1/175 x y z DATA(2, 2, 1) + + + 2/175 x y z DATA(-2, 2, -2) - 1/350 x y z DATA(1, -1, 2) + + - 1/175 x y z DATA(2, -1, 2) + 1/175 x y z DATA(-1, -2, -2) + + + 1/700 x y z DATA(-1, -1, 1) - 1/175 x y z DATA(-1, 2, 2) + + + 1/350 x y z DATA(-1, 1, 2) + 2/175 x y z DATA(-2, -2, -2) + + - 1/700 x y z DATA(1, -1, 1) + 1/700 x y z DATA(-1, 1, 1) + + 136 + - 1/350 x y z DATA(1, -2, -1) + ---- y DATA(0, 1, 0) + 3675 + + + 1/350 x y z DATA(-1, -2, -1) - 1/300 y DATA(0, -2, 2) + + + 1/350 x y z DATA(1, 1, -2) - 1/175 x y z DATA(-2, 1, -2) + + - 1/350 x y z DATA(-1, 1, -2) - 1/175 x y z DATA(-1, -2, 2) + + 19 + + ---- DATA(1, -2, 2) + 1/175 x y z DATA(2, -1, -2) + 2100 + + + 1/350 x y z DATA(-1, -1, 2) + 1/175 x y z DATA(2, 1, -2) + + 61 57 57 + - --- y DATA(-1, 0, 0) - --- y DATA(-1, 0, 1) - --- y DATA(-1, 0, -1) + 490 490 490 + + 61 + - --- y DATA(0, 0, -1) - 1/350 x y z DATA(-2, 1, -1) + 490 + + 431 431 + + 4/75 y DATA(0, -1, 2) + ----- y DATA(0, -2, 0) + ----- y DATA(0, 2, 0) + 14700 14700 + + 2 2 + - 1/100 y DATA(0, -2, 0) + 1/100 y DATA(0, 2, 0) + + 2 33 + - 1/100 y DATA(0, -2, -1) - --- y DATA(2, 0, 2) - 9/98 y DATA(2, 0, -1) + 490 + + 61 33 57 + - --- y DATA(0, 0, 1) - --- y DATA(-2, 0, 2) - --- y DATA(1, 0, -1) + 490 490 490 + + 13 61 + - 9/98 y DATA(2, 0, 1) - -- y DATA(0, 0, 0) - --- y DATA(1, 0, 0) + 98 490 + + 33 + - 9/98 y DATA(-1, 0, 2) - --- y DATA(2, 0, -2) - 1/10 y DATA(0, 0, 2) + 490 + + 2 + - 9/98 y DATA(1, 0, 2) - 1/10 y DATA(2, 0, 0) + 1/100 y DATA(0, 2, -2) + + 57 + - --- y DATA(1, 0, 1) - 1/350 x y z DATA(-2, -1, -1) + 490 + + 3 + - 9/98 y DATA(1, 0, -2) - 9/98 y DATA(-1, 0, -2) - 2/75 y DATA(0, -1, -2) + + 33 3 3 + - --- y DATA(-2, 0, -2) - 2/75 y DATA(0, 1, 2) + 1/150 y DATA(0, 2, 2) + 490 + + - 9/98 y DATA(-2, 0, 1) - 1/10 y DATA(-2, 0, 0) - 9/98 y DATA(-2, 0, -1) + + 3 3 + - 1/10 y DATA(0, 0, -2) - 2/75 y DATA(0, -1, -1) + 1/150 y DATA(0, 2, 1) + + 3 3 + + 1/150 y DATA(0, -2, -2) - 2/75 y DATA(0, 1, 0) + + 3 3 + + 1/150 y DATA(0, -2, 2) + 1/150 y DATA(0, 2, -1) + + 3 3 + + 1/150 y DATA(0, -2, 1) - 2/75 y DATA(0, -1, 1) + + 3 3 3 + - 2/75 y DATA(0, -1, 0) - 2/75 y DATA(0, 1, 1) - 2/75 y DATA(0, 1, -1) + + 3 3 + + 1/150 y DATA(0, 2, -2) + 1/25 y DATA(2, 0, -1) + + 3 3 + + 1/150 y DATA(0, -2, 0) + 1/150 y DATA(0, 2, 0) + + 3 3 + + 1/25 y DATA(-1, 0, 0) + 1/25 y DATA(-1, 0, 1) + + 3 3 3 + + 1/150 y DATA(0, -2, -1) + 1/25 y DATA(1, 0, 2) + 1/25 y DATA(2, 0, 0) + + 3 3 3 + + 1/25 y DATA(2, 0, 2) + 1/25 y DATA(2, 0, 1) + 1/25 y DATA(1, 0, 1) + + 3 + + 1/175 x y z DATA(-2, -2, -1) + 1/25 y DATA(1, 0, 0) + + 3 3 3 + + 1/25 y DATA(-1, 0, 2) + 1/25 y DATA(2, 0, -2) + 1/25 y DATA(0, 0, 2) + + 2 + + 1/700 x z DATA(0, -1, 1) - 8/525 DATA(-2, -1, 2) + + 3 + - 1/350 x y z DATA(-1, -1, -2) + 1/25 y DATA(0, 0, 1) + + 3 3 3 + + 1/25 y DATA(-2, 0, 2) + 1/25 y DATA(1, 0, -1) + 1/25 y DATA(-2, 0, 1) + + 3 3 + + 1/25 y DATA(-2, 0, -2) + 1/25 y DATA(-2, 0, 0) + + 3 3 + + 1/25 y DATA(-2, 0, -1) + 1/25 y DATA(0, 0, -2) + + 3 3 3 + + 1/25 y DATA(-1, 0, -1) + 1/25 y DATA(0, 0, -1) + 1/25 y DATA(0, 0, 0) + + 187 3 + + ---- z DATA(0, -1, -2) + 1/25 y DATA(1, 0, -2) + 7000 + + 3 2 + + 1/25 y DATA(-1, 0, -2) + 1/700 x z DATA(0, 1, -1) + + 187 + - 2/175 x y z DATA(2, 2, -2) - ---- z DATA(0, 1, -2) + 7000 + + 187 187 2 + - ---- z DATA(0, -1, 2) + ---- z DATA(0, 1, 2) - 1/50 y DATA(0, 1, -1) + 7000 7000 + + 2 17 17 + - 1/100 y DATA(0, -2, 1) - ---- z DATA(0, 2, 2) - ---- z DATA(0, -2, -2) + 5250 5250 + + 187 17 187 + - ---- z DATA(0, 2, -1) + ---- z DATA(0, -2, 2) + ---- z DATA(0, 2, 1) + 7000 5250 7000 + + 289 289 + - ----- z DATA(0, 1, -1) - ----- z DATA(0, -1, 1) + 10500 10500 + + 289 289 187 + + ----- z DATA(0, -1, -1) + ----- z DATA(0, 1, 1) - ---- z DATA(0, -2, 1) + 10500 10500 7000 + + 187 + + ---- z DATA(0, -2, -1) - 1/300 y DATA(0, 2, 2) - 1/300 y DATA(0, -2, -2) + 7000 + + 17 311 + + 4/75 y DATA(0, 1, 2) + ---- z DATA(0, 2, -2) + ----- y DATA(0, 2, 1) + 5250 14700 + + 136 + + 1/350 x y z DATA(1, -1, -2) + ---- y DATA(0, -1, 0) + 3675 + + 151 + + ---- y DATA(0, 1, -1) - 1/175 x y z DATA(2, -2, -1) + 3675 + + 151 11 + + ---- y DATA(0, -1, 1) + --- DATA(2, -2, 2) + 1/350 x y z DATA(-2, -1, 1) + 3675 420 + + - 1/175 y z DATA(0, 1, 2) - 1/175 x y z DATA(1, 2, -2) + + - 2/175 y z DATA(0, -2, -2) + 2/175 y z DATA(0, 2, 2) + + 2 2 + - 2/245 x y DATA(2, 0, -1) - 2/245 x y DATA(2, 0, 1) + + 2 2 + + 1/245 x y DATA(1, 0, 1) + 2/245 x y DATA(0, 0, -2) + + 2 2 + - 2/245 x y DATA(-2, 0, -1) - 2/245 x y DATA(-2, 0, 0) + + 2 2 + - 2/245 x y DATA(-2, 0, -2) - 2/245 x y DATA(-2, 0, 1) + + 2 2 + + 1/245 x y DATA(1, 0, -1) - 2/245 x y DATA(-2, 0, 2) + + 2 2 + + 2/245 x y DATA(0, 0, 1) + 1/245 x y DATA(-1, 0, -2) + + 2 2 + + 1/245 x y DATA(1, 0, -2) + 1/245 x y DATA(1, 0, 0) + + 2 2 + + 2/245 x y DATA(0, 0, 0) + 2/245 x y DATA(0, 0, -1) + + 2 2 + + 1/245 x y DATA(-1, 0, -1) + 1/245 x y DATA(-1, 0, 1) + + 2 2 + + 1/245 x y DATA(-1, 0, 0) - 2/245 x y DATA(0, 2, 0) + + 2 2 + - 2/245 x y DATA(0, -2, 0) + 2/245 x y DATA(0, 0, 2) + + 2 2 + - 2/245 x y DATA(2, 0, -2) + 1/245 x y DATA(-1, 0, 2) + + 2 + + 2/175 x y z DATA(2, 0, -2) - 2/245 x y DATA(2, 0, 2) + + 2 2 + - 2/245 x y DATA(2, 0, 0) + 1/245 x y DATA(1, 0, 2) + + 2 2 + + 1/245 x y DATA(0, 1, 1) + 1/245 x y DATA(0, 1, 0) + + 2 2 + + 1/245 x y DATA(0, -1, 1) - 2/245 x y DATA(0, -2, 2) + + 2 2 + + 1/245 x y DATA(0, 1, -1) + 1/245 x y DATA(0, -1, 0) + + 2 2 + - 2/245 x y DATA(0, -2, 1) - 2/245 x y DATA(0, 2, -2) + + 2 2 + - 2/245 x y DATA(0, -2, -1) + 1/245 x y DATA(0, 1, -2) + + 2 2 + + 1/245 x y DATA(0, 1, 2) + 1/245 x y DATA(0, -1, 2) + + 2 2 + - 2/245 x y DATA(0, -2, -2) - 2/245 x y DATA(0, 2, 2) + + 2 + - 1/175 x y z DATA(-1, 0, -2) - 2/245 x y DATA(0, 2, 1) + + 2 + + 1/175 x y z DATA(1, 0, -2) + 1/245 x y DATA(0, -1, -1) + + 2 2 + - 2/245 x y DATA(0, 2, -1) - 1/245 y z DATA(0, -2, -1) + + 2 2 + + 2/245 y z DATA(0, 2, -2) - 2/245 y z DATA(1, 0, 2) + + 2 2 + - 2/245 y z DATA(2, 0, -2) - 2/245 y z DATA(-1, 0, 2) + + 2 2 + + 2/245 y z DATA(1, 0, 0) + 2/245 y z DATA(0, 0, 0) + + 2 2 + + 1/245 y z DATA(0, 0, -1) + 1/245 y z DATA(-1, 0, -1) + + 2 2 + + 1/245 y z DATA(-1, 0, 1) + 2/245 y z DATA(-1, 0, 0) + + 2 2 + - 2/245 y z DATA(0, 2, 0) - 2/245 y z DATA(0, -2, 0) + + 2 2 + - 2/245 y z DATA(0, 0, 2) + 1/245 y z DATA(2, 0, -1) + + 2 2 + + 1/245 y z DATA(1, 0, 1) + 1/245 y z DATA(2, 0, 1) + + 2 2 + - 2/245 y z DATA(2, 0, 2) + 2/245 y z DATA(2, 0, 0) + + 2 2 + + 1/245 y z DATA(-2, 0, -1) - 2/245 y z DATA(-2, 0, -2) + + 2 2 + + 1/245 y z DATA(-2, 0, 1) + 1/245 y z DATA(1, 0, -1) + + 2 2 + - 2/245 y z DATA(-2, 0, 2) + 1/245 y z DATA(0, 0, 1) + + 2 2 + + 2/245 y z DATA(-2, 0, 0) - 2/245 y z DATA(-1, 0, -2) + + 2 2 + - 2/245 y z DATA(1, 0, -2) - 2/245 y z DATA(0, 0, -2) + + 2 2 + - 1/245 y z DATA(0, 2, 1) - 1/245 y z DATA(0, 2, -1) + + 2 2 + + 1/490 y z DATA(0, 1, 1) + 1/490 y z DATA(0, -1, -1) + + 2 2 + + 1/245 y z DATA(0, 1, 0) - 1/50 y DATA(0, 1, 2) + + 2 2 + + 1/100 y DATA(0, 2, 2) - 1/100 y DATA(0, -2, -2) + + 2 2 + + 1/50 y DATA(0, -1, -1) - 1/50 y DATA(0, 1, 1) + + 3 + - 1/600 z DATA(0, 1, -2) + 1/175 x y z DATA(-1, 2, -2) + + 311 + + ----- y DATA(0, -2, 1) - 1/175 x y z DATA(1, 0, 2) + 14700 + + 311 + - 1/300 y DATA(0, 2, -2) + ----- y DATA(0, -2, -1) + 14700 + + 2 2 + + 1/350 x DATA(0, -1, 0) - 1/350 x DATA(0, 1, -1) + + + 2/175 x y z DATA(-2, 0, 2) + 1/350 x y z DATA(1, 0, -1) + + 2 + + 1/175 x DATA(0, -2, 1) - 1/350 x y z DATA(-1, -2, 1) + + + 1/175 x y z DATA(-2, 0, 1) - 1/350 x y z DATA(1, 1, 2) + + 2 2 + - 1/350 x DATA(0, 1, -2) + 1/350 x DATA(0, -1, -2) + + 2 + - 2/175 x y z DATA(-2, 0, -2) - 1/50 y z DATA(0, 1, 2) + + 3 2 + - 1/300 z DATA(0, 2, -2) + 1/350 z DATA(0, 1, -2) + + 3 2 + + 1/300 z DATA(0, -2, -2) - 1/350 z DATA(0, -1, -2) + + 3 2 + - 1/150 z DATA(0, -2, -1) + 1/175 z DATA(0, 2, 2) + + 2 2 + + 1/350 z DATA(0, 1, 2) - 1/350 z DATA(0, -1, 2) + + 2 2 + + 1/200 y z DATA(0, 2, 1) - 1/175 z DATA(0, -2, -2) + + 2 2 + - 1/350 z DATA(0, 2, 1) - 1/350 z DATA(0, 2, -1) + + 2 2 + + 1/700 z DATA(0, -1, -1) + 1/50 y z DATA(0, 1, -2) + + 2 2 + - 1/350 z DATA(0, 1, 0) - 1/175 z DATA(0, -2, 2) + + 2 2 + - 1/700 z DATA(0, 1, 1) + 1/700 z DATA(0, -1, 1) + + 2 2 + + 1/350 z DATA(0, -2, 1) + 1/350 z DATA(0, -1, 0) + + 2 2 + - 1/700 z DATA(0, 1, -1) + 1/175 z DATA(0, 2, -2) + + 2 2 + + 1/350 z DATA(0, -2, -1) + 1/175 z DATA(0, -2, 0) + + 2 3 + - 1/175 z DATA(0, 2, 0) - 1/600 z DATA(0, -1, 2) + + 3 3 + - 2/75 y DATA(0, 1, -2) - 2/75 y DATA(0, -1, 2) + 4/75 y DATA(0, -1, -2) + + 3 3 + + 1/600 z DATA(0, -1, -2) + 1/300 z DATA(0, 2, 2) + + 3 2 + + 1/600 z DATA(0, 1, 2) - 1/200 y z DATA(0, 2, -1) + + 3 3 + - 1/300 z DATA(0, -1, -1) + 1/150 z DATA(0, 2, -1) + + 3 3 + - 1/150 z DATA(0, 2, 1) + 1/300 z DATA(0, 1, -1) + + 3 3 + - 1/300 z DATA(0, -2, 2) + 1/300 z DATA(0, -1, 1) + + 3 3 + - 1/300 z DATA(0, 1, 1) + 1/150 z DATA(0, -2, 1) + + + 1/350 x y z DATA(1, -2, 1) + 1/350 x y z DATA(-1, 0, 1) + + 2 2 + + 1/100 y DATA(0, 2, 1) + 4/75 y DATA(0, 1, -2) + 1/50 y DATA(0, -1, 0) + + + 1/175 x y z DATA(1, -2, 2) + 2/175 x y DATA(-2, 0, -2) + + 2 + + 2/175 x y DATA(-2, 0, 1) + 1/100 y z DATA(0, 2, 2) + + 2 + + 1/100 y z DATA(0, -2, -2) - 1/175 x y DATA(1, 0, 2) + + - 2/175 x y DATA(2, 0, -2) + 1/175 x y DATA(-1, 0, -2) + + - 1/175 x y DATA(1, 0, -2) + 2/175 x y DATA(-2, 0, -1) + + + 2/175 x y DATA(-2, 0, 0) - 1/175 x y DATA(1, 0, 1) + + - 2/175 x y DATA(2, 0, 1) - 2/175 x y DATA(2, 0, 2) + + - 2/175 x y DATA(2, 0, 0) - 1/175 x y DATA(1, 0, -1) + + + 2/175 x y DATA(-2, 0, 2) - 2/175 x y DATA(2, 0, -1) + + + 1/175 x y DATA(-1, 0, 2) - 1/175 x y DATA(1, 0, 0) + + + 1/175 x y DATA(-1, 0, -1) + 1/175 x y DATA(-1, 0, 1) + + 2 + + 1/175 x y DATA(-1, 0, 0) + 1/50 y z DATA(0, -1, 2) + + 2 + - 1/350 x y z DATA(-1, 0, -1) + 1/50 y DATA(0, -1, -2) + + + 2/175 y z DATA(1, 0, -2) + 2/175 y z DATA(0, 0, -2) + + + 2/175 y z DATA(-1, 0, -2) + 1/175 x y z DATA(2, -2, 1) + + - 2/175 y z DATA(0, 0, 2) + 2/175 y z DATA(2, 0, -2) + + - 2/175 y z DATA(-1, 0, 2) + 1/175 y z DATA(0, 0, -1) + + + 1/175 y z DATA(-1, 0, -1) - 1/175 y z DATA(-1, 0, 1) + + - 1/175 y z DATA(0, -2, -1) - 1/175 y z DATA(0, 0, 1) + + + 1/175 y z DATA(2, 0, -1) - 1/175 y z DATA(1, 0, 1) + + - 1/175 y z DATA(2, 0, 1) - 2/175 y z DATA(2, 0, 2) + + 2 + - 2/175 y z DATA(1, 0, 2) + 1/50 y DATA(0, -1, 1) + + 2 + + 1/100 y DATA(0, 2, -1) + 1/175 y z DATA(-2, 0, -1) + + + 2/175 y z DATA(-2, 0, -2) - 1/175 y z DATA(-2, 0, 1) + + + 1/175 y z DATA(1, 0, -1) - 2/175 y z DATA(-2, 0, 2) + + 2 + + 1/175 y z DATA(0, -2, 1) - 1/50 y DATA(0, 1, 0) + + 2 + - 1/100 y DATA(0, -2, 2) + 2/175 y z DATA(0, -2, 2) + + - 2/175 y z DATA(0, 2, -2) - 1/350 y z DATA(0, -1, 1) + + + 1/350 y z DATA(0, 1, -1) + 1/175 x y z DATA(-1, 0, 2) + + + 1/175 y z DATA(0, 2, 1) - 1/350 y z DATA(0, 1, 1) + + + 1/350 y z DATA(0, -1, -1) - 1/175 y z DATA(0, 2, -1) + + + 1/175 y z DATA(0, 1, -2) - 1/175 x y z DATA(-2, 0, -1) + + 2 2 + + 1/350 x z DATA(0, -1, 2) - 1/350 x z DATA(0, 1, 2) + + 2 + - 1/175 x z DATA(0, 2, 2) + 1/175 y z DATA(0, -1, -2) + + 2 2 + - 1/50 y DATA(0, 1, -2) - 1/175 x z DATA(0, -2, -2) + + 2 2 + + 1/245 x y DATA(0, -1, -2) - 1/350 x z DATA(0, 2, 1) + + 2 + - 1/175 x y z DATA(-2, 2, 1) - 1/245 y z DATA(0, -1, -2) + + 2 2 + + 1/350 x DATA(0, -1, 1) + 1/50 y DATA(0, -1, 2) + + 2 2 + - 1/50 y z DATA(0, -1, -2) - 1/245 y z DATA(0, 1, -2) + + 2 2 + + 1/175 x DATA(0, -2, -1) - 1/175 x DATA(0, 2, -2) + + - 2/175 x y z DATA(2, 0, 2) - 1/175 x y z DATA(2, 0, 1) + + 2 2 + + 1/350 x DATA(0, -1, 2) - 1/175 x DATA(0, 2, 0) + + 2 2 + + 1/175 x DATA(0, -2, 0) - 1/175 x DATA(0, 2, 2) + + 2 2 + + 1/175 x DATA(0, -2, -2) - 1/350 x DATA(0, 1, 2) + + 2 2 + + 1/350 x DATA(0, -1, -1) - 1/175 x DATA(0, 2, -1) + + 2 2 + - 1/175 x DATA(0, 2, 1) - 1/350 x DATA(0, 1, 1) + + 2 2 + + 1/175 x DATA(0, -2, 2) - 1/350 x DATA(0, 1, 0) + + - 1/350 x y z DATA(1, 0, 1) + 1/175 x y z DATA(2, 0, -1) + + - 1/175 x y z DATA(-2, -2, 1) + 1/175 x y z DATA(-2, 2, -1) + + - 1/175 y z DATA(0, -1, 2) + 1/350 x y z DATA(-2, 1, 1) + + + 1/175 x y z DATA(-2, -1, 2) - 2/175 x y z DATA(-2, -2, 2) + + 37 + + 2/175 x y z DATA(2, -2, 2) + 8/525 DATA(-2, 1, 2) + ---- DATA(0, 1, 1) + 1050 + + 17 11 + + --- DATA(1, 1, 1) - --- DATA(-2, 2, 2) - 1/700 x y z DATA(-1, -1, -1) + 525 420 + + - 1/700 x y z DATA(1, 1, 1) + 1/175 x y z DATA(-2, 1, 2) + + 2 2 + - 1/245 y z DATA(-2, 1, -2) - 1/245 y z DATA(2, -1, -2) + + 2 + - 1/245 y z DATA(1, -1, -2) - 1/175 y z DATA(2, -2, -1) + + - 1/175 y z DATA(1, -2, -1) - 1/175 y z DATA(-1, -2, -1) + + - 1/175 y z DATA(-2, -2, -1) - 2/175 y z DATA(2, 2, -2) + + - 2/175 y z DATA(1, 2, -2) - 2/175 y z DATA(-1, 2, -2) + + - 1/350 x y z DATA(2, -1, 1) + 1/350 y z DATA(-2, 1, -1) + + + 1/350 y z DATA(-2, -1, -1) + 1/350 x y z DATA(1, 2, 1) + + - 1/350 x y z DATA(-1, 2, 1) - 1/175 y z DATA(-2, 2, -1) + + + 1/175 y z DATA(-2, -2, 1) - 1/350 x y z DATA(2, 1, 1) + + - 1/350 x y z DATA(1, 2, -1) + 1/350 x y z DATA(-1, 2, -1) + + 2 + - 2/175 x y z DATA(-2, 2, 2) - 1/245 y z DATA(1, 2, 1) + + 2 2 + + 1/490 y z DATA(2, -1, 1) + 1/490 y z DATA(1, -1, -1) + + 2 2 + - 1/245 y z DATA(2, 2, -1) + 2/245 y z DATA(1, 2, 2) + + 2 2 + - 1/245 y z DATA(-2, -1, -2) + 2/245 y z DATA(2, 2, 2) + + 2 2 + + 2/245 y z DATA(2, -2, -2) + 1/490 y z DATA(-1, 1, -1) + + 2 2 + + 2/245 y z DATA(1, -2, -2) - 1/245 y z DATA(2, 1, 2) + + 2 2 + + 2/245 y z DATA(-1, 2, 2) + 2/245 y z DATA(-1, -2, -2) + + 2 2 + - 1/245 y z DATA(-1, 1, 2) + 2/245 y z DATA(-2, -2, -2) + + 2 2 + - 1/245 y z DATA(1, -1, 2) - 1/245 y z DATA(2, -1, 2) + + 2 2 + - 1/245 y z DATA(-1, -1, 2) - 1/245 y z DATA(2, 2, 1) + + 2 2 + + 2/245 y z DATA(-2, 2, -2) - 1/245 y z DATA(2, 1, -2) + + 2 2 + - 1/245 y z DATA(1, 1, -2) - 1/245 y z DATA(-1, 1, -2) + + 2 2 + + 1/245 y z DATA(-1, 1, 0) + 1/490 y z DATA(-1, 1, 1) + + 2 2 + + 1/490 y z DATA(1, -1, 1) + 1/490 y z DATA(-1, -1, 1) + + 2 17 + + 2/245 y z DATA(-1, -2, 2) - --- DATA(-1, -1, -1) + 525 + + 2 2 + + 1/245 y z DATA(1, 1, 0) + 2/245 y z DATA(1, -2, 2) + + 2 2 + - 1/245 y z DATA(-2, -1, 2) + 2/245 y z DATA(2, -2, 2) + + 2 2 + - 1/245 y z DATA(-2, 1, 2) + 1/490 y z DATA(1, 1, 1) + + 2 2 + + 2/245 y z DATA(-2, 2, 2) + 1/490 y z DATA(-1, -1, -1) + + 2 2 + - 1/245 y z DATA(1, 2, -1) + 1/490 y z DATA(2, 1, -1) + + 2 2 + - 1/245 y z DATA(-1, 2, -1) + 1/490 y z DATA(2, -1, -1) + + 2 2 + + 1/490 y z DATA(2, 1, 1) - 1/245 y z DATA(-1, 2, 1) + + 2 37 + + 1/50 y z DATA(2, -1, 2) - ---- DATA(0, -1, -1) + 1050 + + 2 2 + + 1/50 y z DATA(-1, -1, 2) + 1/200 y z DATA(2, 2, 1) + + 2 2 + - 1/100 y z DATA(-2, 2, -2) + 1/50 y z DATA(2, 1, -2) + + 2 2 + + 1/50 y z DATA(1, 1, -2) + 1/50 y z DATA(-1, 1, -2) + + 17 2 + + ---- DATA(1, 2, -1) + 1/50 y z DATA(-2, 1, -2) + 2100 + + 2 17 + - 1/50 y z DATA(2, -1, -2) + 1/42 DATA(2, 1, -1) + ---- DATA(-1, 2, -1) + 2100 + + 29 2 + + ---- DATA(0, 2, -1) - 1/50 y z DATA(1, -1, -2) + 2100 + + 2 2 + - 1/50 y z DATA(-1, -1, -2) + 1/200 y z DATA(2, -2, -1) + + 2 2 + + 1/200 y z DATA(1, -2, -1) + 1/200 y z DATA(-1, -2, -1) + + 2 + + 1/200 y z DATA(-2, -2, -1) + 1/175 y z DATA(2, -2, 1) + + - 1/350 y z DATA(-2, -1, 1) - 1/350 y z DATA(-2, 1, 1) + + - 1/42 DATA(2, -1, -1) + 1/175 y z DATA(-2, 2, 1) + + 2 + + 2/175 y z DATA(-2, -2, 2) + 1/245 y z DATA(-1, -1, 0) + + 2 2 + + 1/245 y z DATA(1, -1, 0) - 1/200 y z DATA(1, 2, -1) + + 17 2 + + 1/42 DATA(2, 1, 1) + ---- DATA(-1, 2, 1) + 1/100 y z DATA(2, 1, -1) + 2100 + + 29 17 2 + + ---- DATA(0, 2, 1) + ---- DATA(1, 2, 1) - 1/200 y z DATA(-1, 2, -1) + 2100 2100 + + 2 2 + - 1/100 y z DATA(2, -1, -1) - 1/100 y z DATA(2, 1, 1) + + 2 + + 1/200 y z DATA(-1, 2, 1) + 1/175 y z DATA(-1, -1, -2) + + 2 17 + - 1/42 DATA(2, -1, 1) + 1/200 y z DATA(1, 2, 1) - --- DATA(1, -1, -1) + 525 + + 2 2 + + 1/100 y z DATA(2, -1, 1) + 1/350 x z DATA(0, 2, -1) + + 2 29 + - 1/100 y z DATA(1, -1, -1) + ---- DATA(1, 2, 0) - 1/300 DATA(2, 2, 0) + 2100 + + 2 2 + - 1/200 y z DATA(2, 2, -1) + 1/100 y z DATA(1, 2, 2) + + 2 2 + - 1/50 y z DATA(-2, -1, -2) + 1/100 y z DATA(2, 2, 2) + + 2 29 + + 2/75 DATA(2, 1, 0) + 1/100 y z DATA(2, -2, -2) + ---- DATA(-1, 2, 0) + 2100 + + 2 41 + + 1/100 y z DATA(-1, 1, -1) + ---- DATA(0, 2, 0) + 2100 + + 2 2 + + 1/100 y z DATA(1, -2, -2) - 1/50 y z DATA(2, 1, 2) + + 2 2 + + 1/100 y z DATA(-1, 2, 2) + 1/100 y z DATA(-1, -2, -2) + + 2 + - 1/50 y z DATA(-1, 1, 2) - 2/75 DATA(2, -1, 0) + + 2 19 + + 1/100 y z DATA(-2, -2, -2) - ---- DATA(2, 2, -1) + 2100 + + 2 2 + + 1/50 y z DATA(1, -1, 2) - 1/245 y z DATA(-2, 2, 1) + + 2 2 + + 2/245 y z DATA(-2, -2, 2) - 2/245 y z DATA(1, 2, 0) + + 19 11 + - ---- DATA(1, 2, 2) - 8/525 DATA(-2, -1, -2) - --- DATA(2, 2, 2) + 2100 420 + + 2 2 + - 2/245 y z DATA(2, 2, 0) + 1/245 y z DATA(2, 1, 0) + + 2 2 + - 2/245 y z DATA(-1, 2, 0) + 1/245 y z DATA(2, -1, 0) + + 2 2 + - 2/245 y z DATA(-1, -2, 0) - 2/245 y z DATA(-2, -2, 0) + + 11 2 19 + + --- DATA(2, -2, -2) + 1/245 y z DATA(-2, -1, 0) + ---- DATA(1, -2, -2) + 420 2100 + + 2 + + 1/42 DATA(1, 1, 2) + 8/525 DATA(2, 1, 2) - 2/245 y z DATA(2, -2, 0) + + 19 + - ---- DATA(-1, 2, 2) - 1/300 DATA(0, 2, 2) + 1/300 DATA(0, -2, -2) + 2100 + + 2 19 + - 2/245 y z DATA(1, -2, 0) + ---- DATA(-1, -2, -2) + 1/42 DATA(-1, 1, 2) + 2100 + + 2 11 + + 1/245 y z DATA(-2, 1, 0) + 2/75 DATA(0, 1, 2) + --- DATA(-2, -2, -2) + 420 + + 2 2 + - 2/245 y z DATA(-2, 2, 0) - 1/100 y z DATA(-1, 1, 1) + + 2 2 + + 1/100 y z DATA(1, -1, 1) + 1/100 y z DATA(-1, -1, 1) + + 2 + - 1/100 y z DATA(-1, -2, 2) - 1/42 DATA(1, -1, 2) - 8/525 DATA(2, -1, 2) + + 2 2 + - 1/700 x z DATA(0, 1, 1) - 1/100 y z DATA(1, -2, 2) + + 2 2 + + 1/50 y z DATA(-2, -1, 2) - 1/100 y z DATA(2, -2, 2) + + 2 2 + - 1/50 y z DATA(-2, 1, 2) - 1/100 y z DATA(1, 1, 1) + + 2 2 + + 1/350 x z DATA(0, 1, -2) + 1/175 x z DATA(0, -2, 2) + + 19 + - 1/42 DATA(-1, -1, 2) - 2/75 DATA(0, -1, 2) - ---- DATA(2, 2, 1) + 2100 + + 2 2 + + 1/100 y z DATA(-2, 2, 2) - 1/100 y z DATA(-1, -1, -1) + + - 1/250 x z DATA(-2, -1, -2) + 1/125 x z DATA(2, 2, 2) + + 11 + - --- DATA(-2, 2, -2) + 1/125 x z DATA(2, -2, -2) + 420 + + + 1/1000 x z DATA(-1, 1, -1) + 8/525 DATA(2, 1, -2) + + 2 + - 1/175 y z DATA(-1, 2, -1) - 1/245 y z DATA(-1, -1, -2) + + 2 + + 1/42 DATA(1, 1, -2) - 1/245 y z DATA(2, -2, -1) + 2/75 DATA(0, 1, -2) + + 2 + + 1/42 DATA(-1, 1, -2) - 1/245 y z DATA(1, -2, -1) + + 2 2 + - 1/245 y z DATA(-1, -2, -1) - 1/245 y z DATA(-2, -2, -1) + + 2 2 + - 1/350 x z DATA(0, -1, -2) + 2/245 y z DATA(2, 2, -2) + + 2 2 + + 2/245 y z DATA(1, 2, -2) + 2/245 y z DATA(-1, 2, -2) + + 2 2 + + 1/490 y z DATA(-2, 1, -1) + 1/490 y z DATA(-2, -1, -1) + + 2 + + 8/525 DATA(-2, 1, -2) - 1/245 y z DATA(-2, 2, -1) + + 2 2 + - 1/245 y z DATA(-2, -2, 1) - 1/245 y z DATA(-1, -2, 1) + + 2 + - 1/245 y z DATA(1, -2, 1) - 8/525 DATA(2, -1, -2) + + 2 2 + - 1/245 y z DATA(1, 1, 2) - 1/245 y z DATA(2, -2, 1) + + 2 + + 1/490 y z DATA(-2, -1, 1) - 1/42 DATA(1, -1, -2) + + 2 + + 1/490 y z DATA(-2, 1, 1) - 2/75 DATA(0, -1, -2) - 1/42 DATA(-1, -1, -2) + + - 1/1000 x z DATA(1, 1, -1) - 1/1000 x z DATA(-1, 1, 1) + + 19 + + ---- DATA(2, -2, -1) - 1/1000 x z DATA(1, -1, 1) + 2100 + + + 1/1000 x z DATA(-1, -1, 1) + 1/250 x z DATA(-1, -2, 2) + + 17 + - 1/250 x z DATA(1, -2, 2) - ---- DATA(1, -2, -1) + 2100 + + + 1/250 x z DATA(-2, -1, 2) - 1/125 x z DATA(2, -2, 2) + + - 1/250 x z DATA(-2, 1, 2) + 1/1000 x z DATA(1, 1, 1) + + 29 + - 1/125 x z DATA(-2, 2, 2) - ---- DATA(0, -2, -1) + 2100 + + 17 + - 1/1000 x z DATA(-1, -1, -1) - ---- DATA(-1, -2, -1) + 2100 + + - 1/500 x z DATA(1, 2, -1) - 1/500 x z DATA(2, 1, -1) + + 19 + + ---- DATA(-2, -2, -1) + 1/500 x z DATA(-1, 2, -1) + 2100 + + 11 + + 1/500 x z DATA(2, -1, -1) + 1/500 x z DATA(2, 1, 1) - --- DATA(2, 2, -2) + 420 + + - 1/500 x z DATA(-1, 2, 1) + 1/500 x z DATA(1, 2, 1) + + 19 + - 1/500 x z DATA(2, -1, 1) - ---- DATA(1, 2, -2) + 2100 + + + 1/1000 x z DATA(1, -1, -1) - 1/250 x z DATA(2, 2, -1) + + 19 + - 1/300 DATA(0, 2, -2) + 1/250 x z DATA(1, 2, 2) - ---- DATA(-1, 2, -2) + 2100 + + 2 + + 1/200 y z DATA(-2, 2, 1) + 1/42 DATA(-2, 1, -1) + + 2 2 + - 1/100 y z DATA(-2, -2, 2) + 1/175 x z DATA(0, 2, -2) + + 2 + - 1/350 x z DATA(0, -2, -1) - 1/42 DATA(-2, -1, -1) + + 2 2 + - 1/100 y z DATA(2, 2, -2) - 1/100 y z DATA(1, 2, -2) + + 2 2 + - 1/245 y z DATA(0, 1, 2) - 1/100 y z DATA(-1, 2, -2) + + 19 2 + - ---- DATA(-2, 2, -1) + 2/245 y z DATA(0, 2, 2) + 2100 + + 2 2 + + 2/245 y z DATA(0, -2, -2) + 1/100 y z DATA(-2, 1, -1) + + 2 2 + - 1/100 y z DATA(-2, -1, -1) - 1/200 y z DATA(-2, 2, -1) + + 2 2 + + 1/350 x z DATA(0, -2, 1) - 1/200 y z DATA(-2, -2, 1) + + 2 2 + - 1/200 y z DATA(-1, -2, 1) - 1/200 y z DATA(1, -2, 1) + + 2 2 + - 1/50 y z DATA(1, 1, 2) - 1/200 y z DATA(2, -2, 1) + + 2 2 + + 1/100 y z DATA(-2, -1, 1) - 1/100 y z DATA(-2, 1, 1) + + 41 29 + - ---- DATA(0, -2, 0) - ---- DATA(-1, -2, 0) + 1/300 DATA(-2, -2, 0) + 2100 2100 + + 2 2 + - 1/100 y z DATA(0, 2, -2) + 1/200 y z DATA(0, -2, -1) + + 2 + - 1/245 y z DATA(0, -1, 2) - 2/75 DATA(-2, -1, 0) + 1/300 DATA(2, -2, 0) + + 29 + - ---- DATA(1, -2, 0) + 1/250 x z DATA(-2, -2, 1) + 2100 + + + 1/500 x z DATA(-1, -2, 1) - 1/500 x z DATA(1, -2, 1) + + 2 + + 1/500 x z DATA(1, 1, 2) + 1/100 y z DATA(0, 1, -1) + + + 2/75 DATA(-2, 1, 0) - 1/250 x z DATA(2, -2, 1) + + + 1/500 x z DATA(-2, -1, 1) - 1/500 x z DATA(-2, 1, 1) + + - 1/250 x z DATA(-2, 2, 1) + 1/125 x z DATA(-2, -2, 2) + + 2 + - 1/200 y z DATA(0, -2, 1) - 1/250 x z DATA(-2, -2, -1) + + 2 + - 1/100 y z DATA(0, -2, 2) - 1/125 x z DATA(2, 2, -2) + + 2 + + 1/100 y z DATA(0, -1, 1) - 1/250 x z DATA(1, 2, -2) + + + 1/250 x z DATA(-1, 2, -2) - 1/300 DATA(-2, 2, 0) + + + 1/500 x z DATA(-2, 1, -1) - 1/500 x z DATA(-2, -1, -1) + + + 1/250 x z DATA(-2, 2, -1) + 1/500 x z DATA(1, -1, -2) + + 19 + + ---- DATA(-2, -2, 1) - 1/500 x z DATA(-1, -1, -2) + 2100 + + 2 + - 1/100 y z DATA(0, 1, 1) + 1/250 x z DATA(2, -2, -1) + + + 1/500 x z DATA(1, -2, -1) - 1/500 x z DATA(-1, -2, -1) + + + 1/250 x z DATA(2, 2, 1) + 1/125 x z DATA(-2, 2, -2) + + 17 + - 1/250 x z DATA(2, 1, -2) - ---- DATA(-1, -2, 1) + 2100 + + - 1/500 x z DATA(1, 1, -2) + 1/500 x z DATA(-1, 1, -2) + + + 1/250 x z DATA(-2, 1, -2) + 1/250 x z DATA(2, -1, -2) + + 17 + - ---- DATA(1, -2, 1) - 1/500 x z DATA(-1, 1, 2) + 2100 + + - 1/125 x z DATA(-2, -2, -2) - 1/500 x z DATA(1, -1, 2) + + 29 + - ---- DATA(0, -2, 1) - 1/250 x z DATA(2, -1, 2) + 2100 + + 2 + - 1/100 y z DATA(0, -1, -1) + 1/500 x z DATA(-1, -1, 2) + + - 1/175 x y DATA(-1, -2, 1) + 1/175 x y DATA(1, -2, 1) + + 19 + + ---- DATA(2, -2, 1) - 1/350 x y DATA(1, 1, 2) + 2/175 x y DATA(2, -2, 1) + 2100 + + + 1/250 x z DATA(1, -2, -2) + 1/250 x z DATA(2, 1, 2) + + - 1/250 x z DATA(-1, 2, 2) - 1/250 x z DATA(-1, -2, -2) + + 2 2 + - 1/100 x y DATA(-2, 2, -2) + 1/100 x y DATA(2, 2, 1) + + 2 2 + - 1/100 x y DATA(-1, -1, 2) + 1/50 x y DATA(2, -1, 2) + + 2 2 + + 1/100 x y DATA(1, -1, 2) + 1/100 x y DATA(-2, -2, -2) + + 2 2 + + 1/100 x y DATA(-1, 1, 2) + 1/200 x y DATA(-1, -2, -2) + + 2 2 + - 1/200 x y DATA(-1, 2, 2) - 1/50 x y DATA(2, 1, 2) + + 2 2 + - 1/200 x y DATA(1, -2, -2) + 1/100 x y DATA(-1, 1, -1) + + 2 2 + - 1/100 x y DATA(2, -2, -2) + 1/100 x y DATA(2, 2, 2) + + 2 2 + - 1/50 x y DATA(-2, -1, -2) + 1/200 x y DATA(1, 2, 2) + + 2 2 + + 1/100 x y DATA(2, 2, -1) + 1/100 x y DATA(1, -1, -1) + + 2 2 + + 1/50 x y DATA(2, -1, 1) + 1/200 x y DATA(1, 2, 1) + + 2 2 + - 1/50 x y DATA(-2, -1, 0) + 1/100 x y DATA(-2, -2, 0) + + 2 2 + + 1/200 x y DATA(-1, -2, 0) + 1/50 x y DATA(2, -1, 0) + + 2 2 + - 1/200 x y DATA(-1, 2, 0) - 1/50 x y DATA(2, 1, 0) + + 2 2 + + 1/100 x y DATA(2, 2, 0) + 1/200 x y DATA(1, 2, 0) + + 2 + + 1/350 x y z DATA(2, -1, -1) + 1/100 x y DATA(1, -1, 0) + + 2 2 + - 1/100 x y DATA(-1, -1, 0) + 2/245 x y DATA(-2, 2, 0) + + 2 2 + - 1/245 x y DATA(-2, 1, 0) - 1/245 x y DATA(1, -2, 0) + + 2 2 + + 2/245 x y DATA(2, -2, 0) - 1/245 x y DATA(-2, -1, 0) + + 2 2 + + 2/245 x y DATA(-2, -2, 0) - 1/245 x y DATA(-1, -2, 0) + + 2 2 + - 1/245 x y DATA(2, -1, 0) - 1/245 x y DATA(-1, 2, 0) + + 2 + - 1/245 x y DATA(2, 1, 0) - 1/175 y z DATA(-1, -1, 2) + + 2 2 + + 1/200 x y DATA(-1, -2, 1) + 1/100 x y DATA(-2, -2, 1) + + 2 2 + - 1/100 x y DATA(-2, 2, -1) - 1/50 x y DATA(-2, -1, -1) + + 2 2 + + 1/50 x y DATA(-2, 1, -1) - 1/200 x y DATA(-1, 2, -2) + + 2 2 + + 1/200 x y DATA(1, 2, -2) + 1/100 x y DATA(2, 2, -2) + + 2 2 + + 1/100 x y DATA(-2, -2, -1) + 1/200 x y DATA(-1, -2, -1) + + 2 2 + - 1/200 x y DATA(1, -2, -1) - 1/100 x y DATA(2, -2, -1) + + 2 2 + - 1/100 x y DATA(-1, -1, -2) + 1/100 x y DATA(1, -1, -2) + + 2 2 + + 1/50 x y DATA(2, -1, -2) + 1/50 x y DATA(-2, 1, -2) + + 2 + + 1/175 y z DATA(2, 2, 1) + 1/100 x y DATA(-1, 1, -2) + + 2 2 + - 1/100 x y DATA(1, 1, -2) - 1/50 x y DATA(2, 1, -2) + + 2 + + 1/175 x y DATA(-2, -1, -1) + 1/490 x y DATA(-1, 1, -1) + + 2 2 + + 2/245 x y DATA(2, -2, -2) + 2/245 x y DATA(2, 2, 2) + + 2 2 + - 1/245 x y DATA(-2, -1, -2) - 1/245 x y DATA(1, 2, 2) + + 2 2 + + 2/245 x y DATA(2, 2, -1) - 1/200 x y DATA(-1, 2, 1) + + 2 2 + - 1/50 x y DATA(2, 1, 1) + 1/50 x y DATA(2, -1, -1) + + 2 2 + - 1/200 x y DATA(-1, 2, -1) - 1/50 x y DATA(2, 1, -1) + + 2 2 + + 1/200 x y DATA(1, 2, -1) - 1/100 x y DATA(-1, -1, -1) + + 2 2 + - 1/100 x y DATA(-2, 2, 2) - 1/100 x y DATA(1, 1, 1) + + 2 2 + + 1/50 x y DATA(-2, 1, 2) - 1/100 x y DATA(2, -2, 2) + + 2 2 + - 1/50 x y DATA(-2, -1, 2) - 1/200 x y DATA(1, -2, 2) + + 2 + - 1/100 x y DATA(1, 1, 0) - 2/175 y z DATA(-2, 2, -2) + + 2 + + 1/200 x y DATA(-1, -2, 2) + 1/175 y z DATA(1, -1, -2) + + 2 2 + - 1/100 x y DATA(-1, -1, 1) + 1/100 x y DATA(1, -1, 1) + + 2 2 + + 1/100 x y DATA(-1, 1, 1) + 1/100 x y DATA(-1, 1, 0) + + 2 + + 1/350 x y z DATA(2, 1, -1) - 1/245 x y DATA(-2, 1, -1) + + 2 2 + - 1/245 x y DATA(-1, 2, -2) - 1/245 x y DATA(1, 2, -2) + + 2 2 + + 2/245 x y DATA(2, 2, -2) + 2/245 x y DATA(-2, -2, -1) + + 2 2 + - 1/245 x y DATA(-1, -2, -1) - 1/245 x y DATA(1, -2, -1) + + 2 2 + + 2/245 x y DATA(2, -2, -1) + 1/490 x y DATA(-1, -1, -2) + + 2 2 + + 1/490 x y DATA(1, -1, -2) - 1/245 x y DATA(2, -1, -2) + + 2 2 + - 1/245 x y DATA(-2, 1, -2) + 1/490 x y DATA(-1, 1, -2) + + 2 2 + + 1/490 x y DATA(1, 1, -2) - 1/245 x y DATA(2, 1, -2) + + 2 2 + + 2/245 x y DATA(-2, 2, -2) + 2/245 x y DATA(2, 2, 1) + + 2 2 + + 1/490 x y DATA(-1, -1, 2) - 1/245 x y DATA(2, -1, 2) + + 2 2 + + 1/490 x y DATA(1, -1, 2) + 2/245 x y DATA(-2, -2, -2) + + 2 2 + + 1/490 x y DATA(-1, 1, 2) - 1/245 x y DATA(-1, -2, -2) + + 2 2 + - 1/245 x y DATA(-1, 2, 2) - 1/245 x y DATA(2, 1, 2) + + 2 2 + - 1/245 x y DATA(1, -2, -2) - 1/350 z DATA(1, 2, 1) + + 2 2 + - 1/175 x z DATA(-2, -2, 2) + 1/350 x z DATA(-2, 2, 1) + + 2 2 + + 1/700 x z DATA(-2, 1, 1) - 1/700 x z DATA(-2, -1, 1) + + 2 2 + - 1/350 x z DATA(2, -2, 1) - 1/700 x z DATA(1, 1, 2) + + 2 2 + + 1/700 x z DATA(1, -2, 1) + 1/700 x z DATA(-1, -2, 1) + + 2 2 + - 1/350 x z DATA(-2, -2, 1) - 1/350 x z DATA(-2, 2, -1) + + 2 2 + + 1/700 x z DATA(-2, -1, -1) - 1/700 x z DATA(-2, 1, -1) + + 2 2 + + 1/350 x z DATA(-1, 2, -2) + 1/350 x z DATA(1, 2, -2) + + 2 2 + - 1/175 x z DATA(2, 2, -2) + 1/350 x z DATA(-2, -2, -1) + + 2 2 + - 1/700 x z DATA(-1, -2, -1) - 1/700 x z DATA(1, -2, -1) + + 2 2 + + 2/245 x y DATA(2, 2, 0) - 1/245 x y DATA(1, 2, 0) + + 2 2 + + 2/245 x y DATA(-2, -2, 2) + 2/245 x y DATA(-2, 2, 1) + + 2 2 + - 1/245 x y DATA(-2, 1, 1) - 1/245 x y DATA(-2, -1, 1) + + 2 2 + + 2/245 x y DATA(2, -2, 1) + 1/490 x y DATA(1, 1, 2) + + 2 2 + - 1/245 x y DATA(1, -2, 1) - 1/245 x y DATA(-1, -2, 1) + + 2 2 + + 2/245 x y DATA(-2, -2, 1) + 2/245 x y DATA(-2, 2, -1) + + 2 2 + - 1/245 x y DATA(-2, -1, -1) + 1/700 z DATA(2, -1, 1) + + 2 2 + + 1/490 x y DATA(1, 1, 1) - 1/245 x y DATA(-2, 1, 2) + + 2 2 + + 2/245 x y DATA(2, -2, 2) - 1/245 x y DATA(-2, -1, 2) + + 2 2 + - 1/245 x y DATA(1, -2, 2) + 1/490 x y DATA(1, 1, 0) + + 2 2 + - 1/245 x y DATA(-1, -2, 2) + 1/490 x y DATA(-1, -1, 1) + + 2 2 + + 1/490 x y DATA(1, -1, 1) + 1/490 x y DATA(-1, 1, 1) + + 2 2 + + 1/490 x y DATA(-1, 1, 0) + 1/490 x y DATA(1, -1, 0) + + 2 2 + + 1/490 x y DATA(-1, -1, 0) + 1/490 x y DATA(1, 1, -1) + + 2 2 + + 1/700 z DATA(1, -1, -1) + 1/175 x z DATA(-2, 2, 2) + + 2 + - 1/1400 x z DATA(1, 1, 1) + 1/175 y z DATA(2, 1, -2) + + 2 2 + + 1/350 x z DATA(-2, 1, 2) - 1/175 x z DATA(2, -2, 2) + + 2 2 + - 1/350 x z DATA(-2, -1, 2) + 1/350 x z DATA(1, -2, 2) + + 2 2 + + 1/350 x z DATA(-1, -2, 2) + 1/490 x y DATA(1, -1, -1) + + 2 2 + - 1/245 x y DATA(2, -1, 1) - 1/245 x y DATA(1, 2, 1) + + 2 2 + - 1/245 x y DATA(-1, 2, 1) - 1/245 x y DATA(2, 1, 1) + + 2 2 + - 1/245 x y DATA(2, -1, -1) - 1/245 x y DATA(-1, 2, -1) + + 2 2 + - 1/245 x y DATA(2, 1, -1) - 1/245 x y DATA(1, 2, -1) + + 2 2 + + 1/490 x y DATA(-1, -1, -1) + 2/245 x y DATA(-2, 2, 2) + + - 2/175 x y DATA(-2, 2, 0) + 1/175 x y DATA(-2, 1, 0) + + + 1/175 x y DATA(1, -2, 0) + 2/175 x y DATA(2, -2, 0) + + + 1/175 x y DATA(-2, -1, 0) - 2/175 x y DATA(-2, -2, 0) + + - 1/175 x y DATA(-1, -2, 0) - 1/175 x y DATA(2, -1, 0) + + - 1/175 x y DATA(-1, 2, 0) - 1/175 x y DATA(2, 1, 0) + + + 2/175 x y DATA(2, 2, 0) + 1/175 x y DATA(1, 2, 0) + + - 2/175 x y DATA(-2, -2, 2) - 2/175 x y DATA(-2, 2, 1) + + + 1/175 x y DATA(-2, 1, 1) + 1/175 x y DATA(-2, -1, 1) + + 2 2 + + 1/350 x z DATA(2, -2, -1) - 1/700 x z DATA(-1, -1, -2) + + 2 2 + - 1/700 x z DATA(1, -1, -2) + 1/350 x z DATA(2, -1, -2) + + 2 2 + - 1/350 x z DATA(-2, 1, -2) + 1/700 x z DATA(-1, 1, -2) + + 2 2 + + 1/700 x z DATA(1, 1, -2) - 1/350 x z DATA(2, 1, -2) + + 2 2 + - 1/175 x z DATA(-2, 2, -2) + 1/350 x z DATA(2, 2, 1) + + 2 2 + + 1/700 x z DATA(-1, -1, 2) - 1/350 x z DATA(2, -1, 2) + + 2 2 + + 1/700 x z DATA(1, -1, 2) + 1/175 x z DATA(-2, -2, -2) + + 2 2 + - 1/700 x z DATA(-1, 1, 2) - 1/350 x z DATA(-1, -2, -2) + + 2 2 + - 1/350 x z DATA(-1, 2, 2) + 1/350 x z DATA(2, 1, 2) + + 2 2 + - 1/350 x z DATA(1, -2, -2) + 1/1400 x z DATA(-1, 1, -1) + + 2 2 + + 1/175 x z DATA(2, -2, -2) + 1/175 x z DATA(2, 2, 2) + + 2 2 + + 1/350 x z DATA(-2, -1, -2) - 1/350 x z DATA(1, 2, 2) + + 2 2 + - 1/350 x z DATA(2, 2, -1) - 1/1400 x z DATA(1, -1, -1) + + 2 2 + - 1/700 x z DATA(2, -1, 1) - 1/700 x z DATA(1, 2, 1) + + 2 2 + - 1/700 x z DATA(-1, 2, 1) + 1/700 x z DATA(2, 1, 1) + + 2 2 + + 1/700 x z DATA(2, -1, -1) + 1/700 x z DATA(-1, 2, -1) + + 2 2 + - 1/700 x z DATA(2, 1, -1) + 1/700 x z DATA(1, 2, -1) + + 2 2 + - 1/1400 x z DATA(-1, -1, -1) - 1/350 z DATA(2, 2, -1) + + 2 2 + - 1/350 z DATA(-2, -1, -2) + 1/175 z DATA(2, 2, 2) + + 2 2 + - 1/175 z DATA(2, -2, -2) - 1/700 z DATA(-1, 1, -1) + + 2 2 + - 1/175 z DATA(1, -2, -2) + 1/350 z DATA(2, 1, 2) + + 2 2 + + 1/175 z DATA(-1, 2, 2) - 1/175 z DATA(-1, -2, -2) + + 2 2 + + 1/350 z DATA(-1, 1, 2) - 1/175 z DATA(-2, -2, -2) + + 2 2 + - 1/350 z DATA(1, -1, 2) - 1/350 z DATA(2, -1, 2) + + 2 2 + - 1/350 z DATA(-1, -1, 2) - 1/350 z DATA(2, 2, 1) + + 2 2 + + 1/175 z DATA(-2, 2, -2) + 1/350 z DATA(2, 1, -2) + + 2 2 + + 1/350 z DATA(1, 1, -2) + 1/350 z DATA(-1, 1, -2) + + 2 2 + + 1/350 z DATA(-2, 1, -2) - 1/350 z DATA(-1, 2, 1) + + 2 2 + - 1/700 z DATA(1, 1, -1) + 1/350 z DATA(-1, -1, 0) + + 2 2 + + 1/350 z DATA(1, -1, 0) - 1/350 z DATA(-1, 1, 0) + + 2 2 + - 1/700 z DATA(-1, 1, 1) + 1/700 z DATA(1, -1, 1) + + 2 2 + + 1/700 z DATA(-1, -1, 1) - 1/175 z DATA(-1, -2, 2) + + 2 2 + - 1/350 z DATA(1, 1, 0) - 1/175 z DATA(1, -2, 2) + + 2 2 + - 1/350 z DATA(-2, -1, 2) - 1/175 z DATA(2, -2, 2) + + 2 2 + + 1/350 z DATA(-2, 1, 2) - 1/700 z DATA(1, 1, 1) + + 2 2 + + 1/175 z DATA(-2, 2, 2) + 1/700 z DATA(-1, -1, -1) + + 2 2 + - 1/350 z DATA(1, 2, -1) - 1/50 y DATA(-2, 1, 0) + + 2 2 + + 1/100 y DATA(-2, 2, 0) - 1/700 x DATA(1, 1, -1) + + 2 2 + + 1/700 x DATA(-1, -1, 0) - 1/50 y DATA(1, 1, -1) + + 2 2 + + 1/50 y DATA(-1, -1, 0) + 1/50 y DATA(1, -1, 0) + + 2 2 2 + - 1/50 y DATA(-1, 1, 0) - 1/50 y DATA(-1, 1, 1) + 1/50 y DATA(1, -1, 1) + + 2 2 + + 1/50 y DATA(-1, -1, 1) - 1/100 y DATA(-1, -2, 2) + + 2 2 + - 1/50 y DATA(1, 1, 0) - 1/100 y DATA(1, -2, 2) + + 2 2 + + 1/50 y DATA(-2, -1, 2) - 1/100 y DATA(2, -2, 2) + + 2 2 2 + - 1/50 y DATA(-2, 1, 2) - 1/50 y DATA(1, 1, 1) + 1/100 y DATA(-2, 2, 2) + + 2 2 + + 1/50 y DATA(-1, -1, -1) + 1/100 y DATA(1, 2, -1) + + 2 2 + - 1/50 y DATA(2, 1, -1) + 1/100 y DATA(-1, 2, -1) + + 2 2 + + 1/50 y DATA(2, -1, -1) - 1/50 y DATA(2, 1, 1) + + 2 2 + + 1/100 y DATA(-1, 2, 1) + 1/100 y DATA(1, 2, 1) + + 2 2 + + 1/50 y DATA(2, -1, 1) + 1/50 y DATA(1, -1, -1) + + 2 2 + + 1/100 y DATA(2, 2, -1) + 1/100 y DATA(1, 2, 2) + + 2 2 + + 1/50 y DATA(-2, -1, -2) + 1/100 y DATA(2, 2, 2) + + 2 2 + - 1/100 y DATA(2, -2, -2) - 1/50 y DATA(-1, 1, -1) + + 2 2 + - 1/100 y DATA(1, -2, -2) - 1/50 y DATA(2, 1, 2) + + 2 2 + + 1/100 y DATA(-1, 2, 2) - 1/100 y DATA(-1, -2, -2) + + 2 2 + - 1/50 y DATA(-1, 1, 2) - 1/100 y DATA(-2, -2, -2) + + 2 2 + + 1/50 y DATA(1, -1, 2) + 1/50 y DATA(2, -1, 2) + + 2 2 + + 1/50 y DATA(-1, -1, 2) + 1/100 y DATA(2, 2, 1) + + 2 2 + + 1/100 y DATA(-2, 2, -2) - 1/50 y DATA(2, 1, -2) + + 2 2 + - 1/50 y DATA(1, 1, -2) - 1/50 y DATA(-1, 1, -2) + + - 1/175 y z DATA(1, 1, 2) + 1/175 y z DATA(1, -2, 1) + + - 2/175 x y DATA(-2, 2, -1) - 2/175 x y DATA(-2, -2, 1) + + + 1/175 y z DATA(-1, -2, 1) - 1/42 DATA(-2, -1, 1) + + 2 + - 1/175 x y DATA(-1, 2, -2) - 1/175 x DATA(-2, -2, -2) + + 2 2 + + 1/700 x DATA(1, -1, 2) - 1/350 x DATA(2, -1, 2) + + 2 2 + + 1/700 x DATA(-1, -1, 2) + 1/175 x DATA(2, 2, 1) + + 2 2 + + 1/175 x DATA(-2, 2, -2) + 1/350 x DATA(2, 1, -2) + + 2 2 + - 1/700 x DATA(1, 1, -2) - 1/700 x DATA(-1, 1, -2) + + 2 2 + + 1/350 x DATA(-2, 1, -2) - 1/350 x DATA(2, -1, -2) + + 2 2 + + 1/700 x DATA(1, -1, -2) + 1/700 x DATA(-1, -1, -2) + + 2 2 + - 1/175 x DATA(2, -2, -1) + 1/350 x DATA(1, -2, -1) + + 2 2 + + 1/350 x DATA(1, -2, 2) + 1/700 x DATA(1, -1, 0) + + 2 2 + - 1/700 x DATA(-1, 1, 0) - 1/700 x DATA(-1, 1, 1) + + 2 2 + + 1/700 x DATA(1, -1, 1) + 1/700 x DATA(-1, -1, 1) + + 2 3 + + 1/350 x DATA(-1, -2, 2) - 1/300 x DATA(-1, -1, 0) + + 3 3 + + 1/300 x DATA(1, -1, 0) + 1/300 x DATA(-1, 1, 0) + + 3 3 + + 1/300 x DATA(-1, 1, 1) + 1/300 x DATA(1, -1, 1) + + 3 3 + - 1/300 x DATA(-1, -1, 1) - 1/150 x DATA(-1, -2, 2) + + 3 3 + - 1/300 x DATA(1, 1, 0) + 1/150 x DATA(1, -2, 2) + + 3 3 + + 1/600 x DATA(-2, -1, 2) - 1/300 x DATA(2, -2, 2) + + 3 3 + - 1/600 x DATA(-2, 1, 2) - 1/300 x DATA(1, 1, 1) + + 3 3 + - 1/300 x DATA(-2, 2, 2) - 1/300 x DATA(-1, -1, -1) + + 3 3 + - 1/150 x DATA(1, 2, -1) + 1/600 x DATA(2, 1, -1) + + 3 3 + + 1/150 x DATA(-1, 2, -1) - 1/600 x DATA(2, -1, -1) + + 3 3 + + 1/600 x DATA(2, 1, 1) + 1/150 x DATA(-1, 2, 1) + + 3 3 + - 1/150 x DATA(1, 2, 1) - 1/600 x DATA(2, -1, 1) + + 3 3 + + 1/300 x DATA(1, -1, -1) + 1/300 x DATA(2, 2, -1) + + 3 3 + - 1/150 x DATA(1, 2, 2) + 1/600 x DATA(-2, -1, -2) + + 3 3 + + 1/300 x DATA(2, 2, 2) - 1/300 x DATA(2, -2, -2) + + 3 3 + + 1/300 x DATA(-1, 1, -1) + 1/150 x DATA(1, -2, -2) + + 3 3 + + 1/600 x DATA(2, 1, 2) + 1/150 x DATA(-1, 2, 2) + + 3 3 + - 1/150 x DATA(-1, -2, -2) + 1/300 x DATA(-1, 1, 2) + + 3 3 + + 1/300 x DATA(-2, -2, -2) + 1/300 x DATA(1, -1, 2) + + 3 3 + - 1/600 x DATA(2, -1, 2) - 1/300 x DATA(-1, -1, 2) + + 3 3 + + 1/300 x DATA(2, 2, 1) - 1/300 x DATA(-2, 2, -2) + + 3 3 + + 1/600 x DATA(2, 1, -2) - 1/300 x DATA(1, 1, -2) + + 3 3 + + 1/300 x DATA(-1, 1, -2) - 1/600 x DATA(-2, 1, -2) + + 3 3 + - 1/600 x DATA(2, -1, -2) + 1/300 x DATA(1, -1, -2) + + 3 3 + - 1/300 x DATA(-1, -1, -2) - 1/300 x DATA(2, -2, -1) + + 3 3 + + 1/150 x DATA(1, -2, -1) - 1/150 x DATA(-1, -2, -1) + + 3 2 + + 1/300 x DATA(-2, -2, -1) - 1/700 x DATA(1, 1, 0) + + 2 2 + - 1/350 x DATA(-2, -1, 2) - 1/175 x DATA(2, -2, 2) + + 2 2 + + 1/350 x DATA(-2, 1, 2) - 1/700 x DATA(1, 1, 1) + + 2 2 + + 1/175 x DATA(-2, 2, 2) + 1/700 x DATA(-1, -1, -1) + + 2 2 + - 1/350 x DATA(1, 2, -1) + 1/350 x DATA(2, 1, -1) + + 2 2 + - 1/350 x DATA(-1, 2, -1) - 1/350 x DATA(2, -1, -1) + + 2 2 + + 1/350 x DATA(2, 1, 1) - 1/350 x DATA(-1, 2, 1) + + 2 2 + - 1/350 x DATA(1, 2, 1) - 1/350 x DATA(2, -1, 1) + + 2 2 + + 1/700 x DATA(1, -1, -1) + 1/175 x DATA(2, 2, -1) + + 2 2 + - 1/350 x DATA(1, 2, 2) - 1/350 x DATA(-2, -1, -2) + + 2 2 + + 1/175 x DATA(2, 2, 2) - 1/175 x DATA(2, -2, -2) + + 2 2 + - 1/700 x DATA(-1, 1, -1) + 1/350 x DATA(1, -2, -2) + + 2 2 + + 1/350 x DATA(2, 1, 2) - 1/350 x DATA(-1, 2, 2) + + 2 2 + + 1/350 x DATA(-1, -2, -2) - 1/700 x DATA(-1, 1, 2) + + 3 3 + - 1/300 x DATA(1, 1, -1) + 1/600 x DATA(-2, -1, -1) + + 3 3 + - 1/300 x DATA(-2, 2, -1) + 1/300 x DATA(-2, -2, 1) + + 3 3 + - 1/150 x DATA(-1, -2, 1) + 1/150 x DATA(1, -2, 1) + + 3 3 + - 1/300 x DATA(1, 1, 2) - 1/300 x DATA(2, -2, 1) + + 3 3 + + 1/600 x DATA(-2, -1, 1) - 1/600 x DATA(-2, 1, 1) + + 3 2 + - 1/300 x DATA(-2, 2, 1) + 1/350 x DATA(-1, -2, -1) + + 2 2 + - 1/175 x DATA(-2, -2, -1) + 1/175 x DATA(2, 2, -2) + + 2 2 + - 1/350 x DATA(1, 2, -2) - 1/350 x DATA(-1, 2, -2) + + 2 2 + + 1/350 x DATA(-2, 1, -1) - 1/350 x DATA(-2, -1, -1) + + 2 2 + + 1/175 x DATA(-2, 2, -1) - 1/175 x DATA(-2, -2, 1) + + 2 2 + + 1/350 x DATA(-1, -2, 1) + 1/350 x DATA(1, -2, 1) + + 2 2 + - 1/700 x DATA(1, 1, 2) - 1/175 x DATA(2, -2, 1) + + 2 2 + - 1/350 x DATA(-2, -1, 1) + 1/350 x DATA(-2, 1, 1) + + 2 2 + + 1/175 x DATA(-2, 2, 1) - 1/175 x DATA(-2, -2, 2) + + 2 2 2 + - 1/350 x DATA(1, 2, 0) + 1/175 x DATA(2, 2, 0) + 1/350 x DATA(2, 1, 0) + + 2 2 + - 1/350 x DATA(-1, 2, 0) - 1/350 x DATA(2, -1, 0) + + 2 2 + + 1/350 x DATA(-1, -2, 0) - 1/175 x DATA(-2, -2, 0) + + 2 2 + - 1/350 x DATA(-2, -1, 0) - 1/175 x DATA(2, -2, 0) + + 2 2 + + 1/350 x DATA(1, -2, 0) + 1/350 x DATA(-2, 1, 0) + + 2 + + 1/175 x DATA(-2, 2, 0) - 1/175 y z DATA(-2, -1, 2) + + 3 3 3 + - 1/150 x DATA(1, 2, 0) + 1/300 x DATA(2, 2, 0) + 1/600 x DATA(2, 1, 0) + + 3 3 + + 1/150 x DATA(-1, 2, 0) - 1/600 x DATA(2, -1, 0) + + 3 3 + - 1/150 x DATA(-1, -2, 0) + 1/300 x DATA(-2, -2, 0) + + 3 3 + + 1/600 x DATA(-2, -1, 0) - 1/300 x DATA(2, -2, 0) + + 3 3 + + 1/150 x DATA(1, -2, 0) - 1/600 x DATA(-2, 1, 0) + + 3 3 + - 1/300 x DATA(-2, 2, 0) + 1/300 x DATA(2, 2, -2) + + 3 3 + - 1/150 x DATA(1, 2, -2) + 1/150 x DATA(-1, 2, -2) + + 3 137 + - 1/600 x DATA(-2, 1, -1) + ---- x DATA(-1, -1, 1) + 5250 + + 107 289 107 + + ---- x DATA(-1, -2, 2) + ----- x DATA(1, 1, 0) - ---- x DATA(1, -2, 2) + 7000 10500 7000 + + 107 137 107 + + ---- x DATA(-2, -1, 2) + ---- x DATA(2, -2, 2) - ---- x DATA(-2, 1, 2) + 7000 5250 7000 + + 137 137 137 + + ---- x DATA(1, 1, 1) + ---- x DATA(-2, 2, 2) + ---- x DATA(-1, -1, -1) + 5250 5250 5250 + + 167 167 167 + + ---- x DATA(1, 2, -1) + ---- x DATA(2, 1, -1) - ---- x DATA(-1, 2, -1) + 7000 7000 7000 + + 167 167 167 + - ---- x DATA(2, -1, -1) + ---- x DATA(2, 1, 1) - ---- x DATA(-1, 2, 1) + 7000 7000 7000 + + 167 167 137 + + ---- x DATA(1, 2, 1) - ---- x DATA(2, -1, 1) - ---- x DATA(1, -1, -1) + 7000 7000 5250 + + 47 107 107 + - ---- x DATA(2, 2, -1) + ---- x DATA(1, 2, 2) + ---- x DATA(-2, -1, -2) + 5250 7000 7000 + + 3 137 + + 1/300 x DATA(-2, -2, 2) - ---- x DATA(1, -1, 1) + 5250 + + 47 167 + + ---- x DATA(2, -2, -1) - ---- x DATA(1, -2, -1) + 5250 7000 + + 167 47 + + ---- x DATA(-1, -2, -1) - ---- x DATA(-2, -2, -1) + 7000 5250 + + 137 107 107 + - ---- x DATA(2, 2, -2) + ---- x DATA(1, 2, -2) - ---- x DATA(-1, 2, -2) + 5250 7000 7000 + + 167 167 + - ---- x DATA(-2, 1, -1) + ---- x DATA(-2, -1, -1) + 7000 7000 + + 47 47 167 + + ---- x DATA(-2, 2, -1) - ---- x DATA(-2, -2, 1) + ---- x DATA(-1, -2, 1) + 5250 5250 7000 + + 167 229 47 + - ---- x DATA(1, -2, 1) + ----- x DATA(1, 1, 2) + ---- x DATA(2, -2, 1) + 7000 10500 5250 + + 137 289 289 + + ---- x DATA(1, 1, -1) + ----- x DATA(-1, -1, 0) - ----- x DATA(1, -1, 0) + 5250 10500 10500 + + 289 137 187 + - ----- x DATA(-1, 1, 0) - ---- x DATA(-1, 1, 1) - ---- x DATA(1, -2, 0) + 10500 5250 7000 + + 187 17 137 + - ---- x DATA(-2, 1, 0) + ---- x DATA(-2, 2, 0) - ---- x DATA(2, 2, 2) + 7000 5250 5250 + + 137 137 107 + + ---- x DATA(2, -2, -2) - ---- x DATA(-1, 1, -1) - ---- x DATA(1, -2, -2) + 5250 5250 7000 + + 107 107 107 + + ---- x DATA(2, 1, 2) - ---- x DATA(-1, 2, 2) + ---- x DATA(-1, -2, -2) + 7000 7000 7000 + + 229 137 + - ----- x DATA(-1, 1, 2) - ---- x DATA(-2, -2, -2) + 10500 5250 + + 229 107 229 + - ----- x DATA(1, -1, 2) - ---- x DATA(2, -1, 2) + ----- x DATA(-1, -1, 2) + 10500 7000 10500 + + 47 137 107 + - ---- x DATA(2, 2, 1) + ---- x DATA(-2, 2, -2) + ---- x DATA(2, 1, -2) + 5250 5250 7000 + + 229 229 + + ----- x DATA(1, 1, -2) - ----- x DATA(-1, 1, -2) + 10500 10500 + + 107 107 + - ---- x DATA(-2, 1, -2) - ---- x DATA(2, -1, -2) + 7000 7000 + + 229 229 + - ----- x DATA(1, -1, -2) + ----- x DATA(-1, -1, -2) + 10500 10500 + + 167 167 47 + + ---- x DATA(-2, -1, 1) - ---- x DATA(-2, 1, 1) + ---- x DATA(-2, 2, 1) + 7000 7000 5250 + + 137 187 17 + - ---- x DATA(-2, -2, 2) + ---- x DATA(1, 2, 0) - ---- x DATA(2, 2, 0) + 5250 7000 5250 + + 187 187 187 + + ---- x DATA(2, 1, 0) - ---- x DATA(-1, 2, 0) - ---- x DATA(2, -1, 0) + 7000 7000 7000 + + 187 17 187 + + ---- x DATA(-1, -2, 0) - ---- x DATA(-2, -2, 0) + ---- x DATA(-2, -1, 0) + 7000 5250 7000 + + 17 3 + + ---- x DATA(2, -2, 0) + 1/600 z DATA(2, -1, -2) + 5250 + + 3 3 + + 1/600 z DATA(-1, -1, -2) - 1/150 z DATA(2, -2, -1) + + 3 3 + - 1/150 z DATA(1, -2, -1) - 1/150 z DATA(-1, -2, -1) + + 3 3 + - 1/150 z DATA(-2, -2, -1) - 1/300 z DATA(2, 2, -2) + + 3 3 + - 1/300 z DATA(1, 2, -2) - 1/300 z DATA(-1, 2, -2) + + 3 3 + + 1/300 z DATA(-2, 1, -1) - 1/300 z DATA(-2, -1, -1) + + 3 3 + + 1/150 z DATA(-2, 2, -1) + 1/150 z DATA(-2, -2, 1) + + 3 3 + + 1/150 z DATA(-1, -2, 1) + 1/150 z DATA(1, -2, 1) + + 3 3 + + 1/600 z DATA(1, 1, 2) + 1/150 z DATA(2, -2, 1) + + 3 3 + + 1/300 z DATA(-2, -1, 1) - 1/300 z DATA(-2, 1, 1) + + 3 3 + - 1/150 z DATA(-2, 2, 1) - 1/300 z DATA(-2, -2, 2) + + 3 3 + - 1/600 z DATA(-1, -1, 2) + 1/300 z DATA(-1, -1, 1) + + 3 3 + - 1/300 z DATA(-1, -2, 2) - 1/300 z DATA(1, -2, 2) + + 3 3 + - 1/600 z DATA(-2, -1, 2) - 1/300 z DATA(2, -2, 2) + + 3 311 + + 1/600 z DATA(1, -1, -2) + ----- y DATA(1, -2, 0) + 14700 + + 137 + + 4/75 y DATA(-2, 1, 0) - 1/300 y DATA(-2, 2, 0) - ---- z DATA(1, 1, -1) + 5250 + + 137 169 166 + + ---- z DATA(-1, 1, 1) - ----- y DATA(-2, 2, -1) + ---- y DATA(1, 1, -1) + 5250 14700 3675 + + 151 151 151 + + ---- y DATA(-1, -1, 0) + ---- y DATA(1, -1, 0) + ---- y DATA(-1, 1, 0) + 3675 3675 3675 + + 166 166 166 + + ---- y DATA(-1, 1, 1) + ---- y DATA(1, -1, 1) + ---- y DATA(-1, -1, 1) + 3675 3675 3675 + + 169 151 169 + - ----- y DATA(-1, -2, 2) + ---- y DATA(1, 1, 0) - ----- y DATA(1, -2, 2) + 14700 3675 14700 + + 256 529 256 + + ---- y DATA(-2, -1, 2) - ----- y DATA(2, -2, 2) + ---- y DATA(-2, 1, 2) + 3675 14700 3675 + + 166 529 166 + + ---- y DATA(1, 1, 1) - ----- y DATA(-2, 2, 2) + ---- y DATA(-1, -1, -1) + 3675 14700 3675 + + 191 211 191 + + ----- y DATA(1, 2, -1) + ---- y DATA(2, 1, -1) + ----- y DATA(-1, 2, -1) + 14700 3675 14700 + + 211 211 191 + + ---- y DATA(2, -1, -1) + ---- y DATA(2, 1, 1) + ----- y DATA(-1, 2, 1) + 3675 3675 14700 + + 191 211 166 + + ----- y DATA(1, 2, 1) + ---- y DATA(2, -1, 1) + ---- y DATA(1, -1, -1) + 14700 3675 3675 + + 169 169 256 + - ----- y DATA(2, 2, -1) - ----- y DATA(1, 2, 2) + ---- y DATA(-2, -1, -2) + 14700 14700 3675 + + 529 529 166 + - ----- y DATA(2, 2, 2) - ----- y DATA(2, -2, -2) + ---- y DATA(-1, 1, -1) + 14700 14700 3675 + + 169 256 169 + - ----- y DATA(1, -2, -2) + ---- y DATA(2, 1, 2) - ----- y DATA(-1, 2, 2) + 14700 3675 14700 + + 169 211 + - ----- y DATA(-1, -2, -2) + ---- y DATA(-1, 1, 2) + 14700 3675 + + 529 3 + - ----- y DATA(-2, -2, -2) - 2/75 y DATA(2, -1, -1) + 14700 + + 3 3 + + 1/150 y DATA(-1, 2, 1) + 1/150 y DATA(1, 2, 1) + + 3 3 + - 2/75 y DATA(2, -1, 1) - 2/75 y DATA(1, -1, -1) + + 3 3 + + 1/150 y DATA(2, 2, -1) + 1/150 y DATA(1, 2, 2) + + 3 3 + - 2/75 y DATA(-2, -1, -2) + 1/150 y DATA(2, 2, 2) + + 3 3 + + 1/150 y DATA(2, -2, -2) - 2/75 y DATA(-1, 1, -1) + + 3 3 + + 1/150 y DATA(1, -2, -2) - 2/75 y DATA(2, 1, 2) + + 3 3 + + 1/150 y DATA(-1, 2, 2) + 1/150 y DATA(-1, -2, -2) + + 3 3 + - 2/75 y DATA(-1, 1, 2) + 1/150 y DATA(-2, -2, -2) + + 3 3 + - 2/75 y DATA(1, -1, 2) - 2/75 y DATA(2, -1, 2) + + 3 3 + - 2/75 y DATA(-1, -1, 2) + 1/150 y DATA(2, 2, 1) + + 3 3 + + 1/150 y DATA(-2, 2, -2) - 2/75 y DATA(2, 1, -2) + + 3 3 + - 2/75 y DATA(1, 1, -2) - 2/75 y DATA(-1, 1, -2) + + 3 3 + - 2/75 y DATA(-2, 1, -2) - 2/75 y DATA(2, -1, -2) + + 3 3 + - 2/75 y DATA(1, -1, -2) - 2/75 y DATA(-1, -1, -2) + + 3 3 + + 1/150 y DATA(2, -2, -1) + 1/150 y DATA(1, -2, -1) + + 3 3 + + 1/150 y DATA(-1, -2, -1) + 1/150 y DATA(-2, -2, -1) + + 3 3 + + 1/150 y DATA(2, 2, -2) - 2/75 y DATA(2, 1, 1) + + 3 3 + + 1/150 y DATA(1, 2, -2) + 1/150 y DATA(-1, 2, -2) + + 3 3 + - 2/75 y DATA(-2, 1, -1) - 2/75 y DATA(-2, -1, -1) + + 3 3 + + 1/150 y DATA(-2, 2, -1) + 1/150 y DATA(-2, -2, 1) + + 3 3 + + 1/150 y DATA(-1, -2, 1) + 1/150 y DATA(1, -2, 1) + + 3 3 + - 2/75 y DATA(1, 1, 2) + 1/150 y DATA(2, -2, 1) + + 3 3 + - 2/75 y DATA(-2, -1, 1) - 2/75 y DATA(-2, 1, 1) + + 3 3 + + 1/150 y DATA(-2, 2, 1) + 1/150 y DATA(-2, -2, 2) + + 3 3 3 + + 1/150 y DATA(1, 2, 0) + 1/150 y DATA(2, 2, 0) - 2/75 y DATA(2, 1, 0) + + 3 3 + + 1/150 y DATA(-1, 2, 0) - 2/75 y DATA(2, -1, 0) + + 3 3 + + 1/150 y DATA(-1, -2, 0) + 1/150 y DATA(-2, -2, 0) + + 3 3 + - 2/75 y DATA(-2, -1, 0) + 1/150 y DATA(2, -2, 0) + + 3 3 + + 1/150 y DATA(1, -2, 0) - 2/75 y DATA(-2, 1, 0) + + 3 3 + + 1/150 y DATA(-2, 2, 0) - 2/75 y DATA(1, 1, -1) + + 3 3 + - 2/75 y DATA(-1, -1, 0) - 2/75 y DATA(1, -1, 0) + + 3 3 3 + - 2/75 y DATA(-1, 1, 0) - 2/75 y DATA(-1, 1, 1) - 2/75 y DATA(1, -1, 1) + + 3 3 + - 2/75 y DATA(-1, -1, 1) + 1/150 y DATA(-1, -2, 2) + + 3 3 + - 2/75 y DATA(1, 1, 0) + 1/150 y DATA(1, -2, 2) + + 3 3 + - 2/75 y DATA(-2, -1, 2) + 1/150 y DATA(2, -2, 2) + + 3 3 3 + - 2/75 y DATA(-2, 1, 2) - 2/75 y DATA(1, 1, 1) + 1/150 y DATA(-2, 2, 2) + + 3 3 + - 2/75 y DATA(-1, -1, -1) + 1/150 y DATA(1, 2, -1) + + 3 3 + - 2/75 y DATA(2, 1, -1) + 1/150 y DATA(-1, 2, -1) + + 3 3 + - 1/600 z DATA(2, -1, 2) - 1/150 z DATA(2, 2, 1) + + 3 3 + - 1/300 z DATA(-2, 2, -2) - 1/600 z DATA(2, 1, -2) + + 3 3 + - 1/600 z DATA(1, 1, -2) - 1/600 z DATA(-1, 1, -2) + + 3 3 + - 1/600 z DATA(-2, 1, -2) + 1/600 z DATA(-2, 1, 2) + + 3 3 + + 1/300 z DATA(-2, 2, 2) - 1/300 z DATA(-1, -1, -1) + + 3 3 + + 1/150 z DATA(1, 2, -1) + 1/300 z DATA(2, 1, -1) + + 3 3 + + 1/150 z DATA(-1, 2, -1) - 1/300 z DATA(2, -1, -1) + + 3 3 + - 1/300 z DATA(2, 1, 1) - 1/150 z DATA(-1, 2, 1) + + 3 3 + - 1/150 z DATA(1, 2, 1) + 1/300 z DATA(2, -1, 1) + + 3 3 + - 1/300 z DATA(1, -1, -1) + 1/150 z DATA(2, 2, -1) + + 3 3 + + 1/300 z DATA(1, 2, 2) + 1/600 z DATA(-2, -1, -2) + + 3 3 + + 1/300 z DATA(2, 2, 2) + 1/300 z DATA(2, -2, -2) + + 3 3 + + 1/300 z DATA(-1, 1, -1) + 1/300 z DATA(1, -2, -2) + + 3 3 + + 1/600 z DATA(2, 1, 2) + 1/300 z DATA(-1, 2, 2) + + 3 3 + + 1/300 z DATA(-1, -2, -2) + 1/600 z DATA(-1, 1, 2) + + 3 3 + + 1/300 z DATA(-2, -2, -2) - 1/600 z DATA(1, -1, 2) + + 2 2 + - 1/175 z DATA(-1, 2, 0) + 1/175 z DATA(-1, -2, 0) + + 2 2 + + 1/175 z DATA(-2, -2, 0) + 1/350 z DATA(-2, -1, 0) + + 2 2 + + 1/175 z DATA(2, -2, 0) + 1/175 z DATA(1, -2, 0) + + 2 2 + - 1/350 z DATA(-2, 1, 0) - 1/175 z DATA(-2, 2, 0) + + 3 3 + + 1/300 z DATA(1, 1, -1) - 1/300 z DATA(-1, 1, 1) + + 3 2 + + 1/300 z DATA(1, -1, 1) + 1/350 z DATA(2, -1, 0) + + 2 2 + - 1/350 z DATA(2, -1, -2) - 1/350 z DATA(1, -1, -2) + + 2 2 + - 1/350 z DATA(-1, -1, -2) + 1/350 z DATA(2, -2, -1) + + 2 2 + + 1/350 z DATA(1, -2, -1) + 1/350 z DATA(-1, -2, -1) + + 2 2 + + 1/350 z DATA(-2, -2, -1) + 1/175 z DATA(2, 2, -2) + + 2 2 + + 1/175 z DATA(1, 2, -2) + 1/175 z DATA(-1, 2, -2) + + 2 2 + - 1/700 z DATA(-2, 1, -1) + 1/700 z DATA(-2, -1, -1) + + 2 2 + - 1/350 z DATA(-2, 2, -1) + 1/350 z DATA(-2, -2, 1) + + 2 2 + + 1/350 z DATA(-1, -2, 1) + 1/350 z DATA(1, -2, 1) + + 2 2 + + 1/350 z DATA(1, 1, 2) + 1/350 z DATA(2, -2, 1) + + 2 2 + + 1/700 z DATA(-2, -1, 1) - 1/700 z DATA(-2, 1, 1) + + 2 2 + - 1/350 z DATA(-2, 2, 1) - 1/175 z DATA(-2, -2, 2) + + 2 2 2 + - 1/175 z DATA(1, 2, 0) - 1/175 z DATA(2, 2, 0) - 1/350 z DATA(2, 1, 0) + + 2 2 + - 1/700 z DATA(2, 1, -1) - 1/350 z DATA(-1, 2, -1) + + 2 3 + + 1/700 z DATA(2, -1, -1) - 1/300 z DATA(1, 1, 1) + + 211 256 211 + + ---- y DATA(1, -1, 2) + ---- y DATA(2, -1, 2) + ---- y DATA(-1, -1, 2) + 3675 3675 3675 + + 169 529 256 + - ----- y DATA(2, 2, 1) - ----- y DATA(-2, 2, -2) + ---- y DATA(2, 1, -2) + 14700 14700 3675 + + 211 211 256 + + ---- y DATA(1, 1, -2) + ---- y DATA(-1, 1, -2) + ---- y DATA(-2, 1, -2) + 3675 3675 3675 + + 256 211 + + ---- y DATA(2, -1, -2) + ---- y DATA(1, -1, -2) + 3675 3675 + + 211 169 + + ---- y DATA(-1, -1, -2) - ----- y DATA(2, -2, -1) + 3675 14700 + + 191 191 + + ----- y DATA(1, -2, -1) + ----- y DATA(-1, -2, -1) + 14700 14700 + + 169 529 + - ----- y DATA(-2, -2, -1) - ----- y DATA(2, 2, -2) + 14700 14700 + + 169 169 + - ----- y DATA(1, 2, -2) - ----- y DATA(-1, 2, -2) + 14700 14700 + + 211 211 + + ---- y DATA(-2, 1, -1) + ---- y DATA(-2, -1, -1) + 3675 3675 + + 169 191 + - ----- y DATA(-2, -2, 1) + ----- y DATA(-1, -2, 1) + 14700 14700 + + 191 211 169 + + ----- y DATA(1, -2, 1) + ---- y DATA(1, 1, 2) - ----- y DATA(2, -2, 1) + 14700 3675 14700 + + 211 211 169 + + ---- y DATA(-2, -1, 1) + ---- y DATA(-2, 1, 1) - ----- y DATA(-2, 2, 1) + 3675 3675 14700 + + 529 311 + - ----- y DATA(-2, -2, 2) + ----- y DATA(1, 2, 0) - 1/300 y DATA(2, 2, 0) + 14700 14700 + + 311 + + 4/75 y DATA(2, 1, 0) + ----- y DATA(-1, 2, 0) + 4/75 y DATA(2, -1, 0) + 14700 + + 311 + + ----- y DATA(-1, -2, 0) - 1/300 y DATA(-2, -2, 0) + 14700 + + 47 + + 4/75 y DATA(-2, -1, 0) - 1/300 y DATA(2, -2, 0) - ---- z DATA(-1, 2, 2) + 5250 + + 167 137 167 + + ---- z DATA(-1, 1, 2) - ---- z DATA(-2, -2, -2) - ---- z DATA(1, -1, 2) + 7000 5250 7000 + + 107 167 107 + - ---- z DATA(2, -1, 2) - ---- z DATA(-1, -1, 2) + ---- z DATA(2, 2, 1) + 7000 7000 7000 + + 137 107 167 + + ---- z DATA(-2, 2, -2) - ---- z DATA(2, 1, -2) - ---- z DATA(1, 1, -2) + 5250 7000 7000 + + 167 107 107 + - ---- z DATA(-1, 1, -2) - ---- z DATA(-2, 1, -2) + ---- z DATA(2, -1, -2) + 7000 7000 7000 + + 167 167 + + ---- z DATA(1, -1, -2) + ---- z DATA(-1, -1, -2) + 7000 7000 + + 107 167 + + ---- z DATA(2, -2, -1) + ---- z DATA(1, -2, -1) + 7000 7000 + + 167 107 + + ---- z DATA(-1, -2, -1) + ---- z DATA(-2, -2, -1) + 7000 7000 + + 137 47 47 + + ---- z DATA(2, 2, -2) + ---- z DATA(1, 2, -2) + ---- z DATA(-1, 2, -2) + 5250 5250 5250 + + 229 229 + - ----- z DATA(-2, 1, -1) + ----- z DATA(-2, -1, -1) + 10500 10500 + + 107 107 167 + - ---- z DATA(-2, 2, -1) - ---- z DATA(-2, -2, 1) - ---- z DATA(-1, -2, 1) + 7000 7000 7000 + + 167 167 107 + - ---- z DATA(1, -2, 1) + ---- z DATA(1, 1, 2) - ---- z DATA(2, -2, 1) + 7000 7000 7000 + + 229 229 107 + - ----- z DATA(-2, -1, 1) + ----- z DATA(-2, 1, 1) + ---- z DATA(-2, 2, 1) + 10500 10500 7000 + + 137 47 + + ---- z DATA(-2, -2, 2) - ---- z DATA(-1, -2, -2) + 5250 5250 + + 2 2 + - 1/50 y DATA(-2, 1, -2) + 1/50 y DATA(2, -1, -2) + + 2 2 + + 1/50 y DATA(1, -1, -2) + 1/50 y DATA(-1, -1, -2) + + 2 2 + - 1/100 y DATA(2, -2, -1) - 1/100 y DATA(1, -2, -1) + + 2 2 + - 1/100 y DATA(-1, -2, -1) - 1/100 y DATA(-2, -2, -1) + + 2 2 + + 1/100 y DATA(2, 2, -2) + 1/100 y DATA(1, 2, -2) + + 2 2 + + 1/100 y DATA(-1, 2, -2) - 1/50 y DATA(-2, 1, -1) + + 2 2 + + 1/50 y DATA(-2, -1, -1) + 1/100 y DATA(-2, 2, -1) + + 2 2 + - 1/100 y DATA(-2, -2, 1) - 1/100 y DATA(-1, -2, 1) + + 2 2 + - 1/100 y DATA(1, -2, 1) - 1/50 y DATA(1, 1, 2) + + 2 2 + - 1/100 y DATA(2, -2, 1) + 1/50 y DATA(-2, -1, 1) + + 2 2 + - 1/50 y DATA(-2, 1, 1) + 1/100 y DATA(-2, 2, 1) + + 2 2 + - 1/100 y DATA(-2, -2, 2) + 1/100 y DATA(1, 2, 0) + + 2 2 2 + + 1/100 y DATA(2, 2, 0) - 1/50 y DATA(2, 1, 0) + 1/100 y DATA(-1, 2, 0) + + 2 2 + + 1/50 y DATA(2, -1, 0) - 1/100 y DATA(-1, -2, 0) + + 2 2 + - 1/100 y DATA(-2, -2, 0) + 1/50 y DATA(-2, -1, 0) + + 2 2 + - 1/100 y DATA(2, -2, 0) - 1/100 y DATA(1, -2, 0) + + 137 137 47 + - ---- z DATA(1, -1, 1) - ---- z DATA(-1, -1, 1) + ---- z DATA(-1, -2, 2) + 5250 5250 5250 + + 47 107 137 + + ---- z DATA(1, -2, 2) - ---- z DATA(-2, -1, 2) + ---- z DATA(2, -2, 2) + 5250 7000 5250 + + 107 137 137 + + ---- z DATA(-2, 1, 2) + ---- z DATA(1, 1, 1) - ---- z DATA(-2, 2, 2) + 7000 5250 5250 + + 137 167 229 + + ---- z DATA(-1, -1, -1) - ---- z DATA(1, 2, -1) - ----- z DATA(2, 1, -1) + 5250 7000 10500 + + 167 229 229 + - ---- z DATA(-1, 2, -1) + ----- z DATA(2, -1, -1) + ----- z DATA(2, 1, 1) + 7000 10500 10500 + + 167 167 229 + + ---- z DATA(-1, 2, 1) + ---- z DATA(1, 2, 1) - ----- z DATA(2, -1, 1) + 7000 7000 10500 + + 137 107 47 + + ---- z DATA(1, -1, -1) - ---- z DATA(2, 2, -1) - ---- z DATA(1, 2, 2) + 5250 7000 5250 + + 107 137 137 + + ---- z DATA(-2, -1, -2) - ---- z DATA(2, 2, 2) - ---- z DATA(2, -2, -2) + 7000 5250 5250 + + 137 47 107 + - ---- z DATA(-1, 1, -1) - ---- z DATA(1, -2, -2) + ---- z DATA(2, 1, 2) + 5250 5250 7000 + + - 1/175 y z DATA(2, 1, 2) + 1/350 y z DATA(-1, 1, -1) + + - 2/175 y z DATA(2, -2, -2) + 1/175 y z DATA(1, 1, -2) + + + 1/175 y z DATA(-1, 1, -2) + 1/175 y z DATA(-2, -1, -2) + + + 2/175 y z DATA(2, 2, 2) + 1/350 y z DATA(1, -1, -1) + + - 1/175 y z DATA(2, 2, -1) + 2/175 y z DATA(1, 2, 2) + + + 1/175 y z DATA(1, 2, 1) - 1/350 y z DATA(2, -1, 1) + + + 1/350 y z DATA(2, -1, -1) - 1/350 y z DATA(2, 1, 1) + + + 1/175 y z DATA(-1, 2, 1) + 1/350 y z DATA(2, 1, -1) + + + 1/350 y z DATA(-1, -1, -1) - 1/175 y z DATA(1, 2, -1) + + 2 + + 2/175 y z DATA(-2, 2, 2) + 1/100 y z DATA(1, 1, -1) + + 2 + + 1/350 y z DATA(1, 1, -1) + 1/490 y z DATA(1, 1, -1) + + 2 2 + - 1/1400 x z DATA(1, 1, -1) - 1/100 x y DATA(1, 1, -1) + + 2 + - 1/175 y z DATA(-2, 1, 2) + 1/1400 x z DATA(1, 1, -1) + + - 1/350 x y DATA(1, 1, -1) + 2/175 y z DATA(2, -2, 2) + + + 2/175 y z DATA(1, -2, 2) + 2/175 y z DATA(-1, -2, 2) + + - 2/175 y z DATA(1, -2, -2) - 1/175 y z DATA(2, -1, 2) + + - 2/175 y z DATA(-2, -2, -2) - 1/350 y z DATA(-1, -1, 1) + + 2 + - 1/175 y z DATA(1, -1, 2) + 1/175 x z DATA(-2, 2, 0) + + - 2/175 y z DATA(-1, -2, -2) - 1/175 y z DATA(-1, 1, 2) + + - 1/350 y z DATA(1, -1, 1) - 1/350 y z DATA(-1, 1, 1) + + + 2/175 y z DATA(-1, 2, 2) + 1/175 y z DATA(-2, 1, -2) + + 2 2 + + 1/350 x z DATA(-2, 2, 1) + 1/700 x z DATA(-2, 1, 1) + + 2 2 + - 1/700 x z DATA(-2, -1, 1) + 1/350 x z DATA(2, -2, 1) + + 2 2 + + 1/700 x z DATA(1, 1, 2) + 1/700 x z DATA(1, -2, 1) + + 2 2 + - 1/700 x z DATA(-1, -2, 1) - 1/350 x z DATA(-2, -2, 1) + + 2 2 + + 1/350 x z DATA(-2, 2, -1) - 1/700 x z DATA(-2, -1, -1) + + 2 2 + + 1/700 x z DATA(-2, 1, -1) - 1/350 x z DATA(-1, 2, -2) + + 2 2 + + 1/350 x z DATA(1, 2, -2) + 1/175 x z DATA(2, 2, -2) + + 2 2 + - 1/350 x z DATA(-2, -2, -1) - 1/700 x z DATA(-1, -2, -1) + + 2 2 + + 1/700 x z DATA(1, -2, -1) + 1/350 x z DATA(2, -2, -1) + + 2 2 + + 1/700 x z DATA(-1, -1, -2) + 1/350 x z DATA(-2, 1, 0) + + 2 2 + + 1/350 x z DATA(1, -2, 0) + 1/175 x z DATA(2, -2, 0) + + 2 2 + - 1/350 x z DATA(-2, -1, 0) - 1/175 x z DATA(-2, -2, 0) + + 2 2 + - 1/350 x z DATA(-1, -2, 0) + 1/350 x z DATA(2, -1, 0) + + 2 2 + + 1/350 x z DATA(-1, 2, 0) - 1/350 x z DATA(2, 1, 0) + + 2 2 + - 1/175 x z DATA(2, 2, 0) - 1/350 x z DATA(1, 2, 0) + + 2 + - 1/700 z DATA(2, 1, 1) + 1/175 x y DATA(-2, 1, -1) + + 2 2 + - 1/200 x y DATA(1, -2, 0) - 1/100 x y DATA(2, -2, 0) + + 2 + + 1/175 y z DATA(2, -1, -2) + 1/350 x z DATA(-1, -2, 2) + + 2 2 + - 1/1400 x z DATA(-1, -1, 1) + 1/1400 x z DATA(1, -1, 1) + + 2 2 + + 1/1400 x z DATA(-1, 1, 1) + 1/700 x z DATA(-1, 1, 0) + + 2 2 + + 1/700 x z DATA(1, -1, 0) - 1/700 x z DATA(-1, -1, 0) + + 2 + - 1/350 y z DATA(1, 1, 1) + 1/350 x z DATA(2, 1, 2) + + 2 2 + - 1/350 x z DATA(1, -2, -2) + 1/1400 x z DATA(-1, 1, -1) + + 2 2 + - 1/175 x z DATA(2, -2, -2) + 1/175 x z DATA(2, 2, 2) + + 2 2 + + 1/350 x z DATA(-2, -1, -2) + 1/350 x z DATA(1, 2, 2) + + 2 2 + - 1/350 x z DATA(2, 2, -1) + 1/1400 x z DATA(1, -1, -1) + + 2 2 + + 1/700 x z DATA(2, -1, 1) - 1/700 x z DATA(1, 2, 1) + + 2 2 + + 1/700 x z DATA(-1, 2, 1) - 1/700 x z DATA(2, 1, 1) + + 2 2 + + 1/700 x z DATA(2, -1, -1) + 1/700 x z DATA(-1, 2, -1) + + 2 2 + - 1/700 x z DATA(2, 1, -1) - 1/700 x z DATA(1, 2, -1) + + 2 2 + - 1/1400 x z DATA(-1, -1, -1) - 1/175 x z DATA(-2, 2, 2) + + 2 2 + - 1/1400 x z DATA(1, 1, 1) - 1/350 x z DATA(-2, 1, 2) + + 2 2 + - 1/175 x z DATA(2, -2, 2) + 1/350 x z DATA(-2, -1, 2) + + 2 2 + - 1/350 x z DATA(1, -2, 2) - 1/700 x z DATA(1, 1, 0) + + 2 2 + - 1/700 x z DATA(1, -1, -2) - 1/350 x z DATA(2, -1, -2) + + 2 2 + - 1/350 x z DATA(-2, 1, -2) - 1/700 x z DATA(-1, 1, -2) + + 2 2 + + 1/700 x z DATA(1, 1, -2) + 1/350 x z DATA(2, 1, -2) + + 2 2 + - 1/175 x z DATA(-2, 2, -2) - 1/350 x z DATA(2, 2, 1) + + 2 2 + + 1/700 x z DATA(-1, -1, 2) - 1/350 x z DATA(2, -1, 2) + + 2 2 + - 1/700 x z DATA(1, -1, 2) + 1/175 x z DATA(-2, -2, -2) + + 2 2 + - 1/700 x z DATA(-1, 1, 2) + 1/350 x z DATA(-1, -2, -2) + + 2 2 + - 1/350 x z DATA(-1, 2, 2) + 1/175 x z DATA(-2, -2, 2) + + 2 2 + + 1/100 x y DATA(-2, -2, 2) - 1/100 x y DATA(-2, 2, 1) + + 2 2 + + 1/50 x y DATA(-2, 1, 1) - 1/50 x y DATA(-2, -1, 1) + + 2 2 + - 1/100 x y DATA(2, -2, 1) - 1/100 x y DATA(1, 1, 2) + + 2 + - 1/200 x y DATA(1, -2, 1) + 2/175 x y DATA(2, 2, -2) + + + 1/175 x y DATA(1, 2, -2) - 2/175 x y DATA(-2, -2, -1) + + - 1/350 x y DATA(1, -1, -2) + 1/350 x y DATA(-1, -1, -2) + + + 2/175 x y DATA(2, -2, -1) + 1/175 x y DATA(1, -2, -1) + + - 1/175 x y DATA(-1, -2, -1) + 1/175 x y DATA(-2, 1, -2) + + - 1/175 x y DATA(2, -1, -2) - 1/350 x y DATA(1, 1, -2) + + + 1/350 x y DATA(-1, 1, -2) - 2/175 x y DATA(-2, 2, -2) + + - 1/175 x y DATA(2, 1, -2) - 1/350 x y DATA(1, -1, 2) + + - 1/175 x y DATA(2, -1, 2) + 1/350 x y DATA(-1, -1, 2) + + + 2/175 x y DATA(2, 2, 1) + 1/42 DATA(-2, 1, 1) + + - 1/175 x y DATA(-1, -2, -2) + 1/350 x y DATA(-1, 1, 2) + + - 2/175 x y DATA(-2, -2, -2) + 1/350 x y DATA(-1, 1, -1) + + + 1/175 x y DATA(1, -2, -2) - 1/175 x y DATA(2, 1, 2) + + 19 + - 1/175 x y DATA(-1, 2, 2) - ---- DATA(-2, 2, 1) + 2/175 x y DATA(2, 2, 2) + 2100 + + + 2/175 x y DATA(2, -2, -2) - 1/350 x y DATA(1, -1, -1) + + + 2/175 x y DATA(2, 2, -1) + 1/175 x y DATA(1, 2, 2) + + + 1/175 x y DATA(-2, -1, -2) + 1/175 x y DATA(1, 2, 1) + + - 1/175 x y DATA(2, -1, 1) - 1/175 x y DATA(-1, 2, 1) + + 11 2 2 + + --- DATA(-2, -2, 2) + 1/175 z DATA(1, 2, 2) - 1/100 x y DATA(-2, 2, 0) + 420 + + 2 2 + + 1/50 x y DATA(-2, 1, 0) - 1/245 y z DATA(0, -2, 1) + + - 1/175 x y DATA(2, -1, -1) - 1/175 x y DATA(-1, 2, -1) + + - 1/175 x y DATA(2, 1, -1) + 1/175 x y DATA(1, 2, -1) + + + 1/350 x y DATA(-1, -1, -1) - 2/175 x y DATA(-2, 2, 2) + + - 1/350 x y DATA(1, 1, 1) + 1/175 x y DATA(-2, 1, 2) + + + 2/175 x y DATA(2, -2, 2) + 1/175 x y DATA(-2, -1, 2) + + + 1/175 x y DATA(1, -2, 2) - 1/350 x y DATA(1, 1, 0) + + - 1/175 x y DATA(-1, -2, 2) + 1/350 x y DATA(-1, -1, 1) + + - 1/350 x y DATA(1, -1, 1) + 1/350 x y DATA(-1, 1, 1) + + + 1/350 x y DATA(-1, 1, 0) - 1/350 x y DATA(1, -1, 0) + + 2 + + 1/350 x y DATA(-1, -1, 0) + 1/1400 x z DATA(-1, -1, 1) + + 2 2 + + 1/1400 x z DATA(1, -1, 1) - 1/1400 x z DATA(-1, 1, 1) + + 2 2 + + 1/490 y z DATA(0, 1, -1) + 1/245 y z DATA(0, -1, 0) + + 2 2 + + 1/490 y z DATA(0, -1, 1) + 2/245 y z DATA(0, -2, 2) + + - 1/175 x y DATA(2, 1, 1) + +> coeff_as_lc_of_data(%, posn_list_3d_size5); +bytes used=1498897760, alloc=15136044, time=201.54 +bytes used=1499897924, alloc=15136044, time=201.63 +bytes used=1500913592, alloc=15136044, time=201.71 +bytes used=1501948428, alloc=15136044, time=201.80 +bytes used=1503128616, alloc=15136044, time=201.89 +bytes used=1504287644, alloc=15136044, time=201.98 +bytes used=1505425440, alloc=15136044, time=202.07 +bytes used=1506549104, alloc=15136044, time=202.16 +bytes used=1507658208, alloc=15136044, time=202.25 +bytes used=1508746340, alloc=15136044, time=202.35 +bytes used=1509813632, alloc=15136044, time=202.44 +bytes used=1510858196, alloc=15136044, time=202.53 +bytes used=1511880744, alloc=15136044, time=202.63 +bytes used=1512881996, alloc=15136044, time=202.72 +bytes used=1513937040, alloc=15136044, time=202.82 +bytes used=1514937580, alloc=15136044, time=202.92 +bytes used=1515937936, alloc=15136044, time=203.02 +bytes used=1517003656, alloc=15136044, time=203.12 +bytes used=1518003960, alloc=15136044, time=203.22 +bytes used=1519106576, alloc=15136044, time=203.33 +bytes used=1520106924, alloc=15136044, time=203.43 +bytes used=1521110012, alloc=15136044, time=203.54 +bytes used=1522247204, alloc=15136044, time=203.65 +bytes used=1523336344, alloc=15136044, time=203.77 +bytes used=1524383712, alloc=15136044, time=203.88 +bytes used=1525426560, alloc=15136044, time=203.99 +bytes used=1526426968, alloc=15136044, time=204.11 +bytes used=1527520228, alloc=15136044, time=204.23 +bytes used=1528520472, alloc=15136044, time=204.35 +bytes used=1529562276, alloc=15136044, time=204.47 +bytes used=1530562876, alloc=15136044, time=204.60 +bytes used=1531594292, alloc=15136044, time=204.73 +bytes used=1532638292, alloc=15136044, time=204.87 +bytes used=1533657708, alloc=15136044, time=205.01 +bytes used=1534664944, alloc=15136044, time=205.15 +bytes used=1535700564, alloc=15136044, time=205.29 +bytes used=1536722020, alloc=15136044, time=205.43 +bytes used=1537744000, alloc=15136044, time=205.52 +bytes used=1538791820, alloc=15136044, time=205.58 +bytes used=1539839248, alloc=15136044, time=205.65 +bytes used=1540886748, alloc=15136044, time=205.72 +bytes used=1541934344, alloc=15136044, time=205.79 +bytes used=1542981772, alloc=15136044, time=205.86 + 137 11 137 2 +[COEFF(-2, -2, -2) = - ---- x + --- - ---- z - 1/125 x z + 1/100 x y + 5250 420 5250 + + 3 2 2 2 2 529 + + 1/300 x - 1/175 x + 1/100 y z + 1/175 x z - 1/175 z - ----- y + 14700 + + 2 3 2 3 2 + + 1/175 x z + 1/150 y + 2/245 x y + 2/175 x y z + 1/300 z - 1/100 y + + 2 2 + + 2/245 y z - 2/175 y z - 2/175 x y, COEFF(-1, -2, -2) = 1/350 x z + + 2 107 19 169 3 47 + + 2/245 y z + ---- x + ---- - ----- y + 1/150 y - 1/250 x z - ---- z + 7000 2100 14700 5250 + + 3 3 2 2 2 + + 1/300 z - 1/150 x - 1/245 x y - 1/175 x y - 1/350 x z - 1/175 z + + 2 2 2 2 + - 1/100 y + 1/100 y z + 1/175 x y z + 1/350 x - 2/175 y z + 1/200 x y , + + 2 2 2 + COEFF(0, -2, -2) = - 1/300 y - 2/175 y z + 1/175 x - 1/100 y - 1/175 x z + + 3 2 3 17 2 + + 1/300 z + 1/300 + 1/100 y z + 1/150 y - ---- z - 1/175 z + 5250 + + 2 2 47 3 + - 2/245 x y + 2/245 y z , COEFF(1, -2, -2) = - ---- z + 1/150 x + 5250 + + 169 2 2 + - 2/175 y z - 1/175 x y z + 1/175 x y - ----- y + 1/350 x - 1/100 y + 14700 + + 2 2 19 2 3 2 + - 1/200 x y + 2/245 y z + ---- - 1/350 x z + 1/300 z - 1/245 x y + 2100 + + 107 2 2 2 3 + + 1/250 x z - ---- x - 1/175 z - 1/350 x z + 1/100 y z + 1/150 y , + 7000 + + 3 2 137 137 2 + COEFF(2, -2, -2) = 1/300 z - 1/175 z - ---- z + ---- x - 1/100 y + 5250 5250 + + 2 529 2 + + 1/100 y z - ----- y + 1/125 x z + 2/175 x y + 2/245 x y - 2/175 x y z + 14700 + + 2 3 2 2 2 + - 2/175 y z - 1/175 x z - 1/300 x + 1/175 x z + 2/245 y z - 1/175 x + + 11 2 3 107 + + --- - 1/100 x y + 1/150 y , COEFF(-2, -1, -2) = ---- z - 1/175 x y z + 420 7000 + + 3 2 2 3 + + 1/600 z + 1/175 x y - 1/350 z + 1/175 y z + 1/350 x z - 2/75 y + + 3 256 2 2 2 + + 1/600 x + ---- y + 1/50 y - 1/245 x y - 1/250 x z - 1/50 y z + 3675 + + 2 2 2 107 2 + - 1/50 x y - 8/525 - 1/350 x + 1/350 x z + ---- x - 1/245 y z , + 7000 + + 2 2 229 + COEFF(-1, -1, -2) = - 1/245 y z + 1/175 y z + 1/700 x z + ----- x + 10500 + + 2 2 3 2 3 + - 1/50 y z + 1/350 x y + 1/490 x y - 2/75 y - 1/350 z - 1/300 x + + 2 2 211 2 + - 1/42 - 1/100 x y + 1/700 x + ---- y - 1/700 x z - 1/350 x y z + 3675 + + 2 167 3 3 + - 1/500 x z + 1/50 y + ---- z + 1/600 z , COEFF(0, -1, -2) = - 2/75 y + 7000 + + 2 2 2 2 2 + - 1/350 z - 1/350 x z + 1/350 x + 1/175 y z + 1/245 x y - 1/245 y z + + 2 187 2 3 + - 1/50 y z + ---- z - 2/75 + 1/50 y + 4/75 y + 1/600 z , + 7000 + + 211 2 + COEFF(1, -1, -2) = 1/350 x y z + 1/175 y z + ---- y - 1/700 x z + 3675 + + 2 2 2 2 3 + - 1/350 x y + 1/490 x y + 1/100 x y - 1/245 y z - 1/350 z - 2/75 y + + 167 2 3 3 229 + + ---- z + 1/50 y - 1/42 + 1/600 z + 1/300 x - ----- x + 1/500 x z + 7000 10500 + + 2 2 2 107 3 + - 1/700 x z + 1/700 x - 1/50 y z, COEFF(2, -1, -2) = - ---- x - 2/75 y + 7000 + + 3 2 2 3 + + 1/250 x z + 1/600 z + 1/350 x z + 1/50 y - 1/600 x + 1/175 x y z + + 2 2 2 2 2 + - 1/350 z + 1/50 x y - 8/525 - 1/50 y z - 1/245 x y - 1/245 y z + + 2 107 256 2 + - 1/350 x z - 1/175 x y + ---- z + ---- y - 1/350 x + 1/175 y z, + 7000 3675 + + 3 2 + COEFF(-2, 0, -2) = 1/25 y - 2/175 x y z - 2/245 y z + 2/175 y z + + 33 2 + + 2/175 x y - --- y - 2/245 x y, COEFF(-1, 0, -2) = 2/175 y z + 1/175 x y + 490 + + 2 3 2 + - 9/98 y + 1/245 x y + 1/25 y - 2/245 y z - 1/175 x y z, + + 3 2 2 + COEFF(0, 0, -2) = 1/25 y - 2/245 y z + 2/175 y z - 1/10 y + 2/245 x y, + + 2 3 + COEFF(1, 0, -2) = - 9/98 y + 1/245 x y + 1/175 x y z - 1/175 x y + 1/25 y + + 2 2 3 33 + + 2/175 y z - 2/245 y z , COEFF(2, 0, -2) = - 2/245 x y + 1/25 y - --- y + 490 + + 2 + - 2/245 y z + 2/175 x y z + 2/175 y z - 2/175 x y, COEFF(-2, 1, -2) = + + 2 3 107 2 2 + - 1/245 y z - 1/600 x + 1/175 x y - ---- x - 1/350 x z + 1/350 z + 7000 + + 2 2 2 2 + + 1/50 x y + 1/350 x + 1/50 y z - 1/245 x y + 1/175 y z + 8/525 + + 2 2 3 107 + - 1/350 x z - 1/50 y - 1/175 x y z - 2/75 y + 1/250 x z - ---- z + 7000 + + 3 256 3 3 + - 1/600 z + ---- y, COEFF(-1, 1, -2) = - 2/75 y + 1/500 x z + 1/300 x + 3675 + + 2 211 3 2 + - 1/700 x + 1/175 y z - 1/350 x y z + ---- y - 1/600 z - 1/50 y + 3675 + + 2 2 2 2 2 229 + + 1/50 y z + 1/700 x z + 1/100 x y + 1/350 z - 1/245 y z - ----- x + 10500 + + 167 2 2 + + 1/42 + 1/350 x y - ---- z + 1/490 x y - 1/700 x z , COEFF(0, 1, -2) = + 7000 + + 2 2 2 3 2 2 + 2/75 - 1/50 y + 1/245 x y - 1/245 y z - 2/75 y - 1/350 x + 1/350 z + + 3 187 2 2 + - 1/600 z + 1/175 y z + 4/75 y - ---- z + 1/50 y z + 1/350 x z, + 7000 + + 2 2 + COEFF(1, 1, -2) = 1/700 x z + 1/350 x y z - 1/500 x z + 1/42 - 1/100 x y + + 3 2 2 167 2 2 + - 1/600 z - 1/700 x + 1/700 x z - ---- z - 1/245 y z + 1/50 y z + 7000 + + 229 211 3 2 2 3 + + ----- x + ---- y - 1/300 x - 1/50 y + 1/350 z - 2/75 y + 1/175 y z + 10500 3675 + + 2 + + 1/490 x y - 1/350 x y, COEFF(2, 1, -2) = 1/175 x y z - 1/250 x z + + 3 107 2 2 256 + + 1/600 x - ---- z - 1/50 x y - 1/175 x y + 1/350 x z + 8/525 + ---- y + 7000 3675 + + 107 3 2 2 2 2 + + ---- x - 2/75 y + 1/50 y z + 1/350 z - 1/245 y z - 1/350 x z + 7000 + + 2 3 2 2 + - 1/245 x y + 1/175 y z - 1/600 z - 1/50 y + 1/350 x , COEFF(-2, 2, -2) + + 529 2 2 2 + = - ----- y + 2/245 x y - 1/100 x y + 1/175 z - 2/175 x y + 1/125 x z + 14700 + + 3 2 137 137 2 + + 1/150 y + 1/100 y + ---- z + ---- x - 2/175 y z - 1/175 x z + 5250 5250 + + 2 3 2 2 2 + + 1/175 x - 1/300 x - 1/175 x z + 2/175 x y z - 1/100 y z + 2/245 y z + + 11 3 2 3 + - --- - 1/300 z , COEFF(-1, 2, -2) = - 1/245 x y + 1/175 x y z + 1/150 y + 420 + + 2 2 2 2 3 + - 1/100 y z - 1/200 x y - 2/175 y z + 1/175 z - 1/350 x z + 1/150 x + + 19 2 47 2 3 107 + + 1/250 x z - ---- + 2/245 y z + ---- z + 1/350 x z - 1/300 z - ---- x + 2100 5250 7000 + + 2 2 169 + - 1/175 x y - 1/350 x + 1/100 y - ----- y, COEFF(0, 2, -2) = - 1/300 + 14700 + + 3 17 2 2 2 + + 1/150 y + ---- z + 1/175 z - 2/175 y z + 2/245 y z - 2/245 x y + 5250 + + 2 3 2 2 2 + - 1/175 x - 1/300 z + 1/175 x z + 1/100 y - 1/300 y - 1/100 y z, + + 3 2 2 2 + COEFF(1, 2, -2) = - 1/300 z + 1/350 x z + 1/100 y + 1/200 x y + + 2 169 2 3 2 2 + + 1/175 z - ----- y + 1/350 x z - 1/150 x - 1/350 x - 1/100 y z + 14700 + + 107 47 3 + - 2/175 y z + ---- x + ---- z + 1/150 y - 1/250 x z + 1/175 x y + 7000 5250 + + 2 19 2 + - 1/245 x y - ---- - 1/175 x y z + 2/245 y z , COEFF(2, 2, -2) = + 2100 + + 529 2 3 3 11 2 + - ----- y - 2/175 y z + 2/245 y z + 1/300 x + 1/150 y - --- + 1/175 z + 14700 420 + + 2 2 2 2 137 + + 1/175 x + 1/100 x y + 1/100 y - 1/175 x z - 2/175 x y z - ---- x + 5250 + + 3 2 137 2 2 + - 1/300 z + 2/175 x y + 2/245 x y + ---- z - 1/100 y z + 1/175 x z + 5250 + + 47 169 + - 1/125 x z, COEFF(-2, -2, -1) = - ---- x - 1/250 x z - ----- y + 5250 14700 + + 2 2 2 + - 2/175 x y - 1/175 y z + 2/245 x y - 1/350 x z + 1/200 y z + + 2 2 3 19 2 2 + + 1/100 x y + 1/350 x z - 1/150 z + ---- + 1/350 z - 1/100 y + 2100 + + 3 107 2 3 2 + + 1/150 y + 1/175 x y z + ---- z - 1/245 y z + 1/300 x - 1/175 x , + 7000 + + 2 167 2 3 2 + COEFF(-1, -2, -1) = 1/350 x + ---- x - 1/245 x y - 1/150 z + 1/200 x y + 7000 + + 2 167 2 17 + + 1/350 z + ---- z - 1/700 x z - ---- - 1/500 x z + 1/350 x y z + 7000 2100 + + 2 2 191 3 2 + - 1/245 y z + 1/200 y z + ----- y - 1/175 x y - 1/150 x - 1/100 y + 14700 + + 3 2 187 + + 1/150 y - 1/700 x z - 1/175 y z, COEFF(0, -2, -1) = ---- z + 7000 + + 2 29 3 2 2 + + 1/200 y z - ---- - 1/150 z + 1/175 x - 1/245 y z - 1/175 y z + 2100 + + 3 311 2 2 2 2 + + 1/150 y + ----- y - 1/100 y - 1/350 x z + 1/350 z - 2/245 x y, + 14700 + + 3 2 3 17 + COEFF(1, -2, -1) = 1/150 x - 1/350 x y z - 1/700 x z + 1/150 y - ---- + 2100 + + 2 2 2 2 191 + - 1/245 x y - 1/100 y - 1/175 y z - 1/245 y z + 1/700 x z + ----- y + 14700 + + 2 167 167 2 + + 1/350 z + ---- z + 1/500 x z - ---- x + 1/350 x + 1/175 x y + 7000 7000 + + 2 2 3 2 19 + + 1/200 y z - 1/200 x y - 1/150 z , COEFF(2, -2, -1) = 1/350 x z + ---- + 2100 + + 47 2 2 + + 1/250 x z + ---- x - 1/175 y z - 1/175 x + 1/200 y z + 2/175 x y + 5250 + + 2 2 2 2 107 + + 2/245 x y - 1/100 y - 1/100 x y + 1/350 z - 1/175 x y z + ---- z + 7000 + + 3 2 169 3 2 3 + + 1/150 y - 1/245 y z - ----- y - 1/300 x + 1/350 x z - 1/150 z , + 14700 + + 211 2 + COEFF(-2, -1, -1) = - 1/42 + 1/350 y z + ---- y - 1/350 x - 1/500 x z + 3675 + + 2 2 2 2 3 3 + - 1/245 x y - 1/100 y z - 1/50 x y + 1/490 y z + 1/600 x - 2/75 y + + 2 3 2 229 + + 1/700 z - 1/350 x y z + 1/175 x y - 1/300 z + 1/700 x z + ----- z + 10500 + + 167 2 2 2 + + ---- x + 1/50 y - 1/700 x z , COEFF(-1, -1, -1) = - 1/1400 x z + 7000 + + 2 137 2 2 3 + + 1/700 x + ---- z - 1/100 y z - 1/1000 x z + 1/490 x y - 2/75 y + 5250 + + 2 3 2 2 17 + - 1/1400 x z - 1/300 x + 1/490 y z + 1/700 z + 1/350 y z - --- + 525 + + 2 3 137 166 + - 1/100 x y - 1/300 z + ---- x + ---- y - 1/700 x y z + 1/350 x y + 5250 3675 + + 2 3 289 2 + + 1/50 y , COEFF(0, -1, -1) = - 1/300 z + ----- z + 1/245 x y + 10500 + + 2 2 2 2 151 + + 1/490 y z + 1/350 x + 1/50 y - 1/700 x z + 1/350 y z + ---- y + 3675 + + 2 37 3 2 3 + + 1/700 z - ---- - 2/75 y - 1/100 y z, COEFF(1, -1, -1) = - 2/75 y + 1050 + + 137 2 2 2 + + ---- z - 1/100 y z + 1/700 x y z + 1/100 x y + 1/350 y z + 1/490 x y + 5250 + + 3 2 166 2 + - 1/350 x y - 1/300 z + 1/700 x + ---- y - 1/1400 x z + 1/1000 x z + 3675 + + 2 2 2 2 17 137 3 + + 1/490 y z + 1/1400 x z + 1/50 y + 1/700 z - --- - ---- x + 1/300 x , + 525 5250 + + 2 229 3 2 2 + COEFF(2, -1, -1) = 1/700 z + ----- z - 1/600 x + 1/700 x z + 1/490 y z + 10500 + + 2 2 2 2 + - 1/350 x - 1/100 y z - 1/175 x y + 1/700 x z + 1/50 y + 1/500 x z + + 2 167 3 3 + + 1/50 x y - ---- x - 1/300 z + 1/350 y z - 2/75 y - 1/42 + 1/350 x y z + 7000 + + 2 211 2 + - 1/245 x y + ---- y, COEFF(-2, 0, -1) = - 1/175 x y z + 1/245 y z + 3675 + + 3 2 + + 1/175 y z - 9/98 y + 1/25 y + 2/175 x y - 2/245 x y, COEFF(-1, 0, -1) + + 2 2 57 + = 1/175 x y + 1/245 y z + 1/245 x y - 1/350 x y z + 1/175 y z - --- y + 490 + + 3 + + 1/25 y , + + 3 61 2 2 + COEFF(0, 0, -1) = 1/25 y - --- y + 2/245 x y + 1/175 y z + 1/245 y z , + 490 + + 2 57 2 + COEFF(1, 0, -1) = 1/245 x y - --- y + 1/350 x y z - 1/175 x y + 1/245 y z + 490 + + 3 + + 1/175 y z + 1/25 y , COEFF(2, 0, -1) = 1/175 x y z + 1/175 y z - 9/98 y + + 2 2 3 + - 2/245 x y + 1/245 y z + 1/25 y - 2/175 x y, COEFF(-2, 1, -1) = + + 2 3 211 2 167 2 + 1/700 x z - 2/75 y + ---- y + 1/350 x - ---- x + 1/175 x y + 1/490 y z + 3675 7000 + + 2 3 2 2 2 2 + + 1/50 x y + 1/300 z - 1/245 x y - 1/50 y + 1/100 y z - 1/700 z + + 2 3 229 + - 1/350 x y z - 1/700 x z + 1/42 - 1/600 x + 1/500 x z - ----- z + 10500 + + 3 2 2 17 + + 1/350 y z, COEFF(-1, 1, -1) = - 2/75 y + 1/100 y z + 1/1400 x z + --- + 525 + + 3 166 137 2 2 + + 1/300 z + ---- y - ---- z - 1/700 x y z + 1/490 x y + 1/100 x y + 3675 5250 + + 2 2 3 2 + - 1/50 y + 1/1000 x z - 1/700 x + 1/350 y z + 1/300 x + 1/1400 x z + + 2 137 2 2 + + 1/490 y z - ---- x - 1/700 z + 1/350 x y, COEFF(0, 1, -1) = 1/100 y z + 5250 + + 151 3 2 2 2 2 + + ---- y - 2/75 y - 1/50 y + 1/700 x z + 1/245 x y + 1/490 y z + 3675 + + 3 37 289 2 2 + + 1/300 z + ---- - ----- z - 1/350 x - 1/700 z + 1/350 y z, + 1050 10500 + + 137 2 2 + COEFF(1, 1, -1) = - 1/1000 x z - 1/350 x y + ---- x - 1/100 x y - 1/700 x + 5250 + + 3 2 17 2 137 3 2 + - 1/300 x - 1/50 y + --- + 1/1400 x z - ---- z + 1/300 z + 1/490 x y + 525 5250 + + 166 2 3 2 + + ---- y - 1/700 z - 2/75 y + 1/100 y z + 1/700 x y z + 1/350 y z + 3675 + + 2 2 2 2 + + 1/490 y z - 1/1400 x z , COEFF(2, 1, -1) = - 1/700 x z + 1/350 x + + 229 2 2 3 2 + - ----- z + 1/490 y z + 1/100 y z - 1/175 x y - 2/75 y - 1/700 x z + 10500 + + 2 167 2 211 2 + - 1/700 z + ---- x - 1/50 x y + ---- y + 1/350 y z - 1/245 x y + 7000 3675 + + 3 3 2 + + 1/600 x + 1/350 x y z + 1/300 z + 1/42 - 1/500 x z - 1/50 y , + + 3 2 2 + COEFF(-2, 2, -1) = 1/150 z - 1/245 y z - 2/175 x y - 1/100 x y + + 2 169 2 2 + - 1/350 x z - ----- y + 1/250 x z + 1/175 x y z + 1/350 x z + 1/100 y + 14700 + + 2 47 3 3 2 + - 1/200 y z + ---- x - 1/300 x - 1/175 y z + 1/150 y + 1/175 x + 5250 + + 107 19 2 2 3 + - ---- z - ---- + 2/245 x y - 1/350 z , COEFF(-1, 2, -1) = 1/150 y + 7000 2100 + + 2 2 3 + - 1/200 x y + 1/350 x y z + 1/500 x z - 1/175 y z - 1/350 x + 1/150 x + + 2 2 2 2 167 2 + - 1/245 x y - 1/245 y z - 1/200 y z - 1/350 z - ---- z + 1/700 x z + 7000 + + 2 2 167 17 3 191 + + 1/700 x z + 1/100 y - ---- x + ---- - 1/175 x y + 1/150 z + ----- y, + 7000 2100 14700 + + 2 2 2 29 2 + COEFF(0, 2, -1) = - 2/245 x y - 1/245 y z - 1/175 x + ---- - 1/200 y z + 2100 + + 2 3 2 3 187 + + 1/100 y + 1/150 y - 1/350 z - 1/175 y z + 1/150 z - ---- z + 7000 + + 2 311 3 167 167 + + 1/350 x z + ----- y, COEFF(1, 2, -1) = - 1/150 x + ---- x - ---- z + 14700 7000 7000 + + 191 2 2 2 3 + + ----- y - 1/700 x z - 1/350 z + 1/200 x y - 1/350 x y z + 1/150 y + 14700 + + 2 2 3 2 2 + + 1/175 x y - 1/245 x y - 1/350 x + 1/150 z - 1/245 y z + 1/700 x z + + 2 2 17 + - 1/175 y z - 1/500 x z + 1/100 y - 1/200 y z + ----, COEFF(2, 2, -1) = + 2100 + + 2 3 107 2 19 2 2 + 1/100 x y + 1/150 z - ---- z - 1/200 y z - ---- + 2/245 x y + 1/100 y + 7000 2100 + + 2 169 2 + - 1/250 x z - 1/245 y z - ----- y - 1/175 x y z + 2/175 x y - 1/350 x z + 14700 + + 2 2 2 47 3 + - 1/350 z - 1/350 x z + 1/175 x - ---- x - 1/175 y z + 1/150 y + 5250 + + 3 2 2 2 + + 1/300 x , COEFF(-2, -2, 0) = - 2/245 y z - 1/175 x z + 1/100 x y + + 2 2 3 + - 1/100 y - 1/175 x + 1/300 + 1/300 x - 2/175 x y - 1/300 y + + 2 17 2 3 2 + + 2/245 x y - ---- x + 1/175 z + 1/150 y , COEFF(-1, -2, 0) = 1/200 x y + 5250 + + 3 2 2 29 2 2 + + 1/150 y - 1/100 y - 1/245 x y - ---- - 1/350 x z - 2/245 y z + 2100 + + 187 311 3 2 2 + - 1/175 x y + ---- x + ----- y - 1/150 x + 1/175 z + 1/350 x , + 7000 14700 + + 3 2 2 2 431 + COEFF(0, -2, 0) = 1/150 y - 2/245 y z - 1/100 y + 1/175 z + ----- y + 14700 + + 41 2 2 187 2 + - ---- + 1/175 x - 2/245 x y, COEFF(1, -2, 0) = - ---- x - 1/200 x y + 2100 7000 + + 2 2 3 2 2 + + 1/175 z - 1/100 y + 1/150 x + 1/175 x y - 2/245 y z + 1/350 x + + 29 311 2 2 3 + - ---- + ----- y + 1/350 x z - 1/245 x y + 1/150 y , COEFF(2, -2, 0) = + 2100 14700 + + 3 17 2 2 2 + - 1/300 x - 1/300 y + ---- x - 1/175 x - 1/100 y + 1/175 x z + 5250 + + 2 2 2 3 2 + - 2/245 y z + 1/300 - 1/100 x y + 1/175 z + 1/150 y + 2/245 x y + + 3 3 2 187 + + 2/175 x y, COEFF(-2, -1, 0) = - 2/75 y + 1/600 x - 1/350 x z + ---- x + 7000 + + 2 2 2 2 + + 1/175 x y + 1/350 z - 2/75 - 1/350 x + 4/75 y + 1/50 y - 1/50 x y + + 2 2 2 2 289 + + 1/245 y z - 1/245 x y, COEFF(-1, -1, 0) = 1/50 y + 1/700 x + ----- x + 10500 + + 2 37 2 2 2 + - 1/100 x y - ---- + 1/350 x y + 1/245 y z + 1/350 z - 1/700 x z + 1050 + + 151 3 3 2 2 + + ---- y - 2/75 y - 1/300 x + 1/490 x y, COEFF(0, -1, 0) = 1/350 x + 3675 + + 2 3 2 2 2 136 + + 1/245 x y - 2/75 y + 1/350 z + 1/50 y + 1/245 y z + ---- y - 4/105, + 3675 + + 2 2 37 2 2 + COEFF(1, -1, 0) = 1/350 z + 1/100 x y - ---- + 1/490 x y + 1/700 x z + 1050 + + 289 2 2 3 3 151 + - ----- x + 1/50 y - 1/350 x y + 1/245 y z + 1/300 x - 2/75 y + ---- y + 10500 3675 + + 2 2 2 2 + + 1/700 x , COEFF(2, -1, 0) = - 1/350 x - 1/245 x y + 1/50 x y + + 2 3 2 2 187 + + 1/350 x z - 2/75 y + 4/75 y + 1/350 z + 1/50 y - 2/75 - ---- x + 7000 + + 2 3 + + 1/245 y z - 1/175 x y - 1/600 x , + + 3 2 2 + COEFF(-2, 0, 0) = 1/25 y + 2/245 y z - 1/10 y - 2/245 x y + 2/175 x y, + + 61 2 2 3 + COEFF(-1, 0, 0) = - --- y + 1/245 x y + 2/245 y z + 1/25 y + 1/175 x y, + 490 + + 3 13 2 2 + COEFF(0, 0, 0) = 1/25 y - -- y + 2/245 y z + 2/245 x y, + 98 + + 2 2 61 3 + COEFF(1, 0, 0) = 2/245 y z + 1/245 x y - --- y - 1/175 x y + 1/25 y , + 490 + + 2 2 3 + COEFF(2, 0, 0) = - 2/175 x y + 2/245 y z - 2/245 x y - 1/10 y + 1/25 y , + + 2 2 2 2 3 + COEFF(-2, 1, 0) = 1/350 x + 1/50 x y - 1/245 x y - 1/350 z - 2/75 y + + 2 2 3 187 + - 1/50 y + 1/245 y z + 4/75 y - 1/600 x + 1/175 x y - ---- x + 7000 + + 2 2 3 + + 1/350 x z + 2/75, COEFF(-1, 1, 0) = 1/245 y z + 1/350 x y + 1/300 x + + 2 2 151 289 2 3 2 + - 1/700 x - 1/350 z + ---- y - ----- x + 1/490 x y - 2/75 y - 1/50 y + 3675 10500 + + 2 37 2 2 + + 1/100 x y + ---- + 1/700 x z , COEFF(0, 1, 0) = 4/105 - 1/350 x + 1050 + + 2 2 2 2 136 3 + - 1/350 z + 1/245 x y + 1/245 y z - 1/50 y + ---- y - 2/75 y , + 3675 + + 2 2 289 3 3 + COEFF(1, 1, 0) = - 1/700 x z - 1/100 x y + ----- x - 1/300 x - 2/75 y + 10500 + + 2 2 2 2 37 2 151 + - 1/700 x - 1/50 y + 1/490 x y + 1/245 y z + ---- - 1/350 z + ---- y + 1050 3675 + + 2 3 3 2 + - 1/350 x y, COEFF(2, 1, 0) = 1/350 x - 2/75 y + 1/600 x - 1/245 x y + + 187 2 2 2 2 + + ---- x + 1/245 y z + 4/75 y - 1/350 x z - 1/50 x y - 1/50 y + 7000 + + 2 2 + - 1/175 x y + 2/75 - 1/350 z , COEFF(-2, 2, 0) = - 1/100 x y - 2/175 x y + + 2 17 2 3 2 2 + + 2/245 x y + ---- x - 1/175 z - 1/300 x + 1/175 x + 1/175 x z + 5250 + + 3 2 2 + + 1/150 y + 1/100 y - 2/245 y z - 1/300 y - 1/300, COEFF(-1, 2, 0) = + + 311 2 2 2 3 187 + ----- y - 2/245 y z - 1/245 x y - 1/200 x y + 1/150 x - ---- x + 14700 7000 + + 3 2 2 2 29 + + 1/150 y + 1/350 x z - 1/175 z - 1/175 x y - 1/350 x + ---- + 2100 + + 2 2 431 2 2 + + 1/100 y , COEFF(0, 2, 0) = 1/100 y + ----- y - 2/245 y z - 1/175 z + 14700 + + 3 2 2 41 3 + + 1/150 y - 2/245 x y - 1/175 x + ----, COEFF(1, 2, 0) = 1/150 y + 2100 + + 29 2 2 311 2 2 + + ---- - 1/175 z + 1/100 y + ----- y + 1/200 x y - 1/350 x + 2100 14700 + + 2 187 3 2 2 + - 1/245 x y + ---- x - 1/150 x - 2/245 y z + 1/175 x y - 1/350 x z , + 7000 + + 2 2 2 3 + COEFF(2, 2, 0) = 1/100 y + 1/100 x y - 2/245 y z + 1/300 x + 2/175 x y + + 3 2 2 2 17 + - 1/300 y + 1/150 y - 1/175 x z - 1/175 z + 2/245 x y - ---- x + 5250 + + 2 3 2 2 + + 1/175 x - 1/300, COEFF(-2, -2, 1) = 1/150 z - 1/100 y - 1/175 x + + 2 2 + + 1/250 x z - 1/350 x z - 1/175 x y z + 1/175 y z + 1/100 x y + + 2 19 107 2 3 + + 2/245 x y + ---- - ---- z - 1/245 y z - 2/175 x y + 1/300 x + 2100 7000 + + 2 2 3 2 169 47 + - 1/350 x z - 1/200 y z + 1/150 y + 1/350 z - ----- y - ---- x, + 14700 5250 + + 167 3 167 + COEFF(-1, -2, 1) = ---- x - 1/350 x y z + 1/150 z - ---- z + 1/500 x z + 7000 7000 + + 2 3 2 2 191 17 + + 1/350 z - 1/150 x - 1/175 x y - 1/100 y - 1/200 y z + ----- y - ---- + 14700 2100 + + 2 2 2 3 2 2 + + 1/350 x - 1/245 x y - 1/700 x z + 1/150 y + 1/200 x y - 1/245 y z + + 2 2 2 + + 1/700 x z + 1/175 y z, COEFF(0, -2, 1) = 1/350 z - 1/100 y + + 3 2 2 187 29 311 + + 1/175 y z + 1/150 y - 2/245 x y + 1/175 x - ---- z - ---- + ----- y + 7000 2100 14700 + + 3 2 2 2 + + 1/150 z + 1/350 x z - 1/200 y z - 1/245 y z , COEFF(1, -2, 1) = + + 191 167 2 3 2 167 + ----- y - ---- z + 1/175 y z - 1/100 y + 1/150 x - 1/200 x y - ---- x + 14700 7000 7000 + + 3 2 17 2 2 3 + + 1/150 z + 1/700 x z - ---- + 1/350 z - 1/245 y z + 1/150 y + 2100 + + 2 2 + - 1/200 y z - 1/500 x z - 1/245 x y + 1/350 x y z + 1/175 x y + + 2 2 2 + + 1/700 x z + 1/350 x , COEFF(2, -2, 1) = - 1/175 x + 2/175 x y + + 169 3 2 2 2 2 + - ----- y + 1/150 z - 1/100 y + 2/245 x y - 1/245 y z - 1/200 y z + 14700 + + 19 3 107 2 + + ---- - 1/300 x - ---- z + 1/175 x y z - 1/250 x z - 1/100 x y + 2100 7000 + + 2 2 2 3 47 + + 1/350 z + 1/175 y z + 1/350 x z - 1/350 x z + 1/150 y + ---- x, + 5250 + + 3 211 167 2 + COEFF(-2, -1, 1) = - 1/350 y z - 2/75 y + ---- y + ---- x - 1/50 x y + 3675 7000 + + 2 2 2 2 2 + + 1/500 x z + 1/700 z - 1/245 x y + 1/50 y - 1/350 x - 1/700 x z + + 229 2 3 2 3 + - ----- z - 1/42 + 1/490 y z + 1/600 x - 1/700 x z + 1/300 z + 10500 + + 2 166 + + 1/100 y z + 1/350 x y z + 1/175 x y, COEFF(-1, -1, 1) = ---- y + 3675 + + 3 2 137 2 + - 1/300 x + 1/490 y z + ---- x + 1/100 y z + 1/700 x y z - 1/350 y z + 5250 + + 137 3 2 2 + - ---- z + 1/300 z + 1/50 y + 1/1000 x z + 1/700 z + 1/350 x y + 5250 + + 2 2 2 2 2 17 + - 1/1400 x z + 1/490 x y + 1/1400 x z + 1/700 x - 1/100 x y - --- + 525 + + 3 289 2 2 3 + - 2/75 y , COEFF(0, -1, 1) = - ----- z + 1/490 y z + 1/700 x z - 2/75 y + 10500 + + 2 37 2 3 2 2 151 + + 1/100 y z - ---- + 1/50 y + 1/300 z + 1/350 x + 1/700 z + ---- y + 1050 3675 + + 2 2 3 + - 1/350 y z + 1/245 x y, COEFF(1, -1, 1) = 1/100 y z - 2/75 y + + 17 2 2 + - 1/700 x y z - --- - 1/350 x y + 1/50 y - 1/1000 x z + 1/490 y z + 525 + + 2 3 2 2 3 + + 1/700 x - 1/350 y z + 1/300 x + 1/1400 x z + 1/700 z + 1/300 z + + 2 137 137 2 2 166 + + 1/1400 x z - ---- x - ---- z + 1/490 x y + 1/100 x y + ---- y, + 5250 5250 3675 + + 211 167 2 3 + COEFF(2, -1, 1) = - 1/350 y z + ---- y - ---- x + 1/700 z - 1/600 x + 3675 7000 + + 2 3 2 2 + + 1/50 x y + 1/300 z - 1/42 + 1/100 y z - 1/245 x y - 1/175 x y + + 2 3 229 2 + - 1/500 x z - 1/350 x - 1/350 x y z - 2/75 y - ----- z - 1/700 x z + 10500 + + 2 2 2 + + 1/50 y + 1/490 y z + 1/700 x z , COEFF(-2, 0, 1) = - 1/175 y z + + 3 2 2 + + 2/175 x y + 1/25 y - 2/245 x y + 1/175 x y z - 9/98 y + 1/245 y z , + + 3 57 2 + COEFF(-1, 0, 1) = 1/25 y + 1/175 x y - --- y - 1/175 y z + 1/245 y z + 490 + + 2 + + 1/245 x y + 1/350 x y z, + + 2 2 3 61 + COEFF(0, 0, 1) = 2/245 x y - 1/175 y z + 1/245 y z + 1/25 y - --- y, + 490 + + 3 2 57 2 + COEFF(1, 0, 1) = - 1/175 x y + 1/25 y + 1/245 x y - --- y + 1/245 y z + 490 + + 2 + - 1/175 y z - 1/350 x y z, COEFF(2, 0, 1) = - 2/245 x y - 2/175 x y + + 2 3 + - 1/175 y z - 1/175 x y z + 1/245 y z + 1/25 y - 9/98 y, COEFF(-2, 1, 1) + + 2 2 211 3 + = - 1/500 x z + 1/50 x y + 1/42 + 1/700 x z + ---- y - 2/75 y + 3675 + + 2 2 167 2 + - 1/350 y z - 1/50 y - 1/700 z + 1/350 x y z - ---- x + 1/350 x + 7000 + + 2 229 3 2 2 + - 1/100 y z + 1/175 x y + ----- z - 1/600 x - 1/245 x y + 1/700 x z + 10500 + + 3 2 17 2 3 + - 1/300 z + 1/490 y z , COEFF(-1, 1, 1) = --- - 1/700 z + 1/300 x + 525 + + 2 2 2 3 2 + - 1/1000 x z + 1/100 x y - 1/50 y + 1/1400 x z - 2/75 y + 1/490 y z + + 137 2 2 3 2 + - ---- x - 1/350 y z + 1/490 x y - 1/100 y z - 1/300 z - 1/700 x + 5250 + + 137 166 2 + + ---- z + 1/700 x y z + ---- y + 1/350 x y - 1/1400 x z, COEFF(0, 1, 1) + 5250 3675 + + 3 2 151 2 2 3 + = - 1/300 z - 1/100 y z + ---- y - 1/700 z - 1/50 y - 2/75 y + 3675 + + 289 2 2 37 2 + - 1/350 y z + ----- z + 1/245 x y - 1/350 x + ---- + 1/490 y z + 10500 1050 + + 2 2 2 2 + - 1/700 x z, COEFF(1, 1, 1) = - 1/1400 x z - 1/100 y z - 1/100 x y + + 2 2 137 3 2 + - 1/700 x - 1/1400 x z + ---- x - 1/300 z + 1/490 y z - 1/350 x y + 5250 + + 3 166 17 2 2 + - 2/75 y + ---- y - 1/350 y z + --- - 1/50 y + 1/490 x y - 1/700 x y z + 3675 525 + + 137 2 3 2 + + 1/1000 x z + ---- z - 1/700 z - 1/300 x , COEFF(2, 1, 1) = 1/700 x z + 5250 + + 167 2 2 2 211 + + ---- x - 1/700 x z - 1/700 z + 1/500 x z - 1/100 y z + ---- y + 7000 3675 + + 2 3 2 229 2 2 + - 1/245 x y - 2/75 y - 1/50 y + ----- z + 1/490 y z + 1/350 x + 10500 + + 2 3 + - 1/350 y z - 1/350 x y z - 1/175 x y - 1/50 x y + 1/42 - 1/300 z + + 3 3 2 19 + + 1/600 x , COEFF(-2, 2, 1) = - 1/175 x y z + 1/150 y + 1/350 x z - ---- + 2100 + + 2 3 2 169 107 2 + + 2/245 x y - 1/150 z + 1/350 x z - ----- y + ---- z - 1/350 z + 14700 7000 + + 2 3 47 2 + - 1/100 x y - 1/300 x + 1/175 y z + ---- x + 1/100 y - 1/250 x z + 5250 + + 2 2 2 + + 1/200 y z + 1/175 x - 1/245 y z - 2/175 x y, COEFF(-1, 2, 1) = + + 2 2 2 167 2 + - 1/175 x y - 1/350 z - 1/700 x z - 1/350 x - ---- x - 1/200 x y + 7000 + + 3 167 2 2 + - 1/350 x y z - 1/150 z + 1/175 y z + ---- z + 1/100 y - 1/245 y z + 7000 + + 3 2 2 17 2 + + 1/150 y - 1/245 x y + 1/700 x z + ---- + 1/200 y z - 1/500 x z + 2100 + + 3 191 2 2 + + 1/150 x + ----- y, COEFF(0, 2, 1) = - 2/245 x y - 1/175 x + 14700 + + 2 2 3 311 2 29 + + 1/200 y z - 1/350 x z - 1/150 z + ----- y + 1/100 y + ---- + 14700 2100 + + 3 2 2 187 + + 1/150 y - 1/245 y z - 1/350 z + 1/175 y z + ---- z, COEFF(1, 2, 1) = + 7000 + + 2 3 2 2 2 2 + 1/200 x y - 1/150 x - 1/245 x y - 1/245 y z - 1/350 z + 1/200 y z + + 3 3 167 + + 1/175 y z + 1/150 y - 1/150 z + ---- x + 1/175 x y + 1/500 x z + 7000 + + 2 167 191 2 2 + + 1/100 y + ---- z + ----- y - 1/700 x z - 1/700 x z + 1/350 x y z + 7000 14700 + + 17 2 2 47 2 + + ---- - 1/350 x , COEFF(2, 2, 1) = - 1/350 z - ---- x - 1/245 y z + 2100 5250 + + 2 107 2 2 + + 1/250 x z + 2/245 x y + ---- z + 1/100 x y + 1/175 y z + 1/100 y + 7000 + + 169 2 2 3 + + 1/175 x y z - ----- y - 1/350 x z + 2/175 x y + 1/200 y z - 1/150 z + 14700 + + 2 2 3 19 3 + + 1/175 x + 1/350 x z + 1/150 y - ---- + 1/300 x , COEFF(-2, -2, 2) = + 2100 + + 2 2 137 3 2 2 + 1/100 x y + 2/245 y z - ---- x - 1/300 z - 1/175 x z - 1/100 y + 5250 + + 3 2 3 + + 1/300 x + 2/175 y z - 2/175 x y + 2/245 x y - 2/175 x y z + 1/150 y + + 137 2 529 11 2 2 + + ---- z - 1/175 z - ----- y + --- - 1/100 y z - 1/175 x + 1/125 x z + 5250 14700 420 + + 2 2 2 + + 1/175 x z , COEFF(-1, -2, 2) = - 1/175 z + 1/200 x y - 1/175 x y + + 3 2 47 2 + + 1/250 x z + 1/150 y - 1/245 x y + ---- z - 1/175 x y z - 1/100 y z + 5250 + + 169 19 3 2 3 2 + - ----- y + ---- - 1/150 x + 1/350 x z - 1/300 z + 2/245 y z + 14700 2100 + + 2 2 2 107 + + 1/350 x z + 2/175 y z + 1/350 x - 1/100 y + ---- x, COEFF(0, -2, 2) + 7000 + + 3 2 3 2 + = 2/175 y z - 1/300 z + 1/300 + 1/175 x + 1/150 y - 1/175 z + + 2 2 17 2 2 + - 2/245 x y + 1/175 x z - 1/300 y + ---- z + 2/245 y z - 1/100 y + 5250 + + 2 2 107 + - 1/100 y z, COEFF(1, -2, 2) = 2/245 y z - ---- x + 1/175 x y z + 7000 + + 2 2 2 3 47 3 + - 1/350 x z + 1/350 x z - 1/175 z + 1/150 y + ---- z - 1/300 z + 5250 + + 2 169 3 2 + - 1/100 y + 2/175 y z - ----- y + 1/150 x - 1/245 x y - 1/250 x z + 14700 + + 2 2 2 19 + + 1/350 x - 1/100 y z + 1/175 x y - 1/200 x y + ----, COEFF(2, -2, 2) + 2100 + + 137 2 3 11 + = 2/175 x y z + ---- z - 1/175 x z - 1/300 x + --- + 2/175 x y + 5250 420 + + 2 2 2 2 + + 2/175 y z - 1/125 x z - 1/100 y - 1/100 y z - 1/175 x - 1/100 x y + + 3 529 2 137 3 2 + - 1/300 z - ----- y + 2/245 y z + ---- x + 1/150 y - 1/175 z + 14700 5250 + + 2 2 256 3 107 + + 2/245 x y - 1/175 x z, COEFF(-2, -1, 2) = ---- y - 2/75 y + ---- x + 3675 7000 + + 2 2 107 + + 1/350 x z - 1/350 z + 1/175 x y z - ---- z - 1/175 y z + 1/175 x y + 7000 + + 2 2 3 2 3 + + 1/250 x z - 1/350 x - 1/245 x y + 1/600 x + 1/50 y z - 1/600 z + + 2 2 2 2 + - 1/50 x y - 1/245 y z - 1/350 x z + 1/50 y - 8/525, COEFF(-1, -1, 2) + + 3 2 2 2 2 229 + = - 2/75 y - 1/245 y z + 1/700 x z + 1/50 y - 1/350 z + ----- x + 10500 + + 3 167 2 2 2 + - 1/600 z - ---- z + 1/50 y z + 1/350 x y z + 1/490 x y - 1/100 x y + 7000 + + 3 2 2 211 + - 1/300 x - 1/42 - 1/175 y z + 1/700 x z + 1/700 x + 1/350 x y + ---- y + 3675 + + 2 2 2 + + 1/500 x z, COEFF(0, -1, 2) = 4/75 y + 1/245 x y + 1/350 x - 1/245 y z + + 2 2 187 2 3 + + 1/350 x z + 1/50 y - 2/75 - 1/175 y z - ---- z - 1/350 z - 1/600 z + 7000 + + 3 2 3 2 + - 2/75 y + 1/50 y z, COEFF(1, -1, 2) = - 2/75 y - 1/700 x z + + 2 211 167 + - 1/245 y z - 1/500 x z - 1/350 x y + ---- y - ---- z - 1/175 y z + 3675 7000 + + 2 2 2 2 2 3 + + 1/700 x + 1/700 x z + 1/100 x y + 1/50 y z + 1/490 x y + 1/300 x + + 2 3 2 229 + + 1/50 y - 1/600 z - 1/350 z - 1/350 x y z - ----- x - 1/42, + 10500 + + 2 107 2 3 2 + COEFF(2, -1, 2) = 1/50 x y - ---- x - 1/245 y z - 2/75 y + 1/50 y + 7000 + + 256 2 2 107 + + ---- y - 1/245 x y - 1/175 x y - 1/350 x - ---- z - 8/525 + 3675 7000 + + 3 2 3 + - 1/175 x y z - 1/600 z + 1/50 y z - 1/250 x z - 1/175 y z - 1/600 x + + 2 2 2 + - 1/350 x z - 1/350 z - 1/350 x z , COEFF(-2, 0, 2) = 2/175 x y + + 2 3 2 33 + - 2/245 y z + 1/25 y - 2/245 x y - --- y + 2/175 x y z - 2/175 y z, + 490 + + 2 3 + COEFF(-1, 0, 2) = 1/245 x y - 9/98 y - 2/175 y z + 1/25 y + 1/175 x y z + + 2 + + 1/175 x y - 2/245 y z , + + 2 2 3 + COEFF(0, 0, 2) = - 2/175 y z + 2/245 x y - 2/245 y z - 1/10 y + 1/25 y , + + 2 2 3 + COEFF(1, 0, 2) = - 2/245 y z + 1/245 x y + 1/25 y - 1/175 x y z - 9/98 y + + 2 + - 2/175 y z - 1/175 x y, COEFF(2, 0, 2) = - 2/245 y z - 2/175 x y z + + 2 3 33 + - 2/245 x y - 2/175 y z + 1/25 y - --- y - 2/175 x y, COEFF(-2, 1, 2) = + 490 + + 256 2 3 3 107 + ---- y - 1/50 y z - 2/75 y - 1/600 x - 1/250 x z + ---- z + 8/525 + 3675 7000 + + 2 2 2 2 + + 1/350 x z - 1/350 x z - 1/245 x y + 1/175 x y + 1/350 z + + 107 2 3 2 + + 1/175 x y z - ---- x - 1/245 y z - 1/175 y z + 1/600 z + 1/50 x y + 7000 + + 2 2 229 2 + - 1/50 y + 1/350 x , COEFF(-1, 1, 2) = - ----- x + 1/350 x y - 1/700 x z + 10500 + + 2 2 2 + + 1/490 x y + 1/100 x y + 1/350 x y z - 1/175 y z - 1/500 x z - 1/50 y + + 167 2 211 2 3 2 3 + + ---- z - 1/700 x z + ---- y + 1/350 z + 1/300 x - 1/50 y z - 2/75 y + 7000 3675 + + 3 2 2 3 + + 1/600 z - 1/245 y z + 1/42 - 1/700 x , COEFF(0, 1, 2) = - 2/75 y + + 2 2 2 187 3 2 + + 1/245 x y - 1/50 y - 1/350 x + ---- z + 1/600 z + 1/350 z + 2/75 + 7000 + + 2 2 2 + - 1/50 y z - 1/245 y z - 1/350 x z + 4/75 y - 1/175 y z, COEFF(1, 1, 2) + + 3 2 2 2 + = - 2/75 y - 1/350 x y - 1/50 y z + 1/42 + 1/490 x y - 1/100 x y + + 229 2 2 211 3 + + ----- x + 1/700 x z + 1/350 z + ---- y + 1/500 x z + 1/600 z + 10500 3675 + + 3 2 2 2 + - 1/300 x - 1/700 x z - 1/245 y z - 1/175 y z - 1/50 y - 1/350 x y z + + 2 167 2 2 2 + - 1/700 x + ---- z, COEFF(2, 1, 2) = - 1/245 x y + 1/350 x - 1/50 y z + 7000 + + 2 2 2 3 107 + - 1/50 y + 1/350 x z - 1/245 y z + 1/600 x - 1/175 x y z + ---- x + 7000 + + 107 2 256 2 2 + - 1/175 x y + ---- z + 1/350 z + ---- y - 1/50 x y + 1/350 x z + 7000 3675 + + 3 3 + - 2/75 y - 1/175 y z + 8/525 + 1/250 x z + 1/600 z , COEFF(-2, 2, 2) = + + 2 529 2 11 2 2 + 2/245 x y - ----- y - 1/125 x z + 1/175 x - --- + 2/245 y z - 1/100 x y + 14700 420 + + 2 2 3 2 137 2 + + 1/175 z + 1/100 y z + 1/300 z + 1/175 x z - ---- z - 1/175 x z + 5250 + + 137 3 3 + + ---- x - 1/300 x - 2/175 x y z + 1/150 y + 2/175 y z - 2/175 x y + 5250 + + 2 2 + + 1/100 y , COEFF(-1, 2, 2) = - 1/250 x z - 1/245 x y - 1/175 x y z + + 169 2 19 2 3 2 107 + - ----- y + 2/245 y z - ---- - 1/350 x z + 1/150 y + 1/175 z - ---- x + 14700 2100 7000 + + 2 2 2 47 2 + - 1/350 x z + 2/175 y z + 1/100 y z - 1/350 x - ---- z - 1/200 x y + 5250 + + 3 3 2 + + 1/150 x + 1/300 z - 1/175 x y + 1/100 y , COEFF(0, 2, 2) = - 1/300 + + 3 2 2 2 3 2 + + 1/150 y + 1/175 z + 2/245 y z - 1/175 x z + 1/300 z + 1/100 y z + + 2 2 17 2 + - 1/300 y + 1/100 y - 1/175 x - ---- z + 2/175 y z - 2/245 x y, + 5250 + + 3 2 2 2 169 + COEFF(1, 2, 2) = 1/150 y - 1/350 x - 1/350 x z + 1/100 y - ----- y + 14700 + + 107 2 2 3 + + ---- x + 2/245 y z + 2/175 y z - 1/245 x y - 1/150 x + 1/175 x y + 7000 + + 2 2 47 2 3 + + 1/200 x y + 1/350 x z + 1/175 x y z - ---- z + 1/100 y z + 1/300 z + 5250 + + 2 19 3 2 + + 1/175 z + 1/250 x z - ----, COEFF(2, 2, 2) = 1/300 x + 2/245 y z + 2100 + + 2 2 529 3 + + 2/175 x y z + 1/175 x z + 2/245 x y - ----- y + 2/175 y z + 1/150 y + 14700 + + 11 137 2 2 2 + - --- - ---- x + 1/100 x y + 1/175 x + 2/175 x y + 1/125 x z + 1/100 y + 420 5250 + + 2 3 2 2 137 + + 1/175 z + 1/300 z + 1/175 x z + 1/100 y z - ---- z] + 5250 + +> print_coeff__lc_of_data(%, "coeff_dy_", "fp", +> "3d.coeffs/3d.cube.order4.smooth0/coeff-dy.compute.c"); +bytes used=1543981972, alloc=15136044, time=205.94 +bytes used=1544982208, alloc=15136044, time=206.01 +bytes used=1545982400, alloc=15136044, time=206.08 +bytes used=1546982604, alloc=15136044, time=206.16 +bytes used=1547983052, alloc=15136044, time=206.24 +bytes used=1548983348, alloc=15136044, time=206.31 +bytes used=1549984984, alloc=15136044, time=206.39 +bytes used=1550985636, alloc=15136044, time=206.52 +bytes used=1551985800, alloc=15136044, time=207.31 +bytes used=1552986420, alloc=15136044, time=208.10 +bytes used=1553986760, alloc=15136044, time=208.88 +bytes used=1554986916, alloc=15136044, time=209.66 +bytes used=1555987416, alloc=15136044, time=210.43 +bytes used=1556987636, alloc=15136044, time=210.70 +bytes used=1557987840, alloc=15136044, time=210.79 +bytes used=1558988188, alloc=15136044, time=210.89 +bytes used=1559988456, alloc=15136044, time=210.98 +bytes used=1560988652, alloc=15136044, time=211.07 +bytes used=1562060044, alloc=15136044, time=211.17 +bytes used=1563175948, alloc=15136044, time=211.24 +bytes used=1564264112, alloc=15136044, time=211.32 +bytes used=1565316524, alloc=15136044, time=211.39 +bytes used=1566334564, alloc=15136044, time=211.46 +bytes used=1567430840, alloc=15136044, time=211.53 +bytes used=1568475376, alloc=15136044, time=211.60 +bytes used=1569545984, alloc=15136044, time=211.68 +bytes used=1570631252, alloc=15136044, time=211.76 +bytes used=1571700416, alloc=15136044, time=211.84 +bytes used=1572722192, alloc=15136044, time=211.93 +bytes used=1573790744, alloc=15136044, time=212.01 +bytes used=1574813380, alloc=15136044, time=212.10 +bytes used=1575850444, alloc=15136044, time=212.19 +bytes used=1576874376, alloc=15136044, time=212.28 +bytes used=1577898720, alloc=15136044, time=212.39 +bytes used=1578899212, alloc=15136044, time=212.49 +bytes used=1579899364, alloc=15136044, time=212.56 +bytes used=1580899632, alloc=15136044, time=214.49 +bytes used=1581899792, alloc=15136044, time=214.94 +bytes used=1582899996, alloc=15136044, time=215.03 +bytes used=1583900628, alloc=15136044, time=215.11 +bytes used=1584901824, alloc=15136044, time=215.20 +bytes used=1585902732, alloc=15136044, time=215.29 +bytes used=1586903576, alloc=15136044, time=215.38 +bytes used=1587904696, alloc=15136044, time=215.47 +bytes used=1588905928, alloc=15136044, time=215.55 +bytes used=1589906848, alloc=15136044, time=215.64 +bytes used=1590907980, alloc=15136044, time=215.73 +bytes used=1591908132, alloc=15136044, time=215.81 +bytes used=1592908860, alloc=15136044, time=215.91 +bytes used=1593909024, alloc=15136044, time=216.00 +bytes used=1594909644, alloc=15136044, time=216.08 +bytes used=1595910424, alloc=15136044, time=216.17 +bytes used=1596910908, alloc=15136044, time=216.25 +bytes used=1597911060, alloc=15136044, time=216.34 +bytes used=1598911216, alloc=15136044, time=216.43 +bytes used=1599911380, alloc=15136044, time=216.51 +bytes used=1600911568, alloc=15136044, time=216.59 +bytes used=1601911696, alloc=15136044, time=216.70 +bytes used=1602911868, alloc=15136044, time=216.82 +bytes used=1603912196, alloc=15136044, time=216.94 +bytes used=1604912756, alloc=15136044, time=217.08 +bytes used=1605913012, alloc=15136044, time=217.23 +bytes used=1606913244, alloc=15136044, time=217.34 +bytes used=1607913504, alloc=15136044, time=217.46 +bytes used=1608913720, alloc=15136044, time=217.59 +bytes used=1609913932, alloc=15136044, time=217.72 +bytes used=1610914128, alloc=15136044, time=217.87 +bytes used=1611914420, alloc=15136044, time=218.00 +bytes used=1612928616, alloc=15136044, time=218.14 +bytes used=1613928788, alloc=15136044, time=218.27 +bytes used=1614945816, alloc=15136044, time=218.40 +bytes used=1615946744, alloc=15136044, time=218.55 +bytes used=1616951704, alloc=15136044, time=218.69 +bytes used=1617961928, alloc=15136044, time=218.82 +bytes used=1618964252, alloc=15136044, time=218.95 +bytes used=1619964496, alloc=15136044, time=219.06 +bytes used=1620964896, alloc=15136044, time=219.18 +bytes used=1621986636, alloc=15136044, time=219.30 +bytes used=1622986868, alloc=15136044, time=219.43 +bytes used=1623987096, alloc=15136044, time=219.53 +bytes used=1624987268, alloc=15136044, time=219.63 +bytes used=1625987496, alloc=15136044, time=219.71 +bytes used=1626987708, alloc=15136044, time=220.31 +bytes used=1627992052, alloc=15136044, time=222.36 +bytes used=1628992272, alloc=15136044, time=223.06 +bytes used=1629992440, alloc=15136044, time=223.38 +bytes used=1630993036, alloc=15136044, time=223.48 +bytes used=1631993388, alloc=15136044, time=223.55 +bytes used=1632993748, alloc=15136044, time=223.63 +bytes used=1633994152, alloc=15136044, time=223.70 +bytes used=1634994344, alloc=15136044, time=223.78 +bytes used=1635994872, alloc=15136044, time=223.85 +bytes used=1636995104, alloc=15136044, time=223.93 +bytes used=1637995312, alloc=15136044, time=224.00 +bytes used=1638995596, alloc=15136044, time=224.07 +bytes used=1639995748, alloc=15136044, time=224.15 +bytes used=1640996188, alloc=15136044, time=224.22 +bytes used=1641996472, alloc=15136044, time=224.30 +bytes used=1642996632, alloc=15136044, time=224.37 +bytes used=1643996804, alloc=15136044, time=224.45 +bytes used=1644996968, alloc=15136044, time=224.52 +bytes used=1645997120, alloc=15136044, time=224.60 +bytes used=1646997312, alloc=15136044, time=224.76 +bytes used=1648018080, alloc=15136044, time=224.92 +bytes used=1649018272, alloc=15136044, time=225.04 +bytes used=1650018532, alloc=15136044, time=225.17 +bytes used=1651043592, alloc=15136044, time=225.32 +bytes used=1652051972, alloc=15136044, time=225.52 +bytes used=1653062780, alloc=15136044, time=225.65 +bytes used=1654065696, alloc=15136044, time=225.78 +bytes used=1655078592, alloc=15136044, time=225.92 +bytes used=1656104820, alloc=15136044, time=226.06 +bytes used=1657107452, alloc=15136044, time=226.22 +bytes used=1658107632, alloc=15136044, time=226.36 +bytes used=1659107896, alloc=15136044, time=226.49 +bytes used=1660108856, alloc=15136044, time=226.59 +bytes used=1661109060, alloc=15136044, time=226.82 +bytes used=1662138196, alloc=15136044, time=229.56 +bytes used=1663146120, alloc=15136044, time=229.76 +bytes used=1664146284, alloc=15136044, time=230.75 +bytes used=1665146440, alloc=15136044, time=230.88 +bytes used=1666146652, alloc=15136044, time=230.98 +bytes used=1667146924, alloc=15136044, time=231.05 +bytes used=1668147300, alloc=15136044, time=231.13 +bytes used=1669147608, alloc=15136044, time=231.20 +bytes used=1670147996, alloc=15136044, time=231.28 +bytes used=1671148208, alloc=15136044, time=231.36 +bytes used=1672148372, alloc=15136044, time=231.44 +bytes used=1673148756, alloc=15136044, time=231.52 +bytes used=1674149016, alloc=15136044, time=231.60 +bytes used=1675149352, alloc=15136044, time=231.67 +bytes used=1676149512, alloc=15136044, time=231.75 +bytes used=1677149860, alloc=15136044, time=231.83 +bytes used=1678150132, alloc=15136044, time=231.91 +bytes used=1679150384, alloc=15136044, time=231.99 +bytes used=1680150576, alloc=15136044, time=232.07 +bytes used=1681150744, alloc=15136044, time=232.27 +bytes used=1682150980, alloc=15136044, time=232.62 +bytes used=1683151228, alloc=15136044, time=232.84 +bytes used=1684151528, alloc=15136044, time=233.16 +bytes used=1685151804, alloc=15136044, time=236.13 +bytes used=1686151972, alloc=15136044, time=236.80 +bytes used=1687152204, alloc=15136044, time=236.89 +bytes used=1688152448, alloc=15136044, time=236.97 +bytes used=1689152824, alloc=15136044, time=237.04 +bytes used=1690153144, alloc=15136044, time=237.12 +bytes used=1691153440, alloc=15136044, time=237.20 +bytes used=1692153604, alloc=15136044, time=237.28 +bytes used=1693153784, alloc=15136044, time=237.35 +bytes used=1694153948, alloc=15136044, time=237.43 +bytes used=1695154220, alloc=15136044, time=237.51 +bytes used=1696154560, alloc=15136044, time=237.59 +bytes used=1697154768, alloc=15136044, time=237.67 +bytes used=1698155060, alloc=15136044, time=237.74 +bytes used=1699155356, alloc=15136044, time=237.82 +bytes used=1700155600, alloc=15136044, time=237.90 +bytes used=1701155828, alloc=15136044, time=237.98 +bytes used=1702157368, alloc=15136044, time=238.21 +bytes used=1703158524, alloc=15136044, time=238.60 +bytes used=1704158768, alloc=15136044, time=238.76 +bytes used=1705159068, alloc=15136044, time=241.39 +bytes used=1706159284, alloc=15136044, time=242.66 +bytes used=1707161088, alloc=15136044, time=242.93 +bytes used=1708161240, alloc=15136044, time=243.10 +bytes used=1709161536, alloc=15136044, time=243.16 +bytes used=1710161884, alloc=15136044, time=243.30 +bytes used=1711162228, alloc=15136044, time=243.46 +> +# d/dz +> simplify( diff(interp_3d_cube_order4_smooth0,z) ); +bytes used=1712162540, alloc=15136044, time=243.62 +bytes used=1713162740, alloc=15136044, time=243.70 +bytes used=1714163500, alloc=15136044, time=243.78 +bytes used=1715180868, alloc=15136044, time=243.86 +bytes used=1716329724, alloc=15136044, time=243.96 +bytes used=1717329960, alloc=15136044, time=244.05 +bytes used=1718330248, alloc=15136044, time=244.13 +bytes used=1719330368, alloc=15136044, time=244.21 +bytes used=1720331576, alloc=15136044, time=244.29 +bytes used=1721331828, alloc=15136044, time=244.38 +bytes used=1722331976, alloc=15136044, time=244.46 +bytes used=1723332808, alloc=15136044, time=244.55 +bytes used=1724332972, alloc=15136044, time=244.64 +bytes used=1725333636, alloc=15136044, time=244.73 +bytes used=1726334108, alloc=15136044, time=244.82 +bytes used=1727334756, alloc=15136044, time=244.92 +bytes used=1728334924, alloc=15136044, time=245.01 +bytes used=1729335268, alloc=15136044, time=245.11 +bytes used=1730335844, alloc=15136044, time=245.21 +bytes used=1731419544, alloc=15136044, time=245.30 +bytes used=1732419700, alloc=15136044, time=245.39 +bytes used=1733420056, alloc=15136044, time=245.47 + 17 37 17 +- --- DATA(-1, 1, -1) - ---- DATA(0, 1, -1) - --- DATA(1, 1, -1) + 525 1050 525 + + 2 289 + + 1/245 x z DATA(0, -1, -1) + ----- y DATA(0, -1, -1) + 10500 + + 17 37 187 + + --- DATA(-1, 1, 1) + ---- DATA(-1, 0, 1) - ---- y DATA(0, 2, -1) + 525 1050 7000 + + 17 17 37 + + --- DATA(1, -1, 1) + --- DATA(-1, -1, 1) + ---- DATA(0, -1, 1) + 525 525 1050 + + 19 + - 1/175 x y z DATA(2, 2, -1) - ---- DATA(-1, -2, 2) - 1/300 DATA(0, -2, 2) + 2100 + + 37 37 + - ---- DATA(-1, 0, -1) - 4/105 DATA(0, 0, -1) - ---- DATA(1, 0, -1) + 1050 1050 + + + 4/105 DATA(0, 0, 1) - 1/700 x y z DATA(1, 1, -1) + + + 1/175 x y z DATA(2, 1, 2) - 1/175 x y z DATA(1, -2, -2) + + + 1/700 x y z DATA(-1, 1, -1) + 2/175 x y z DATA(2, 2, 2) + + + 1/175 x y z DATA(1, 2, 2) - 2/175 x y z DATA(2, -2, -2) + + 289 + + ----- y DATA(0, 1, 1) + 1/175 x y z DATA(-2, -1, -2) + 10500 + + + 1/700 x y z DATA(1, -1, -1) - 1/175 x y z DATA(2, 2, 1) + + - 2/175 x y z DATA(-2, 2, -2) - 1/350 x y z DATA(1, -1, 2) + + - 1/175 x y z DATA(2, -1, 2) + 1/175 x y z DATA(-1, -2, -2) + + - 1/700 x y z DATA(-1, -1, 1) - 1/175 x y z DATA(-1, 2, 2) + + - 1/350 x y z DATA(-1, 1, 2) + 2/175 x y z DATA(-2, -2, -2) + + + 1/700 x y z DATA(1, -1, 1) + 1/700 x y z DATA(-1, 1, 1) + + + 1/350 x y z DATA(1, -2, -1) - 1/350 x y z DATA(-1, -2, -1) + + 17 + + ---- y DATA(0, -2, 2) + 1/350 x y z DATA(1, 1, -2) + 5250 + + - 1/175 x y z DATA(-2, 1, -2) - 1/350 x y z DATA(-1, 1, -2) + + 19 + + 1/175 x y z DATA(-1, -2, 2) - ---- DATA(1, -2, 2) + 2100 + + - 1/175 x y z DATA(2, -1, -2) + 1/350 x y z DATA(-1, -1, 2) + + + 1/175 x y z DATA(2, 1, -2) + 1/350 x y z DATA(-2, 1, -1) + + 187 2 + - ---- y DATA(0, -1, 2) - 1/350 y DATA(0, -2, -1) + 7000 + + 2 + - 1/175 y DATA(0, 2, -2) - 1/350 x y z DATA(-2, -1, -1) + + 3 3 + - 1/150 y DATA(0, -1, -2) - 1/150 y DATA(0, 1, 2) + + 3 3 + + 1/300 y DATA(0, 2, 2) - 1/300 y DATA(0, -1, -1) + + 3 3 + + 1/600 y DATA(0, 2, 1) + 1/300 y DATA(0, -2, -2) + + 3 3 + - 1/300 y DATA(0, -2, 2) - 1/600 y DATA(0, 2, -1) + + 3 3 + - 1/600 y DATA(0, -2, 1) + 1/300 y DATA(0, -1, 1) + + 3 3 + - 1/300 y DATA(0, 1, 1) + 1/300 y DATA(0, 1, -1) + + 3 3 + - 1/300 y DATA(0, 2, -2) + 1/600 y DATA(0, -2, -1) + + 2 + - 1/175 x y z DATA(-2, -2, -1) + 1/245 x z DATA(0, -1, 1) + + 19 + - ---- DATA(-2, -1, 2) + 1/350 x y z DATA(-1, -1, -2) + 2100 + + 311 2 + + ----- z DATA(0, -1, -2) + 1/245 x z DATA(0, 1, -1) + 14700 + + 311 + + 2/175 x y z DATA(2, 2, -2) + ----- z DATA(0, 1, -2) + 14700 + + 311 311 2 + + ----- z DATA(0, -1, 2) + ----- z DATA(0, 1, 2) + 1/700 y DATA(0, 1, -1) + 14700 14700 + + 2 + + 1/350 y DATA(0, -2, 1) - 1/300 z DATA(0, 2, 2) + + - 1/300 z DATA(0, -2, -2) + 4/75 z DATA(0, 2, -1) - 1/300 z DATA(0, -2, 2) + + 151 151 + + 4/75 z DATA(0, 2, 1) + ---- z DATA(0, 1, -1) + ---- z DATA(0, -1, 1) + 3675 3675 + + 151 151 + + ---- z DATA(0, -1, -1) + ---- z DATA(0, 1, 1) + 4/75 z DATA(0, -2, 1) + 3675 3675 + + 17 17 + + 4/75 z DATA(0, -2, -1) - ---- y DATA(0, 2, 2) - ---- y DATA(0, -2, -2) + 5250 5250 + + 187 187 + + ---- y DATA(0, 1, 2) - 1/300 z DATA(0, 2, -2) + ---- y DATA(0, 2, 1) + 7000 7000 + + 289 + - 1/350 x y z DATA(1, -1, -2) - ----- y DATA(0, 1, -1) + 10500 + + 289 + + 1/175 x y z DATA(2, -2, -1) - ----- y DATA(0, -1, 1) + 10500 + + 11 + - --- DATA(2, -2, 2) - 1/350 x y z DATA(-2, -1, 1) + 420 + + + 1/175 y z DATA(0, 1, 2) + 1/175 x y z DATA(1, 2, -2) + + - 2/175 y z DATA(0, -2, -2) + 2/175 y z DATA(0, 2, 2) + + 2 2 + - 1/700 x y DATA(0, 1, 1) + 1/700 x y DATA(0, -1, 1) + + 2 2 + + 1/175 x y DATA(0, -2, 2) + 1/700 x y DATA(0, 1, -1) + + 2 2 + + 1/350 x y DATA(0, -2, 1) + 1/175 x y DATA(0, 2, -2) + + 2 2 + - 1/350 x y DATA(0, -2, -1) + 1/350 x y DATA(0, 1, -2) + + 2 2 + - 1/350 x y DATA(0, 1, 2) + 1/350 x y DATA(0, -1, 2) + + 2 2 + - 1/175 x y DATA(0, -2, -2) - 1/175 x y DATA(0, 2, 2) + + 2 2 + - 1/350 x y DATA(0, 2, 1) - 1/700 x y DATA(0, -1, -1) + + 2 2 + + 1/350 x y DATA(0, 2, -1) - 1/50 y z DATA(0, -2, -1) + + 2 2 + - 1/100 y z DATA(0, 2, -2) - 1/50 y z DATA(0, 2, 1) + + 2 2 + + 1/50 y z DATA(0, 2, -1) - 1/100 y z DATA(0, 1, 1) + + 2 2 + - 1/100 y z DATA(0, -1, -1) - 1/350 y DATA(0, 1, 2) + + 2 2 + + 1/175 y DATA(0, 2, 2) - 1/175 y DATA(0, -2, -2) + + 2 2 + + 1/700 y DATA(0, -1, -1) - 1/700 y DATA(0, 1, 1) + + 3 + + 1/150 z DATA(0, 1, -2) - 1/175 x y z DATA(-1, 2, -2) + + 187 17 187 + - ---- y DATA(0, -2, 1) + ---- y DATA(0, 2, -2) + ---- y DATA(0, -2, -1) + 7000 5250 7000 + + 2 2 + + 1/350 x DATA(0, 1, -1) - 1/350 x DATA(0, -2, 1) + + - 1/350 x y z DATA(-1, -2, 1) + 1/350 x y z DATA(1, 1, 2) + + 2 2 + + 1/175 x DATA(0, 1, -2) + 1/175 x DATA(0, -1, -2) + + 2 3 + - 1/245 y z DATA(0, 1, 2) + 1/150 z DATA(0, 2, -2) + + 2 3 + - 1/100 z DATA(0, 1, -2) + 1/150 z DATA(0, -2, -2) + + 2 3 + - 1/100 z DATA(0, -1, -2) - 2/75 z DATA(0, -2, -1) + + 2 2 + + 1/100 z DATA(0, 2, 2) + 1/100 z DATA(0, 1, 2) + + 2 2 + + 1/100 z DATA(0, -1, 2) - 1/245 y z DATA(0, 2, 1) + + 2 2 + - 1/100 z DATA(0, -2, -2) - 1/50 z DATA(0, 2, 1) + + 2 2 + + 1/50 z DATA(0, 2, -1) + 1/50 z DATA(0, -1, -1) + + 2 2 + - 1/245 y z DATA(0, 1, -2) + 1/100 z DATA(0, -2, 2) + + 2 2 2 + - 1/50 z DATA(0, 1, 1) - 1/50 z DATA(0, -1, 1) - 1/50 z DATA(0, -2, 1) + + 2 2 + + 1/50 z DATA(0, 1, -1) - 1/100 z DATA(0, 2, -2) + + 2 3 + + 1/50 z DATA(0, -2, -1) + 1/150 z DATA(0, -1, 2) + + 3 3 + + 1/150 y DATA(0, 1, -2) + 1/150 y DATA(0, -1, 2) + + 187 3 + + ---- y DATA(0, -1, -2) + 1/150 z DATA(0, -1, -2) + 7000 + + 3 3 + + 1/150 z DATA(0, 2, 2) + 1/150 z DATA(0, 1, 2) + + 2 3 + - 1/245 y z DATA(0, 2, -1) - 2/75 z DATA(0, -1, -1) + + 3 3 3 + - 2/75 z DATA(0, 2, -1) - 2/75 z DATA(0, 2, 1) - 2/75 z DATA(0, 1, -1) + + 3 3 3 + + 1/150 z DATA(0, -2, 2) - 2/75 z DATA(0, -1, 1) - 2/75 z DATA(0, 1, 1) + + 3 + - 2/75 z DATA(0, -2, 1) + 1/350 x y z DATA(1, -2, 1) + + 2 187 + + 1/350 y DATA(0, 2, 1) - ---- y DATA(0, 1, -2) + 7000 + + 2 + - 1/175 x y z DATA(1, -2, 2) + 2/245 y z DATA(0, 2, 2) + + 2 2 + + 2/245 y z DATA(0, -2, -2) - 1/245 y z DATA(0, -1, 2) + + 2 + + 1/350 y DATA(0, -1, -2) + 1/175 x y z DATA(2, -2, 1) + + 2 + + 1/175 y z DATA(0, -2, -1) - 1/700 y DATA(0, -1, 1) + + 2 + - 1/350 y DATA(0, 2, -1) + 1/175 y z DATA(0, -2, 1) + + 2 + + 1/175 y DATA(0, -2, 2) - 2/175 y z DATA(0, -2, 2) + + + 2/175 y z DATA(0, 2, -2) + 1/350 y z DATA(0, -1, 1) + + - 1/350 y z DATA(0, 1, -1) - 1/175 y z DATA(0, 2, 1) + + - 1/350 y z DATA(0, 1, 1) + 1/350 y z DATA(0, -1, -1) + + - 1/175 y z DATA(0, 2, -1) + 1/175 y z DATA(0, 1, -2) + + 2 2 + - 2/245 x z DATA(0, -1, 2) - 2/245 x z DATA(0, 1, 2) + + 2 + - 2/245 x z DATA(0, 2, 2) - 1/175 y z DATA(0, -1, -2) + + 2 2 + + 1/350 y DATA(0, 1, -2) - 2/245 x z DATA(0, -2, -2) + + 2 2 + - 1/350 x y DATA(0, -1, -2) + 1/245 x z DATA(0, 2, 1) + + 2 + + 1/175 x y z DATA(-2, 2, 1) + 1/200 y z DATA(0, -1, -2) + + 2 2 + - 1/350 x DATA(0, -1, 1) - 1/350 y DATA(0, -1, 2) + + 2 2 + - 1/245 y z DATA(0, -1, -2) - 1/200 y z DATA(0, 1, -2) + + 2 2 + + 1/350 x DATA(0, -2, -1) + 1/175 x DATA(0, 2, -2) + + 2 2 + - 1/175 x DATA(0, -1, 2) - 1/175 x DATA(0, 2, 2) + + 2 2 + + 1/175 x DATA(0, -2, -2) - 1/175 x DATA(0, 1, 2) + + 2 2 + + 1/350 x DATA(0, -1, -1) + 1/350 x DATA(0, 2, -1) + + 2 2 + - 1/350 x DATA(0, 2, 1) - 1/350 x DATA(0, 1, 1) + + 2 + - 1/175 x DATA(0, -2, 2) - 1/175 x y z DATA(-2, -2, 1) + + + 1/175 x y z DATA(-2, 2, -1) - 1/175 y z DATA(0, -1, 2) + + - 1/300 DATA(-2, 0, 2) + 1/350 x y z DATA(-2, 1, 1) + + + 1/175 x y z DATA(-2, -1, 2) + 2/175 x y z DATA(-2, -2, 2) + + 19 37 + - 2/175 x y z DATA(2, -2, 2) - ---- DATA(-2, 1, 2) + ---- DATA(1, 0, 1) + 2100 1050 + + 37 17 11 + + ---- DATA(0, 1, 1) + --- DATA(1, 1, 1) - --- DATA(-2, 2, 2) + 1050 525 420 + + - 1/700 x y z DATA(-1, -1, -1) - 1/700 x y z DATA(1, 1, 1) + + - 1/175 x y z DATA(-2, 1, 2) - 1/175 x y z DATA(-2, -1, 0) + + 2 2 + - 1/200 y z DATA(-2, 1, -2) + 1/200 y z DATA(2, -1, -2) + + 2 + + 1/200 y z DATA(1, -1, -2) + 1/175 y z DATA(2, -2, -1) + + + 1/175 y z DATA(1, -2, -1) + 1/175 y z DATA(-1, -2, -1) + + + 2/175 x y z DATA(2, -2, 0) + 1/175 y z DATA(-2, -2, -1) + + + 2/175 y z DATA(2, 2, -2) + 2/175 y z DATA(1, 2, -2) + + + 2/175 y z DATA(-1, 2, -2) + 1/350 x y z DATA(2, -1, 1) + + - 1/350 y z DATA(-2, 1, -1) + 1/350 y z DATA(-2, -1, -1) + + - 1/350 x y z DATA(1, 2, 1) + 1/350 x y z DATA(-1, 2, 1) + + - 1/175 y z DATA(-2, 2, -1) + 1/175 y z DATA(-2, -2, 1) + + - 1/350 x y z DATA(2, 1, 1) - 1/350 x y z DATA(1, 2, -1) + + + 1/175 x y z DATA(1, -2, 0) + 1/350 x y z DATA(-1, 2, -1) + + + 1/175 x y z DATA(-2, 1, 0) - 2/175 x y z DATA(-2, 2, 2) + + + 2/175 x y z DATA(-2, 2, 0) + 1/175 x y z DATA(-1, 2, 0) + + 2 2 + - 1/50 y z DATA(1, 2, 1) + 1/100 y z DATA(2, -1, 1) + + 2 + + 1/350 x y z DATA(-1, 1, 0) - 1/100 y z DATA(1, -1, -1) + + 2 2 + + 1/50 y z DATA(2, 2, -1) + 1/100 y z DATA(1, 2, 2) + + 2 + + 1/175 x y z DATA(2, -1, 0) + 1/200 y z DATA(-2, -1, -2) + + 2 + - 1/350 x y z DATA(-1, -1, 0) + 1/100 y z DATA(2, 2, 2) + + 2 2 + + 1/100 y z DATA(2, -2, -2) + 1/100 y z DATA(-1, 1, -1) + + - 1/175 x y z DATA(-1, -2, 0) - 2/175 x y z DATA(-2, -2, 0) + + 2 2 + + 1/100 y z DATA(1, -2, -2) + 1/200 y z DATA(2, 1, 2) + + 2 2 + + 1/100 y z DATA(-1, 2, 2) + 1/100 y z DATA(-1, -2, -2) + + 2 2 + + 1/200 y z DATA(-1, 1, 2) + 1/100 y z DATA(-2, -2, -2) + + 2 2 + - 1/200 y z DATA(1, -1, 2) - 1/200 y z DATA(2, -1, 2) + + 2 2 + - 1/200 y z DATA(-1, -1, 2) - 1/50 y z DATA(2, 2, 1) + + 2 2 + - 1/100 y z DATA(-2, 2, -2) - 1/200 y z DATA(2, 1, -2) + + 2 2 + - 1/200 y z DATA(1, 1, -2) - 1/200 y z DATA(-1, 1, -2) + + 2 2 + - 1/100 y z DATA(-1, 1, 1) + 1/100 y z DATA(1, -1, 1) + + 2 2 + + 1/100 y z DATA(-1, -1, 1) - 1/100 y z DATA(-1, -2, 2) + + 17 2 + - --- DATA(-1, -1, -1) - 1/100 y z DATA(1, -2, 2) + 525 + + 2 2 + - 1/200 y z DATA(-2, -1, 2) - 1/100 y z DATA(2, -2, 2) + + 2 2 + + 1/200 y z DATA(-2, 1, 2) - 1/100 y z DATA(1, 1, 1) + + 2 2 + + 1/100 y z DATA(-2, 2, 2) - 1/100 y z DATA(-1, -1, -1) + + 2 2 + + 1/50 y z DATA(1, 2, -1) + 1/100 y z DATA(2, 1, -1) + + 2 2 + + 1/50 y z DATA(-1, 2, -1) - 1/100 y z DATA(2, -1, -1) + + 2 2 + - 1/100 y z DATA(2, 1, 1) - 1/50 y z DATA(-1, 2, 1) + + 2 37 + - 1/245 y z DATA(2, -1, 2) - ---- DATA(0, -1, -1) + 1050 + + 2 2 + - 1/245 y z DATA(-1, -1, 2) - 1/245 y z DATA(2, 2, 1) + + 2 2 + + 2/245 y z DATA(-2, 2, -2) - 1/245 y z DATA(2, 1, -2) + + 2 2 + - 1/245 y z DATA(1, 1, -2) - 1/245 y z DATA(-1, 1, -2) + + 2 + - 1/42 DATA(1, 2, -1) - 1/245 y z DATA(-2, 1, -2) + + 2 + - 1/245 y z DATA(2, -1, -2) - 1/42 DATA(2, 1, -1) - 1/42 DATA(-1, 2, -1) + + 2 + - 2/75 DATA(0, 2, -1) - 1/245 y z DATA(1, -1, -2) + + 2 2 + - 1/245 y z DATA(-1, -1, -2) - 1/245 y z DATA(2, -2, -1) + + 2 2 + - 1/245 y z DATA(1, -2, -1) - 1/245 y z DATA(-1, -2, -1) + + 2 + - 1/245 y z DATA(-2, -2, -1) + 1/175 y z DATA(2, -2, 1) + + + 1/350 y z DATA(-2, -1, 1) - 1/350 y z DATA(-2, 1, 1) + + - 1/42 DATA(2, -1, -1) - 2/75 DATA(2, 0, -1) - 1/175 y z DATA(-2, 2, 1) + + 2 + - 2/175 y z DATA(-2, -2, 2) - 1/245 y z DATA(1, 2, -1) + + 2 + + 1/42 DATA(2, 1, 1) + 1/42 DATA(-1, 2, 1) + 1/490 y z DATA(2, 1, -1) + + 2 + + 2/75 DATA(0, 2, 1) + 1/42 DATA(1, 2, 1) - 1/245 y z DATA(-1, 2, -1) + + 2 3 + + 1/490 y z DATA(2, -1, -1) + 1/25 z DATA(-1, -1, 0) + + 3 2 + + 1/25 z DATA(0, -1, 0) + 1/490 y z DATA(2, 1, 1) + + 3 2 + + 1/25 z DATA(1, -1, 0) - 1/245 y z DATA(-1, 2, 1) + + 3 + - 1/175 y z DATA(-1, -1, -2) + 1/25 z DATA(-1, 0, 0) + + 3 2 + + 1/25 z DATA(-1, 1, 0) + 1/42 DATA(2, -1, 1) - 1/245 y z DATA(1, 2, 1) + + 17 2 + + 2/75 DATA(2, 0, 1) - --- DATA(1, -1, -1) + 1/490 y z DATA(2, -1, 1) + 525 + + 2 2 + + 1/245 x z DATA(0, 2, -1) + 1/490 y z DATA(1, -1, -1) + + 2 2 + - 1/245 y z DATA(2, 2, -1) + 2/245 y z DATA(1, 2, 2) + + 2 2 + - 1/245 y z DATA(-2, -1, -2) + 2/245 y z DATA(2, 2, 2) + + 2 2 + + 2/245 y z DATA(2, -2, -2) + 1/490 y z DATA(-1, 1, -1) + + 2 2 + + 2/245 y z DATA(1, -2, -2) - 1/245 y z DATA(2, 1, 2) + + 2 2 + + 2/245 y z DATA(-1, 2, 2) + 2/245 y z DATA(-1, -2, -2) + + 2 2 + - 1/245 y z DATA(-1, 1, 2) + 2/245 y z DATA(-2, -2, -2) + + 2 + - 8/525 DATA(2, 2, -1) - 1/245 y z DATA(1, -1, 2) + + 2 2 + - 1/50 y z DATA(-2, 2, 1) - 1/100 y z DATA(-2, -2, 2) + + 2 19 + + 1/245 y z DATA(2, 0, 1) - ---- DATA(1, 2, 2) + 2100 + + 2 2 + - 2/245 y z DATA(-2, 0, 2) - 2/245 y z DATA(2, 0, 2) + + 2 19 11 + - 2/245 y z DATA(1, 0, 2) + ---- DATA(-2, -1, -2) - --- DATA(2, 2, 2) + 2100 420 + + 2 2 + + 1/245 y z DATA(1, 0, 1) + 1/245 y z DATA(1, 0, -1) + + 2 11 + + 1/245 y z DATA(-1, 0, -1) + --- DATA(2, -2, -2) + 420 + + 2 19 17 + - 2/245 y z DATA(0, -2, 0) + ---- DATA(1, -2, -2) + ---- DATA(1, 1, 2) + 2100 2100 + + 19 19 + - ---- DATA(2, 1, 2) - ---- DATA(-1, 2, 2) - 1/300 DATA(0, 2, 2) + 2100 2100 + + 2 + + 1/300 DATA(0, -2, -2) + 1/245 y z DATA(-1, 1, 0) + + 2 2 + + 2/245 y z DATA(-1, 0, 0) + 1/245 y z DATA(1, -1, 0) + + 2 2 + + 1/245 y z DATA(0, -1, 0) + 1/245 y z DATA(-1, -1, 0) + + 19 2 + + ---- DATA(-1, -2, -2) + 1/245 y z DATA(0, 0, 1) + 2100 + + 2 2 + + 1/245 y z DATA(0, 1, 0) + 2/245 y z DATA(1, 0, 0) + + 2 2 + + 2/245 y z DATA(0, 0, 0) + 1/245 y z DATA(0, 0, -1) + + 2 2 + - 2/245 y z DATA(2, 2, 0) + 1/245 y z DATA(-2, 0, -1) + + 2 2 + - 2/245 y z DATA(-1, 0, 2) + 1/245 y z DATA(-2, 0, 1) + + 29 17 + + ---- DATA(1, 0, 2) - 1/300 DATA(2, 0, 2) + ---- DATA(-1, 1, 2) + 2100 2100 + + 29 11 2 + + ---- DATA(0, 1, 2) + --- DATA(-2, -2, -2) + 1/490 y z DATA(-1, 1, 1) + 2100 420 + + 2 2 + + 1/490 y z DATA(1, -1, 1) + 1/490 y z DATA(-1, -1, 1) + + 2 17 19 + + 2/245 y z DATA(-1, -2, 2) + ---- DATA(1, -1, 2) - ---- DATA(2, -1, 2) + 2100 2100 + + 29 41 2 + + ---- DATA(-1, 0, 2) + ---- DATA(0, 0, 2) + 1/245 x z DATA(0, 1, 1) + 2100 2100 + + 2 2 + + 2/245 y z DATA(1, -2, 2) - 1/245 y z DATA(-2, -1, 2) + + 2 2 + + 2/245 y z DATA(2, -2, 2) - 1/245 y z DATA(-2, 1, 2) + + 2 2 + + 1/490 y z DATA(1, 1, 1) - 2/245 x z DATA(0, 1, -2) + + 2 17 29 + - 2/245 x z DATA(0, -2, 2) + ---- DATA(-1, -1, 2) + ---- DATA(0, -1, 2) + 2100 2100 + + 3 3 + + 8/525 DATA(2, 2, 1) - 1/600 x DATA(2, 0, -1) + 1/600 x DATA(2, 0, 1) + + 2 2 + + 2/245 y z DATA(-2, 2, 2) + 1/490 y z DATA(-1, -1, -1) + + 2 + - 2/175 x z DATA(-2, -1, -2) + 1/350 x y DATA(-2, 0, 1) + + 2 2 + + 1/350 x y DATA(1, 0, -2) + 1/350 x y DATA(-1, 0, 2) + + 2 2 + + 1/175 x y DATA(2, 0, -2) - 1/175 x y DATA(-2, 0, -2) + + 2 2 + - 1/350 x y DATA(2, 0, 1) + 1/350 x y DATA(2, 0, -1) + + 11 + + 2/175 x z DATA(2, 2, 2) + --- DATA(-2, 2, -2) + 2/175 y z DATA(0, -2, 0) + 420 + + + 2/175 y z DATA(-2, -2, 0) + 2/175 y z DATA(-1, -2, 0) + + + 1/175 y z DATA(2, -1, 0) - 2/175 y z DATA(0, 2, 0) + + - 1/175 y z DATA(2, 1, 0) + 2/175 x z DATA(2, -2, -2) + + 19 + + 1/350 x z DATA(-1, 1, -1) + ---- DATA(2, 1, -2) + 2100 + + - 1/175 y z DATA(0, 1, 0) - 1/175 y z DATA(-1, 1, 0) + + + 1/175 y z DATA(1, -1, 0) + 1/175 y z DATA(0, -1, 0) + + + 1/175 y z DATA(-1, -1, 0) - 2/175 y z DATA(2, 2, 0) + + - 1/175 y z DATA(-1, 2, -1) - 1/350 x z DATA(1, 0, -1) + + 2 + + 1/350 x z DATA(-1, 0, -1) + 1/200 y z DATA(-1, -1, -2) + + + 1/350 x z DATA(-1, 0, 1) - 2/175 x z DATA(2, 0, 0) + + 17 + - 2/175 x z DATA(2, -1, 0) - 2/175 x z DATA(2, 1, 0) - ---- DATA(1, 1, -2) + 2100 + + + 2/175 x z DATA(-2, -1, 0) + 2/175 x z DATA(-2, 0, 0) + + + 2/175 x z DATA(-2, -2, 0) + 1/175 x z DATA(-1, -2, 0) + + 2 + - 1/50 y z DATA(2, -2, -1) + 1/175 x z DATA(-1, 2, 0) + + + 2/175 x z DATA(-2, 2, 0) + 2/175 x z DATA(-2, 1, 0) + + - 1/175 x z DATA(1, -2, 0) - 2/175 x z DATA(2, -2, 0) + + - 2/175 x z DATA(-2, 0, -2) + 1/175 x z DATA(1, 0, -2) + + + 2/175 x z DATA(2, 0, -2) - 1/175 x z DATA(2, 0, -1) + + 29 17 + - 1/175 x z DATA(2, 0, 1) - ---- DATA(0, 1, -2) - ---- DATA(-1, 1, -2) + 2100 2100 + + 2 2 + - 1/50 y z DATA(1, -2, -1) - 1/50 y z DATA(-1, -2, -1) + + 2 2 + - 1/50 y z DATA(-2, -2, -1) - 2/245 x z DATA(0, -1, -2) + + 2 2 + - 1/100 y z DATA(2, 2, -2) - 1/100 y z DATA(1, 2, -2) + + 2 2 + - 1/100 y z DATA(-1, 2, -2) + 1/100 y z DATA(-2, 1, -1) + + 2 19 + - 1/100 y z DATA(-2, -1, -1) + ---- DATA(-2, 1, -2) + 2100 + + 2 2 + + 1/50 y z DATA(-2, 2, -1) + 1/50 y z DATA(-2, -2, 1) + + + 1/300 DATA(2, 0, -2) + 2/175 x z DATA(2, 0, 2) + 1/175 x z DATA(1, 0, 2) + + 41 29 2 + - ---- DATA(0, 0, -2) - ---- DATA(1, 0, -2) - 2/245 y z DATA(0, 0, 2) + 2100 2100 + + - 1/350 x z DATA(1, 0, 1) - 2/175 x z DATA(-2, 0, 2) + + 2 2 + - 2/245 y z DATA(0, 0, -2) + 2/245 y z DATA(2, 0, 0) + + 2 2 + + 1/245 y z DATA(2, -1, 0) - 2/245 y z DATA(0, 2, 0) + + 2 2 + + 1/245 y z DATA(2, 1, 0) + 1/50 y z DATA(-1, -2, 1) + + 2 2 + + 1/245 y z DATA(-2, -1, 0) + 2/245 y z DATA(-2, 0, 0) + + 2 2 + - 2/245 y z DATA(-2, -2, 0) - 2/245 y z DATA(-1, -2, 0) + + 29 2 + - ---- DATA(-1, 0, -2) + 1/50 y z DATA(1, -2, 1) + 1/300 DATA(-2, 0, -2) + 2100 + + 2 2 + - 2/245 y z DATA(-1, 2, 0) - 2/245 y z DATA(-2, 2, 0) + + 2 2 + + 1/245 y z DATA(-2, 1, 0) - 2/245 y z DATA(1, -2, 0) + + 2 + - 2/245 y z DATA(2, -2, 0) - 1/175 x z DATA(1, 0, 0) + + + 1/175 x z DATA(-1, 1, 0) + 1/175 x z DATA(-1, 0, 0) + + - 1/175 x z DATA(1, -1, 0) + 1/175 x z DATA(-1, -1, 0) + + 19 + - 1/175 x z DATA(1, 1, 0) - 1/175 x z DATA(1, 2, 0) + ---- DATA(2, -1, -2) + 2100 + + 2 + - 2/175 x z DATA(2, 2, 0) + 1/200 y z DATA(1, 1, 2) + + 2 + + 1/175 x z DATA(-2, 0, -1) + 1/50 y z DATA(2, -2, 1) + + 2 + + 1/175 x z DATA(-2, 0, 1) + 1/100 y z DATA(-2, -1, 1) + + 17 + - ---- DATA(1, -1, -2) - 1/175 x z DATA(-1, 0, 2) + 2100 + + 2 2 + - 1/100 y z DATA(-2, 1, 1) - 2/245 y z DATA(-2, 0, -2) + + 2 2 + - 2/245 y z DATA(2, 0, -2) - 2/245 y z DATA(1, 0, -2) + + 29 17 2 + - ---- DATA(0, -1, -2) - ---- DATA(-1, -1, -2) + 1/245 y z DATA(2, 0, -1) + 2100 2100 + + 311 + + 4/75 z DATA(2, 0, -1) - 1/300 z DATA(2, 0, -2) + ----- z DATA(1, 0, -2) + 14700 + + 311 + - 1/300 z DATA(-2, 0, -2) + ----- z DATA(1, 0, 2) - 1/300 z DATA(2, 0, 2) + 14700 + + 151 151 + + ---- z DATA(1, 0, -1) - 1/300 z DATA(-2, 0, 2) + ---- z DATA(1, 0, 1) + 3675 3675 + + 151 + + 4/75 z DATA(2, 0, 1) + ---- z DATA(-1, 0, 1) - 1/10 z DATA(0, -2, 0) + 3675 + + 431 + + ----- z DATA(0, 0, 2) - 9/98 z DATA(2, 1, 0) - 1/10 z DATA(0, 2, 0) + 14700 + + 431 + - 9/98 z DATA(2, -1, 0) - 1/10 z DATA(2, 0, 0) + ----- z DATA(0, 0, -2) + 14700 + + 33 + - 9/98 z DATA(-1, -2, 0) - --- z DATA(-2, -2, 0) - 1/10 z DATA(-2, 0, 0) + 490 + + 151 + - 9/98 z DATA(-2, -1, 0) + ---- z DATA(-1, 0, -1) + 3675 + + 2 + - 1/350 x z DATA(1, 1, -1) + 1/245 x z DATA(1, 0, 0) + + 2 + + 2/245 x z DATA(0, 0, 0) + 1/350 x z DATA(-1, 1, 1) + + 33 + - --- z DATA(2, -2, 0) - 9/98 z DATA(1, -2, 0) - 9/98 z DATA(-2, 1, 0) + 490 + + 33 2 + - --- z DATA(-2, 2, 0) - 9/98 z DATA(-1, 2, 0) + 1/175 y DATA(-1, 0, -2) + 490 + + 2 2 + + 1/350 y DATA(0, 0, -1) - 1/350 y DATA(0, 0, 1) + + 2 + + 1/350 y DATA(-2, 0, -1) - 8/525 DATA(2, -2, -1) + + 2 + - 1/350 x z DATA(1, -1, 1) + 1/175 y DATA(2, 0, -2) + + 2 + + 1/175 y DATA(1, 0, -2) + 1/350 x z DATA(-1, -1, 1) + + 2 + - 1/175 x z DATA(-1, -2, 2) - 1/350 y DATA(2, 0, 1) + + 2 2 + - 1/350 y DATA(-2, 0, 1) - 1/175 y DATA(-1, 0, 2) + + 2 2 + + 1/350 y DATA(2, 0, -1) + 1/175 y DATA(-2, 0, -2) + + 2 2 + - 1/175 y DATA(1, 0, 2) - 1/175 y DATA(2, 0, 2) + + 2 + - 1/175 y DATA(-2, 0, 2) + 1/175 x z DATA(1, -2, 2) + + 2 2 + + 1/350 y DATA(-1, 0, -1) + 1/350 y DATA(1, 0, -1) + + 2 2 + - 1/350 y DATA(-1, 0, 1) - 1/350 y DATA(1, 0, 1) + + - 2/175 y z DATA(1, 2, 0) - 1/42 DATA(1, -2, -1) + + 2 + - 2/175 x z DATA(-2, -1, 2) - 1/175 y DATA(0, 0, 2) + + 2 187 187 + + 1/175 y DATA(0, 0, -2) + ---- x DATA(-1, 0, -2) - ---- x DATA(-1, 0, 2) + 7000 7000 + + 187 17 187 + + ---- x DATA(-2, 0, -1) + ---- x DATA(2, 0, -2) - ---- x DATA(1, 0, -2) + 7000 5250 7000 + + 187 + - ---- x DATA(-2, 0, 1) + 2/175 x z DATA(2, -2, 2) + 7000 + + 187 + - 2/175 x z DATA(-2, 1, 2) - ---- x DATA(2, 0, -1) + 7000 + + 17 187 + - ---- x DATA(-2, 0, -2) + ---- x DATA(2, 0, 1) - 1/350 x z DATA(1, 1, 1) + 5250 7000 + + 187 17 + - 2/175 x z DATA(-2, 2, 2) + ---- x DATA(1, 0, 2) - ---- x DATA(2, 0, 2) + 7000 5250 + + 289 289 17 + - ----- x DATA(1, 0, -1) + ----- x DATA(-1, 0, -1) + ---- x DATA(-2, 0, 2) + 10500 10500 5250 + + 289 + + ----- x DATA(1, 0, 1) - 2/75 DATA(0, -2, -1) + 10500 + + 2 + - 1/350 x y DATA(-1, 0, -2) - 1/175 y z DATA(1, 1, 0) + + 2 + - 1/175 x z DATA(-1, 0, -2) + 1/200 x z DATA(-1, 0, -2) + + 3 3 + - 1/300 x DATA(-2, 0, 2) - 1/300 x DATA(1, 0, 1) + + 3 2 + - 1/150 x DATA(-1, 0, -2) - 1/350 x DATA(-1, 0, 2) + + 289 3 + - ----- x DATA(-1, 0, 1) - 1/300 x DATA(-1, 0, -1) + 10500 + + 3 3 + + 1/300 x DATA(1, 0, -1) + 1/300 x DATA(-1, 0, 1) + + + 1/350 x z DATA(-1, -1, -1) - 1/42 DATA(-1, -2, -1) + + 2 2 + - 1/350 x DATA(-2, 0, -1) + 1/350 x DATA(0, 0, -1) + + 2 2 + - 1/350 x DATA(0, 0, 1) + 1/350 x DATA(-1, 0, -2) + + 2 2 + + 1/350 x DATA(-2, 0, 1) - 2/245 y z DATA(1, 2, 0) + + 2 2 + + 1/350 x DATA(2, 0, 1) - 1/350 x DATA(2, 0, -1) + + 2 2 + - 1/175 x DATA(2, 0, -2) + 1/350 x DATA(1, 0, -2) + + 2 2 + - 1/175 x DATA(-2, 0, -2) + 1/700 x DATA(1, 0, -1) + + 2 2 + - 1/700 x DATA(-1, 0, 1) - 1/175 x DATA(0, 0, 2) + + 2 2 + + 1/175 x DATA(0, 0, -2) - 1/350 x DATA(1, 0, 2) + + 2 2 + + 1/175 x DATA(-2, 0, 2) + 1/175 x DATA(2, 0, 2) + + 3 2 + - 1/600 x DATA(-2, 0, 1) - 1/700 x DATA(1, 0, 1) + + 2 3 + + 1/700 x DATA(-1, 0, -1) + 1/600 x DATA(-2, 0, -1) + + 2 2 + + 1/245 y z DATA(1, 1, 0) + 1/245 x z DATA(-1, -1, 0) + + - 1/350 x z DATA(1, 2, -1) - 1/175 x z DATA(2, 1, -1) + + 57 61 57 + - --- z DATA(-1, -1, 0) - --- z DATA(0, -1, 0) - --- z DATA(1, -1, 0) + 490 490 490 + + 61 3 3 + - --- z DATA(-1, 0, 0) - 1/300 x DATA(2, 0, -2) + 1/150 x DATA(1, 0, -2) + 490 + + 3 3 + + 1/300 x DATA(-2, 0, -2) - 1/150 x DATA(1, 0, 2) + + 3 + + 1/150 x DATA(-1, 0, 2) - 8/525 DATA(-2, -2, -1) + + 2 + + 1/245 x z DATA(1, 1, 0) + 1/350 x z DATA(-1, 2, -1) + + 2 + - 2/245 y z DATA(-1, 0, -2) - 1/175 x y z DATA(1, 2, 0) + + 3 + + 1/300 x DATA(2, 0, 2) - 1/175 x z DATA(2, -1, -1) + + 2 + - 1/175 x z DATA(2, 1, 1) + 1/100 x z DATA(1, 0, -1) + + 2 11 + - 1/100 x z DATA(-1, 0, -1) + --- DATA(2, 2, -2) + 420 + + 2 + + 1/100 x z DATA(-1, 0, 1) + 1/350 x z DATA(-1, 2, 1) + + 2 2 + + 1/100 x z DATA(2, 0, 2) + 1/200 x z DATA(1, 0, 2) + + 2 2 + - 1/100 x z DATA(1, 0, 1) - 1/100 x z DATA(-2, 0, 2) + + 2 + - 1/350 x y z DATA(1, 1, 0) + 1/50 x z DATA(2, 0, -1) + + - 2/175 x y z DATA(2, 2, 0) - 1/350 x z DATA(1, 2, 1) + + 19 + - 1/175 x z DATA(2, -1, 1) + ---- DATA(1, 2, -2) + 2100 + + 2 + - 1/350 x z DATA(1, -1, -1) - 1/100 x z DATA(2, 0, -2) + + 2 + - 1/50 x z DATA(2, 0, 1) - 1/175 x z DATA(2, 2, -1) + + 2 2 + + 1/100 x z DATA(-2, 0, -2) - 1/200 x z DATA(1, 0, -2) + + + 1/300 DATA(0, 2, -2) + 1/175 x z DATA(1, 2, 2) + + 2 2 + + 1/50 x z DATA(-2, 0, 1) - 1/50 x z DATA(-2, 0, -1) + + 2 + - 1/175 x y z DATA(2, 1, 0) - 1/200 x z DATA(-1, 0, 2) + + 19 2 + + ---- DATA(-1, 2, -2) - 1/350 x y DATA(1, 0, 2) + 2100 + + 2 2 + - 1/700 x y DATA(1, 0, 1) + 1/175 x y DATA(-2, 0, 2) + + 2 2 + - 1/175 x y DATA(2, 0, 2) + 1/700 x y DATA(-1, 0, 1) + + 2 2 + + 1/700 x y DATA(1, 0, -1) - 1/700 x y DATA(-1, 0, -1) + + - 1/175 y z DATA(-2, 1, 0) + 2/175 y z DATA(1, -2, 0) + + + 2/175 y z DATA(2, -2, 0) + 1/175 y z DATA(-2, -1, 0) + + 2 + - 1/350 x y DATA(-2, 0, -1) - 2/175 y z DATA(-1, 2, 0) + + 2 + - 2/175 y z DATA(-2, 2, 0) - 1/245 y z DATA(-2, 2, 1) + + 2 + - 1/42 DATA(-2, 1, -1) + 2/245 y z DATA(-2, -2, 2) + + 2 2 + + 1/245 y z DATA(-1, 0, 1) - 2/245 x z DATA(0, 2, -2) + + 2 + - 2/75 DATA(-2, 0, -1) + 1/245 x z DATA(0, -2, -1) + + 2 2 + - 2/245 x z DATA(0, 0, -2) - 2/245 x z DATA(-2, 1, 0) + + 2 2 + - 2/245 x z DATA(-2, 2, 0) + 1/245 x z DATA(-1, 2, 0) + + 2 2 + - 2/245 x z DATA(2, 0, 0) - 2/245 x z DATA(2, 1, 0) + + 2 2 + + 2/245 x z DATA(0, -2, 0) + 1/245 x z DATA(1, -2, 0) + + 2 2 + - 2/245 x z DATA(2, -2, 0) - 2/245 x z DATA(-2, -1, 0) + + 2 2 + - 2/245 x z DATA(-2, 0, 0) - 2/245 x z DATA(-2, -2, 0) + + 2 2 + + 1/245 x z DATA(-1, -2, 0) - 2/245 x z DATA(0, 0, 2) + + 2 2 + + 1/490 x z DATA(-1, 0, -1) + 1/490 x z DATA(1, 0, -1) + + 2 2 + + 1/490 x z DATA(-1, 0, 1) - 2/245 x z DATA(2, -1, 0) + + 2 2 + + 2/245 x z DATA(0, 2, 0) + 1/490 x z DATA(1, 0, 1) + + 2 2 + + 2/245 x z DATA(-2, 0, 2) - 1/245 x z DATA(2, 0, 1) + + 2 2 + + 2/245 x z DATA(2, 0, 2) - 1/245 x z DATA(1, 0, 2) + + 2 + - 1/245 x z DATA(2, 0, -1) + 1/350 x y z DATA(1, -1, 0) + + 2 2 + + 2/245 x z DATA(-2, 0, -2) - 1/245 x z DATA(1, 0, -2) + + 2 2 + + 2/245 x z DATA(2, 0, -2) - 1/245 x z DATA(-1, 0, 2) + + 2 2 + - 1/245 x z DATA(-2, 0, -1) - 2/245 x z DATA(2, 2, 0) + + 2 2 + + 1/245 x z DATA(0, 0, 1) + 2/245 x z DATA(0, 1, 0) + + 2 2 + - 1/245 x z DATA(-2, 0, 1) + 1/245 x z DATA(1, -1, 0) + + 2 2 + - 1/245 x z DATA(-1, 0, -2) + 1/245 x z DATA(1, 2, 0) + + 2 2 + + 2/245 x z DATA(0, -1, 0) + 1/245 x z DATA(-1, 0, 0) + + 2 2 + + 1/50 z DATA(-2, 0, -1) - 1/100 z DATA(-1, 0, -2) + + 2 2 2 + - 1/50 z DATA(-2, 0, 1) + 1/50 z DATA(0, 0, -1) - 1/50 z DATA(0, 0, 1) + + 2 2 + + 1/100 z DATA(-1, 0, 2) - 1/100 z DATA(2, 0, -2) + + 2 2 + - 1/100 z DATA(1, 0, -2) - 1/50 z DATA(2, 0, 1) + + 2 2 + - 1/100 z DATA(-2, 0, -2) + 1/50 z DATA(2, 0, -1) + + 2 2 + + 1/245 x z DATA(0, 0, -1) + 1/100 z DATA(1, 0, 2) + + 2 2 2 + + 1/100 z DATA(2, 0, 2) + 1/100 z DATA(-2, 0, 2) - 1/50 z DATA(1, 0, 1) + + 2 2 + - 1/100 z DATA(0, 0, -2) + 1/50 z DATA(-1, 0, -1) + + 2 2 2 + - 1/50 z DATA(-1, 0, 1) + 1/50 z DATA(1, 0, -1) + 1/100 z DATA(0, 0, 2) + + 3 3 3 + + 1/25 z DATA(1, 2, 0) + 1/25 z DATA(1, 1, 0) + 1/150 z DATA(-1, 0, -2) + + 3 3 3 + - 2/75 z DATA(-2, 0, 1) - 2/75 z DATA(0, 0, -1) + 1/25 z DATA(0, 0, 0) + + 3 3 3 + + 1/25 z DATA(1, 0, 0) + 1/25 z DATA(0, 1, 0) - 2/75 z DATA(0, 0, 1) + + 3 3 + + 1/25 z DATA(2, 2, 0) + 1/150 z DATA(-1, 0, 2) + + 3 3 + - 2/75 z DATA(-2, 0, -1) + 1/150 z DATA(2, 0, -2) + + 3 3 + + 1/150 z DATA(1, 0, -2) + 1/150 z DATA(-2, 0, -2) + + 3 2 + - 2/75 z DATA(2, 0, -1) + 1/245 x z DATA(-1, 1, 0) + + 3 3 + - 2/75 z DATA(2, 0, 1) - 1/42 DATA(-2, -1, -1) + 1/150 z DATA(2, 0, 2) + + 3 3 + + 1/150 z DATA(-2, 0, 2) - 2/75 z DATA(-1, 0, -1) + + 3 3 3 + - 2/75 z DATA(1, 0, -1) - 2/75 z DATA(-1, 0, 1) + 1/150 z DATA(1, 0, 2) + + 3 3 3 + + 1/25 z DATA(2, 1, 0) + 1/25 z DATA(0, 2, 0) + 1/25 z DATA(2, -1, 0) + + 3 3 3 + + 1/25 z DATA(2, 0, 0) + 1/25 z DATA(0, -2, 0) - 2/75 z DATA(1, 0, 1) + + 3 3 + + 1/150 z DATA(0, 0, 2) + 1/25 z DATA(-2, -1, 0) + + 3 3 3 + + 1/25 z DATA(2, -2, 0) + 1/25 z DATA(1, -2, 0) + 1/25 z DATA(-2, 1, 0) + + 3 3 + + 1/25 z DATA(-2, 2, 0) + 1/25 z DATA(-1, 2, 0) + + 311 57 + + ----- z DATA(-1, 0, -2) - 9/98 z DATA(1, 2, 0) - --- z DATA(1, 1, 0) + 14700 490 + + 3 3 + + 1/150 z DATA(0, 0, -2) + 1/25 z DATA(-1, -2, 0) + + 3 3 + + 1/25 z DATA(-2, -2, 0) + 1/25 z DATA(-2, 0, 0) + 4/75 z DATA(-2, 0, 1) + + 57 136 13 + - --- z DATA(-1, 1, 0) + ---- z DATA(0, 0, -1) - -- z DATA(0, 0, 0) + 490 3675 98 + + 61 61 136 + - --- z DATA(1, 0, 0) - --- z DATA(0, 1, 0) + ---- z DATA(0, 0, 1) + 490 490 3675 + + 33 311 + - --- z DATA(2, 2, 0) + 4/75 z DATA(-2, 0, -1) + ----- z DATA(-1, 0, 2) + 490 14700 + + 2 2 + + 2/245 y z DATA(2, 2, -2) + 2/245 y z DATA(1, 2, -2) + + 2 2 + + 1/200 y z DATA(0, 1, 2) + 2/245 y z DATA(-1, 2, -2) + + 2 + - 8/525 DATA(-2, 2, -1) + 1/100 y z DATA(0, 2, 2) + + 2 2 + + 1/100 y z DATA(0, -2, -2) + 1/490 y z DATA(-2, 1, -1) + + 2 2 + + 1/490 y z DATA(-2, -1, -1) - 1/245 y z DATA(-2, 2, -1) + + 2 2 + + 1/245 x z DATA(0, -2, 1) - 1/245 y z DATA(-2, -2, 1) + + 2 2 + - 1/245 y z DATA(-1, -2, 1) - 1/245 y z DATA(1, -2, 1) + + 2 2 + - 1/245 y z DATA(1, 1, 2) - 1/245 y z DATA(2, -2, 1) + + 2 2 + + 1/490 y z DATA(-2, -1, 1) + 1/490 y z DATA(-2, 1, 1) + + 2 2 + + 2/245 y z DATA(0, 2, -2) - 1/245 y z DATA(0, -2, -1) + + 2 + - 1/200 y z DATA(0, -1, 2) + 1/175 x z DATA(-2, -2, 1) + + + 1/350 x z DATA(-1, -2, 1) - 1/350 x z DATA(1, -2, 1) + + 2 + + 1/175 x z DATA(1, 1, 2) + 1/490 y z DATA(0, 1, -1) + + - 1/175 x z DATA(2, -2, 1) + 1/175 x z DATA(-2, -1, 1) + + + 1/175 x z DATA(-2, 1, 1) + 1/175 x z DATA(-2, 2, 1) + + 2 + - 2/175 x z DATA(-2, -2, 2) - 1/245 y z DATA(0, -2, 1) + + 2 + + 1/175 x z DATA(-2, -2, -1) + 2/245 y z DATA(0, -2, 2) + + 2 + + 2/175 x z DATA(2, 2, -2) + 1/490 y z DATA(0, -1, 1) + + + 1/175 x z DATA(1, 2, -2) - 1/175 x z DATA(-1, 2, -2) + + + 1/175 x z DATA(-2, 1, -1) + 1/175 x z DATA(-2, -1, -1) + + + 1/175 x z DATA(-2, 2, -1) + 1/175 x z DATA(1, -1, -2) + + + 8/525 DATA(-2, -2, 1) - 1/175 x z DATA(-1, -1, -2) + + 2 + + 1/490 y z DATA(0, 1, 1) - 1/175 x z DATA(2, -2, -1) + + - 1/350 x z DATA(1, -2, -1) + 1/350 x z DATA(-1, -2, -1) + + - 1/175 x z DATA(2, 2, 1) - 2/175 x z DATA(-2, 2, -2) + + + 2/175 x z DATA(2, 1, -2) + 1/42 DATA(-1, -2, 1) + + + 1/175 x z DATA(1, 1, -2) - 1/175 x z DATA(-1, 1, -2) + + - 2/175 x z DATA(-2, 1, -2) + 2/175 x z DATA(2, -1, -2) + + + 1/42 DATA(1, -2, 1) - 1/175 x z DATA(-1, 1, 2) + + - 2/175 x z DATA(-2, -2, -2) + 1/175 x z DATA(1, -1, 2) + + + 2/75 DATA(0, -2, 1) + 2/175 x z DATA(2, -1, 2) + + 2 + + 1/490 y z DATA(0, -1, -1) - 1/175 x z DATA(-1, -1, 2) + + + 1/500 x y DATA(-1, -2, 1) - 1/500 x y DATA(1, -2, 1) + + + 8/525 DATA(2, -2, 1) + 1/500 x y DATA(1, 1, 2) + + - 1/250 x y DATA(2, -2, 1) + 1/175 x z DATA(1, -2, -2) + + + 2/175 x z DATA(2, 1, 2) - 1/175 x z DATA(-1, 2, 2) + + 2 + - 1/175 x z DATA(-1, -2, -2) + 1/175 x y DATA(-2, 2, -2) + + 2 2 + + 1/350 x y DATA(2, 2, 1) + 1/700 x y DATA(-1, -1, 2) + + 2 2 + - 1/350 x y DATA(2, -1, 2) - 1/700 x y DATA(1, -1, 2) + + 2 2 + + 1/175 x y DATA(-2, -2, -2) + 1/700 x y DATA(-1, 1, 2) + + 2 2 + + 1/350 x y DATA(-1, -2, -2) - 1/350 x y DATA(-1, 2, 2) + + 2 2 + - 1/350 x y DATA(2, 1, 2) - 1/350 x y DATA(1, -2, -2) + + 2 2 + - 1/1400 x y DATA(-1, 1, -1) - 1/175 x y DATA(2, -2, -2) + + 2 2 + + 1/175 x y DATA(2, 2, 2) - 1/350 x y DATA(-2, -1, -2) + + 2 2 + + 1/350 x y DATA(1, 2, 2) - 1/350 x y DATA(2, 2, -1) + + 2 2 + + 1/1400 x y DATA(1, -1, -1) - 1/700 x y DATA(2, -1, 1) + + 2 + + 1/700 x y DATA(1, 2, 1) + 1/350 x y z DATA(2, -1, -1) + + 2 + - 1/175 y z DATA(-1, -1, 2) - 1/700 x y DATA(-1, -2, 1) + + 2 2 + - 1/350 x y DATA(-2, -2, 1) + 1/350 x y DATA(-2, 2, -1) + + 2 2 + - 1/700 x y DATA(-2, -1, -1) - 1/700 x y DATA(-2, 1, -1) + + 2 2 + + 1/350 x y DATA(-1, 2, -2) - 1/350 x y DATA(1, 2, -2) + + 2 2 + - 1/175 x y DATA(2, 2, -2) + 1/350 x y DATA(-2, -2, -1) + + 2 2 + + 1/700 x y DATA(-1, -2, -1) - 1/700 x y DATA(1, -2, -1) + + 2 2 + - 1/350 x y DATA(2, -2, -1) - 1/700 x y DATA(-1, -1, -2) + + 2 2 + + 1/700 x y DATA(1, -1, -2) + 1/350 x y DATA(2, -1, -2) + + 2 + - 1/350 x y DATA(-2, 1, -2) - 1/175 y z DATA(2, 2, 1) + + 2 2 + - 1/700 x y DATA(-1, 1, -2) + 1/700 x y DATA(1, 1, -2) + + 2 + + 1/350 x y DATA(2, 1, -2) - 1/500 x y DATA(-2, -1, -1) + + 2 2 + + 1/1400 x y DATA(-1, 1, -1) + 1/175 x y DATA(2, -2, -2) + + 2 2 + + 1/175 x y DATA(2, 2, 2) + 1/350 x y DATA(-2, -1, -2) + + 2 2 + - 1/350 x y DATA(1, 2, 2) - 1/350 x y DATA(2, 2, -1) + + 2 2 + - 1/700 x y DATA(-1, 2, 1) - 1/700 x y DATA(2, 1, 1) + + 2 2 + + 1/700 x y DATA(2, -1, -1) + 1/700 x y DATA(-1, 2, -1) + + 2 2 + + 1/700 x y DATA(2, 1, -1) - 1/700 x y DATA(1, 2, -1) + + 2 2 + - 1/1400 x y DATA(-1, -1, -1) - 1/175 x y DATA(-2, 2, 2) + + 2 2 + - 1/1400 x y DATA(1, 1, 1) + 1/350 x y DATA(-2, 1, 2) + + 2 2 + + 1/175 x y DATA(2, -2, 2) + 1/350 x y DATA(-2, -1, 2) + + 2 + + 1/350 x y DATA(1, -2, 2) + 2/175 y z DATA(-2, 2, -2) + + 2 + - 1/350 x y DATA(-1, -2, 2) - 1/175 y z DATA(1, -1, -2) + + 2 2 + + 1/1400 x y DATA(-1, -1, 1) - 1/1400 x y DATA(1, -1, 1) + + 2 + + 1/1400 x y DATA(-1, 1, 1) - 1/350 x y z DATA(2, 1, -1) + + 2 2 + - 1/700 x y DATA(-2, 1, -1) + 1/350 x y DATA(-1, 2, -2) + + 2 2 + + 1/350 x y DATA(1, 2, -2) - 1/175 x y DATA(2, 2, -2) + + 2 2 + + 1/350 x y DATA(-2, -2, -1) - 1/700 x y DATA(-1, -2, -1) + + 2 2 + - 1/700 x y DATA(1, -2, -1) + 1/350 x y DATA(2, -2, -1) + + 2 2 + - 1/700 x y DATA(-1, -1, -2) - 1/700 x y DATA(1, -1, -2) + + 2 2 + + 1/350 x y DATA(2, -1, -2) - 1/350 x y DATA(-2, 1, -2) + + 2 2 + + 1/700 x y DATA(-1, 1, -2) + 1/700 x y DATA(1, 1, -2) + + 2 2 + - 1/350 x y DATA(2, 1, -2) - 1/175 x y DATA(-2, 2, -2) + + 2 2 + + 1/350 x y DATA(2, 2, 1) + 1/700 x y DATA(-1, -1, 2) + + 2 2 + - 1/350 x y DATA(2, -1, 2) + 1/700 x y DATA(1, -1, 2) + + 2 2 + + 1/175 x y DATA(-2, -2, -2) - 1/700 x y DATA(-1, 1, 2) + + 2 2 + - 1/350 x y DATA(-1, -2, -2) - 1/350 x y DATA(-1, 2, 2) + + 2 2 + + 1/350 x y DATA(2, 1, 2) - 1/350 x y DATA(1, -2, -2) + + 2 2 + - 1/50 z DATA(1, 2, 1) + 2/245 x z DATA(-2, -2, 2) + + 2 2 + - 1/245 x z DATA(-2, 2, 1) - 1/245 x z DATA(-2, 1, 1) + + 2 2 + - 1/245 x z DATA(-2, -1, 1) - 1/245 x z DATA(2, -2, 1) + + 2 2 + - 1/245 x z DATA(1, 1, 2) + 1/490 x z DATA(1, -2, 1) + + 2 2 + + 1/490 x z DATA(-1, -2, 1) - 1/245 x z DATA(-2, -2, 1) + + 2 2 + - 1/245 x z DATA(-2, 2, -1) - 1/245 x z DATA(-2, -1, -1) + + 2 2 + - 1/245 x z DATA(-2, 1, -1) - 1/245 x z DATA(-1, 2, -2) + + 2 2 + - 1/245 x z DATA(1, 2, -2) + 2/245 x z DATA(2, 2, -2) + + 2 2 + - 1/245 x z DATA(-2, -2, -1) + 1/490 x z DATA(-1, -2, -1) + + 2 2 + + 1/490 x z DATA(1, -2, -1) - 1/175 x y DATA(-2, -2, 2) + + 2 2 + + 1/350 x y DATA(-2, 2, 1) + 1/700 x y DATA(-2, 1, 1) + + 2 2 + - 1/700 x y DATA(-2, -1, 1) - 1/350 x y DATA(2, -2, 1) + + 2 2 + - 1/700 x y DATA(1, 1, 2) + 1/700 x y DATA(1, -2, 1) + + 2 2 + + 1/700 x y DATA(-1, -2, 1) - 1/350 x y DATA(-2, -2, 1) + + 2 2 + - 1/350 x y DATA(-2, 2, -1) + 1/700 x y DATA(-2, -1, -1) + + 2 2 + - 1/50 z DATA(2, -1, 1) - 1/1400 x y DATA(1, 1, 1) + + 2 2 + + 1/350 x y DATA(-2, 1, 2) - 1/175 x y DATA(2, -2, 2) + + 2 2 + - 1/350 x y DATA(-2, -1, 2) + 1/350 x y DATA(1, -2, 2) + + 2 2 + + 1/350 x y DATA(-1, -2, 2) + 1/1400 x y DATA(-1, -1, 1) + + 2 2 + + 1/1400 x y DATA(1, -1, 1) - 1/1400 x y DATA(-1, 1, 1) + + 2 2 + + 1/1400 x y DATA(1, 1, -1) + 1/50 z DATA(1, -1, -1) + + 2 2 + + 2/245 x z DATA(-2, 2, 2) + 1/490 x z DATA(1, 1, 1) + + 2 + + 1/175 y z DATA(2, 1, -2) + 2/245 x z DATA(-2, 1, 2) + + 2 2 + + 2/245 x z DATA(2, -2, 2) + 2/245 x z DATA(-2, -1, 2) + + 2 2 + - 1/245 x z DATA(1, -2, 2) - 1/245 x z DATA(-1, -2, 2) + + 2 2 + - 1/1400 x y DATA(1, -1, -1) - 1/700 x y DATA(2, -1, 1) + + 2 2 + - 1/700 x y DATA(1, 2, 1) - 1/700 x y DATA(-1, 2, 1) + + 2 2 + + 1/700 x y DATA(2, 1, 1) + 1/700 x y DATA(2, -1, -1) + + 2 2 + + 1/700 x y DATA(-1, 2, -1) - 1/700 x y DATA(2, 1, -1) + + 2 2 + + 1/700 x y DATA(1, 2, -1) - 1/1400 x y DATA(-1, -1, -1) + + 2 + + 1/175 x y DATA(-2, 2, 2) + 1/125 x y DATA(-2, -2, 2) + + - 1/250 x y DATA(-2, 2, 1) - 1/500 x y DATA(-2, 1, 1) + + 2 + + 1/500 x y DATA(-2, -1, 1) - 1/245 x z DATA(2, -2, -1) + + 2 2 + - 1/245 x z DATA(-1, -1, -2) - 1/245 x z DATA(1, -1, -2) + + 2 2 + + 2/245 x z DATA(2, -1, -2) + 2/245 x z DATA(-2, 1, -2) + + 2 2 + - 1/245 x z DATA(-1, 1, -2) - 1/245 x z DATA(1, 1, -2) + + 2 2 + + 2/245 x z DATA(2, 1, -2) + 2/245 x z DATA(-2, 2, -2) + + 2 2 + - 1/245 x z DATA(2, 2, 1) - 1/245 x z DATA(-1, -1, 2) + + 2 2 + + 2/245 x z DATA(2, -1, 2) - 1/245 x z DATA(1, -1, 2) + + 2 2 + + 2/245 x z DATA(-2, -2, -2) - 1/245 x z DATA(-1, 1, 2) + + 2 2 + - 1/245 x z DATA(-1, -2, -2) - 1/245 x z DATA(-1, 2, 2) + + 2 2 + + 2/245 x z DATA(2, 1, 2) - 1/245 x z DATA(1, -2, -2) + + 2 2 + + 1/490 x z DATA(-1, 1, -1) + 2/245 x z DATA(2, -2, -2) + + 2 2 + + 2/245 x z DATA(2, 2, 2) + 2/245 x z DATA(-2, -1, -2) + + 2 2 + - 1/245 x z DATA(1, 2, 2) - 1/245 x z DATA(2, 2, -1) + + 2 2 + + 1/490 x z DATA(1, -1, -1) - 1/245 x z DATA(2, -1, 1) + + 2 2 + + 1/490 x z DATA(1, 2, 1) + 1/490 x z DATA(-1, 2, 1) + + 2 2 + - 1/245 x z DATA(2, 1, 1) - 1/245 x z DATA(2, -1, -1) + + 2 2 + + 1/490 x z DATA(-1, 2, -1) - 1/245 x z DATA(2, 1, -1) + + 2 2 + + 1/490 x z DATA(1, 2, -1) + 1/490 x z DATA(-1, -1, -1) + + 2 2 + + 1/50 z DATA(2, 2, -1) - 1/100 z DATA(-2, -1, -2) + + 2 2 + + 1/100 z DATA(2, 2, 2) - 1/100 z DATA(2, -2, -2) + + 2 2 + + 1/50 z DATA(-1, 1, -1) - 1/100 z DATA(1, -2, -2) + + 2 2 + + 1/100 z DATA(2, 1, 2) + 1/100 z DATA(-1, 2, 2) + + 2 2 + - 1/100 z DATA(-1, -2, -2) + 1/100 z DATA(-1, 1, 2) + + 2 2 + - 1/100 z DATA(-2, -2, -2) + 1/100 z DATA(1, -1, 2) + + 2 2 + + 1/100 z DATA(2, -1, 2) + 1/100 z DATA(-1, -1, 2) + + 2 2 + - 1/50 z DATA(2, 2, 1) - 1/100 z DATA(-2, 2, -2) + + 2 2 + - 1/100 z DATA(2, 1, -2) - 1/100 z DATA(1, 1, -2) + + 2 2 + - 1/100 z DATA(-1, 1, -2) - 1/100 z DATA(-2, 1, -2) + + 2 2 2 + - 1/50 z DATA(-1, 2, 1) + 1/50 z DATA(1, 1, -1) - 1/50 z DATA(-1, 1, 1) + + 2 2 + - 1/50 z DATA(1, -1, 1) - 1/50 z DATA(-1, -1, 1) + + 2 2 + + 1/100 z DATA(-1, -2, 2) + 1/100 z DATA(1, -2, 2) + + 2 2 + + 1/100 z DATA(-2, -1, 2) + 1/100 z DATA(2, -2, 2) + + 2 2 + + 1/100 z DATA(-2, 1, 2) - 1/50 z DATA(1, 1, 1) + + 2 2 + + 1/100 z DATA(-2, 2, 2) + 1/50 z DATA(-1, -1, -1) + + 2 2 + + 1/50 z DATA(1, 2, -1) + 1/700 x DATA(1, 1, -1) + + 2 2 + + 1/700 y DATA(1, 1, -1) - 1/700 y DATA(-1, 1, 1) + + 2 2 + - 1/700 y DATA(1, -1, 1) - 1/700 y DATA(-1, -1, 1) + + 2 2 + + 1/175 y DATA(-1, -2, 2) + 1/175 y DATA(1, -2, 2) + + 2 2 + - 1/350 y DATA(-2, -1, 2) + 1/175 y DATA(2, -2, 2) + + 2 2 + - 1/350 y DATA(-2, 1, 2) - 1/700 y DATA(1, 1, 1) + + 2 2 + + 1/175 y DATA(-2, 2, 2) + 1/700 y DATA(-1, -1, -1) + + 2 2 + - 1/350 y DATA(1, 2, -1) + 1/700 y DATA(2, 1, -1) + + 2 2 + - 1/350 y DATA(-1, 2, -1) + 1/700 y DATA(2, -1, -1) + + 2 2 + - 1/700 y DATA(2, 1, 1) + 1/350 y DATA(-1, 2, 1) + + 2 2 + + 1/350 y DATA(1, 2, 1) - 1/700 y DATA(2, -1, 1) + + 2 2 + + 1/700 y DATA(1, -1, -1) - 1/350 y DATA(2, 2, -1) + + 2 2 + + 1/175 y DATA(1, 2, 2) + 1/350 y DATA(-2, -1, -2) + + 2 2 + + 1/175 y DATA(2, 2, 2) - 1/175 y DATA(2, -2, -2) + + 2 2 + + 1/700 y DATA(-1, 1, -1) - 1/175 y DATA(1, -2, -2) + + 2 2 + - 1/350 y DATA(2, 1, 2) + 1/175 y DATA(-1, 2, 2) + + 2 2 + - 1/175 y DATA(-1, -2, -2) - 1/350 y DATA(-1, 1, 2) + + 2 2 + - 1/175 y DATA(-2, -2, -2) - 1/350 y DATA(1, -1, 2) + + 2 2 + - 1/350 y DATA(2, -1, 2) - 1/350 y DATA(-1, -1, 2) + + 2 2 + + 1/350 y DATA(2, 2, 1) - 1/175 y DATA(-2, 2, -2) + + 2 2 + + 1/350 y DATA(2, 1, -2) + 1/350 y DATA(1, 1, -2) + + 2 + + 1/350 y DATA(-1, 1, -2) + 1/175 y z DATA(1, 1, 2) + + + 1/175 y z DATA(1, -2, 1) + 1/250 x y DATA(-2, 2, -1) + + + 1/250 x y DATA(-2, -2, 1) + 1/175 y z DATA(-1, -2, 1) + + + 1/42 DATA(-2, -1, 1) + 1/250 x y DATA(-1, 2, -2) + + 2 2 + - 1/175 x DATA(-2, -2, -2) - 1/350 x DATA(1, -1, 2) + + 2 2 + + 1/175 x DATA(2, -1, 2) - 1/350 x DATA(-1, -1, 2) + + 2 2 + + 1/350 x DATA(2, 2, 1) - 1/175 x DATA(-2, 2, -2) + + 2 2 + - 1/175 x DATA(2, 1, -2) + 1/350 x DATA(1, 1, -2) + + 2 2 + + 1/350 x DATA(-1, 1, -2) - 1/175 x DATA(-2, 1, -2) + + 2 2 + - 1/175 x DATA(2, -1, -2) + 1/350 x DATA(1, -1, -2) + + 2 2 + + 1/350 x DATA(-1, -1, -2) - 1/350 x DATA(2, -2, -1) + + 2 2 + + 1/700 x DATA(1, -2, -1) - 1/350 x DATA(1, -2, 2) + + 2 2 + - 1/700 x DATA(-1, 1, 1) - 1/700 x DATA(1, -1, 1) + + 2 2 + - 1/700 x DATA(-1, -1, 1) - 1/350 x DATA(-1, -2, 2) + + 3 3 + + 1/300 x DATA(-1, 1, 1) - 1/300 x DATA(1, -1, 1) + + 3 3 + + 1/300 x DATA(-1, -1, 1) + 1/150 x DATA(-1, -2, 2) + + 3 3 + - 1/150 x DATA(1, -2, 2) - 1/300 x DATA(-2, -1, 2) + + 3 3 + + 1/300 x DATA(2, -2, 2) - 1/300 x DATA(-2, 1, 2) + + 3 3 + - 1/300 x DATA(1, 1, 1) - 1/300 x DATA(-2, 2, 2) + + 3 3 + - 1/300 x DATA(-1, -1, -1) + 1/300 x DATA(1, 2, -1) + + 3 3 + - 1/600 x DATA(2, 1, -1) - 1/300 x DATA(-1, 2, -1) + + 3 3 + - 1/600 x DATA(2, -1, -1) + 1/600 x DATA(2, 1, 1) + + 3 3 + + 1/300 x DATA(-1, 2, 1) - 1/300 x DATA(1, 2, 1) + + 3 3 + + 1/600 x DATA(2, -1, 1) + 1/300 x DATA(1, -1, -1) + + 3 3 + - 1/600 x DATA(2, 2, -1) - 1/150 x DATA(1, 2, 2) + + 3 3 + + 1/300 x DATA(-2, -1, -2) + 1/300 x DATA(2, 2, 2) + + 3 3 + - 1/300 x DATA(2, -2, -2) - 1/300 x DATA(-1, 1, -1) + + 3 3 + + 1/150 x DATA(1, -2, -2) + 1/300 x DATA(2, 1, 2) + + 3 3 + + 1/150 x DATA(-1, 2, 2) - 1/150 x DATA(-1, -2, -2) + + 3 3 + + 1/150 x DATA(-1, 1, 2) + 1/300 x DATA(-2, -2, -2) + + 3 3 + - 1/150 x DATA(1, -1, 2) + 1/300 x DATA(2, -1, 2) + + 3 3 + + 1/150 x DATA(-1, -1, 2) + 1/600 x DATA(2, 2, 1) + + 3 3 + + 1/300 x DATA(-2, 2, -2) - 1/300 x DATA(2, 1, -2) + + 3 3 + + 1/150 x DATA(1, 1, -2) - 1/150 x DATA(-1, 1, -2) + + 3 3 + + 1/300 x DATA(-2, 1, -2) - 1/300 x DATA(2, -1, -2) + + 3 3 + + 1/150 x DATA(1, -1, -2) - 1/150 x DATA(-1, -1, -2) + + 3 3 + - 1/600 x DATA(2, -2, -1) + 1/300 x DATA(1, -2, -1) + + 3 3 + - 1/300 x DATA(-1, -2, -1) + 1/600 x DATA(-2, -2, -1) + + 2 2 + + 1/175 x DATA(-2, -1, 2) + 1/175 x DATA(2, -2, 2) + + 2 2 + + 1/175 x DATA(-2, 1, 2) - 1/700 x DATA(1, 1, 1) + + 2 2 + + 1/175 x DATA(-2, 2, 2) + 1/700 x DATA(-1, -1, -1) + + 2 2 + + 1/700 x DATA(1, 2, -1) - 1/350 x DATA(2, 1, -1) + + 2 2 + + 1/700 x DATA(-1, 2, -1) - 1/350 x DATA(2, -1, -1) + + 2 2 + + 1/350 x DATA(2, 1, 1) - 1/700 x DATA(-1, 2, 1) + + 2 2 + - 1/700 x DATA(1, 2, 1) + 1/350 x DATA(2, -1, 1) + + 2 2 + + 1/700 x DATA(1, -1, -1) - 1/350 x DATA(2, 2, -1) + + 2 2 + - 1/350 x DATA(1, 2, 2) - 1/175 x DATA(-2, -1, -2) + + 2 2 + + 1/175 x DATA(2, 2, 2) - 1/175 x DATA(2, -2, -2) + + 2 2 + + 1/700 x DATA(-1, 1, -1) + 1/350 x DATA(1, -2, -2) + + 2 2 + + 1/175 x DATA(2, 1, 2) - 1/350 x DATA(-1, 2, 2) + + 2 2 + + 1/350 x DATA(-1, -2, -2) - 1/350 x DATA(-1, 1, 2) + + 3 3 + + 1/300 x DATA(1, 1, -1) + 1/600 x DATA(-2, -1, -1) + + 3 3 + + 1/600 x DATA(-2, 2, -1) - 1/600 x DATA(-2, -2, 1) + + 3 3 + + 1/300 x DATA(-1, -2, 1) - 1/300 x DATA(1, -2, 1) + + 3 3 + - 1/150 x DATA(1, 1, 2) + 1/600 x DATA(2, -2, 1) + + 3 3 + - 1/600 x DATA(-2, -1, 1) - 1/600 x DATA(-2, 1, 1) + + 3 2 + - 1/600 x DATA(-2, 2, 1) + 1/700 x DATA(-1, -2, -1) + + 2 2 + - 1/350 x DATA(-2, -2, -1) - 1/175 x DATA(2, 2, -2) + + 2 2 + + 1/350 x DATA(1, 2, -2) + 1/350 x DATA(-1, 2, -2) + + 2 2 + - 1/350 x DATA(-2, 1, -1) - 1/350 x DATA(-2, -1, -1) + + 2 2 + - 1/350 x DATA(-2, 2, -1) + 1/350 x DATA(-2, -2, 1) + + 2 2 + - 1/700 x DATA(-1, -2, 1) - 1/700 x DATA(1, -2, 1) + + 2 2 + - 1/350 x DATA(1, 1, 2) + 1/350 x DATA(2, -2, 1) + + 2 2 + + 1/350 x DATA(-2, -1, 1) + 1/350 x DATA(-2, 1, 1) + + 2 2 + + 1/350 x DATA(-2, 2, 1) + 1/175 x DATA(-2, -2, 2) + + 3 + - 1/175 y z DATA(-2, -1, 2) - 1/300 x DATA(2, 2, -2) + + 3 3 + + 1/150 x DATA(1, 2, -2) - 1/150 x DATA(-1, 2, -2) + + 3 137 + + 1/600 x DATA(-2, 1, -1) - ---- x DATA(-1, -1, 1) + 5250 + + 107 107 47 + - ---- x DATA(-1, -2, 2) + ---- x DATA(1, -2, 2) + ---- x DATA(-2, -1, 2) + 7000 7000 5250 + + 137 47 137 + - ---- x DATA(2, -2, 2) + ---- x DATA(-2, 1, 2) + ---- x DATA(1, 1, 1) + 5250 5250 5250 + + 137 137 229 + + ---- x DATA(-2, 2, 2) + ---- x DATA(-1, -1, -1) - ----- x DATA(1, 2, -1) + 5250 5250 10500 + + 167 229 167 + - ---- x DATA(2, 1, -1) + ----- x DATA(-1, 2, -1) - ---- x DATA(2, -1, -1) + 7000 10500 7000 + + 167 229 229 + + ---- x DATA(2, 1, 1) - ----- x DATA(-1, 2, 1) + ----- x DATA(1, 2, 1) + 7000 10500 10500 + + 167 137 107 + + ---- x DATA(2, -1, 1) - ---- x DATA(1, -1, -1) - ---- x DATA(2, 2, -1) + 7000 5250 7000 + + 107 47 + + ---- x DATA(1, 2, 2) - ---- x DATA(-2, -1, -2) + 7000 5250 + + 3 137 + - 1/300 x DATA(-2, -2, 2) + ---- x DATA(1, -1, 1) + 5250 + + 107 229 + - ---- x DATA(2, -2, -1) - ----- x DATA(1, -2, -1) + 7000 10500 + + 229 107 + + ----- x DATA(-1, -2, -1) + ---- x DATA(-2, -2, -1) + 10500 7000 + + 137 107 107 + + ---- x DATA(2, 2, -2) - ---- x DATA(1, 2, -2) + ---- x DATA(-1, 2, -2) + 5250 7000 7000 + + 167 167 + + ---- x DATA(-2, 1, -1) + ---- x DATA(-2, -1, -1) + 7000 7000 + + 107 107 + + ---- x DATA(-2, 2, -1) - ---- x DATA(-2, -2, 1) + 7000 7000 + + 229 229 167 + - ----- x DATA(-1, -2, 1) + ----- x DATA(1, -2, 1) + ---- x DATA(1, 1, 2) + 10500 10500 7000 + + 107 137 137 + + ---- x DATA(2, -2, 1) - ---- x DATA(1, 1, -1) - ---- x DATA(-1, 1, 1) + 7000 5250 5250 + + 137 137 137 + - ---- x DATA(2, 2, 2) + ---- x DATA(2, -2, -2) + ---- x DATA(-1, 1, -1) + 5250 5250 5250 + + 107 47 107 + - ---- x DATA(1, -2, -2) - ---- x DATA(2, 1, 2) - ---- x DATA(-1, 2, 2) + 7000 5250 7000 + + 107 167 + + ---- x DATA(-1, -2, -2) - ---- x DATA(-1, 1, 2) + 7000 7000 + + 137 167 47 + - ---- x DATA(-2, -2, -2) + ---- x DATA(1, -1, 2) - ---- x DATA(2, -1, 2) + 5250 7000 5250 + + 167 107 137 + - ---- x DATA(-1, -1, 2) + ---- x DATA(2, 2, 1) - ---- x DATA(-2, 2, -2) + 7000 7000 5250 + + 47 167 167 + + ---- x DATA(2, 1, -2) - ---- x DATA(1, 1, -2) + ---- x DATA(-1, 1, -2) + 5250 7000 7000 + + 47 47 167 + - ---- x DATA(-2, 1, -2) + ---- x DATA(2, -1, -2) - ---- x DATA(1, -1, -2) + 5250 5250 7000 + + 167 167 167 + + ---- x DATA(-1, -1, -2) - ---- x DATA(-2, -1, 1) - ---- x DATA(-2, 1, 1) + 7000 7000 7000 + + 107 137 + - ---- x DATA(-2, 2, 1) + ---- x DATA(-2, -2, 2) + 7000 5250 + + 3 3 + + 1/150 z DATA(2, -1, -2) + 1/150 z DATA(-1, -1, -2) + + 3 3 + - 2/75 z DATA(2, -2, -1) - 2/75 z DATA(1, -2, -1) + + 3 3 + - 2/75 z DATA(-1, -2, -1) - 2/75 z DATA(-2, -2, -1) + + 3 3 + + 1/150 z DATA(2, 2, -2) + 1/150 z DATA(1, 2, -2) + + 3 3 + + 1/150 z DATA(-1, 2, -2) - 2/75 z DATA(-2, 1, -1) + + 3 3 + - 2/75 z DATA(-2, -1, -1) - 2/75 z DATA(-2, 2, -1) + + 3 3 + - 2/75 z DATA(-2, -2, 1) - 2/75 z DATA(-1, -2, 1) + + 3 3 3 + - 2/75 z DATA(1, -2, 1) + 1/150 z DATA(1, 1, 2) - 2/75 z DATA(2, -2, 1) + + 3 3 + - 2/75 z DATA(-2, -1, 1) - 2/75 z DATA(-2, 1, 1) + + 3 3 + - 2/75 z DATA(-2, 2, 1) + 1/150 z DATA(-2, -2, 2) + + 3 3 + + 1/150 z DATA(-1, -1, 2) - 2/75 z DATA(-1, -1, 1) + + 3 3 + + 1/150 z DATA(-1, -2, 2) + 1/150 z DATA(1, -2, 2) + + 3 3 + + 1/150 z DATA(-2, -1, 2) + 1/150 z DATA(2, -2, 2) + + 3 166 166 + + 1/150 z DATA(1, -1, -2) + ---- z DATA(1, 1, -1) + ---- z DATA(-1, 1, 1) + 3675 3675 + + 107 137 137 + - ---- y DATA(-2, 2, -1) - ---- y DATA(1, 1, -1) + ---- y DATA(-1, 1, 1) + 7000 5250 5250 + + 137 137 47 + - ---- y DATA(1, -1, 1) - ---- y DATA(-1, -1, 1) + ---- y DATA(-1, -2, 2) + 5250 5250 5250 + + 47 107 137 + + ---- y DATA(1, -2, 2) - ---- y DATA(-2, -1, 2) + ---- y DATA(2, -2, 2) + 5250 7000 5250 + + 107 137 137 + + ---- y DATA(-2, 1, 2) + ---- y DATA(1, 1, 1) - ---- y DATA(-2, 2, 2) + 7000 5250 5250 + + 137 167 229 + + ---- y DATA(-1, -1, -1) - ---- y DATA(1, 2, -1) - ----- y DATA(2, 1, -1) + 5250 7000 10500 + + 167 229 229 + - ---- y DATA(-1, 2, -1) + ----- y DATA(2, -1, -1) + ----- y DATA(2, 1, 1) + 7000 10500 10500 + + 167 167 229 + + ---- y DATA(-1, 2, 1) + ---- y DATA(1, 2, 1) - ----- y DATA(2, -1, 1) + 7000 7000 10500 + + 137 107 47 + + ---- y DATA(1, -1, -1) - ---- y DATA(2, 2, -1) - ---- y DATA(1, 2, 2) + 5250 7000 5250 + + 107 137 137 + + ---- y DATA(-2, -1, -2) - ---- y DATA(2, 2, 2) - ---- y DATA(2, -2, -2) + 7000 5250 5250 + + 137 47 107 + - ---- y DATA(-1, 1, -1) - ---- y DATA(1, -2, -2) + ---- y DATA(2, 1, 2) + 5250 5250 7000 + + 47 47 167 + - ---- y DATA(-1, 2, 2) - ---- y DATA(-1, -2, -2) + ---- y DATA(-1, 1, 2) + 5250 5250 7000 + + 137 3 + - ---- y DATA(-2, -2, -2) - 1/300 y DATA(2, -1, -1) + 5250 + + 3 3 + + 1/600 y DATA(-1, 2, 1) + 1/600 y DATA(1, 2, 1) + + 3 3 + + 1/300 y DATA(2, -1, 1) - 1/300 y DATA(1, -1, -1) + + 3 3 + - 1/600 y DATA(2, 2, -1) + 1/300 y DATA(1, 2, 2) + + 3 3 + - 1/150 y DATA(-2, -1, -2) + 1/300 y DATA(2, 2, 2) + + 3 3 + + 1/300 y DATA(2, -2, -2) + 1/300 y DATA(-1, 1, -1) + + 3 3 + + 1/300 y DATA(1, -2, -2) - 1/150 y DATA(2, 1, 2) + + 3 3 + + 1/300 y DATA(-1, 2, 2) + 1/300 y DATA(-1, -2, -2) + + 3 3 + - 1/150 y DATA(-1, 1, 2) + 1/300 y DATA(-2, -2, -2) + + 3 3 + + 1/150 y DATA(1, -1, 2) + 1/150 y DATA(2, -1, 2) + + 3 3 + + 1/150 y DATA(-1, -1, 2) + 1/600 y DATA(2, 2, 1) + + 3 3 + - 1/300 y DATA(-2, 2, -2) + 1/150 y DATA(2, 1, -2) + + 3 3 + + 1/150 y DATA(1, 1, -2) + 1/150 y DATA(-1, 1, -2) + + 3 3 + + 1/150 y DATA(-2, 1, -2) - 1/150 y DATA(2, -1, -2) + + 3 3 + - 1/150 y DATA(1, -1, -2) - 1/150 y DATA(-1, -1, -2) + + 3 3 + + 1/600 y DATA(2, -2, -1) + 1/600 y DATA(1, -2, -1) + + 3 3 + + 1/600 y DATA(-1, -2, -1) + 1/600 y DATA(-2, -2, -1) + + 3 3 + - 1/300 y DATA(2, 2, -2) - 1/300 y DATA(2, 1, 1) + + 3 3 + - 1/300 y DATA(1, 2, -2) - 1/300 y DATA(-1, 2, -2) + + 3 3 + + 1/300 y DATA(-2, 1, -1) - 1/300 y DATA(-2, -1, -1) + + 3 3 + - 1/600 y DATA(-2, 2, -1) - 1/600 y DATA(-2, -2, 1) + + 3 3 + - 1/600 y DATA(-1, -2, 1) - 1/600 y DATA(1, -2, 1) + + 3 3 + - 1/150 y DATA(1, 1, 2) - 1/600 y DATA(2, -2, 1) + + 3 3 + + 1/300 y DATA(-2, -1, 1) - 1/300 y DATA(-2, 1, 1) + + 3 3 + + 1/600 y DATA(-2, 2, 1) - 1/300 y DATA(-2, -2, 2) + + 3 3 + + 1/300 y DATA(1, 1, -1) - 1/300 y DATA(-1, 1, 1) + + 3 3 + + 1/300 y DATA(1, -1, 1) + 1/300 y DATA(-1, -1, 1) + + 3 3 + - 1/300 y DATA(-1, -2, 2) - 1/300 y DATA(1, -2, 2) + + 3 3 + + 1/150 y DATA(-2, -1, 2) - 1/300 y DATA(2, -2, 2) + + 3 3 + - 1/150 y DATA(-2, 1, 2) - 1/300 y DATA(1, 1, 1) + + 3 3 + + 1/300 y DATA(-2, 2, 2) - 1/300 y DATA(-1, -1, -1) + + 3 3 + - 1/600 y DATA(1, 2, -1) + 1/300 y DATA(2, 1, -1) + + 3 3 + - 1/600 y DATA(-1, 2, -1) + 1/150 z DATA(2, -1, 2) + + 3 3 + - 2/75 z DATA(2, 2, 1) + 1/150 z DATA(-2, 2, -2) + + 3 3 + + 1/150 z DATA(2, 1, -2) + 1/150 z DATA(1, 1, -2) + + 3 3 + + 1/150 z DATA(-1, 1, -2) + 1/150 z DATA(-2, 1, -2) + + 3 3 + + 1/150 z DATA(-2, 1, 2) + 1/150 z DATA(-2, 2, 2) + + 3 3 + - 2/75 z DATA(-1, -1, -1) - 2/75 z DATA(1, 2, -1) + + 3 3 + - 2/75 z DATA(2, 1, -1) - 2/75 z DATA(-1, 2, -1) + + 3 3 3 + - 2/75 z DATA(2, -1, -1) - 2/75 z DATA(2, 1, 1) - 2/75 z DATA(-1, 2, 1) + + 3 3 3 + - 2/75 z DATA(1, 2, 1) - 2/75 z DATA(2, -1, 1) - 2/75 z DATA(1, -1, -1) + + 3 3 + - 2/75 z DATA(2, 2, -1) + 1/150 z DATA(1, 2, 2) + + 3 3 + + 1/150 z DATA(-2, -1, -2) + 1/150 z DATA(2, 2, 2) + + 3 3 + + 1/150 z DATA(2, -2, -2) - 2/75 z DATA(-1, 1, -1) + + 3 3 + + 1/150 z DATA(1, -2, -2) + 1/150 z DATA(2, 1, 2) + + 3 3 + + 1/150 z DATA(-1, 2, 2) + 1/150 z DATA(-1, -2, -2) + + 3 3 + + 1/150 z DATA(-1, 1, 2) + 1/150 z DATA(-2, -2, -2) + + 3 3 + + 1/150 z DATA(1, -1, 2) - 2/75 z DATA(1, 1, -1) + + 3 3 + - 2/75 z DATA(-1, 1, 1) - 2/75 z DATA(1, -1, 1) + + 2 2 + - 1/100 z DATA(2, -1, -2) - 1/100 z DATA(1, -1, -2) + + 2 2 + - 1/100 z DATA(-1, -1, -2) + 1/50 z DATA(2, -2, -1) + + 2 2 + + 1/50 z DATA(1, -2, -1) + 1/50 z DATA(-1, -2, -1) + + 2 2 + + 1/50 z DATA(-2, -2, -1) - 1/100 z DATA(2, 2, -2) + + 2 2 + - 1/100 z DATA(1, 2, -2) - 1/100 z DATA(-1, 2, -2) + + 2 2 + + 1/50 z DATA(-2, 1, -1) + 1/50 z DATA(-2, -1, -1) + + 2 2 + + 1/50 z DATA(-2, 2, -1) - 1/50 z DATA(-2, -2, 1) + + 2 2 + - 1/50 z DATA(-1, -2, 1) - 1/50 z DATA(1, -2, 1) + + 2 2 + + 1/100 z DATA(1, 1, 2) - 1/50 z DATA(2, -2, 1) + + 2 2 + - 1/50 z DATA(-2, -1, 1) - 1/50 z DATA(-2, 1, 1) + + 2 2 + - 1/50 z DATA(-2, 2, 1) + 1/100 z DATA(-2, -2, 2) + + 2 2 + + 1/50 z DATA(2, 1, -1) + 1/50 z DATA(-1, 2, -1) + + 2 3 167 + + 1/50 z DATA(2, -1, -1) - 2/75 z DATA(1, 1, 1) - ---- y DATA(1, -1, 2) + 7000 + + 107 167 107 + - ---- y DATA(2, -1, 2) - ---- y DATA(-1, -1, 2) + ---- y DATA(2, 2, 1) + 7000 7000 7000 + + 137 107 167 + + ---- y DATA(-2, 2, -2) - ---- y DATA(2, 1, -2) - ---- y DATA(1, 1, -2) + 5250 7000 7000 + + 167 107 107 + - ---- y DATA(-1, 1, -2) - ---- y DATA(-2, 1, -2) + ---- y DATA(2, -1, -2) + 7000 7000 7000 + + 167 167 + + ---- y DATA(1, -1, -2) + ---- y DATA(-1, -1, -2) + 7000 7000 + + 107 167 + + ---- y DATA(2, -2, -1) + ---- y DATA(1, -2, -1) + 7000 7000 + + 167 107 + + ---- y DATA(-1, -2, -1) + ---- y DATA(-2, -2, -1) + 7000 7000 + + 137 47 47 + + ---- y DATA(2, 2, -2) + ---- y DATA(1, 2, -2) + ---- y DATA(-1, 2, -2) + 5250 5250 5250 + + 229 229 + - ----- y DATA(-2, 1, -1) + ----- y DATA(-2, -1, -1) + 10500 10500 + + 107 167 167 + - ---- y DATA(-2, -2, 1) - ---- y DATA(-1, -2, 1) - ---- y DATA(1, -2, 1) + 7000 7000 7000 + + 167 107 229 + + ---- y DATA(1, 1, 2) - ---- y DATA(2, -2, 1) - ----- y DATA(-2, -1, 1) + 7000 7000 10500 + + 229 107 137 + + ----- y DATA(-2, 1, 1) + ---- y DATA(-2, 2, 1) + ---- y DATA(-2, -2, 2) + 10500 7000 5250 + + 169 191 + - ----- z DATA(-1, 2, 2) + ----- z DATA(-1, 1, 2) + 14700 14700 + + 529 191 + - ----- z DATA(-2, -2, -2) + ----- z DATA(1, -1, 2) + 14700 14700 + + 169 191 256 + - ----- z DATA(2, -1, 2) + ----- z DATA(-1, -1, 2) + ---- z DATA(2, 2, 1) + 14700 14700 3675 + + 529 169 + - ----- z DATA(-2, 2, -2) - ----- z DATA(2, 1, -2) + 14700 14700 + + 191 191 + + ----- z DATA(1, 1, -2) + ----- z DATA(-1, 1, -2) + 14700 14700 + + 169 169 + - ----- z DATA(-2, 1, -2) - ----- z DATA(2, -1, -2) + 14700 14700 + + 191 191 + + ----- z DATA(1, -1, -2) + ----- z DATA(-1, -1, -2) + 14700 14700 + + 256 211 + + ---- z DATA(2, -2, -1) + ---- z DATA(1, -2, -1) + 3675 3675 + + 211 256 + + ---- z DATA(-1, -2, -1) + ---- z DATA(-2, -2, -1) + 3675 3675 + + 529 169 + - ----- z DATA(2, 2, -2) - ----- z DATA(1, 2, -2) + 14700 14700 + + 169 211 + - ----- z DATA(-1, 2, -2) + ---- z DATA(-2, 1, -1) + 14700 3675 + + 211 256 + + ---- z DATA(-2, -1, -1) + ---- z DATA(-2, 2, -1) + 3675 3675 + + 256 211 211 + + ---- z DATA(-2, -2, 1) + ---- z DATA(-1, -2, 1) + ---- z DATA(1, -2, 1) + 3675 3675 3675 + + 191 256 211 + + ----- z DATA(1, 1, 2) + ---- z DATA(2, -2, 1) + ---- z DATA(-2, -1, 1) + 14700 3675 3675 + + 211 256 529 + + ---- z DATA(-2, 1, 1) + ---- z DATA(-2, 2, 1) - ----- z DATA(-2, -2, 2) + 3675 3675 14700 + + 169 2 + - ----- z DATA(-1, -2, -2) + 1/350 y DATA(-2, 1, -2) + 14700 + + 2 2 + + 1/350 y DATA(2, -1, -2) + 1/350 y DATA(1, -1, -2) + + 2 2 + + 1/350 y DATA(-1, -1, -2) - 1/350 y DATA(2, -2, -1) + + 2 2 + - 1/350 y DATA(1, -2, -1) - 1/350 y DATA(-1, -2, -1) + + 2 2 + - 1/350 y DATA(-2, -2, -1) - 1/175 y DATA(2, 2, -2) + + 2 2 + - 1/175 y DATA(1, 2, -2) - 1/175 y DATA(-1, 2, -2) + + 2 2 + + 1/700 y DATA(-2, 1, -1) + 1/700 y DATA(-2, -1, -1) + + 2 2 + - 1/350 y DATA(-2, 2, -1) + 1/350 y DATA(-2, -2, 1) + + 2 2 + + 1/350 y DATA(-1, -2, 1) + 1/350 y DATA(1, -2, 1) + + 2 2 + - 1/350 y DATA(1, 1, 2) + 1/350 y DATA(2, -2, 1) + + 2 2 + - 1/700 y DATA(-2, -1, 1) - 1/700 y DATA(-2, 1, 1) + + 2 2 + + 1/350 y DATA(-2, 2, 1) + 1/175 y DATA(-2, -2, 2) + + 166 166 169 + + ---- z DATA(1, -1, 1) + ---- z DATA(-1, -1, 1) - ----- z DATA(-1, -2, 2) + 3675 3675 14700 + + 169 169 + - ----- z DATA(1, -2, 2) - ----- z DATA(-2, -1, 2) + 14700 14700 + + 529 169 166 + - ----- z DATA(2, -2, 2) - ----- z DATA(-2, 1, 2) + ---- z DATA(1, 1, 1) + 14700 14700 3675 + + 529 166 211 + - ----- z DATA(-2, 2, 2) + ---- z DATA(-1, -1, -1) + ---- z DATA(1, 2, -1) + 14700 3675 3675 + + 211 211 211 + + ---- z DATA(2, 1, -1) + ---- z DATA(-1, 2, -1) + ---- z DATA(2, -1, -1) + 3675 3675 3675 + + 211 211 211 + + ---- z DATA(2, 1, 1) + ---- z DATA(-1, 2, 1) + ---- z DATA(1, 2, 1) + 3675 3675 3675 + + 211 166 256 + + ---- z DATA(2, -1, 1) + ---- z DATA(1, -1, -1) + ---- z DATA(2, 2, -1) + 3675 3675 3675 + + 169 169 529 + - ----- z DATA(1, 2, 2) - ----- z DATA(-2, -1, -2) - ----- z DATA(2, 2, 2) + 14700 14700 14700 + + 529 166 + - ----- z DATA(2, -2, -2) + ---- z DATA(-1, 1, -1) + 14700 3675 + + 169 169 + - ----- z DATA(1, -2, -2) - ----- z DATA(2, 1, 2) + 14700 14700 + + + 1/175 y z DATA(2, 1, 2) - 1/350 y z DATA(-1, 1, -1) + + - 2/175 y z DATA(2, -2, -2) + 1/175 y z DATA(1, 1, -2) + + + 1/175 y z DATA(-1, 1, -2) - 1/175 y z DATA(-2, -1, -2) + + + 2/175 y z DATA(2, 2, 2) + 1/350 y z DATA(1, -1, -1) + + - 1/175 y z DATA(2, 2, -1) + 2/175 y z DATA(1, 2, 2) + + - 1/175 y z DATA(1, 2, 1) + 1/350 y z DATA(2, -1, 1) + + + 1/350 y z DATA(2, -1, -1) - 1/350 y z DATA(2, 1, 1) + + - 1/175 y z DATA(-1, 2, 1) - 1/350 y z DATA(2, 1, -1) + + + 1/350 y z DATA(-1, -1, -1) - 1/175 y z DATA(1, 2, -1) + + 2 + + 2/175 y z DATA(-2, 2, 2) + 1/490 y z DATA(1, 1, -1) + + 2 + - 1/350 y z DATA(1, 1, -1) + 1/100 y z DATA(1, 1, -1) + + 2 2 + + 1/100 x z DATA(1, 1, -1) + 1/1400 x y DATA(1, 1, -1) + + 2 + + 1/175 y z DATA(-2, 1, 2) + 1/490 x z DATA(1, 1, -1) + + - 1/1000 x y DATA(1, 1, -1) - 2/175 y z DATA(2, -2, 2) + + - 2/175 y z DATA(1, -2, 2) - 2/175 y z DATA(-1, -2, 2) + + - 2/175 y z DATA(1, -2, -2) - 1/175 y z DATA(2, -1, 2) + + - 2/175 y z DATA(-2, -2, -2) + 1/350 y z DATA(-1, -1, 1) + + - 1/175 y z DATA(1, -1, 2) - 2/175 y z DATA(-1, -2, -2) + + + 1/175 y z DATA(-1, 1, 2) + 1/350 y z DATA(1, -1, 1) + + - 1/350 y z DATA(-1, 1, 1) + 2/175 y z DATA(-1, 2, 2) + + 2 + + 1/175 y z DATA(-2, 1, -2) + 1/50 x z DATA(-2, 2, 1) + + 2 2 + + 1/50 x z DATA(-2, 1, 1) + 1/50 x z DATA(-2, -1, 1) + + 2 2 + - 1/50 x z DATA(2, -2, 1) + 1/200 x z DATA(1, 1, 2) + + 2 2 + - 1/100 x z DATA(1, -2, 1) + 1/100 x z DATA(-1, -2, 1) + + 2 2 + + 1/50 x z DATA(-2, -2, 1) - 1/50 x z DATA(-2, 2, -1) + + 2 2 + - 1/50 x z DATA(-2, -1, -1) - 1/50 x z DATA(-2, 1, -1) + + 2 2 + + 1/200 x z DATA(-1, 2, -2) - 1/200 x z DATA(1, 2, -2) + + 2 2 + - 1/100 x z DATA(2, 2, -2) - 1/50 x z DATA(-2, -2, -1) + + 2 2 + - 1/100 x z DATA(-1, -2, -1) + 1/100 x z DATA(1, -2, -1) + + 2 2 + + 1/50 x z DATA(2, -2, -1) + 1/200 x z DATA(-1, -1, -2) + + 2 + - 1/50 z DATA(2, 1, 1) + 1/500 x y DATA(-2, 1, -1) + + 2 + - 1/175 y z DATA(2, -1, -2) - 1/200 x z DATA(-1, -2, 2) + + 2 2 + + 1/100 x z DATA(-1, -1, 1) - 1/100 x z DATA(1, -1, 1) + + 2 + + 1/100 x z DATA(-1, 1, 1) - 1/350 y z DATA(1, 1, 1) + + 2 2 + + 1/100 x z DATA(2, 1, 2) - 1/200 x z DATA(1, -2, -2) + + 2 2 + - 1/100 x z DATA(-1, 1, -1) - 1/100 x z DATA(2, -2, -2) + + 2 2 + + 1/100 x z DATA(2, 2, 2) + 1/100 x z DATA(-2, -1, -2) + + 2 2 + + 1/200 x z DATA(1, 2, 2) + 1/50 x z DATA(2, 2, -1) + + 2 2 + + 1/100 x z DATA(1, -1, -1) - 1/50 x z DATA(2, -1, 1) + + 2 2 + - 1/100 x z DATA(1, 2, 1) + 1/100 x z DATA(-1, 2, 1) + + 2 2 + - 1/50 x z DATA(2, 1, 1) + 1/50 x z DATA(2, -1, -1) + + 2 2 + - 1/100 x z DATA(-1, 2, -1) + 1/50 x z DATA(2, 1, -1) + + 2 2 + + 1/100 x z DATA(1, 2, -1) - 1/100 x z DATA(-1, -1, -1) + + 2 2 + - 1/100 x z DATA(-2, 2, 2) - 1/100 x z DATA(1, 1, 1) + + 2 2 + - 1/100 x z DATA(-2, 1, 2) + 1/100 x z DATA(2, -2, 2) + + 2 2 + - 1/100 x z DATA(-2, -1, 2) + 1/200 x z DATA(1, -2, 2) + + 2 2 + - 1/200 x z DATA(1, -1, -2) - 1/100 x z DATA(2, -1, -2) + + 2 2 + + 1/100 x z DATA(-2, 1, -2) + 1/200 x z DATA(-1, 1, -2) + + 2 2 + - 1/200 x z DATA(1, 1, -2) - 1/100 x z DATA(2, 1, -2) + + 2 2 + + 1/100 x z DATA(-2, 2, -2) - 1/50 x z DATA(2, 2, 1) + + 2 2 + - 1/200 x z DATA(-1, -1, 2) + 1/100 x z DATA(2, -1, 2) + + 2 2 + + 1/200 x z DATA(1, -1, 2) + 1/100 x z DATA(-2, -2, -2) + + 2 2 + - 1/200 x z DATA(-1, 1, 2) + 1/200 x z DATA(-1, -2, -2) + + 2 2 + - 1/200 x z DATA(-1, 2, 2) - 1/100 x z DATA(-2, -2, 2) + + 2 2 + - 1/175 x y DATA(-2, -2, 2) - 1/350 x y DATA(-2, 2, 1) + + 2 2 + + 1/700 x y DATA(-2, 1, 1) + 1/700 x y DATA(-2, -1, 1) + + 2 2 + + 1/350 x y DATA(2, -2, 1) - 1/700 x y DATA(1, 1, 2) + + 2 + + 1/700 x y DATA(1, -2, 1) - 1/125 x y DATA(2, 2, -2) + + - 1/250 x y DATA(1, 2, -2) - 1/250 x y DATA(-2, -2, -1) + + + 1/500 x y DATA(1, -1, -2) - 1/500 x y DATA(-1, -1, -2) + + + 1/250 x y DATA(2, -2, -1) + 1/500 x y DATA(1, -2, -1) + + - 1/500 x y DATA(-1, -2, -1) + 1/250 x y DATA(-2, 1, -2) + + + 1/250 x y DATA(2, -1, -2) - 1/500 x y DATA(1, 1, -2) + + + 1/500 x y DATA(-1, 1, -2) + 1/125 x y DATA(-2, 2, -2) + + + 2/75 DATA(-2, 0, 1) - 1/250 x y DATA(2, 1, -2) + + - 1/500 x y DATA(1, -1, 2) - 1/250 x y DATA(2, -1, 2) + + + 1/500 x y DATA(-1, -1, 2) + 1/250 x y DATA(2, 2, 1) + + + 1/42 DATA(-2, 1, 1) - 1/250 x y DATA(-1, -2, -2) + + - 1/500 x y DATA(-1, 1, 2) - 1/125 x y DATA(-2, -2, -2) + + + 1/1000 x y DATA(-1, 1, -1) + 1/250 x y DATA(1, -2, -2) + + + 1/250 x y DATA(2, 1, 2) - 1/250 x y DATA(-1, 2, 2) + + + 8/525 DATA(-2, 2, 1) + 1/125 x y DATA(2, 2, 2) + + + 1/125 x y DATA(2, -2, -2) + 1/1000 x y DATA(1, -1, -1) + + - 1/250 x y DATA(2, 2, -1) + 1/250 x y DATA(1, 2, 2) + + - 1/250 x y DATA(-2, -1, -2) + 1/500 x y DATA(1, 2, 1) + + - 1/500 x y DATA(2, -1, 1) - 1/500 x y DATA(-1, 2, 1) + + 11 2 2 + - --- DATA(-2, -2, 2) + 1/100 z DATA(1, 2, 2) + 1/50 y z DATA(0, -2, 1) + 420 + + + 1/500 x y DATA(2, -1, -1) + 1/500 x y DATA(-1, 2, -1) + + - 1/500 x y DATA(2, 1, -1) - 1/500 x y DATA(1, 2, -1) + + - 1/1000 x y DATA(-1, -1, -1) - 1/125 x y DATA(-2, 2, 2) + + + 1/1000 x y DATA(1, 1, 1) - 1/250 x y DATA(-2, 1, 2) + + - 1/125 x y DATA(2, -2, 2) + 1/250 x y DATA(-2, -1, 2) + + - 1/250 x y DATA(1, -2, 2) + 1/250 x y DATA(-1, -2, 2) + + + 1/1000 x y DATA(-1, -1, 1) - 1/1000 x y DATA(1, -1, 1) + + 2 + - 1/1000 x y DATA(-1, 1, 1) + 1/490 x z DATA(-1, -1, 1) + + 2 2 + + 1/490 x z DATA(1, -1, 1) + 1/490 x z DATA(-1, 1, 1) + + 2 2 + + 1/100 y z DATA(0, 1, -1) + 1/100 y z DATA(0, -1, 1) + + 2 + - 1/100 y z DATA(0, -2, 2) + 1/500 x y DATA(2, 1, 1) + +> coeff_as_lc_of_data(%, posn_list_3d_size5); +bytes used=1734478456, alloc=15136044, time=245.57 +bytes used=1735600544, alloc=15136044, time=245.66 +bytes used=1736804236, alloc=15136044, time=245.76 +bytes used=1737984424, alloc=15136044, time=245.86 +bytes used=1739143452, alloc=15136044, time=245.95 +bytes used=1740280408, alloc=15136044, time=246.05 +bytes used=1741399644, alloc=15136044, time=246.14 +bytes used=1742500752, alloc=15136044, time=246.23 +bytes used=1743579388, alloc=15136044, time=246.33 +bytes used=1744637184, alloc=15136044, time=246.42 +bytes used=1745672252, alloc=15136044, time=246.51 +bytes used=1746685304, alloc=15136044, time=246.60 +bytes used=1747770268, alloc=15136044, time=246.70 +bytes used=1748770456, alloc=15136044, time=246.80 +bytes used=1749770948, alloc=15136044, time=246.89 +bytes used=1750877868, alloc=15136044, time=247.00 +bytes used=1751878432, alloc=15136044, time=247.10 +bytes used=1752994200, alloc=15136044, time=247.22 +bytes used=1753994340, alloc=15136044, time=247.32 +bytes used=1754999224, alloc=15136044, time=247.43 +bytes used=1755999364, alloc=15136044, time=247.54 +bytes used=1756999808, alloc=15136044, time=247.64 +bytes used=1758027828, alloc=15136044, time=247.76 +bytes used=1759028036, alloc=15136044, time=247.86 +bytes used=1760028168, alloc=15136044, time=247.97 +bytes used=1761128288, alloc=15136044, time=248.09 +bytes used=1762128412, alloc=15136044, time=248.20 +bytes used=1763191968, alloc=15136044, time=248.32 +bytes used=1764192116, alloc=15136044, time=248.44 +bytes used=1765194812, alloc=15136044, time=248.58 +bytes used=1766211980, alloc=15136044, time=248.70 +bytes used=1767289676, alloc=15136044, time=248.84 +bytes used=1768293248, alloc=15136044, time=248.98 +bytes used=1769360484, alloc=15136044, time=249.12 +bytes used=1770379176, alloc=15136044, time=249.26 +bytes used=1771387548, alloc=15136044, time=249.40 +bytes used=1772420244, alloc=15136044, time=249.49 +bytes used=1773468232, alloc=15136044, time=249.56 +bytes used=1774515996, alloc=15136044, time=249.63 +bytes used=1775563424, alloc=15136044, time=249.70 +bytes used=1776610852, alloc=15136044, time=249.77 +bytes used=1777658280, alloc=15136044, time=249.84 + 137 137 2 3 +[COEFF(-2, -2, -2) = - ---- y - 2/175 x z - ---- x + 2/245 y z + 1/150 z + 5250 5250 + + 11 2 2 3 + - 1/125 x y + --- + 2/245 x z + 1/100 y z - 2/175 y z + 1/300 x + 420 + + 2 2 529 2 2 + + 2/175 x y z - 1/175 x - 1/175 y - ----- z + 1/100 x z + 1/175 x y + 14700 + + 2 3 2 3 + + 1/175 x y + 1/300 y - 1/100 z , COEFF(-1, -2, -2) = - 1/150 x + + 2 2 2 107 2 19 + - 1/100 z + 2/245 y z + 1/350 x + ---- x - 1/350 x y + ---- + 7000 2100 + + 47 169 2 3 + + 1/175 x y z - ---- y - ----- z - 1/245 x z + 1/150 z - 2/175 y z + 5250 14700 + + 2 2 2 2 3 + - 1/250 x y + 1/200 x z - 1/175 y + 1/100 y z + 1/350 x y + 1/300 y + + 17 2 + - 1/175 x z, COEFF(0, -2, -2) = - ---- y - 2/175 y z + 2/245 y z + 5250 + + 2 2 3 2 2 + - 1/175 y - 2/245 x z + 1/150 z + 1/175 x + 1/100 y z + 1/300 + + 2 3 2 + - 1/300 z - 1/100 z + 1/300 y - 1/175 x y, COEFF(1, -2, -2) = + + 3 2 3 + - 2/175 y z + 1/150 z + 1/175 x z + 1/250 x y - 1/100 z + 1/300 y + + 47 2 2 2 2 2 + - ---- y - 1/245 x z + 1/100 y z - 1/350 x y - 1/175 y - 1/200 x z + 5250 + + 19 2 2 3 169 107 + + ---- - 1/350 x y + 1/350 x + 1/150 x - 1/175 x y z - ----- z - ---- x + 2100 14700 7000 + + 2 2 2 + + 2/245 y z, COEFF(2, -2, -2) = 2/245 y z + 1/125 x y + 1/175 x y + + 3 2 3 2 11 + + 1/300 y - 2/175 y z + 2/245 x z + 1/150 z - 1/175 x y + --- + 420 + + 2 2 2 137 137 + - 1/175 y - 1/100 x z + 1/100 y z - ---- y + ---- x + 2/175 x z + 5250 5250 + + 529 3 2 2 + - ----- z - 1/300 x - 1/100 z - 2/175 x y z - 1/175 x , + 14700 + + 2 169 47 2 + COEFF(-2, -1, -2) = - 1/100 z - ----- z - ---- x - 1/250 x y + 1/200 y z + 14700 5250 + + 19 2 3 2 3 + + 1/175 x y z + ---- - 1/175 x - 1/150 y - 1/350 x y + 1/300 x + 2100 + + 2 2 2 2 + - 1/175 y z + 1/100 x z + 2/245 x z + 1/350 x y - 2/175 x z + 1/350 y + + 2 107 3 + - 1/245 y z + ---- y + 1/150 z , COEFF(-1, -1, -2) = - 1/500 x y + 7000 + + 3 2 3 2 2 167 + - 1/150 y - 1/700 x y - 1/150 x + 1/200 x z - 1/100 z + ---- x + 7000 + + 17 191 2 + + 1/350 x y z - ---- - 1/175 x z + ----- z + 1/350 x - 1/175 y z + 2100 14700 + + 2 167 2 2 2 3 + + 1/200 y z + ---- y + 1/350 y - 1/245 x z - 1/245 y z + 1/150 z + 7000 + + 2 3 2 187 + - 1/700 x y , COEFF(0, -1, -2) = - 1/150 y - 1/245 y z + ---- y + 7000 + + 3 2 2 2 29 311 + + 1/150 z + 1/175 x - 1/350 x y - 1/100 z - ---- - 1/175 y z + ----- z + 2100 14700 + + 2 2 2 17 + - 2/245 x z + 1/200 y z + 1/350 y , COEFF(1, -1, -2) = - ---- + 2100 + + 2 167 2 2 2 + - 1/200 x z + ---- y - 1/175 y z - 1/100 z + 1/350 x + 1/350 y + 7000 + + 167 2 3 2 2 + - ---- x + 1/700 x y + 1/150 x - 1/245 y z - 1/245 x z + 1/500 x y + 7000 + + 3 2 2 3 191 + + 1/150 z + 1/200 y z - 1/700 x y - 1/150 y + ----- z - 1/350 x y z + 14700 + + 2 2 + + 1/175 x z, COEFF(2, -1, -2) = 1/350 x y - 1/100 z - 1/175 x y z + + 3 2 19 + + 1/250 x y - 1/300 x - 1/245 y z + 2/175 x z + ---- - 1/175 y z + 2100 + + 169 3 2 2 2 2 + - ----- z - 1/150 y + 1/200 y z - 1/100 x z + 2/245 x z + 1/350 x y + 14700 + + 2 2 3 47 107 + - 1/175 x + 1/350 y + 1/150 z + ---- x + ---- y, COEFF(-2, 0, -2) = + 5250 7000 + + 2 3 17 2 2 3 + 1/300 + 1/175 y + 1/300 x - ---- x + 2/245 x z - 1/175 x + 1/150 z + 5250 + + 2 2 2 2 + - 1/175 x y - 2/245 y z - 1/300 z - 1/100 z + 1/100 x z - 2/175 x z, + + 311 2 2 + COEFF(-1, 0, -2) = ----- z - 1/245 x z - 1/175 x z + 1/200 x z + 14700 + + 2 2 2 187 29 2 3 + - 1/350 x y + 1/350 x - 1/100 z + ---- x - ---- + 1/175 y - 1/150 x + 7000 2100 + + 3 2 2 2 41 + + 1/150 z - 2/245 y z, COEFF(0, 0, -2) = 1/175 y - 1/100 z - ---- + 2100 + + 3 2 2 2 431 + + 1/150 z + 1/175 x - 2/245 y z - 2/245 x z + ----- z, COEFF(1, 0, -2) + 14700 + + 2 2 3 2 2 + = 1/175 x z - 1/200 x z + 1/350 x y + 1/150 z - 2/245 y z - 1/100 z + + 2 2 187 29 3 2 311 + - 1/245 x z + 1/350 x - ---- x - ---- + 1/150 x + 1/175 y + ----- z, + 7000 2100 14700 + + 2 3 2 2 + COEFF(2, 0, -2) = 1/175 y - 1/300 z - 1/300 x - 1/175 x + 2/245 x z + + 17 2 3 2 2 + + ---- x - 1/100 x z + 1/300 + 1/150 z + 1/175 x y - 2/245 y z + 5250 + + 2 + + 2/175 x z - 1/100 z , COEFF(-2, 1, -2) = - 2/175 x z - 1/175 x y z + + 3 2 19 47 2 2 + + 1/150 y - 1/200 y z + ---- - ---- x + 2/245 x z - 1/245 y z + 2100 5250 + + 2 2 2 3 107 + + 1/350 y + 1/250 x y - 1/100 z + 1/100 x z + 1/150 z - ---- y + 7000 + + 2 169 2 3 2 + - 1/350 x y - ----- z - 1/175 x + 1/175 y z + 1/300 x - 1/350 x y, + 14700 + + 2 167 3 2 2 + COEFF(-1, 1, -2) = 1/700 x y - ---- y + 1/150 y - 1/245 x z + 1/350 y + 7000 + + 2 2 2 2 191 167 + + 1/350 x - 1/245 y z + 1/200 x z - 1/100 z + ----- z + ---- x + 14700 7000 + + 2 2 17 + + 1/500 x y - 1/700 x y - 1/200 y z + 1/175 y z - ---- - 1/175 x z + 2100 + + 3 3 29 3 + + 1/150 z - 1/350 x y z - 1/150 x , COEFF(0, 1, -2) = - ---- + 1/150 y + 2100 + + 311 2 2 2 3 2 + + ----- z - 1/200 y z + 1/175 x - 2/245 x z + 1/150 z - 1/245 y z + 14700 + + 187 2 2 2 + - ---- y + 1/175 y z - 1/100 z + 1/350 x y + 1/350 y , COEFF(1, 1, -2) + 7000 + + 167 17 2 3 + = - ---- x + 1/350 x y z - ---- - 1/200 y z + 1/150 x - 1/500 x y + 7000 2100 + + 2 167 2 191 2 + + 1/175 y z + 1/700 x y - ---- y - 1/100 z + ----- z + 1/350 y + 7000 14700 + + 2 3 2 2 2 3 + - 1/200 x z + 1/150 y + 1/350 x - 1/245 x z - 1/245 y z + 1/150 z + + 2 19 2 47 + + 1/175 x z + 1/700 x y , COEFF(2, 1, -2) = ---- - 1/100 z + ---- x + 2100 5250 + + 3 107 2 + + 1/150 z - ---- y + 1/175 x y z - 1/250 x y - 1/175 x + 2/175 x z + 7000 + + 2 2 2 2 3 + + 2/245 x z - 1/100 x z - 1/200 y z + 1/175 y z + 1/350 y - 1/300 x + + 2 2 169 3 2 + + 1/350 x y - 1/245 y z - ----- z + 1/150 y - 1/350 x y, + 14700 + + 529 2 2 + COEFF(-2, 2, -2) = - 2/175 x z - ----- z - 1/100 z - 1/175 y + 14700 + + 2 137 2 3 3 + - 2/175 x y z + 1/100 x z + ---- y + 1/175 x y + 1/150 z - 1/300 y + 5250 + + 2 11 2 137 3 + + 2/175 y z + 2/245 x z + --- + 2/245 y z - ---- x + 1/300 x + 420 5250 + + 2 2 2 + + 1/125 x y - 1/175 x - 1/100 y z - 1/175 x y, COEFF(-1, 2, -2) = + + 3 107 2 19 + - 1/300 y + ---- x + 1/350 x + 2/175 y z - 1/175 x y z + ---- + 1/250 x y + 7000 2100 + + 169 3 2 2 2 47 + - ----- z - 1/150 x - 1/245 x z - 1/175 y - 1/100 z + ---- y + 14700 5250 + + 2 2 2 3 2 + + 2/245 y z + 1/350 x y - 1/175 x z - 1/100 y z + 1/150 z + 1/350 x y + + 2 2 3 + + 1/200 x z , COEFF(0, 2, -2) = - 2/245 x z - 1/300 y - 1/300 z + + 2 2 17 2 2 + + 1/175 x y + 2/245 y z + 2/175 y z + ---- y - 1/100 z - 1/175 y + 5250 + + 3 2 2 19 + + 1/150 z - 1/100 y z + 1/175 x + 1/300, COEFF(1, 2, -2) = ---- + 2100 + + 107 47 3 2 + - 1/250 x y - ---- x + 1/175 x y z + ---- y + 1/150 x - 1/245 x z + 7000 5250 + + 2 2 2 169 3 + - 1/175 y - 1/100 y z + 2/175 y z - 1/200 x z - ----- z + 1/150 z + 14700 + + 2 2 2 2 2 + - 1/100 z + 1/175 x z + 1/350 x + 1/350 x y + 2/245 y z - 1/350 x y + + 3 137 2 2 + - 1/300 y , COEFF(2, 2, -2) = 2/175 x z + ---- x - 1/175 x y - 1/100 y z + 5250 + + 2 2 2 2 2 3 + - 1/100 x z + 2/245 y z - 1/175 y - 1/100 z - 1/175 x y - 1/300 x + + 2 2 3 11 3 + + 2/175 x y z - 1/175 x + 2/245 x z - 1/300 y + --- + 1/150 z + 420 + + 137 529 107 + - 1/125 x y + ---- y - ----- z + 2/175 y z, COEFF(-2, -2, -1) = ---- y + 5250 14700 7000 + + 3 2 107 3 3 + + 1/600 y - 1/50 x z + ---- x + 1/175 y z - 2/75 z + 1/600 x + 7000 + + 2 2 2 + + 1/350 x y + 1/175 x z - 1/50 y z - 1/245 y z - 1/175 x y z + + 2 2 2 256 + + 1/350 x y + 1/50 z - 1/250 x y - 1/350 x - 8/525 + ---- z + 3675 + + 2 2 2 + - 1/245 x z - 1/350 y , COEFF(-1, -2, -1) = - 1/50 y z - 1/42 + + 2 211 3 2 229 + - 1/700 x y + ---- z + 1/600 y + 1/490 x z + ----- x + 1/175 y z + 3675 10500 + + 3 2 167 2 2 + - 2/75 z - 1/245 y z + ---- y + 1/700 x + 1/350 x z - 1/100 x z + 7000 + + 2 2 3 2 + - 1/350 y - 1/500 x y + 1/700 x y - 1/300 x - 1/350 x y z + 1/50 z , + + 3 2 2 2 + COEFF(0, -2, -1) = 1/600 y + 1/245 x z - 1/50 y z - 1/350 x y + + 2 2 2 187 2 + - 1/350 y - 1/245 y z + 1/175 y z + 1/350 x - 2/75 + ---- y + 1/50 z + 7000 + + 3 167 211 + + 4/75 z - 2/75 z , COEFF(1, -2, -1) = ---- y + 1/500 x y + ---- z + 7000 3675 + + 2 3 2 2 229 + + 1/490 x z - 2/75 z + 1/700 x - 1/700 x y - ----- x + 1/175 y z + 10500 + + 2 2 2 3 3 + - 1/50 y z + 1/50 z - 1/350 y - 1/350 x z - 1/42 + 1/300 x + 1/600 y + + 2 2 2 + + 1/100 x z - 1/245 y z - 1/700 x y + 1/350 x y z, COEFF(2, -2, -1) = + + 107 2 256 2 2 + ---- y + 1/175 x y z - 1/50 y z + ---- z - 1/350 x + 1/250 x y - 1/350 y + 7000 3675 + + 107 3 3 2 + + 1/175 y z - 1/175 x z - ---- x - 2/75 z - 1/600 x + 1/350 x y + 7000 + + 2 2 2 2 2 + + 1/50 z + 1/50 x z - 1/245 x z - 8/525 - 1/245 y z - 1/350 x y + + 3 2 2 + + 1/600 y , COEFF(-2, -1, -1) = - 1/100 y z + 1/175 x z + 1/50 z + + 2 2 2 2 + - 1/500 x y + 1/700 y - 1/350 x - 1/50 x z - 1/700 x y + 1/350 y z + + 3 3 2 167 229 + + 1/600 x - 1/350 x y z - 2/75 z + 1/700 x y + ---- x - 1/42 + ----- y + 7000 10500 + + 3 2 2 211 + - 1/300 y + 1/490 y z - 1/245 x z + ---- z, COEFF(-1, -1, -1) = + 3675 + + 2 137 2 2 166 2 + - 1/100 y z + ---- y - 1/1400 x y - 1/1400 x y + ---- z + 1/50 z + 5250 3675 + + 2 3 2 3 2 + + 1/490 x z - 1/300 x - 1/1000 x y - 1/100 x z - 2/75 z + 1/700 y + + 17 2 137 3 + - --- + 1/700 x + ---- x - 1/300 y + 1/350 x z - 1/700 x y z + 1/350 y z + 525 5250 + + 2 37 2 289 + + 1/490 y z, COEFF(0, -1, -1) = - ---- - 1/700 x y + ----- y + 1050 10500 + + 2 151 2 3 2 + + 1/245 x z + ---- z + 1/350 y z + 1/50 z - 2/75 z + 1/490 y z + 3675 + + 3 2 2 2 + - 1/300 y + 1/700 y + 1/350 x - 1/100 y z , COEFF(1, -1, -1) = + + 2 17 3 3 2 + 1/490 y z + 1/1000 x y - --- - 1/300 y + 1/350 y z - 2/75 z + 1/700 x + 525 + + 2 137 137 2 2 + - 1/1400 x y + ---- y - ---- x + 1/490 x z + 1/50 z + 1/700 x y z + 5250 5250 + + 3 2 2 166 2 2 + + 1/300 x + 1/100 x z + 1/700 y + ---- z - 1/100 y z + 1/1400 x y + 3675 + + 3 3 211 2 + - 1/350 x z, COEFF(2, -1, -1) = - 1/300 y - 1/600 x + ---- z + 1/50 z + 3675 + + 2 3 2 + - 1/100 y z + 1/350 y z - 2/75 z - 1/245 x z + 1/500 x y - 1/175 x z + + 167 2 229 2 2 + - ---- x + 1/700 x y + ----- y + 1/700 y + 1/350 x y z - 1/350 x - 1/42 + 7000 10500 + + 2 2 2 2 + + 1/700 x y + 1/490 y z + 1/50 x z , COEFF(-2, 0, -1) = - 1/350 x y + + 2 2 3 3 2 + - 1/350 x - 1/245 x z + 1/600 x - 2/75 z - 2/75 + 4/75 z - 1/50 x z + + 2 2 2 187 + + 1/175 x z + 1/245 y z + 1/350 y + 1/50 z + ---- x, COEFF(-1, 0, -1) + 7000 + + 37 2 2 151 289 2 3 + = - ---- + 1/350 y + 1/490 x z + ---- z + ----- x + 1/245 y z - 2/75 z + 1050 3675 10500 + + 3 2 2 2 2 + - 1/300 x - 1/700 x y + 1/50 z + 1/700 x - 1/100 x z + 1/350 x z, + + 2 3 2 2 136 + COEFF(0, 0, -1) = 1/50 z - 2/75 z + 1/350 y + 1/245 y z + ---- z + 3675 + + 2 2 2 2 + + 1/350 x + 1/245 x z - 4/105, COEFF(1, 0, -1) = 1/700 x y + 1/50 z + + 3 289 2 2 37 2 + - 2/75 z - ----- x + 1/700 x - 1/350 x z + 1/350 y - ---- + 1/100 x z + 10500 1050 + + 3 151 2 2 + + 1/300 x + ---- z + 1/245 y z + 1/490 x z, COEFF(2, 0, -1) = - 2/75 + 3675 + + 2 2 2 3 2 2 + + 1/245 y z - 1/350 x + 1/50 x z - 1/600 x + 1/350 x y + 1/50 z + + 2 3 2 187 + - 1/245 x z - 2/75 z + 4/75 z + 1/350 y - 1/175 x z - ---- x, + 7000 + + 167 2 2 2 2 + COEFF(-2, 1, -1) = ---- x - 1/50 x z + 1/490 y z - 1/245 x z - 1/350 x + 7000 + + 2 3 + - 1/700 x y - 1/350 y z + 1/350 x y z + 1/600 x + 1/500 x y - 1/42 + + 2 2 2 3 229 + + 1/50 z + 1/100 y z + 1/700 y - 2/75 z - ----- y + 1/175 x z + 10500 + + 3 211 2 + + 1/300 y + ---- z - 1/700 x y, COEFF(-1, 1, -1) = 1/350 x z + 3675 + + 17 3 2 3 137 166 + + 1/1000 x y - --- - 1/300 x - 1/100 x z + 1/300 y + ---- x + ---- z + 525 5250 3675 + + 2 2 3 2 + - 1/1400 x y + 1/700 x + 1/700 x y z - 2/75 z - 1/350 y z + 1/490 y z + + 2 2 2 137 2 2 + + 1/100 y z + 1/490 x z + 1/700 y - ---- y + 1/1400 x y + 1/50 z , + 5250 + + 2 2 3 2 + COEFF(0, 1, -1) = - 1/350 y z + 1/350 x + 1/245 x z + 1/300 y + 1/50 z + + 2 37 151 2 2 289 3 + + 1/700 y - ---- + ---- z + 1/700 x y + 1/490 y z - ----- y - 2/75 z + 1050 3675 10500 + + 2 2 + + 1/100 y z , COEFF(1, 1, -1) = - 1/700 x y z - 1/350 x z + 1/100 y z + + 2 2 137 137 3 + - 1/350 y z + 1/490 x z + 1/100 x z - ---- y - ---- x + 1/300 x + 5250 5250 + + 2 2 166 2 17 2 2 + + 1/700 x + 1/490 y z + ---- z + 1/50 z - --- + 1/700 y + 1/1400 x y + 3675 525 + + 2 3 3 + + 1/1400 x y - 2/75 z - 1/1000 x y + 1/300 y , COEFF(2, 1, -1) = + + 2 3 3 167 + - 1/350 y z + 1/700 x y - 1/600 x - 1/500 x y - 1/42 + 1/300 y - ---- x + 7000 + + 3 2 229 2 + - 1/175 x z - 2/75 z + 1/50 x z - ----- y - 1/350 x y z - 1/245 x z + 10500 + + 2 2 2 211 2 2 + + 1/700 y - 1/700 x y + 1/490 y z + ---- z + 1/100 y z + 1/50 z + 3675 + + 2 3 + - 1/350 x , COEFF(-2, 2, -1) = 1/175 x y z + 1/175 x z - 1/600 y + + 2 2 2 2 3 + - 1/245 y z - 8/525 - 1/50 x z - 1/350 y - 1/245 x z + 1/600 x + + 2 2 107 107 3 256 + - 1/175 y z + 1/50 y z - 1/350 x y - ---- y + ---- x - 2/75 z + ---- z + 7000 7000 3675 + + 2 2 2 + + 1/250 x y - 1/350 x + 1/50 z + 1/350 x y , COEFF(-1, 2, -1) = + + 3 2 167 2 + - 2/75 z + 1/700 x y + 1/350 x y z - 1/42 - ---- y - 1/350 y + 1/350 x z + 7000 + + 2 3 211 2 229 + + 1/50 z - 1/600 y + 1/500 x y + ---- z + 1/700 x y + ----- x + 3675 10500 + + 2 2 2 2 2 + + 1/700 x + 1/490 x z - 1/100 x z - 1/245 y z - 1/175 y z + 1/50 y z + + 3 2 2 2 + - 1/300 x , COEFF(0, 2, -1) = 1/50 y z + 1/245 x z + 1/350 x y + + 2 3 187 2 + - 1/175 y z - 2/75 - 1/350 y - 2/75 z - ---- y - 1/245 y z + 4/75 z + 7000 + + 2 3 2 2 3 + + 1/50 z - 1/600 y + 1/350 x , COEFF(1, 2, -1) = - 1/245 y z + 1/300 x + + 2 3 211 2 2 + + 1/50 z - 2/75 z + ---- z - 1/175 y z + 1/100 x z + 1/700 x y + 3675 + + 2 2 2 2 + + 1/50 y z - 1/350 x z - 1/350 y + 1/490 x z + 1/700 x - 1/500 x y + + 2 3 229 167 + - 1/42 - 1/350 x y z - 1/700 x y - 1/600 y - ----- x - ---- y, + 10500 7000 + + 2 2 2 + COEFF(2, 2, -1) = - 1/245 x z - 8/525 - 1/250 x y - 1/350 x y + 1/50 y z + + 256 2 107 3 2 2 3 + + ---- z - 1/350 x y - ---- y - 2/75 z + 1/50 z - 1/350 y - 1/600 x + 3675 7000 + + 2 107 3 2 + + 1/50 x z - 1/175 y z - 1/175 x z - ---- x - 1/600 y - 1/350 x + 7000 + + 2 3 + - 1/245 y z - 1/175 x y z, COEFF(-2, -2, 0) = 1/25 z + 2/175 y z + + 2 2 33 + - 2/175 x y z + 2/175 x z - 2/245 x z - 2/245 y z - --- z, + 490 + + 2 3 + COEFF(-1, -2, 0) = 1/175 x z + 2/175 y z - 9/98 z + 1/245 x z + 1/25 z + + 2 + - 2/245 y z - 1/175 x y z, + + 3 2 2 + COEFF(0, -2, 0) = 1/25 z + 2/175 y z - 2/245 y z - 1/10 z + 2/245 x z, + + 2 + COEFF(1, -2, 0) = 2/175 y z - 1/175 x z + 1/175 x y z - 9/98 z - 2/245 y z + + 3 2 3 + + 1/25 z + 1/245 x z, COEFF(2, -2, 0) = 2/175 x y z + 1/25 z + + 2 33 2 + - 2/245 x z + 2/175 y z - 2/175 x z - --- z - 2/245 y z, + 490 + + 2 + COEFF(-2, -1, 0) = - 1/175 x y z + 1/245 y z + 2/175 x z - 9/98 z + + 3 2 + + 1/25 z + 1/175 y z - 2/245 x z, COEFF(-1, -1, 0) = 1/175 y z + + 57 2 2 3 + - 1/350 x y z + 1/175 x z - --- z + 1/245 x z + 1/245 y z + 1/25 z , + 490 + + 2 3 2 61 + COEFF(0, -1, 0) = 2/245 x z + 1/25 z + 1/245 y z - --- z + 1/175 y z, + 490 + + 57 2 2 + COEFF(1, -1, 0) = - --- z - 1/175 x z + 1/175 y z + 1/245 x z + 1/245 y z + 490 + + 3 + + 1/350 x y z + 1/25 z , COEFF(2, -1, 0) = - 9/98 z - 2/175 x z + + 2 2 3 + + 1/245 y z - 2/245 x z + 1/25 z + 1/175 y z + 1/175 x y z, + + 2 2 3 + COEFF(-2, 0, 0) = 2/245 y z - 1/10 z - 2/245 x z + 1/25 z + 2/175 x z, + + 61 3 2 2 + COEFF(-1, 0, 0) = 1/175 x z - --- z + 1/25 z + 1/245 x z + 2/245 y z, + 490 + + 2 2 3 13 + COEFF(0, 0, 0) = 2/245 x z + 2/245 y z + 1/25 z - -- z, + 98 + + 3 2 61 2 + COEFF(1, 0, 0) = 1/25 z + 2/245 y z - 1/175 x z - --- z + 1/245 x z, + 490 + + 2 3 2 + COEFF(2, 0, 0) = 2/245 y z + 1/25 z - 2/245 x z - 1/10 z - 2/175 x z, + + 2 + COEFF(-2, 1, 0) = - 1/175 y z + 1/245 y z - 9/98 z + 1/175 x y z + + 2 3 + - 2/245 x z + 2/175 x z + 1/25 z , COEFF(-1, 1, 0) = 1/350 x y z + + 2 2 57 3 + + 1/245 x z + 1/175 x z + 1/245 y z - --- z - 1/175 y z + 1/25 z , + 490 + + 2 2 61 3 + COEFF(0, 1, 0) = 1/245 y z + 2/245 x z - 1/175 y z - --- z + 1/25 z , + 490 + + 3 57 + COEFF(1, 1, 0) = 1/25 z - 1/350 x y z - --- z - 1/175 x z - 1/175 y z + 490 + + 2 2 3 + + 1/245 x z + 1/245 y z, COEFF(2, 1, 0) = 1/25 z - 1/175 y z + + 2 2 + - 1/175 x y z - 2/175 x z - 2/245 x z + 1/245 y z - 9/98 z, + + 33 2 3 + COEFF(-2, 2, 0) = - --- z + 2/175 x z - 2/175 y z - 2/245 y z + 1/25 z + 490 + + 2 2 + - 2/245 x z + 2/175 x y z, COEFF(-1, 2, 0) = 1/245 x z + 1/175 x z + + 3 2 + + 1/25 z - 9/98 z + 1/175 x y z - 2/245 y z - 2/175 y z, + + 2 2 3 + COEFF(0, 2, 0) = 2/245 x z - 2/175 y z - 1/10 z - 2/245 y z + 1/25 z , + + 3 2 + COEFF(1, 2, 0) = - 1/175 x y z + 1/25 z - 1/175 x z - 2/245 y z + + 2 + + 1/245 x z - 2/175 y z - 9/98 z, COEFF(2, 2, 0) = - 2/175 x y z + + 2 3 2 33 + - 2/245 x z + 1/25 z - 2/245 y z - 2/175 x z - --- z - 2/175 y z, + 490 + + 3 2 + COEFF(-2, -2, 1) = - 1/175 x y z - 1/600 x + 1/350 y + 1/250 x y + + 3 2 2 107 2 + - 2/75 z - 1/350 x y - 1/350 x y - ---- y + 8/525 - 1/245 x z + 7000 + + 2 107 256 2 2 + - 1/245 y z + 1/175 x z - ---- x + ---- z + 1/350 x + 1/50 x z + 7000 3675 + + 2 3 2 2 + + 1/175 y z + 1/50 y z - 1/600 y - 1/50 z , COEFF(-1, -2, 1) = - 1/50 z + + 2 167 3 3 2 + - 1/350 x y z + 1/350 y - ---- y - 1/600 y + 1/300 x + 1/490 x z + 7000 + + 2 2 2 229 + + 1/100 x z - 1/700 x + 1/50 y z + 1/42 - ----- x + 1/350 x z + 10500 + + 2 211 2 3 + + 1/500 x y - 1/700 x y + ---- z + 1/700 x y + 1/175 y z - 2/75 z + 3675 + + 2 2 3 187 + - 1/245 y z, COEFF(0, -2, 1) = 4/75 z - 1/50 z - 2/75 z + 2/75 - ---- y + 7000 + + 3 2 2 2 2 2 + - 1/600 y + 1/245 x z + 1/350 x y - 1/245 y z + 1/350 y - 1/350 x + + 2 2 2 + + 1/175 y z + 1/50 y z , COEFF(1, -2, 1) = 1/350 y - 1/100 x z + + 3 2 2 2 3 229 + - 1/600 y + 1/490 x z - 1/245 y z - 1/700 x - 2/75 z + ----- x + 10500 + + 2 211 3 2 + + 1/700 x y - 1/500 x y - 1/350 x z + ---- z - 1/300 x + 1/50 y z + 3675 + + 167 2 2 + + 1/350 x y z + 1/175 y z + 1/42 - ---- y - 1/50 z + 1/700 x y, + 7000 + + 2 2 3 2 + COEFF(2, -2, 1) = 1/50 y z + 1/350 y - 1/175 x z - 2/75 z - 1/350 x y + + 3 2 2 2 + + 1/175 x y z + 1/600 x - 1/245 y z + 8/525 + 1/350 x y + 1/350 x + + 256 2 2 2 107 + + ---- z - 1/245 x z - 1/50 x z - 1/250 x y - 1/50 z - ---- y + 3675 7000 + + 3 107 2 2 + - 1/600 y + ---- x + 1/175 y z, COEFF(-2, -1, 1) = - 1/50 z + 1/490 y z + 7000 + + 211 3 2 229 2 167 + + ---- z + 1/500 x y - 2/75 z - 1/700 x y - ----- y - 1/700 y - ---- x + 3675 10500 7000 + + 3 2 2 + + 1/300 y - 1/350 x y z + 1/175 x z - 1/245 x z + 1/350 x + 1/42 + + 2 3 2 2 + + 1/700 x y - 1/600 x + 1/100 y z + 1/50 x z + 1/350 y z, + + 2 2 + COEFF(-1, -1, 1) = 1/1400 x y + 1/1000 x y + 1/350 x z + 1/100 x z + + 2 2 3 2 3 + + 1/490 y z - 1/50 z - 2/75 z + 1/350 y z - 1/700 y + 1/300 x + + 166 137 2 17 2 + + ---- z - ---- y + 1/1400 x y + --- + 1/100 y z - 1/700 x y z + 3675 5250 525 + + 2 137 2 3 151 + + 1/490 x z - ---- x - 1/700 x + 1/300 y , COEFF(0, -1, 1) = ---- z + 5250 3675 + + 289 2 2 3 2 2 + - ----- y + 1/700 x y + 1/245 x z - 2/75 z - 1/350 x + 1/490 y z + 10500 + + 2 2 2 3 37 + - 1/700 y + 1/350 y z + 1/100 y z - 1/50 z + 1/300 y + ----, + 1050 + + 2 2 2 137 3 + COEFF(1, -1, 1) = - 1/50 z + 1/490 x z + 1/100 y z - ---- y + 1/300 y + 5250 + + 17 137 3 2 + + --- - 1/1000 x y + ---- x - 2/75 z - 1/350 x z - 1/1400 x y + 525 5250 + + 2 166 2 2 2 + - 1/100 x z + ---- z + 1/700 x y z + 1/1400 x y - 1/700 x - 1/700 y + 3675 + + 3 2 2 + + 1/350 y z - 1/300 x + 1/490 y z, COEFF(2, -1, 1) = - 1/50 x z + + 2 2 2 167 2 + - 1/500 x y - 1/700 y - 1/700 x y - 1/245 x z + ---- x + 1/490 y z + 7000 + + 2 229 2 3 + + 1/350 y z + 1/350 x - 1/175 x z - ----- y + 1/42 + 1/100 y z - 2/75 z + 10500 + + 211 2 3 3 2 + + ---- z - 1/700 x y + 1/600 x + 1/300 y - 1/50 z + 1/350 x y z, + 3675 + + 2 187 2 2 + COEFF(-2, 0, 1) = - 1/245 x z - ---- x + 2/75 + 1/350 x y + 1/245 y z + 7000 + + 2 2 2 2 3 + - 1/50 z + 1/175 x z + 1/50 x z + 1/350 x - 1/350 y - 2/75 z + + 3 2 2 2 + - 1/600 x + 4/75 z, COEFF(-1, 0, 1) = - 1/50 z - 1/350 y + 1/100 x z + + 151 2 2 2 37 + + ---- z - 1/700 x + 1/700 x y + 1/245 y z + 1/350 x z + ---- + 3675 1050 + + 2 3 289 3 2 + + 1/490 x z - 2/75 z - ----- x + 1/300 x , COEFF(0, 0, 1) = - 1/350 x + 10500 + + 2 136 2 2 3 2 + + 1/245 x z + ---- z - 1/50 z - 1/350 y + 4/105 - 2/75 z + 1/245 y z, + 3675 + + 2 37 2 2 151 + COEFF(1, 0, 1) = - 1/700 x + ---- + 1/490 x z - 1/50 z + ---- z + 1050 3675 + + 2 3 289 2 3 + - 1/350 x z - 1/700 x y - 2/75 z + ----- x - 1/350 y - 1/300 x + 10500 + + 2 2 187 2 + - 1/100 x z + 1/245 y z, COEFF(2, 0, 1) = ---- x + 2/75 - 1/50 x z + 7000 + + 3 2 2 2 + + 1/600 x - 1/245 x z - 1/175 x z + 4/75 z - 1/50 z - 1/350 x y + + 3 2 2 2 2 + - 2/75 z + 1/245 y z + 1/350 x - 1/350 y , COEFF(-2, 1, 1) = - 1/50 z + + 2 2 2 3 2 + + 1/50 x z + 1/350 x - 1/245 x z + 1/42 - 1/300 y + 1/700 x y + + 2 2 2 2 167 + - 1/100 y z + 1/490 y z + 1/700 x y + 1/175 x z - 1/700 y - ---- x + 7000 + + 211 3 229 3 + + ---- z - 2/75 z + 1/350 x y z + ----- y - 1/350 y z - 1/600 x + 3675 10500 + + 137 2 137 17 3 + - 1/500 x y, COEFF(-1, 1, 1) = ---- y - 1/50 z - ---- x + --- + 1/300 x + 5250 5250 525 + + 166 2 2 2 + + ---- z + 1/700 x y z + 1/350 x z - 1/700 x - 1/1400 x y + 1/100 x z + 3675 + + 3 2 2 2 + - 1/300 y + 1/1400 x y + 1/490 y z - 1/1000 x y + 1/490 x z + + 2 3 2 2 + - 1/100 y z - 2/75 z - 1/350 y z - 1/700 y , COEFF(0, 1, 1) = 1/490 y z + + 151 2 37 2 289 3 + + ---- z - 1/700 y + ---- - 1/350 y z + 1/245 x z + ----- y - 2/75 z + 3675 1050 10500 + + 3 2 2 2 2 + - 1/300 y - 1/50 z - 1/700 x y - 1/350 x - 1/100 y z , COEFF(1, 1, 1) + + 2 2 3 + = - 1/1400 x y + 1/490 y z + 1/1000 x y - 1/300 y - 1/350 x z + + 2 2 2 2 2 + - 1/700 x - 1/50 z + 1/490 x z - 1/700 x y z - 1/100 x z - 1/100 y z + + 137 3 166 17 2 3 + + ---- y - 1/300 x - 1/350 y z + ---- z + --- - 1/1400 x y - 2/75 z + 5250 3675 525 + + 137 2 3 2 3 + + ---- x - 1/700 y , COEFF(2, 1, 1) = - 2/75 z + 1/490 y z - 1/300 y + 5250 + + 2 2 3 229 2 211 + - 1/700 x y - 1/50 z + 1/600 x + 1/42 + ----- y - 1/700 y + ---- z + 10500 3675 + + 2 2 2 167 + - 1/100 y z - 1/245 x z - 1/50 x z - 1/350 x y z + ---- x - 1/350 y z + 7000 + + 2 2 256 + + 1/500 x y - 1/175 x z + 1/700 x y + 1/350 x , COEFF(-2, 2, 1) = ---- z + 3675 + + 107 2 2 2 3 2 + + ---- y - 1/245 y z + 1/50 x z + 1/350 y + 1/600 y - 1/350 x y + 7000 + + 2 2 2 + - 1/250 x y + 1/350 x - 1/175 y z - 1/50 y z + 8/525 - 1/245 x z + + 3 107 3 2 + - 2/75 z - ---- x + 1/175 x z + 1/175 x y z - 1/600 x + 1/350 x y + 7000 + + 2 2 2 + - 1/50 z , COEFF(-1, 2, 1) = - 1/700 x y - 1/700 x y + 1/350 x z + + 2 3 2 2 167 + - 1/700 x + 1/600 y + 1/100 x z - 1/50 z + 1/350 x y z + 1/42 + ---- y + 7000 + + 2 2 2 2 3 3 + - 1/50 y z - 1/245 y z + 1/350 y + 1/490 x z + 1/300 x - 2/75 z + + 211 229 2 + + ---- z - 1/175 y z - ----- x - 1/500 x y, COEFF(0, 2, 1) = 1/245 x z + 3675 10500 + + 2 3 187 2 + - 1/245 y z - 1/175 y z + 4/75 z - 2/75 z + ---- y + 1/350 y + 7000 + + 2 2 3 2 2 + - 1/350 x y - 1/50 y z + 1/600 y - 1/50 z - 1/350 x + 2/75, + + 2 3 2 2 + COEFF(1, 2, 1) = 1/500 x y - 1/100 x z - 1/300 x - 1/245 y z - 1/700 x + + 2 2 3 2 211 + - 1/50 z - 1/350 x y z + 1/490 x z - 2/75 z - 1/700 x y + ---- z + 3675 + + 167 2 2 2 229 + + ---- y - 1/50 y z + 1/350 y - 1/175 y z + 1/700 x y + ----- x + 7000 10500 + + 3 3 2 + + 1/600 y + 1/42 - 1/350 x z, COEFF(2, 2, 1) = 1/600 x + 1/350 x y + + 2 2 2 + - 1/50 x z - 1/245 y z + 8/525 - 1/175 x y z - 1/50 z - 1/175 y z + + 2 3 3 256 2 + - 1/245 x z + 1/600 y - 2/75 z + ---- z - 1/175 x z + 1/350 y + 3675 + + 2 2 107 2 107 + - 1/50 y z + 1/250 x y + 1/350 x y + ---- y + 1/350 x + ---- x, + 7000 7000 + + 2 137 3 3 2 + COEFF(-2, -2, 2) = - 1/100 x z + ---- x + 1/150 z - 1/300 y + 1/175 x + 5250 + + 2 2 2 2 11 + - 2/175 x z - 1/175 x y + 1/100 z + 2/245 x z - 1/175 x y - --- + 420 + + 137 2 3 2 + + ---- y - 2/175 y z + 2/245 y z - 1/300 x - 1/100 y z + 1/125 x y + 5250 + + 2 529 3 107 + + 1/175 y + 2/175 x y z - ----- z, COEFF(-1, -2, 2) = 1/150 x - ---- x + 14700 7000 + + 47 2 2 3 + + ---- y - 1/350 x - 1/350 x y - 1/300 y - 2/175 y z - 1/175 x z + 5250 + + 2 2 19 2 + + 2/245 y z - 1/200 x z + 1/250 x y + 1/175 x y z - ---- + 1/350 x y + 2100 + + 2 2 3 169 2 2 + - 1/100 y z - 1/245 x z + 1/150 z - ----- z + 1/100 z + 1/175 y , + 14700 + + 2 2 3 + COEFF(0, -2, 2) = - 2/245 x z + 2/245 y z - 1/300 - 1/300 y - 2/175 y z + + 3 2 17 2 2 + - 1/300 z + 1/150 z + 1/175 y + ---- y + 1/100 z - 1/100 y z + 5250 + + 2 2 2 2 + + 1/175 x y - 1/175 x , COEFF(1, -2, 2) = - 1/350 x + 2/245 y z + + 47 2 2 2 3 2 + + ---- y + 1/100 z + 1/175 y + 1/350 x y + 1/150 z - 1/100 y z + 5250 + + 169 2 19 2 + - 2/175 y z - ----- z - 1/175 x y z + 1/350 x y - ---- - 1/245 x z + 14700 2100 + + 2 3 3 107 + - 1/250 x y + 1/175 x z + 1/200 x z - 1/150 x - 1/300 y + ---- x, + 7000 + + 3 11 3 + COEFF(2, -2, 2) = - 1/300 y - --- + 1/300 x - 2/175 y z + 2/175 x z + 420 + + 2 529 137 2 3 + + 1/100 z - ----- z + ---- y - 1/100 y z + 1/150 z - 2/175 x y z + 14700 5250 + + 2 137 2 2 2 2 + + 1/175 x - ---- x + 1/175 x y + 1/100 x z - 1/175 x y + 2/245 x z + 5250 + + 2 2 2 + + 1/175 y + 2/245 y z - 1/125 x y, COEFF(-2, -1, 2) = - 1/350 x y + + 2 107 2 + + 2/245 x z - ---- y - 1/175 y z + 1/250 x y - 2/175 x z - 1/245 y z + 7000 + + 2 2 2 2 3 2 + - 1/100 x z + 1/350 x y + 1/175 x - 1/200 y z - 1/300 x + 1/100 z + + 19 3 3 47 2 169 + - ---- + 1/150 z + 1/150 y + ---- x + 1/175 x y z - 1/350 y - ----- z, + 2100 5250 14700 + + 2 3 + COEFF(-1, -1, 2) = - 1/245 x z + 1/150 x + 1/350 x y z + 1/500 x y + + 2 2 2 2 + - 1/175 y z - 1/350 y + 1/700 x y + 1/700 x y - 1/175 x z - 1/245 y z + + 3 167 2 2 2 191 17 + + 1/150 y - ---- x - 1/200 y z - 1/350 x + 1/100 z + ----- z + ---- + 7000 14700 2100 + + 2 167 3 2 187 + - 1/200 x z - ---- y + 1/150 z , COEFF(0, -1, 2) = - 2/245 x z - ---- y + 7000 7000 + + 2 311 2 3 3 + - 1/245 y z + ----- z + 1/350 x y - 1/175 y z + 1/150 z + 1/150 y + 14700 + + 2 2 2 29 2 + + 1/100 z - 1/350 y - 1/175 x + ---- - 1/200 y z , COEFF(1, -1, 2) = + 2100 + + 2 167 2 3 2 + 1/200 x z + 1/175 x z - ---- y - 1/200 y z + 1/150 z + 1/100 z + 7000 + + 2 191 2 + - 1/350 x y z - 1/175 y z - 1/500 x y - 1/245 x z + ----- z - 1/350 x + 14700 + + 2 167 2 2 3 3 + + 1/700 x y + ---- x - 1/700 x y - 1/245 y z - 1/150 x + 1/150 y + 7000 + + 2 17 2 2 + - 1/350 y + ----, COEFF(2, -1, 2) = 2/245 x z + 2/175 x z - 1/245 y z + 2100 + + 2 3 2 47 2 2 + + 1/100 x z + 1/150 y - 1/350 x y - ---- x - 1/200 y z + 1/100 z + 5250 + + 107 2 2 19 169 2 + - ---- y - 1/350 y + 1/175 x - ---- - ----- z - 1/175 x y z - 1/350 x y + 7000 2100 14700 + + 3 3 17 + - 1/175 y z - 1/250 x y + 1/150 z + 1/300 x , COEFF(-2, 0, 2) = ---- x + 5250 + + 2 2 2 3 + + 2/245 x z - 1/300 - 2/175 x z - 1/175 y + 1/100 z - 1/300 x + + 2 2 3 2 2 + + 1/175 x y - 1/100 x z + 1/150 z + 1/175 x - 2/245 y z - 1/300 z, + + 2 3 2 2 187 + COEFF(-1, 0, 2) = 1/350 x y + 1/150 z - 1/200 x z - 1/175 y - ---- x + 7000 + + 311 29 2 3 2 2 + + ----- z + ---- - 1/350 x + 1/150 x - 1/175 x z + 1/100 z - 1/245 x z + 14700 2100 + + 2 431 2 2 3 + - 2/245 y z, COEFF(0, 0, 2) = ----- z + 1/100 z - 2/245 x z + 1/150 z + 14700 + + 2 41 2 2 3 + - 1/175 y + ---- - 2/245 y z - 1/175 x , COEFF(1, 0, 2) = 1/150 z + 2100 + + 187 2 2 2 29 + + ---- x - 1/175 y + 1/200 x z + 1/175 x z - 1/350 x y + ---- + 7000 2100 + + 2 311 3 2 2 2 + - 1/350 x + ----- z - 1/150 x - 1/245 x z + 1/100 z - 2/245 y z, + 14700 + + 2 17 2 3 + COEFF(2, 0, 2) = 2/245 x z - ---- x + 1/175 x - 1/300 + 1/150 z + 5250 + + 2 2 2 3 2 + + 1/100 x z + 1/100 z + 2/175 x z - 2/245 y z + 1/300 x - 1/175 x y + + 2 3 19 3 + - 1/300 z - 1/175 y , COEFF(-2, 1, 2) = 1/150 z - ---- - 1/150 y + 2100 + + 2 107 169 2 2 + + 1/175 x + ---- y - 1/175 x y z - ----- z - 1/350 y - 1/245 y z + 7000 14700 + + 2 2 2 2 2 + + 1/200 y z + 1/100 z + 1/350 x y - 1/100 x z + 2/245 x z - 2/175 x z + + 2 47 3 + + 1/350 x y + 1/175 y z + ---- x - 1/250 x y - 1/300 x , COEFF(-1, 1, 2) + 5250 + + 3 191 2 3 2 3 + = - 1/150 y + ----- z - 1/245 y z + 1/150 z + 1/200 y z + 1/150 x + 14700 + + 2 2 2 2 + - 1/500 x y - 1/350 x - 1/700 x y - 1/245 x z - 1/200 x z + + 2 2 167 167 + - 1/350 x y z + 1/700 x y + 1/100 z + ---- y - ---- x - 1/175 x z + 7000 7000 + + 2 17 29 2 + + 1/175 y z - 1/350 y + ----, COEFF(0, 1, 2) = ---- - 1/245 y z + 2100 2100 + + 311 2 187 2 2 3 + + ----- z + 1/200 y z + ---- y - 1/350 y - 2/245 x z - 1/150 y + 14700 7000 + + 2 3 2 2 + + 1/100 z + 1/175 y z + 1/150 z - 1/350 x y - 1/175 x , COEFF(1, 1, 2) + + 2 167 2 2 + = - 1/350 x + ---- y + 1/175 x z - 1/350 y - 1/700 x y + 1/500 x y + 7000 + + 191 2 3 2 167 3 + + ----- z + 1/200 x z + 1/150 z - 1/245 x z + ---- x - 1/150 y + 14700 7000 + + 3 17 2 2 2 + - 1/150 x + ---- + 1/200 y z - 1/700 x y + 1/100 z + 1/175 y z + 2100 + + 2 2 + - 1/245 y z + 1/350 x y z, COEFF(2, 1, 2) = - 1/245 y z + 1/175 x y z + + 2 3 47 2 19 + + 1/200 y z - 1/150 y + 1/175 y z - ---- x + 1/250 x y - 1/350 y - ---- + 5250 2100 + + 3 169 3 2 2 + + 2/175 x z + 1/150 z - ----- z + 1/300 x + 1/100 z + 1/100 x z + 14700 + + 2 2 2 107 2 + + 1/350 x y - 1/350 x y + 1/175 x + ---- y + 2/245 x z, + 7000 + + 3 2 2 3 137 + COEFF(-2, 2, 2) = - 1/300 x + 1/100 z + 2/245 y z + 1/150 z + ---- x + 5250 + + 11 137 3 2 + - --- - ---- y + 1/300 y - 1/125 x y - 2/175 x z - 1/100 x z + 2/175 y z + 420 5250 + + 2 2 529 2 2 + + 1/175 x + 1/175 x y - ----- z + 2/245 x z + 1/175 y - 2/175 x y z + 14700 + + 2 2 2 107 + + 1/100 y z - 1/175 x y , COEFF(-1, 2, 2) = 2/245 y z - ---- x + 7000 + + 3 19 169 2 2 + + 1/300 y - 1/175 x z - ---- - ----- z - 1/200 x z - 1/245 x z + 2100 14700 + + 2 2 2 2 3 + + 1/100 z - 1/350 x y + 1/100 y z + 1/175 y + 2/175 y z + 1/150 z + + 3 2 47 2 + + 1/150 x - 1/175 x y z - 1/250 x y - 1/350 x - ---- y - 1/350 x y, + 5250 + + 2 2 2 + COEFF(0, 2, 2) = 2/245 y z - 2/245 x z + 1/100 y z - 1/300 + 2/175 y z + + 2 3 17 2 2 + - 1/175 x y + 1/300 y - 1/300 z - ---- y + 1/175 y + 1/100 z + 5250 + + 3 2 2 2 19 + + 1/150 z - 1/175 x , COEFF(1, 2, 2) = 1/100 y z - 1/350 x y - ---- + 2100 + + 2 2 2 47 + + 1/200 x z + 1/175 x z + 1/100 z + 2/245 y z + 1/175 x y z - ---- y + 5250 + + 3 2 107 169 3 + + 1/250 x y + 1/300 y + 1/350 x y + ---- x - ----- z - 1/150 x + 7000 14700 + + 3 2 2 2 + + 1/150 z - 1/350 x - 1/245 x z + 1/175 y + 2/175 y z, COEFF(2, 2, 2) + + 11 3 2 137 2 2 + = - --- + 1/300 y + 1/175 x y - ---- x + 1/175 x y + 1/100 x z + 420 5250 + + 2 2 2 2 + + 1/100 z + 1/175 x + 2/175 x z + 1/175 y + 2/245 y z + 1/125 x y + + 2 3 3 2 529 + + 1/100 y z + 2/175 x y z + 1/300 x + 1/150 z + 2/245 x z - ----- z + 14700 + + 137 + + 2/175 y z - ---- y] + 5250 + +> print_coeff__lc_of_data(%, "coeff_dz_", "fp", +> "3d.coeffs/3d.cube.order4.smooth0/coeff-dz.compute.c"); +bytes used=1778658452, alloc=15136044, time=249.92 +bytes used=1779658964, alloc=15136044, time=250.00 +bytes used=1780659472, alloc=15136044, time=250.08 +bytes used=1781659968, alloc=15136044, time=250.17 +bytes used=1782660296, alloc=15136044, time=250.26 +bytes used=1783660508, alloc=15136044, time=250.34 +bytes used=1784660960, alloc=15136044, time=250.43 +bytes used=1785661160, alloc=15136044, time=250.52 +bytes used=1786661716, alloc=15136044, time=251.29 +bytes used=1787661888, alloc=15136044, time=252.07 +bytes used=1788662428, alloc=15136044, time=252.85 +bytes used=1789662736, alloc=15136044, time=253.62 +bytes used=1790663212, alloc=15136044, time=254.38 +bytes used=1791663580, alloc=15136044, time=254.78 +bytes used=1792663760, alloc=15136044, time=254.87 +bytes used=1793664052, alloc=15136044, time=254.96 +bytes used=1794664204, alloc=15136044, time=255.06 +bytes used=1795664456, alloc=15136044, time=255.15 +bytes used=1796664708, alloc=15136044, time=255.25 +bytes used=1797763984, alloc=15136044, time=255.32 +bytes used=1798859076, alloc=15136044, time=255.40 +bytes used=1799922300, alloc=15136044, time=255.47 +bytes used=1800938316, alloc=15136044, time=255.54 +bytes used=1802013808, alloc=15136044, time=255.61 +bytes used=1803024116, alloc=15136044, time=255.68 +bytes used=1804086592, alloc=15136044, time=255.76 +bytes used=1805166844, alloc=15136044, time=255.84 +bytes used=1806243852, alloc=15136044, time=255.92 +bytes used=1807276832, alloc=15136044, time=256.01 +bytes used=1808345336, alloc=15136044, time=256.10 +bytes used=1809378412, alloc=15136044, time=256.17 +bytes used=1810410940, alloc=15136044, time=256.27 +bytes used=1811424712, alloc=15136044, time=256.37 +bytes used=1812447656, alloc=15136044, time=256.48 +bytes used=1813447812, alloc=15136044, time=256.57 +bytes used=1814448352, alloc=15136044, time=256.64 +bytes used=1815448548, alloc=15136044, time=258.51 +bytes used=1816448756, alloc=15136044, time=259.18 +bytes used=1817448924, alloc=15136044, time=259.35 +bytes used=1818449288, alloc=15136044, time=259.44 +bytes used=1819449964, alloc=15136044, time=259.54 +bytes used=1820450616, alloc=15136044, time=259.64 +bytes used=1821451040, alloc=15136044, time=259.75 +bytes used=1822452168, alloc=15136044, time=259.85 +bytes used=1823452860, alloc=15136044, time=259.95 +bytes used=1824453660, alloc=15136044, time=260.05 +bytes used=1825454528, alloc=15136044, time=260.15 +bytes used=1826454744, alloc=15136044, time=260.25 +bytes used=1827454964, alloc=15136044, time=260.34 +bytes used=1828457868, alloc=15136044, time=260.45 +bytes used=1829458252, alloc=15136044, time=260.54 +bytes used=1830458548, alloc=15136044, time=260.64 +bytes used=1831458868, alloc=15136044, time=260.72 +bytes used=1832462984, alloc=15136044, time=260.80 +bytes used=1833463180, alloc=15136044, time=260.89 +bytes used=1834463360, alloc=15136044, time=260.97 +bytes used=1835463552, alloc=15136044, time=261.05 +bytes used=1836464108, alloc=15136044, time=261.14 +bytes used=1837488152, alloc=15136044, time=261.29 +bytes used=1838502864, alloc=15136044, time=261.43 +bytes used=1839511032, alloc=15136044, time=261.58 +bytes used=1840511248, alloc=15136044, time=261.75 +bytes used=1841522676, alloc=15136044, time=261.87 +bytes used=1842522924, alloc=15136044, time=262.02 +bytes used=1843523172, alloc=15136044, time=262.17 +bytes used=1844523324, alloc=15136044, time=262.33 +bytes used=1845544672, alloc=15136044, time=262.50 +bytes used=1846545304, alloc=15136044, time=262.63 +bytes used=1847545484, alloc=15136044, time=262.79 +bytes used=1848545732, alloc=15136044, time=262.92 +bytes used=1849545904, alloc=15136044, time=263.06 +bytes used=1850549268, alloc=15136044, time=263.21 +bytes used=1851563588, alloc=15136044, time=263.33 +bytes used=1852564856, alloc=15136044, time=263.44 +bytes used=1853583020, alloc=15136044, time=263.57 +bytes used=1854587524, alloc=15136044, time=263.70 +bytes used=1855588608, alloc=15136044, time=263.83 +bytes used=1856588768, alloc=15136044, time=263.95 +bytes used=1857588960, alloc=15136044, time=264.06 +bytes used=1858609516, alloc=15136044, time=264.17 +bytes used=1859609732, alloc=15136044, time=264.26 +bytes used=1860609912, alloc=15136044, time=264.75 +bytes used=1861620336, alloc=15136044, time=267.10 +bytes used=1862620540, alloc=15136044, time=267.75 +bytes used=1863620692, alloc=15136044, time=268.21 +bytes used=1864622540, alloc=15136044, time=268.31 +bytes used=1865622744, alloc=15136044, time=268.39 +bytes used=1866623384, alloc=15136044, time=268.47 +bytes used=1867623756, alloc=15136044, time=268.54 +bytes used=1868623948, alloc=15136044, time=268.62 +bytes used=1869624216, alloc=15136044, time=268.69 +bytes used=1870624640, alloc=15136044, time=268.77 +bytes used=1871624980, alloc=15136044, time=268.84 +bytes used=1872625568, alloc=15136044, time=268.92 +bytes used=1873626464, alloc=15136044, time=269.00 +bytes used=1874626808, alloc=15136044, time=269.07 +bytes used=1875627136, alloc=15136044, time=269.15 +bytes used=1876627296, alloc=15136044, time=269.22 +bytes used=1877627640, alloc=15136044, time=269.30 +bytes used=1878627968, alloc=15136044, time=269.38 +bytes used=1879628204, alloc=15136044, time=269.46 +bytes used=1880639792, alloc=15136044, time=269.65 +bytes used=1881654416, alloc=15136044, time=269.78 +bytes used=1882674208, alloc=15136044, time=269.92 +bytes used=1883697120, alloc=15136044, time=270.05 +bytes used=1884714184, alloc=15136044, time=270.20 +bytes used=1885714480, alloc=15136044, time=270.39 +bytes used=1886728248, alloc=15136044, time=270.52 +bytes used=1887734308, alloc=15136044, time=270.65 +bytes used=1888735152, alloc=15136044, time=270.80 +bytes used=1889735356, alloc=15136044, time=270.95 +bytes used=1890748152, alloc=15136044, time=271.10 +bytes used=1891772796, alloc=15136044, time=271.24 +bytes used=1892773052, alloc=15136044, time=271.38 +bytes used=1893773488, alloc=15136044, time=271.49 +bytes used=1894774292, alloc=15136044, time=271.57 +bytes used=1895774524, alloc=15136044, time=274.95 +bytes used=1896785256, alloc=15136044, time=275.16 +bytes used=1897785452, alloc=15136044, time=275.81 +bytes used=1898785676, alloc=15136044, time=276.58 +bytes used=1899785876, alloc=15136044, time=276.68 +bytes used=1900786076, alloc=15136044, time=276.77 +bytes used=1901786528, alloc=15136044, time=276.85 +bytes used=1902786948, alloc=15136044, time=276.93 +bytes used=1903787344, alloc=15136044, time=277.01 +bytes used=1904787608, alloc=15136044, time=277.09 +bytes used=1905787804, alloc=15136044, time=277.17 +bytes used=1906788340, alloc=15136044, time=277.25 +bytes used=1907788584, alloc=15136044, time=277.32 +bytes used=1908788952, alloc=15136044, time=277.40 +bytes used=1909789156, alloc=15136044, time=277.48 +bytes used=1910789380, alloc=15136044, time=277.56 +bytes used=1911789708, alloc=15136044, time=277.64 +bytes used=1912790196, alloc=15136044, time=277.72 +bytes used=1913790440, alloc=15136044, time=277.80 +bytes used=1914790608, alloc=15136044, time=277.88 +bytes used=1915791580, alloc=15136044, time=278.01 +bytes used=1916791800, alloc=15136044, time=278.38 +bytes used=1917791964, alloc=15136044, time=278.65 +bytes used=1918792912, alloc=15136044, time=278.77 +bytes used=1919793180, alloc=15136044, time=282.04 +bytes used=1920793404, alloc=15136044, time=283.10 +bytes used=1921795004, alloc=15136044, time=283.41 +bytes used=1922795164, alloc=15136044, time=283.58 +bytes used=1923795860, alloc=15136044, time=283.65 +bytes used=1924796228, alloc=15136044, time=283.78 +bytes used=1925796420, alloc=15136044, time=283.92 +> +# d^2/dx^2 +> simplify( diff(interp_3d_cube_order4_smooth0,x,x) ); +bytes used=1926832412, alloc=15136044, time=284.04 +bytes used=1927833000, alloc=15136044, time=284.12 +bytes used=1928833252, alloc=15136044, time=284.21 +bytes used=1929834240, alloc=15136044, time=284.28 +bytes used=1930834684, alloc=15136044, time=284.36 +bytes used=1931834852, alloc=15136044, time=284.44 +bytes used=1932835064, alloc=15136044, time=284.54 +bytes used=1933835192, alloc=15136044, time=284.62 +bytes used=1934836100, alloc=15136044, time=284.71 +bytes used=1935836272, alloc=15136044, time=284.80 +bytes used=1936836468, alloc=15136044, time=284.89 +166 57 166 +---- DATA(-1, 1, -1) - --- DATA(0, 1, -1) + ---- DATA(1, 1, -1) +3675 490 3675 + + 151 2 2 + + ---- DATA(-1, -1, 0) + 3/25 x DATA(0, 1, 0) + 3/25 x DATA(0, -1, 0) + 3675 + + 2 2 2 + - 2/25 x DATA(-1, 1, 0) - 2/25 x DATA(1, -1, 0) - 2/25 x DATA(-1, 0, 0) + + 2 61 151 + - 2/25 x DATA(1, 0, 0) - --- DATA(0, -1, 0) + ---- DATA(1, -1, 0) + 490 3675 + + 136 151 + + ---- DATA(-1, 0, 0) + ---- DATA(-1, 1, 0) + 1/175 y DATA(0, -1, -1) + 3675 3675 + + 166 151 + + ---- DATA(-1, 1, 1) + ---- DATA(-1, 0, 1) - 2/175 y DATA(0, 2, -1) + 3675 3675 + + 166 166 57 + + ---- DATA(1, -1, 1) + ---- DATA(-1, -1, 1) - --- DATA(0, -1, 1) + 3675 3675 490 + + - 1/25 x DATA(1, -2, 0) - 1/50 x DATA(-2, 1, 0) + 1/25 x DATA(-1, 1, 0) + + + 1/50 x DATA(2, 1, 0) - 1/50 x DATA(-2, 0, 0) + 1/50 x DATA(2, 0, 0) + + + 1/25 x DATA(-1, 0, 0) - 1/25 x DATA(1, 0, 0) - 1/25 x DATA(1, -1, 0) + + + 1/25 x DATA(-1, 2, 0) - 1/50 x DATA(-2, 2, 0) + 1/25 x DATA(-1, -2, 0) + + - 1/50 x DATA(-2, -1, 0) + 1/50 x DATA(2, -2, 0) - 1/50 x DATA(-2, -2, 0) + + 2 2 + + 1/50 x DATA(-2, -2, 0) + 3/25 x DATA(0, -2, 0) + + 2 2 2 + - 2/25 x DATA(1, -2, 0) + 1/50 x DATA(-2, 1, 0) + 1/50 x DATA(-2, 2, 0) + + 2 2 + - 2/25 x DATA(-1, -2, 0) + 1/50 x DATA(-2, -1, 0) + + 2 + + 1/50 x DATA(2, -2, 0) - 1/100 x y DATA(2, -1, 0) + + 2 2 2 + + 3/25 x DATA(0, 2, 0) + 1/50 x DATA(2, -1, 0) - 2/25 x DATA(-1, 2, 0) + + 2 2 2 + + 1/50 x DATA(-2, 0, 0) + 1/50 x DATA(2, 0, 0) + 3/25 x DATA(0, 0, 0) + + 2 2 2 + - 2/25 x DATA(-1, -1, 0) - 2/25 x DATA(1, 2, 0) + 1/50 x DATA(2, 2, 0) + + 2 2 + + 1/50 x DATA(2, 1, 0) - 2/25 x DATA(1, 1, 0) + 1/50 x DATA(2, -1, 0) + + 256 33 151 + + ---- DATA(-1, -2, 2) - --- DATA(0, -2, 2) + ---- DATA(-1, 0, -1) + 3675 490 3675 + + 61 151 13 + - --- DATA(0, 0, -1) + ---- DATA(1, 0, -1) - -- DATA(0, 0, 0) + 490 3675 98 + + 136 61 151 + + ---- DATA(1, 0, 0) - --- DATA(0, 1, 0) + ---- DATA(1, 1, 0) + 3675 490 3675 + + 61 2 2 + - --- DATA(0, 0, 1) + 2/245 y DATA(0, 0, 0) - 1/245 y DATA(-1, 2, 0) + 490 + + 2 2 + - 2/245 y DATA(-2, 0, 0) - 2/245 y DATA(2, 0, 0) + + 2 2 + - 2/245 y DATA(0, 2, 0) - 1/245 y DATA(2, -1, 0) + + 2 2 + + 2/245 y DATA(-2, -2, 0) - 1/245 y DATA(-1, -2, 0) + + 2 2 + - 1/245 y DATA(-2, -1, 0) + 2/245 y DATA(2, -2, 0) + + 2 2 + - 2/245 y DATA(0, -2, 0) - 1/245 y DATA(-2, 1, 0) + + 2 2 + + 2/245 y DATA(-2, 2, 0) - 1/245 y DATA(1, -2, 0) + + 2 2 + + 1/490 y DATA(1, -1, 0) + 1/245 y DATA(0, -1, 0) + + 2 2 + + 1/490 y DATA(-1, 1, 0) + 1/245 y DATA(0, 1, 0) + + 2 2 + + 1/245 y DATA(-1, 0, 0) + 1/245 y DATA(1, 0, 0) + + 2 2 2 + - 1/245 y DATA(1, 2, 0) + 2/245 y DATA(2, 2, 0) - 1/245 y DATA(2, 1, 0) + + 2 2 + + 1/490 y DATA(-1, -1, 0) + 1/490 y DATA(1, 1, 0) + + - 1/350 y DATA(1, 1, 0) - 1/175 y DATA(1, 2, 0) + 2/175 y DATA(2, 2, 0) + + + 1/175 y DATA(2, 1, 0) + 1/350 y DATA(-1, -1, 0) - 1/175 y DATA(0, 1, 0) + + + 1/175 y DATA(1, -2, 0) + 2/175 y DATA(-2, 2, 0) + + + 1/175 y DATA(-1, -2, 0) - 1/175 y DATA(-2, -1, 0) + + - 2/175 y DATA(2, -2, 0) - 2/175 y DATA(-2, -2, 0) + + + 1/175 y DATA(0, -1, 0) - 1/350 y DATA(-1, 1, 0) + 1/350 y DATA(1, -1, 0) + + + 1/175 y DATA(-2, 1, 0) - 1/175 y DATA(0, 1, 1) + 2/175 y DATA(0, -2, 0) + + - 2/175 y DATA(0, 2, 0) - 1/175 y DATA(2, -1, 0) - 1/175 y DATA(-1, 2, 0) + + - 1/25 x DATA(1, 2, 0) + 1/50 x DATA(2, 2, 0) + 1/25 x DATA(-1, -1, 0) + + 2 2 + - 1/25 x DATA(1, 1, 0) + 2/245 z DATA(0, 2, 0) - 2/245 z DATA(2, 0, 0) + + 2 2 + + 2/245 z DATA(0, 0, 0) - 2/245 z DATA(-2, 0, 0) + + 2 2 + + 1/245 z DATA(-1, 2, 0) - 2/245 z DATA(2, -1, 0) + + 2 2 + + 2/245 z DATA(0, -2, 0) + 1/245 z DATA(-1, -2, 0) + + 2 2 + - 2/245 z DATA(-2, -1, 0) + 1/245 z DATA(1, -2, 0) + + 2 2 + - 2/245 z DATA(-2, 1, 0) - 2/245 z DATA(-2, 2, 0) + + 2 2 + - 2/245 z DATA(2, -2, 0) - 2/245 z DATA(-2, -2, 0) + + 2 2 + + 1/245 z DATA(-1, -1, 0) + 1/245 z DATA(1, 2, 0) + + 2 2 + - 2/245 z DATA(2, 2, 0) - 2/245 z DATA(2, 1, 0) + + 2 2 + + 1/245 z DATA(-1, 0, 0) + 1/245 z DATA(1, 0, 0) + + 2 2 + + 1/245 z DATA(-1, 1, 0) + 1/245 z DATA(1, -1, 0) + + 2 2 + + 2/245 z DATA(0, 1, 0) + 2/245 z DATA(0, -1, 0) + + 2 256 + + 1/245 z DATA(1, 1, 0) + 2/175 y DATA(0, -2, 2) + ---- DATA(1, -2, 2) + 3675 + + 2 + + 1/175 y DATA(0, -1, 2) - 2/245 y DATA(0, -2, -1) + + 2 169 + - 2/245 y DATA(0, 2, -2) - ----- DATA(-2, -1, 2) + 14700 + + + 2/175 z DATA(0, -1, -2) + 2/175 z DATA(0, 1, -2) + + 2 + - 2/175 z DATA(0, -1, 2) - 2/175 z DATA(0, 1, 2) + 1/245 y DATA(0, 1, -1) + + 2 + - 2/245 y DATA(0, -2, 1) - 2/175 z DATA(0, 2, 2) + + + 2/175 z DATA(0, -2, -2) + 1/175 z DATA(0, 2, -1) + + - 2/175 z DATA(0, -2, 2) - 1/175 z DATA(0, 2, 1) + 1/175 z DATA(0, 1, -1) + + - 1/175 z DATA(0, -1, 1) + 1/175 z DATA(0, -1, -1) - 1/175 z DATA(0, 1, 1) + + - 1/175 z DATA(0, -2, 1) + 1/175 z DATA(0, -2, -1) - 2/175 y DATA(0, 2, 2) + + + 2/175 y DATA(0, -2, -2) - 1/175 y DATA(0, 1, 2) + 2/175 z DATA(0, 2, -2) + + - 2/175 y DATA(0, 2, 1) - 1/175 y DATA(0, 1, -1) + 1/175 y DATA(0, -1, 1) + + 529 + - ----- DATA(2, -2, 2) - 1/175 y z DATA(0, 1, 2) + 14700 + + - 2/175 y z DATA(0, -2, -2) - 2/175 y z DATA(0, 2, 2) + + + 1/50 x y DATA(1, -1, 0) - 1/50 x y DATA(-2, 2, 0) + + - 1/100 x y DATA(-2, 1, 0) + 1/25 x y DATA(1, -2, 0) + + + 1/100 x y DATA(-2, -1, 0) - 1/25 x y DATA(-1, -2, 0) + + + 1/50 x y DATA(-2, -2, 0) - 1/50 x y DATA(2, -2, 0) + + 2 2 + + 1/245 y DATA(0, 1, 2) - 2/245 y DATA(0, 2, 2) + + 2 2 + - 2/245 y DATA(0, -2, -2) + 1/245 y DATA(0, -1, -1) + + 2 + + 1/245 y DATA(0, 1, 1) + 2/175 y DATA(0, -2, 1) - 2/175 y DATA(0, 2, -2) + + 2 + + 2/175 y DATA(0, -2, -1) + 3/25 x DATA(0, 1, -1) + + 2 2 + + 3/25 x DATA(0, -2, 1) + 3/25 x DATA(0, 1, -2) + + 2 2 + + 3/25 x DATA(0, -1, -2) - 2/245 z DATA(0, 1, -2) + + 2 2 + - 2/245 z DATA(0, -1, -2) - 2/245 z DATA(0, 2, 2) + + 2 2 + - 2/245 z DATA(0, 1, 2) - 2/245 z DATA(0, -1, 2) + + 2 2 + - 2/245 z DATA(0, -2, -2) + 1/245 z DATA(0, 2, 1) + + 2 2 + + 1/245 z DATA(0, 2, -1) + 1/245 z DATA(0, -1, -1) + + 2 + - 1/50 x y DATA(1, 1, 0) - 2/245 z DATA(0, -2, 2) + + 2 2 + + 1/245 z DATA(0, 1, 1) + 1/245 z DATA(0, -1, 1) + + 2 2 + + 1/245 z DATA(0, -2, 1) + 1/245 z DATA(0, 1, -1) + + 2 2 + - 2/245 z DATA(0, 2, -2) + 1/245 z DATA(0, -2, -1) + + 2 + + 1/175 y DATA(0, -1, -2) - 2/245 y DATA(0, 2, 1) + + 2 + - 1/175 y DATA(0, 1, -2) + 1/245 y DATA(0, -1, -2) + + + 1/100 x y DATA(2, 1, 0) + 1/50 x y DATA(2, 2, 0) + + - 1/25 x y DATA(1, 2, 0) - 1/50 x y DATA(-1, -1, 0) + + - 1/175 y z DATA(0, -2, -1) + 1/50 x y DATA(-1, 1, 0) + + 2 2 + + 1/245 y DATA(0, -1, 1) - 2/245 y DATA(0, 2, -1) + + 2 + + 1/175 y z DATA(0, -2, 1) - 2/245 y DATA(0, -2, 2) + + + 2/175 y z DATA(0, -2, 2) + 2/175 y z DATA(0, 2, -2) + + + 1/350 y z DATA(0, -1, 1) + 1/350 y z DATA(0, 1, -1) + + - 1/175 y z DATA(0, 2, 1) - 1/350 y z DATA(0, 1, 1) + + - 1/350 y z DATA(0, -1, -1) + 1/175 y z DATA(0, 2, -1) + + + 1/175 y z DATA(0, 1, -2) - 1/175 y z DATA(0, -1, -2) + + 2 2 + + 1/245 y DATA(0, 1, -2) + 3/25 x DATA(0, -1, 1) + + 2 2 + + 1/245 y DATA(0, -1, 2) + 3/25 x DATA(0, -2, -1) + + 2 2 2 + + 3/25 x DATA(0, 2, -2) + 3/25 x DATA(0, -1, 2) + 3/25 x DATA(0, 2, 2) + + 2 2 + + 3/25 x DATA(0, -2, -2) + 3/25 x DATA(0, 1, 2) + + 2 2 2 + + 3/25 x DATA(0, -1, -1) + 3/25 x DATA(0, 2, -1) + 3/25 x DATA(0, 2, 1) + + 2 2 + + 3/25 x DATA(0, 1, 1) + 3/25 x DATA(0, -2, 2) + + 169 + + 1/175 y z DATA(0, -1, 2) - 1/300 DATA(-2, 0, 2) - ----- DATA(-2, 1, 2) + 14700 + + 151 57 166 + + ---- DATA(1, 0, 1) - --- DATA(0, 1, 1) + ---- DATA(1, 1, 1) + 3675 490 3675 + + 529 + - ----- DATA(-2, 2, 2) + 1/175 y z DATA(2, -2, -1) + 14700 + + - 1/350 y z DATA(1, -2, -1) - 1/350 y z DATA(-1, -2, -1) + + + 1/175 y z DATA(-2, -2, -1) - 2/175 y z DATA(2, 2, -2) + + + 1/175 y z DATA(1, 2, -2) + 1/175 y z DATA(-1, 2, -2) + + - 1/350 y z DATA(-2, 1, -1) + 1/350 y z DATA(-2, -1, -1) + + - 1/175 y z DATA(-2, 2, -1) - 1/175 y z DATA(-2, -2, 1) + + 166 57 211 + + ---- DATA(-1, -1, -1) - --- DATA(0, -1, -1) + ---- DATA(1, 2, -1) + 3675 490 3675 + + 191 211 + + ----- DATA(2, 1, -1) + ---- DATA(-1, 2, -1) - 9/98 DATA(0, 2, -1) + 14700 3675 + + - 1/175 y z DATA(2, -2, 1) - 1/350 y z DATA(-2, -1, 1) + + 191 311 + + 1/350 y z DATA(-2, 1, 1) + ----- DATA(2, -1, -1) + ----- DATA(2, 0, -1) + 14700 14700 + + + 1/175 y z DATA(-2, 2, 1) - 2/175 y z DATA(-2, -2, 2) + + 191 211 + + ----- DATA(2, 1, 1) + ---- DATA(-1, 2, 1) - 9/98 DATA(0, 2, 1) + 14700 3675 + + 211 191 + + ---- DATA(1, 2, 1) - 1/350 y z DATA(-1, -1, -2) + ----- DATA(2, -1, 1) + 3675 14700 + + 311 166 + + ----- DATA(2, 0, 1) + ---- DATA(1, -1, -1) + 4/75 DATA(1, 2, 0) + 14700 3675 + + 311 + - 1/300 DATA(2, 2, 0) + ----- DATA(2, 1, 0) + 4/75 DATA(-1, 2, 0) + 14700 + + 311 431 + - 1/10 DATA(0, 2, 0) + ----- DATA(2, -1, 0) + ----- DATA(2, 0, 0) + 14700 14700 + + 169 256 169 + - ----- DATA(2, 2, -1) + ---- DATA(1, 2, 2) - ----- DATA(-2, -1, -2) + 14700 3675 14700 + + 529 529 256 + - ----- DATA(2, 2, 2) - ----- DATA(2, -2, -2) + ---- DATA(1, -2, -2) + 14700 14700 3675 + + 211 169 256 + + ---- DATA(1, 1, 2) - ----- DATA(2, 1, 2) + ---- DATA(-1, 2, 2) + 3675 14700 3675 + + 33 33 256 + - --- DATA(0, 2, 2) - --- DATA(0, -2, -2) + ---- DATA(-1, -2, -2) + 490 490 3675 + + 211 + + 4/75 DATA(1, 0, 2) - 1/300 DATA(2, 0, 2) + ---- DATA(-1, 1, 2) + 3675 + + 529 211 + - 9/98 DATA(0, 1, 2) - ----- DATA(-2, -2, -2) + ---- DATA(1, -1, 2) + 14700 3675 + + 169 + - ----- DATA(2, -1, 2) + 4/75 DATA(-1, 0, 2) - 1/10 DATA(0, 0, 2) + 14700 + + 211 169 + + ---- DATA(-1, -1, 2) - 9/98 DATA(0, -1, 2) - ----- DATA(2, 2, 1) + 3675 14700 + + + 1/50 x z DATA(-2, -1, -2) + 1/50 x z DATA(2, 2, 2) + + 529 + - ----- DATA(-2, 2, -2) - 1/50 x z DATA(2, -2, -2) + 14700 + + 169 + - 1/50 x z DATA(-1, 1, -1) - ----- DATA(2, 1, -2) + 14700 + + + 1/350 y z DATA(-1, 2, -1) + 1/50 x z DATA(1, 0, -1) + + 211 + - 1/50 x z DATA(-1, 0, -1) + 1/50 x z DATA(-1, 0, 1) + ---- DATA(1, 1, -2) + 3675 + + + 1/50 x z DATA(-2, 0, -2) + 1/25 x z DATA(1, 0, -2) + + - 1/50 x z DATA(2, 0, -2) - 1/100 x z DATA(2, 0, -1) + + 211 + + 1/100 x z DATA(2, 0, 1) - 9/98 DATA(0, 1, -2) + ---- DATA(-1, 1, -2) + 3675 + + 169 + - ----- DATA(-2, 1, -2) - 1/300 DATA(2, 0, -2) + 1/50 x z DATA(2, 0, 2) + 14700 + + - 1/25 x z DATA(1, 0, 2) - 1/10 DATA(0, 0, -2) + 4/75 DATA(1, 0, -2) + + - 1/50 x z DATA(1, 0, 1) - 1/50 x z DATA(-2, 0, 2) + 4/75 DATA(-1, 0, -2) + + 169 + - 1/300 DATA(-2, 0, -2) - ----- DATA(2, -1, -2) + 14700 + + + 1/100 x z DATA(-2, 0, -1) - 1/100 x z DATA(-2, 0, 1) + + 211 + + ---- DATA(1, -1, -2) + 1/25 x z DATA(-1, 0, 2) - 9/98 DATA(0, -1, -2) + 3675 + + 211 + + ---- DATA(-1, -1, -2) - 1/175 z DATA(2, 0, -1) - 2/175 z DATA(2, 0, -2) + 3675 + + + 1/175 z DATA(1, 0, -2) - 2/175 z DATA(-2, 0, -2) - 1/175 z DATA(1, 0, 2) + + + 2/175 z DATA(2, 0, 2) + 1/350 z DATA(1, 0, -1) + 2/175 z DATA(-2, 0, 2) + + - 1/350 z DATA(1, 0, 1) + 1/175 z DATA(2, 0, 1) - 1/350 z DATA(-1, 0, 1) + + - 2/175 z DATA(0, 0, 2) + 2/175 z DATA(0, 0, -2) + 1/350 z DATA(-1, 0, -1) + + + 1/50 x z DATA(1, 1, -1) + 1/50 x z DATA(-1, 1, 1) + + 2 2 + + 1/245 y DATA(-1, 0, -2) + 2/245 y DATA(0, 0, -1) + + 2 2 + + 2/245 y DATA(0, 0, 1) - 2/245 y DATA(-2, 0, -1) + + 169 + - ----- DATA(2, -2, -1) - 1/50 x z DATA(1, -1, 1) + 14700 + + 2 2 + - 2/245 y DATA(2, 0, -2) + 1/245 y DATA(1, 0, -2) + + + 1/50 x z DATA(-1, -1, 1) + 1/25 x z DATA(-1, -2, 2) + + 2 2 + - 2/245 y DATA(2, 0, 1) - 2/245 y DATA(-2, 0, 1) + + 2 2 + + 1/245 y DATA(-1, 0, 2) - 2/245 y DATA(2, 0, -1) + + 2 2 + - 2/245 y DATA(-2, 0, -2) + 1/245 y DATA(1, 0, 2) + + 2 2 + - 2/245 y DATA(2, 0, 2) - 2/245 y DATA(-2, 0, 2) + + 2 + - 1/25 x z DATA(1, -2, 2) + 1/245 y DATA(-1, 0, -1) + + 2 2 + + 1/245 y DATA(1, 0, -1) + 1/245 y DATA(-1, 0, 1) + + 2 211 + + 1/245 y DATA(1, 0, 1) + ---- DATA(1, -2, -1) - 1/50 x z DATA(-2, -1, 2) + 3675 + + 2 2 + + 2/245 y DATA(0, 0, 2) + 2/245 y DATA(0, 0, -2) + + + 1/25 x DATA(-1, 0, -2) + 1/25 x DATA(-1, 0, 2) - 1/50 x DATA(-2, 0, -1) + + + 1/50 x DATA(2, 0, -2) - 1/25 x DATA(1, 0, -2) - 1/50 x DATA(-2, 0, 1) + + + 1/50 x z DATA(2, -2, 2) - 1/50 x z DATA(-2, 1, 2) + + + 1/50 x DATA(2, 0, -1) - 1/50 x DATA(-2, 0, -2) + 1/50 x DATA(2, 0, 1) + + - 1/50 x z DATA(1, 1, 1) - 1/50 x z DATA(-2, 2, 2) - 1/25 x DATA(1, 0, 2) + + + 1/50 x DATA(2, 0, 2) - 1/25 x DATA(1, 0, -1) + 1/25 x DATA(-1, 0, -1) + + - 1/50 x DATA(-2, 0, 2) - 1/25 x DATA(1, 0, 1) - 9/98 DATA(0, -2, -1) + + 2 + - 1/25 x z DATA(-1, 0, -2) - 2/25 x DATA(-1, 0, 2) + + + 1/25 x DATA(-1, 0, 1) - 1/50 x z DATA(-1, -1, -1) + + 211 2 2 + + ---- DATA(-1, -2, -1) + 1/50 x DATA(-2, 0, -1) + 3/25 x DATA(0, 0, -1) + 3675 + + 2 2 2 + + 3/25 x DATA(0, 0, 1) - 2/25 x DATA(-1, 0, -2) + 1/50 x DATA(-2, 0, 1) + + 2 2 2 + + 1/50 x DATA(2, 0, 1) + 1/50 x DATA(2, 0, -1) + 1/50 x DATA(2, 0, -2) + + 2 2 + - 2/25 x DATA(1, 0, -2) + 1/50 x DATA(-2, 0, -2) + + 2 2 2 + - 2/25 x DATA(1, 0, -1) - 2/25 x DATA(-1, 0, 1) + 3/25 x DATA(0, 0, 2) + + 2 2 2 + + 3/25 x DATA(0, 0, -2) - 2/25 x DATA(1, 0, 2) + 1/50 x DATA(-2, 0, 2) + + 2 2 2 + + 1/50 x DATA(2, 0, 2) - 2/25 x DATA(1, 0, 1) - 2/25 x DATA(-1, 0, -1) + + + 1/50 x z DATA(1, 2, -1) - 1/100 x z DATA(2, 1, -1) + + 169 + - ----- DATA(-2, -2, -1) - 1/50 x z DATA(-1, 2, -1) + 14700 + + - 1/100 x z DATA(2, -1, -1) + 1/100 x z DATA(2, 1, 1) + + 529 + - ----- DATA(2, 2, -2) + 1/50 x z DATA(-1, 2, 1) - 1/50 x z DATA(1, 2, 1) + 14700 + + 256 + + 1/100 x z DATA(2, -1, 1) + ---- DATA(1, 2, -2) + 3675 + + 33 + + 1/50 x z DATA(1, -1, -1) - 1/100 x z DATA(2, 2, -1) - --- DATA(0, 2, -2) + 490 + + 256 191 + - 1/25 x z DATA(1, 2, 2) + ---- DATA(-1, 2, -2) + ----- DATA(-2, 1, -1) + 3675 14700 + + 311 2 + + ----- DATA(-2, 0, -1) - 1/245 z DATA(-2, 0, -1) + 14700 + + 2 2 + - 1/245 z DATA(-1, 0, -2) - 1/245 z DATA(-2, 0, 1) + + 2 2 + + 1/245 z DATA(0, 0, -1) + 1/245 z DATA(0, 0, 1) + + 2 2 + - 1/245 z DATA(-1, 0, 2) + 2/245 z DATA(2, 0, -2) + + 2 2 + - 1/245 z DATA(1, 0, -2) - 1/245 z DATA(2, 0, 1) + + 2 2 + + 2/245 z DATA(-2, 0, -2) - 1/245 z DATA(2, 0, -1) + + 2 2 + - 1/245 z DATA(1, 0, 2) + 2/245 z DATA(2, 0, 2) + + 2 2 + + 2/245 z DATA(-2, 0, 2) + 1/490 z DATA(1, 0, 1) + + 2 2 + - 2/245 z DATA(0, 0, -2) + 1/490 z DATA(-1, 0, -1) + + 2 2 + + 1/490 z DATA(-1, 0, 1) + 1/490 z DATA(1, 0, -1) + + 2 191 + - 2/245 z DATA(0, 0, 2) + ----- DATA(-2, -1, -1) + 14700 + + + 1/175 z DATA(-1, 0, -2) + 1/175 z DATA(-2, 0, 1) + + + 1/175 z DATA(0, 0, -1) - 1/175 z DATA(0, 0, 1) - 1/175 z DATA(-2, 0, -1) + + 169 + - 1/175 z DATA(-1, 0, 2) - ----- DATA(-2, 2, -1) - 1/10 DATA(0, -2, 0) + 14700 + + 431 + + 4/75 DATA(-1, -2, 0) - 1/300 DATA(-2, -2, 0) + ----- DATA(-2, 0, 0) + 14700 + + 311 + + ----- DATA(-2, -1, 0) - 1/300 DATA(2, -2, 0) + 4/75 DATA(1, -2, 0) + 14700 + + - 1/100 x z DATA(-2, -2, 1) + 1/50 x z DATA(-1, -2, 1) + + 311 + - 1/50 x z DATA(1, -2, 1) - 1/25 x z DATA(1, 1, 2) + ----- DATA(-2, 1, 0) + 14700 + + + 1/100 x z DATA(2, -2, 1) - 1/100 x z DATA(-2, -1, 1) + + - 1/100 x z DATA(-2, 1, 1) - 1/100 x z DATA(-2, 2, 1) + + - 1/50 x z DATA(-2, -2, 2) + 1/100 x z DATA(-2, -2, -1) + + - 1/50 x z DATA(2, 2, -2) + 1/25 x z DATA(1, 2, -2) + + - 1/25 x z DATA(-1, 2, -2) - 1/300 DATA(-2, 2, 0) + + + 1/100 x z DATA(-2, 1, -1) + 1/100 x z DATA(-2, -1, -1) + + + 1/100 x z DATA(-2, 2, -1) + 1/25 x z DATA(1, -1, -2) + + 169 + - ----- DATA(-2, -2, 1) - 1/25 x z DATA(-1, -1, -2) + 14700 + + - 1/100 x z DATA(2, -2, -1) + 1/50 x z DATA(1, -2, -1) + + - 1/50 x z DATA(-1, -2, -1) + 1/100 x z DATA(2, 2, 1) + + + 1/50 x z DATA(-2, 2, -2) - 1/50 x z DATA(2, 1, -2) + + 211 + + ---- DATA(-1, -2, 1) + 1/25 x z DATA(1, 1, -2) + 3675 + + - 1/25 x z DATA(-1, 1, -2) + 1/50 x z DATA(-2, 1, -2) + + 211 + - 1/50 x z DATA(2, -1, -2) + ---- DATA(1, -2, 1) + 1/25 x z DATA(-1, 1, 2) + 3675 + + + 1/50 x z DATA(-2, -2, -2) - 1/25 x z DATA(1, -1, 2) + + - 9/98 DATA(0, -2, 1) + 1/50 x z DATA(2, -1, 2) + 1/25 x z DATA(-1, -1, 2) + + - 1/25 x y DATA(-1, -2, 1) + 1/25 x y DATA(1, -2, 1) + + 169 + - ----- DATA(2, -2, 1) - 1/50 x y DATA(1, 1, 2) - 1/50 x y DATA(2, -2, 1) + 14700 + + + 1/25 x z DATA(1, -2, -2) + 1/50 x z DATA(2, 1, 2) + + + 1/25 x z DATA(-1, 2, 2) - 1/25 x z DATA(-1, -2, -2) + + + 1/350 y z DATA(-1, -1, 2) + 1/175 y z DATA(2, 2, 1) + + + 1/100 x y DATA(-2, -1, -1) - 2/175 y z DATA(-2, 2, -2) + + 2 + - 1/350 y z DATA(1, -1, -2) + 1/490 z DATA(1, 2, 1) + + 2 2 + - 1/245 z DATA(2, -1, 1) + 1/490 z DATA(1, -1, -1) + + - 1/175 y z DATA(2, 1, -2) + 1/50 x y DATA(-2, -2, 2) + + - 1/50 x y DATA(-2, 2, 1) - 1/100 x y DATA(-2, 1, 1) + + 2 + + 1/100 x y DATA(-2, -1, 1) - 1/245 z DATA(2, 2, -1) + + 2 2 + + 2/245 z DATA(-2, -1, -2) + 2/245 z DATA(2, 2, 2) + + 2 2 + + 2/245 z DATA(2, -2, -2) + 1/490 z DATA(-1, 1, -1) + + 2 2 + - 1/245 z DATA(1, -2, -2) + 2/245 z DATA(2, 1, 2) + + 2 2 + - 1/245 z DATA(-1, 2, 2) - 1/245 z DATA(-1, -2, -2) + + 2 2 + - 1/245 z DATA(-1, 1, 2) + 2/245 z DATA(-2, -2, -2) + + 2 2 + - 1/245 z DATA(1, -1, 2) + 2/245 z DATA(2, -1, 2) + + 2 2 + - 1/245 z DATA(-1, -1, 2) - 1/245 z DATA(2, 2, 1) + + 2 2 + + 2/245 z DATA(-2, 2, -2) + 2/245 z DATA(2, 1, -2) + + 2 2 + - 1/245 z DATA(1, 1, -2) - 1/245 z DATA(-1, 1, -2) + + 2 2 + + 2/245 z DATA(-2, 1, -2) + 1/490 z DATA(-1, 2, 1) + + 2 2 + + 1/490 z DATA(1, 1, -1) + 1/490 z DATA(-1, 1, 1) + + 2 2 + + 1/490 z DATA(1, -1, 1) + 1/490 z DATA(-1, -1, 1) + + 2 2 + - 1/245 z DATA(-1, -2, 2) - 1/245 z DATA(1, -2, 2) + + 2 2 + + 2/245 z DATA(-2, -1, 2) + 2/245 z DATA(2, -2, 2) + + 2 2 + + 2/245 z DATA(-2, 1, 2) + 1/490 z DATA(1, 1, 1) + + 2 2 + + 2/245 z DATA(-2, 2, 2) + 1/490 z DATA(-1, -1, -1) + + 2 2 + + 1/490 z DATA(1, 2, -1) - 2/25 x DATA(1, 1, -1) + + 2 2 + + 1/490 y DATA(1, 1, -1) + 1/490 y DATA(-1, 1, 1) + + 2 2 + + 1/490 y DATA(1, -1, 1) + 1/490 y DATA(-1, -1, 1) + + 2 2 + - 1/245 y DATA(-1, -2, 2) - 1/245 y DATA(1, -2, 2) + + 2 2 + - 1/245 y DATA(-2, -1, 2) + 2/245 y DATA(2, -2, 2) + + 2 2 + - 1/245 y DATA(-2, 1, 2) + 1/490 y DATA(1, 1, 1) + + 2 2 + + 2/245 y DATA(-2, 2, 2) + 1/490 y DATA(-1, -1, -1) + + 2 2 + - 1/245 y DATA(1, 2, -1) - 1/245 y DATA(2, 1, -1) + + 2 2 + - 1/245 y DATA(-1, 2, -1) - 1/245 y DATA(2, -1, -1) + + 2 2 + - 1/245 y DATA(2, 1, 1) - 1/245 y DATA(-1, 2, 1) + + 2 2 + - 1/245 y DATA(1, 2, 1) - 1/245 y DATA(2, -1, 1) + + 2 2 + + 1/490 y DATA(1, -1, -1) + 2/245 y DATA(2, 2, -1) + + 2 2 + - 1/245 y DATA(1, 2, 2) - 1/245 y DATA(-2, -1, -2) + + 2 2 + + 2/245 y DATA(2, 2, 2) + 2/245 y DATA(2, -2, -2) + + 2 2 + + 1/490 y DATA(-1, 1, -1) - 1/245 y DATA(1, -2, -2) + + 2 2 + - 1/245 y DATA(2, 1, 2) - 1/245 y DATA(-1, 2, 2) + + 2 2 + - 1/245 y DATA(-1, -2, -2) + 1/490 y DATA(-1, 1, 2) + + 2 2 + + 2/245 y DATA(-2, -2, -2) + 1/490 y DATA(1, -1, 2) + + 2 2 + - 1/245 y DATA(2, -1, 2) + 1/490 y DATA(-1, -1, 2) + + 2 2 + + 2/245 y DATA(2, 2, 1) + 2/245 y DATA(-2, 2, -2) + + 2 2 + - 1/245 y DATA(2, 1, -2) + 1/490 y DATA(1, 1, -2) + + 2 + + 1/490 y DATA(-1, 1, -2) - 1/350 y z DATA(1, 1, 2) + + + 1/350 y z DATA(1, -2, 1) - 1/50 x y DATA(-2, 2, -1) + + + 1/50 x y DATA(-2, -2, 1) + 1/350 y z DATA(-1, -2, 1) + + 191 + + ----- DATA(-2, -1, 1) + 1/25 x y DATA(-1, 2, -2) + 14700 + + 2 2 + + 1/50 x DATA(-2, -2, -2) - 2/25 x DATA(1, -1, 2) + + 2 2 2 + + 1/50 x DATA(2, -1, 2) - 2/25 x DATA(-1, -1, 2) + 1/50 x DATA(2, 2, 1) + + 2 2 + + 1/50 x DATA(-2, 2, -2) + 1/50 x DATA(2, 1, -2) + + 2 2 + - 2/25 x DATA(1, 1, -2) - 2/25 x DATA(-1, 1, -2) + + 2 2 + + 1/50 x DATA(-2, 1, -2) + 1/50 x DATA(2, -1, -2) + + 2 2 + - 2/25 x DATA(1, -1, -2) - 2/25 x DATA(-1, -1, -2) + + 2 2 + + 1/50 x DATA(2, -2, -1) - 2/25 x DATA(1, -2, -1) + + 2 2 2 + - 2/25 x DATA(1, -2, 2) - 2/25 x DATA(-1, 1, 1) - 2/25 x DATA(1, -1, 1) + + 2 2 + - 2/25 x DATA(-1, -1, 1) - 2/25 x DATA(-1, -2, 2) + + 2 2 + + 1/50 x DATA(-2, -1, 2) + 1/50 x DATA(2, -2, 2) + + 2 2 2 + + 1/50 x DATA(-2, 1, 2) - 2/25 x DATA(1, 1, 1) + 1/50 x DATA(-2, 2, 2) + + 2 2 + - 2/25 x DATA(-1, -1, -1) - 2/25 x DATA(1, 2, -1) + + 2 2 + + 1/50 x DATA(2, 1, -1) - 2/25 x DATA(-1, 2, -1) + + 2 2 2 + + 1/50 x DATA(2, -1, -1) + 1/50 x DATA(2, 1, 1) - 2/25 x DATA(-1, 2, 1) + + 2 2 2 + - 2/25 x DATA(1, 2, 1) + 1/50 x DATA(2, -1, 1) - 2/25 x DATA(1, -1, -1) + + 2 2 + + 1/50 x DATA(2, 2, -1) - 2/25 x DATA(1, 2, 2) + + 2 2 + + 1/50 x DATA(-2, -1, -2) + 1/50 x DATA(2, 2, 2) + + 2 2 + + 1/50 x DATA(2, -2, -2) - 2/25 x DATA(-1, 1, -1) + + 2 2 2 + - 2/25 x DATA(1, -2, -2) + 1/50 x DATA(2, 1, 2) - 2/25 x DATA(-1, 2, 2) + + 2 2 + - 2/25 x DATA(-1, -2, -2) - 2/25 x DATA(-1, 1, 2) + + 2 2 + - 2/25 x DATA(-1, -2, -1) + 1/50 x DATA(-2, -2, -1) + + 2 2 + + 1/50 x DATA(2, 2, -2) - 2/25 x DATA(1, 2, -2) + + 2 2 + - 2/25 x DATA(-1, 2, -2) + 1/50 x DATA(-2, 1, -1) + + 2 2 + + 1/50 x DATA(-2, -1, -1) + 1/50 x DATA(-2, 2, -1) + + 2 2 + + 1/50 x DATA(-2, -2, 1) - 2/25 x DATA(-1, -2, 1) + + 2 2 2 + - 2/25 x DATA(1, -2, 1) - 2/25 x DATA(1, 1, 2) + 1/50 x DATA(2, -2, 1) + + 2 2 + + 1/50 x DATA(-2, -1, 1) + 1/50 x DATA(-2, 1, 1) + + 2 2 + + 1/50 x DATA(-2, 2, 1) + 1/50 x DATA(-2, -2, 2) + + - 1/175 y z DATA(-2, -1, 2) + 1/25 x DATA(-1, -1, 1) + + + 1/25 x DATA(-1, -2, 2) - 1/25 x DATA(1, -2, 2) - 1/50 x DATA(-2, -1, 2) + + + 1/50 x DATA(2, -2, 2) - 1/50 x DATA(-2, 1, 2) - 1/25 x DATA(1, 1, 1) + + - 1/50 x DATA(-2, 2, 2) + 1/25 x DATA(-1, -1, -1) - 1/25 x DATA(1, 2, -1) + + + 1/50 x DATA(2, 1, -1) + 1/25 x DATA(-1, 2, -1) + 1/50 x DATA(2, -1, -1) + + + 1/50 x DATA(2, 1, 1) + 1/25 x DATA(-1, 2, 1) - 1/25 x DATA(1, 2, 1) + + + 1/50 x DATA(2, -1, 1) - 1/25 x DATA(1, -1, -1) + 1/50 x DATA(2, 2, -1) + + - 1/25 x DATA(1, 2, 2) - 1/50 x DATA(-2, -1, -2) - 1/25 x DATA(1, -1, 1) + + + 1/50 x DATA(2, -2, -1) - 1/25 x DATA(1, -2, -1) + + + 1/25 x DATA(-1, -2, -1) - 1/50 x DATA(-2, -2, -1) + + + 1/50 x DATA(2, 2, -2) - 1/25 x DATA(1, 2, -2) + 1/25 x DATA(-1, 2, -2) + + - 1/50 x DATA(-2, 1, -1) - 1/50 x DATA(-2, -1, -1) + + - 1/50 x DATA(-2, 2, -1) - 1/50 x DATA(-2, -2, 1) + 1/25 x DATA(-1, -2, 1) + + - 1/25 x DATA(1, -2, 1) - 1/25 x DATA(1, 1, 2) + 1/50 x DATA(2, -2, 1) + + - 1/25 x DATA(1, 1, -1) + 1/25 x DATA(-1, 1, 1) + 1/50 x DATA(2, 2, 2) + + + 1/50 x DATA(2, -2, -2) + 1/25 x DATA(-1, 1, -1) - 1/25 x DATA(1, -2, -2) + + + 1/50 x DATA(2, 1, 2) + 1/25 x DATA(-1, 2, 2) + 1/25 x DATA(-1, -2, -2) + + + 1/25 x DATA(-1, 1, 2) - 1/50 x DATA(-2, -2, -2) - 1/25 x DATA(1, -1, 2) + + + 1/50 x DATA(2, -1, 2) + 1/25 x DATA(-1, -1, 2) + 1/50 x DATA(2, 2, 1) + + - 1/50 x DATA(-2, 2, -2) + 1/50 x DATA(2, 1, -2) - 1/25 x DATA(1, 1, -2) + + + 1/25 x DATA(-1, 1, -2) - 1/50 x DATA(-2, 1, -2) + 1/50 x DATA(2, -1, -2) + + - 1/25 x DATA(1, -1, -2) + 1/25 x DATA(-1, -1, -2) + + - 1/50 x DATA(-2, -1, 1) - 1/50 x DATA(-2, 1, 1) - 1/50 x DATA(-2, 2, 1) + + - 1/50 x DATA(-2, -2, 2) + 1/350 z DATA(1, 1, -1) - 1/350 z DATA(-1, 1, 1) + + + 2/175 y DATA(-2, 2, -1) - 1/350 y DATA(1, 1, -1) + + - 1/350 y DATA(-1, 1, 1) + 1/350 y DATA(1, -1, 1) + + + 1/350 y DATA(-1, -1, 1) + 1/175 y DATA(-1, -2, 2) + + + 1/175 y DATA(1, -2, 2) - 1/175 y DATA(-2, -1, 2) + + - 2/175 y DATA(2, -2, 2) + 1/175 y DATA(-2, 1, 2) - 1/350 y DATA(1, 1, 1) + + + 2/175 y DATA(-2, 2, 2) + 1/350 y DATA(-1, -1, -1) + + - 1/175 y DATA(1, 2, -1) + 1/175 y DATA(2, 1, -1) + + - 1/175 y DATA(-1, 2, -1) - 1/175 y DATA(2, -1, -1) + + + 1/175 y DATA(2, 1, 1) - 1/175 y DATA(-1, 2, 1) - 1/175 y DATA(1, 2, 1) + + - 1/175 y DATA(2, -1, 1) + 1/350 y DATA(1, -1, -1) + + + 2/175 y DATA(2, 2, -1) - 1/175 y DATA(1, 2, 2) + + - 1/175 y DATA(-2, -1, -2) + 2/175 y DATA(2, 2, 2) + + - 2/175 y DATA(2, -2, -2) - 1/350 y DATA(-1, 1, -1) + + + 1/175 y DATA(1, -2, -2) + 1/175 y DATA(2, 1, 2) - 1/175 y DATA(-1, 2, 2) + + + 1/175 y DATA(-1, -2, -2) - 1/350 y DATA(-1, 1, 2) + + 2 + - 2/175 y DATA(-2, -2, -2) + 2/245 z DATA(2, -1, -2) + + 2 2 + - 1/245 z DATA(1, -1, -2) - 1/245 z DATA(-1, -1, -2) + + 2 2 + - 1/245 z DATA(2, -2, -1) + 1/490 z DATA(1, -2, -1) + + 2 2 + + 1/490 z DATA(-1, -2, -1) - 1/245 z DATA(-2, -2, -1) + + 2 2 + + 2/245 z DATA(2, 2, -2) - 1/245 z DATA(1, 2, -2) + + 2 2 + - 1/245 z DATA(-1, 2, -2) - 1/245 z DATA(-2, 1, -1) + + 2 2 + - 1/245 z DATA(-2, -1, -1) - 1/245 z DATA(-2, 2, -1) + + 2 2 + - 1/245 z DATA(-2, -2, 1) + 1/490 z DATA(-1, -2, 1) + + 2 2 + + 1/490 z DATA(1, -2, 1) - 1/245 z DATA(1, 1, 2) + + 2 2 + - 1/245 z DATA(2, -2, 1) - 1/245 z DATA(-2, -1, 1) + + 2 2 + - 1/245 z DATA(-2, 1, 1) - 1/245 z DATA(-2, 2, 1) + + 2 2 + + 2/245 z DATA(-2, -2, 2) - 1/245 z DATA(2, 1, -1) + + 2 2 + + 1/490 z DATA(-1, 2, -1) - 1/245 z DATA(2, -1, -1) + + + 1/350 y DATA(1, -1, 2) - 1/175 y DATA(2, -1, 2) + + + 1/350 y DATA(-1, -1, 2) + 2/175 y DATA(2, 2, 1) + + + 2/175 y DATA(-2, 2, -2) + 1/175 y DATA(2, 1, -2) + + - 1/350 y DATA(1, 1, -2) - 1/350 y DATA(-1, 1, -2) + + + 1/175 y DATA(-2, 1, -2) - 1/175 y DATA(2, -1, -2) + + + 1/350 y DATA(1, -1, -2) + 1/350 y DATA(-1, -1, -2) + + - 2/175 y DATA(2, -2, -1) + 1/175 y DATA(1, -2, -1) + + + 1/175 y DATA(-1, -2, -1) - 2/175 y DATA(-2, -2, -1) + + + 2/175 y DATA(2, 2, -2) - 1/175 y DATA(1, 2, -2) + + - 1/175 y DATA(-1, 2, -2) + 1/175 y DATA(-2, 1, -1) + + - 1/175 y DATA(-2, -1, -1) - 2/175 y DATA(-2, -2, 1) + + + 1/175 y DATA(-1, -2, 1) + 1/175 y DATA(1, -2, 1) - 1/350 y DATA(1, 1, 2) + + - 2/175 y DATA(2, -2, 1) - 1/175 y DATA(-2, -1, 1) + + + 1/175 y DATA(-2, 1, 1) + 2/175 y DATA(-2, 2, 1) + + - 2/175 y DATA(-2, -2, 2) - 1/175 z DATA(-1, 2, 2) + + - 1/175 z DATA(-1, 1, 2) - 2/175 z DATA(-2, -2, -2) + + - 1/175 z DATA(1, -1, 2) + 2/175 z DATA(2, -1, 2) + + - 1/175 z DATA(-1, -1, 2) + 1/175 z DATA(2, 2, 1) + + - 2/175 z DATA(-2, 2, -2) - 2/175 z DATA(2, 1, -2) + + + 1/175 z DATA(1, 1, -2) + 1/175 z DATA(-1, 1, -2) + + - 2/175 z DATA(-2, 1, -2) - 2/175 z DATA(2, -1, -2) + + + 1/175 z DATA(1, -1, -2) + 1/175 z DATA(-1, -1, -2) + + - 1/175 z DATA(2, -2, -1) + 1/350 z DATA(1, -2, -1) + + + 1/350 z DATA(-1, -2, -1) - 1/175 z DATA(-2, -2, -1) + + - 2/175 z DATA(2, 2, -2) + 1/175 z DATA(1, 2, -2) + + + 1/175 z DATA(-1, 2, -2) - 1/175 z DATA(-2, 1, -1) + + - 1/175 z DATA(-2, -1, -1) - 1/175 z DATA(-2, 2, -1) + + + 1/175 z DATA(-2, -2, 1) - 1/350 z DATA(-1, -2, 1) + + - 1/350 z DATA(1, -2, 1) - 1/175 z DATA(1, 1, 2) + 1/175 z DATA(2, -2, 1) + + + 1/175 z DATA(-2, -1, 1) + 1/175 z DATA(-2, 1, 1) + + + 1/175 z DATA(-2, 2, 1) + 2/175 z DATA(-2, -2, 2) + + 2 + + 1/175 z DATA(-1, -2, -2) - 1/245 y DATA(-2, 1, -2) + + 2 2 + - 1/245 y DATA(2, -1, -2) + 1/490 y DATA(1, -1, -2) + + 2 2 + + 1/490 y DATA(-1, -1, -2) + 2/245 y DATA(2, -2, -1) + + 2 2 + - 1/245 y DATA(1, -2, -1) - 1/245 y DATA(-1, -2, -1) + + 2 2 + + 2/245 y DATA(-2, -2, -1) + 2/245 y DATA(2, 2, -2) + + 2 2 + - 1/245 y DATA(1, 2, -2) - 1/245 y DATA(-1, 2, -2) + + 2 2 + - 1/245 y DATA(-2, 1, -1) - 1/245 y DATA(-2, -1, -1) + + 2 2 + + 2/245 y DATA(-2, 2, -1) + 2/245 y DATA(-2, -2, 1) + + 2 2 + - 1/245 y DATA(-1, -2, 1) - 1/245 y DATA(1, -2, 1) + + 2 2 + + 1/490 y DATA(1, 1, 2) + 2/245 y DATA(2, -2, 1) + + 2 2 + - 1/245 y DATA(-2, -1, 1) - 1/245 y DATA(-2, 1, 1) + + 2 2 + + 2/245 y DATA(-2, 2, 1) + 2/245 y DATA(-2, -2, 2) + + - 1/350 z DATA(1, -1, 1) - 1/350 z DATA(-1, -1, 1) + + - 1/175 z DATA(-1, -2, 2) - 1/175 z DATA(1, -2, 2) + + + 2/175 z DATA(-2, -1, 2) + 2/175 z DATA(2, -2, 2) + + + 2/175 z DATA(-2, 1, 2) - 1/350 z DATA(1, 1, 1) + 2/175 z DATA(-2, 2, 2) + + + 1/350 z DATA(-1, -1, -1) + 1/350 z DATA(1, 2, -1) + + - 1/175 z DATA(2, 1, -1) + 1/350 z DATA(-1, 2, -1) + + - 1/175 z DATA(2, -1, -1) + 1/175 z DATA(2, 1, 1) - 1/350 z DATA(-1, 2, 1) + + - 1/350 z DATA(1, 2, 1) + 1/175 z DATA(2, -1, 1) + 1/350 z DATA(1, -1, -1) + + - 1/175 z DATA(2, 2, -1) - 1/175 z DATA(1, 2, 2) + + - 2/175 z DATA(-2, -1, -2) + 2/175 z DATA(2, 2, 2) + + - 2/175 z DATA(2, -2, -2) + 1/350 z DATA(-1, 1, -1) + + + 1/175 z DATA(1, -2, -2) + 2/175 z DATA(2, 1, 2) + + + 1/175 y z DATA(2, 1, 2) + 1/700 y z DATA(-1, 1, -1) + + + 2/175 y z DATA(2, -2, -2) + 1/350 y z DATA(1, 1, -2) + + + 1/350 y z DATA(-1, 1, -2) + 1/175 y z DATA(-2, -1, -2) + + + 2/175 y z DATA(2, 2, 2) - 1/700 y z DATA(1, -1, -1) + + - 1/175 y z DATA(2, 2, -1) - 1/175 y z DATA(1, 2, 2) + + - 1/350 y z DATA(1, 2, 1) - 1/350 y z DATA(2, -1, 1) + + + 1/350 y z DATA(2, -1, -1) + 1/350 y z DATA(2, 1, 1) + + - 1/350 y z DATA(-1, 2, 1) - 1/350 y z DATA(2, 1, -1) + + - 1/700 y z DATA(-1, -1, -1) + 1/350 y z DATA(1, 2, -1) + + + 2/175 y z DATA(-2, 2, 2) + 1/700 y z DATA(1, 1, -1) + + + 1/175 y z DATA(-2, 1, 2) - 1/50 x y DATA(1, 1, -1) + + - 2/175 y z DATA(2, -2, 2) + 1/175 y z DATA(1, -2, 2) + + + 1/175 y z DATA(-1, -2, 2) - 1/175 y z DATA(1, -2, -2) + + - 1/175 y z DATA(2, -1, 2) + 2/175 y z DATA(-2, -2, -2) + + + 1/700 y z DATA(-1, -1, 1) + 1/350 y z DATA(1, -1, 2) + + - 1/175 y z DATA(-1, -2, -2) - 1/350 y z DATA(-1, 1, 2) + + + 1/700 y z DATA(1, -1, 1) - 1/700 y z DATA(-1, 1, 1) + + - 1/175 y z DATA(-1, 2, 2) - 1/175 y z DATA(-2, 1, -2) + + 2 + - 1/245 z DATA(2, 1, 1) - 1/100 x y DATA(-2, 1, -1) + + + 1/175 y z DATA(2, -1, -2) - 1/700 y z DATA(1, 1, 1) + + + 1/50 x y DATA(2, 2, -2) - 1/25 x y DATA(1, 2, -2) + + + 1/50 x y DATA(-2, -2, -1) + 1/50 x y DATA(1, -1, -2) + + - 1/50 x y DATA(-1, -1, -2) - 1/50 x y DATA(2, -2, -1) + + + 1/25 x y DATA(1, -2, -1) - 1/25 x y DATA(-1, -2, -1) + + - 1/100 x y DATA(-2, 1, -2) - 1/100 x y DATA(2, -1, -2) + + - 1/50 x y DATA(1, 1, -2) + 1/50 x y DATA(-1, 1, -2) + + 311 + - 1/50 x y DATA(-2, 2, -2) + ----- DATA(-2, 0, 1) + 14700 + + + 1/100 x y DATA(2, 1, -2) + 1/50 x y DATA(1, -1, 2) + + - 1/100 x y DATA(2, -1, 2) - 1/50 x y DATA(-1, -1, 2) + + 191 + + 1/50 x y DATA(2, 2, 1) + ----- DATA(-2, 1, 1) + 14700 + + - 1/25 x y DATA(-1, -2, -2) + 1/50 x y DATA(-1, 1, 2) + + + 1/50 x y DATA(-2, -2, -2) + 1/50 x y DATA(-1, 1, -1) + + + 1/25 x y DATA(1, -2, -2) + 1/100 x y DATA(2, 1, 2) + + 169 + + 1/25 x y DATA(-1, 2, 2) - ----- DATA(-2, 2, 1) + 1/50 x y DATA(2, 2, 2) + 14700 + + - 1/50 x y DATA(2, -2, -2) + 1/50 x y DATA(1, -1, -1) + + + 1/50 x y DATA(2, 2, -1) - 1/25 x y DATA(1, 2, 2) + + + 1/100 x y DATA(-2, -1, -2) - 1/25 x y DATA(1, 2, 1) + + - 1/100 x y DATA(2, -1, 1) + 1/25 x y DATA(-1, 2, 1) + + 529 2 + - ----- DATA(-2, -2, 2) - 1/245 z DATA(1, 2, 2) + 14700 + + - 1/100 x y DATA(2, -1, -1) + 1/25 x y DATA(-1, 2, -1) + + + 1/100 x y DATA(2, 1, -1) - 1/25 x y DATA(1, 2, -1) + + - 1/50 x y DATA(-1, -1, -1) - 1/50 x y DATA(-2, 2, 2) + + - 1/50 x y DATA(1, 1, 1) - 1/100 x y DATA(-2, 1, 2) + + - 1/50 x y DATA(2, -2, 2) + 1/100 x y DATA(-2, -1, 2) + + + 1/25 x y DATA(1, -2, 2) - 1/25 x y DATA(-1, -2, 2) + + - 1/50 x y DATA(-1, -1, 1) + 1/50 x y DATA(1, -1, 1) + + + 1/50 x y DATA(-1, 1, 1) + 1/25 x y DATA(-1, 2, 0) + + + 1/100 x y DATA(2, 1, 1) + +> coeff_as_lc_of_data(%, posn_list_3d_size5); +bytes used=1937899580, alloc=15136044, time=284.99 +bytes used=1938899800, alloc=15136044, time=285.07 +bytes used=1939970600, alloc=15136044, time=285.16 +bytes used=1940970944, alloc=15136044, time=285.25 +bytes used=1941990008, alloc=15136044, time=285.33 +bytes used=1943074524, alloc=15136044, time=285.42 +bytes used=1944074664, alloc=15136044, time=285.50 +bytes used=1945074812, alloc=15136044, time=285.58 +bytes used=1946075228, alloc=15136044, time=285.67 +bytes used=1947075492, alloc=15136044, time=285.76 +bytes used=1948075864, alloc=15136044, time=285.85 +bytes used=1949075984, alloc=15136044, time=285.94 +bytes used=1950116656, alloc=15136044, time=286.03 +bytes used=1951116780, alloc=15136044, time=286.12 +bytes used=1952128196, alloc=15136044, time=286.22 +bytes used=1953145932, alloc=15136044, time=286.32 +bytes used=1954147356, alloc=15136044, time=286.41 +bytes used=1955147540, alloc=15136044, time=286.51 +bytes used=1956156816, alloc=15136044, time=286.61 +bytes used=1957168468, alloc=15136044, time=286.71 +bytes used=1958168628, alloc=15136044, time=286.82 +bytes used=1959168744, alloc=15136044, time=286.92 +bytes used=1960183744, alloc=15136044, time=287.03 +bytes used=1961184920, alloc=15136044, time=287.14 +bytes used=1962195140, alloc=15136044, time=287.25 +bytes used=1963203884, alloc=15136044, time=287.34 +bytes used=1964221712, alloc=15136044, time=287.41 +bytes used=1965239588, alloc=15136044, time=287.49 +bytes used=1966257376, alloc=15136044, time=287.57 + 2 2 +[COEFF(-2, -2, -2) = 1/50 x z - 2/175 y + 1/50 x + 2/245 y + 1/50 x y + + 529 2 + - 1/50 x + 2/175 y z - ----- - 2/175 z + 2/245 z , COEFF(-1, -2, -2) = + 14700 + + 2 256 2 + - 1/25 x z + 1/25 x - 1/175 y z - 1/245 y + ---- - 2/25 x + 1/175 y + 3675 + + 2 + - 1/245 z + 1/175 z - 1/25 x y, COEFF(0, -2, -2) = + + 2 2 2 33 + 2/175 z - 2/175 y z - 2/245 y + 3/25 x - 2/245 z + 2/175 y - ---, + 490 + + 256 + COEFF(1, -2, -2) = ---- - 1/25 x + 1/175 z + 1/175 y + 1/25 x y - 1/175 y z + 3675 + + 2 2 2 + - 1/245 z - 2/25 x - 1/245 y + 1/25 x z, COEFF(2, -2, -2) = - 1/50 x y + + 2 2 2 529 + - 2/175 z - 2/175 y + 1/50 x + 2/245 y + 2/245 z + 1/50 x - ----- + 14700 + + - 1/50 x z + 2/175 y z, COEFF(-2, -1, -2) = 1/50 x z - 2/175 z - 1/50 x + + 2 169 2 2 + + 1/100 x y + 1/175 y z - 1/245 y - 1/175 y - ----- + 2/245 z + 1/50 x , + 14700 + + 2 2 2 + COEFF(-1, -1, -2) = - 1/25 x z - 1/50 x y - 2/25 x + 1/490 y - 1/245 z + + 211 + + 1/175 z - 1/350 y z + ---- + 1/350 y + 1/25 x, COEFF(0, -1, -2) = + 3675 + + 2 2 2 + - 9/98 + 3/25 x - 2/245 z + 1/175 y + 1/245 y + 2/175 z - 1/175 y z, + + 211 + COEFF(1, -1, -2) = 1/25 x z + ---- - 1/25 x + 1/350 y - 1/350 y z + 3675 + + 2 2 2 + + 1/490 y - 2/25 x - 1/245 z + 1/50 x y + 1/175 z, COEFF(2, -1, -2) = + + 2 169 2 + - 1/50 x z - 2/175 z + 1/50 x + 1/50 x - ----- - 1/175 y + 2/245 z + 14700 + + 2 + - 1/245 y + 1/175 y z - 1/100 x y, COEFF(-2, 0, -2) = + + 2 2 2 + - 2/175 z - 2/245 y + 2/245 z + 1/50 x + 1/50 x z - 1/50 x - 1/300, + + COEFF(-1, 0, -2) = + + 2 2 2 + 1/175 z + 1/25 x - 2/25 x - 1/245 z + 4/75 - 1/25 x z + 1/245 y , + + 2 2 2 + COEFF(0, 0, -2) = - 2/245 z + 2/175 z + 2/245 y - 1/10 + 3/25 x , + + COEFF(1, 0, -2) = + + 2 2 2 + - 1/25 x - 2/25 x + 1/25 x z + 1/245 y + 4/75 + 1/175 z - 1/245 z , + + COEFF(2, 0, -2) = + + 2 2 2 + 2/245 z + 1/50 x + 1/50 x - 1/300 - 2/245 y - 1/50 x z - 2/175 z, + + 2 169 2 2 + COEFF(-2, 1, -2) = 1/175 y - 1/245 y - ----- + 2/245 z + 1/50 x - 1/50 x + 14700 + + - 1/100 x y - 1/175 y z - 2/175 z + 1/50 x z, COEFF(-1, 1, -2) = 1/25 x + + 2 211 2 + - 2/25 x + ---- - 1/350 y + 1/175 z - 1/25 x z + 1/50 x y + 1/490 y + 3675 + + 2 + - 1/245 z + 1/350 y z, COEFF(0, 1, -2) = + + 2 2 2 + 1/175 y z - 9/98 + 3/25 x - 1/175 y + 1/245 y - 2/245 z + 2/175 z, + + 211 2 + COEFF(1, 1, -2) = - 1/50 x y + ---- - 2/25 x + 1/25 x z + 1/175 z + 3675 + + 2 2 + - 1/245 z + 1/350 y z - 1/350 y + 1/490 y - 1/25 x, COEFF(2, 1, -2) = + + 2 2 169 2 + - 1/50 x z + 1/50 x - 1/245 y + 1/175 y + 1/50 x - ----- + 2/245 z + 14700 + + 2 + - 1/175 y z - 2/175 z + 1/100 x y, COEFF(-2, 2, -2) = 1/50 x + 1/50 x z + + 529 2 + - 1/50 x - 1/50 x y - 2/175 y z + 2/175 y - ----- + 2/245 z - 2/175 z + 14700 + + 2 2 256 + + 2/245 y , COEFF(-1, 2, -2) = - 1/245 y + ---- - 1/25 x z + 1/175 y z + 3675 + + 2 2 + + 1/25 x y - 1/175 y - 1/245 z + 1/175 z + 1/25 x - 2/25 x , + + COEFF(0, 2, -2) = + + 2 33 2 2 + 3/25 x - --- + 2/175 y z + 2/175 z - 2/245 y - 2/245 z - 2/175 y, + 490 + + 256 2 2 + COEFF(1, 2, -2) = 1/175 y z - 1/175 y + ---- - 1/245 z - 2/25 x + 3675 + + 2 + - 1/245 y + 1/25 x z + 1/175 z - 1/25 x y - 1/25 x, COEFF(2, 2, -2) = + + 2 529 2 + - 2/175 y z + 2/245 z + 1/50 x y - ----- + 1/50 x + 2/175 y - 1/50 x z + 14700 + + 2 + + 2/245 y - 2/175 z + 1/50 x, COEFF(-2, -2, -1) = 1/100 x z - 1/50 x + + 2 2 169 2 + + 1/50 x y + 2/245 y - 1/175 z + 1/175 y z - 1/245 z - ----- + 1/50 x + 14700 + + 2 + - 2/175 y, COEFF(-1, -2, -1) = 1/350 z - 1/50 x z + 1/175 y - 1/245 y + + 2 211 2 + - 1/350 y z - 2/25 x + 1/25 x + ---- - 1/25 x y + 1/490 z , + 3675 + + COEFF(0, -2, -1) = + + 2 2 2 + 2/175 y - 2/245 y + 3/25 x - 9/98 - 1/175 y z + 1/175 z + 1/245 z , + + 2 2 + COEFF(1, -2, -1) = - 1/245 y - 1/350 y z + 1/350 z + 1/175 y + 1/490 z + + 2 211 + - 1/25 x - 2/25 x + 1/50 x z + ---- + 1/25 x y, COEFF(2, -2, -1) = + 3675 + + 169 2 2 + - ----- + 1/50 x - 1/100 x z - 2/175 y + 1/50 x - 1/175 z - 1/245 z + 14700 + + 2 2 2 + + 1/175 y z + 2/245 y - 1/50 x y, COEFF(-2, -1, -1) = 1/50 x - 1/245 y + + 2 191 + + 1/100 x z + 1/100 x y - 1/175 z - 1/50 x - 1/245 z + 1/350 y z + ----- + 14700 + + 2 2 + - 1/175 y, COEFF(-1, -1, -1) = 1/490 z - 1/50 x z - 2/25 x + 1/25 x + + 166 2 + + 1/350 z + 1/350 y - 1/700 y z + ---- - 1/50 x y + 1/490 y , + 3675 + + COEFF(0, -1, -1) = + + 57 2 2 2 + 1/175 z + 1/175 y - --- - 1/350 y z + 1/245 z + 3/25 x + 1/245 y , + 490 + + 166 + COEFF(1, -1, -1) = - 1/700 y z + 1/50 x y + 1/350 y + ---- - 1/25 x + 3675 + + 2 2 2 + - 2/25 x + 1/350 z + 1/490 y + 1/490 z + 1/50 x z, COEFF(2, -1, -1) = + + 2 191 2 + - 1/100 x z - 1/245 y - 1/100 x y - 1/175 z + 1/50 x + ----- + 1/50 x + 14700 + + 2 + - 1/245 z + 1/350 y z - 1/175 y, COEFF(-2, 0, -1) = + + 2 311 2 2 + - 2/245 y + 1/100 x z - 1/175 z + ----- - 1/245 z + 1/50 x - 1/50 x, + 14700 + + COEFF(-1, 0, -1) = + + 2 2 151 2 + 1/350 z + 1/245 y - 2/25 x + 1/25 x + ---- + 1/490 z - 1/50 x z, + 3675 + + 2 2 61 2 + COEFF(0, 0, -1) = 3/25 x + 2/245 y - --- + 1/245 z + 1/175 z, + 490 + + COEFF(1, 0, -1) = + + 151 2 2 2 + 1/350 z + ---- + 1/490 z - 2/25 x - 1/25 x + 1/50 x z + 1/245 y , + 3675 + + COEFF(2, 0, -1) = + + 2 2 311 2 + - 1/100 x z - 2/245 y + 1/50 x + ----- - 1/175 z - 1/245 z + 1/50 x, + 14700 + + 2 2 2 + COEFF(-2, 1, -1) = 1/175 y + 1/50 x - 1/245 y - 1/245 z - 1/175 z + + 191 + + 1/100 x z + ----- - 1/100 x y - 1/350 y z - 1/50 x, COEFF(-1, 1, -1) = + 14700 + + 166 2 + 1/25 x - 1/50 x z + 1/50 x y + 1/700 y z + ---- - 1/350 y + 1/490 z + 3675 + + 2 2 + + 1/490 y + 1/350 z - 2/25 x , COEFF(0, 1, -1) = + + 57 2 2 2 + - --- - 1/175 y + 1/245 z + 1/350 y z + 3/25 x + 1/175 z + 1/245 y , + 490 + + 2 2 + COEFF(1, 1, -1) = 1/50 x z + 1/490 z - 1/25 x - 1/50 x y + 1/490 y + + 166 2 + + 1/350 z + ---- - 2/25 x - 1/350 y + 1/700 y z, COEFF(2, 1, -1) = 1/50 x + 3675 + + 191 2 2 2 + - 1/350 y z - 1/100 x z + ----- - 1/245 y + 1/50 x + 1/175 y - 1/245 z + 14700 + + 2 + + 1/100 x y - 1/175 z, COEFF(-2, 2, -1) = 2/175 y + 2/245 y - 1/175 z + + 2 2 169 + - 1/175 y z - 1/245 z - 1/50 x y + 1/100 x z + 1/50 x - 1/50 x - -----, + 14700 + + 2 2 + COEFF(-1, 2, -1) = 1/25 x - 1/245 y - 2/25 x + 1/350 z + 1/25 x y + + 2 211 + - 1/175 y + 1/350 y z + 1/490 z + ---- - 1/50 x z, COEFF(0, 2, -1) = + 3675 + + 2 2 2 + 1/175 y z + 3/25 x + 1/245 z + 1/175 z - 2/175 y - 9/98 - 2/245 y , + + 2 2 + COEFF(1, 2, -1) = 1/490 z - 1/25 x y - 1/245 y + 1/350 y z - 1/175 y + + 2 211 + - 1/25 x + 1/350 z - 2/25 x + 1/50 x z + ----, COEFF(2, 2, -1) = + 3675 + + 2 169 2 2 + - 1/175 y z - 1/175 z - 1/245 z - ----- + 2/175 y + 2/245 y + 1/50 x + 14700 + + - 1/100 x z + 1/50 x y + 1/50 x, COEFF(-2, -2, 0) = + + 2 2 2 + 2/245 y - 2/245 z - 1/300 - 2/175 y - 1/50 x + 1/50 x y + 1/50 x , + + COEFF(-1, -2, 0) = + + 2 2 2 + 1/25 x - 1/245 y + 4/75 + 1/175 y + 1/245 z - 1/25 x y - 2/25 x , + + 2 2 2 + COEFF(0, -2, 0) = - 2/245 y + 3/25 x - 1/10 + 2/245 z + 2/175 y, + + COEFF(1, -2, 0) = + + 2 2 2 + - 1/25 x - 1/245 y + 1/175 y - 2/25 x + 1/25 x y + 4/75 + 1/245 z , + + COEFF(2, -2, 0) = + + 2 2 2 + - 2/245 z + 1/50 x + 2/245 y - 1/300 - 1/50 x y - 2/175 y + 1/50 x, + + COEFF(-2, -1, 0) = + + 311 2 2 2 + ----- - 2/245 z - 1/50 x - 1/175 y + 1/100 x y - 1/245 y + 1/50 x , + 14700 + + COEFF(-1, -1, 0) = + + 2 151 2 2 + 1/350 y + 1/245 z + ---- + 1/25 x + 1/490 y - 1/50 x y - 2/25 x , + 3675 + + 61 2 2 2 + COEFF(0, -1, 0) = 1/175 y - --- + 3/25 x + 2/245 z + 1/245 y , + 490 + + COEFF(1, -1, 0) = + + 2 151 2 2 + 1/490 y - 1/25 x + 1/350 y + 1/50 x y + ---- - 2/25 x + 1/245 z , + 3675 + + COEFF(2, -1, 0) = + + 2 2 2 311 + - 2/245 z + 1/50 x - 1/245 y - 1/100 x y + 1/50 x - 1/175 y + -----, + 14700 + + 431 2 2 2 + COEFF(-2, 0, 0) = ----- + 1/50 x - 2/245 y - 1/50 x - 2/245 z , + 14700 + + 2 2 136 2 + COEFF(-1, 0, 0) = 1/245 z + 1/245 y + ---- - 2/25 x + 1/25 x, + 3675 + + 2 2 2 13 + COEFF(0, 0, 0) = 2/245 z + 3/25 x + 2/245 y - --, + 98 + + 2 2 2 136 + COEFF(1, 0, 0) = 1/245 z - 2/25 x - 1/25 x + 1/245 y + ----, + 3675 + + 431 2 2 2 + COEFF(2, 0, 0) = ----- - 2/245 z + 1/50 x + 1/50 x - 2/245 y , + 14700 + + COEFF(-2, 1, 0) = + + 2 311 2 2 + 1/50 x - 1/100 x y + 1/175 y - 1/50 x + ----- - 2/245 z - 1/245 y , + 14700 + + COEFF(-1, 1, 0) = + + 2 2 151 2 + - 1/350 y + 1/25 x - 2/25 x + 1/245 z + 1/50 x y + ---- + 1/490 y , + 3675 + + 2 2 2 61 + COEFF(0, 1, 0) = 2/245 z - 1/175 y + 1/245 y + 3/25 x - ---, + 490 + + COEFF(1, 1, 0) = + + 151 2 2 2 + - 1/350 y + ---- + 1/245 z + 1/490 y - 1/50 x y - 2/25 x - 1/25 x, + 3675 + + COEFF(2, 1, 0) = + + 311 2 2 2 + 1/50 x + ----- - 1/245 y + 1/175 y - 2/245 z + 1/50 x + 1/100 x y, + 14700 + + COEFF(-2, 2, 0) = + + 2 2 2 + - 1/300 - 1/50 x y - 2/245 z + 2/245 y + 2/175 y - 1/50 x + 1/50 x , + + COEFF(-1, 2, 0) = + + 2 2 2 + 1/245 z - 1/175 y + 1/25 x + 4/75 - 1/245 y - 2/25 x + 1/25 x y, + + 2 2 2 + COEFF(0, 2, 0) = 2/245 z - 2/175 y - 1/10 + 3/25 x - 2/245 y , + + COEFF(1, 2, 0) = + + 2 2 2 + - 2/25 x - 1/245 y - 1/175 y - 1/25 x y - 1/25 x + 1/245 z + 4/75, + + COEFF(2, 2, 0) = + + 2 2 2 + 1/50 x y - 1/300 - 2/245 z + 2/245 y + 2/175 y + 1/50 x + 1/50 x , + + 2 + COEFF(-2, -2, 1) = 1/50 x y - 1/100 x z + 1/50 x - 1/175 y z - 2/175 y + + 2 2 169 + + 2/245 y + 1/175 z - 1/50 x - 1/245 z - -----, COEFF(-1, -2, 1) = + 14700 + + 211 2 + 1/50 x z + 1/350 y z - 1/350 z + 1/25 x + ---- + 1/175 y - 1/245 y + 3675 + + 2 2 + + 1/490 z - 1/25 x y - 2/25 x , COEFF(0, -2, 1) = + + 2 2 2 + - 1/175 z + 1/245 z - 2/245 y + 3/25 x + 2/175 y - 9/98 + 1/175 y z, + + 2 + COEFF(1, -2, 1) = 1/25 x y - 1/50 x z + 1/175 y - 1/350 z - 2/25 x + + 211 2 2 + - 1/25 x + 1/350 y z + ---- - 1/245 y + 1/490 z , COEFF(2, -2, 1) = + 3675 + + 2 2 + - 1/50 x y + 1/50 x + 2/245 y - 1/245 z - 1/175 y z - 2/175 y + 1/100 x z + + 2 169 2 + + 1/175 z + 1/50 x - -----, COEFF(-2, -1, 1) = - 1/245 y - 1/175 y + 14700 + + 191 2 2 + + ----- - 1/350 y z - 1/100 x z - 1/245 z + 1/50 x - 1/50 x + 1/175 z + 14700 + + 166 + + 1/100 x y, COEFF(-1, -1, 1) = - 1/50 x y + 1/50 x z + ---- + 1/700 y z + 3675 + + 2 2 2 + + 1/25 x + 1/350 y - 1/350 z - 2/25 x + 1/490 y + 1/490 z , + + COEFF(0, -1, 1) = + + 2 2 57 2 + 1/350 y z + 1/175 y - 1/175 z + 1/245 y + 1/245 z - --- + 3/25 x , + 490 + + 2 2 2 166 + COEFF(1, -1, 1) = 1/490 y - 2/25 x + 1/490 z - 1/50 x z + ---- + 1/350 y + 3675 + + + 1/50 x y - 1/25 x + 1/700 y z - 1/350 z, COEFF(2, -1, 1) = - 1/175 y + + 2 2 2 + - 1/100 x y + 1/100 x z - 1/245 z - 1/245 y + 1/50 x + 1/50 x + + 191 + - 1/350 y z + 1/175 z + -----, COEFF(-2, 0, 1) = + 14700 + + 2 311 2 2 + 1/50 x - 1/50 x - 1/100 x z + 1/175 z + ----- - 1/245 z - 2/245 y , + 14700 + + COEFF(-1, 0, 1) = + + 2 2 2 151 + 1/25 x + 1/245 y + 1/50 x z + 1/490 z - 2/25 x - 1/350 z + ----, + 3675 + + 61 2 2 2 + COEFF(0, 0, 1) = - --- + 3/25 x - 1/175 z + 2/245 y + 1/245 z , + 490 + + COEFF(1, 0, 1) = + + 2 2 151 2 + 1/490 z + 1/245 y - 1/50 x z - 1/350 z - 1/25 x + ---- - 2/25 x , + 3675 + + COEFF(2, 0, 1) = + + 2 2 311 2 + 1/175 z - 2/245 y - 1/245 z + ----- + 1/50 x + 1/50 x + 1/100 x z, + 14700 + + 191 2 + COEFF(-2, 1, 1) = ----- + 1/175 y - 1/100 x z + 1/175 z + 1/50 x + 14700 + + 2 2 + - 1/245 z - 1/100 x y - 1/50 x + 1/350 y z - 1/245 y , COEFF(-1, 1, 1) = + + 2 166 + - 1/350 z + 1/50 x y - 2/25 x + ---- - 1/700 y z - 1/350 y + 1/25 x + 3675 + + 2 2 + + 1/50 x z + 1/490 y + 1/490 z , COEFF(0, 1, 1) = + + 2 2 57 2 + - 1/350 y z + 3/25 x + 1/245 z - --- + 1/245 y - 1/175 y - 1/175 z, + 490 + + 2 + COEFF(1, 1, 1) = - 1/50 x y - 1/700 y z - 1/50 x z - 1/350 y + 1/490 y + + 2 2 166 + + 1/490 z - 1/25 x - 2/25 x + ---- - 1/350 z, COEFF(2, 1, 1) = 1/100 x y + 3675 + + 2 191 2 2 + + 1/350 y z - 1/245 z + ----- + 1/50 x + 1/175 z + 1/175 y - 1/245 y + 14700 + + 169 + + 1/50 x + 1/100 x z, COEFF(-2, 2, 1) = - 1/100 x z + 1/175 y z - ----- + 14700 + + 2 2 2 + - 1/50 x y - 1/245 z - 1/50 x + 1/50 x + 2/245 y + 1/175 z + 2/175 y, + + 211 + COEFF(-1, 2, 1) = 1/25 x y + 1/25 x + ---- - 1/350 z - 1/175 y + 1/50 x z + 3675 + + 2 2 2 + + 1/490 z - 2/25 x - 1/245 y - 1/350 y z, COEFF(0, 2, 1) = + + 2 2 2 + 3/25 x + 1/245 z - 1/175 y z - 9/98 - 1/175 z - 2/175 y - 2/245 y , + + 2 2 + COEFF(1, 2, 1) = - 1/350 z - 1/350 y z - 1/50 x z - 2/25 x + 1/490 z + + 211 2 + - 1/25 x - 1/25 x y - 1/175 y + ---- - 1/245 y , COEFF(2, 2, 1) = 1/50 x + 3675 + + 2 2 169 + + 1/175 z + 1/50 x + 2/245 y - ----- + 1/50 x y + 1/100 x z + 1/175 y z + 14700 + + 2 2 + + 2/175 y - 1/245 z , COEFF(-2, -2, 2) = - 2/175 y z - 1/50 x + 2/245 z + + 2 2 529 + + 2/245 y + 1/50 x y + 2/175 z + 1/50 x - 2/175 y - 1/50 x z - -----, + 14700 + + 2 2 2 + COEFF(-1, -2, 2) = - 1/245 y + 1/25 x - 2/25 x - 1/245 z - 1/175 z + + 256 + - 1/25 x y + 1/25 x z + 1/175 y z + ---- + 1/175 y, COEFF(0, -2, 2) = + 3675 + + 2 2 33 2 + 2/175 y - 2/245 z - 2/245 y + 2/175 y z - 2/175 z - --- + 3/25 x , + 490 + + 2 2 + COEFF(1, -2, 2) = - 1/25 x + 1/175 y z - 1/175 z - 2/25 x - 1/245 z + + 2 256 + + 1/25 x y - 1/25 x z - 1/245 y + ---- + 1/175 y, COEFF(2, -2, 2) = + 3675 + + 2 2 529 + 2/175 z - 2/175 y + 2/245 y + 1/50 x z + 2/245 z - ----- + 1/50 x + 14700 + + 2 169 + + 1/50 x - 1/50 x y - 2/175 y z, COEFF(-2, -1, 2) = - 1/50 x z - ----- + 14700 + + 2 2 2 + + 1/100 x y - 1/245 y - 1/175 y - 1/175 y z + 2/245 z + 1/50 x + + 2 + + 2/175 z - 1/50 x, COEFF(-1, -1, 2) = 1/350 y - 2/25 x - 1/50 x y + + 2 2 211 + + 1/350 y z - 1/245 z - 1/175 z + 1/490 y + 1/25 x + ---- + 1/25 x z, + 3675 + + COEFF(0, -1, 2) = + + 2 2 2 + 3/25 x + 1/175 y z + 1/175 y - 2/245 z - 9/98 - 2/175 z + 1/245 y , + + 2 2 + COEFF(1, -1, 2) = 1/490 y - 1/245 z + 1/50 x y - 1/25 x z - 1/175 z + + 211 2 + + 1/350 y z - 1/25 x + ---- + 1/350 y - 2/25 x , COEFF(2, -1, 2) = + 3675 + + 2 2 + - 1/245 y + 1/50 x z + 2/245 z - 1/100 x y + 2/175 z + 1/50 x - 1/175 y z + + 2 169 + + 1/50 x - ----- - 1/175 y, COEFF(-2, 0, 2) = + 14700 + + 2 2 2 + 1/50 x - 1/50 x + 2/175 z + 2/245 z - 1/300 - 2/245 y - 1/50 x z, + + COEFF(-1, 0, 2) = + + 2 2 2 + 1/25 x - 2/25 x + 4/75 - 1/245 z + 1/25 x z + 1/245 y - 1/175 z, + + 2 2 2 + COEFF(0, 0, 2) = - 2/245 z + 2/245 y + 3/25 x - 1/10 - 2/175 z, + + COEFF(1, 0, 2) = + + 2 2 2 + - 1/25 x z + 4/75 + 1/245 y - 1/245 z - 1/25 x - 2/25 x - 1/175 z, + + COEFF(2, 0, 2) = + + 2 2 2 + - 1/300 + 1/50 x z + 2/245 z + 2/175 z - 2/245 y + 1/50 x + 1/50 x , + + 2 2 + COEFF(-2, 1, 2) = 1/175 y - 1/50 x + 2/175 z + 2/245 z - 1/245 y + + 2 169 + - 1/100 x y + 1/175 y z - 1/50 x z + 1/50 x - -----, COEFF(-1, 1, 2) = + 14700 + + 211 2 2 + 1/50 x y - 1/175 z + ---- - 1/350 y z - 2/25 x + 1/490 y + 1/25 x + 3675 + + 2 + - 1/245 z - 1/350 y + 1/25 x z, COEFF(0, 1, 2) = + + 2 2 2 + - 1/175 y z - 1/175 y + 3/25 x - 2/175 z - 2/245 z - 9/98 + 1/245 y , + + 211 2 + COEFF(1, 1, 2) = - 1/25 x - 1/175 z - 1/25 x z + ---- - 1/245 z - 1/350 y + 3675 + + 2 2 + - 2/25 x - 1/50 x y + 1/490 y - 1/350 y z, COEFF(2, 1, 2) = 2/175 z + + 169 2 2 + - ----- + 1/100 x y + 1/50 x + 1/50 x + 1/50 x z + 2/245 z + 1/175 y + 14700 + + 2 2 + - 1/245 y + 1/175 y z, COEFF(-2, 2, 2) = - 1/50 x + 1/50 x - 1/50 x z + + 529 2 2 + + 2/175 y - ----- - 1/50 x y + 2/245 y + 2/175 y z + 2/175 z + 2/245 z , + 14700 + + 2 256 + COEFF(-1, 2, 2) = 1/25 x y - 1/175 y z - 2/25 x + 1/25 x + ---- + 1/25 x z + 3675 + + 2 2 + - 1/245 z - 1/175 z - 1/175 y - 1/245 y , COEFF(0, 2, 2) = + + 2 2 2 33 + - 2/175 z - 2/175 y z - 2/175 y + 3/25 x - 2/245 z - 2/245 y - ---, + 490 + + 256 2 2 2 + COEFF(1, 2, 2) = ---- - 1/25 x - 2/25 x - 1/245 y - 1/245 z - 1/25 x y + 3675 + + - 1/175 y z - 1/175 z - 1/25 x z - 1/175 y, COEFF(2, 2, 2) = 1/50 x z + + 529 2 + + 2/175 z - ----- + 1/50 x y + 1/50 x + 2/175 y z + 2/245 y + 2/175 y + 14700 + + 2 2 + + 1/50 x + 2/245 z ] + +> print_coeff__lc_of_data(%, "coeff_dxx_", "fp", +> "3d.coeffs/3d.cube.order4.smooth0/coeff-dxx.compute.c"); +bytes used=1967257552, alloc=15136044, time=287.66 +bytes used=1968258336, alloc=15136044, time=287.74 +bytes used=1969258540, alloc=15136044, time=287.82 +bytes used=1970259184, alloc=15136044, time=287.92 +bytes used=1971259372, alloc=15136044, time=288.69 +bytes used=1972259760, alloc=15136044, time=289.45 +bytes used=1973259972, alloc=15136044, time=290.21 +bytes used=1974260584, alloc=15136044, time=290.97 +bytes used=1975261268, alloc=15136044, time=291.71 +bytes used=1976261452, alloc=15136044, time=292.03 +bytes used=1977261780, alloc=15136044, time=292.12 +bytes used=1978262704, alloc=15136044, time=292.21 +bytes used=1979282244, alloc=15136044, time=292.29 +bytes used=1980306052, alloc=15136044, time=292.38 +bytes used=1981307304, alloc=15136044, time=292.47 +bytes used=1982307572, alloc=15136044, time=292.57 +bytes used=1983307812, alloc=15136044, time=293.28 +bytes used=1984307972, alloc=15136044, time=294.14 +bytes used=1985308176, alloc=15136044, time=294.42 +bytes used=1986308424, alloc=15136044, time=294.51 +bytes used=1987309100, alloc=15136044, time=294.58 +bytes used=1988309664, alloc=15136044, time=294.65 +bytes used=1989310008, alloc=15136044, time=294.72 +bytes used=1990310180, alloc=15136044, time=294.79 +bytes used=1991310504, alloc=15136044, time=294.86 +bytes used=1992311228, alloc=15136044, time=294.93 +bytes used=1993311684, alloc=15136044, time=295.01 +bytes used=1994314240, alloc=15136044, time=295.09 +bytes used=1995314404, alloc=15136044, time=295.16 +bytes used=1996314692, alloc=15136044, time=295.26 +bytes used=1997315516, alloc=15136044, time=295.39 +bytes used=1998315720, alloc=15136044, time=295.50 +bytes used=1999316468, alloc=15136044, time=295.63 +bytes used=2000317152, alloc=15136044, time=295.75 +bytes used=2001317308, alloc=15136044, time=295.86 +bytes used=2002319868, alloc=15136044, time=295.98 +bytes used=2003320020, alloc=15136044, time=296.12 +bytes used=2004332396, alloc=15136044, time=296.26 +bytes used=2005343668, alloc=15136044, time=296.39 +bytes used=2006345448, alloc=15136044, time=296.48 +bytes used=2007345664, alloc=15136044, time=297.37 +bytes used=2008345916, alloc=15136044, time=298.55 +bytes used=2009346068, alloc=15136044, time=299.04 +bytes used=2010346356, alloc=15136044, time=299.13 +bytes used=2011346612, alloc=15136044, time=299.21 +bytes used=2012346944, alloc=15136044, time=299.28 +bytes used=2013347244, alloc=15136044, time=299.36 +bytes used=2014347584, alloc=15136044, time=299.44 +bytes used=2015347780, alloc=15136044, time=299.52 +bytes used=2016348108, alloc=15136044, time=299.59 +bytes used=2017348384, alloc=15136044, time=299.67 +bytes used=2018348608, alloc=15136044, time=299.75 +bytes used=2019348792, alloc=15136044, time=299.83 +bytes used=2020349004, alloc=15136044, time=299.91 +bytes used=2021349260, alloc=15136044, time=300.10 +bytes used=2022352092, alloc=15136044, time=300.23 +bytes used=2023361600, alloc=15136044, time=300.36 +bytes used=2024362288, alloc=15136044, time=300.50 +bytes used=2025362564, alloc=15136044, time=301.20 +bytes used=2026362764, alloc=15136044, time=302.77 +bytes used=2027362948, alloc=15136044, time=303.32 +bytes used=2028363276, alloc=15136044, time=303.41 +bytes used=2029363536, alloc=15136044, time=303.49 +bytes used=2030363964, alloc=15136044, time=303.57 +bytes used=2031364284, alloc=15136044, time=303.65 +bytes used=2032364544, alloc=15136044, time=303.72 +bytes used=2033364772, alloc=15136044, time=303.80 +bytes used=2034364976, alloc=15136044, time=303.93 +bytes used=2035365128, alloc=15136044, time=304.16 +bytes used=2036365400, alloc=15136044, time=306.13 +bytes used=2037365612, alloc=15136044, time=306.91 +bytes used=2038365856, alloc=15136044, time=307.13 +bytes used=2039366312, alloc=15136044, time=307.21 +bytes used=2040366684, alloc=15136044, time=307.29 +bytes used=2041366968, alloc=15136044, time=307.37 +bytes used=2042367128, alloc=15136044, time=307.45 +bytes used=2043367388, alloc=15136044, time=307.53 +bytes used=2044367612, alloc=15136044, time=307.72 +bytes used=2045367808, alloc=15136044, time=308.79 +bytes used=2046367960, alloc=15136044, time=310.29 +bytes used=2047368364, alloc=15136044, time=310.80 +bytes used=2048368516, alloc=15136044, time=310.93 +bytes used=2049368724, alloc=15136044, time=311.01 +bytes used=2050368920, alloc=15136044, time=311.18 +> +# d^2/dxdy +> simplify( diff(interp_3d_cube_order4_smooth0,x,y) ); +bytes used=2051369188, alloc=15136044, time=311.27 +bytes used=2052369732, alloc=15136044, time=311.35 +bytes used=2053370236, alloc=15136044, time=311.43 +bytes used=2054371304, alloc=15136044, time=311.51 +bytes used=2055371464, alloc=15136044, time=311.60 +bytes used=2056371632, alloc=15136044, time=311.69 +bytes used=2057371796, alloc=15136044, time=311.77 +bytes used=2058372320, alloc=15136044, time=311.84 + 137 137 289 +- ---- DATA(-1, 1, -1) + ---- DATA(1, 1, -1) + ----- DATA(-1, -1, 0) + 5250 5250 10500 + + 2 2 289 + + 1/100 x DATA(-1, 1, 0) + 1/100 x DATA(1, -1, 0) - ----- DATA(1, -1, 0) + 10500 + + 289 137 137 + - ----- DATA(-1, 1, 0) - ---- DATA(-1, 1, 1) - ---- DATA(1, -1, 1) + 10500 5250 5250 + + 137 + + ---- DATA(-1, -1, 1) + 1/175 x DATA(1, -2, 0) + 1/175 x DATA(-2, 1, 0) + 5250 + + - 1/350 x DATA(-1, 1, 0) + 1/175 x DATA(2, 1, 0) + 1/350 x DATA(1, -1, 0) + + - 1/175 x DATA(-1, 2, 0) + 2/175 x DATA(-2, 2, 0) + + + 1/175 x DATA(-1, -2, 0) - 1/175 x DATA(-2, -1, 0) + + - 2/175 x DATA(2, -2, 0) - 2/175 x DATA(-2, -2, 0) + + 2 2 + + 1/100 x DATA(-2, -2, 0) + 1/50 x DATA(1, -2, 0) + + 2 2 + - 1/200 x DATA(-2, 1, 0) - 1/100 x DATA(-2, 2, 0) + + 2 2 + - 1/50 x DATA(-1, -2, 0) + 1/200 x DATA(-2, -1, 0) + + 2 + - 1/100 x DATA(2, -2, 0) - 2/245 x y DATA(2, -1, 0) + + 2 2 + - 1/200 x DATA(2, -1, 0) + 1/50 x DATA(-1, 2, 0) + + 2 2 + - 1/100 x DATA(-1, -1, 0) - 1/50 x DATA(1, 2, 0) + + 2 2 2 + + 1/100 x DATA(2, 2, 0) + 1/200 x DATA(2, 1, 0) - 1/100 x DATA(1, 1, 0) + + 107 289 + - 1/175 x DATA(2, -1, 0) + ---- DATA(-1, -2, 2) + ----- DATA(1, 1, 0) + 7000 10500 + + 2 2 + - 1/200 y DATA(-1, 2, 0) + 1/50 y DATA(2, -1, 0) + + 2 2 + + 1/100 y DATA(-2, -2, 0) + 1/200 y DATA(-1, -2, 0) + + 2 2 + - 1/50 y DATA(-2, -1, 0) - 1/100 y DATA(2, -2, 0) + + 2 2 + + 1/50 y DATA(-2, 1, 0) - 1/100 y DATA(-2, 2, 0) + + 2 2 + - 1/200 y DATA(1, -2, 0) + 1/100 y DATA(1, -1, 0) + + 2 2 + + 1/100 y DATA(-1, 1, 0) + 1/200 y DATA(1, 2, 0) + + 2 2 + + 1/100 y DATA(2, 2, 0) - 1/50 y DATA(2, 1, 0) + + 2 2 + - 1/100 y DATA(-1, -1, 0) - 1/100 y DATA(1, 1, 0) + + - 1/350 y DATA(1, 1, 0) + 1/175 y DATA(1, 2, 0) + 2/175 y DATA(2, 2, 0) + + - 1/175 y DATA(2, 1, 0) + 1/350 y DATA(-1, -1, 0) + 1/175 y DATA(1, -2, 0) + + - 2/175 y DATA(-2, 2, 0) - 1/175 y DATA(-1, -2, 0) + + + 1/175 y DATA(-2, -1, 0) + 2/175 y DATA(2, -2, 0) + + - 2/175 y DATA(-2, -2, 0) + 1/350 y DATA(-1, 1, 0) + + - 1/350 y DATA(1, -1, 0) + 1/175 y DATA(-2, 1, 0) - 1/175 y DATA(2, -1, 0) + + - 1/175 y DATA(-1, 2, 0) - 1/175 x DATA(1, 2, 0) + 2/175 x DATA(2, 2, 0) + + + 1/350 x DATA(-1, -1, 0) - 1/350 x DATA(1, 1, 0) + + 2 2 + + 1/350 z DATA(-1, 2, 0) + 1/350 z DATA(2, -1, 0) + + 2 2 + - 1/350 z DATA(-1, -2, 0) - 1/350 z DATA(-2, -1, 0) + + 2 2 + + 1/350 z DATA(1, -2, 0) + 1/350 z DATA(-2, 1, 0) + + 2 2 + + 1/175 z DATA(-2, 2, 0) + 1/175 z DATA(2, -2, 0) + + 2 2 + - 1/175 z DATA(-2, -2, 0) - 1/700 z DATA(-1, -1, 0) + + 2 2 2 + - 1/350 z DATA(1, 2, 0) - 1/175 z DATA(2, 2, 0) - 1/350 z DATA(2, 1, 0) + + 2 2 + + 1/700 z DATA(-1, 1, 0) + 1/700 z DATA(1, -1, 0) + + 2 + - 1/700 z DATA(1, 1, 0) + 2/245 x y DATA(1, 0, 1) + + - 4/245 x y DATA(2, 0, -1) + 2/245 x y DATA(1, 0, -1) + + + 2/245 x y DATA(-1, 0, -1) + 1/175 x DATA(0, -1, -2) + + 107 107 + - ---- DATA(1, -2, 2) + ---- DATA(-2, -1, 2) + 4/245 x y DATA(0, 0, -2) + 7000 7000 + + - 4/245 x y DATA(-2, 0, 0) + 2/175 x z DATA(0, 2, -2) + + + 1/175 x z DATA(0, 1, -2) - 1/175 x z DATA(0, -1, -2) + + - 1/175 x z DATA(0, -2, -1) - 1/175 x z DATA(0, 1, 2) + + - 2/175 x z DATA(0, 2, 2) - 2/175 x z DATA(0, -2, -2) + + + 1/175 x z DATA(0, -1, 2) + 1/175 x z DATA(0, 2, -1) + + - 1/175 x z DATA(0, 2, 1) - 1/350 x z DATA(0, -1, -1) + + + 2/175 x z DATA(0, -2, 2) - 1/350 x z DATA(0, 1, 1) + + + 1/350 x z DATA(0, 1, -1) + 1/350 x z DATA(0, -1, 1) + + 137 + + 1/175 x z DATA(0, -2, 1) + ---- DATA(2, -2, 2) + 5250 + + - 4/245 x y DATA(-2, 0, 2) - 4/245 x y DATA(0, 2, -1) + + - 4/245 x y DATA(0, 2, 1) + 1/245 x y DATA(1, -1, 0) + + + 4/245 x y DATA(-2, 2, 0) - 4/245 x y DATA(0, 2, 0) + + + 2/245 x y DATA(0, -1, -1) - 2/245 x y DATA(-2, 1, 0) + + - 2/245 x y DATA(1, -2, 0) - 4/245 x y DATA(0, -2, 2) + + + 2/245 x y DATA(0, 1, 0) - 2/245 x y DATA(-2, -1, 0) + + + 2/245 x y DATA(0, 1, 1) - 2/245 x y DATA(-1, -2, 0) + + + 2/245 x y DATA(0, 1, -1) + 2/245 x y DATA(0, -1, 0) + + + 2/245 x y DATA(0, -1, 1) - 4/245 x y DATA(2, 0, 0) + + + 4/245 x y DATA(0, 0, 0) + 2/245 x y DATA(1, 0, 0) + + + 4/245 x y DATA(-2, -2, 0) + 4/245 x y DATA(2, -2, 0) + + + 4/245 x y DATA(0, 0, 2) + 4/245 x y DATA(0, 0, 1) + + - 4/245 x y DATA(0, -2, 1) + 4/245 x y DATA(0, 0, -1) + + + 2/245 x y DATA(-1, 0, 0) - 4/245 x y DATA(-2, 0, -1) + + - 4/245 x y DATA(-2, 0, 1) + 2/245 x y DATA(1, 0, -2) + + + 2/245 x y DATA(-1, 0, -2) - 4/245 x y DATA(-2, 0, -2) + + + 1/245 x y DATA(1, 1, 0) + 2/245 x y DATA(-1, 0, 2) + + + 2/245 x y DATA(1, 0, 2) - 4/245 x y DATA(2, 0, 2) + + - 4/245 x y DATA(2, 0, 1) - 4/245 x y DATA(2, 0, -2) + + - 4/245 x y DATA(0, 2, -2) - 4/245 x y DATA(0, -2, 0) + + - 2/245 x y DATA(2, 1, 0) + 4/245 x y DATA(2, 2, 0) + + - 2/245 x y DATA(1, 2, 0) + 2/245 x y DATA(0, 1, -2) + + + 1/245 x y DATA(-1, -1, 0) + 2/245 x y DATA(0, -1, -2) + + - 4/245 x y DATA(0, -2, -1) + 1/245 x y DATA(-1, 1, 0) + + + 2/245 x y DATA(0, 1, 2) - 4/245 x y DATA(0, 2, 2) + + - 4/245 x y DATA(0, -2, -2) + 2/245 x y DATA(0, -1, 2) + + + 2/175 y z DATA(-2, 0, 2) - 1/350 y z DATA(1, 0, 1) + + + 1/175 y z DATA(2, 0, -1) + 1/350 y z DATA(1, 0, -1) + + 107 + - 1/350 y z DATA(-1, 0, -1) - ---- DATA(-2, 1, 2) + 7000 + + - 2/175 y z DATA(-2, 0, -2) + 1/175 y z DATA(-1, 0, 2) + + - 1/175 y z DATA(1, 0, 2) - 2/175 y z DATA(2, 0, 2) + + 137 + - 1/175 y z DATA(2, 0, 1) + 2/175 y z DATA(2, 0, -2) + ---- DATA(1, 1, 1) + 5250 + + - 1/175 y z DATA(-2, 0, -1) + 1/175 y z DATA(-2, 0, 1) + + 137 + + 1/175 y z DATA(1, 0, -2) + ---- DATA(-2, 2, 2) + 5250 + + - 1/175 y z DATA(-1, 0, -2) + 2/245 x y DATA(-1, 0, 1) + + - 2/175 x DATA(0, 2, -2) + 2/175 x DATA(0, -2, 0) - 2/175 x DATA(0, 2, 2) + + - 1/175 y z DATA(2, -2, -1) - 1/350 y z DATA(1, -2, -1) + + + 2/175 x DATA(0, -2, -2) + 1/175 x DATA(0, -1, 2) + + + 1/350 y z DATA(-1, -2, -1) - 1/175 x DATA(0, 1, -2) + + + 1/175 y z DATA(-2, -2, -1) - 2/175 y z DATA(2, 2, -2) + + - 1/175 y z DATA(1, 2, -2) + 1/175 y z DATA(-1, 2, -2) + + - 1/350 y z DATA(-2, 1, -1) - 1/350 y z DATA(-2, -1, -1) + + + 1/175 y z DATA(-2, 2, -1) + 2/175 x DATA(0, -2, -1) + + - 1/175 y z DATA(-2, -2, 1) - 2/175 x DATA(0, 2, -1) + + 137 + - 1/175 x DATA(0, 1, 2) + ---- DATA(-1, -1, -1) - 2/175 y DATA(2, 0, 0) + 5250 + + - 2/175 y DATA(2, 0, 1) - 2/175 y DATA(2, 0, -2) - 1/175 y DATA(1, 0, 2) + + + 1/175 y DATA(-1, 0, 0) - 1/175 y DATA(1, 0, 0) + 2/175 y DATA(-2, 0, 0) + + 167 + + ---- DATA(1, 2, -1) + 1/175 y DATA(-1, 0, 1) - 2/175 x DATA(0, 2, 1) + 7000 + + 167 + + ---- DATA(2, 1, -1) - 1/175 y DATA(1, 0, -1) + 2/175 y DATA(-2, 0, 2) + 7000 + + 167 + - ---- DATA(-1, 2, -1) - 1/175 y DATA(1, 0, 1) - 2/175 y DATA(2, 0, -1) + 7000 + + + 1/175 y DATA(-1, 0, -1) + 1/175 y z DATA(2, -2, 1) + + + 1/350 y z DATA(-2, -1, 1) + 1/350 y z DATA(-2, 1, 1) + + 167 + - ---- DATA(2, -1, -1) - 1/175 y z DATA(-2, 2, 1) + 7000 + + - 2/175 y z DATA(-2, -2, 2) + 1/350 y z DATA(-1, 0, 1) + + 167 167 167 + + ---- DATA(2, 1, 1) - ---- DATA(-1, 2, 1) + ---- DATA(1, 2, 1) + 7000 7000 7000 + + 167 137 + - 1/350 y z DATA(-1, -1, -2) - ---- DATA(2, -1, 1) - ---- DATA(1, -1, -1) + 7000 5250 + + 187 17 187 + + ---- DATA(1, 2, 0) - ---- DATA(2, 2, 0) + ---- DATA(2, 1, 0) + 7000 5250 7000 + + 187 187 + - ---- DATA(-1, 2, 0) - ---- DATA(2, -1, 0) + 2/175 y DATA(-2, 0, -1) + 7000 7000 + + 47 + + 1/175 y DATA(-1, 0, 2) + 2/175 y DATA(-2, 0, 1) - ---- DATA(2, 2, -1) + 5250 + + - 2/175 y DATA(2, 0, 2) - 1/175 y DATA(1, 0, -2) + 1/175 y DATA(-1, 0, -2) + + 107 107 + + 2/175 y DATA(-2, 0, -2) + ---- DATA(1, 2, 2) + ---- DATA(-2, -1, -2) + 7000 7000 + + 137 137 107 + - ---- DATA(2, 2, 2) + ---- DATA(2, -2, -2) - ---- DATA(1, -2, -2) + 5250 5250 7000 + + 229 107 107 + + ----- DATA(1, 1, 2) + ---- DATA(2, 1, 2) - ---- DATA(-1, 2, 2) + 10500 7000 7000 + + 107 229 137 + + ---- DATA(-1, -2, -2) - ----- DATA(-1, 1, 2) - ---- DATA(-2, -2, -2) + 7000 10500 5250 + + 229 107 + - ----- DATA(1, -1, 2) - ---- DATA(2, -1, 2) + 2/175 x DATA(0, -2, 2) + 10500 7000 + + - 2/175 x DATA(0, 2, 0) + 1/175 x DATA(0, -1, -1) + 1/175 x DATA(0, -1, 0) + + - 1/175 x DATA(0, 1, 0) - 1/175 x DATA(0, 1, 1) - 1/175 x DATA(0, 1, -1) + + 229 + + 2/175 x DATA(0, -2, 1) + 1/175 x DATA(0, -1, 1) + ----- DATA(-1, -1, 2) + 10500 + + 47 + - ---- DATA(2, 2, 1) + 1/175 x z DATA(-2, -1, -2) + 5250 + + 137 + + 2/175 x z DATA(2, 2, 2) + ---- DATA(-2, 2, -2) + 5250 + + + 2/175 x z DATA(2, -2, -2) + 1/700 x z DATA(-1, 1, -1) + + 107 229 + + ---- DATA(2, 1, -2) + 1/350 y z DATA(-1, 2, -1) + ----- DATA(1, 1, -2) + 7000 10500 + + 229 107 107 + - ----- DATA(-1, 1, -2) - ---- DATA(-2, 1, -2) - ---- DATA(2, -1, -2) + 10500 7000 7000 + + 229 229 + - ----- DATA(1, -1, -2) + ----- DATA(-1, -1, -2) + 10500 10500 + + + 1/700 x z DATA(1, 1, -1) - 1/700 x z DATA(-1, 1, 1) + + 47 + + ---- DATA(2, -2, -1) + 1/700 x z DATA(1, -1, 1) + 5250 + + + 1/700 x z DATA(-1, -1, 1) + 1/175 x z DATA(-1, -2, 2) + + 167 + + 1/175 x z DATA(1, -2, 2) - ---- DATA(1, -2, -1) + 7000 + + - 1/175 x z DATA(-2, -1, 2) - 2/175 x z DATA(2, -2, 2) + + + 1/175 x z DATA(-2, 1, 2) - 1/700 x z DATA(1, 1, 1) + + + 2/175 x z DATA(-2, 2, 2) - 1/700 x z DATA(-1, -1, -1) + + 167 + + ---- DATA(-1, -2, -1) + 1/350 x z DATA(1, 2, -1) + 7000 + + 47 + - 1/350 x z DATA(2, 1, -1) - ---- DATA(-2, -2, -1) + 5250 + + + 1/350 x z DATA(-1, 2, -1) + 1/350 x z DATA(2, -1, -1) + + 137 + + 1/350 x z DATA(2, 1, 1) - ---- DATA(2, 2, -2) - 1/350 x z DATA(-1, 2, 1) + 5250 + + 107 + - 1/350 x z DATA(1, 2, 1) - 1/350 x z DATA(2, -1, 1) + ---- DATA(1, 2, -2) + 7000 + + - 1/700 x z DATA(1, -1, -1) - 1/175 x z DATA(2, 2, -1) + + 107 167 + - 1/175 x z DATA(1, 2, 2) - ---- DATA(-1, 2, -2) - ---- DATA(-2, 1, -1) + 7000 7000 + + 167 47 187 + + ---- DATA(-2, -1, -1) + ---- DATA(-2, 2, -1) + ---- DATA(-1, -2, 0) + 7000 5250 7000 + + 17 187 17 + - ---- DATA(-2, -2, 0) + ---- DATA(-2, -1, 0) + ---- DATA(2, -2, 0) + 5250 7000 5250 + + 187 + - ---- DATA(1, -2, 0) - 1/175 x z DATA(-2, -2, 1) + 7000 + + + 1/350 x z DATA(-1, -2, 1) + 1/350 x z DATA(1, -2, 1) + + 187 + - 1/350 x z DATA(1, 1, 2) - ---- DATA(-2, 1, 0) - 1/175 x z DATA(2, -2, 1) + 7000 + + - 1/350 x z DATA(-2, -1, 1) + 1/350 x z DATA(-2, 1, 1) + + + 1/175 x z DATA(-2, 2, 1) - 2/175 x z DATA(-2, -2, 2) + + + 1/175 x z DATA(-2, -2, -1) - 2/175 x z DATA(2, 2, -2) + + + 1/175 x z DATA(1, 2, -2) + 1/175 x z DATA(-1, 2, -2) + + 17 + + ---- DATA(-2, 2, 0) - 1/350 x z DATA(-2, 1, -1) + 5250 + + + 1/350 x z DATA(-2, -1, -1) - 1/175 x z DATA(-2, 2, -1) + + 47 + - 1/350 x z DATA(1, -1, -2) - ---- DATA(-2, -2, 1) + 5250 + + - 1/350 x z DATA(-1, -1, -2) + 1/175 x z DATA(2, -2, -1) + + - 1/350 x z DATA(1, -2, -1) - 1/350 x z DATA(-1, -2, -1) + + + 1/175 x z DATA(2, 2, 1) - 2/175 x z DATA(-2, 2, -2) + + 167 + - 1/175 x z DATA(2, 1, -2) + ---- DATA(-1, -2, 1) + 7000 + + + 1/350 x z DATA(1, 1, -2) + 1/350 x z DATA(-1, 1, -2) + + - 1/175 x z DATA(-2, 1, -2) + 1/175 x z DATA(2, -1, -2) + + 167 + - ---- DATA(1, -2, 1) - 1/350 x z DATA(-1, 1, 2) + 7000 + + + 2/175 x z DATA(-2, -2, -2) + 1/350 x z DATA(1, -1, 2) + + - 1/175 x z DATA(2, -1, 2) + 1/350 x z DATA(-1, -1, 2) + + - 2/245 x y DATA(-1, -2, 1) - 2/245 x y DATA(1, -2, 1) + + 47 + + ---- DATA(2, -2, 1) + 1/245 x y DATA(1, 1, 2) + 4/245 x y DATA(2, -2, 1) + 5250 + + - 1/175 x z DATA(1, -2, -2) + 1/175 x z DATA(2, 1, 2) + + - 1/175 x z DATA(-1, 2, 2) - 1/175 x z DATA(-1, -2, -2) + + + 1/350 y z DATA(-1, -1, 2) + 1/175 y z DATA(2, 2, 1) + + - 2/245 x y DATA(-2, -1, -1) + 2/175 y z DATA(-2, 2, -2) + + 2 + + 1/350 y z DATA(1, -1, -2) - 1/700 z DATA(1, 2, 1) + + 2 2 + + 1/700 z DATA(2, -1, 1) + 1/1400 z DATA(1, -1, -1) + + + 1/175 y z DATA(2, 1, -2) + 4/245 x y DATA(-2, -2, 2) + + + 4/245 x y DATA(-2, 2, 1) - 2/245 x y DATA(-2, 1, 1) + + 2 + - 2/245 x y DATA(-2, -1, 1) - 1/350 z DATA(2, 2, -1) + + 2 2 + + 1/350 z DATA(-2, -1, -2) + 1/175 z DATA(2, 2, 2) + + 2 2 + - 1/175 z DATA(2, -2, -2) + 1/1400 z DATA(-1, 1, -1) + + 2 2 + - 1/350 z DATA(1, -2, -2) + 1/350 z DATA(2, 1, 2) + + 2 2 + - 1/350 z DATA(-1, 2, 2) + 1/350 z DATA(-1, -2, -2) + + 2 2 + - 1/700 z DATA(-1, 1, 2) + 1/175 z DATA(-2, -2, -2) + + 2 2 + - 1/700 z DATA(1, -1, 2) - 1/350 z DATA(2, -1, 2) + + 2 2 + + 1/700 z DATA(-1, -1, 2) - 1/350 z DATA(2, 2, 1) + + 2 2 + - 1/175 z DATA(-2, 2, -2) + 1/350 z DATA(2, 1, -2) + + 2 2 + + 1/700 z DATA(1, 1, -2) - 1/700 z DATA(-1, 1, -2) + + 2 2 + - 1/350 z DATA(-2, 1, -2) + 1/700 z DATA(-1, 2, 1) + + 2 2 + - 1/1400 z DATA(1, 1, -1) + 1/1400 z DATA(-1, 1, 1) + + 2 2 + + 1/1400 z DATA(1, -1, 1) - 1/1400 z DATA(-1, -1, 1) + + 2 2 + + 1/350 z DATA(-1, -2, 2) - 1/350 z DATA(1, -2, 2) + + 2 2 + + 1/350 z DATA(-2, -1, 2) - 1/175 z DATA(2, -2, 2) + + 2 2 + - 1/350 z DATA(-2, 1, 2) - 1/1400 z DATA(1, 1, 1) + + 2 2 + - 1/175 z DATA(-2, 2, 2) - 1/1400 z DATA(-1, -1, -1) + + 2 2 + - 1/700 z DATA(1, 2, -1) - 1/100 x DATA(1, 1, -1) + + 2 2 + - 1/100 y DATA(1, 1, -1) + 1/100 y DATA(-1, 1, 1) + + 2 2 + + 1/100 y DATA(1, -1, 1) - 1/100 y DATA(-1, -1, 1) + + 2 2 + + 1/200 y DATA(-1, -2, 2) - 1/200 y DATA(1, -2, 2) + + 2 2 + - 1/50 y DATA(-2, -1, 2) - 1/100 y DATA(2, -2, 2) + + 2 2 + + 1/50 y DATA(-2, 1, 2) - 1/100 y DATA(1, 1, 1) + + 2 2 + - 1/100 y DATA(-2, 2, 2) - 1/100 y DATA(-1, -1, -1) + + 2 2 + + 1/200 y DATA(1, 2, -1) - 1/50 y DATA(2, 1, -1) + + 2 2 + - 1/200 y DATA(-1, 2, -1) + 1/50 y DATA(2, -1, -1) + + 2 2 2 + - 1/50 y DATA(2, 1, 1) - 1/200 y DATA(-1, 2, 1) + 1/200 y DATA(1, 2, 1) + + 2 2 + + 1/50 y DATA(2, -1, 1) + 1/100 y DATA(1, -1, -1) + + 2 2 + + 1/100 y DATA(2, 2, -1) + 1/200 y DATA(1, 2, 2) + + 2 2 + - 1/50 y DATA(-2, -1, -2) + 1/100 y DATA(2, 2, 2) + + 2 2 + - 1/100 y DATA(2, -2, -2) + 1/100 y DATA(-1, 1, -1) + + 2 2 + - 1/200 y DATA(1, -2, -2) - 1/50 y DATA(2, 1, 2) + + 2 2 + - 1/200 y DATA(-1, 2, 2) + 1/200 y DATA(-1, -2, -2) + + 2 2 + + 1/100 y DATA(-1, 1, 2) + 1/100 y DATA(-2, -2, -2) + + 2 2 + + 1/100 y DATA(1, -1, 2) + 1/50 y DATA(2, -1, 2) + + 2 2 + - 1/100 y DATA(-1, -1, 2) + 1/100 y DATA(2, 2, 1) + + 2 2 + - 1/100 y DATA(-2, 2, -2) - 1/50 y DATA(2, 1, -2) + + 2 2 + - 1/100 y DATA(1, 1, -2) + 1/100 y DATA(-1, 1, -2) + + - 1/350 y z DATA(1, 1, 2) + 1/350 y z DATA(1, -2, 1) + + + 4/245 x y DATA(-2, 2, -1) + 4/245 x y DATA(-2, -2, 1) + + 167 + - 1/350 y z DATA(-1, -2, 1) + ---- DATA(-2, -1, 1) + 7000 + + 2 + - 2/245 x y DATA(-1, 2, -2) + 1/100 x DATA(-2, -2, -2) + + 2 2 + + 1/100 x DATA(1, -1, 2) - 1/200 x DATA(2, -1, 2) + + 2 2 + - 1/100 x DATA(-1, -1, 2) + 1/100 x DATA(2, 2, 1) + + 2 2 + - 1/100 x DATA(-2, 2, -2) + 1/200 x DATA(2, 1, -2) + + 2 2 + - 1/100 x DATA(1, 1, -2) + 1/100 x DATA(-1, 1, -2) + + 2 2 + - 1/200 x DATA(-2, 1, -2) - 1/200 x DATA(2, -1, -2) + + 2 2 + + 1/100 x DATA(1, -1, -2) - 1/100 x DATA(-1, -1, -2) + + 2 2 + - 1/100 x DATA(2, -2, -1) + 1/50 x DATA(1, -2, -1) + + 2 2 + + 1/50 x DATA(1, -2, 2) + 1/100 x DATA(-1, 1, 1) + + 2 2 + + 1/100 x DATA(1, -1, 1) - 1/100 x DATA(-1, -1, 1) + + 2 2 + - 1/50 x DATA(-1, -2, 2) + 1/200 x DATA(-2, -1, 2) + + 2 2 + - 1/100 x DATA(2, -2, 2) - 1/200 x DATA(-2, 1, 2) + + 2 2 + - 1/100 x DATA(1, 1, 1) - 1/100 x DATA(-2, 2, 2) + + 2 2 + - 1/100 x DATA(-1, -1, -1) - 1/50 x DATA(1, 2, -1) + + 2 2 + + 1/200 x DATA(2, 1, -1) + 1/50 x DATA(-1, 2, -1) + + 2 2 + - 1/200 x DATA(2, -1, -1) + 1/200 x DATA(2, 1, 1) + + 2 2 2 + + 1/50 x DATA(-1, 2, 1) - 1/50 x DATA(1, 2, 1) - 1/200 x DATA(2, -1, 1) + + 2 2 + + 1/100 x DATA(1, -1, -1) + 1/100 x DATA(2, 2, -1) + + 2 2 + - 1/50 x DATA(1, 2, 2) + 1/200 x DATA(-2, -1, -2) + + 2 2 + + 1/100 x DATA(2, 2, 2) - 1/100 x DATA(2, -2, -2) + + 2 2 + + 1/100 x DATA(-1, 1, -1) + 1/50 x DATA(1, -2, -2) + + 2 2 + + 1/200 x DATA(2, 1, 2) + 1/50 x DATA(-1, 2, 2) + + 2 2 + - 1/50 x DATA(-1, -2, -2) + 1/100 x DATA(-1, 1, 2) + + 2 2 + - 1/50 x DATA(-1, -2, -1) + 1/100 x DATA(-2, -2, -1) + + 2 2 + + 1/100 x DATA(2, 2, -2) - 1/50 x DATA(1, 2, -2) + + 2 2 + + 1/50 x DATA(-1, 2, -2) - 1/200 x DATA(-2, 1, -1) + + 2 2 + + 1/200 x DATA(-2, -1, -1) - 1/100 x DATA(-2, 2, -1) + + 2 2 + + 1/100 x DATA(-2, -2, 1) - 1/50 x DATA(-1, -2, 1) + + 2 2 + + 1/50 x DATA(1, -2, 1) - 1/100 x DATA(1, 1, 2) + + 2 2 + - 1/100 x DATA(2, -2, 1) + 1/200 x DATA(-2, -1, 1) + + 2 2 + - 1/200 x DATA(-2, 1, 1) - 1/100 x DATA(-2, 2, 1) + + 2 + + 1/100 x DATA(-2, -2, 2) + 1/175 y z DATA(-2, -1, 2) + + + 1/350 x DATA(-1, -1, 1) + 1/175 x DATA(-1, -2, 2) + + + 1/175 x DATA(1, -2, 2) - 1/175 x DATA(-2, -1, 2) + + - 2/175 x DATA(2, -2, 2) + 1/175 x DATA(-2, 1, 2) - 1/350 x DATA(1, 1, 1) + + + 2/175 x DATA(-2, 2, 2) + 1/350 x DATA(-1, -1, -1) + + - 1/175 x DATA(1, 2, -1) + 1/175 x DATA(2, 1, -1) + + - 1/175 x DATA(-1, 2, -1) - 1/175 x DATA(2, -1, -1) + + + 1/175 x DATA(2, 1, 1) - 1/175 x DATA(-1, 2, 1) - 1/175 x DATA(1, 2, 1) + + - 1/175 x DATA(2, -1, 1) + 1/350 x DATA(1, -1, -1) + + + 2/175 x DATA(2, 2, -1) - 1/175 x DATA(1, 2, 2) + + - 1/175 x DATA(-2, -1, -2) + 1/350 x DATA(1, -1, 1) + + - 2/175 x DATA(2, -2, -1) + 1/175 x DATA(1, -2, -1) + + + 1/175 x DATA(-1, -2, -1) - 2/175 x DATA(-2, -2, -1) + + + 2/175 x DATA(2, 2, -2) - 1/175 x DATA(1, 2, -2) + + - 1/175 x DATA(-1, 2, -2) + 1/175 x DATA(-2, 1, -1) + + - 1/175 x DATA(-2, -1, -1) + 2/175 x DATA(-2, 2, -1) + + - 2/175 x DATA(-2, -2, 1) + 1/175 x DATA(-1, -2, 1) + + + 1/175 x DATA(1, -2, 1) - 1/350 x DATA(1, 1, 2) - 2/175 x DATA(2, -2, 1) + + - 1/350 x DATA(1, 1, -1) - 1/350 x DATA(-1, 1, 1) + 2/175 x DATA(2, 2, 2) + + - 2/175 x DATA(2, -2, -2) - 1/350 x DATA(-1, 1, -1) + + + 1/175 x DATA(1, -2, -2) + 1/175 x DATA(2, 1, 2) - 1/175 x DATA(-1, 2, 2) + + + 1/175 x DATA(-1, -2, -2) - 1/350 x DATA(-1, 1, 2) + + - 2/175 x DATA(-2, -2, -2) + 1/350 x DATA(1, -1, 2) + + - 1/175 x DATA(2, -1, 2) + 1/350 x DATA(-1, -1, 2) + 2/175 x DATA(2, 2, 1) + + + 2/175 x DATA(-2, 2, -2) + 1/175 x DATA(2, 1, -2) + + - 1/350 x DATA(1, 1, -2) - 1/350 x DATA(-1, 1, -2) + + + 1/175 x DATA(-2, 1, -2) - 1/175 x DATA(2, -1, -2) + + + 1/350 x DATA(1, -1, -2) + 1/350 x DATA(-1, -1, -2) + + - 1/175 x DATA(-2, -1, 1) + 1/175 x DATA(-2, 1, 1) + + + 2/175 x DATA(-2, 2, 1) - 2/175 x DATA(-2, -2, 2) + + - 1/1000 z DATA(1, 1, -1) - 1/1000 z DATA(-1, 1, 1) + + - 2/175 y DATA(-2, 2, -1) - 1/350 y DATA(1, 1, -1) + + + 1/350 y DATA(-1, 1, 1) - 1/350 y DATA(1, -1, 1) + + + 1/350 y DATA(-1, -1, 1) - 1/175 y DATA(-1, -2, 2) + + + 1/175 y DATA(1, -2, 2) + 1/175 y DATA(-2, -1, 2) + + + 2/175 y DATA(2, -2, 2) + 1/175 y DATA(-2, 1, 2) - 1/350 y DATA(1, 1, 1) + + - 2/175 y DATA(-2, 2, 2) + 1/350 y DATA(-1, -1, -1) + + + 1/175 y DATA(1, 2, -1) - 1/175 y DATA(2, 1, -1) + + - 1/175 y DATA(-1, 2, -1) - 1/175 y DATA(2, -1, -1) + + - 1/175 y DATA(2, 1, 1) - 1/175 y DATA(-1, 2, 1) + 1/175 y DATA(1, 2, 1) + + - 1/175 y DATA(2, -1, 1) - 1/350 y DATA(1, -1, -1) + + + 2/175 y DATA(2, 2, -1) + 1/175 y DATA(1, 2, 2) + + + 1/175 y DATA(-2, -1, -2) + 2/175 y DATA(2, 2, 2) + + + 2/175 y DATA(2, -2, -2) + 1/350 y DATA(-1, 1, -1) + + + 1/175 y DATA(1, -2, -2) - 1/175 y DATA(2, 1, 2) - 1/175 y DATA(-1, 2, 2) + + - 1/175 y DATA(-1, -2, -2) + 1/350 y DATA(-1, 1, 2) + + 2 + - 2/175 y DATA(-2, -2, -2) - 1/350 z DATA(2, -1, -2) + + 2 2 + - 1/700 z DATA(1, -1, -2) + 1/700 z DATA(-1, -1, -2) + + 2 2 + + 1/350 z DATA(2, -2, -1) + 1/700 z DATA(1, -2, -1) + + 2 2 + - 1/700 z DATA(-1, -2, -1) - 1/350 z DATA(-2, -2, -1) + + 2 2 + + 1/175 z DATA(2, 2, -2) + 1/350 z DATA(1, 2, -2) + + 2 2 + - 1/350 z DATA(-1, 2, -2) + 1/700 z DATA(-2, 1, -1) + + 2 2 + - 1/700 z DATA(-2, -1, -1) + 1/350 z DATA(-2, 2, -1) + + 2 2 + - 1/350 z DATA(-2, -2, 1) - 1/700 z DATA(-1, -2, 1) + + 2 2 + + 1/700 z DATA(1, -2, 1) + 1/700 z DATA(1, 1, 2) + + 2 2 + + 1/350 z DATA(2, -2, 1) - 1/700 z DATA(-2, -1, 1) + + 2 2 + + 1/700 z DATA(-2, 1, 1) + 1/350 z DATA(-2, 2, 1) + + 2 2 + + 1/175 z DATA(-2, -2, 2) - 1/700 z DATA(2, 1, -1) + + 2 2 + + 1/700 z DATA(-1, 2, -1) + 1/700 z DATA(2, -1, -1) + + - 1/350 y DATA(1, -1, 2) - 1/175 y DATA(2, -1, 2) + + + 1/350 y DATA(-1, -1, 2) + 2/175 y DATA(2, 2, 1) + + - 2/175 y DATA(-2, 2, -2) - 1/175 y DATA(2, 1, -2) + + - 1/350 y DATA(1, 1, -2) + 1/350 y DATA(-1, 1, -2) + + + 1/175 y DATA(-2, 1, -2) - 1/175 y DATA(2, -1, -2) + + - 1/350 y DATA(1, -1, -2) + 1/350 y DATA(-1, -1, -2) + + + 2/175 y DATA(2, -2, -1) + 1/175 y DATA(1, -2, -1) + + - 1/175 y DATA(-1, -2, -1) - 2/175 y DATA(-2, -2, -1) + + + 2/175 y DATA(2, 2, -2) + 1/175 y DATA(1, 2, -2) + + - 1/175 y DATA(-1, 2, -2) + 1/175 y DATA(-2, 1, -1) + + + 1/175 y DATA(-2, -1, -1) - 2/175 y DATA(-2, -2, 1) + + - 1/175 y DATA(-1, -2, 1) + 1/175 y DATA(1, -2, 1) - 1/350 y DATA(1, 1, 2) + + + 2/175 y DATA(2, -2, 1) + 1/175 y DATA(-2, -1, 1) + + + 1/175 y DATA(-2, 1, 1) - 2/175 y DATA(-2, 2, 1) + + - 2/175 y DATA(-2, -2, 2) - 1/250 z DATA(-1, 2, 2) + + - 1/500 z DATA(-1, 1, 2) - 1/125 z DATA(-2, -2, -2) + + - 1/500 z DATA(1, -1, 2) - 1/250 z DATA(2, -1, 2) + + + 1/500 z DATA(-1, -1, 2) + 1/250 z DATA(2, 2, 1) + + + 1/125 z DATA(-2, 2, -2) - 1/250 z DATA(2, 1, -2) + + - 1/500 z DATA(1, 1, -2) + 1/500 z DATA(-1, 1, -2) + + + 1/250 z DATA(-2, 1, -2) + 1/250 z DATA(2, -1, -2) + + + 1/500 z DATA(1, -1, -2) - 1/500 z DATA(-1, -1, -2) + + + 1/250 z DATA(2, -2, -1) + 1/500 z DATA(1, -2, -1) + + - 1/500 z DATA(-1, -2, -1) - 1/250 z DATA(-2, -2, -1) + + - 1/125 z DATA(2, 2, -2) - 1/250 z DATA(1, 2, -2) + + + 1/250 z DATA(-1, 2, -2) + 1/500 z DATA(-2, 1, -1) + + - 1/500 z DATA(-2, -1, -1) + 1/250 z DATA(-2, 2, -1) + + + 1/250 z DATA(-2, -2, 1) + 1/500 z DATA(-1, -2, 1) + + - 1/500 z DATA(1, -2, 1) + 1/500 z DATA(1, 1, 2) - 1/250 z DATA(2, -2, 1) + + + 1/500 z DATA(-2, -1, 1) - 1/500 z DATA(-2, 1, 1) + + - 1/250 z DATA(-2, 2, 1) + 1/125 z DATA(-2, -2, 2) + + 2 + - 1/250 z DATA(-1, -2, -2) + 1/50 y DATA(-2, 1, -2) + + 2 2 + + 1/50 y DATA(2, -1, -2) + 1/100 y DATA(1, -1, -2) + + 2 2 + - 1/100 y DATA(-1, -1, -2) - 1/100 y DATA(2, -2, -1) + + 2 2 + - 1/200 y DATA(1, -2, -1) + 1/200 y DATA(-1, -2, -1) + + 2 2 + + 1/100 y DATA(-2, -2, -1) + 1/100 y DATA(2, 2, -2) + + 2 2 + + 1/200 y DATA(1, 2, -2) - 1/200 y DATA(-1, 2, -2) + + 2 2 + + 1/50 y DATA(-2, 1, -1) - 1/50 y DATA(-2, -1, -1) + + 2 2 + - 1/100 y DATA(-2, 2, -1) + 1/100 y DATA(-2, -2, 1) + + 2 2 + + 1/200 y DATA(-1, -2, 1) - 1/200 y DATA(1, -2, 1) + + 2 2 + - 1/100 y DATA(1, 1, 2) - 1/100 y DATA(2, -2, 1) + + 2 2 + - 1/50 y DATA(-2, -1, 1) + 1/50 y DATA(-2, 1, 1) + + 2 2 + - 1/100 y DATA(-2, 2, 1) + 1/100 y DATA(-2, -2, 2) + + - 1/1000 z DATA(1, -1, 1) + 1/1000 z DATA(-1, -1, 1) + + + 1/250 z DATA(-1, -2, 2) - 1/250 z DATA(1, -2, 2) + + + 1/250 z DATA(-2, -1, 2) - 1/125 z DATA(2, -2, 2) + + - 1/250 z DATA(-2, 1, 2) + 1/1000 z DATA(1, 1, 1) - 1/125 z DATA(-2, 2, 2) + + - 1/1000 z DATA(-1, -1, -1) - 1/500 z DATA(1, 2, -1) + + - 1/500 z DATA(2, 1, -1) + 1/500 z DATA(-1, 2, -1) + + + 1/500 z DATA(2, -1, -1) + 1/500 z DATA(2, 1, 1) - 1/500 z DATA(-1, 2, 1) + + + 1/500 z DATA(1, 2, 1) - 1/500 z DATA(2, -1, 1) + + + 1/1000 z DATA(1, -1, -1) - 1/250 z DATA(2, 2, -1) + + + 1/250 z DATA(1, 2, 2) - 1/250 z DATA(-2, -1, -2) + 1/125 z DATA(2, 2, 2) + + + 1/125 z DATA(2, -2, -2) + 1/1000 z DATA(-1, 1, -1) + + + 1/250 z DATA(1, -2, -2) + 1/250 z DATA(2, 1, 2) + + - 1/175 y z DATA(2, 1, 2) - 1/700 y z DATA(-1, 1, -1) + + - 2/175 y z DATA(2, -2, -2) + 1/350 y z DATA(1, 1, -2) + + - 1/350 y z DATA(-1, 1, -2) - 1/175 y z DATA(-2, -1, -2) + + + 2/175 y z DATA(2, 2, 2) + 1/700 y z DATA(1, -1, -1) + + - 1/175 y z DATA(2, 2, -1) + 1/175 y z DATA(1, 2, 2) + + + 1/350 y z DATA(1, 2, 1) - 1/350 y z DATA(2, -1, 1) + + + 1/350 y z DATA(2, -1, -1) - 1/350 y z DATA(2, 1, 1) + + - 1/350 y z DATA(-1, 2, 1) + 1/350 y z DATA(2, 1, -1) + + - 1/700 y z DATA(-1, -1, -1) - 1/350 y z DATA(1, 2, -1) + + - 2/175 y z DATA(-2, 2, 2) + 1/700 y z DATA(1, 1, -1) + + + 1/175 y z DATA(-2, 1, 2) + 1/245 x y DATA(1, 1, -1) + + + 2/175 y z DATA(2, -2, 2) + 1/175 y z DATA(1, -2, 2) + + - 1/175 y z DATA(-1, -2, 2) - 1/175 y z DATA(1, -2, -2) + + - 1/175 y z DATA(2, -1, 2) + 2/175 y z DATA(-2, -2, -2) + + + 1/700 y z DATA(-1, -1, 1) - 1/350 y z DATA(1, -1, 2) + + + 1/175 y z DATA(-1, -2, -2) + 1/350 y z DATA(-1, 1, 2) + + - 1/700 y z DATA(1, -1, 1) + 1/700 y z DATA(-1, 1, 1) + + - 1/175 y z DATA(-1, 2, 2) - 1/175 y z DATA(-2, 1, -2) + + 2 + - 1/700 z DATA(2, 1, 1) - 2/245 x y DATA(-2, 1, -1) + + + 1/175 y z DATA(2, -1, -2) - 1/700 y z DATA(1, 1, 1) + + + 4/245 x y DATA(2, 2, -2) - 2/245 x y DATA(1, 2, -2) + + + 4/245 x y DATA(-2, -2, -1) + 1/245 x y DATA(1, -1, -2) + + + 1/245 x y DATA(-1, -1, -2) + 4/245 x y DATA(2, -2, -1) + + - 2/245 x y DATA(1, -2, -1) - 2/245 x y DATA(-1, -2, -1) + + - 2/245 x y DATA(-2, 1, -2) - 2/245 x y DATA(2, -1, -2) + + + 1/245 x y DATA(1, 1, -2) + 1/245 x y DATA(-1, 1, -2) + + + 4/245 x y DATA(-2, 2, -2) - 2/245 x y DATA(2, 1, -2) + + + 1/245 x y DATA(1, -1, 2) - 2/245 x y DATA(2, -1, 2) + + + 1/245 x y DATA(-1, -1, 2) + 4/245 x y DATA(2, 2, 1) + + 167 + - ---- DATA(-2, 1, 1) - 2/245 x y DATA(-1, -2, -2) + 7000 + + + 1/245 x y DATA(-1, 1, 2) + 4/245 x y DATA(-2, -2, -2) + + + 1/245 x y DATA(-1, 1, -1) - 2/245 x y DATA(1, -2, -2) + + 47 + - 2/245 x y DATA(2, 1, 2) - 2/245 x y DATA(-1, 2, 2) + ---- DATA(-2, 2, 1) + 5250 + + + 4/245 x y DATA(2, 2, 2) + 4/245 x y DATA(2, -2, -2) + + + 1/245 x y DATA(1, -1, -1) + 4/245 x y DATA(2, 2, -1) + + - 2/245 x y DATA(1, 2, 2) - 2/245 x y DATA(-2, -1, -2) + + - 2/245 x y DATA(1, 2, 1) - 2/245 x y DATA(2, -1, 1) + + 137 2 + - 2/245 x y DATA(-1, 2, 1) - ---- DATA(-2, -2, 2) + 1/350 z DATA(1, 2, 2) + 5250 + + - 2/245 x y DATA(2, -1, -1) - 2/245 x y DATA(-1, 2, -1) + + - 2/245 x y DATA(2, 1, -1) - 2/245 x y DATA(1, 2, -1) + + + 1/245 x y DATA(-1, -1, -1) + 4/245 x y DATA(-2, 2, 2) + + + 1/245 x y DATA(1, 1, 1) - 2/245 x y DATA(-2, 1, 2) + + + 4/245 x y DATA(2, -2, 2) - 2/245 x y DATA(-2, -1, 2) + + - 2/245 x y DATA(1, -2, 2) - 2/245 x y DATA(-1, -2, 2) + + + 1/245 x y DATA(-1, -1, 1) + 1/245 x y DATA(1, -1, 1) + + + 1/245 x y DATA(-1, 1, 1) - 2/245 x y DATA(-1, 2, 0) + + - 2/245 x y DATA(2, 1, 1) + +> coeff_as_lc_of_data(%, posn_list_3d_size5); +bytes used=2059410700, alloc=15136044, time=311.93 +bytes used=2060411304, alloc=15136044, time=312.01 +bytes used=2061428916, alloc=15136044, time=312.09 +bytes used=2062468356, alloc=15136044, time=312.18 +bytes used=2063556168, alloc=15136044, time=312.26 +bytes used=2064556584, alloc=15136044, time=312.34 +bytes used=2065556728, alloc=15136044, time=312.42 +bytes used=2066556940, alloc=15136044, time=312.51 +bytes used=2067557188, alloc=15136044, time=312.59 +bytes used=2068623016, alloc=15136044, time=312.68 +bytes used=2069623364, alloc=15136044, time=312.77 +bytes used=2070646496, alloc=15136044, time=312.87 +bytes used=2071646992, alloc=15136044, time=312.95 +bytes used=2072647320, alloc=15136044, time=313.05 +bytes used=2073647520, alloc=15136044, time=313.14 +bytes used=2074648644, alloc=15136044, time=313.24 +bytes used=2075681812, alloc=15136044, time=313.34 +bytes used=2076687548, alloc=15136044, time=313.43 +bytes used=2077688004, alloc=15136044, time=313.53 +bytes used=2078688376, alloc=15136044, time=313.63 +bytes used=2079688728, alloc=15136044, time=313.73 +bytes used=2080689036, alloc=15136044, time=313.84 +bytes used=2081696192, alloc=15136044, time=313.95 +bytes used=2082717856, alloc=15136044, time=314.03 +bytes used=2083722468, alloc=15136044, time=314.11 +bytes used=2084727032, alloc=15136044, time=314.18 + 2 2 137 +[COEFF(-2, -2, -2) = 1/100 y - 2/175 y + 1/175 z - 1/125 z - ---- + 2/175 y z + 5250 + + 2 2 + + 2/175 x z + 4/245 x y - 2/175 x + 1/100 x , COEFF(-1, -2, -2) = 1/200 y + + 2 2 + - 1/250 z - 1/175 y - 1/175 x z + 1/175 x - 1/50 x - 2/245 x y + 1/350 z + + 107 + + ---- + 1/175 y z, COEFF(0, -2, -2) = - 4/245 x y + 2/175 x - 2/175 x z, + 7000 + + 2 2 2 + COEFF(1, -2, -2) = - 1/175 y z - 1/350 z + 1/50 x - 2/245 x y - 1/200 y + + 107 + + 1/175 y - ---- + 1/175 x + 1/250 z - 1/175 x z, COEFF(2, -2, -2) = + 7000 + + 137 2 2 + - 2/175 x + 2/175 y + ---- - 1/175 z + 2/175 x z + 4/245 x y - 1/100 y + 5250 + + 2 107 2 + - 2/175 y z - 1/100 x + 1/125 z, COEFF(-2, -1, -2) = ---- + 1/350 z + 7000 + + 2 2 + + 1/175 y - 2/245 x y - 1/50 y - 1/175 x + 1/175 x z + 1/200 x - 1/250 z + + 2 2 + - 1/175 y z, COEFF(-1, -1, -2) = - 1/100 y + 1/700 z - 1/500 z + + 2 229 + - 1/350 y z + 1/350 y - 1/100 x + 1/350 x - 1/350 x z + 1/245 x y + ----- + 10500 + + , COEFF(0, -1, -2) = 2/245 x y - 1/175 x z + 1/175 x, COEFF(1, -1, -2) = + + 229 2 2 + 1/350 x - ----- - 1/350 y + 1/350 y z + 1/100 y + 1/500 z - 1/700 z + 10500 + + 2 2 + + 1/100 x + 1/245 x y - 1/350 x z, COEFF(2, -1, -2) = - 1/350 z + + 107 2 + - 2/245 x y - ---- + 1/250 z - 1/175 x + 1/50 y + 1/175 x z - 1/175 y + 7000 + + 2 + + 1/175 y z - 1/200 x , + + COEFF(-2, 0, -2) = - 4/245 x y - 2/175 y z + 2/175 y, + + COEFF(-1, 0, -2) = - 1/175 y z + 2/245 x y + 1/175 y, + + COEFF(0, 0, -2) = 4/245 x y, + + COEFF(1, 0, -2) = 2/245 x y + 1/175 y z - 1/175 y, + + COEFF(2, 0, -2) = - 2/175 y + 2/175 y z - 4/245 x y, COEFF(-2, 1, -2) = + + 2 2 + - 2/245 x y - 1/350 z - 1/175 x z - 1/175 y z + 1/175 y + 1/50 y + + 2 107 + - 1/200 x + 1/175 x + 1/250 z - ----, COEFF(-1, 1, -2) = 1/245 x y + 7000 + + 229 2 2 + - 1/350 y z + 1/350 x z - 1/350 x - ----- + 1/350 y - 1/700 z + 1/100 x + 10500 + + 2 + + 1/100 y + 1/500 z, COEFF(0, 1, -2) = - 1/175 x + 1/175 x z + 2/245 x y, + + 2 229 2 + COEFF(1, 1, -2) = - 1/500 z - 1/100 y + ----- + 1/700 z - 1/350 x + 10500 + + 2 + + 1/350 x z - 1/100 x + 1/245 x y - 1/350 y + 1/350 y z, COEFF(2, 1, -2) + + 2 2 + = 1/200 x - 1/175 y - 1/250 z + 1/350 z + 1/175 y z - 2/245 x y + + 2 107 + + 1/175 x - 1/50 y + ---- - 1/175 x z, COEFF(-2, 2, -2) = - 2/175 y + 7000 + + 2 2 2 137 + - 1/175 z - 1/100 y - 1/100 x - 2/175 x z + 4/245 x y + ---- + 1/125 z + 5250 + + 2 + + 2/175 x + 2/175 y z, COEFF(-1, 2, -2) = - 1/175 x - 1/200 y - 2/245 x y + + 2 2 107 + + 1/175 x z - 1/175 y + 1/175 y z + 1/50 x + 1/250 z - 1/350 z - ----, + 7000 + + COEFF(0, 2, -2) = - 4/245 x y - 2/175 x + 2/175 x z, COEFF(1, 2, -2) = + + 2 2 107 + - 1/250 z + 1/350 z - 1/175 x + 1/200 y - 1/175 y z + 1/175 y + ---- + 7000 + + 2 2 + - 2/245 x y + 1/175 x z - 1/50 x , COEFF(2, 2, -2) = 1/100 x - 2/175 y z + + 137 2 + + 2/175 y - 2/175 x z + 2/175 x - ---- + 1/100 y + 4/245 x y - 1/125 z + 5250 + + 2 2 47 + + 1/175 z , COEFF(-2, -2, -1) = 1/175 x z - 1/350 z - ---- + 1/175 y z + 5250 + + 2 2 + + 1/100 x - 2/175 y + 1/100 y - 2/175 x + 4/245 x y - 1/250 z, + + 2 2 + COEFF(-1, -2, -1) = - 2/245 x y - 1/500 z - 1/350 x z - 1/700 z - 1/50 x + + 167 2 + + 1/175 x + ---- + 1/350 y z + 1/200 y - 1/175 y, + 7000 + + COEFF(0, -2, -1) = 2/175 x - 4/245 x y - 1/175 x z, COEFF(1, -2, -1) = + + 2 2 167 + - 1/350 y z - 1/200 y + 1/50 x - ---- + 1/175 y - 1/350 x z + 1/500 z + 7000 + + 2 2 + + 1/175 x - 2/245 x y + 1/700 z , COEFF(2, -2, -1) = - 1/100 y + + 2 2 47 + + 4/245 x y + 1/350 z + 1/250 z + 2/175 y - 2/175 x - 1/100 x + ---- + 5250 + + 167 + + 1/175 x z - 1/175 y z, COEFF(-2, -1, -1) = 1/175 y + ---- + 1/350 x z + 7000 + + 2 2 2 + - 2/245 x y - 1/50 y - 1/500 z - 1/350 y z + 1/200 x - 1/700 z + + 2 2 + - 1/175 x, COEFF(-1, -1, -1) = 1/350 x + 1/245 x y - 1/100 y - 1/1400 z + + 137 2 + + 1/350 y - 1/700 x z - 1/700 y z + ---- - 1/100 x - 1/1000 z, + 5250 + + COEFF(0, -1, -1) = - 1/350 x z + 1/175 x + 2/245 x y, COEFF(1, -1, -1) = + + 2 2 + - 1/350 y + 1/100 x - 1/700 x z + 1/350 x + 1/100 y + 1/1000 z + + 2 137 + + 1/1400 z + 1/245 x y - ---- + 1/700 y z, COEFF(2, -1, -1) = 1/350 y z + 5250 + + 2 2 + - 1/200 x + 1/350 x z - 2/245 x y + 1/500 z + 1/700 z - 1/175 y + + 2 167 + + 1/50 y - 1/175 x - ----, + 7000 + + COEFF(-2, 0, -1) = 2/175 y - 1/175 y z - 4/245 x y, + + COEFF(-1, 0, -1) = 2/245 x y + 1/175 y - 1/350 y z, + + COEFF(0, 0, -1) = 4/245 x y, + + COEFF(1, 0, -1) = 2/245 x y + 1/350 y z - 1/175 y, + + COEFF(2, 0, -1) = - 2/175 y - 4/245 x y + 1/175 y z, COEFF(-2, 1, -1) = + + 167 2 2 + 1/500 z - ---- - 1/350 y z + 1/700 z - 1/350 x z + 1/175 x + 1/50 y + 7000 + + 2 2 137 + - 1/200 x - 2/245 x y + 1/175 y, COEFF(-1, 1, -1) = 1/100 x - ---- + 5250 + + 2 + + 1/1400 z + 1/1000 z + 1/700 x z - 1/350 x + 1/245 x y + 1/350 y + + 2 + + 1/100 y - 1/700 y z, COEFF(0, 1, -1) = 1/350 x z + 2/245 x y - 1/175 x, + + 137 2 + COEFF(1, 1, -1) = ---- - 1/350 x + 1/245 x y - 1/1400 z - 1/350 y + 5250 + + 2 2 + - 1/100 x - 1/100 y - 1/1000 z + 1/700 x z + 1/700 y z, COEFF(2, 1, -1) + + 2 2 2 + = - 2/245 x y - 1/350 x z - 1/175 y - 1/700 z + 1/200 x - 1/50 y + + 167 + + 1/175 x + 1/350 y z - 1/500 z + ----, COEFF(-2, 2, -1) = 1/250 z + 7000 + + 2 2 2 + - 1/100 x + 1/350 z - 1/175 x z - 1/100 y + 4/245 x y - 2/175 y + + 47 + + 2/175 x + 1/175 y z + ----, COEFF(-1, 2, -1) = 1/350 y z + 1/500 z + 5250 + + 2 167 2 2 + - 1/200 y + 1/350 x z - 1/175 x - 2/245 x y - ---- + 1/50 x + 1/700 z + 7000 + + - 1/175 y, COEFF(0, 2, -1) = - 2/175 x + 1/175 x z - 4/245 x y, + + 2 167 2 + COEFF(1, 2, -1) = - 1/50 x + 1/175 y - 1/175 x + ---- - 1/700 z - 1/500 z + 7000 + + 2 + - 2/245 x y + 1/200 y - 1/350 y z + 1/350 x z, COEFF(2, 2, -1) = + + 47 2 2 2 + 4/245 x y - ---- - 1/175 y z + 1/100 x - 1/350 z + 2/175 x + 1/100 y + 5250 + + - 1/175 x z + 2/175 y - 1/250 z, COEFF(-2, -2, 0) = + + 2 17 2 2 + - 2/175 x + 1/100 y - 2/175 y - ---- + 4/245 x y + 1/100 x - 1/175 z , + 5250 + + COEFF(-1, -2, 0) = + + 2 2 2 187 + - 1/350 z - 1/175 y + 1/200 y - 2/245 x y - 1/50 x + 1/175 x + ----, + 7000 + + COEFF(0, -2, 0) = - 4/245 x y + 2/175 x, COEFF(1, -2, 0) = + + 187 2 2 2 + - 2/245 x y + 1/175 y - ---- + 1/50 x + 1/175 x - 1/200 y + 1/350 z , + 7000 + + COEFF(2, -2, 0) = + + 17 2 2 2 + ---- + 1/175 z - 2/175 x - 1/100 x - 1/100 y + 2/175 y + 4/245 x y, + 5250 + + COEFF(-2, -1, 0) = + + 187 2 2 2 + ---- - 1/350 z + 1/200 x - 1/50 y + 1/175 y - 1/175 x - 2/245 x y, + 7000 + + COEFF(-1, -1, 0) = + + 289 2 2 2 + 1/350 x + ----- + 1/245 x y - 1/100 y + 1/350 y - 1/700 z - 1/100 x , + 10500 + + COEFF(0, -1, 0) = 1/175 x + 2/245 x y, COEFF(1, -1, 0) = + + 2 2 289 2 + 1/100 x - 1/350 y + 1/100 y - ----- + 1/245 x y + 1/700 z + 1/350 x, + 10500 + + COEFF(2, -1, 0) = + + 2 187 2 2 + - 2/245 x y + 1/50 y - 1/175 x - 1/175 y - ---- + 1/350 z - 1/200 x , + 7000 + + COEFF(-2, 0, 0) = - 4/245 x y + 2/175 y, + + COEFF(-1, 0, 0) = 2/245 x y + 1/175 y, COEFF(0, 0, 0) = 4/245 x y, + + COEFF(1, 0, 0) = 2/245 x y - 1/175 y, + + COEFF(2, 0, 0) = - 2/175 y - 4/245 x y, COEFF(-2, 1, 0) = + + 187 2 2 2 + 1/175 y - 2/245 x y - ---- - 1/200 x + 1/350 z + 1/175 x + 1/50 y , + 7000 + + COEFF(-1, 1, 0) = + + 2 289 2 2 + 1/100 y + 1/350 y + 1/245 x y - ----- + 1/100 x - 1/350 x + 1/700 z , + 10500 + + COEFF(0, 1, 0) = 2/245 x y - 1/175 x, COEFF(1, 1, 0) = + + 2 2 2 289 + - 1/350 y - 1/700 z - 1/100 y - 1/100 x + ----- - 1/350 x + 1/245 x y, + 10500 + + COEFF(2, 1, 0) = + + 2 2 2 187 + - 1/50 y - 1/175 y + 1/175 x - 1/350 z + 1/200 x + ---- - 2/245 x y, + 7000 + + COEFF(-2, 2, 0) = + + 2 17 2 2 + - 1/100 x + ---- + 2/175 x + 4/245 x y - 1/100 y + 1/175 z - 2/175 y, + 5250 + + COEFF(-1, 2, 0) = + + 2 2 187 2 + 1/50 x - 2/245 x y - 1/175 x - 1/175 y - 1/200 y - ---- + 1/350 z , + 7000 + + COEFF(0, 2, 0) = - 2/175 x - 4/245 x y, COEFF(1, 2, 0) = + + 2 2 187 2 + 1/200 y - 1/350 z - 2/245 x y + ---- - 1/175 x - 1/50 x + 1/175 y, + 7000 + + COEFF(2, 2, 0) = + + 2 17 2 2 + 4/245 x y + 1/100 y - ---- + 2/175 x + 2/175 y - 1/175 z + 1/100 x , + 5250 + + 2 47 2 + COEFF(-2, -2, 1) = 1/100 x - ---- - 1/175 x z - 1/350 z - 1/175 y z + 5250 + + 2 + - 2/175 x + 1/100 y + 4/245 x y - 2/175 y + 1/250 z, COEFF(-1, -2, 1) = + + 2 2 167 + - 2/245 x y - 1/700 z - 1/350 y z + 1/200 y + 1/350 x z + 1/500 z + ---- + 7000 + + 2 + + 1/175 x - 1/175 y - 1/50 x , + + COEFF(0, -2, 1) = 2/175 x + 1/175 x z - 4/245 x y, COEFF(1, -2, 1) = + + 2 2 2 + - 2/245 x y + 1/50 x - 1/200 y - 1/500 z + 1/350 y z + 1/700 z + 1/175 y + + 167 2 2 + + 1/350 x z + 1/175 x - ----, COEFF(2, -2, 1) = - 1/100 y - 1/100 x + 7000 + + 47 + + 2/175 y + 4/245 x y - 1/250 z + ---- + 1/175 y z - 2/175 x - 1/175 x z + 5250 + + 2 2 2 + + 1/350 z , COEFF(-2, -1, 1) = 1/175 y + 1/200 x - 1/350 x z - 1/700 z + + 2 167 + - 1/175 x + 1/500 z - 1/50 y + ---- - 2/245 x y + 1/350 y z, + 7000 + + 2 137 + COEFF(-1, -1, 1) = 1/350 x - 1/100 y + ---- + 1/1000 z + 1/245 x y + 5250 + + 2 2 + - 1/1400 z + 1/700 y z + 1/350 y + 1/700 x z - 1/100 x , + + COEFF(0, -1, 1) = 2/245 x y + 1/175 x + 1/350 x z, COEFF(1, -1, 1) = + + 2 137 2 + 1/1400 z - 1/700 y z + 1/700 x z - ---- + 1/100 x - 1/1000 z + 1/350 x + 5250 + + 2 2 + + 1/245 x y + 1/100 y - 1/350 y, COEFF(2, -1, 1) = - 1/350 x z + 1/700 z + + 167 2 2 + - 1/175 x - 1/350 y z - 1/175 y - 1/500 z - ---- - 1/200 x + 1/50 y + 7000 + + - 2/245 x y, COEFF(-2, 0, 1) = 2/175 y + 1/175 y z - 4/245 x y, + + COEFF(-1, 0, 1) = 1/175 y + 2/245 x y + 1/350 y z, + + COEFF(0, 0, 1) = 4/245 x y, + + COEFF(1, 0, 1) = - 1/175 y + 2/245 x y - 1/350 y z, + + COEFF(2, 0, 1) = - 4/245 x y - 2/175 y - 1/175 y z, COEFF(-2, 1, 1) = + + 167 2 2 2 + 1/175 y - ---- + 1/50 y + 1/175 x + 1/700 z + 1/350 x z - 1/200 x + 7000 + + 2 + - 1/500 z + 1/350 y z - 2/245 x y, COEFF(-1, 1, 1) = 1/700 y z + 1/100 y + + 2 137 2 + + 1/100 x - 1/350 x - ---- - 1/700 x z + 1/245 x y + 1/1400 z - 1/1000 z + 5250 + + + 1/350 y, COEFF(0, 1, 1) = - 1/175 x - 1/350 x z + 2/245 x y, + + 2 + COEFF(1, 1, 1) = 1/245 x y - 1/350 x - 1/700 x z + 1/1000 z - 1/100 y + + 2 2 137 + - 1/700 y z - 1/100 x - 1/1400 z - 1/350 y + ----, COEFF(2, 1, 1) = + 5250 + + 2 167 + 1/500 z - 2/245 x y - 1/700 z - 1/175 y + 1/175 x + ---- + 1/350 x z + 7000 + + 2 2 47 2 + - 1/350 y z + 1/200 x - 1/50 y , COEFF(-2, 2, 1) = ---- - 1/100 x + 5250 + + 2 2 + - 1/250 z + 1/350 z + 2/175 x - 1/175 y z + 4/245 x y - 1/100 y + + 2 + + 1/175 x z - 2/175 y, COEFF(-1, 2, 1) = - 1/175 y + 1/50 x - 2/245 x y + + 2 2 167 + + 1/700 z - 1/500 z - 1/175 x - 1/200 y - ---- - 1/350 y z - 1/350 x z, + 7000 + + COEFF(0, 2, 1) = - 1/175 x z - 4/245 x y - 2/175 x, COEFF(1, 2, 1) = + + 167 + - 2/245 x y + 1/175 y - 1/350 x z + 1/350 y z + 1/500 z - 1/175 x + ---- + 7000 + + 2 2 2 + + 1/200 y - 1/50 x - 1/700 z , COEFF(2, 2, 1) = 1/175 x z + 2/175 y + + 47 2 2 + + 1/175 y z + 2/175 x + 1/250 z - ---- + 1/100 y + 4/245 x y + 1/100 x + 5250 + + 2 2 2 137 + - 1/350 z , COEFF(-2, -2, 2) = - 2/175 y z + 1/175 z + 1/100 y - ---- + 5250 + + 2 + - 2/175 x + 1/125 z - 2/175 y + 1/100 x - 2/175 x z + 4/245 x y, + + 2 + COEFF(-1, -2, 2) = 1/175 x - 2/245 x y + 1/175 x z + 1/200 y + 1/250 z + + 107 2 2 + - 1/175 y + ---- - 1/175 y z - 1/50 x + 1/350 z , + 7000 + + COEFF(0, -2, 2) = - 4/245 x y + 2/175 x z + 2/175 x, COEFF(1, -2, 2) = + + 2 2 2 + - 1/200 y + 1/50 x + 1/175 x z - 1/350 z + 1/175 x + 1/175 y - 1/250 z + + 107 + + 1/175 y z - 2/245 x y - ----, COEFF(2, -2, 2) = - 2/175 x + 2/175 y + 7000 + + 2 2 2 137 + - 1/100 x - 1/175 z + 4/245 x y - 1/125 z - 1/100 y + 2/175 y z + ---- + 5250 + + 2 + - 2/175 x z, COEFF(-2, -1, 2) = 1/250 z - 1/175 x z + 1/200 x + 1/175 y z + + 107 2 2 + + ---- + 1/350 z - 2/245 x y + 1/175 y - 1/175 x - 1/50 y , + 7000 + + 2 + COEFF(-1, -1, 2) = 1/350 x z + 1/350 x + 1/245 x y - 1/100 x + 1/500 z + + 229 2 2 + + 1/350 y z + ----- - 1/100 y + 1/350 y + 1/700 z , + 10500 + + COEFF(0, -1, 2) = 2/245 x y + 1/175 x z + 1/175 x, COEFF(1, -1, 2) = + + 2 229 + 1/350 x z + 1/245 x y + 1/350 x - 1/500 z - 1/350 y z + 1/100 y - ----- + 10500 + + 2 2 2 + + 1/100 x - 1/700 z - 1/350 y, COEFF(2, -1, 2) = - 1/175 x + 1/50 y + + 107 2 2 + - ---- - 2/245 x y - 1/175 y - 1/350 z - 1/200 x - 1/250 z - 1/175 y z + 7000 + + - 1/175 x z, COEFF(-2, 0, 2) = - 4/245 x y + 2/175 y + 2/175 y z, + + COEFF(-1, 0, 2) = 2/245 x y + 1/175 y + 1/175 y z, + + COEFF(0, 0, 2) = 4/245 x y, + + COEFF(1, 0, 2) = 2/245 x y - 1/175 y - 1/175 y z, + + COEFF(2, 0, 2) = - 2/175 y z - 4/245 x y - 2/175 y, COEFF(-2, 1, 2) = + + 2 2 107 2 + 1/175 y + 1/50 y - 1/200 x - 2/245 x y - ---- - 1/250 z - 1/350 z + 7000 + + 2 + + 1/175 x z + 1/175 y z + 1/175 x, COEFF(-1, 1, 2) = - 1/500 z + 1/100 x + + 2 229 2 + + 1/100 y - ----- - 1/700 z + 1/350 y + 1/245 x y + 1/350 y z + 10500 + + - 1/350 x z - 1/350 x, COEFF(0, 1, 2) = - 1/175 x z + 2/245 x y - 1/175 x, + + 2 2 + COEFF(1, 1, 2) = - 1/350 y - 1/100 x - 1/350 x z + 1/700 z + 1/500 z + + 2 229 + - 1/350 x - 1/350 y z - 1/100 y + 1/245 x y + -----, COEFF(2, 1, 2) = + 10500 + + 2 107 2 + 1/175 x + 1/200 x + ---- + 1/250 z + 1/350 z + 1/175 x z - 1/175 y z + 7000 + + 2 + - 1/50 y - 2/245 x y - 1/175 y, COEFF(-2, 2, 2) = 2/175 x - 2/175 y + + 2 2 2 137 + - 1/125 z - 1/100 y + 2/175 x z - 1/100 x - 1/175 z + ---- + 4/245 x y + 5250 + + 2 + - 2/175 y z, COEFF(-1, 2, 2) = - 1/175 x - 1/200 y - 1/175 x z - 1/175 y + + 2 107 2 + - 1/250 z - 1/350 z - 2/245 x y - ---- + 1/50 x - 1/175 y z, + 7000 + + COEFF(0, 2, 2) = - 2/175 x z - 2/175 x - 4/245 x y, COEFF(1, 2, 2) = + + 2 107 + - 1/175 x + 1/200 y + 1/175 y + 1/250 z + ---- + 1/175 y z - 2/245 x y + 7000 + + 2 2 + - 1/175 x z + 1/350 z - 1/50 x , COEFF(2, 2, 2) = 1/125 z + 4/245 x y + + 137 2 2 2 + - ---- + 2/175 x + 1/100 x + 1/100 y + 2/175 x z + 2/175 y + 1/175 z + 5250 + + + 2/175 y z] + +> print_coeff__lc_of_data(%, "coeff_dxy_", "fp", +> "3d.coeffs/3d.cube.order4.smooth0/coeff-dxy.compute.c"); +bytes used=2085727196, alloc=15136044, time=314.26 +bytes used=2086727360, alloc=15136044, time=314.35 +bytes used=2087728396, alloc=15136044, time=314.45 +bytes used=2088728856, alloc=15136044, time=314.53 +bytes used=2089729404, alloc=15136044, time=315.31 +bytes used=2090729688, alloc=15136044, time=316.09 +bytes used=2091729884, alloc=15136044, time=316.86 +bytes used=2092730040, alloc=15136044, time=317.62 +bytes used=2093730300, alloc=15136044, time=318.38 +bytes used=2094730488, alloc=15136044, time=318.80 +bytes used=2095730704, alloc=15136044, time=318.89 +bytes used=2096730864, alloc=15136044, time=318.99 +bytes used=2097767708, alloc=15136044, time=319.07 +bytes used=2098806940, alloc=15136044, time=319.16 +bytes used=2099820856, alloc=15136044, time=319.26 +bytes used=2100821144, alloc=15136044, time=319.35 +bytes used=2101821368, alloc=15136044, time=320.56 +bytes used=2102821560, alloc=15136044, time=321.20 +bytes used=2103821776, alloc=15136044, time=321.51 +bytes used=2104822164, alloc=15136044, time=321.59 +bytes used=2105822640, alloc=15136044, time=321.66 +bytes used=2106823004, alloc=15136044, time=321.73 +bytes used=2107823404, alloc=15136044, time=321.80 +bytes used=2108824188, alloc=15136044, time=321.87 +bytes used=2109824736, alloc=15136044, time=321.95 +bytes used=2110824904, alloc=15136044, time=322.02 +bytes used=2111825068, alloc=15136044, time=322.10 +bytes used=2112825260, alloc=15136044, time=322.20 +bytes used=2113825516, alloc=15136044, time=322.32 +bytes used=2114826140, alloc=15136044, time=322.43 +bytes used=2115826368, alloc=15136044, time=322.54 +bytes used=2116826696, alloc=15136044, time=322.67 +bytes used=2117827240, alloc=15136044, time=322.80 +bytes used=2118827432, alloc=15136044, time=322.93 +bytes used=2119828976, alloc=15136044, time=323.03 +bytes used=2120829184, alloc=15136044, time=323.88 +bytes used=2121829464, alloc=15136044, time=324.99 +bytes used=2122829692, alloc=15136044, time=325.51 +bytes used=2123830040, alloc=15136044, time=325.61 +bytes used=2124830292, alloc=15136044, time=325.68 +bytes used=2125830552, alloc=15136044, time=325.76 +bytes used=2126830836, alloc=15136044, time=325.84 +bytes used=2127831320, alloc=15136044, time=325.91 +bytes used=2128831652, alloc=15136044, time=325.99 +bytes used=2129831884, alloc=15136044, time=326.06 +bytes used=2130839624, alloc=15136044, time=326.24 +bytes used=2131850028, alloc=15136044, time=326.37 +bytes used=2132858476, alloc=15136044, time=326.50 +bytes used=2133858852, alloc=15136044, time=326.60 +bytes used=2134859060, alloc=15136044, time=327.89 +bytes used=2135859296, alloc=15136044, time=328.72 +bytes used=2136859532, alloc=15136044, time=329.22 +bytes used=2137859940, alloc=15136044, time=329.31 +bytes used=2138860232, alloc=15136044, time=329.39 +bytes used=2139860388, alloc=15136044, time=329.49 +bytes used=2140860620, alloc=15136044, time=329.76 +bytes used=2141860868, alloc=15136044, time=331.31 +bytes used=2142861052, alloc=15136044, time=331.95 +bytes used=2143861476, alloc=15136044, time=332.18 +bytes used=2144861784, alloc=15136044, time=332.25 +bytes used=2145861980, alloc=15136044, time=332.39 +bytes used=2146862200, alloc=15136044, time=333.08 +bytes used=2147862484, alloc=15136044, time=334.48 +bytes used=2148862976, alloc=15136044, time=335.04 +bytes used=2149863660, alloc=15136044, time=335.17 +bytes used=2150863964, alloc=15136044, time=335.31 +> +# d^2/dxdz +> simplify( diff(interp_3d_cube_order4_smooth0,x,z) ); +bytes used=2151864184, alloc=15136044, time=335.43 +bytes used=2152893980, alloc=15136044, time=335.51 +bytes used=2153894164, alloc=15136044, time=335.59 +bytes used=2154894332, alloc=15136044, time=335.67 +bytes used=2155895500, alloc=15136044, time=335.76 +bytes used=2156895712, alloc=15136044, time=335.84 +bytes used=2157895904, alloc=15136044, time=335.93 +bytes used=2158896120, alloc=15136044, time=336.01 +bytes used=2159896256, alloc=15136044, time=336.09 +137 137 137 +---- DATA(-1, 1, -1) - ---- DATA(1, 1, -1) - ---- DATA(-1, 1, 1) +5250 5250 5250 + + 289 137 137 + - ----- DATA(-1, 0, 1) + ---- DATA(1, -1, 1) - ---- DATA(-1, -1, 1) + 10500 5250 5250 + + 107 289 289 + - ---- DATA(-1, -2, 2) + ----- DATA(-1, 0, -1) - ----- DATA(1, 0, -1) + 7000 10500 10500 + + 107 47 + + 2/175 x DATA(0, -1, -2) + ---- DATA(1, -2, 2) + ---- DATA(-2, -1, 2) + 7000 5250 + + - 4/245 x z DATA(0, 2, -2) - 4/245 x z DATA(0, 1, -2) + + - 4/245 x z DATA(0, -1, -2) + 2/245 x z DATA(0, -2, -1) + + - 4/245 x z DATA(0, 1, 2) - 4/245 x z DATA(0, 2, 2) + + - 4/245 x z DATA(0, -2, -2) - 4/245 x z DATA(0, -1, 2) + + + 2/245 x z DATA(0, 2, -1) + 2/245 x z DATA(0, 2, 1) + + + 2/245 x z DATA(0, -1, -1) - 4/245 x z DATA(0, -2, 2) + + + 2/245 x z DATA(0, 1, 1) + 2/245 x z DATA(0, 1, -1) + + + 2/245 x z DATA(0, -1, 1) + 2/245 x z DATA(0, -2, 1) + + 137 + - ---- DATA(2, -2, 2) + 1/175 x y DATA(0, 2, -1) - 1/175 x y DATA(0, 2, 1) + 5250 + + - 1/350 x y DATA(0, -1, -1) + 2/175 x y DATA(0, -2, 2) + + - 1/350 x y DATA(0, 1, 1) + 1/350 x y DATA(0, 1, -1) + + + 1/350 x y DATA(0, -1, 1) + 1/175 x y DATA(0, -2, 1) + + + 2/175 x y DATA(0, 2, -2) + 1/175 x y DATA(0, 1, -2) + + - 1/175 x y DATA(0, -1, -2) - 1/175 x y DATA(0, -2, -1) + + - 1/175 x y DATA(0, 1, 2) - 2/175 x y DATA(0, 2, 2) + + - 2/175 x y DATA(0, -2, -2) + 1/175 x y DATA(0, -1, 2) + + 17 47 289 + + ---- DATA(-2, 0, 2) + ---- DATA(-2, 1, 2) + ----- DATA(1, 0, 1) + 5250 5250 10500 + + 137 137 + + ---- DATA(1, 1, 1) + ---- DATA(-2, 2, 2) + 2/245 x z DATA(-1, -2, 0) + 5250 5250 + + + 2/175 x DATA(0, 2, -2) + 2/245 x z DATA(1, -2, 0) + + + 4/245 x z DATA(0, -2, 0) - 4/245 x z DATA(-2, -2, 0) + + - 4/245 x z DATA(-2, 0, 0) - 4/245 x z DATA(-2, -1, 0) + + - 4/245 x z DATA(2, -2, 0) - 2/175 x DATA(0, 2, 2) + + 2 + + 1/175 y z DATA(2, -2, -1) + 1/175 y DATA(2, 0, -2) + + 2 2 + + 1/350 y DATA(1, 0, -2) - 1/350 y DATA(-1, 0, -2) + + 2 2 + - 1/175 y DATA(-2, 0, -2) - 1/350 y DATA(-2, 0, -1) + + 2 2 + - 1/175 y DATA(2, 0, 2) + 1/350 y DATA(-1, 0, 2) + + + 1/350 y z DATA(1, -2, -1) + 2/175 x DATA(0, -2, -2) + + 2 + - 2/175 x DATA(0, -1, 2) - 1/350 y DATA(1, 0, 2) + + 2 2 + + 1/350 y DATA(2, 0, -1) + 1/700 y DATA(-1, 0, 1) + + 2 2 + - 1/350 y DATA(2, 0, 1) + 1/175 y DATA(-2, 0, 2) + + 2 2 + - 1/700 y DATA(1, 0, 1) - 1/700 y DATA(-1, 0, -1) + + 2 + + 1/700 y DATA(1, 0, -1) - 1/350 y z DATA(-1, -2, -1) + + + 4/245 x z DATA(2, 0, -2) - 4/245 x z DATA(0, 0, -2) + + - 2/245 x z DATA(1, 0, -2) - 2/245 x z DATA(-1, 0, -2) + + + 4/245 x z DATA(-2, 0, -2) - 4/245 x z DATA(-2, 1, 0) + + - 4/245 x z DATA(-2, 2, 0) + 2/175 x DATA(0, 1, -2) + + - 1/175 y z DATA(-2, -2, -1) + 2/175 y z DATA(2, 2, -2) + + + 4/245 x z DATA(2, 0, 2) + 1/175 y z DATA(1, 2, -2) + + - 4/245 x z DATA(2, 1, 0) + 4/245 x z DATA(0, 2, 0) + + - 4/245 x z DATA(2, -1, 0) - 4/245 x z DATA(2, 0, 0) + + - 2/245 x z DATA(-1, 0, 2) - 4/245 x z DATA(0, 0, 2) + + - 2/245 x z DATA(-2, 0, -1) - 1/175 y z DATA(-1, 2, -2) + + + 1/350 y z DATA(-2, 1, -1) - 1/350 y z DATA(-2, -1, -1) + + 2 + + 1/100 z DATA(-2, 0, -2) - 2/245 x z DATA(2, 0, 1) + + + 2/245 x z DATA(1, 2, 0) - 4/245 x z DATA(2, 2, 0) + + + 2/245 x z DATA(0, 0, -1) - 2/245 x z DATA(1, 0, 2) + + + 2/245 x z DATA(-1, 2, 0) + 1/175 y z DATA(-2, 2, -1) + + + 1/175 x DATA(0, -2, -1) + 2/245 x z DATA(0, 0, 1) + + - 2/245 x z DATA(2, 0, -1) + 2/245 x z DATA(1, 1, 0) + + + 4/245 x z DATA(-2, 0, 2) + 1/245 x z DATA(1, 0, 1) + + + 4/245 x z DATA(0, 0, 0) - 1/175 y z DATA(-2, -2, 1) + + 2 + + 2/245 x z DATA(-1, 1, 0) + 1/350 y DATA(-2, 0, 1) + + + 2/245 x z DATA(-1, 0, 0) + 1/245 x z DATA(-1, 0, 1) + + - 1/175 y z DATA(-1, -2, 0) + 1/245 x z DATA(1, 0, -1) + + + 1/245 x z DATA(-1, 0, -1) + 2/245 x z DATA(1, 0, 0) + + + 4/245 x z DATA(0, 1, 0) + 2/245 x z DATA(-1, -1, 0) + + + 4/245 x z DATA(0, -1, 0) + 2/245 x z DATA(1, -1, 0) + + - 2/175 y z DATA(-2, -2, 0) - 2/245 x z DATA(-2, 0, 1) + + + 1/175 y z DATA(-2, 1, 0) + 2/175 y z DATA(-2, 2, 0) + + - 1/175 y z DATA(-2, -1, 0) + 2/175 y z DATA(2, -2, 0) + + + 1/175 y z DATA(1, -2, 0) - 1/175 y z DATA(2, 1, 0) + + + 1/175 y z DATA(-1, 2, 0) + 1/175 y z DATA(2, -1, 0) + + - 1/175 y z DATA(1, 2, 0) - 2/175 y z DATA(2, 2, 0) + + - 1/350 y z DATA(1, 1, 0) + 1/350 y z DATA(-1, 1, 0) + + - 1/350 y z DATA(-1, -1, 0) + 1/350 y z DATA(1, -1, 0) + + 2 2 + - 1/100 x DATA(2, 0, -2) - 1/50 z DATA(-2, 0, -1) + + 2 2 + - 1/100 z DATA(2, 0, -2) - 1/200 z DATA(1, 0, -2) + + 2 + + 1/200 z DATA(-1, 0, -2) + 2/175 x DATA(-2, 0, 2) + + 2 2 + - 1/350 x DATA(1, 0, 1) + 1/100 z DATA(2, 0, 2) - 1/200 z DATA(-1, 0, 2) + + 2 2 + + 1/200 z DATA(1, 0, 2) - 1/100 z DATA(-2, 0, 2) + + 2 2 2 + + 1/50 z DATA(2, 0, -1) + 1/50 z DATA(-2, 0, 1) - 1/100 z DATA(1, 0, 1) + + 2 2 + + 1/100 z DATA(-1, 0, 1) - 1/50 z DATA(2, 0, 1) + + + 1/175 z DATA(-1, -2, 0) + 2/175 z DATA(-2, -2, 0) + + + 2/175 z DATA(-2, 0, 0) + 2/175 z DATA(-2, -1, 0) + + - 2/175 z DATA(2, -2, 0) - 1/175 z DATA(1, -2, 0) + 2/175 z DATA(-2, 1, 0) + + 2 + + 2/175 z DATA(-2, 2, 0) - 1/100 z DATA(-1, 0, -1) + + 2 + + 1/100 z DATA(1, 0, -1) + 1/175 z DATA(1, 0, -2) + + - 2/175 z DATA(-2, 0, -2) - 1/175 z DATA(-1, 0, -2) + + + 1/175 z DATA(-2, 0, -1) + 2/175 z DATA(2, 0, 2) + 2/175 z DATA(2, 0, -2) + + - 1/175 z DATA(-1, 0, 2) + 1/175 z DATA(1, 0, 2) + 1/175 z DATA(-1, 2, 0) + + - 2/175 z DATA(2, 1, 0) - 2/175 z DATA(2, -1, 0) - 2/175 z DATA(2, 0, 0) + + - 1/175 z DATA(2, 0, -1) - 1/175 z DATA(2, 0, 1) - 1/175 z DATA(1, 2, 0) + + - 2/175 z DATA(2, 2, 0) - 1/175 z DATA(1, 1, 0) - 1/175 z DATA(1, -1, 0) + + + 1/175 z DATA(-1, 0, 0) - 1/350 z DATA(1, 0, -1) - 2/175 z DATA(-2, 0, 2) + + - 1/350 z DATA(1, 0, 1) + 1/175 z DATA(-1, 1, 0) - 1/175 z DATA(1, 0, 0) + + + 1/175 z DATA(-1, -1, 0) + 1/350 z DATA(-1, 0, 1) + + 2 + + 1/350 z DATA(-1, 0, -1) + 1/50 x DATA(1, 0, -2) + + 2 2 + - 1/50 x DATA(-1, 0, -2) + 1/100 x DATA(-2, 0, -2) + + 2 2 + + 1/200 x DATA(-2, 0, -1) + 1/100 x DATA(2, 0, 2) + + 2 2 + + 1/50 x DATA(-1, 0, 2) - 1/50 x DATA(1, 0, 2) + 1/175 z DATA(-2, 0, 1) + + 2 + + 1/175 x DATA(0, 2, -1) - 1/100 x DATA(-2, 0, 2) + + 2 2 + - 1/100 x DATA(1, 0, 1) + 1/200 x DATA(2, 0, 1) + + 2 2 + + 1/100 x DATA(-1, 0, 1) - 1/200 x DATA(2, 0, -1) + + 2 2 + - 1/200 x DATA(-2, 0, 1) - 1/100 x DATA(-1, 0, -1) + + 2 + + 1/100 x DATA(1, 0, -1) - 2/175 x DATA(2, 0, -2) + + + 2/175 x DATA(0, 0, -2) + 1/175 x DATA(1, 0, -2) + + + 1/175 x DATA(-1, 0, -2) - 2/175 x DATA(-2, 0, -2) + + - 1/175 x DATA(-2, 0, -1) + 2/175 x DATA(2, 0, 2) - 2/175 x DATA(0, 1, 2) + + - 1/175 x DATA(-1, 0, 2) - 2/175 x DATA(0, 0, 2) - 1/175 x DATA(1, 0, 2) + + + 1/175 x DATA(0, 0, -1) - 1/175 x DATA(2, 0, -1) + 1/175 x DATA(2, 0, 1) + + + 1/350 x DATA(-1, 0, -1) + 1/350 x DATA(1, 0, -1) - 1/175 x DATA(0, 0, 1) + + 137 + - 1/350 x DATA(-1, 0, 1) + 1/175 x DATA(-2, 0, 1) + ---- DATA(-1, -1, -1) + 5250 + + 229 167 + - ----- DATA(1, 2, -1) - 1/175 x DATA(0, 2, 1) - ---- DATA(2, 1, -1) + 10500 7000 + + 229 + + ----- DATA(-1, 2, -1) + 1/175 y z DATA(2, -2, 1) + 10500 + + - 1/350 y z DATA(-2, -1, 1) + 1/350 y z DATA(-2, 1, 1) + + 167 187 + - ---- DATA(2, -1, -1) - ---- DATA(2, 0, -1) + 1/175 y z DATA(-2, 2, 1) + 7000 7000 + + 167 229 + + 2/175 y z DATA(-2, -2, 2) + ---- DATA(2, 1, 1) - ----- DATA(-1, 2, 1) + 7000 10500 + + 229 167 + + ----- DATA(1, 2, 1) + 1/350 y z DATA(-1, -1, -2) + ---- DATA(2, -1, 1) + 10500 7000 + + 187 137 107 + + ---- DATA(2, 0, 1) - ---- DATA(1, -1, -1) - ---- DATA(2, 2, -1) + 7000 5250 7000 + + 107 47 137 + + ---- DATA(1, 2, 2) - ---- DATA(-2, -1, -2) - ---- DATA(2, 2, 2) + 7000 5250 5250 + + 137 107 167 + + ---- DATA(2, -2, -2) - ---- DATA(1, -2, -2) + ---- DATA(1, 1, 2) + 5250 7000 7000 + + 47 107 107 + - ---- DATA(2, 1, 2) - ---- DATA(-1, 2, 2) + ---- DATA(-1, -2, -2) + 5250 7000 7000 + + 187 17 167 + + ---- DATA(1, 0, 2) - ---- DATA(2, 0, 2) - ---- DATA(-1, 1, 2) + 7000 5250 7000 + + 137 167 47 + - ---- DATA(-2, -2, -2) + ---- DATA(1, -1, 2) - ---- DATA(2, -1, 2) + 5250 7000 5250 + + 187 + - ---- DATA(-1, 0, 2) - 2/175 x DATA(0, -2, 2) + 1/175 x DATA(0, -1, -1) + 7000 + + - 1/175 x DATA(0, 1, 1) + 1/175 x DATA(0, 1, -1) - 1/175 x DATA(0, -2, 1) + + 167 107 + - 1/175 x DATA(0, -1, 1) - ---- DATA(-1, -1, 2) + ---- DATA(2, 2, 1) + 7000 7000 + + + 4/245 x z DATA(-2, -1, -2) + 4/245 x z DATA(2, 2, 2) + + 137 + - ---- DATA(-2, 2, -2) + 4/245 x z DATA(2, -2, -2) + 5250 + + 47 + + 1/245 x z DATA(-1, 1, -1) + ---- DATA(2, 1, -2) + 5250 + + 167 167 + + 1/350 y z DATA(-1, 2, -1) - ---- DATA(1, 1, -2) + ---- DATA(-1, 1, -2) + 7000 7000 + + 47 17 187 + - ---- DATA(-2, 1, -2) + ---- DATA(2, 0, -2) - ---- DATA(1, 0, -2) + 5250 5250 7000 + + 187 17 47 + + ---- DATA(-1, 0, -2) - ---- DATA(-2, 0, -2) + ---- DATA(2, -1, -2) + 7000 5250 5250 + + 167 167 + - ---- DATA(1, -1, -2) + ---- DATA(-1, -1, -2) + 1/245 x z DATA(1, 1, -1) + 7000 7000 + + 107 + + 1/245 x z DATA(-1, 1, 1) - ---- DATA(2, -2, -1) + 7000 + + + 1/245 x z DATA(1, -1, 1) + 1/245 x z DATA(-1, -1, 1) + + - 2/245 x z DATA(-1, -2, 2) - 2/245 x z DATA(1, -2, 2) + + 229 + - ----- DATA(1, -2, -1) + 4/245 x z DATA(-2, -1, 2) + 10500 + + + 4/245 x z DATA(2, -2, 2) + 4/245 x z DATA(-2, 1, 2) + + + 1/245 x z DATA(1, 1, 1) + 4/245 x z DATA(-2, 2, 2) + + 229 + + 1/245 x z DATA(-1, -1, -1) + ----- DATA(-1, -2, -1) + 10500 + + + 1/245 x z DATA(1, 2, -1) - 2/245 x z DATA(2, 1, -1) + + 107 + + ---- DATA(-2, -2, -1) + 1/245 x z DATA(-1, 2, -1) + 7000 + + - 2/245 x z DATA(2, -1, -1) - 2/245 x z DATA(2, 1, 1) + + 137 + + ---- DATA(2, 2, -2) + 1/245 x z DATA(-1, 2, 1) + 1/245 x z DATA(1, 2, 1) + 5250 + + 107 + - 2/245 x z DATA(2, -1, 1) - ---- DATA(1, 2, -2) + 7000 + + + 1/245 x z DATA(1, -1, -1) - 2/245 x z DATA(2, 2, -1) + + 107 167 + - 2/245 x z DATA(1, 2, 2) + ---- DATA(-1, 2, -2) + ---- DATA(-2, 1, -1) + 7000 7000 + + 187 167 107 + + ---- DATA(-2, 0, -1) + ---- DATA(-2, -1, -1) + ---- DATA(-2, 2, -1) + 7000 7000 7000 + + - 2/245 x z DATA(-2, -2, 1) + 1/245 x z DATA(-1, -2, 1) + + + 1/245 x z DATA(1, -2, 1) - 2/245 x z DATA(1, 1, 2) + + - 2/245 x z DATA(2, -2, 1) - 2/245 x z DATA(-2, -1, 1) + + - 2/245 x z DATA(-2, 1, 1) - 2/245 x z DATA(-2, 2, 1) + + + 4/245 x z DATA(-2, -2, 2) - 2/245 x z DATA(-2, -2, -1) + + + 4/245 x z DATA(2, 2, -2) - 2/245 x z DATA(1, 2, -2) + + - 2/245 x z DATA(-1, 2, -2) - 2/245 x z DATA(-2, 1, -1) + + - 2/245 x z DATA(-2, -1, -1) - 2/245 x z DATA(-2, 2, -1) + + 107 + - 2/245 x z DATA(1, -1, -2) - ---- DATA(-2, -2, 1) + 7000 + + - 2/245 x z DATA(-1, -1, -2) - 2/245 x z DATA(2, -2, -1) + + + 1/245 x z DATA(1, -2, -1) + 1/245 x z DATA(-1, -2, -1) + + - 2/245 x z DATA(2, 2, 1) + 4/245 x z DATA(-2, 2, -2) + + 229 + + 4/245 x z DATA(2, 1, -2) - ----- DATA(-1, -2, 1) + 10500 + + - 2/245 x z DATA(1, 1, -2) - 2/245 x z DATA(-1, 1, -2) + + + 4/245 x z DATA(-2, 1, -2) + 4/245 x z DATA(2, -1, -2) + + 229 + + ----- DATA(1, -2, 1) - 2/245 x z DATA(-1, 1, 2) + 10500 + + + 4/245 x z DATA(-2, -2, -2) - 2/245 x z DATA(1, -1, 2) + + + 4/245 x z DATA(2, -1, 2) - 2/245 x z DATA(-1, -1, 2) + + + 1/350 x y DATA(-1, -2, 1) + 1/350 x y DATA(1, -2, 1) + + 107 + + ---- DATA(2, -2, 1) - 1/350 x y DATA(1, 1, 2) - 1/175 x y DATA(2, -2, 1) + 7000 + + - 2/245 x z DATA(1, -2, -2) + 4/245 x z DATA(2, 1, 2) + + - 2/245 x z DATA(-1, 2, 2) - 2/245 x z DATA(-1, -2, -2) + + + 1/350 y z DATA(-1, -1, 2) - 1/175 y z DATA(2, 2, 1) + + + 1/350 x y DATA(-2, -1, -1) - 2/175 y z DATA(-2, 2, -2) + + 2 + - 1/350 y z DATA(1, -1, -2) - 1/100 z DATA(1, 2, 1) + + 2 2 + - 1/50 z DATA(2, -1, 1) + 1/100 z DATA(1, -1, -1) + + + 1/175 y z DATA(2, 1, -2) - 2/175 x y DATA(-2, -2, 2) + + + 1/175 x y DATA(-2, 2, 1) + 1/350 x y DATA(-2, 1, 1) + + 2 + - 1/350 x y DATA(-2, -1, 1) + 1/50 z DATA(2, 2, -1) + + 2 2 + + 1/100 z DATA(-2, -1, -2) + 1/100 z DATA(2, 2, 2) + + 2 2 + - 1/100 z DATA(2, -2, -2) - 1/100 z DATA(-1, 1, -1) + + 2 2 + - 1/200 z DATA(1, -2, -2) + 1/100 z DATA(2, 1, 2) + + 2 2 + - 1/200 z DATA(-1, 2, 2) + 1/200 z DATA(-1, -2, -2) + + 2 2 + - 1/200 z DATA(-1, 1, 2) + 1/100 z DATA(-2, -2, -2) + + 2 2 + + 1/200 z DATA(1, -1, 2) + 1/100 z DATA(2, -1, 2) + + 2 2 + - 1/200 z DATA(-1, -1, 2) - 1/50 z DATA(2, 2, 1) + + 2 2 + + 1/100 z DATA(-2, 2, -2) - 1/100 z DATA(2, 1, -2) + + 2 2 + - 1/200 z DATA(1, 1, -2) + 1/200 z DATA(-1, 1, -2) + + 2 2 + + 1/100 z DATA(-2, 1, -2) + 1/100 z DATA(-1, 2, 1) + + 2 2 + + 1/100 z DATA(1, 1, -1) + 1/100 z DATA(-1, 1, 1) + + 2 2 + - 1/100 z DATA(1, -1, 1) + 1/100 z DATA(-1, -1, 1) + + 2 2 + - 1/200 z DATA(-1, -2, 2) + 1/200 z DATA(1, -2, 2) + + 2 2 + - 1/100 z DATA(-2, -1, 2) + 1/100 z DATA(2, -2, 2) + + 2 2 + - 1/100 z DATA(-2, 1, 2) - 1/100 z DATA(1, 1, 1) + + 2 2 + - 1/100 z DATA(-2, 2, 2) - 1/100 z DATA(-1, -1, -1) + + 2 2 + + 1/100 z DATA(1, 2, -1) + 1/100 x DATA(1, 1, -1) + + 2 2 + + 1/1400 y DATA(1, 1, -1) + 1/1400 y DATA(-1, 1, 1) + + 2 2 + - 1/1400 y DATA(1, -1, 1) + 1/1400 y DATA(-1, -1, 1) + + 2 2 + - 1/350 y DATA(-1, -2, 2) + 1/350 y DATA(1, -2, 2) + + 2 2 + + 1/350 y DATA(-2, -1, 2) + 1/175 y DATA(2, -2, 2) + + 2 2 + + 1/350 y DATA(-2, 1, 2) - 1/1400 y DATA(1, 1, 1) + + 2 2 + - 1/175 y DATA(-2, 2, 2) - 1/1400 y DATA(-1, -1, -1) + + 2 2 + - 1/700 y DATA(1, 2, -1) + 1/700 y DATA(2, 1, -1) + + 2 2 + + 1/700 y DATA(-1, 2, -1) + 1/700 y DATA(2, -1, -1) + + 2 2 + - 1/700 y DATA(2, 1, 1) - 1/700 y DATA(-1, 2, 1) + + 2 2 + + 1/700 y DATA(1, 2, 1) - 1/700 y DATA(2, -1, 1) + + 2 2 + + 1/1400 y DATA(1, -1, -1) - 1/350 y DATA(2, 2, -1) + + 2 2 + + 1/350 y DATA(1, 2, 2) - 1/350 y DATA(-2, -1, -2) + + 2 2 + + 1/175 y DATA(2, 2, 2) - 1/175 y DATA(2, -2, -2) + + 2 2 + - 1/1400 y DATA(-1, 1, -1) - 1/350 y DATA(1, -2, -2) + + 2 2 + - 1/350 y DATA(2, 1, 2) - 1/350 y DATA(-1, 2, 2) + + 2 2 + + 1/350 y DATA(-1, -2, -2) + 1/700 y DATA(-1, 1, 2) + + 2 2 + + 1/175 y DATA(-2, -2, -2) - 1/700 y DATA(1, -1, 2) + + 2 2 + - 1/350 y DATA(2, -1, 2) + 1/700 y DATA(-1, -1, 2) + + 2 2 + + 1/350 y DATA(2, 2, 1) + 1/175 y DATA(-2, 2, -2) + + 2 2 + + 1/350 y DATA(2, 1, -2) + 1/700 y DATA(1, 1, -2) + + 2 + - 1/700 y DATA(-1, 1, -2) + 1/350 y z DATA(1, 1, 2) + + + 1/350 y z DATA(1, -2, 1) - 1/175 x y DATA(-2, 2, -1) + + - 1/175 x y DATA(-2, -2, 1) - 1/350 y z DATA(-1, -2, 1) + + 167 + - ---- DATA(-2, -1, 1) + 1/175 x y DATA(-1, 2, -2) + 7000 + + 2 2 + + 1/100 x DATA(-2, -2, -2) - 1/50 x DATA(1, -1, 2) + + 2 2 + + 1/100 x DATA(2, -1, 2) + 1/50 x DATA(-1, -1, 2) + + 2 2 + + 1/200 x DATA(2, 2, 1) + 1/100 x DATA(-2, 2, -2) + + 2 2 + - 1/100 x DATA(2, 1, -2) + 1/50 x DATA(1, 1, -2) + + 2 2 + - 1/50 x DATA(-1, 1, -2) + 1/100 x DATA(-2, 1, -2) + + 2 2 + - 1/100 x DATA(2, -1, -2) + 1/50 x DATA(1, -1, -2) + + 2 2 + - 1/50 x DATA(-1, -1, -2) - 1/200 x DATA(2, -2, -1) + + 2 2 + + 1/100 x DATA(1, -2, -1) - 1/50 x DATA(1, -2, 2) + + 2 2 + + 1/100 x DATA(-1, 1, 1) - 1/100 x DATA(1, -1, 1) + + 2 2 + + 1/100 x DATA(-1, -1, 1) + 1/50 x DATA(-1, -2, 2) + + 2 2 + - 1/100 x DATA(-2, -1, 2) + 1/100 x DATA(2, -2, 2) + + 2 2 + - 1/100 x DATA(-2, 1, 2) - 1/100 x DATA(1, 1, 1) + + 2 2 + - 1/100 x DATA(-2, 2, 2) - 1/100 x DATA(-1, -1, -1) + + 2 2 + + 1/100 x DATA(1, 2, -1) - 1/200 x DATA(2, 1, -1) + + 2 2 + - 1/100 x DATA(-1, 2, -1) - 1/200 x DATA(2, -1, -1) + + 2 2 + + 1/200 x DATA(2, 1, 1) + 1/100 x DATA(-1, 2, 1) + + 2 2 + - 1/100 x DATA(1, 2, 1) + 1/200 x DATA(2, -1, 1) + + 2 2 + + 1/100 x DATA(1, -1, -1) - 1/200 x DATA(2, 2, -1) + + 2 2 + - 1/50 x DATA(1, 2, 2) + 1/100 x DATA(-2, -1, -2) + + 2 2 + + 1/100 x DATA(2, 2, 2) - 1/100 x DATA(2, -2, -2) + + 2 2 + - 1/100 x DATA(-1, 1, -1) + 1/50 x DATA(1, -2, -2) + + 2 2 + + 1/100 x DATA(2, 1, 2) + 1/50 x DATA(-1, 2, 2) + + 2 2 + - 1/50 x DATA(-1, -2, -2) + 1/50 x DATA(-1, 1, 2) + + 2 2 + - 1/100 x DATA(-1, -2, -1) + 1/200 x DATA(-2, -2, -1) + + 2 2 + - 1/100 x DATA(2, 2, -2) + 1/50 x DATA(1, 2, -2) + + 2 2 + - 1/50 x DATA(-1, 2, -2) + 1/200 x DATA(-2, 1, -1) + + 2 2 + + 1/200 x DATA(-2, -1, -1) + 1/200 x DATA(-2, 2, -1) + + 2 2 + - 1/200 x DATA(-2, -2, 1) + 1/100 x DATA(-1, -2, 1) + + 2 2 + - 1/100 x DATA(1, -2, 1) - 1/50 x DATA(1, 1, 2) + + 2 2 + + 1/200 x DATA(2, -2, 1) - 1/200 x DATA(-2, -1, 1) + + 2 2 + - 1/200 x DATA(-2, 1, 1) - 1/200 x DATA(-2, 2, 1) + + 2 + - 1/100 x DATA(-2, -2, 2) + 1/175 y z DATA(-2, -1, 2) + + - 1/350 x DATA(-1, -1, 1) - 1/175 x DATA(-1, -2, 2) + + - 1/175 x DATA(1, -2, 2) + 2/175 x DATA(-2, -1, 2) + + + 2/175 x DATA(2, -2, 2) + 2/175 x DATA(-2, 1, 2) - 1/350 x DATA(1, 1, 1) + + + 2/175 x DATA(-2, 2, 2) + 1/350 x DATA(-1, -1, -1) + + + 1/350 x DATA(1, 2, -1) - 1/175 x DATA(2, 1, -1) + + + 1/350 x DATA(-1, 2, -1) - 1/175 x DATA(2, -1, -1) + + + 1/175 x DATA(2, 1, 1) - 1/350 x DATA(-1, 2, 1) - 1/350 x DATA(1, 2, 1) + + + 1/175 x DATA(2, -1, 1) + 1/350 x DATA(1, -1, -1) + + - 1/175 x DATA(2, 2, -1) - 1/175 x DATA(1, 2, 2) + + - 2/175 x DATA(-2, -1, -2) - 1/350 x DATA(1, -1, 1) + + - 1/175 x DATA(2, -2, -1) + 1/350 x DATA(1, -2, -1) + + + 1/350 x DATA(-1, -2, -1) - 1/175 x DATA(-2, -2, -1) + + - 2/175 x DATA(2, 2, -2) + 1/175 x DATA(1, 2, -2) + + + 1/175 x DATA(-1, 2, -2) - 1/175 x DATA(-2, 1, -1) + + - 1/175 x DATA(-2, -1, -1) - 1/175 x DATA(-2, 2, -1) + + + 1/175 x DATA(-2, -2, 1) - 1/350 x DATA(-1, -2, 1) + + - 1/350 x DATA(1, -2, 1) - 1/175 x DATA(1, 1, 2) + 1/175 x DATA(2, -2, 1) + + + 1/350 x DATA(1, 1, -1) - 1/350 x DATA(-1, 1, 1) + 2/175 x DATA(2, 2, 2) + + - 2/175 x DATA(2, -2, -2) + 1/350 x DATA(-1, 1, -1) + + + 1/175 x DATA(1, -2, -2) + 2/175 x DATA(2, 1, 2) - 1/175 x DATA(-1, 2, 2) + + + 1/175 x DATA(-1, -2, -2) - 1/175 x DATA(-1, 1, 2) + + - 2/175 x DATA(-2, -2, -2) - 1/175 x DATA(1, -1, 2) + + + 2/175 x DATA(2, -1, 2) - 1/175 x DATA(-1, -1, 2) + 1/175 x DATA(2, 2, 1) + + - 2/175 x DATA(-2, 2, -2) - 2/175 x DATA(2, 1, -2) + + + 1/175 x DATA(1, 1, -2) + 1/175 x DATA(-1, 1, -2) + + - 2/175 x DATA(-2, 1, -2) - 2/175 x DATA(2, -1, -2) + + + 1/175 x DATA(1, -1, -2) + 1/175 x DATA(-1, -1, -2) + + + 1/175 x DATA(-2, -1, 1) + 1/175 x DATA(-2, 1, 1) + + + 1/175 x DATA(-2, 2, 1) + 2/175 x DATA(-2, -2, 2) + + - 1/350 z DATA(1, 1, -1) + 1/350 z DATA(-1, 1, 1) + + + 1/250 y DATA(-2, 2, -1) - 1/1000 y DATA(1, 1, -1) + + - 1/1000 y DATA(-1, 1, 1) - 1/1000 y DATA(1, -1, 1) + + + 1/1000 y DATA(-1, -1, 1) + 1/250 y DATA(-1, -2, 2) + + - 1/250 y DATA(1, -2, 2) + 1/250 y DATA(-2, -1, 2) + + - 1/125 y DATA(2, -2, 2) - 1/250 y DATA(-2, 1, 2) + 1/1000 y DATA(1, 1, 1) + + - 1/125 y DATA(-2, 2, 2) - 1/1000 y DATA(-1, -1, -1) + + - 1/500 y DATA(1, 2, -1) - 1/500 y DATA(2, 1, -1) + + + 1/500 y DATA(-1, 2, -1) + 1/500 y DATA(2, -1, -1) + + + 1/500 y DATA(2, 1, 1) - 1/500 y DATA(-1, 2, 1) + 1/500 y DATA(1, 2, 1) + + - 1/500 y DATA(2, -1, 1) + 1/1000 y DATA(1, -1, -1) + + - 1/250 y DATA(2, 2, -1) + 1/250 y DATA(1, 2, 2) + + - 1/250 y DATA(-2, -1, -2) + 1/125 y DATA(2, 2, 2) + + + 1/125 y DATA(2, -2, -2) + 1/1000 y DATA(-1, 1, -1) + + + 1/250 y DATA(1, -2, -2) + 1/250 y DATA(2, 1, 2) - 1/250 y DATA(-1, 2, 2) + + - 1/250 y DATA(-1, -2, -2) - 1/500 y DATA(-1, 1, 2) + + 2 + - 1/125 y DATA(-2, -2, -2) - 1/100 z DATA(2, -1, -2) + + 2 2 + - 1/200 z DATA(1, -1, -2) + 1/200 z DATA(-1, -1, -2) + + 2 2 + + 1/50 z DATA(2, -2, -1) + 1/100 z DATA(1, -2, -1) + + 2 2 + - 1/100 z DATA(-1, -2, -1) - 1/50 z DATA(-2, -2, -1) + + 2 2 + - 1/100 z DATA(2, 2, -2) - 1/200 z DATA(1, 2, -2) + + 2 2 + + 1/200 z DATA(-1, 2, -2) - 1/50 z DATA(-2, 1, -1) + + 2 2 + - 1/50 z DATA(-2, -1, -1) - 1/50 z DATA(-2, 2, -1) + + 2 2 + + 1/50 z DATA(-2, -2, 1) + 1/100 z DATA(-1, -2, 1) + + 2 2 + - 1/100 z DATA(1, -2, 1) + 1/200 z DATA(1, 1, 2) + + 2 2 + - 1/50 z DATA(2, -2, 1) + 1/50 z DATA(-2, -1, 1) + + 2 2 + + 1/50 z DATA(-2, 1, 1) + 1/50 z DATA(-2, 2, 1) + + 2 2 + - 1/100 z DATA(-2, -2, 2) + 1/50 z DATA(2, 1, -1) + + 2 2 + - 1/100 z DATA(-1, 2, -1) + 1/50 z DATA(2, -1, -1) + + - 1/500 y DATA(1, -1, 2) - 1/250 y DATA(2, -1, 2) + + + 1/500 y DATA(-1, -1, 2) + 1/250 y DATA(2, 2, 1) + + + 1/125 y DATA(-2, 2, -2) - 1/250 y DATA(2, 1, -2) + + - 1/500 y DATA(1, 1, -2) + 1/500 y DATA(-1, 1, -2) + + + 1/250 y DATA(-2, 1, -2) + 1/250 y DATA(2, -1, -2) + + + 1/500 y DATA(1, -1, -2) - 1/500 y DATA(-1, -1, -2) + + + 1/250 y DATA(2, -2, -1) + 1/500 y DATA(1, -2, -1) + + - 1/500 y DATA(-1, -2, -1) - 1/250 y DATA(-2, -2, -1) + + - 1/125 y DATA(2, 2, -2) - 1/250 y DATA(1, 2, -2) + + + 1/250 y DATA(-1, 2, -2) + 1/500 y DATA(-2, 1, -1) + + - 1/500 y DATA(-2, -1, -1) + 1/250 y DATA(-2, -2, 1) + + + 1/500 y DATA(-1, -2, 1) - 1/500 y DATA(1, -2, 1) + 1/500 y DATA(1, 1, 2) + + - 1/250 y DATA(2, -2, 1) + 1/500 y DATA(-2, -1, 1) + + - 1/500 y DATA(-2, 1, 1) - 1/250 y DATA(-2, 2, 1) + + + 1/125 y DATA(-2, -2, 2) - 1/175 z DATA(-1, 2, 2) + + - 1/175 z DATA(-1, 1, 2) - 2/175 z DATA(-2, -2, -2) + + + 1/175 z DATA(1, -1, 2) + 2/175 z DATA(2, -1, 2) + + - 1/175 z DATA(-1, -1, 2) - 1/175 z DATA(2, 2, 1) + + - 2/175 z DATA(-2, 2, -2) + 2/175 z DATA(2, 1, -2) + + + 1/175 z DATA(1, 1, -2) - 1/175 z DATA(-1, 1, -2) + + - 2/175 z DATA(-2, 1, -2) + 2/175 z DATA(2, -1, -2) + + + 1/175 z DATA(1, -1, -2) - 1/175 z DATA(-1, -1, -2) + + - 1/175 z DATA(2, -2, -1) - 1/350 z DATA(1, -2, -1) + + + 1/350 z DATA(-1, -2, -1) + 1/175 z DATA(-2, -2, -1) + + + 2/175 z DATA(2, 2, -2) + 1/175 z DATA(1, 2, -2) + + - 1/175 z DATA(-1, 2, -2) + 1/175 z DATA(-2, 1, -1) + + + 1/175 z DATA(-2, -1, -1) + 1/175 z DATA(-2, 2, -1) + + + 1/175 z DATA(-2, -2, 1) + 1/350 z DATA(-1, -2, 1) + + - 1/350 z DATA(1, -2, 1) + 1/175 z DATA(1, 1, 2) - 1/175 z DATA(2, -2, 1) + + + 1/175 z DATA(-2, -1, 1) + 1/175 z DATA(-2, 1, 1) + + + 1/175 z DATA(-2, 2, 1) - 2/175 z DATA(-2, -2, 2) + + 2 + - 1/175 z DATA(-1, -2, -2) - 1/350 y DATA(-2, 1, -2) + + 2 2 + + 1/350 y DATA(2, -1, -2) + 1/700 y DATA(1, -1, -2) + + 2 2 + - 1/700 y DATA(-1, -1, -2) - 1/350 y DATA(2, -2, -1) + + 2 2 + - 1/700 y DATA(1, -2, -1) + 1/700 y DATA(-1, -2, -1) + + 2 2 + + 1/350 y DATA(-2, -2, -1) - 1/175 y DATA(2, 2, -2) + + 2 2 + - 1/350 y DATA(1, 2, -2) + 1/350 y DATA(-1, 2, -2) + + 2 2 + - 1/700 y DATA(-2, 1, -1) - 1/700 y DATA(-2, -1, -1) + + 2 2 + + 1/350 y DATA(-2, 2, -1) - 1/350 y DATA(-2, -2, 1) + + 2 2 + - 1/700 y DATA(-1, -2, 1) + 1/700 y DATA(1, -2, 1) + + 2 2 + - 1/700 y DATA(1, 1, 2) + 1/350 y DATA(2, -2, 1) + + 2 2 + + 1/700 y DATA(-2, -1, 1) + 1/700 y DATA(-2, 1, 1) + + 2 2 + - 1/350 y DATA(-2, 2, 1) - 1/175 y DATA(-2, -2, 2) + + - 1/350 z DATA(1, -1, 1) + 1/350 z DATA(-1, -1, 1) + + - 1/175 z DATA(-1, -2, 2) + 1/175 z DATA(1, -2, 2) + + - 2/175 z DATA(-2, -1, 2) + 2/175 z DATA(2, -2, 2) + + - 2/175 z DATA(-2, 1, 2) - 1/350 z DATA(1, 1, 1) - 2/175 z DATA(-2, 2, 2) + + + 1/350 z DATA(-1, -1, -1) - 1/350 z DATA(1, 2, -1) + + - 1/175 z DATA(2, 1, -1) + 1/350 z DATA(-1, 2, -1) + + - 1/175 z DATA(2, -1, -1) - 1/175 z DATA(2, 1, 1) + 1/350 z DATA(-1, 2, 1) + + - 1/350 z DATA(1, 2, 1) - 1/175 z DATA(2, -1, 1) - 1/350 z DATA(1, -1, -1) + + - 1/175 z DATA(2, 2, -1) + 1/175 z DATA(1, 2, 2) + + - 2/175 z DATA(-2, -1, -2) + 2/175 z DATA(2, 2, 2) + + + 2/175 z DATA(2, -2, -2) + 1/350 z DATA(-1, 1, -1) + + + 1/175 z DATA(1, -2, -2) + 2/175 z DATA(2, 1, 2) + + + 1/175 y z DATA(2, 1, 2) + 1/700 y z DATA(-1, 1, -1) + + - 2/175 y z DATA(2, -2, -2) + 1/350 y z DATA(1, 1, -2) + + - 1/350 y z DATA(-1, 1, -2) + 1/175 y z DATA(-2, -1, -2) + + + 2/175 y z DATA(2, 2, 2) + 1/700 y z DATA(1, -1, -1) + + - 1/175 y z DATA(2, 2, -1) + 1/175 y z DATA(1, 2, 2) + + - 1/350 y z DATA(1, 2, 1) + 1/350 y z DATA(2, -1, 1) + + + 1/350 y z DATA(2, -1, -1) - 1/350 y z DATA(2, 1, 1) + + + 1/350 y z DATA(-1, 2, 1) - 1/350 y z DATA(2, 1, -1) + + - 1/700 y z DATA(-1, -1, -1) - 1/350 y z DATA(1, 2, -1) + + - 2/175 y z DATA(-2, 2, 2) - 1/700 y z DATA(1, 1, -1) + + - 1/175 y z DATA(-2, 1, 2) + 1/700 x y DATA(1, 1, -1) + + - 2/175 y z DATA(2, -2, 2) - 1/175 y z DATA(1, -2, 2) + + + 1/175 y z DATA(-1, -2, 2) - 1/175 y z DATA(1, -2, -2) + + - 1/175 y z DATA(2, -1, 2) + 2/175 y z DATA(-2, -2, -2) + + - 1/700 y z DATA(-1, -1, 1) - 1/350 y z DATA(1, -1, 2) + + + 1/175 y z DATA(-1, -2, -2) - 1/350 y z DATA(-1, 1, 2) + + + 1/700 y z DATA(1, -1, 1) + 1/700 y z DATA(-1, 1, 1) + + - 1/175 y z DATA(-1, 2, 2) - 1/175 y z DATA(-2, 1, -2) + + 2 + - 1/50 z DATA(2, 1, 1) - 1/350 x y DATA(-2, 1, -1) + + - 1/175 y z DATA(2, -1, -2) - 1/700 y z DATA(1, 1, 1) + + - 2/175 x y DATA(2, 2, -2) + 1/175 x y DATA(1, 2, -2) + + + 1/175 x y DATA(-2, -2, -1) - 1/350 x y DATA(1, -1, -2) + + - 1/350 x y DATA(-1, -1, -2) + 1/175 x y DATA(2, -2, -1) + + - 1/350 x y DATA(1, -2, -1) - 1/350 x y DATA(-1, -2, -1) + + - 1/175 x y DATA(-2, 1, -2) + 1/175 x y DATA(2, -1, -2) + + + 1/350 x y DATA(1, 1, -2) + 1/350 x y DATA(-1, 1, -2) + + 187 + - 2/175 x y DATA(-2, 2, -2) - ---- DATA(-2, 0, 1) + 7000 + + - 1/175 x y DATA(2, 1, -2) + 1/350 x y DATA(1, -1, 2) + + - 1/175 x y DATA(2, -1, 2) + 1/350 x y DATA(-1, -1, 2) + + 167 + + 1/175 x y DATA(2, 2, 1) - ---- DATA(-2, 1, 1) + 7000 + + - 1/175 x y DATA(-1, -2, -2) - 1/350 x y DATA(-1, 1, 2) + + + 2/175 x y DATA(-2, -2, -2) + 1/700 x y DATA(-1, 1, -1) + + - 1/175 x y DATA(1, -2, -2) + 1/175 x y DATA(2, 1, 2) + + 107 + - 1/175 x y DATA(-1, 2, 2) - ---- DATA(-2, 2, 1) + 2/175 x y DATA(2, 2, 2) + 7000 + + + 2/175 x y DATA(2, -2, -2) - 1/700 x y DATA(1, -1, -1) + + - 1/175 x y DATA(2, 2, -1) - 1/175 x y DATA(1, 2, 2) + + + 1/175 x y DATA(-2, -1, -2) - 1/350 x y DATA(1, 2, 1) + + - 1/350 x y DATA(2, -1, 1) - 1/350 x y DATA(-1, 2, 1) + + 137 2 + + ---- DATA(-2, -2, 2) + 1/200 z DATA(1, 2, 2) + 5250 + + + 1/350 x y DATA(2, -1, -1) + 1/350 x y DATA(-1, 2, -1) + + - 1/350 x y DATA(2, 1, -1) + 1/350 x y DATA(1, 2, -1) + + - 1/700 x y DATA(-1, -1, -1) + 2/175 x y DATA(-2, 2, 2) + + - 1/700 x y DATA(1, 1, 1) + 1/175 x y DATA(-2, 1, 2) + + - 2/175 x y DATA(2, -2, 2) - 1/175 x y DATA(-2, -1, 2) + + + 1/175 x y DATA(1, -2, 2) + 1/175 x y DATA(-1, -2, 2) + + + 1/700 x y DATA(-1, -1, 1) + 1/700 x y DATA(1, -1, 1) + + - 1/700 x y DATA(-1, 1, 1) + 1/350 x y DATA(2, 1, 1) + +> coeff_as_lc_of_data(%, posn_list_3d_size5); +bytes used=2160947952, alloc=15136044, time=336.18 +bytes used=2161948372, alloc=15136044, time=336.26 +bytes used=2162948604, alloc=15136044, time=336.34 +bytes used=2163976896, alloc=15136044, time=336.42 +bytes used=2165053552, alloc=15136044, time=336.50 +bytes used=2166101300, alloc=15136044, time=336.58 +bytes used=2167107156, alloc=15136044, time=336.67 +bytes used=2168128956, alloc=15136044, time=336.75 +bytes used=2169129168, alloc=15136044, time=336.83 +bytes used=2170177428, alloc=15136044, time=336.92 +bytes used=2171177572, alloc=15136044, time=337.00 +bytes used=2172177940, alloc=15136044, time=337.09 +bytes used=2173194732, alloc=15136044, time=337.17 +bytes used=2174202564, alloc=15136044, time=337.26 +bytes used=2175202684, alloc=15136044, time=337.35 +bytes used=2176229760, alloc=15136044, time=337.44 +bytes used=2177229972, alloc=15136044, time=337.53 +bytes used=2178230280, alloc=15136044, time=337.62 +bytes used=2179230396, alloc=15136044, time=337.72 +bytes used=2180230596, alloc=15136044, time=337.81 +bytes used=2181234568, alloc=15136044, time=337.91 +bytes used=2182239372, alloc=15136044, time=338.01 +bytes used=2183240356, alloc=15136044, time=338.12 +bytes used=2184241168, alloc=15136044, time=338.20 +bytes used=2185245620, alloc=15136044, time=338.28 +bytes used=2186250056, alloc=15136044, time=338.35 + 2 2 2 137 +[COEFF(-2, -2, -2) = 1/175 y + 1/100 x - 1/125 y + 1/100 z - ---- + 5250 + + + 2/175 y z - 2/175 x + 4/245 x z - 2/175 z + 2/175 x y, COEFF(-1, -2, -2) + + 2 107 2 2 + = - 1/50 x - 1/175 x y + ---- + 1/200 z - 1/175 z - 2/245 x z + 1/350 y + 7000 + + + 1/175 y z + 1/175 x - 1/250 y, + + COEFF(0, -2, -2) = - 2/175 x y - 4/245 x z + 2/175 x, COEFF(1, -2, -2) = + + 2 2 + 1/250 y + 1/175 x - 2/245 x z - 1/200 z - 1/175 y z + 1/175 z + 1/50 x + + 2 107 2 + - 1/175 x y - 1/350 y - ----, COEFF(2, -2, -2) = - 1/175 y + 2/175 x y + 7000 + + 137 2 + + 1/125 y + 2/175 z - 2/175 x + ---- - 1/100 z + 4/245 x z - 2/175 y z + 5250 + + 2 2 47 + - 1/100 x , COEFF(-2, -1, -2) = - 1/350 y - 2/175 x - ---- - 1/250 y + 5250 + + 2 2 + + 1/175 y z + 4/245 x z + 1/100 x - 2/175 z + 1/175 x y + 1/100 z , + + 2 2 + COEFF(-1, -1, -2) = - 1/500 y - 1/50 x - 2/245 x z + 1/350 y z - 1/700 y + + 167 2 + + ---- + 1/200 z - 1/175 z - 1/350 x y + 1/175 x, + 7000 + + COEFF(0, -1, -2) = - 1/175 x y + 2/175 x - 4/245 x z, COEFF(1, -1, -2) = + + 167 2 2 2 + - ---- + 1/50 x - 2/245 x z - 1/200 z - 1/350 x y + 1/700 y - 1/350 y z + 7000 + + 2 + + 1/500 y + 1/175 z + 1/175 x, COEFF(2, -1, -2) = 1/175 x y + 1/350 y + + 2 2 47 + + 2/175 z - 1/100 z + 4/245 x z + 1/250 y - 1/100 x - 1/175 y z + ---- + 5250 + + - 2/175 x, COEFF(-2, 0, -2) = + + 2 2 17 2 + 4/245 x z + 1/100 z - 2/175 x - 2/175 z - 1/175 y - ---- + 1/100 x , + 5250 + + COEFF(-1, 0, -2) = + + 187 2 2 2 + ---- - 1/350 y + 1/200 z - 1/175 z + 1/175 x - 2/245 x z - 1/50 x , + 7000 + + COEFF(0, 0, -2) = 2/175 x - 4/245 x z, COEFF(1, 0, -2) = + + 2 2 2 187 + - 2/245 x z - 1/200 z + 1/175 x + 1/175 z + 1/350 y + 1/50 x - ----, + 7000 + + COEFF(2, 0, -2) = + + 2 2 17 2 + 1/175 y - 2/175 x - 1/100 z + 2/175 z + ---- + 4/245 x z - 1/100 x , + 5250 + + 2 47 + COEFF(-2, 1, -2) = - 2/175 z + 1/100 z - 1/175 x y + 1/250 y - ---- + 5250 + + 2 2 + - 1/350 y + 1/100 x - 1/175 y z + 4/245 x z - 2/175 x, COEFF(-1, 1, -2) + + 2 2 + = 1/350 x y - 1/350 y z - 1/700 y - 1/175 z + 1/500 y - 1/50 x + + 2 167 + + 1/200 z - 2/245 x z + ---- + 1/175 x, + 7000 + + COEFF(0, 1, -2) = - 4/245 x z + 2/175 x + 1/175 x y, COEFF(1, 1, -2) = + + 2 167 + - 1/500 y + 1/350 y z - 2/245 x z + 1/350 x y + 1/700 y + 1/175 z - ---- + 7000 + + 2 2 2 2 + - 1/200 z + 1/50 x + 1/175 x, COEFF(2, 1, -2) = - 1/100 x - 1/100 z + + 2 47 + + 1/350 y + 2/175 z + 4/245 x z - 1/175 x y + ---- - 1/250 y + 1/175 y z + 5250 + + 2 + - 2/175 x, COEFF(-2, 2, -2) = - 2/175 z + 1/100 x - 2/175 y z + 1/125 y + + 2 137 2 + + 4/245 x z + 1/175 y - ---- - 2/175 x y + 1/100 z - 2/175 x, + 5250 + + 2 107 + COEFF(-1, 2, -2) = - 1/50 x - 2/245 x z + 1/175 x y + ---- - 1/175 z + 7000 + + 2 2 + + 1/350 y - 1/175 y z + 1/200 z + 1/250 y + 1/175 x, + + COEFF(0, 2, -2) = 2/175 x y + 2/175 x - 4/245 x z, COEFF(1, 2, -2) = + + 2 2 2 + - 1/200 z - 1/250 y - 1/350 y + 1/175 x + 1/175 z - 2/245 x z + 1/50 x + + 107 2 2 + + 1/175 x y + 1/175 y z - ----, COEFF(2, 2, -2) = - 1/100 x - 1/175 y + 7000 + + 2 137 + - 1/100 z + 2/175 y z - 2/175 x y - 1/125 y + ---- + 2/175 z - 2/175 x + 5250 + + + 4/245 x z, COEFF(-2, -2, -1) = - 2/245 x z - 1/175 y z - 1/175 x + + 2 107 2 2 + + 1/200 x + ---- + 1/350 y - 1/50 z + 1/175 x y + 1/175 z - 1/250 y, + 7000 + + 2 2 + COEFF(-1, -2, -1) = - 1/500 y + 1/350 x - 1/100 x - 1/100 z - 1/350 y z + + 229 2 + + ----- + 1/350 z + 1/245 x z + 1/700 y - 1/350 x y, + 10500 + + COEFF(0, -2, -1) = 2/245 x z - 1/175 x y + 1/175 x, COEFF(1, -2, -1) = + + 2 2 229 2 + 1/245 x z - 1/350 x y + 1/100 z + 1/100 x + 1/350 x - ----- - 1/700 y + 10500 + + + 1/500 y - 1/350 z + 1/350 y z, COEFF(2, -2, -1) = - 1/175 z - 2/245 x z + + 2 2 107 + + 1/50 z + 1/175 x y + 1/175 y z - 1/350 y - 1/175 x - ---- + 1/250 y + 7000 + + 2 2 + - 1/200 x , COEFF(-2, -1, -1) = 1/350 x y - 2/245 x z - 1/175 x + 1/200 x + + 2 167 2 + + 1/175 z - 1/500 y - 1/50 z + ---- - 1/700 y - 1/350 y z, + 7000 + + 2 2 137 + COEFF(-1, -1, -1) = - 1/100 x - 1/1400 y + ---- - 1/1000 y - 1/700 y z + 5250 + + 2 + + 1/350 x - 1/700 x y + 1/350 z - 1/100 z + 1/245 x z, + + COEFF(0, -1, -1) = 1/175 x + 2/245 x z - 1/350 x y, COEFF(1, -1, -1) = + + 2 2 2 + 1/1400 y - 1/350 z + 1/350 x + 1/245 x z + 1/100 x + 1/700 y z + 1/100 z + + 137 167 + + 1/1000 y - ---- - 1/700 x y, COEFF(2, -1, -1) = 1/500 y - 1/175 z - ---- + 5250 7000 + + 2 2 2 + - 2/245 x z + 1/350 x y + 1/350 y z - 1/200 x + 1/50 z + 1/700 y + + - 1/175 x, COEFF(-2, 0, -1) = + + 2 187 2 2 + 1/200 x + ---- + 1/175 z - 2/245 x z - 1/50 z - 1/350 y - 1/175 x, + 7000 + + COEFF(-1, 0, -1) = + + 289 2 2 2 + 1/245 x z + ----- + 1/350 x + 1/350 z - 1/700 y - 1/100 x - 1/100 z , + 10500 + + COEFF(0, 0, -1) = 1/175 x + 2/245 x z, COEFF(1, 0, -1) = + + 2 2 289 2 + 1/245 x z + 1/350 x + 1/100 z - 1/350 z + 1/700 y - ----- + 1/100 x , + 10500 + + COEFF(2, 0, -1) = + + 187 2 2 2 + - 2/245 x z - 1/175 x - ---- + 1/350 y + 1/50 z - 1/175 z - 1/200 x , + 7000 + + 2 2 167 + COEFF(-2, 1, -1) = 1/200 x + 1/500 y - 1/350 x y - 1/700 y + ---- + 7000 + + 2 + + 1/350 y z + 1/175 z - 1/175 x - 2/245 x z - 1/50 z , COEFF(-1, 1, -1) = + + 2 2 2 + 1/245 x z + 1/350 z - 1/100 x + 1/1000 y - 1/100 z - 1/1400 y + + 137 + + 1/700 x y + 1/350 x + ---- + 1/700 y z, + 5250 + + COEFF(0, 1, -1) = 2/245 x z + 1/175 x + 1/350 x y, COEFF(1, 1, -1) = + + 2 2 2 + 1/100 x - 1/700 y z + 1/1400 y + 1/245 x z + 1/100 z + 1/350 x + + 137 + - 1/1000 y - ---- - 1/350 z + 1/700 x y, COEFF(2, 1, -1) = - 1/350 x y + 5250 + + 167 2 2 + - 1/350 y z - ---- - 1/175 z - 2/245 x z - 1/200 x - 1/175 x + 1/50 z + 7000 + + 2 107 2 + - 1/500 y + 1/700 y , COEFF(-2, 2, -1) = ---- - 1/50 z + 1/175 y z + 7000 + + 2 2 + + 1/350 y - 1/175 x y + 1/200 x + 1/175 z + 1/250 y - 2/245 x z + + 229 + - 1/175 x, COEFF(-1, 2, -1) = 1/245 x z + 1/500 y + ----- + 1/350 x + 10500 + + 2 2 2 + + 1/700 y - 1/100 z + 1/350 x y + 1/350 y z - 1/100 x + 1/350 z, + + COEFF(0, 2, -1) = 1/175 x + 1/175 x y + 2/245 x z, COEFF(1, 2, -1) = + + 2 2 2 + - 1/700 y + 1/100 z + 1/100 x + 1/350 x y + 1/350 x - 1/350 y z + + 229 2 + - 1/500 y - 1/350 z + 1/245 x z - -----, COEFF(2, 2, -1) = 1/50 z + 10500 + + 2 107 + - 1/200 x - 1/175 y z - 1/175 x y - ---- - 1/175 z - 2/245 x z - 1/250 y + 7000 + + 2 + - 1/175 x - 1/350 y , COEFF(-2, -2, 0) = - 4/245 x z + 2/175 z - 2/175 y z, + + COEFF(-1, -2, 0) = 2/245 x z + 1/175 z - 1/175 y z, + + COEFF(0, -2, 0) = 4/245 x z, + + COEFF(1, -2, 0) = - 1/175 z + 2/245 x z + 1/175 y z, + + COEFF(2, -2, 0) = - 2/175 z + 2/175 y z - 4/245 x z, + + COEFF(-2, -1, 0) = - 1/175 y z + 2/175 z - 4/245 x z, + + COEFF(-1, -1, 0) = 2/245 x z + 1/175 z - 1/350 y z, + + COEFF(0, -1, 0) = 4/245 x z, + + COEFF(1, -1, 0) = 1/350 y z - 1/175 z + 2/245 x z, + + COEFF(2, -1, 0) = 1/175 y z - 2/175 z - 4/245 x z, + + COEFF(-2, 0, 0) = - 4/245 x z + 2/175 z, + + COEFF(-1, 0, 0) = 1/175 z + 2/245 x z, COEFF(0, 0, 0) = 4/245 x z, + + COEFF(1, 0, 0) = 2/245 x z - 1/175 z, + + COEFF(2, 0, 0) = - 2/175 z - 4/245 x z, + + COEFF(-2, 1, 0) = 1/175 y z - 4/245 x z + 2/175 z, + + COEFF(-1, 1, 0) = 1/350 y z + 2/245 x z + 1/175 z, + + COEFF(0, 1, 0) = 4/245 x z, + + COEFF(1, 1, 0) = - 1/350 y z - 1/175 z + 2/245 x z, + + COEFF(2, 1, 0) = - 4/245 x z - 2/175 z - 1/175 y z, + + COEFF(-2, 2, 0) = 2/175 z - 4/245 x z + 2/175 y z, + + COEFF(-1, 2, 0) = 1/175 z + 2/245 x z + 1/175 y z, + + COEFF(0, 2, 0) = 4/245 x z, + + COEFF(1, 2, 0) = 2/245 x z - 1/175 z - 1/175 y z, + + COEFF(2, 2, 0) = - 2/175 y z - 4/245 x z - 2/175 z, COEFF(-2, -2, 1) = + + 2 2 2 + 1/250 y - 1/200 x - 1/175 y z - 1/350 y + 1/50 z - 2/245 x z - 1/175 x y + + 107 2 2 + + 1/175 x + 1/175 z - ----, COEFF(-1, -2, 1) = 1/100 z + 1/100 x + 7000 + + 2 229 + + 1/500 y + 1/350 x y - 1/700 y - 1/350 x + 1/245 x z - ----- - 1/350 y z + 10500 + + + 1/350 z, COEFF(0, -2, 1) = - 1/175 x + 2/245 x z + 1/175 x y, + + 229 2 + COEFF(1, -2, 1) = 1/350 x y + ----- - 1/350 x - 1/350 z + 1/700 y + 10500 + + 2 2 + - 1/100 x - 1/100 z + 1/350 y z + 1/245 x z - 1/500 y, COEFF(2, -2, 1) + + 2 107 2 + = - 1/175 z - 2/245 x z + 1/350 y + ---- - 1/250 y + 1/175 y z + 1/200 x + 7000 + + 2 + + 1/175 x - 1/50 z - 1/175 x y, COEFF(-2, -1, 1) = - 1/350 y z + + 2 2 + - 2/245 x z + 1/700 y - 1/350 x y - 1/200 x + 1/175 z + 1/175 x + + 167 2 2 + + 1/500 y - ---- + 1/50 z , COEFF(-1, -1, 1) = - 1/700 y z + 1/100 x + 7000 + + 137 2 + + 1/1000 y + 1/350 z + 1/245 x z - 1/350 x - ---- + 1/1400 y + 1/700 x y + 5250 + + 2 + + 1/100 z , COEFF(0, -1, 1) = 1/350 x y - 1/175 x + 2/245 x z, + + 2 2 + COEFF(1, -1, 1) = 1/700 y z - 1/100 z + 1/245 x z - 1/1400 y - 1/350 z + + 2 137 + - 1/100 x - 1/1000 y + 1/700 x y + ---- - 1/350 x, COEFF(2, -1, 1) = + 5250 + + 2 2 167 + - 1/50 z + 1/350 y z - 1/350 x y + 1/200 x + ---- - 1/175 z - 1/500 y + 7000 + + 2 + - 2/245 x z - 1/700 y + 1/175 x, COEFF(-2, 0, 1) = + + 2 2 2 187 + 1/175 x + 1/50 z + 1/350 y - 1/200 x - 2/245 x z + 1/175 z - ----, + 7000 + + COEFF(-1, 0, 1) = + + 2 289 2 2 + 1/700 y - ----- - 1/350 x + 1/350 z + 1/245 x z + 1/100 z + 1/100 x , + 10500 + + COEFF(0, 0, 1) = - 1/175 x + 2/245 x z, COEFF(1, 0, 1) = + + 2 2 289 2 + - 1/350 z - 1/700 y - 1/350 x + 1/245 x z - 1/100 x + ----- - 1/100 z , + 10500 + + COEFF(2, 0, 1) = + + 2 2 2 187 + 1/175 x - 1/350 y - 1/50 z + 1/200 x - 1/175 z - 2/245 x z + ----, + 7000 + + 2 167 + COEFF(-2, 1, 1) = 1/350 x y + 1/50 z + 1/350 y z - 1/500 y - ---- + 7000 + + 2 2 + + 1/700 y + 1/175 x - 1/200 x - 2/245 x z + 1/175 z, COEFF(-1, 1, 1) = + + 2 + 1/100 x + 1/700 y z - 1/700 x y - 1/1000 y + 1/245 x z - 1/350 x + + 2 2 137 + + 1/100 z + 1/1400 y - ---- + 1/350 z, + 5250 + + COEFF(0, 1, 1) = - 1/175 x - 1/350 x y + 2/245 x z, COEFF(1, 1, 1) = + + 2 2 137 + - 1/100 z - 1/700 y z - 1/350 x - 1/100 x + ---- - 1/350 z - 1/700 x y + 5250 + + 2 + + 1/1000 y + 1/245 x z - 1/1400 y , COEFF(2, 1, 1) = 1/175 x - 1/350 y z + + 167 2 2 + + ---- - 1/50 z - 2/245 x z + 1/500 y + 1/200 x - 1/175 z + 1/350 x y + 7000 + + 2 2 2 2 + - 1/700 y , COEFF(-2, 2, 1) = 1/175 x y + 1/50 z - 1/350 y - 1/200 x + + 107 + - 2/245 x z + 1/175 z - 1/250 y - ---- + 1/175 x + 1/175 y z, + 7000 + + 2 + COEFF(-1, 2, 1) = 1/100 x - 1/350 x y - 1/500 y + 1/350 y z - 1/350 x + + 2 229 2 + - 1/700 y + 1/245 x z + 1/350 z - ----- + 1/100 z , + 10500 + + COEFF(0, 2, 1) = 2/245 x z - 1/175 x y - 1/175 x, COEFF(1, 2, 1) = + + 2 2 + - 1/350 y z - 1/100 x - 1/350 z + 1/245 x z + 1/500 y + 1/700 y + + 2 229 + - 1/100 z - 1/350 x y + ----- - 1/350 x, COEFF(2, 2, 1) = 1/175 x + 10500 + + 107 2 2 + + 1/175 x y - 2/245 x z + ---- - 1/50 z + 1/250 y - 1/175 y z + 1/200 x + 7000 + + 2 2 + - 1/175 z + 1/350 y , COEFF(-2, -2, 2) = - 1/175 y - 2/175 x y + 1/125 y + + 2 2 137 + - 2/175 z - 1/100 x + 4/245 x z - 1/100 z + 2/175 y z + ---- + 2/175 x, + 5250 + + 107 + COEFF(-1, -2, 2) = - 1/175 z - ---- + 1/175 y z - 1/175 x - 2/245 x z + 7000 + + 2 2 2 + + 1/175 x y - 1/350 y - 1/200 z + 1/250 y + 1/50 x , + + COEFF(0, -2, 2) = 2/175 x y - 4/245 x z - 2/175 x, COEFF(1, -2, 2) = + + 2 2 2 + 1/350 y - 1/175 y z + 1/200 z - 1/50 x + 1/175 x y - 1/250 y - 2/245 x z + + 107 + + 1/175 z + ---- - 1/175 x, COEFF(2, -2, 2) = 2/175 x - 2/175 y z + 7000 + + 2 2 + + 1/100 x + 4/245 x z + 2/175 z + 1/175 y - 2/175 x y - 1/125 y + + 2 137 2 2 + + 1/100 z - ----, COEFF(-2, -1, 2) = - 1/100 z - 2/175 z - 1/100 x + 5250 + + 47 2 + + 2/175 x + 4/245 x z + ---- - 1/175 x y + 1/250 y + 1/175 y z + 1/350 y , + 5250 + + 2 2 + COEFF(-1, -1, 2) = 1/350 x y + 1/700 y - 2/245 x z - 1/175 x + 1/50 x + + 2 167 + + 1/500 y - 1/175 z + 1/350 y z - 1/200 z - ----, + 7000 + + COEFF(0, -1, 2) = - 4/245 x z - 2/175 x + 1/175 x y, COEFF(1, -1, 2) = + + 2 2 + - 1/350 y z - 1/700 y + 1/175 z + 1/200 z + 1/350 x y - 1/175 x + + 2 167 2 + - 2/245 x z - 1/50 x - 1/500 y + ----, COEFF(2, -1, 2) = 1/100 x + 7000 + + 2 47 + + 2/175 x + 1/100 z - 1/250 y - 1/175 y z + 2/175 z - ---- + 4/245 x z + 5250 + + 2 + - 1/350 y - 1/175 x y, COEFF(-2, 0, 2) = + + 17 2 2 2 + ---- + 4/245 x z - 1/100 x + 1/175 y - 2/175 z - 1/100 z + 2/175 x, + 5250 + + COEFF(-1, 0, 2) = + + 2 2 2 187 + - 2/245 x z - 1/175 x - 1/200 z + 1/350 y + 1/50 x - ---- - 1/175 z, + 7000 + + COEFF(0, 0, 2) = - 2/175 x - 4/245 x z, COEFF(1, 0, 2) = + + 2 187 2 2 + - 1/50 x + ---- - 1/175 x - 2/245 x z + 1/175 z + 1/200 z - 1/350 y , + 7000 + + COEFF(2, 0, 2) = + + 2 17 2 2 + 2/175 x + 1/100 x - ---- - 1/175 y + 2/175 z + 1/100 z + 4/245 x z, + 5250 + + 2 + COEFF(-2, 1, 2) = 1/175 x y + 2/175 x + 1/350 y + 4/245 x z - 1/175 y z + + 2 47 2 + - 1/100 z + ---- - 2/175 z - 1/250 y - 1/100 x , COEFF(-1, 1, 2) = + 5250 + + 2 167 + - 1/350 x y - 2/245 x z - 1/175 z - 1/175 x - 1/200 z - 1/500 y - ---- + 7000 + + 2 2 + - 1/350 y z + 1/700 y + 1/50 x , + + 167 + COEFF(0, 1, 2) = - 2/175 x - 1/175 x y - 4/245 x z, COEFF(1, 1, 2) = ---- + 7000 + + 2 2 + - 1/700 y - 1/175 x - 1/50 x + 1/350 y z - 1/350 x y + 1/500 y + + 2 2 + - 2/245 x z + 1/200 z + 1/175 z, COEFF(2, 1, 2) = - 1/350 y + 2/175 z + + 2 47 2 + + 1/100 x + 1/175 x y - ---- + 2/175 x + 1/100 z + 1/175 y z + 1/250 y + 5250 + + 2 2 2 + + 4/245 x z, COEFF(-2, 2, 2) = 4/245 x z - 1/100 z - 1/100 x - 1/175 y + + 137 + + 2/175 x - 2/175 z - 2/175 y z + ---- + 2/175 x y - 1/125 y, + 5250 + + 2 2 + COEFF(-1, 2, 2) = - 2/245 x z - 1/200 z - 1/175 x y - 1/175 y z + 1/50 x + + 107 2 + - ---- - 1/175 z - 1/250 y - 1/350 y - 1/175 x, + 7000 + + 107 + COEFF(0, 2, 2) = - 2/175 x y - 4/245 x z - 2/175 x, COEFF(1, 2, 2) = ---- + 7000 + + 2 2 2 + - 2/245 x z - 1/175 x + 1/175 y z + 1/350 y - 1/50 x + 1/200 z + + 2 137 + + 1/250 y - 1/175 x y + 1/175 z, COEFF(2, 2, 2) = 1/100 x - ---- + 5250 + + 2 + + 4/245 x z + 1/175 y + 1/125 y + 2/175 z + 2/175 x + 2/175 y z + + 2 + + 2/175 x y + 1/100 z ] + +> print_coeff__lc_of_data(%, "coeff_dxz_", "fp", +> "3d.coeffs/3d.cube.order4.smooth0/coeff-dxz.compute.c"); +bytes used=2187250212, alloc=15136044, time=338.44 +bytes used=2188250424, alloc=15136044, time=338.53 +bytes used=2189251124, alloc=15136044, time=338.62 +bytes used=2190251416, alloc=15136044, time=338.78 +bytes used=2191251940, alloc=15136044, time=339.50 +bytes used=2192252112, alloc=15136044, time=340.21 +bytes used=2193252676, alloc=15136044, time=340.93 +bytes used=2194252968, alloc=15136044, time=341.62 +bytes used=2195253196, alloc=15136044, time=342.32 +bytes used=2196253456, alloc=15136044, time=342.49 +bytes used=2197253608, alloc=15136044, time=342.58 +bytes used=2198253856, alloc=15136044, time=342.67 +bytes used=2199263628, alloc=15136044, time=342.76 +bytes used=2200278652, alloc=15136044, time=342.85 +bytes used=2201279608, alloc=15136044, time=342.94 +bytes used=2202279860, alloc=15136044, time=343.17 +bytes used=2203280016, alloc=15136044, time=344.47 +bytes used=2204280236, alloc=15136044, time=344.86 +bytes used=2205280448, alloc=15136044, time=345.04 +bytes used=2206280704, alloc=15136044, time=345.11 +bytes used=2207280960, alloc=15136044, time=345.18 +bytes used=2208281132, alloc=15136044, time=345.25 +bytes used=2209281400, alloc=15136044, time=345.32 +bytes used=2210281584, alloc=15136044, time=345.39 +bytes used=2211281788, alloc=15136044, time=345.47 +bytes used=2212282064, alloc=15136044, time=345.55 +bytes used=2213282224, alloc=15136044, time=345.65 +bytes used=2214282428, alloc=15136044, time=345.76 +bytes used=2215282832, alloc=15136044, time=345.87 +bytes used=2216283008, alloc=15136044, time=345.99 +bytes used=2217283204, alloc=15136044, time=346.12 +bytes used=2218295284, alloc=15136044, time=346.26 +bytes used=2219295508, alloc=15136044, time=346.38 +bytes used=2220295792, alloc=15136044, time=346.47 +bytes used=2221295992, alloc=15136044, time=347.41 +bytes used=2222296144, alloc=15136044, time=348.62 +bytes used=2223296332, alloc=15136044, time=349.14 +bytes used=2224296776, alloc=15136044, time=349.23 +bytes used=2225297012, alloc=15136044, time=349.31 +bytes used=2226297232, alloc=15136044, time=349.38 +bytes used=2227297456, alloc=15136044, time=349.46 +bytes used=2228297736, alloc=15136044, time=349.54 +bytes used=2229297896, alloc=15136044, time=349.61 +bytes used=2230298160, alloc=15136044, time=349.70 +bytes used=2231308820, alloc=15136044, time=349.87 +bytes used=2232314752, alloc=15136044, time=350.00 +bytes used=2233314912, alloc=15136044, time=350.12 +bytes used=2234315088, alloc=15136044, time=350.50 +bytes used=2235320288, alloc=15136044, time=352.14 +bytes used=2236320496, alloc=15136044, time=352.66 +bytes used=2237320676, alloc=15136044, time=353.13 +bytes used=2238321112, alloc=15136044, time=353.22 +bytes used=2239321360, alloc=15136044, time=353.29 +bytes used=2240321780, alloc=15136044, time=353.49 +bytes used=2241322032, alloc=15136044, time=354.67 +bytes used=2242322280, alloc=15136044, time=355.90 +bytes used=2243322436, alloc=15136044, time=356.30 +bytes used=2244322772, alloc=15136044, time=356.38 +bytes used=2245322952, alloc=15136044, time=356.46 +bytes used=2246323196, alloc=15136044, time=356.75 +bytes used=2247323412, alloc=15136044, time=358.45 +bytes used=2248323592, alloc=15136044, time=359.06 +bytes used=2249323820, alloc=15136044, time=359.41 +bytes used=2250324028, alloc=15136044, time=359.50 +bytes used=2251324208, alloc=15136044, time=359.62 +> +# d^2/dy^2 +> simplify( diff(interp_3d_cube_order4_smooth0,y,y) ); +bytes used=2252324432, alloc=15136044, time=359.71 +bytes used=2253324828, alloc=15136044, time=359.80 +bytes used=2254325320, alloc=15136044, time=359.88 +bytes used=2255325548, alloc=15136044, time=359.96 +bytes used=2256325704, alloc=15136044, time=360.05 +bytes used=2257325880, alloc=15136044, time=360.14 +bytes used=2258326108, alloc=15136044, time=360.23 +bytes used=2259326224, alloc=15136044, time=360.31 +bytes used=2260326740, alloc=15136044, time=360.40 +bytes used=2261326868, alloc=15136044, time=360.48 +166 151 166 +---- DATA(-1, 1, -1) + ---- DATA(0, 1, -1) + ---- DATA(1, 1, -1) +3675 3675 3675 + + 151 136 151 + + ---- DATA(-1, -1, 0) + ---- DATA(0, -1, 0) + ---- DATA(1, -1, 0) + 3675 3675 3675 + + 61 151 166 + - --- DATA(-1, 0, 0) + ---- DATA(-1, 1, 0) + ---- DATA(-1, 1, 1) + 490 3675 3675 + + 57 166 166 + - --- DATA(-1, 0, 1) + ---- DATA(1, -1, 1) + ---- DATA(-1, -1, 1) + 490 3675 3675 + + 151 169 + + ---- DATA(0, -1, 1) - ----- DATA(-1, -2, 2) - 1/300 DATA(0, -2, 2) + 3675 14700 + + 57 61 57 + - --- DATA(-1, 0, -1) - --- DATA(0, 0, -1) - --- DATA(1, 0, -1) + 490 490 490 + + 13 61 136 + - -- DATA(0, 0, 0) - --- DATA(1, 0, 0) + ---- DATA(0, 1, 0) + 98 490 3675 + + 151 61 169 + + ---- DATA(1, 1, 0) - --- DATA(0, 0, 1) - ----- DATA(1, -2, 2) + 3675 490 14700 + + 256 529 33 + + ---- DATA(-2, -1, 2) - ----- DATA(2, -2, 2) - --- DATA(-2, 0, 2) + 3675 14700 490 + + 256 57 151 + + ---- DATA(-2, 1, 2) - --- DATA(1, 0, 1) + ---- DATA(0, 1, 1) + 3675 490 3675 + + 166 529 + + ---- DATA(1, 1, 1) - ----- DATA(-2, 2, 2) + 1/100 y z DATA(2, -2, -1) + 3675 14700 + + 2 2 + + 3/25 y DATA(2, 0, -2) + 3/25 y DATA(1, 0, -2) + + 2 2 + + 3/25 y DATA(-1, 0, -2) + 3/25 y DATA(-2, 0, -2) + + 2 2 2 + + 3/25 y DATA(-2, 0, -1) + 3/25 y DATA(2, 0, 2) + 3/25 y DATA(-1, 0, 2) + + 2 + + 1/100 y z DATA(1, -2, -1) + 3/25 y DATA(1, 0, 2) + + 2 2 2 + + 3/25 y DATA(2, 0, -1) + 3/25 y DATA(-1, 0, 1) + 3/25 y DATA(2, 0, 1) + + 2 2 2 + + 3/25 y DATA(-2, 0, 2) + 3/25 y DATA(1, 0, 1) + 3/25 y DATA(-1, 0, -1) + + 2 + + 3/25 y DATA(1, 0, -1) + 1/100 y z DATA(-1, -2, -1) + + + 2/175 x z DATA(2, 0, -2) + 1/175 x z DATA(1, 0, -2) + + - 1/175 x z DATA(-1, 0, -2) - 2/175 x z DATA(-2, 0, -2) + + + 1/100 y z DATA(-2, -2, -1) - 1/50 y z DATA(2, 2, -2) + + - 2/175 x z DATA(2, 0, 2) - 1/50 y z DATA(1, 2, -2) + + + 1/175 x z DATA(-1, 0, 2) - 1/175 x z DATA(-2, 0, -1) + + - 1/50 y z DATA(-1, 2, -2) + 1/50 y z DATA(-2, 1, -1) + + 2 + - 1/50 y z DATA(-2, -1, -1) - 2/245 z DATA(-2, 0, -2) + + - 1/175 x z DATA(2, 0, 1) + 1/50 x y DATA(2, 2, 0) + + - 1/175 x z DATA(1, 0, 2) - 1/100 y z DATA(-2, 2, -1) + + + 1/175 x z DATA(2, 0, -1) - 1/25 x y DATA(2, 1, 0) + + - 1/100 x y DATA(-1, 2, 0) + 2/175 x z DATA(-2, 0, 2) + + + 1/25 x y DATA(2, -1, 0) - 1/350 x z DATA(1, 0, 1) + + 2 + - 1/100 y z DATA(-2, -2, 1) + 3/25 y DATA(-2, 0, 1) + + + 1/350 x z DATA(-1, 0, 1) + 1/350 x z DATA(1, 0, -1) + + - 1/350 x z DATA(-1, 0, -1) + 1/175 x z DATA(-2, 0, 1) + + 2 2 + - 2/245 x DATA(2, 0, -2) + 1/245 z DATA(-2, 0, -1) + + 2 2 + - 2/245 z DATA(2, 0, -2) - 2/245 z DATA(1, 0, -2) + + 2 + - 2/245 z DATA(-1, 0, -2) + 2/175 x DATA(-2, 0, 2) + + 2 2 + - 1/175 x DATA(1, 0, 1) - 2/245 z DATA(2, 0, 2) - 2/245 z DATA(-1, 0, 2) + + 2 2 + - 2/245 z DATA(1, 0, 2) - 2/245 z DATA(-2, 0, 2) + + 2 2 + + 1/245 z DATA(2, 0, -1) + 1/245 z DATA(-2, 0, 1) + + 2 2 + + 1/245 z DATA(1, 0, 1) + 1/245 z DATA(-1, 0, 1) + + 2 2 + + 1/245 z DATA(2, 0, 1) + 1/245 z DATA(-1, 0, -1) + + 2 + + 1/245 z DATA(1, 0, -1) + 2/175 z DATA(1, 0, -2) + + + 2/175 z DATA(-2, 0, -2) + 2/175 z DATA(-1, 0, -2) + + + 1/175 z DATA(-2, 0, -1) - 2/175 z DATA(2, 0, 2) + 2/175 z DATA(2, 0, -2) + + - 2/175 z DATA(-1, 0, 2) - 2/175 z DATA(1, 0, 2) + 1/175 z DATA(2, 0, -1) + + - 1/175 z DATA(2, 0, 1) + 1/175 z DATA(1, 0, -1) - 2/175 z DATA(-2, 0, 2) + + - 1/175 z DATA(1, 0, 1) - 1/175 z DATA(-1, 0, 1) + 1/175 z DATA(-1, 0, -1) + + 2 2 + + 1/245 x DATA(1, 0, -2) + 1/245 x DATA(-1, 0, -2) + + 2 2 + - 2/245 x DATA(-2, 0, -2) - 2/245 x DATA(-2, 0, -1) + + 2 2 + - 2/245 x DATA(2, 0, 2) + 1/245 x DATA(-1, 0, 2) + + 2 + + 1/245 x DATA(1, 0, 2) - 1/175 z DATA(-2, 0, 1) + + 2 2 + - 2/245 x DATA(-2, 0, 2) + 1/245 x DATA(1, 0, 1) + + 2 2 + - 2/245 x DATA(2, 0, 1) + 1/245 x DATA(-1, 0, 1) + + 2 2 + - 2/245 x DATA(2, 0, -1) - 2/245 x DATA(-2, 0, 1) + + 2 2 + + 1/245 x DATA(-1, 0, -1) + 1/245 x DATA(1, 0, -1) + + - 2/175 x DATA(2, 0, -2) - 1/175 x DATA(1, 0, -2) + + + 1/175 x DATA(-1, 0, -2) + 2/175 x DATA(-2, 0, -2) + + + 2/175 x DATA(-2, 0, -1) - 2/175 x DATA(2, 0, 2) + 1/175 x DATA(-1, 0, 2) + + - 1/175 x DATA(1, 0, 2) - 2/175 x DATA(2, 0, -1) - 2/175 x DATA(2, 0, 1) + + + 1/175 x DATA(-1, 0, -1) - 1/175 x DATA(1, 0, -1) + + 166 + + 1/175 x DATA(-1, 0, 1) + 2/175 x DATA(-2, 0, 1) + ---- DATA(-1, -1, -1) + 3675 + + 151 191 + + ---- DATA(0, -1, -1) + ----- DATA(1, 2, -1) - 1/50 x y DATA(-1, -1, 0) + 3675 14700 + + 211 + + 1/50 x y DATA(1, -1, 0) + 1/50 x y DATA(-1, 1, 0) + ---- DATA(2, 1, -1) + 3675 + + 191 311 + + ----- DATA(-1, 2, -1) + ----- DATA(0, 2, -1) - 1/100 y z DATA(2, -2, 1) + 14700 14700 + + + 1/50 y z DATA(-2, -1, 1) - 1/50 y z DATA(-2, 1, 1) + + 211 + + ---- DATA(2, -1, -1) - 9/98 DATA(2, 0, -1) + 1/100 y z DATA(-2, 2, 1) + 3675 + + 211 + - 1/50 x y DATA(1, 1, 0) - 1/50 y z DATA(-2, -2, 2) + ---- DATA(2, 1, 1) + 3675 + + 191 311 191 + + ----- DATA(-1, 2, 1) + ----- DATA(0, 2, 1) + ----- DATA(1, 2, 1) + 14700 14700 14700 + + - 1/25 y z DATA(-1, -1, -2) + 1/50 x y DATA(-2, -2, 0) + + - 1/25 x y DATA(-2, -1, 0) - 1/50 x y DATA(2, -2, 0) + + 211 + - 1/100 x y DATA(1, -2, 0) + 1/25 x y DATA(-2, 1, 0) + ---- DATA(2, -1, 1) + 3675 + + 166 + - 9/98 DATA(2, 0, 1) + ---- DATA(1, -1, -1) - 1/50 x y DATA(-2, 2, 0) + 3675 + + 311 + + 1/100 x y DATA(-1, -2, 0) + ----- DATA(1, 2, 0) - 1/300 DATA(2, 2, 0) + 14700 + + 311 431 + + 4/75 DATA(2, 1, 0) + ----- DATA(-1, 2, 0) + ----- DATA(0, 2, 0) + 14700 14700 + + 169 + + 4/75 DATA(2, -1, 0) - 1/10 DATA(2, 0, 0) - ----- DATA(2, 2, -1) + 14700 + + 169 256 + - 1/50 y z DATA(0, -1, -1) - ----- DATA(1, 2, 2) + ---- DATA(-2, -1, -2) + 14700 3675 + + 529 + - ----- DATA(2, 2, 2) - 1/175 x DATA(-1, 2, 0) - 1/175 x DATA(2, -1, 0) + 14700 + + 529 169 211 + - ----- DATA(2, -2, -2) - ----- DATA(1, -2, -2) + ---- DATA(1, 1, 2) + 14700 14700 3675 + + 256 169 + + ---- DATA(2, 1, 2) - ----- DATA(-1, 2, 2) - 1/300 DATA(0, 2, 2) + 3675 14700 + + 169 + - 1/300 DATA(0, -2, -2) - ----- DATA(-1, -2, -2) - 9/98 DATA(1, 0, 2) + 14700 + + 33 211 + - --- DATA(2, 0, 2) + ---- DATA(-1, 1, 2) - 1/100 y z DATA(0, 2, -1) + 490 3675 + + 529 + + 4/75 DATA(0, 1, 2) + 1/100 y z DATA(0, 2, 1) - ----- DATA(-2, -2, -2) + 14700 + + 211 256 + + ---- DATA(1, -1, 2) + ---- DATA(2, -1, 2) - 9/98 DATA(-1, 0, 2) + 3675 3675 + + 211 + - 1/10 DATA(0, 0, 2) + ---- DATA(-1, -1, 2) + 4/75 DATA(0, -1, 2) + 3675 + + 169 + - ----- DATA(2, 2, 1) - 1/175 x z DATA(-2, -1, -2) + 14700 + + 2 2 + - 2/245 x DATA(0, -2, -1) - 2/245 x DATA(0, 2, -2) + + 2 2 2 + - 1/245 x DATA(1, 2, 0) + 2/245 x DATA(2, 2, 0) - 1/245 x DATA(2, 1, 0) + + 2 + - 1/245 x DATA(-1, 2, 0) + 2/175 x z DATA(2, 2, 2) + + 529 2 2 + - ----- DATA(-2, 2, -2) + 1/490 x DATA(1, 1, 0) - 2/245 x DATA(0, 2, -1) + 14700 + + 2 2 + - 2/245 x DATA(0, 2, 1) + 2/245 x DATA(0, 0, -2) + + 2 2 + + 1/245 x DATA(0, -1, -2) + 2/245 x DATA(0, 0, 1) + + 2 2 + - 2/245 x DATA(0, 2, 2) - 2/245 x DATA(0, -2, -2) + + 2 2 + + 1/245 x DATA(0, 1, 2) + 1/245 x DATA(0, -1, 2) + + 2 2 + + 1/245 x DATA(0, 1, -2) + 2/245 x DATA(0, 0, -1) + + - 2/175 x z DATA(2, -2, -2) - 1/700 x z DATA(-1, 1, -1) + + 256 2 2 + + ---- DATA(2, 1, -2) + 2/245 x DATA(0, 0, 0) + 1/245 x DATA(1, 0, 0) + 3675 + + 2 + + 1/245 x DATA(0, 1, 0) - 2/175 z DATA(0, 0, 2) + + 211 + - 1/100 y z DATA(-1, 2, -1) + ---- DATA(1, 1, -2) + 4/75 DATA(0, 1, -2) + 3675 + + 211 256 + + ---- DATA(-1, 1, -2) + ---- DATA(-2, 1, -2) - 1/50 y z DATA(0, 1, 1) + 3675 3675 + + 33 + - 1/25 y z DATA(0, -1, -2) - --- DATA(2, 0, -2) - 1/10 DATA(0, 0, -2) + 490 + + + 1/350 z DATA(0, -1, -1) - 9/98 DATA(1, 0, -2) - 9/98 DATA(-1, 0, -2) + + 33 256 + + 1/100 y z DATA(0, -2, -1) - --- DATA(-2, 0, -2) + ---- DATA(2, -1, -2) + 490 3675 + + 211 + + ---- DATA(1, -1, -2) - 1/175 x DATA(2, 1, 0) + 4/75 DATA(0, -1, -2) + 3675 + + 211 + + ---- DATA(-1, -1, -2) - 1/50 y z DATA(0, 2, -2) + 3675 + + 2 2 + + 1/245 x DATA(0, -1, 1) - 2/245 x DATA(0, -2, 2) + + 2 2 + - 2/245 x DATA(0, -2, 0) + 1/245 x DATA(0, -1, 0) + + 2 2 + + 1/490 x DATA(1, -1, 0) + 1/245 x DATA(-1, 0, 0) + + 2 + + 1/490 x DATA(-1, 1, 0) + 1/700 x z DATA(1, 1, -1) + + 2 + + 1/700 x z DATA(-1, 1, 1) + 2/245 x DATA(-2, -2, 0) + + 2 2 + - 1/245 x DATA(-2, -1, 0) + 2/245 x DATA(2, -2, 0) + + 2 2 + - 1/245 x DATA(1, -2, 0) - 1/245 x DATA(-2, 1, 0) + + 2 2 + + 2/245 x DATA(-2, 2, 0) - 2/245 x DATA(0, 2, 0) + + 2 2 + - 2/245 x DATA(2, 0, 0) - 2/245 x DATA(-2, 0, 0) + + 2 2 + - 2/245 x DATA(0, -2, 1) - 1/245 x DATA(-1, -2, 0) + + 2 2 + + 1/245 x DATA(0, 1, -1) - 2/245 z DATA(0, 0, -2) + + 2 2 + - 1/245 z DATA(0, -1, -2) - 1/245 z DATA(0, -2, -1) + + 2 2 + + 2/245 z DATA(0, 2, -2) - 2/245 z DATA(1, 2, 0) + + 2 169 + - 2/245 z DATA(2, 2, 0) - ----- DATA(2, -2, -1) + 14700 + + 2 + - 1/700 x z DATA(1, -1, 1) + 1/245 z DATA(2, 1, 0) + + 2 2 + + 1/245 z DATA(2, -1, 0) - 2/245 z DATA(0, 0, 2) + + 2 2 + + 1/490 z DATA(0, -1, -1) - 2/245 z DATA(-1, 2, 0) + + 2 + + 1/490 z DATA(0, 1, 1) + 1/700 x z DATA(-1, -1, 1) + + 2 2 + + 2/245 z DATA(0, 2, 2) + 2/245 z DATA(0, -2, -2) + + 2 2 + - 1/245 z DATA(0, 1, 2) - 1/245 z DATA(0, -1, 2) + + 2 + - 1/175 x z DATA(-1, -2, 2) + 1/245 z DATA(1, 1, 0) + + 2 2 + + 1/245 z DATA(0, 0, 1) - 1/245 z DATA(0, 2, -1) + + 2 + - 1/245 z DATA(0, 2, 1) + 1/175 x z DATA(1, -2, 2) + + 2 + + 1/50 y z DATA(0, 2, 2) - 1/245 z DATA(0, 1, -2) + + 2 2 + + 1/245 z DATA(0, 0, -1) + 2/245 z DATA(0, 0, 0) + + 2 2 191 + + 2/245 z DATA(1, 0, 0) + 1/245 z DATA(0, 1, 0) + ----- DATA(1, -2, -1) + 14700 + + + 1/175 x z DATA(-2, -1, 2) + 2/175 x z DATA(2, -2, 2) + + + 1/175 x z DATA(-2, 1, 2) - 1/700 x z DATA(1, 1, 1) + + 311 + - 2/175 x z DATA(-2, 2, 2) + ----- DATA(0, -2, -1) + 14700 + + + 1/50 y z DATA(0, -2, -2) - 1/25 y z DATA(0, 1, 2) + + + 1/25 y z DATA(0, -1, 2) + 1/25 y z DATA(0, 1, -2) + + 2 2 + + 1/245 z DATA(-1, -1, 0) + 1/245 z DATA(0, -1, 0) + + 2 2 + + 1/245 z DATA(1, -1, 0) - 2/245 z DATA(0, -2, 0) + + 2 2 + + 1/490 z DATA(0, -1, 1) + 2/245 z DATA(0, -2, 2) + + 2 2 + + 2/245 z DATA(-1, 0, 0) + 1/245 z DATA(-1, 1, 0) + + 191 + - 1/700 x z DATA(-1, -1, -1) + ----- DATA(-1, -2, -1) + 14700 + + - 1/350 x z DATA(1, 2, -1) + 1/350 x z DATA(2, 1, -1) + + 169 2 + - ----- DATA(-2, -2, -1) + 1/245 z DATA(-2, -1, 0) + 14700 + + 2 2 + - 2/245 z DATA(1, -2, 0) + 1/245 z DATA(-2, 1, 0) + + 2 2 + - 2/245 z DATA(-2, 2, 0) - 2/245 z DATA(0, 2, 0) + + 2 2 + + 2/245 z DATA(2, 0, 0) - 2/245 z DATA(2, -2, 0) + + 2 + + 1/350 x z DATA(-1, 2, -1) - 2/25 y DATA(0, 1, 1) + + 2 2 + - 2/245 z DATA(-1, -2, 0) + 1/490 z DATA(0, 1, -1) + + 2 2 + - 1/245 z DATA(0, -2, 1) - 2/245 z DATA(-2, -2, 0) + + 2 2 2 + + 2/245 z DATA(-2, 0, 0) + 3/25 y DATA(0, 0, 1) + 1/50 y DATA(0, 2, 1) + + 2 2 2 + - 2/25 y DATA(2, 1, 0) + 1/50 y DATA(-1, 2, 0) - 2/25 y DATA(2, -1, 0) + + 2 2 2 + + 3/25 y DATA(0, 0, 2) - 2/25 y DATA(0, -1, -1) + 3/25 y DATA(0, 0, -2) + + 2 2 + - 2/25 y DATA(0, -1, -2) + 1/50 y DATA(0, -2, -1) + + 2 2 2 + + 1/50 y DATA(0, 2, -2) + 1/50 y DATA(1, 2, 0) + 1/50 y DATA(2, 2, 0) + + 2 2 + + 1/50 y DATA(0, 2, -1) - 2/25 y DATA(1, 1, 0) + 2/175 z DATA(0, 0, -2) + + + 1/175 z DATA(0, -1, -2) - 1/175 z DATA(0, -2, -1) + + - 2/175 z DATA(0, 2, -2) - 1/175 z DATA(0, 2, -1) + 1/175 z DATA(0, 2, 1) + + + 2/175 z DATA(0, 2, 2) - 2/175 z DATA(0, -2, -2) - 1/175 z DATA(0, 1, 2) + + - 1/350 z DATA(0, 1, 1) - 1/175 z DATA(0, 0, 1) - 1/175 z DATA(0, -1, 2) + + + 1/175 z DATA(0, 1, -2) + 1/175 z DATA(0, 0, -1) + + + 1/350 x z DATA(2, -1, -1) - 1/350 x z DATA(2, 1, 1) + + 529 + - ----- DATA(2, 2, -2) - 1/350 x z DATA(-1, 2, 1) + 2/175 z DATA(0, -2, 2) + 14700 + + + 1/350 x z DATA(1, 2, 1) - 1/350 x z DATA(2, -1, 1) + + 169 + - ----- DATA(1, 2, -2) + 1/700 x z DATA(1, -1, -1) + 14700 + + - 1/350 z DATA(0, -1, 1) - 1/175 x z DATA(2, 2, -1) + + + 1/350 z DATA(0, 1, -1) + 1/175 z DATA(0, -2, 1) - 1/300 DATA(0, 2, -2) + + 169 + + 1/175 x z DATA(1, 2, 2) - ----- DATA(-1, 2, -2) + 14700 + + 2 2 + - 1/245 x DATA(2, -1, 0) + 2/245 x DATA(0, 0, 2) + + 2 2 211 + + 1/245 x DATA(0, -1, -1) + 1/245 x DATA(0, 1, 1) + ---- DATA(-2, 1, -1) + 3675 + + 2 + - 1/50 y z DATA(0, -2, 2) + 1/50 y DATA(0, 2, 2) + + 2 2 2 + + 1/50 y DATA(0, -2, -2) - 2/25 y DATA(0, 1, 2) - 2/25 y DATA(0, -1, 2) + + 2 2 2 + - 2/25 y DATA(0, 1, -2) + 3/25 y DATA(0, 0, -1) + 3/25 y DATA(0, 0, 0) + + 2 2 2 + + 3/25 y DATA(1, 0, 0) - 2/25 y DATA(0, 1, 0) - 2/25 y DATA(0, -1, 1) + + 2 2 2 + + 1/50 y DATA(0, -2, 2) - 2/25 y DATA(0, -1, 0) - 2/25 y DATA(1, -1, 0) + + 2 2 2 + + 3/25 y DATA(-1, 0, 0) - 2/25 y DATA(-1, 1, 0) + 1/50 y DATA(0, -2, 0) + + 2 2 + - 2/25 y DATA(-1, -1, 0) + 3/25 y DATA(2, 0, 0) + + 2 2 + + 1/50 y DATA(-2, -2, 0) - 2/25 y DATA(-2, -1, 0) + + 2 + + 3/25 y DATA(-2, 0, 0) + 1/175 x DATA(1, 2, 0) + 2/175 x DATA(2, 2, 0) + + 2 2 + + 1/50 y DATA(-1, -2, 0) + 1/50 y DATA(2, -2, 0) + + 2 2 2 + + 1/50 y DATA(1, -2, 0) - 2/25 y DATA(-2, 1, 0) + 1/50 y DATA(-2, 2, 0) + + 2 2 + + 1/50 y DATA(0, 2, 0) - 1/175 x DATA(1, 0, 0) + 1/50 y DATA(0, -2, 1) + + 2 + - 2/25 y DATA(0, 1, -1) - 1/350 x DATA(1, 1, 0) - 9/98 DATA(-2, 0, -1) + + + 1/350 x DATA(-1, 1, 0) + 1/350 x DATA(-1, -1, 0) + + - 1/350 x DATA(1, -1, 0) + 1/175 x DATA(-1, 0, 0) + + - 2/175 x DATA(-2, -2, 0) + 2/175 x DATA(2, -2, 0) + + + 1/175 x DATA(-2, -1, 0) + 1/175 x DATA(-2, 1, 0) + + + 1/175 x DATA(1, -2, 0) - 2/175 x DATA(-2, 2, 0) - 2/175 x DATA(2, 0, 0) + + + 2/175 x DATA(-2, 0, 0) - 1/175 x DATA(-1, -2, 0) + + + 1/25 y DATA(0, -1, -2) + 1/50 y DATA(0, 2, -2) + 1/50 y DATA(1, 2, 0) + + + 1/50 y DATA(2, 2, 0) - 1/25 y DATA(2, 1, 0) + 1/50 y DATA(-1, 2, 0) + + - 1/50 y DATA(0, -2, -1) + 1/25 y DATA(0, -1, -1) - 1/25 y DATA(0, 1, 1) + + + 1/25 y DATA(0, -1, 2) - 1/25 y DATA(1, 1, 0) + 1/50 y DATA(0, 2, -1) + + + 1/50 y DATA(0, 2, 1) - 1/25 y DATA(0, 1, 0) + 1/25 y DATA(0, -1, 1) + + - 1/50 y DATA(0, -2, 2) + 1/25 y DATA(-1, -1, 0) - 1/25 y DATA(0, 1, 2) + + - 1/25 y DATA(0, 1, -2) + 1/25 y DATA(0, -1, 0) + 1/25 y DATA(1, -1, 0) + + 211 + - 1/25 y DATA(-1, 1, 0) - 1/50 y DATA(0, -2, 0) + ---- DATA(-2, -1, -1) + 3675 + + - 1/50 y DATA(-2, -2, 0) - 1/50 y DATA(2, -2, 0) - 1/50 y DATA(1, -2, 0) + + - 1/25 y DATA(-2, 1, 0) + 1/50 y DATA(-2, 2, 0) + 1/50 y DATA(0, 2, 0) + + 2 + + 1/25 y DATA(-2, -1, 0) + 1/490 x DATA(-1, -1, 0) + + - 1/50 y DATA(0, -2, 1) - 1/50 y DATA(-1, -2, 0) - 1/25 y DATA(0, 1, -1) + + 169 431 + - ----- DATA(-2, 2, -1) + 1/50 y z DATA(0, -1, 1) + ----- DATA(0, -2, 0) + 14700 14700 + + 311 + + ----- DATA(-1, -2, 0) - 1/300 DATA(-2, -2, 0) + 1/50 y DATA(0, 2, 2) + 14700 + + - 1/50 y DATA(0, -2, -2) + 1/25 y DATA(2, -1, 0) - 1/10 DATA(-2, 0, 0) + + 311 + + 4/75 DATA(-2, -1, 0) - 1/300 DATA(2, -2, 0) + ----- DATA(1, -2, 0) + 14700 + + - 1/175 x z DATA(-2, -2, 1) - 1/350 x z DATA(-1, -2, 1) + + + 1/350 x z DATA(1, -2, 1) - 1/350 x z DATA(1, 1, 2) + 4/75 DATA(-2, 1, 0) + + + 1/175 x z DATA(2, -2, 1) + 1/350 x z DATA(-2, -1, 1) + + + 1/350 x z DATA(-2, 1, 1) - 1/175 x z DATA(-2, 2, 1) + + - 2/175 x z DATA(-2, -2, 2) + 1/175 x z DATA(-2, -2, -1) + + - 2/175 x z DATA(2, 2, -2) - 1/100 y z DATA(0, -2, 1) + + + 1/50 y z DATA(0, 1, -1) - 1/175 x z DATA(1, 2, -2) + + + 1/175 x z DATA(-1, 2, -2) - 1/300 DATA(-2, 2, 0) + + - 1/350 x z DATA(-2, 1, -1) - 1/350 x z DATA(-2, -1, -1) + + + 1/175 x z DATA(-2, 2, -1) + 1/350 x z DATA(1, -1, -2) + + 169 + - ----- DATA(-2, -2, 1) - 1/350 x z DATA(-1, -1, -2) + 14700 + + - 1/175 x z DATA(2, -2, -1) - 1/350 x z DATA(1, -2, -1) + + + 1/350 x z DATA(-1, -2, -1) + 1/175 x z DATA(2, 2, 1) + + + 2/175 x z DATA(-2, 2, -2) + 1/175 x z DATA(2, 1, -2) + + 191 + + 1/100 x y DATA(1, 2, 0) + ----- DATA(-1, -2, 1) + 14700 + + + 1/350 x z DATA(1, 1, -2) - 1/350 x z DATA(-1, 1, -2) + + - 1/175 x z DATA(-2, 1, -2) + 1/175 x z DATA(2, -1, -2) + + 191 + + ----- DATA(1, -2, 1) + 1/350 x z DATA(-1, 1, 2) + 14700 + + + 2/175 x z DATA(-2, -2, -2) - 1/350 x z DATA(1, -1, 2) + + 311 + + ----- DATA(0, -2, 1) - 1/175 x z DATA(2, -1, 2) + 14700 + + + 1/350 x z DATA(-1, -1, 2) + 1/100 x y DATA(-1, -2, 1) + + 169 + - 1/100 x y DATA(1, -2, 1) - ----- DATA(2, -2, 1) - 1/50 x y DATA(1, 1, 2) + 14700 + + - 1/50 x y DATA(2, -2, 1) - 1/175 x z DATA(1, -2, -2) + + - 1/175 x z DATA(2, 1, 2) - 1/175 x z DATA(-1, 2, 2) + + + 1/175 x z DATA(-1, -2, -2) + 1/25 y z DATA(-1, -1, 2) + + + 1/100 y z DATA(2, 2, 1) - 1/25 x y DATA(-2, -1, -1) + + - 1/50 y z DATA(-2, 2, -2) - 1/25 y z DATA(1, -1, -2) + + 2 2 + - 1/245 z DATA(1, 2, 1) + 1/490 z DATA(2, -1, 1) + + 2 + + 1/490 z DATA(1, -1, -1) + 1/25 y z DATA(2, 1, -2) + + + 1/50 x y DATA(-2, -2, 2) - 1/50 x y DATA(-2, 2, 1) + + + 1/25 x y DATA(-2, 1, 1) - 1/25 x y DATA(-2, -1, 1) + + 2 2 + - 1/245 z DATA(2, 2, -1) - 1/245 z DATA(-2, -1, -2) + + 2 2 + + 2/245 z DATA(2, 2, 2) + 2/245 z DATA(2, -2, -2) + + 2 2 + + 1/490 z DATA(-1, 1, -1) + 2/245 z DATA(1, -2, -2) + + 2 2 + - 1/245 z DATA(2, 1, 2) + 2/245 z DATA(-1, 2, 2) + + 2 2 + + 2/245 z DATA(-1, -2, -2) - 1/245 z DATA(-1, 1, 2) + + 2 2 + + 2/245 z DATA(-2, -2, -2) - 1/245 z DATA(1, -1, 2) + + 2 2 + - 1/245 z DATA(2, -1, 2) - 1/245 z DATA(-1, -1, 2) + + 2 2 + - 1/245 z DATA(2, 2, 1) + 2/245 z DATA(-2, 2, -2) + + 2 2 + - 1/245 z DATA(2, 1, -2) - 1/245 z DATA(1, 1, -2) + + 2 2 + - 1/245 z DATA(-1, 1, -2) - 1/245 z DATA(-2, 1, -2) + + 2 2 + - 1/245 z DATA(-1, 2, 1) + 1/490 z DATA(1, 1, -1) + + 2 2 + + 1/490 z DATA(-1, 1, 1) + 1/490 z DATA(1, -1, 1) + + 2 2 + + 1/490 z DATA(-1, -1, 1) + 2/245 z DATA(-1, -2, 2) + + 2 2 + + 2/245 z DATA(1, -2, 2) - 1/245 z DATA(-2, -1, 2) + + 2 2 + + 2/245 z DATA(2, -2, 2) - 1/245 z DATA(-2, 1, 2) + + 2 2 + + 1/490 z DATA(1, 1, 1) + 2/245 z DATA(-2, 2, 2) + + 2 2 + + 1/490 z DATA(-1, -1, -1) - 1/245 z DATA(1, 2, -1) + + 2 2 + + 1/490 x DATA(1, 1, -1) - 2/25 y DATA(1, 1, -1) + + 2 2 + - 2/25 y DATA(-1, 1, 1) - 2/25 y DATA(1, -1, 1) + + 2 2 + - 2/25 y DATA(-1, -1, 1) + 1/50 y DATA(-1, -2, 2) + + 2 2 + + 1/50 y DATA(1, -2, 2) - 2/25 y DATA(-2, -1, 2) + + 2 2 2 + + 1/50 y DATA(2, -2, 2) - 2/25 y DATA(-2, 1, 2) - 2/25 y DATA(1, 1, 1) + + 2 2 + + 1/50 y DATA(-2, 2, 2) - 2/25 y DATA(-1, -1, -1) + + 2 2 + + 1/50 y DATA(1, 2, -1) - 2/25 y DATA(2, 1, -1) + + 2 2 + + 1/50 y DATA(-1, 2, -1) - 2/25 y DATA(2, -1, -1) + + 2 2 2 + - 2/25 y DATA(2, 1, 1) + 1/50 y DATA(-1, 2, 1) + 1/50 y DATA(1, 2, 1) + + 2 2 + - 2/25 y DATA(2, -1, 1) - 2/25 y DATA(1, -1, -1) + + 2 2 + + 1/50 y DATA(2, 2, -1) + 1/50 y DATA(1, 2, 2) + + 2 2 + - 2/25 y DATA(-2, -1, -2) + 1/50 y DATA(2, 2, 2) + + 2 2 + + 1/50 y DATA(2, -2, -2) - 2/25 y DATA(-1, 1, -1) + + 2 2 2 + + 1/50 y DATA(1, -2, -2) - 2/25 y DATA(2, 1, 2) + 1/50 y DATA(-1, 2, 2) + + 2 2 + + 1/50 y DATA(-1, -2, -2) - 2/25 y DATA(-1, 1, 2) + + 2 2 + + 1/50 y DATA(-2, -2, -2) - 2/25 y DATA(1, -1, 2) + + 2 2 2 + - 2/25 y DATA(2, -1, 2) - 2/25 y DATA(-1, -1, 2) + 1/50 y DATA(2, 2, 1) + + 2 2 + + 1/50 y DATA(-2, 2, -2) - 2/25 y DATA(2, 1, -2) + + 2 2 + - 2/25 y DATA(1, 1, -2) - 2/25 y DATA(-1, 1, -2) + + - 1/25 y z DATA(1, 1, 2) - 1/100 y z DATA(1, -2, 1) + + - 1/50 x y DATA(-2, 2, -1) + 1/50 x y DATA(-2, -2, 1) + + 211 + - 1/100 y z DATA(-1, -2, 1) + ---- DATA(-2, -1, 1) + 3675 + + 2 + - 1/100 x y DATA(-1, 2, -2) + 2/245 x DATA(-2, -2, -2) + + 2 2 + + 1/490 x DATA(1, -1, 2) - 1/245 x DATA(2, -1, 2) + + 2 2 + + 1/490 x DATA(-1, -1, 2) + 2/245 x DATA(2, 2, 1) + + 2 2 + + 2/245 x DATA(-2, 2, -2) - 1/245 x DATA(2, 1, -2) + + 2 2 + + 1/490 x DATA(1, 1, -2) + 1/490 x DATA(-1, 1, -2) + + 2 2 + - 1/245 x DATA(-2, 1, -2) - 1/245 x DATA(2, -1, -2) + + 2 2 + + 1/490 x DATA(1, -1, -2) + 1/490 x DATA(-1, -1, -2) + + 2 2 + + 2/245 x DATA(2, -2, -1) - 1/245 x DATA(1, -2, -1) + + 2 2 + - 1/245 x DATA(1, -2, 2) + 1/490 x DATA(-1, 1, 1) + + 2 2 + + 1/490 x DATA(1, -1, 1) + 1/490 x DATA(-1, -1, 1) + + 2 2 + - 1/245 x DATA(-1, -2, 2) - 1/245 x DATA(-2, -1, 2) + + 2 2 + + 2/245 x DATA(2, -2, 2) - 1/245 x DATA(-2, 1, 2) + + 2 2 + + 1/490 x DATA(1, 1, 1) + 2/245 x DATA(-2, 2, 2) + + 2 2 + + 1/490 x DATA(-1, -1, -1) - 1/245 x DATA(1, 2, -1) + + 2 2 + - 1/245 x DATA(2, 1, -1) - 1/245 x DATA(-1, 2, -1) + + 2 2 + - 1/245 x DATA(2, -1, -1) - 1/245 x DATA(2, 1, 1) + + 2 2 + - 1/245 x DATA(-1, 2, 1) - 1/245 x DATA(1, 2, 1) + + 2 2 + - 1/245 x DATA(2, -1, 1) + 1/490 x DATA(1, -1, -1) + + 2 2 + + 2/245 x DATA(2, 2, -1) - 1/245 x DATA(1, 2, 2) + + 2 2 + - 1/245 x DATA(-2, -1, -2) + 2/245 x DATA(2, 2, 2) + + 2 2 + + 2/245 x DATA(2, -2, -2) + 1/490 x DATA(-1, 1, -1) + + 2 2 + - 1/245 x DATA(1, -2, -2) - 1/245 x DATA(2, 1, 2) + + 2 2 + - 1/245 x DATA(-1, 2, 2) - 1/245 x DATA(-1, -2, -2) + + 2 2 + + 1/490 x DATA(-1, 1, 2) - 1/245 x DATA(-1, -2, -1) + + 2 2 + + 2/245 x DATA(-2, -2, -1) + 2/245 x DATA(2, 2, -2) + + 2 2 + - 1/245 x DATA(1, 2, -2) - 1/245 x DATA(-1, 2, -2) + + 2 2 + - 1/245 x DATA(-2, 1, -1) - 1/245 x DATA(-2, -1, -1) + + 2 2 + + 2/245 x DATA(-2, 2, -1) + 2/245 x DATA(-2, -2, 1) + + 2 2 + - 1/245 x DATA(-1, -2, 1) - 1/245 x DATA(1, -2, 1) + + 2 2 + + 1/490 x DATA(1, 1, 2) + 2/245 x DATA(2, -2, 1) + + 2 2 + - 1/245 x DATA(-2, -1, 1) - 1/245 x DATA(-2, 1, 1) + + 2 2 + + 2/245 x DATA(-2, 2, 1) + 2/245 x DATA(-2, -2, 2) + + + 1/25 y z DATA(-2, -1, 2) + 1/350 x DATA(-1, -1, 1) + + - 1/175 x DATA(-1, -2, 2) + 1/175 x DATA(1, -2, 2) + + + 1/175 x DATA(-2, -1, 2) + 2/175 x DATA(2, -2, 2) + + + 1/175 x DATA(-2, 1, 2) - 1/350 x DATA(1, 1, 1) - 2/175 x DATA(-2, 2, 2) + + + 1/350 x DATA(-1, -1, -1) + 1/175 x DATA(1, 2, -1) + + - 1/175 x DATA(2, 1, -1) - 1/175 x DATA(-1, 2, -1) + + - 1/175 x DATA(2, -1, -1) - 1/175 x DATA(2, 1, 1) - 1/175 x DATA(-1, 2, 1) + + + 1/175 x DATA(1, 2, 1) - 1/175 x DATA(2, -1, 1) - 1/350 x DATA(1, -1, -1) + + + 2/175 x DATA(2, 2, -1) + 1/175 x DATA(1, 2, 2) + + + 1/175 x DATA(-2, -1, -2) - 1/350 x DATA(1, -1, 1) + + + 2/175 x DATA(2, -2, -1) + 1/175 x DATA(1, -2, -1) + + - 1/175 x DATA(-1, -2, -1) - 2/175 x DATA(-2, -2, -1) + + + 2/175 x DATA(2, 2, -2) + 1/175 x DATA(1, 2, -2) + + - 1/175 x DATA(-1, 2, -2) + 1/175 x DATA(-2, 1, -1) + + + 1/175 x DATA(-2, -1, -1) - 2/175 x DATA(-2, 2, -1) + + - 2/175 x DATA(-2, -2, 1) - 1/175 x DATA(-1, -2, 1) + + + 1/175 x DATA(1, -2, 1) - 1/350 x DATA(1, 1, 2) + 2/175 x DATA(2, -2, 1) + + - 1/350 x DATA(1, 1, -1) + 1/350 x DATA(-1, 1, 1) + 2/175 x DATA(2, 2, 2) + + + 2/175 x DATA(2, -2, -2) + 1/350 x DATA(-1, 1, -1) + + + 1/175 x DATA(1, -2, -2) - 1/175 x DATA(2, 1, 2) - 1/175 x DATA(-1, 2, 2) + + - 1/175 x DATA(-1, -2, -2) + 1/350 x DATA(-1, 1, 2) + + - 2/175 x DATA(-2, -2, -2) - 1/350 x DATA(1, -1, 2) + + - 1/175 x DATA(2, -1, 2) + 1/350 x DATA(-1, -1, 2) + 2/175 x DATA(2, 2, 1) + + - 2/175 x DATA(-2, 2, -2) - 1/175 x DATA(2, 1, -2) + + - 1/350 x DATA(1, 1, -2) + 1/350 x DATA(-1, 1, -2) + + + 1/175 x DATA(-2, 1, -2) - 1/175 x DATA(2, -1, -2) + + - 1/350 x DATA(1, -1, -2) + 1/350 x DATA(-1, -1, -2) + + + 1/175 x DATA(-2, -1, 1) + 1/175 x DATA(-2, 1, 1) + + - 2/175 x DATA(-2, 2, 1) - 2/175 x DATA(-2, -2, 2) + + + 1/350 z DATA(1, 1, -1) - 1/350 z DATA(-1, 1, 1) + 1/50 y DATA(-2, 2, -1) + + - 1/25 y DATA(1, 1, -1) - 1/25 y DATA(-1, 1, 1) + 1/25 y DATA(1, -1, 1) + + + 1/25 y DATA(-1, -1, 1) - 1/50 y DATA(-1, -2, 2) - 1/50 y DATA(1, -2, 2) + + + 1/25 y DATA(-2, -1, 2) - 1/50 y DATA(2, -2, 2) - 1/25 y DATA(-2, 1, 2) + + - 1/25 y DATA(1, 1, 1) + 1/50 y DATA(-2, 2, 2) + 1/25 y DATA(-1, -1, -1) + + + 1/50 y DATA(1, 2, -1) - 1/25 y DATA(2, 1, -1) + 1/50 y DATA(-1, 2, -1) + + + 1/25 y DATA(2, -1, -1) - 1/25 y DATA(2, 1, 1) + 1/50 y DATA(-1, 2, 1) + + + 1/50 y DATA(1, 2, 1) + 1/25 y DATA(2, -1, 1) + 1/25 y DATA(1, -1, -1) + + + 1/50 y DATA(2, 2, -1) + 1/50 y DATA(1, 2, 2) + 1/25 y DATA(-2, -1, -2) + + + 1/50 y DATA(2, 2, 2) - 1/50 y DATA(2, -2, -2) - 1/25 y DATA(-1, 1, -1) + + - 1/50 y DATA(1, -2, -2) - 1/25 y DATA(2, 1, 2) + 1/50 y DATA(-1, 2, 2) + + - 1/50 y DATA(-1, -2, -2) - 1/25 y DATA(-1, 1, 2) + + 2 + - 1/50 y DATA(-2, -2, -2) - 1/245 z DATA(2, -1, -2) + + 2 2 + - 1/245 z DATA(1, -1, -2) - 1/245 z DATA(-1, -1, -2) + + 2 2 + - 1/245 z DATA(2, -2, -1) - 1/245 z DATA(1, -2, -1) + + 2 2 + - 1/245 z DATA(-1, -2, -1) - 1/245 z DATA(-2, -2, -1) + + 2 2 + + 2/245 z DATA(2, 2, -2) + 2/245 z DATA(1, 2, -2) + + 2 2 + + 2/245 z DATA(-1, 2, -2) + 1/490 z DATA(-2, 1, -1) + + 2 2 + + 1/490 z DATA(-2, -1, -1) - 1/245 z DATA(-2, 2, -1) + + 2 2 + - 1/245 z DATA(-2, -2, 1) - 1/245 z DATA(-1, -2, 1) + + 2 2 + - 1/245 z DATA(1, -2, 1) - 1/245 z DATA(1, 1, 2) + + 2 2 + - 1/245 z DATA(2, -2, 1) + 1/490 z DATA(-2, -1, 1) + + 2 2 + + 1/490 z DATA(-2, 1, 1) - 1/245 z DATA(-2, 2, 1) + + 2 2 + + 2/245 z DATA(-2, -2, 2) + 1/490 z DATA(2, 1, -1) + + 2 2 + - 1/245 z DATA(-1, 2, -1) + 1/490 z DATA(2, -1, -1) + + + 1/25 y DATA(1, -1, 2) + 1/25 y DATA(2, -1, 2) + 1/25 y DATA(-1, -1, 2) + + + 1/50 y DATA(2, 2, 1) + 1/50 y DATA(-2, 2, -2) - 1/25 y DATA(2, 1, -2) + + - 1/25 y DATA(1, 1, -2) - 1/25 y DATA(-1, 1, -2) - 1/25 y DATA(-2, 1, -2) + + + 1/25 y DATA(2, -1, -2) + 1/25 y DATA(1, -1, -2) + + + 1/25 y DATA(-1, -1, -2) - 1/50 y DATA(2, -2, -1) + + - 1/50 y DATA(1, -2, -1) - 1/50 y DATA(-1, -2, -1) + + - 1/50 y DATA(-2, -2, -1) + 1/50 y DATA(2, 2, -2) + 1/50 y DATA(1, 2, -2) + + + 1/50 y DATA(-1, 2, -2) - 1/25 y DATA(-2, 1, -1) + + + 1/25 y DATA(-2, -1, -1) - 1/50 y DATA(-2, -2, 1) + + - 1/50 y DATA(-1, -2, 1) - 1/50 y DATA(1, -2, 1) - 1/25 y DATA(1, 1, 2) + + - 1/50 y DATA(2, -2, 1) + 1/25 y DATA(-2, -1, 1) - 1/25 y DATA(-2, 1, 1) + + + 1/50 y DATA(-2, 2, 1) - 1/50 y DATA(-2, -2, 2) + 2/175 z DATA(-1, 2, 2) + + - 1/175 z DATA(-1, 1, 2) - 2/175 z DATA(-2, -2, -2) + + - 1/175 z DATA(1, -1, 2) - 1/175 z DATA(2, -1, 2) + + - 1/175 z DATA(-1, -1, 2) + 1/175 z DATA(2, 2, 1) + + - 2/175 z DATA(-2, 2, -2) + 1/175 z DATA(2, 1, -2) + + + 1/175 z DATA(1, 1, -2) + 1/175 z DATA(-1, 1, -2) + + + 1/175 z DATA(-2, 1, -2) + 1/175 z DATA(2, -1, -2) + + + 1/175 z DATA(1, -1, -2) + 1/175 z DATA(-1, -1, -2) + + - 1/175 z DATA(2, -2, -1) - 1/175 z DATA(1, -2, -1) + + - 1/175 z DATA(-1, -2, -1) - 1/175 z DATA(-2, -2, -1) + + - 2/175 z DATA(2, 2, -2) - 2/175 z DATA(1, 2, -2) + + - 2/175 z DATA(-1, 2, -2) + 1/350 z DATA(-2, 1, -1) + + + 1/350 z DATA(-2, -1, -1) - 1/175 z DATA(-2, 2, -1) + + + 1/175 z DATA(-2, -2, 1) + 1/175 z DATA(-1, -2, 1) + + + 1/175 z DATA(1, -2, 1) - 1/175 z DATA(1, 1, 2) + 1/175 z DATA(2, -2, 1) + + - 1/350 z DATA(-2, -1, 1) - 1/350 z DATA(-2, 1, 1) + + + 1/175 z DATA(-2, 2, 1) + 2/175 z DATA(-2, -2, 2) + + 2 + - 2/175 z DATA(-1, -2, -2) - 2/25 y DATA(-2, 1, -2) + + 2 2 + - 2/25 y DATA(2, -1, -2) - 2/25 y DATA(1, -1, -2) + + 2 2 + - 2/25 y DATA(-1, -1, -2) + 1/50 y DATA(2, -2, -1) + + 2 2 + + 1/50 y DATA(1, -2, -1) + 1/50 y DATA(-1, -2, -1) + + 2 2 + + 1/50 y DATA(-2, -2, -1) + 1/50 y DATA(2, 2, -2) + + 2 2 + + 1/50 y DATA(1, 2, -2) + 1/50 y DATA(-1, 2, -2) + + 2 2 + - 2/25 y DATA(-2, 1, -1) - 2/25 y DATA(-2, -1, -1) + + 2 2 + + 1/50 y DATA(-2, 2, -1) + 1/50 y DATA(-2, -2, 1) + + 2 2 2 + + 1/50 y DATA(-1, -2, 1) + 1/50 y DATA(1, -2, 1) - 2/25 y DATA(1, 1, 2) + + 2 2 + + 1/50 y DATA(2, -2, 1) - 2/25 y DATA(-2, -1, 1) + + 2 2 + - 2/25 y DATA(-2, 1, 1) + 1/50 y DATA(-2, 2, 1) + + 2 + + 1/50 y DATA(-2, -2, 2) - 1/350 z DATA(1, -1, 1) + + - 1/350 z DATA(-1, -1, 1) + 2/175 z DATA(-1, -2, 2) + + + 2/175 z DATA(1, -2, 2) - 1/175 z DATA(-2, -1, 2) + + + 2/175 z DATA(2, -2, 2) - 1/175 z DATA(-2, 1, 2) - 1/350 z DATA(1, 1, 1) + + + 2/175 z DATA(-2, 2, 2) + 1/350 z DATA(-1, -1, -1) + + - 1/175 z DATA(1, 2, -1) + 1/350 z DATA(2, 1, -1) + + - 1/175 z DATA(-1, 2, -1) + 1/350 z DATA(2, -1, -1) + + - 1/350 z DATA(2, 1, 1) + 1/175 z DATA(-1, 2, 1) + 1/175 z DATA(1, 2, 1) + + - 1/350 z DATA(2, -1, 1) + 1/350 z DATA(1, -1, -1) + + - 1/175 z DATA(2, 2, -1) + 2/175 z DATA(1, 2, 2) + + + 1/175 z DATA(-2, -1, -2) + 2/175 z DATA(2, 2, 2) + + - 2/175 z DATA(2, -2, -2) + 1/350 z DATA(-1, 1, -1) + + - 2/175 z DATA(1, -2, -2) - 1/175 z DATA(2, 1, 2) - 1/25 y z DATA(2, 1, 2) + + + 1/50 y z DATA(-1, 1, -1) + 1/50 y z DATA(2, -2, -2) + + + 1/25 y z DATA(1, 1, -2) + 1/25 y z DATA(-1, 1, -2) + + - 1/25 y z DATA(-2, -1, -2) + 1/50 y z DATA(2, 2, 2) + + - 1/50 y z DATA(1, -1, -1) - 1/100 y z DATA(2, 2, -1) + + + 1/50 y z DATA(1, 2, 2) + 1/100 y z DATA(1, 2, 1) + + + 1/50 y z DATA(2, -1, 1) - 1/50 y z DATA(2, -1, -1) + + - 1/50 y z DATA(2, 1, 1) + 1/100 y z DATA(-1, 2, 1) + + + 1/50 y z DATA(2, 1, -1) - 1/50 y z DATA(-1, -1, -1) + + - 1/100 y z DATA(1, 2, -1) + 1/50 y z DATA(-2, 2, 2) + + + 1/50 y z DATA(1, 1, -1) - 1/25 y z DATA(-2, 1, 2) + + - 1/50 x y DATA(1, 1, -1) - 1/50 y z DATA(2, -2, 2) + + - 1/50 y z DATA(1, -2, 2) - 1/50 y z DATA(-1, -2, 2) + + + 1/50 y z DATA(1, -2, -2) + 1/25 y z DATA(2, -1, 2) + + + 1/50 y z DATA(-2, -2, -2) + 1/50 y z DATA(-1, -1, 1) + + + 1/25 y z DATA(1, -1, 2) + 1/50 y z DATA(-1, -2, -2) + + - 1/25 y z DATA(-1, 1, 2) + 1/50 y z DATA(1, -1, 1) + + - 1/50 y z DATA(-1, 1, 1) + 1/50 y z DATA(-1, 2, 2) + + 2 + + 1/25 y z DATA(-2, 1, -2) + 1/490 z DATA(2, 1, 1) + + + 1/25 x y DATA(-2, 1, -1) - 1/25 y z DATA(2, -1, -2) + + - 1/50 y z DATA(1, 1, 1) + 1/50 x y DATA(2, 2, -2) + + + 1/100 x y DATA(1, 2, -2) + 1/50 x y DATA(-2, -2, -1) + + + 1/50 x y DATA(1, -1, -2) - 1/50 x y DATA(-1, -1, -2) + + - 1/50 x y DATA(2, -2, -1) - 1/100 x y DATA(1, -2, -1) + + + 1/100 x y DATA(-1, -2, -1) + 1/25 x y DATA(-2, 1, -2) + + + 1/25 x y DATA(2, -1, -2) - 1/50 x y DATA(1, 1, -2) + + + 1/50 x y DATA(-1, 1, -2) - 1/50 x y DATA(-2, 2, -2) + + - 9/98 DATA(-2, 0, 1) - 1/25 x y DATA(2, 1, -2) + 1/50 x y DATA(1, -1, 2) + + + 1/25 x y DATA(2, -1, 2) - 1/50 x y DATA(-1, -1, 2) + + 211 + + 1/50 x y DATA(2, 2, 1) + ---- DATA(-2, 1, 1) + 3675 + + + 1/100 x y DATA(-1, -2, -2) + 1/50 x y DATA(-1, 1, 2) + + + 1/50 x y DATA(-2, -2, -2) + 1/50 x y DATA(-1, 1, -1) + + - 1/100 x y DATA(1, -2, -2) - 1/25 x y DATA(2, 1, 2) + + 169 + - 1/100 x y DATA(-1, 2, 2) - ----- DATA(-2, 2, 1) + 1/50 x y DATA(2, 2, 2) + 14700 + + - 1/50 x y DATA(2, -2, -2) + 1/50 x y DATA(1, -1, -1) + + + 1/50 x y DATA(2, 2, -1) + 1/100 x y DATA(1, 2, 2) + + - 1/25 x y DATA(-2, -1, -2) + 1/100 x y DATA(1, 2, 1) + + + 1/25 x y DATA(2, -1, 1) - 1/100 x y DATA(-1, 2, 1) + + 529 2 + - ----- DATA(-2, -2, 2) + 2/245 z DATA(1, 2, 2) + 14700 + + + 1/25 x y DATA(2, -1, -1) - 1/100 x y DATA(-1, 2, -1) + + - 1/25 x y DATA(2, 1, -1) + 1/100 x y DATA(1, 2, -1) + + - 1/50 x y DATA(-1, -1, -1) - 1/50 x y DATA(-2, 2, 2) + + - 1/50 x y DATA(1, 1, 1) + 1/25 x y DATA(-2, 1, 2) + + - 1/50 x y DATA(2, -2, 2) - 1/25 x y DATA(-2, -1, 2) + + - 1/100 x y DATA(1, -2, 2) + 1/100 x y DATA(-1, -2, 2) + + - 1/50 x y DATA(-1, -1, 1) + 1/50 x y DATA(1, -1, 1) + + + 1/50 x y DATA(-1, 1, 1) - 1/25 x y DATA(2, 1, 1) + +> coeff_as_lc_of_data(%, posn_list_3d_size5); +bytes used=2262396640, alloc=15136044, time=360.57 +bytes used=2263396860, alloc=15136044, time=360.65 +bytes used=2264467660, alloc=15136044, time=360.74 +bytes used=2265468004, alloc=15136044, time=360.82 +bytes used=2266487068, alloc=15136044, time=360.90 +bytes used=2267571584, alloc=15136044, time=360.99 +bytes used=2268571724, alloc=15136044, time=361.07 +bytes used=2269571872, alloc=15136044, time=361.16 +bytes used=2270572288, alloc=15136044, time=361.24 +bytes used=2271572552, alloc=15136044, time=361.33 +bytes used=2272572924, alloc=15136044, time=361.42 +bytes used=2273573044, alloc=15136044, time=361.50 +bytes used=2274613716, alloc=15136044, time=361.60 +bytes used=2275613840, alloc=15136044, time=361.69 +bytes used=2276625256, alloc=15136044, time=361.78 +bytes used=2277642992, alloc=15136044, time=361.87 +bytes used=2278644416, alloc=15136044, time=361.97 +bytes used=2279644600, alloc=15136044, time=362.06 +bytes used=2280653876, alloc=15136044, time=362.16 +bytes used=2281665528, alloc=15136044, time=362.26 +bytes used=2282665688, alloc=15136044, time=362.36 +bytes used=2283665804, alloc=15136044, time=362.46 +bytes used=2284680804, alloc=15136044, time=362.57 +bytes used=2285681980, alloc=15136044, time=362.68 +bytes used=2286692200, alloc=15136044, time=362.79 +bytes used=2287700944, alloc=15136044, time=362.87 +bytes used=2288719012, alloc=15136044, time=362.94 +bytes used=2289737240, alloc=15136044, time=363.02 +bytes used=2290755260, alloc=15136044, time=363.10 + 2 529 +[COEFF(-2, -2, -2) = 2/245 x + 1/50 y z + 2/175 x z + 1/50 x y - ----- + 14700 + + 2 2 + + 2/245 z - 1/50 y - 2/175 z - 2/175 x + 1/50 y , COEFF(-1, -2, -2) = + + 2 2 + 1/175 x z + 1/50 y - 2/175 z - 1/175 x - 1/50 y - 1/245 x + 1/100 x y + + 169 2 + - ----- + 1/50 y z + 2/245 z , COEFF(0, -2, -2) = + 14700 + + 2 2 2 + - 1/300 - 1/50 y + 1/50 y + 1/50 y z + 2/245 z - 2/175 z - 2/245 x , + + 2 2 169 + COEFF(1, -2, -2) = - 1/175 x z + 2/245 z + 1/50 y - ----- - 2/175 z + 14700 + + 2 + + 1/175 x - 1/245 x + 1/50 y z - 1/50 y - 1/100 x y, COEFF(2, -2, -2) = + + 2 2 2 529 + - 1/50 x y + 2/245 z + 1/50 y + 2/245 x - ----- - 2/175 x z - 2/175 z + 14700 + + 2 + + 1/50 y z + 2/175 x - 1/50 y, COEFF(-2, -1, -2) = - 1/25 x y - 2/25 y + + 2 256 + - 1/245 z + 1/175 x + 1/175 z + 1/25 y + ---- - 1/175 x z - 1/25 y z + 3675 + + 2 2 + - 1/245 x , COEFF(-1, -1, -2) = 1/350 x - 1/245 z - 1/350 x z - 1/25 y z + + 2 2 211 + + 1/490 x + 1/175 z + 1/25 y - 2/25 y + ---- - 1/50 x y, + 3675 + + COEFF(0, -1, -2) = + + 2 2 2 + 4/75 + 1/25 y - 1/25 y z - 1/245 z + 1/245 x - 2/25 y + 1/175 z, + + 2 2 211 + COEFF(1, -1, -2) = 1/490 x - 2/25 y + ---- + 1/50 x y + 1/350 x z + 3675 + + 2 + + 1/25 y + 1/175 z - 1/350 x - 1/245 z - 1/25 y z, COEFF(2, -1, -2) = + + 2 2 2 + - 1/245 z - 2/25 y + 1/175 z + 1/25 y - 1/245 x + 1/25 x y + 1/175 x z + + 256 + - 1/25 y z - 1/175 x + ----, COEFF(-2, 0, -2) = + 3675 + + 2 2 2 33 + - 2/175 x z + 3/25 y + 2/175 x - 2/245 z - 2/245 x - --- + 2/175 z, + 490 + + COEFF(-1, 0, -2) = + + 2 2 2 + - 2/245 z - 9/98 + 1/175 x + 2/175 z - 1/175 x z + 1/245 x + 3/25 y , + + 2 2 2 + COEFF(0, 0, -2) = - 1/10 + 3/25 y + 2/175 z + 2/245 x - 2/245 z , + + COEFF(1, 0, -2) = + + 2 2 2 + 1/175 x z - 2/245 z + 2/175 z + 1/245 x - 9/98 - 1/175 x + 3/25 y , + + COEFF(2, 0, -2) = + + 2 33 2 2 + 2/175 z - 2/245 x - --- + 2/175 x z - 2/175 x - 2/245 z + 3/25 y , + 490 + + 2 2 + COEFF(-2, 1, -2) = - 2/25 y - 1/245 x - 1/25 y + 1/175 z + 1/175 x + + 2 256 + + 1/25 y z + 1/25 x y - 1/245 z + ---- - 1/175 x z, COEFF(-1, 1, -2) = + 3675 + + 2 2 211 + - 2/25 y + 1/490 x + 1/175 z + 1/25 y z + 1/350 x + ---- - 1/350 x z + 3675 + + 2 + - 1/25 y - 1/245 z + 1/50 x y, COEFF(0, 1, -2) = + + 2 2 2 + - 2/25 y - 1/25 y + 1/25 y z + 1/175 z + 4/75 + 1/245 x - 1/245 z , + + 211 2 + COEFF(1, 1, -2) = ---- + 1/490 x + 1/175 z + 1/25 y z + 1/350 x z + 3675 + + 2 2 + - 1/50 x y - 2/25 y - 1/25 y - 1/245 z - 1/350 x, COEFF(2, 1, -2) = + + 2 + 1/25 y z - 1/25 y - 1/25 x y - 1/245 x + 1/175 z - 1/175 x + 1/175 x z + + 2 2 256 2 + - 2/25 y - 1/245 z + ----, COEFF(-2, 2, -2) = - 1/50 y z + 1/50 y + 3675 + + 2 529 2 + + 2/245 z + 2/175 x z + 1/50 y - ----- - 2/175 x - 2/175 z + 2/245 x + 14700 + + - 1/50 x y, COEFF(-1, 2, -2) = - 1/50 y z + 1/175 x z - 2/175 z + 1/50 y + + 169 2 2 2 + - ----- + 2/245 z - 1/175 x - 1/100 x y + 1/50 y - 1/245 x , + 14700 + + COEFF(0, 2, -2) = + + 2 2 2 + - 1/300 + 2/245 z - 2/175 z + 1/50 y + 1/50 y - 1/50 y z - 2/245 x , + + 169 2 + COEFF(1, 2, -2) = 1/175 x - ----- - 1/245 x + 1/50 y - 2/175 z - 1/175 x z + 14700 + + 2 2 2 + + 1/50 y + 1/100 x y + 2/245 z - 1/50 y z, COEFF(2, 2, -2) = 2/245 z + + 2 529 2 + + 1/50 y - ----- + 1/50 y - 2/175 z - 2/175 x z + 2/245 x + 2/175 x + 14700 + + 2 + - 1/50 y z + 1/50 x y, COEFF(-2, -2, -1) = 2/245 x - 1/175 z + 1/100 y z + + 2 169 2 + + 1/50 x y - 2/175 x - 1/50 y + 1/50 y - ----- - 1/245 z + 1/175 x z, + 14700 + + 191 2 2 + COEFF(-1, -2, -1) = ----- + 1/100 x y + 1/50 y - 1/245 x - 1/175 z + 14700 + + 2 + + 1/350 x z - 1/245 z + 1/100 y z - 1/50 y - 1/175 x, COEFF(0, -2, -1) = + + 2 311 2 2 + - 1/50 y - 1/175 z + 1/100 y z - 2/245 x + ----- + 1/50 y - 1/245 z , + 14700 + + 2 2 + COEFF(1, -2, -1) = - 1/350 x z + 1/175 x - 1/245 x + 1/50 y - 1/50 y + + 191 2 + + ----- - 1/100 x y - 1/245 z - 1/175 z + 1/100 y z, COEFF(2, -2, -1) = + 14700 + + 169 2 + - 1/50 y - 1/175 x z - 1/50 x y - 1/175 z + 1/100 y z - ----- + 2/245 x + 14700 + + 2 2 2 + - 1/245 z + 2/175 x + 1/50 y , COEFF(-2, -1, -1) = - 1/245 x - 1/50 y z + + 2 2 + - 1/25 x y - 1/350 x z - 2/25 y + 1/490 z + 1/350 z + 1/25 y + 1/175 x + + 211 2 2 + + ----, COEFF(-1, -1, -1) = - 1/50 x y + 1/490 x + 1/350 x + 1/490 z + 3675 + + 2 166 + + 1/25 y - 2/25 y + 1/350 z + ---- - 1/700 x z - 1/50 y z, + 3675 + + COEFF(0, -1, -1) = + + 151 2 2 2 + ---- + 1/490 z - 2/25 y + 1/350 z + 1/245 x + 1/25 y - 1/50 y z, + 3675 + + 2 166 2 + COEFF(1, -1, -1) = 1/490 z + ---- + 1/490 x - 1/350 x - 1/50 y z + 3675 + + 2 + + 1/350 z + 1/25 y + 1/700 x z - 2/25 y + 1/50 x y, COEFF(2, -1, -1) = + + 2 2 211 + - 2/25 y + 1/350 x z - 1/245 x + ---- + 1/350 z + 1/25 x y - 1/50 y z + 3675 + + 2 + - 1/175 x + 1/25 y + 1/490 z , COEFF(-2, 0, -1) = + + 2 2 2 + 2/175 x - 1/175 x z + 1/245 z + 3/25 y - 2/245 x - 9/98 + 1/175 z, + + COEFF(-1, 0, -1) = + + 57 2 2 2 + - 1/350 x z + 1/175 z - --- + 3/25 y + 1/245 z + 1/245 x + 1/175 x, + 490 + + 2 2 2 61 + COEFF(0, 0, -1) = 1/175 z + 2/245 x + 1/245 z + 3/25 y - ---, + 490 + + COEFF(1, 0, -1) = + + 2 2 57 2 + 3/25 y + 1/245 z - 1/175 x - --- + 1/350 x z + 1/175 z + 1/245 x , + 490 + + COEFF(2, 0, -1) = + + 2 2 2 + 1/175 z - 9/98 + 3/25 y - 2/175 x + 1/245 z - 2/245 x + 1/175 x z, + + 211 2 + COEFF(-2, 1, -1) = 1/350 z + 1/50 y z + ---- - 1/25 y - 1/245 x + 1/175 x + 3675 + + 2 2 2 + - 1/350 x z + 1/25 x y - 2/25 y + 1/490 z , COEFF(-1, 1, -1) = 1/490 x + + 2 2 + + 1/490 z + 1/50 x y - 2/25 y + 1/350 z + 1/350 x - 1/700 x z - 1/25 y + + 166 + + 1/50 y z + ----, COEFF(0, 1, -1) = + 3675 + + 151 2 2 2 + ---- - 2/25 y - 1/25 y + 1/245 x + 1/490 z + 1/350 z + 1/50 y z, + 3675 + + 166 + COEFF(1, 1, -1) = ---- + 1/700 x z + 1/50 y z - 1/350 x - 1/50 x y - 1/25 y + 3675 + + 2 2 2 2 + + 1/490 x - 2/25 y + 1/490 z + 1/350 z, COEFF(2, 1, -1) = - 2/25 y + + 2 2 + - 1/25 x y + 1/490 z + 1/350 z + 1/350 x z + 1/50 y z - 1/245 x - 1/25 y + + 211 2 + - 1/175 x + ----, COEFF(-2, 2, -1) = - 1/50 x y + 1/50 y - 1/175 z + 3675 + + 169 2 2 + + 1/175 x z - ----- + 2/245 x - 1/245 z - 1/100 y z + 1/50 y - 2/175 x, + 14700 + + 191 + COEFF(-1, 2, -1) = - 1/100 y z + 1/50 y - 1/175 z + ----- - 1/175 x + 14700 + + 2 2 2 + - 1/100 x y - 1/245 x + 1/350 x z + 1/50 y - 1/245 z , COEFF(0, 2, -1) + + 311 2 2 2 + = ----- - 1/175 z - 1/245 z + 1/50 y + 1/50 y - 2/245 x - 1/100 y z, + 14700 + + 2 2 + COEFF(1, 2, -1) = 1/175 x - 1/100 y z - 1/245 x - 1/175 z - 1/245 z + + 191 2 + + ----- + 1/100 x y - 1/350 x z + 1/50 y + 1/50 y , COEFF(2, 2, -1) = + 14700 + + 2 2 + 1/50 x y - 1/175 x z + 1/50 y - 1/175 z + 2/175 x - 1/245 z + 2/245 x + + 169 2 + - 1/100 y z - ----- + 1/50 y , COEFF(-2, -2, 0) = + 14700 + + 2 2 2 + 2/245 x - 2/245 z + 1/50 x y + 1/50 y - 1/300 - 2/175 x - 1/50 y, + + COEFF(-1, -2, 0) = + + 2 2 311 2 + 1/100 x y - 1/175 x - 2/245 z + 1/50 y + ----- - 1/50 y - 1/245 x , + 14700 + + 2 2 2 431 + COEFF(0, -2, 0) = - 2/245 z + 1/50 y - 1/50 y - 2/245 x + -----, + 14700 + + COEFF(1, -2, 0) = + + 2 311 2 2 + - 1/245 x + 1/175 x + ----- - 1/100 x y + 1/50 y - 1/50 y - 2/245 z , + 14700 + + COEFF(2, -2, 0) = + + 2 2 2 + 2/245 x + 1/50 y - 1/50 y - 1/50 x y - 1/300 - 2/245 z + 2/175 x, + + COEFF(-2, -1, 0) = + + 2 2 2 + - 2/25 y - 1/25 x y + 1/175 x - 1/245 x + 4/75 + 1/245 z + 1/25 y, + + COEFF(-1, -1, 0) = + + 151 2 2 2 + ---- + 1/245 z + 1/25 y + 1/490 x - 2/25 y - 1/50 x y + 1/350 x, + 3675 + + 2 2 2 136 + COEFF(0, -1, 0) = - 2/25 y + 1/245 x + 1/245 z + 1/25 y + ----, + 3675 + + COEFF(1, -1, 0) = + + 2 2 2 151 + 1/245 z + 1/490 x - 2/25 y - 1/350 x + 1/25 y + 1/50 x y + ----, + 3675 + + COEFF(2, -1, 0) = + + 2 2 2 + - 1/245 x + 1/25 x y + 4/75 + 1/245 z - 1/175 x - 2/25 y + 1/25 y, + + 2 2 2 + COEFF(-2, 0, 0) = - 1/10 - 2/245 x + 2/245 z + 2/175 x + 3/25 y , + + 61 2 2 2 + COEFF(-1, 0, 0) = - --- + 1/245 x + 1/175 x + 3/25 y + 2/245 z , + 490 + + 13 2 2 2 + COEFF(0, 0, 0) = - -- + 3/25 y + 2/245 x + 2/245 z , + 98 + + 2 2 2 61 + COEFF(1, 0, 0) = 2/245 z + 1/245 x + 3/25 y - --- - 1/175 x, + 490 + + 2 2 2 + COEFF(2, 0, 0) = 3/25 y + 2/245 z - 2/245 x - 1/10 - 2/175 x, + + COEFF(-2, 1, 0) = + + 2 2 2 + 1/25 x y - 2/25 y + 1/245 z - 1/245 x + 1/175 x + 4/75 - 1/25 y, + + COEFF(-1, 1, 0) = + + 151 2 2 2 + ---- + 1/490 x - 2/25 y + 1/50 x y - 1/25 y + 1/245 z + 1/350 x, + 3675 + + 136 2 2 2 + COEFF(0, 1, 0) = ---- - 1/25 y - 2/25 y + 1/245 x + 1/245 z , + 3675 + + COEFF(1, 1, 0) = + + 2 2 151 2 + - 2/25 y + 1/245 z - 1/25 y + ---- + 1/490 x - 1/350 x - 1/50 x y, + 3675 + + COEFF(2, 1, 0) = + + 2 2 2 + - 1/245 x - 1/25 x y - 1/175 x + 4/75 + 1/245 z - 2/25 y - 1/25 y, + + COEFF(-2, 2, 0) = + + 2 2 2 + - 1/300 + 1/50 y - 2/245 z + 2/245 x - 2/175 x - 1/50 x y + 1/50 y, + + COEFF(-1, 2, 0) = + + 2 2 311 2 + - 1/100 x y + 1/50 y - 1/245 x - 2/245 z + ----- + 1/50 y - 1/175 x, + 14700 + + 431 2 2 2 + COEFF(0, 2, 0) = ----- + 1/50 y - 2/245 z - 2/245 x + 1/50 y, + 14700 + + COEFF(1, 2, 0) = + + 2 311 2 2 + 1/175 x - 1/245 x + 1/50 y + ----- - 2/245 z + 1/50 y + 1/100 x y, + 14700 + + COEFF(2, 2, 0) = + + 2 2 2 + 1/50 y + 1/50 x y + 2/175 x + 2/245 x + 1/50 y - 1/300 - 2/245 z , + + 169 + COEFF(-2, -2, 1) = - 1/100 y z + 1/50 x y - ----- + 1/175 z - 1/50 y + 14700 + + 2 2 2 + + 2/245 x - 1/245 z - 1/175 x z + 1/50 y - 2/175 x, COEFF(-1, -2, 1) = + + 2 191 2 + 1/50 y + 1/175 z + 1/100 x y + ----- - 1/350 x z - 1/50 y - 1/245 x + 14700 + + 2 + - 1/100 y z - 1/175 x - 1/245 z , COEFF(0, -2, 1) = + + 2 2 2 311 + - 1/100 y z - 2/245 x - 1/245 z + 1/175 z + 1/50 y - 1/50 y + -----, + 14700 + + 2 2 + COEFF(1, -2, 1) = - 1/245 z + 1/350 x z - 1/100 y z + 1/50 y - 1/50 y + + 191 2 + + 1/175 z + ----- - 1/100 x y - 1/245 x + 1/175 x, COEFF(2, -2, 1) = + 14700 + + 2 2 169 + 2/175 x + 1/50 y - 1/100 y z - 1/50 x y + 1/175 x z - 1/245 z - ----- + 14700 + + 2 211 + + 2/245 x + 1/175 z - 1/50 y, COEFF(-2, -1, 1) = ---- - 1/25 x y + 3675 + + 2 2 2 + + 1/350 x z + 1/25 y - 1/350 z + 1/50 y z - 2/25 y + 1/490 z - 1/245 x + + 2 + + 1/175 x, COEFF(-1, -1, 1) = - 1/50 x y + 1/490 x + 1/700 x z - 1/350 z + + 2 166 2 + + 1/50 y z + 1/350 x - 2/25 y + ---- + 1/25 y + 1/490 z , COEFF(0, -1, 1) + 3675 + + 151 2 2 2 + = ---- - 2/25 y + 1/245 x + 1/25 y + 1/50 y z - 1/350 z + 1/490 z , + 3675 + + 2 166 + COEFF(1, -1, 1) = 1/490 x + 1/50 y z - 1/350 z + ---- + 1/50 x y + 3675 + + 2 2 + + 1/490 z - 1/700 x z - 1/350 x + 1/25 y - 2/25 y , COEFF(2, -1, 1) = + + 2 211 2 2 + 1/25 x y - 1/175 x + 1/490 z + ---- - 1/245 x - 2/25 y + 1/50 y z + 3675 + + - 1/350 x z - 1/350 z + 1/25 y, COEFF(-2, 0, 1) = + + 2 2 2 + 1/245 z + 1/175 x z - 9/98 - 1/175 z + 3/25 y - 2/245 x + 2/175 x, + + COEFF(-1, 0, 1) = + + 57 2 2 2 + - --- + 1/175 x + 1/245 z - 1/175 z + 3/25 y + 1/245 x + 1/350 x z, + 490 + + 2 2 2 61 + COEFF(0, 0, 1) = 1/245 z + 2/245 x + 3/25 y - --- - 1/175 z, + 490 + + COEFF(1, 0, 1) = + + 2 2 57 2 + 1/245 x + 1/245 z - 1/350 x z - --- + 3/25 y - 1/175 x - 1/175 z, + 490 + + COEFF(2, 0, 1) = + + 2 2 2 + - 2/175 x - 2/245 x - 9/98 + 1/245 z + 3/25 y - 1/175 x z - 1/175 z, + + 2 + COEFF(-2, 1, 1) = 1/25 x y - 1/245 x - 1/350 z - 1/25 y + 1/175 x + + 2 2 211 + - 2/25 y + 1/490 z - 1/50 y z + ---- + 1/350 x z, COEFF(-1, 1, 1) = + 3675 + + 2 166 2 + - 1/50 y z - 1/25 y + 1/490 z + ---- + 1/490 x + 1/50 x y + 1/350 x + 3675 + + 2 + - 2/25 y + 1/700 x z - 1/350 z, COEFF(0, 1, 1) = + + 2 2 2 151 + 1/490 z - 1/50 y z + 1/245 x - 1/350 z - 2/25 y + ---- - 1/25 y, + 3675 + + 2 + COEFF(1, 1, 1) = - 1/700 x z + 1/490 z - 1/50 y z - 1/350 z - 1/25 y + + 2 166 2 + - 1/50 x y + 1/490 x + ---- - 2/25 y - 1/350 x, COEFF(2, 1, 1) = + 3675 + + 2 2 211 + - 1/350 x z - 1/50 y z - 1/25 x y - 2/25 y - 1/350 z - 1/245 x + ---- + 3675 + + 2 2 + - 1/25 y - 1/175 x + 1/490 z , COEFF(-2, 2, 1) = - 1/245 z + 1/175 z + + 169 2 + - 1/175 x z - 2/175 x - ----- + 2/245 x - 1/50 x y + 1/100 y z + 1/50 y + 14700 + + 2 2 191 + + 1/50 y , COEFF(-1, 2, 1) = 1/100 y z + 1/50 y - 1/245 x + ----- + 14700 + + 2 2 + - 1/100 x y - 1/350 x z - 1/175 x + 1/50 y + 1/175 z - 1/245 z , + + COEFF(0, 2, 1) = + + 311 2 2 2 + 1/100 y z + ----- - 1/245 z + 1/50 y + 1/50 y - 2/245 x + 1/175 z, + 14700 + + 2 191 + COEFF(1, 2, 1) = 1/350 x z - 1/245 x + ----- + 1/100 x y + 1/100 y z + 14700 + + 2 2 + + 1/50 y + 1/175 z - 1/245 z + 1/175 x + 1/50 y , COEFF(2, 2, 1) = + + 169 2 2 + 1/175 z + 1/175 x z - ----- + 1/50 y + 1/100 y z + 1/50 y + 2/245 x + 14700 + + 2 529 + + 1/50 x y + 2/175 x - 1/245 z , COEFF(-2, -2, 2) = - ----- - 2/175 x + 14700 + + 2 2 + - 2/175 x z + 2/245 z + 2/175 z + 1/50 x y - 1/50 y - 1/50 y z + 1/50 y + + 2 2 + + 2/245 x , COEFF(-1, -2, 2) = - 1/245 x + 1/100 x y - 1/175 x + 2/175 z + + 2 2 169 + + 1/50 y - 1/50 y z - 1/175 x z + 2/245 z - ----- - 1/50 y, + 14700 + + COEFF(0, -2, 2) = + + 2 2 2 + 2/245 z + 2/175 z - 1/50 y z + 1/50 y - 1/300 - 2/245 x - 1/50 y, + + 2 + COEFF(1, -2, 2) = 1/175 x z + 2/245 z + 2/175 z - 1/50 y - 1/100 x y + + 2 2 169 + + 1/50 y - 1/50 y z + 1/175 x - 1/245 x - -----, COEFF(2, -2, 2) = + 14700 + + 2 2 529 2 + 2/245 z + 2/245 x + 2/175 x z - 1/50 y - ----- + 1/50 y + 2/175 x + 14700 + + 2 + + 2/175 z - 1/50 x y - 1/50 y z, COEFF(-2, -1, 2) = - 1/245 z - 1/175 z + + 2 2 256 + + 1/25 y - 1/245 x + 1/175 x z - 2/25 y + 1/25 y z + ---- + 1/175 x + 3675 + + 2 2 2 + - 1/25 x y, COEFF(-1, -1, 2) = 1/490 x - 1/245 z - 2/25 y - 1/50 x y + + 211 + - 1/175 z + 1/25 y + 1/350 x + 1/350 x z + 1/25 y z + ----, + 3675 + + COEFF(0, -1, 2) = + + 2 2 2 + 1/245 x - 1/245 z - 1/175 z + 4/75 - 2/25 y + 1/25 y + 1/25 y z, + + 2 211 + COEFF(1, -1, 2) = - 1/175 z - 1/350 x + 1/25 y + 1/50 x y + 1/490 x + ---- + 3675 + + 2 2 2 + - 1/245 z - 1/350 x z + 1/25 y z - 2/25 y , COEFF(2, -1, 2) = - 1/245 x + + 2 2 256 + - 2/25 y + 1/25 y z - 1/175 x + 1/25 x y - 1/175 x z - 1/245 z + ---- + 3675 + + + 1/25 y - 1/175 z, COEFF(-2, 0, 2) = + + 2 2 2 33 + 3/25 y - 2/245 z - 2/175 z - 2/245 x + 2/175 x z - --- + 2/175 x, + 490 + + COEFF(-1, 0, 2) = + + 2 2 2 + - 9/98 - 2/245 z + 1/175 x z + 3/25 y - 2/175 z + 1/175 x + 1/245 x , + + 2 2 2 + COEFF(0, 0, 2) = - 2/175 z - 2/245 z + 3/25 y + 2/245 x - 1/10, + + COEFF(1, 0, 2) = + + 2 2 2 + - 9/98 + 3/25 y + 1/245 x - 2/245 z - 1/175 x - 1/175 x z - 2/175 z, + + COEFF(2, 0, 2) = + + 2 2 33 2 + - 2/175 x z - 2/175 x + 3/25 y - 2/175 z - 2/245 x - --- - 2/245 z , + 490 + + 2 2 2 + COEFF(-2, 1, 2) = 1/175 x z - 2/25 y - 1/245 x - 1/175 z - 1/245 z + + 256 + - 1/25 y + 1/25 x y - 1/25 y z + 1/175 x + ----, COEFF(-1, 1, 2) = + 3675 + + 2 2 2 211 + - 1/25 y z - 1/175 z - 1/245 z + 1/50 x y - 2/25 y + 1/490 x + ---- + 3675 + + - 1/25 y + 1/350 x z + 1/350 x, COEFF(0, 1, 2) = + + 2 2 2 + 1/245 x - 1/245 z - 1/25 y z - 1/175 z - 2/25 y + 4/75 - 1/25 y, + + 2 211 2 + COEFF(1, 1, 2) = - 1/350 x - 1/245 z + ---- - 1/25 y z + 1/490 x + 3675 + + 2 + - 1/50 x y - 1/350 x z - 2/25 y - 1/175 z - 1/25 y, COEFF(2, 1, 2) = + + 2 256 2 + - 1/245 z + ---- - 1/25 y - 1/25 y z - 1/245 x - 1/25 x y - 1/175 x + 3675 + + 2 + - 1/175 x z - 2/25 y - 1/175 z, COEFF(-2, 2, 2) = - 2/175 x z + 1/50 y + + 2 2 529 + + 1/50 y + 1/50 y z - 2/175 x - 1/50 x y + 2/245 z - ----- + 2/175 z + 14700 + + 2 + + 2/245 x , COEFF(-1, 2, 2) = 1/50 y + 1/50 y z - 1/175 x z + 2/175 z + + 2 2 2 169 + + 2/245 z + 1/50 y - 1/175 x - 1/100 x y - 1/245 x - -----, + 14700 + + COEFF(0, 2, 2) = + + 2 2 2 + 1/50 y - 1/300 + 1/50 y z - 2/245 x + 2/245 z + 2/175 z + 1/50 y , + + 2 2 + COEFF(1, 2, 2) = 1/175 x + 1/50 y + 2/175 z + 1/50 y - 1/245 x + 1/50 y z + + 2 169 + + 2/245 z + 1/175 x z + 1/100 x y - -----, COEFF(2, 2, 2) = 1/50 x y + 14700 + + 529 2 2 + - ----- + 2/245 x + 1/50 y z + 2/175 x + 1/50 y + 2/175 x z + 1/50 y + 14700 + + 2 + + 2/175 z + 2/245 z ] + +> print_coeff__lc_of_data(%, "coeff_dyy_", "fp", +> "3d.coeffs/3d.cube.order4.smooth0/coeff-dyy.compute.c"); +bytes used=2291755772, alloc=15136044, time=363.17 +bytes used=2292756444, alloc=15136044, time=363.25 +bytes used=2293756864, alloc=15136044, time=363.33 +bytes used=2294757024, alloc=15136044, time=363.43 +bytes used=2295757180, alloc=15136044, time=364.14 +bytes used=2296757568, alloc=15136044, time=364.86 +bytes used=2297758004, alloc=15136044, time=365.57 +bytes used=2298758392, alloc=15136044, time=366.28 +bytes used=2299758908, alloc=15136044, time=366.97 +bytes used=2300759100, alloc=15136044, time=367.28 +bytes used=2301759464, alloc=15136044, time=367.37 +bytes used=2302759644, alloc=15136044, time=367.46 +bytes used=2303791096, alloc=15136044, time=367.54 +bytes used=2304815880, alloc=15136044, time=367.62 +bytes used=2305820812, alloc=15136044, time=367.70 +bytes used=2306821036, alloc=15136044, time=367.80 +bytes used=2307821232, alloc=15136044, time=368.48 +bytes used=2308821492, alloc=15136044, time=369.51 +bytes used=2309821672, alloc=15136044, time=369.93 +bytes used=2310821836, alloc=15136044, time=370.02 +bytes used=2311822412, alloc=15136044, time=370.09 +bytes used=2312822628, alloc=15136044, time=370.16 +bytes used=2313822784, alloc=15136044, time=370.23 +bytes used=2314823332, alloc=15136044, time=370.31 +bytes used=2315823796, alloc=15136044, time=370.38 +bytes used=2316824208, alloc=15136044, time=370.45 +bytes used=2317824860, alloc=15136044, time=370.52 +bytes used=2318825084, alloc=15136044, time=370.59 +bytes used=2319825240, alloc=15136044, time=370.67 +bytes used=2320825668, alloc=15136044, time=370.74 +bytes used=2321825908, alloc=15136044, time=370.88 +bytes used=2322826068, alloc=15136044, time=371.00 +bytes used=2323826264, alloc=15136044, time=371.11 +bytes used=2324826480, alloc=15136044, time=371.21 +bytes used=2325826664, alloc=15136044, time=371.33 +bytes used=2326834056, alloc=15136044, time=371.44 +bytes used=2327836284, alloc=15136044, time=371.57 +bytes used=2328850328, alloc=15136044, time=371.69 +bytes used=2329858004, alloc=15136044, time=371.82 +bytes used=2330858196, alloc=15136044, time=371.93 +bytes used=2331859884, alloc=15136044, time=372.01 +bytes used=2332860108, alloc=15136044, time=373.34 +bytes used=2333860372, alloc=15136044, time=374.37 +bytes used=2334860616, alloc=15136044, time=374.91 +bytes used=2335860956, alloc=15136044, time=375.01 +bytes used=2336861144, alloc=15136044, time=375.08 +bytes used=2337861360, alloc=15136044, time=375.16 +bytes used=2338861760, alloc=15136044, time=375.23 +bytes used=2339862156, alloc=15136044, time=375.31 +bytes used=2340862508, alloc=15136044, time=375.38 +bytes used=2341862992, alloc=15136044, time=375.46 +bytes used=2342863360, alloc=15136044, time=375.54 +bytes used=2343863540, alloc=15136044, time=375.61 +bytes used=2344863736, alloc=15136044, time=375.69 +bytes used=2345864124, alloc=15136044, time=375.76 +bytes used=2346872496, alloc=15136044, time=375.88 +bytes used=2347872688, alloc=15136044, time=376.04 +bytes used=2348873684, alloc=15136044, time=376.17 +bytes used=2349873840, alloc=15136044, time=376.31 +bytes used=2350874048, alloc=15136044, time=376.64 +bytes used=2351874276, alloc=15136044, time=378.55 +bytes used=2352874448, alloc=15136044, time=379.22 +bytes used=2353874616, alloc=15136044, time=379.65 +bytes used=2354874928, alloc=15136044, time=379.74 +bytes used=2355875284, alloc=15136044, time=379.82 +bytes used=2356875544, alloc=15136044, time=379.89 +bytes used=2357875988, alloc=15136044, time=379.97 +bytes used=2358876364, alloc=15136044, time=380.04 +bytes used=2359876700, alloc=15136044, time=380.11 +bytes used=2360876952, alloc=15136044, time=380.19 +bytes used=2361877344, alloc=15136044, time=380.44 +bytes used=2362877600, alloc=15136044, time=381.81 +bytes used=2363877804, alloc=15136044, time=383.17 +bytes used=2364877960, alloc=15136044, time=383.72 +bytes used=2365878124, alloc=15136044, time=383.87 +bytes used=2366878308, alloc=15136044, time=383.96 +bytes used=2367878544, alloc=15136044, time=384.11 +> +# d^2/dydz +> simplify( diff(interp_3d_cube_order4_smooth0,y,z) ); +bytes used=2368878900, alloc=15136044, time=384.20 +bytes used=2369879608, alloc=15136044, time=384.28 +bytes used=2370879800, alloc=15136044, time=384.36 +bytes used=2371879964, alloc=15136044, time=384.44 +bytes used=2372880164, alloc=15136044, time=384.52 +bytes used=2373880280, alloc=15136044, time=384.61 +bytes used=2374880416, alloc=15136044, time=384.69 +bytes used=2375932004, alloc=15136044, time=384.77 + 137 289 137 +- ---- DATA(-1, 1, -1) - ----- DATA(0, 1, -1) - ---- DATA(1, 1, -1) + 5250 10500 5250 + + 137 137 137 + + ---- DATA(-1, 1, 1) - ---- DATA(1, -1, 1) - ---- DATA(-1, -1, 1) + 5250 5250 5250 + + 289 47 17 + - ----- DATA(0, -1, 1) + ---- DATA(-1, -2, 2) + ---- DATA(0, -2, 2) + 10500 5250 5250 + + 47 107 + + ---- DATA(1, -2, 2) - ---- DATA(-2, -1, 2) - 1/175 x y DATA(2, 0, 1) + 5250 7000 + + + 1/175 x y DATA(2, 0, -1) + 2/175 x y DATA(-2, 0, 2) + + 137 + - 1/350 x y DATA(1, 0, 1) + 1/175 x z DATA(2, -1, 0) + ---- DATA(2, -2, 2) + 5250 + + + 1/175 x y DATA(-1, 0, 2) - 1/175 x y DATA(1, 0, 2) + + - 2/175 x y DATA(2, 0, 2) - 1/350 x z DATA(-1, -1, 0) + + + 1/350 x z DATA(1, -1, 0) + 1/350 x z DATA(-1, 1, 0) + + + 2/245 y z DATA(1, -1, 0) + 2/245 y z DATA(-1, 1, 0) + + + 2/245 y z DATA(-2, 0, 1) - 2/175 x z DATA(2, 2, 0) + + - 1/175 x z DATA(2, 1, 0) + 1/175 x z DATA(-1, 2, 0) + + - 1/350 x z DATA(1, 1, 0) - 4/245 y z DATA(1, 2, 0) + + - 4/245 y z DATA(2, 2, 0) + 2/245 y z DATA(2, 1, 0) + + - 4/245 y z DATA(-1, 2, 0) + 2/245 y z DATA(0, 1, 0) + + + 2/245 y z DATA(1, 1, 0) + 2/245 y z DATA(-1, -1, 0) + + + 2/245 y z DATA(0, -1, 0) - 4/245 y z DATA(0, 2, 0) + + 107 + + 2/245 y z DATA(2, -1, 0) + ---- DATA(-2, 1, 2) + 7000 + + + 1/175 x z DATA(-2, 1, 0) + 2/175 x z DATA(-2, 2, 0) + + - 2/175 x z DATA(-2, -2, 0) - 1/175 x z DATA(-2, -1, 0) + + - 1/175 x z DATA(-1, -2, 0) + 2/175 x z DATA(2, -2, 0) + + 289 137 + + 1/175 x z DATA(1, -2, 0) + ----- DATA(0, 1, 1) + ---- DATA(1, 1, 1) + 10500 5250 + + 137 + + 2/245 y z DATA(2, 0, 1) - ---- DATA(-2, 2, 2) - 4/245 y z DATA(-1, 0, 2) + 5250 + + - 4/245 y z DATA(1, 0, 2) - 4/245 y z DATA(2, 0, 2) + + - 4/245 y z DATA(-2, 0, -2) - 4/245 y z DATA(2, 0, -2) + + - 4/245 y z DATA(1, 0, -2) - 4/245 y z DATA(-1, 0, -2) + + + 4/245 y z DATA(-1, 0, 0) - 2/245 y z DATA(2, -2, -1) + + - 2/245 y z DATA(1, -2, -1) - 2/245 y z DATA(-1, -2, -1) + + + 4/245 y z DATA(0, 0, 0) - 2/245 y z DATA(-2, -2, -1) + + + 4/245 y z DATA(2, 2, -2) + 4/245 y z DATA(1, 2, -2) + + + 4/245 y z DATA(-1, 2, -2) + 1/245 y z DATA(-2, 1, -1) + + + 1/245 y z DATA(-2, -1, -1) + 4/245 y z DATA(-2, 0, 0) + + - 2/245 y z DATA(-2, 2, -1) - 4/245 y z DATA(2, -2, 0) + + - 2/245 y z DATA(-2, -2, 1) - 4/245 y z DATA(1, -2, 0) + + + 2/245 y z DATA(-2, 0, -1) + 2/245 y z DATA(0, 0, 1) + + + 4/245 y z DATA(1, 0, 0) + 4/245 y z DATA(2, 0, 0) + + - 4/245 y z DATA(0, 0, -2) - 4/245 y z DATA(0, 0, 2) + + 137 + + ---- DATA(-1, -1, -1) - 4/245 y z DATA(0, -2, 0) + 5250 + + - 4/245 y z DATA(-2, -2, 0) + 2/245 y z DATA(-2, -1, 0) + + - 4/245 y z DATA(-1, -2, 0) + 2/245 y z DATA(0, 0, -1) + + 289 167 + + ----- DATA(0, -1, -1) + 2/245 y z DATA(1, 0, 1) - ---- DATA(1, 2, -1) + 10500 7000 + + 229 167 + + 2/245 y z DATA(-2, 1, 0) - ----- DATA(2, 1, -1) - ---- DATA(-1, 2, -1) + 10500 7000 + + 187 + - ---- DATA(0, 2, -1) - 4/245 y z DATA(-2, 2, 0) + 7000 + + - 2/245 y z DATA(2, -2, 1) + 1/245 y z DATA(-2, -1, 1) + + 229 + + 1/245 y z DATA(-2, 1, 1) + ----- DATA(2, -1, -1) + 10500 + + - 2/245 y z DATA(-2, 2, 1) + 4/245 y z DATA(-2, -2, 2) + + 229 167 187 + + ----- DATA(2, 1, 1) + ---- DATA(-1, 2, 1) + ---- DATA(0, 2, 1) + 10500 7000 7000 + + 167 + + ---- DATA(1, 2, 1) - 2/245 y z DATA(-1, -1, -2) + 7000 + + 229 137 + + 2/245 y z DATA(2, 0, -1) - ----- DATA(2, -1, 1) + ---- DATA(1, -1, -1) + 10500 5250 + + 107 + - ---- DATA(2, 2, -1) - 4/245 y z DATA(-2, 0, 2) + 7000 + + 47 + + 1/245 y z DATA(0, -1, -1) - ---- DATA(1, 2, 2) + 5250 + + 107 137 + + 1/350 x y DATA(1, 0, -1) + ---- DATA(-2, -1, -2) - ---- DATA(2, 2, 2) + 7000 5250 + + 137 47 167 + - ---- DATA(2, -2, -2) - ---- DATA(1, -2, -2) + ---- DATA(1, 1, 2) + 5250 5250 7000 + + 107 47 17 + + ---- DATA(2, 1, 2) - ---- DATA(-1, 2, 2) - ---- DATA(0, 2, 2) + 7000 5250 5250 + + 17 47 167 + - ---- DATA(0, -2, -2) - ---- DATA(-1, -2, -2) + ---- DATA(-1, 1, 2) + 5250 5250 7000 + + 187 + - 2/245 y z DATA(0, 2, -1) + ---- DATA(0, 1, 2) - 2/245 y z DATA(0, 2, 1) + 7000 + + 137 167 107 + - ---- DATA(-2, -2, -2) - ---- DATA(1, -1, 2) - ---- DATA(2, -1, 2) + 5250 7000 7000 + + 167 187 + + 1/175 x y DATA(-2, 0, 1) - ---- DATA(-1, -1, 2) - ---- DATA(0, -1, 2) + 7000 7000 + + 107 + + ---- DATA(2, 2, 1) + 1/175 x z DATA(-2, -1, -2) + 7000 + + - 1/175 x y DATA(-2, 0, -1) - 1/175 x z DATA(1, 2, 0) + + 2 2 + - 1/350 x DATA(0, -2, -1) + 1/175 x DATA(0, 2, -2) + + 137 2 + + 2/175 x z DATA(2, 2, 2) + ---- DATA(-2, 2, -2) + 1/350 x DATA(0, 2, -1) + 5250 + + 2 2 + - 1/350 x DATA(0, 2, 1) - 1/350 x DATA(0, -1, -2) + + 2 2 + - 1/175 x DATA(0, 2, 2) - 1/175 x DATA(0, -2, -2) + + 2 2 + - 1/350 x DATA(0, 1, 2) + 1/350 x DATA(0, -1, 2) + + 2 + + 1/350 x DATA(0, 1, -2) - 2/175 x z DATA(2, -2, -2) + + 107 + + 1/700 x z DATA(-1, 1, -1) - ---- DATA(2, 1, -2) + 7000 + + 167 187 + - 2/245 y z DATA(-1, 2, -1) - ---- DATA(1, 1, -2) - ---- DATA(0, 1, -2) + 7000 7000 + + 167 107 + - ---- DATA(-1, 1, -2) + 2/245 y z DATA(1, 0, -1) - ---- DATA(-2, 1, -2) + 7000 7000 + + + 1/245 y z DATA(0, 1, 1) - 2/245 y z DATA(0, -1, -2) + + + 1/350 z DATA(0, -1, -1) - 2/245 y z DATA(0, -2, -1) + + 107 167 187 + + ---- DATA(2, -1, -2) + ---- DATA(1, -1, -2) + ---- DATA(0, -1, -2) + 7000 7000 7000 + + 167 + + ---- DATA(-1, -1, -2) + 4/245 y z DATA(0, 2, -2) + 7000 + + 2 2 + + 1/700 x DATA(0, -1, 1) + 1/175 x DATA(0, -2, 2) + + - 1/700 x z DATA(1, 1, -1) + 1/700 x z DATA(-1, 1, 1) + + 2 2 + + 1/350 x DATA(0, -2, 1) + 1/700 x DATA(0, 1, -1) + + 2 2 + + 1/200 z DATA(0, -1, -2) - 1/50 z DATA(0, -2, -1) + + 2 107 + - 1/100 z DATA(0, 2, -2) + ---- DATA(2, -2, -1) + 7000 + + 2 + + 1/700 x z DATA(1, -1, 1) - 1/100 z DATA(0, -1, -1) + + 2 + - 1/100 z DATA(0, 1, 1) - 1/700 x z DATA(-1, -1, 1) + + 2 2 + + 1/100 z DATA(0, 2, 2) + 1/100 z DATA(0, -2, -2) + + 2 2 + + 1/200 z DATA(0, 1, 2) - 1/200 z DATA(0, -1, 2) + + 2 + + 1/175 x z DATA(-1, -2, 2) + 1/50 z DATA(0, 2, -1) + + 2 + - 1/50 z DATA(0, 2, 1) - 1/175 x z DATA(1, -2, 2) + + 2 167 + + 4/245 y z DATA(0, 2, 2) - 1/200 z DATA(0, 1, -2) + ---- DATA(1, -2, -1) + 7000 + + + 1/175 x z DATA(-2, -1, 2) - 2/175 x z DATA(2, -2, 2) + + - 1/175 x z DATA(-2, 1, 2) - 1/700 x z DATA(1, 1, 1) + + 187 + - 2/175 x z DATA(-2, 2, 2) + ---- DATA(0, -2, -1) + 7000 + + + 4/245 y z DATA(0, -2, -2) - 2/245 y z DATA(0, 1, 2) + + - 2/245 y z DATA(0, -1, 2) - 2/245 y z DATA(0, 1, -2) + + 2 2 + + 1/100 z DATA(0, -1, 1) - 1/100 z DATA(0, -2, 2) + + 167 + - 1/700 x z DATA(-1, -1, -1) + ---- DATA(-1, -2, -1) + 7000 + + - 1/350 x z DATA(1, 2, -1) - 1/350 x z DATA(2, 1, -1) + + 107 + + ---- DATA(-2, -2, -1) + 1/350 x z DATA(-1, 2, -1) + 7000 + + 2 2 + - 1/100 y DATA(0, 1, 1) + 1/100 z DATA(0, 1, -1) + + 2 2 + + 1/50 z DATA(0, -2, 1) + 1/200 y DATA(0, 2, 1) + + 2 2 + - 1/100 y DATA(0, -1, -1) - 1/50 y DATA(0, -1, -2) + + 2 2 + + 1/200 y DATA(0, -2, -1) - 1/100 y DATA(0, 2, -2) + + 2 + - 1/200 y DATA(0, 2, -1) - 2/175 x y DATA(-2, 0, -2) + + - 1/175 z DATA(0, -1, -2) + 1/175 z DATA(0, -2, -1) + + + 2/175 z DATA(0, 2, -2) - 1/175 z DATA(0, 2, -1) - 1/175 z DATA(0, 2, 1) + + + 2/175 z DATA(0, 2, 2) - 2/175 z DATA(0, -2, -2) + 1/175 z DATA(0, 1, 2) + + - 1/350 z DATA(0, 1, 1) - 1/175 z DATA(0, -1, 2) + 1/175 z DATA(0, 1, -2) + + + 1/350 x z DATA(2, -1, -1) - 1/350 x z DATA(2, 1, 1) + + 137 + + ---- DATA(2, 2, -2) + 1/350 x z DATA(-1, 2, 1) - 2/175 z DATA(0, -2, 2) + 5250 + + 47 + - 1/350 x z DATA(1, 2, 1) + 1/350 x z DATA(2, -1, 1) + ---- DATA(1, 2, -2) + 5250 + + + 1/700 x z DATA(1, -1, -1) + 1/350 z DATA(0, -1, 1) + + - 1/175 x z DATA(2, 2, -1) - 1/350 z DATA(0, 1, -1) + + 17 + + 1/175 z DATA(0, -2, 1) + ---- DATA(0, 2, -2) + 1/175 x z DATA(1, 2, 2) + 5250 + + 47 2 2 + + ---- DATA(-1, 2, -2) - 1/700 x DATA(0, -1, -1) - 1/700 x DATA(0, 1, 1) + 5250 + + 229 + - ----- DATA(-2, 1, -1) + 4/245 y z DATA(0, -2, 2) + 10500 + + 2 2 + + 1/100 y DATA(0, 2, 2) + 1/100 y DATA(0, -2, -2) + + 2 2 2 + - 1/50 y DATA(0, 1, 2) + 1/50 y DATA(0, -1, 2) + 1/50 y DATA(0, 1, -2) + + 2 2 + + 1/100 y DATA(0, -1, 1) - 1/100 y DATA(0, -2, 2) + + 2 2 + - 1/200 y DATA(0, -2, 1) + 1/100 y DATA(0, 1, -1) + + - 1/175 x y DATA(-1, 0, -2) + 1/175 x y DATA(1, 0, -2) + + + 1/175 y DATA(0, -1, -2) - 2/175 y DATA(0, 2, -2) + + - 1/175 y DATA(0, -2, -1) + 1/350 y DATA(0, -1, -1) + + - 1/350 y DATA(0, 1, 1) - 1/175 y DATA(0, -1, 2) - 1/175 y DATA(0, 2, -1) + + + 1/175 y DATA(0, 2, 1) - 1/350 y DATA(0, -1, 1) + 2/175 y DATA(0, -2, 2) + + - 1/175 y DATA(0, 1, 2) + 1/175 y DATA(0, 1, -2) + + 229 + + 2/175 x y DATA(2, 0, -2) + ----- DATA(-2, -1, -1) + 10500 + + 107 + + 1/175 y DATA(0, -2, 1) + 1/350 y DATA(0, 1, -1) - ---- DATA(-2, 2, -1) + 7000 + + + 1/245 y z DATA(0, -1, 1) + 2/175 y DATA(0, 2, 2) + + - 2/175 y DATA(0, -2, -2) - 1/175 x z DATA(-2, -2, 1) + + - 1/350 x z DATA(-1, -2, 1) + 1/350 x z DATA(1, -2, 1) + + + 1/350 x z DATA(1, 1, 2) + 1/175 x z DATA(2, -2, 1) + + - 1/350 x z DATA(-2, -1, 1) + 1/350 x z DATA(-2, 1, 1) + + + 1/175 x z DATA(-2, 2, 1) + 2/175 x z DATA(-2, -2, 2) + + - 1/175 x z DATA(-2, -2, -1) + 2/175 x z DATA(2, 2, -2) + + - 2/245 y z DATA(0, -2, 1) + 1/245 y z DATA(0, 1, -1) + + + 1/175 x z DATA(1, 2, -2) - 1/175 x z DATA(-1, 2, -2) + + + 1/350 x z DATA(-2, 1, -1) - 1/350 x z DATA(-2, -1, -1) + + + 1/175 x z DATA(-2, 2, -1) - 1/350 x z DATA(1, -1, -2) + + 107 + - ---- DATA(-2, -2, 1) + 1/350 x z DATA(-1, -1, -2) + 7000 + + + 1/175 x z DATA(2, -2, -1) + 1/350 x z DATA(1, -2, -1) + + - 1/350 x z DATA(-1, -2, -1) - 1/175 x z DATA(2, 2, 1) + + - 1/350 x y DATA(-1, 0, -1) - 2/175 x z DATA(-2, 2, -2) + + + 1/175 x z DATA(2, 1, -2) + 1/350 x y DATA(-1, 0, 1) + + + 2/245 y z DATA(-1, 0, -1) + 2/245 y z DATA(-1, 0, 1) + + 167 + - ---- DATA(-1, -2, 1) + 1/350 x z DATA(1, 1, -2) + 7000 + + - 1/350 x z DATA(-1, 1, -2) - 1/175 x z DATA(-2, 1, -2) + + 167 + - 1/175 x z DATA(2, -1, -2) - ---- DATA(1, -2, 1) + 7000 + + - 1/350 x z DATA(-1, 1, 2) + 2/175 x z DATA(-2, -2, -2) + + 187 + - 1/350 x z DATA(1, -1, 2) - ---- DATA(0, -2, 1) + 7000 + + - 1/175 x z DATA(2, -1, 2) + 1/350 x z DATA(-1, -1, 2) + + - 1/350 x y DATA(-1, -2, 1) + 1/350 x y DATA(1, -2, 1) + + 107 + - ---- DATA(2, -2, 1) - 1/350 x y DATA(1, 1, 2) + 1/175 x y DATA(2, -2, 1) + 7000 + + - 1/175 x z DATA(1, -2, -2) + 1/175 x z DATA(2, 1, 2) + + - 1/175 x z DATA(-1, 2, 2) + 1/175 x z DATA(-1, -2, -2) + + - 2/245 y z DATA(-1, -1, 2) - 2/245 y z DATA(2, 2, 1) + + - 1/350 x y DATA(-2, -1, -1) + 4/245 y z DATA(-2, 2, -2) + + 2 + - 2/245 y z DATA(1, -1, -2) - 1/50 z DATA(1, 2, 1) + + 2 2 + + 1/100 z DATA(2, -1, 1) - 1/100 z DATA(1, -1, -1) + + - 2/245 y z DATA(2, 1, -2) - 2/175 x y DATA(-2, -2, 2) + + - 1/175 x y DATA(-2, 2, 1) + 1/350 x y DATA(-2, 1, 1) + + 2 + + 1/350 x y DATA(-2, -1, 1) + 1/50 z DATA(2, 2, -1) + + 2 2 + + 1/200 z DATA(-2, -1, -2) + 1/100 z DATA(2, 2, 2) + + 2 2 + + 1/100 z DATA(2, -2, -2) + 1/100 z DATA(-1, 1, -1) + + 2 2 + + 1/100 z DATA(1, -2, -2) + 1/200 z DATA(2, 1, 2) + + 2 2 + + 1/100 z DATA(-1, 2, 2) + 1/100 z DATA(-1, -2, -2) + + 2 2 + + 1/200 z DATA(-1, 1, 2) + 1/100 z DATA(-2, -2, -2) + + 2 2 + - 1/200 z DATA(1, -1, 2) - 1/200 z DATA(2, -1, 2) + + 2 2 + - 1/200 z DATA(-1, -1, 2) - 1/50 z DATA(2, 2, 1) + + 2 2 + - 1/100 z DATA(-2, 2, -2) - 1/200 z DATA(2, 1, -2) + + 2 2 + - 1/200 z DATA(1, 1, -2) - 1/200 z DATA(-1, 1, -2) + + 2 2 + - 1/200 z DATA(-2, 1, -2) - 1/50 z DATA(-1, 2, 1) + + 2 2 + + 1/100 z DATA(1, 1, -1) - 1/100 z DATA(-1, 1, 1) + + 2 2 + + 1/100 z DATA(1, -1, 1) + 1/100 z DATA(-1, -1, 1) + + 2 2 + - 1/100 z DATA(-1, -2, 2) - 1/100 z DATA(1, -2, 2) + + 2 2 + - 1/200 z DATA(-2, -1, 2) - 1/100 z DATA(2, -2, 2) + + 2 2 + + 1/200 z DATA(-2, 1, 2) - 1/100 z DATA(1, 1, 1) + + 2 2 + + 1/100 z DATA(-2, 2, 2) - 1/100 z DATA(-1, -1, -1) + + 2 2 + + 1/50 z DATA(1, 2, -1) + 1/1400 x DATA(1, 1, -1) + + 2 2 + + 1/100 y DATA(1, 1, -1) - 1/100 y DATA(-1, 1, 1) + + 2 2 + + 1/100 y DATA(1, -1, 1) + 1/100 y DATA(-1, -1, 1) + + 2 2 + - 1/100 y DATA(-1, -2, 2) - 1/100 y DATA(1, -2, 2) + + 2 2 + + 1/50 y DATA(-2, -1, 2) - 1/100 y DATA(2, -2, 2) + + 2 2 + - 1/50 y DATA(-2, 1, 2) - 1/100 y DATA(1, 1, 1) + + 2 2 + + 1/100 y DATA(-2, 2, 2) - 1/100 y DATA(-1, -1, -1) + + 2 2 + - 1/200 y DATA(1, 2, -1) + 1/100 y DATA(2, 1, -1) + + 2 2 + - 1/200 y DATA(-1, 2, -1) - 1/100 y DATA(2, -1, -1) + + 2 2 + - 1/100 y DATA(2, 1, 1) + 1/200 y DATA(-1, 2, 1) + + 2 2 + + 1/200 y DATA(1, 2, 1) + 1/100 y DATA(2, -1, 1) + + 2 2 + - 1/100 y DATA(1, -1, -1) - 1/200 y DATA(2, 2, -1) + + 2 2 + + 1/100 y DATA(1, 2, 2) - 1/50 y DATA(-2, -1, -2) + + 2 2 + + 1/100 y DATA(2, 2, 2) + 1/100 y DATA(2, -2, -2) + + 2 2 + + 1/100 y DATA(-1, 1, -1) + 1/100 y DATA(1, -2, -2) + + 2 2 + - 1/50 y DATA(2, 1, 2) + 1/100 y DATA(-1, 2, 2) + + 2 2 + + 1/100 y DATA(-1, -2, -2) - 1/50 y DATA(-1, 1, 2) + + 2 2 + + 1/100 y DATA(-2, -2, -2) + 1/50 y DATA(1, -1, 2) + + 2 2 + + 1/50 y DATA(2, -1, 2) + 1/50 y DATA(-1, -1, 2) + + 2 2 + + 1/200 y DATA(2, 2, 1) - 1/100 y DATA(-2, 2, -2) + + 2 2 + + 1/50 y DATA(2, 1, -2) + 1/50 y DATA(1, 1, -2) + + 2 + + 1/50 y DATA(-1, 1, -2) - 2/245 y z DATA(1, 1, 2) + + - 2/245 y z DATA(1, -2, 1) + 1/175 x y DATA(-2, 2, -1) + + - 1/175 x y DATA(-2, -2, 1) - 2/245 y z DATA(-1, -2, 1) + + 229 + - ----- DATA(-2, -1, 1) + 1/175 x y DATA(-1, 2, -2) + 10500 + + + 2/175 z DATA(0, -2, 0) + 2/175 z DATA(-2, -2, 0) + + - 2/175 z DATA(-2, 2, 0) + 2/175 z DATA(2, -2, 0) - 1/175 z DATA(-2, 1, 0) + + + 2/175 z DATA(1, -2, 0) + 1/175 y DATA(1, 0, -1) + + + 1/175 z DATA(-2, -1, 0) + 2/175 z DATA(-1, -2, 0) + + 2 2 + + 1/175 x DATA(-2, -2, -2) + 1/700 x DATA(1, -1, 2) + + 2 2 + - 1/350 x DATA(2, -1, 2) + 1/700 x DATA(-1, -1, 2) + + 2 2 + + 1/350 x DATA(2, 2, 1) - 1/175 x DATA(-2, 2, -2) + + 2 2 + - 1/350 x DATA(2, 1, -2) + 1/700 x DATA(1, 1, -2) + + 2 2 + + 1/700 x DATA(-1, 1, -2) - 1/350 x DATA(-2, 1, -2) + + 2 2 + + 1/350 x DATA(2, -1, -2) - 1/700 x DATA(1, -1, -2) + + 2 2 + - 1/700 x DATA(-1, -1, -2) + 1/350 x DATA(2, -2, -1) + + 2 2 + - 1/700 x DATA(1, -2, -1) + 1/350 x DATA(1, -2, 2) + + 2 2 + - 1/1400 x DATA(-1, 1, 1) + 1/1400 x DATA(1, -1, 1) + + 2 2 + + 1/1400 x DATA(-1, -1, 1) + 1/350 x DATA(-1, -2, 2) + + 2 2 + - 1/350 x DATA(-2, -1, 2) - 1/175 x DATA(2, -2, 2) + + 2 2 + + 1/350 x DATA(-2, 1, 2) - 1/1400 x DATA(1, 1, 1) + + 2 2 + + 1/175 x DATA(-2, 2, 2) - 1/1400 x DATA(-1, -1, -1) + + 2 2 + + 1/700 x DATA(1, 2, -1) - 1/700 x DATA(2, 1, -1) + + 2 2 + + 1/700 x DATA(-1, 2, -1) + 1/700 x DATA(2, -1, -1) + + 2 2 + + 1/700 x DATA(2, 1, 1) - 1/700 x DATA(-1, 2, 1) + + 2 2 + - 1/700 x DATA(1, 2, 1) - 1/700 x DATA(2, -1, 1) + + 2 2 + - 1/1400 x DATA(1, -1, -1) - 1/350 x DATA(2, 2, -1) + + 2 2 + - 1/350 x DATA(1, 2, 2) + 1/350 x DATA(-2, -1, -2) + + 2 2 + + 1/175 x DATA(2, 2, 2) + 1/175 x DATA(2, -2, -2) + + 2 2 + + 1/1400 x DATA(-1, 1, -1) - 1/350 x DATA(1, -2, -2) + + 2 2 + + 1/350 x DATA(2, 1, 2) - 1/350 x DATA(-1, 2, 2) + + 2 2 + - 1/350 x DATA(-1, -2, -2) - 1/700 x DATA(-1, 1, 2) + + 2 2 + - 1/700 x DATA(-1, -2, -1) + 1/350 x DATA(-2, -2, -1) + + 2 2 + - 1/175 x DATA(2, 2, -2) + 1/350 x DATA(1, 2, -2) + + 2 2 + + 1/350 x DATA(-1, 2, -2) - 1/700 x DATA(-2, 1, -1) + + 2 2 + + 1/700 x DATA(-2, -1, -1) - 1/350 x DATA(-2, 2, -1) + + 2 2 + - 1/350 x DATA(-2, -2, 1) + 1/700 x DATA(-1, -2, 1) + + 2 2 + + 1/700 x DATA(1, -2, 1) - 1/700 x DATA(1, 1, 2) + + 2 2 + - 1/350 x DATA(2, -2, 1) - 1/700 x DATA(-2, -1, 1) + + 2 2 + + 1/700 x DATA(-2, 1, 1) + 1/350 x DATA(-2, 2, 1) + + 2 + - 1/175 x DATA(-2, -2, 2) - 2/245 y z DATA(-2, -1, 2) + + + 1/1000 x DATA(-1, -1, 1) + 1/250 x DATA(-1, -2, 2) + + - 1/175 y DATA(-1, 0, 1) - 1/250 x DATA(1, -2, 2) + + + 1/250 x DATA(-2, -1, 2) - 1/125 x DATA(2, -2, 2) + + - 1/250 x DATA(-2, 1, 2) + 1/1000 x DATA(1, 1, 1) - 1/125 x DATA(-2, 2, 2) + + - 1/1000 x DATA(-1, -1, -1) - 1/500 x DATA(1, 2, -1) + + - 1/500 x DATA(2, 1, -1) + 1/500 x DATA(-1, 2, -1) + + + 1/500 x DATA(2, -1, -1) + 1/500 x DATA(2, 1, 1) - 1/500 x DATA(-1, 2, 1) + + + 1/500 x DATA(1, 2, 1) - 1/500 x DATA(2, -1, 1) + + + 1/1000 x DATA(1, -1, -1) - 1/250 x DATA(2, 2, -1) + + + 1/250 x DATA(1, 2, 2) - 1/250 x DATA(-2, -1, -2) + + - 1/1000 x DATA(1, -1, 1) + 1/175 y DATA(-1, 0, -1) + + + 1/250 x DATA(2, -2, -1) + 1/500 x DATA(1, -2, -1) + + - 1/500 x DATA(-1, -2, -1) - 1/250 x DATA(-2, -2, -1) + + - 1/125 x DATA(2, 2, -2) - 1/250 x DATA(1, 2, -2) + + + 1/250 x DATA(-1, 2, -2) + 1/500 x DATA(-2, 1, -1) + + - 1/500 x DATA(-2, -1, -1) + 1/250 x DATA(-2, 2, -1) + + + 1/250 x DATA(-2, -2, 1) + 1/500 x DATA(-1, -2, 1) + + - 1/500 x DATA(1, -2, 1) + 1/500 x DATA(1, 1, 2) - 1/250 x DATA(2, -2, 1) + + - 1/1000 x DATA(1, 1, -1) - 1/1000 x DATA(-1, 1, 1) + + + 1/125 x DATA(2, 2, 2) + 1/125 x DATA(2, -2, -2) + + + 1/1000 x DATA(-1, 1, -1) + 1/250 x DATA(1, -2, -2) + + + 1/250 x DATA(2, 1, 2) - 1/250 x DATA(-1, 2, 2) + + - 1/250 x DATA(-1, -2, -2) - 1/500 x DATA(-1, 1, 2) + + - 1/125 x DATA(-2, -2, -2) - 1/500 x DATA(1, -1, 2) + + - 1/250 x DATA(2, -1, 2) + 1/500 x DATA(-1, -1, 2) + 1/250 x DATA(2, 2, 1) + + + 1/125 x DATA(-2, 2, -2) - 1/250 x DATA(2, 1, -2) + + - 1/500 x DATA(1, 1, -2) + 1/500 x DATA(-1, 1, -2) + + + 1/250 x DATA(-2, 1, -2) + 1/250 x DATA(2, -1, -2) + + + 1/500 x DATA(1, -1, -2) - 1/500 x DATA(-1, -1, -2) + + + 1/500 x DATA(-2, -1, 1) - 1/500 x DATA(-2, 1, 1) + + - 1/250 x DATA(-2, 2, 1) + 1/125 x DATA(-2, -2, 2) + + - 1/350 z DATA(1, 1, -1) - 1/350 z DATA(-1, 1, 1) + + - 1/175 y DATA(-2, 2, -1) + 1/350 y DATA(1, 1, -1) + + - 1/350 y DATA(-1, 1, 1) - 1/350 y DATA(1, -1, 1) + + - 1/350 y DATA(-1, -1, 1) + 2/175 y DATA(-1, -2, 2) + + + 2/175 y DATA(1, -2, 2) - 1/175 y DATA(-2, -1, 2) + + + 2/175 y DATA(2, -2, 2) - 1/175 y DATA(-2, 1, 2) - 1/350 y DATA(1, 1, 1) + + + 2/175 y DATA(-2, 2, 2) + 1/350 y DATA(-1, -1, -1) + + - 1/175 y DATA(1, 2, -1) + 1/350 y DATA(2, 1, -1) + + - 1/175 y DATA(-1, 2, -1) + 1/350 y DATA(2, -1, -1) + + - 1/350 y DATA(2, 1, 1) + 1/175 y DATA(-1, 2, 1) + 1/175 y DATA(1, 2, 1) + + - 1/350 y DATA(2, -1, 1) + 1/350 y DATA(1, -1, -1) + + - 1/175 y DATA(2, 2, -1) + 2/175 y DATA(1, 2, 2) + + + 1/175 y DATA(-2, -1, -2) + 2/175 y DATA(2, 2, 2) + + - 2/175 y DATA(2, -2, -2) + 1/350 y DATA(-1, 1, -1) + + - 2/175 y DATA(1, -2, -2) - 1/175 y DATA(2, 1, 2) + 2/175 y DATA(-1, 2, 2) + + - 2/175 y DATA(-1, -2, -2) - 1/175 y DATA(-1, 1, 2) + + 2 + - 2/175 y DATA(-2, -2, -2) + 1/200 z DATA(2, -1, -2) + + 2 2 + + 1/200 z DATA(1, -1, -2) + 1/200 z DATA(-1, -1, -2) + + 2 2 + - 1/50 z DATA(2, -2, -1) - 1/50 z DATA(1, -2, -1) + + 2 2 + - 1/50 z DATA(-1, -2, -1) - 1/50 z DATA(-2, -2, -1) + + 2 2 + - 1/100 z DATA(2, 2, -2) - 1/100 z DATA(1, 2, -2) + + 2 2 + - 1/100 z DATA(-1, 2, -2) + 1/100 z DATA(-2, 1, -1) + + 2 2 + - 1/100 z DATA(-2, -1, -1) + 1/50 z DATA(-2, 2, -1) + + 2 2 + + 1/50 z DATA(-2, -2, 1) + 1/50 z DATA(-1, -2, 1) + + 2 2 2 + + 1/50 z DATA(1, -2, 1) + 1/200 z DATA(1, 1, 2) + 1/50 z DATA(2, -2, 1) + + 2 2 + + 1/100 z DATA(-2, -1, 1) - 1/100 z DATA(-2, 1, 1) + + 2 2 + - 1/50 z DATA(-2, 2, 1) - 1/100 z DATA(-2, -2, 2) + + 2 2 + + 1/100 z DATA(2, 1, -1) + 1/50 z DATA(-1, 2, -1) + + 2 + - 1/100 z DATA(2, -1, -1) - 1/175 y DATA(-2, 0, 1) + + - 1/175 y DATA(1, -1, 2) - 1/175 y DATA(2, -1, 2) + + - 1/175 y DATA(-1, -1, 2) + 1/175 y DATA(2, 2, 1) + + - 2/175 y DATA(-2, 2, -2) + 1/175 y DATA(2, 1, -2) + + + 1/175 y DATA(1, 1, -2) + 1/175 y DATA(-1, 1, -2) + + + 1/175 y DATA(-2, 1, -2) + 1/175 y DATA(2, -1, -2) + + + 1/175 y DATA(1, -1, -2) + 1/175 y DATA(-1, -1, -2) + + - 1/175 y DATA(2, -2, -1) - 1/175 y DATA(1, -2, -1) + + - 1/175 y DATA(-1, -2, -1) - 1/175 y DATA(-2, -2, -1) + + - 2/175 y DATA(2, 2, -2) - 2/175 y DATA(1, 2, -2) + + - 2/175 y DATA(-1, 2, -2) + 1/350 y DATA(-2, 1, -1) + + + 1/350 y DATA(-2, -1, -1) + 1/175 y DATA(-2, -2, 1) + + + 1/175 y DATA(-1, -2, 1) + 1/175 y DATA(1, -2, 1) - 1/175 y DATA(1, 1, 2) + + + 1/175 y DATA(2, -2, 1) - 1/350 y DATA(-2, -1, 1) + + - 1/350 y DATA(-2, 1, 1) + 1/175 y DATA(-2, 2, 1) + + + 2/175 y DATA(-2, -2, 2) + 2/175 z DATA(-1, 2, 2) + + + 1/175 z DATA(-1, 1, 2) - 2/175 z DATA(-2, -2, -2) + + - 1/175 z DATA(1, -1, 2) - 1/175 z DATA(2, -1, 2) + + - 1/175 z DATA(-1, -1, 2) - 1/175 z DATA(2, 2, 1) + + + 2/175 z DATA(-2, 2, -2) + 1/175 z DATA(2, 1, -2) + + + 1/175 z DATA(1, 1, -2) + 1/175 z DATA(-1, 1, -2) + + + 1/175 z DATA(-2, 1, -2) - 1/175 z DATA(2, -1, -2) + + - 1/175 z DATA(1, -1, -2) - 1/175 z DATA(-1, -1, -2) + + + 1/175 z DATA(2, -2, -1) + 1/175 z DATA(1, -2, -1) + + + 1/175 z DATA(-1, -2, -1) + 1/175 z DATA(-2, -2, -1) + + + 2/175 z DATA(2, 2, -2) + 2/175 z DATA(1, 2, -2) + + + 2/175 z DATA(-1, 2, -2) - 1/350 z DATA(-2, 1, -1) + + + 1/350 z DATA(-2, -1, -1) - 1/175 z DATA(-2, 2, -1) + + + 1/175 z DATA(-2, -2, 1) + 1/175 z DATA(-1, -2, 1) + + + 1/175 z DATA(1, -2, 1) + 1/175 z DATA(1, 1, 2) + 1/175 z DATA(2, -2, 1) + + + 1/350 z DATA(-2, -1, 1) - 1/350 z DATA(-2, 1, 1) + + - 1/175 z DATA(-2, 2, 1) - 2/175 z DATA(-2, -2, 2) + + 2 + - 2/175 z DATA(-1, -2, -2) + 1/50 y DATA(-2, 1, -2) + + 2 2 + - 1/50 y DATA(2, -1, -2) - 1/50 y DATA(1, -1, -2) + + 2 2 + - 1/50 y DATA(-1, -1, -2) + 1/200 y DATA(2, -2, -1) + + 2 2 + + 1/200 y DATA(1, -2, -1) + 1/200 y DATA(-1, -2, -1) + + 2 2 + + 1/200 y DATA(-2, -2, -1) - 1/100 y DATA(2, 2, -2) + + 2 2 + - 1/100 y DATA(1, 2, -2) - 1/100 y DATA(-1, 2, -2) + + 2 2 + + 1/100 y DATA(-2, 1, -1) - 1/100 y DATA(-2, -1, -1) + + 2 2 + - 1/200 y DATA(-2, 2, -1) - 1/200 y DATA(-2, -2, 1) + + 2 2 + - 1/200 y DATA(-1, -2, 1) - 1/200 y DATA(1, -2, 1) + + 2 2 + - 1/50 y DATA(1, 1, 2) - 1/200 y DATA(2, -2, 1) + + 2 2 + + 1/100 y DATA(-2, -1, 1) - 1/100 y DATA(-2, 1, 1) + + 2 2 + + 1/200 y DATA(-2, 2, 1) - 1/100 y DATA(-2, -2, 2) + + + 1/350 z DATA(1, -1, 1) + 1/350 z DATA(-1, -1, 1) + + - 2/175 z DATA(-1, -2, 2) - 2/175 z DATA(1, -2, 2) + + - 1/175 z DATA(-2, -1, 2) - 2/175 z DATA(2, -2, 2) + + + 1/175 z DATA(-2, 1, 2) - 1/350 z DATA(1, 1, 1) + 2/175 z DATA(-2, 2, 2) + + + 1/350 z DATA(-1, -1, -1) - 1/175 z DATA(1, 2, -1) + + - 1/350 z DATA(2, 1, -1) - 1/175 z DATA(-1, 2, -1) + + + 1/350 z DATA(2, -1, -1) - 1/350 z DATA(2, 1, 1) - 1/175 z DATA(-1, 2, 1) + + - 1/175 z DATA(1, 2, 1) + 1/350 z DATA(2, -1, 1) + 1/350 z DATA(1, -1, -1) + + - 1/175 z DATA(2, 2, -1) + 2/175 z DATA(1, 2, 2) + + - 1/175 z DATA(-2, -1, -2) + 2/175 z DATA(2, 2, 2) + + - 2/175 z DATA(2, -2, -2) - 1/350 z DATA(-1, 1, -1) + + - 2/175 z DATA(1, -2, -2) + 1/175 z DATA(2, 1, 2) + + - 2/245 y z DATA(2, 1, 2) + 1/245 y z DATA(-1, 1, -1) + + + 4/245 y z DATA(2, -2, -2) - 2/245 y z DATA(1, 1, -2) + + - 2/245 y z DATA(-1, 1, -2) - 2/245 y z DATA(-2, -1, -2) + + + 4/245 y z DATA(2, 2, 2) + 1/245 y z DATA(1, -1, -1) + + - 2/245 y z DATA(2, 2, -1) + 4/245 y z DATA(1, 2, 2) + + - 2/245 y z DATA(1, 2, 1) + 1/245 y z DATA(2, -1, 1) + + + 1/245 y z DATA(2, -1, -1) + 1/245 y z DATA(2, 1, 1) + + - 2/245 y z DATA(-1, 2, 1) + 1/245 y z DATA(2, 1, -1) + + + 1/245 y z DATA(-1, -1, -1) - 2/245 y z DATA(1, 2, -1) + + + 4/245 y z DATA(-2, 2, 2) + 1/245 y z DATA(1, 1, -1) + + - 2/245 y z DATA(-2, 1, 2) + 1/700 x y DATA(1, 1, -1) + + + 4/245 y z DATA(2, -2, 2) + 4/245 y z DATA(1, -2, 2) + + + 4/245 y z DATA(-1, -2, 2) + 4/245 y z DATA(1, -2, -2) + + + 1/175 y DATA(-2, 0, -1) - 2/245 y z DATA(2, -1, 2) + + + 4/245 y z DATA(-2, -2, -2) + 1/245 y z DATA(-1, -1, 1) + + - 2/245 y z DATA(1, -1, 2) + 4/245 y z DATA(-1, -2, -2) + + - 2/245 y z DATA(-1, 1, 2) + 1/245 y z DATA(1, -1, 1) + + + 1/245 y z DATA(-1, 1, 1) + 4/245 y z DATA(-1, 2, 2) + + 2 + - 2/245 y z DATA(-2, 1, -2) - 1/100 z DATA(2, 1, 1) + + - 1/350 x y DATA(-2, 1, -1) - 2/245 y z DATA(2, -1, -2) + + + 1/245 y z DATA(1, 1, 1) - 1/175 z DATA(1, 1, 0) - 1/175 z DATA(0, 1, 0) + + - 2/175 x y DATA(2, 2, -2) - 1/175 z DATA(-1, 1, 0) + + + 1/175 z DATA(0, -1, 0) - 1/175 x y DATA(1, 2, -2) + + + 1/175 z DATA(-1, -1, 0) + 1/175 z DATA(1, -1, 0) + + - 2/175 z DATA(-1, 2, 0) - 2/175 z DATA(1, 2, 0) + 1/175 z DATA(2, -1, 0) + + - 2/175 z DATA(2, 2, 0) - 1/175 z DATA(2, 1, 0) + + + 1/175 x y DATA(-2, -2, -1) + 1/350 x y DATA(1, -1, -2) + + - 1/350 x y DATA(-1, -1, -2) - 2/175 z DATA(0, 2, 0) + + - 1/175 x y DATA(2, -2, -1) - 1/350 x y DATA(1, -2, -1) + + + 1/350 x y DATA(-1, -2, -1) - 1/175 x y DATA(-2, 1, -2) + + + 1/175 x y DATA(2, -1, -2) + 1/350 x y DATA(1, 1, -2) + + - 1/350 x y DATA(-1, 1, -2) + 2/175 x y DATA(-2, 2, -2) + + + 1/175 x y DATA(2, 1, -2) + 1/175 y DATA(0, 0, -1) + + - 1/175 y DATA(1, 0, 1) + 2/175 y DATA(0, 0, -2) + + - 1/350 x y DATA(1, -1, 2) - 1/175 x y DATA(2, -1, 2) + + - 1/175 y DATA(0, 0, 1) - 2/175 y DATA(0, 0, 2) + + + 1/350 x y DATA(-1, -1, 2) + 1/175 x y DATA(2, 2, 1) + + - 2/175 y DATA(-1, 0, 2) - 2/175 y DATA(1, 0, 2) + 1/175 y DATA(2, 0, -1) + + 229 + + ----- DATA(-2, 1, 1) - 2/175 y DATA(-2, 0, 2) + 10500 + + + 1/175 x y DATA(-1, -2, -2) + 1/350 x y DATA(-1, 1, 2) + + + 2/175 x y DATA(-2, -2, -2) + 2/175 y DATA(2, 0, -2) + + + 2/175 y DATA(-2, 0, -2) + 2/175 y DATA(-1, 0, -2) + + + 2/175 y DATA(1, 0, -2) - 2/175 y DATA(2, 0, 2) + + - 1/700 x y DATA(-1, 1, -1) - 1/175 x y DATA(1, -2, -2) + + 107 + - 1/175 x y DATA(2, 1, 2) - 1/175 x y DATA(-1, 2, 2) + ---- DATA(-2, 2, 1) + 7000 + + + 2/175 x y DATA(2, 2, 2) - 2/175 x y DATA(2, -2, -2) + + + 1/700 x y DATA(1, -1, -1) - 1/175 x y DATA(2, 2, -1) + + + 1/175 x y DATA(1, 2, 2) - 1/175 y DATA(2, 0, 1) + + - 1/175 x y DATA(-2, -1, -2) + 1/350 x y DATA(1, 2, 1) + + - 1/350 x y DATA(2, -1, 1) - 1/350 x y DATA(-1, 2, 1) + + 137 2 + + ---- DATA(-2, -2, 2) + 1/100 z DATA(1, 2, 2) + 5250 + + + 1/350 x y DATA(2, -1, -1) + 1/350 x y DATA(-1, 2, -1) + + + 1/350 x y DATA(2, 1, -1) - 1/350 x y DATA(1, 2, -1) + + - 1/700 x y DATA(-1, -1, -1) - 2/175 x y DATA(-2, 2, 2) + + - 1/700 x y DATA(1, 1, 1) + 1/175 x y DATA(-2, 1, 2) + + + 2/175 x y DATA(2, -2, 2) + 1/175 x y DATA(-2, -1, 2) + + + 1/175 x y DATA(1, -2, 2) - 1/175 x y DATA(-1, -2, 2) + + + 1/700 x y DATA(-1, -1, 1) - 1/700 x y DATA(1, -1, 1) + + + 1/700 x y DATA(-1, 1, 1) - 1/350 x y DATA(2, 1, 1) + +> coeff_as_lc_of_data(%, posn_list_3d_size5); +bytes used=2376982304, alloc=15136044, time=384.86 +bytes used=2377982836, alloc=15136044, time=384.94 +bytes used=2378998468, alloc=15136044, time=385.02 +bytes used=2380035620, alloc=15136044, time=385.10 +bytes used=2381119472, alloc=15136044, time=385.19 +bytes used=2382177936, alloc=15136044, time=385.27 +bytes used=2383206180, alloc=15136044, time=385.35 +bytes used=2384233008, alloc=15136044, time=385.44 +bytes used=2385233456, alloc=15136044, time=385.52 +bytes used=2386233788, alloc=15136044, time=385.61 +bytes used=2387252820, alloc=15136044, time=385.69 +bytes used=2388293320, alloc=15136044, time=385.78 +bytes used=2389341868, alloc=15136044, time=385.87 +bytes used=2390348608, alloc=15136044, time=385.96 +bytes used=2391349020, alloc=15136044, time=386.05 +bytes used=2392370552, alloc=15136044, time=386.15 +bytes used=2393385800, alloc=15136044, time=386.24 +bytes used=2394385956, alloc=15136044, time=386.33 +bytes used=2395386444, alloc=15136044, time=386.43 +bytes used=2396386584, alloc=15136044, time=386.52 +bytes used=2397386700, alloc=15136044, time=386.62 +bytes used=2398386984, alloc=15136044, time=386.73 +bytes used=2399396224, alloc=15136044, time=386.83 +bytes used=2400417664, alloc=15136044, time=386.92 +bytes used=2401422508, alloc=15136044, time=386.99 +bytes used=2402426880, alloc=15136044, time=387.07 + 2 2 +[COEFF(-2, -2, -2) = 1/175 x + 1/100 y - 2/175 z + 2/175 x y - 2/175 y + + 2 137 + + 2/175 x z + 1/100 z - 1/125 x + 4/245 y z - ----, COEFF(-1, -2, -2) = + 5250 + + 2 2 47 + - 2/175 y + 4/245 y z - 1/250 x + 1/100 y + 1/100 z - ---- + 1/175 x z + 5250 + + 2 + + 1/175 x y - 2/175 z - 1/350 x , COEFF(0, -2, -2) = + + 2 2 2 17 + 1/100 z - 1/175 x - 2/175 z + 1/100 y - 2/175 y - ---- + 4/245 y z, + 5250 + + 2 2 + COEFF(1, -2, -2) = - 1/350 x + 1/100 z - 2/175 y + 4/245 y z - 1/175 x z + + 47 2 + - ---- + 1/250 x - 2/175 z - 1/175 x y + 1/100 y , COEFF(2, -2, -2) = + 5250 + + 2 2 137 2 + 1/175 x + 1/100 z - 2/175 y - 2/175 x z - ---- + 4/245 y z + 1/100 y + 5250 + + 2 + + 1/125 x - 2/175 x y - 2/175 z, COEFF(-2, -1, -2) = - 1/50 y - 1/175 z + + 2 107 2 + + 1/200 z - 1/175 x y - 2/245 y z + ---- + 1/350 x + 1/175 y - 1/250 x + 7000 + + 2 + + 1/175 x z, COEFF(-1, -1, -2) = - 1/50 y - 1/175 z + 1/350 x z + 1/175 y + + 167 2 2 + + ---- - 1/350 x y - 1/500 x - 2/245 y z - 1/700 x + 1/200 z , + 7000 + + COEFF(0, -1, -2) = + + 2 2 2 187 + - 1/175 z - 1/350 x - 1/50 y + 1/200 z + 1/175 y - 2/245 y z + ----, + 7000 + + 2 167 2 + COEFF(1, -1, -2) = - 1/700 x + ---- - 1/175 z + 1/200 z + 1/350 x y + 7000 + + 2 + - 2/245 y z - 1/350 x z + 1/500 x - 1/50 y + 1/175 y, COEFF(2, -1, -2) = + + 2 107 + 1/175 x y + 1/350 x - 2/245 y z + 1/250 x + 1/175 y + ---- - 1/175 x z + 7000 + + 2 2 + + 1/200 z - 1/175 z - 1/50 y , + + COEFF(-2, 0, -2) = - 2/175 x y + 2/175 y - 4/245 y z, + + COEFF(-1, 0, -2) = - 1/175 x y - 4/245 y z + 2/175 y, + + COEFF(0, 0, -2) = - 4/245 y z + 2/175 y, + + COEFF(1, 0, -2) = 1/175 x y + 2/175 y - 4/245 y z, + + COEFF(2, 0, -2) = - 4/245 y z + 2/175 y + 2/175 x y, COEFF(-2, 1, -2) = + + 107 2 2 2 + 1/250 x + 1/175 z - ---- - 1/200 z + 1/50 y - 1/350 x - 1/175 x z + 7000 + + 167 2 + - 2/245 y z - 1/175 x y + 1/175 y, COEFF(-1, 1, -2) = - ---- - 1/200 z + 7000 + + 2 + - 1/350 x y + 1/175 y + 1/500 x + 1/50 y - 2/245 y z - 1/350 x z + + 2 + + 1/700 x + 1/175 z, COEFF(0, 1, -2) = + + 2 187 2 2 + - 2/245 y z + 1/50 y - ---- + 1/175 z + 1/175 y + 1/350 x - 1/200 z , + 7000 + + 167 2 + COEFF(1, 1, -2) = - 1/500 x - ---- + 1/350 x y - 1/200 z + 1/350 x z + 7000 + + 2 2 + + 1/175 z + 1/175 y - 2/245 y z + 1/50 y + 1/700 x , COEFF(2, 1, -2) = + + 2 107 2 + 1/175 y - 1/200 z - ---- - 1/250 x + 1/175 z + 1/50 y - 2/245 y z + 7000 + + 2 2 + + 1/175 x y - 1/350 x + 1/175 x z, COEFF(-2, 2, -2) = - 1/100 z + + 2 137 + + 2/175 x y - 2/175 y + 1/125 x - 1/175 x + 2/175 z + 4/245 y z + ---- + 5250 + + 2 + - 2/175 x z - 1/100 y , COEFF(-1, 2, -2) = - 2/175 y + 2/175 z - 1/175 x z + + 2 47 2 2 + + 1/250 x - 1/100 y + ---- + 4/245 y z + 1/175 x y - 1/100 z + 1/350 x , + 5250 + + COEFF(0, 2, -2) = + + 2 17 2 2 + 1/175 x + 4/245 y z + ---- - 1/100 z + 2/175 z - 1/100 y - 2/175 y, + 5250 + + 2 2 2 + COEFF(1, 2, -2) = - 1/100 y - 1/100 z + 4/245 y z + 1/175 x z + 1/350 x + + 47 137 + + ---- + 2/175 z - 2/175 y - 1/175 x y - 1/250 x, COEFF(2, 2, -2) = ---- + 5250 5250 + + 2 2 + - 1/100 y + 2/175 x z + 2/175 z - 2/175 y + 4/245 y z - 1/100 z + + 2 + - 1/175 x - 2/175 x y - 1/125 x, COEFF(-2, -2, -1) = - 1/175 x z + + 2 2 107 + - 1/50 z + 1/175 z + 1/350 x - 2/245 y z - 1/175 y - 1/250 x + ---- + 7000 + + 2 + + 1/175 x y + 1/200 y , COEFF(-1, -2, -1) = - 1/500 x - 2/245 y z + + 2 2 2 167 + - 1/175 y + 1/350 x y + 1/200 y + 1/175 z - 1/50 z - 1/700 x + ---- + 7000 + + - 1/350 x z, COEFF(0, -2, -1) = + + 187 2 2 2 + - 2/245 y z - 1/175 y + ---- - 1/350 x + 1/175 z + 1/200 y - 1/50 z , + 7000 + + 2 + COEFF(1, -2, -1) = - 1/350 x y - 1/175 y + 1/175 z - 1/50 z + 1/350 x z + + 2 2 167 + - 1/700 x - 2/245 y z + 1/500 x + 1/200 y + ----, COEFF(2, -2, -1) = + 7000 + + 2 107 2 + 1/175 z - 1/50 z + ---- - 2/245 y z + 1/175 x z - 1/175 y + 1/200 y + 7000 + + 2 2 229 + - 1/175 x y + 1/250 x + 1/350 x , COEFF(-2, -1, -1) = 1/700 x + ----- + 10500 + + 2 2 + - 1/100 y + 1/350 y + 1/350 z - 1/500 x + 1/245 y z - 1/100 z + + 137 + - 1/350 x z - 1/350 x y, COEFF(-1, -1, -1) = - 1/1000 x + ---- - 1/700 x z + 5250 + + 2 2 2 + - 1/1400 x - 1/100 z - 1/100 y + 1/350 z + 1/350 y - 1/700 x y + + + 1/245 y z, COEFF(0, -1, -1) = + + 2 2 2 289 + - 1/100 y + 1/350 y - 1/100 z - 1/700 x + 1/350 z + 1/245 y z + -----, + 10500 + + 2 2 + COEFF(1, -1, -1) = - 1/100 y + 1/700 x z + 1/700 x y + 1/1000 x - 1/100 z + + 2 137 + + 1/350 z - 1/1400 x + 1/350 y + ---- + 1/245 y z, COEFF(2, -1, -1) = + 5250 + + 2 2 + 1/700 x + 1/350 y + 1/350 x z + 1/245 y z + 1/350 z + 1/500 x - 1/100 z + + 229 2 + + 1/350 x y + ----- - 1/100 y , + 10500 + + COEFF(-2, 0, -1) = 1/175 y + 2/245 y z - 1/175 x y, + + COEFF(-1, 0, -1) = - 1/350 x y + 1/175 y + 2/245 y z, + + COEFF(0, 0, -1) = 1/175 y + 2/245 y z, + + COEFF(1, 0, -1) = 1/175 y + 2/245 y z + 1/350 x y, + + COEFF(2, 0, -1) = 1/175 y + 1/175 x y + 2/245 y z, COEFF(-2, 1, -1) = + + 2 229 2 2 + - 1/350 z - 1/700 x - ----- - 1/350 x y + 1/100 y + 1/350 x z + 1/100 z + 10500 + + + 1/350 y + 1/245 y z + 1/500 x, COEFF(-1, 1, -1) = - 1/350 z + 1/350 y + + 137 2 2 2 + - ---- + 1/1400 x - 1/700 x y + 1/100 z + 1/245 y z + 1/100 y + 5250 + + + 1/700 x z + 1/1000 x, COEFF(0, 1, -1) = + + 2 2 2 289 + 1/245 y z + 1/100 y + 1/700 x + 1/100 z - ----- - 1/350 z + 1/350 y, + 10500 + + 2 2 2 + COEFF(1, 1, -1) = 1/100 y - 1/350 z + 1/700 x y + 1/100 z + 1/1400 x + + 137 + - 1/700 x z + 1/350 y + 1/245 y z - 1/1000 x - ----, COEFF(2, 1, -1) = + 5250 + + 2 2 + 1/100 z + 1/350 y - 1/350 x z - 1/500 x + 1/100 y - 1/350 z + 1/245 y z + + 2 229 + - 1/700 x - ----- + 1/350 x y, COEFF(-2, 2, -1) = 1/175 x z - 1/175 z + 10500 + + 2 2 + + 1/175 x y - 1/350 x - 1/175 y - 1/200 y + 1/250 x - 2/245 y z + + 2 107 2 167 + + 1/50 z - ----, COEFF(-1, 2, -1) = 1/700 x - ---- + 1/350 x y - 1/175 y + 7000 7000 + + 2 2 + + 1/50 z - 1/175 z - 1/200 y - 2/245 y z + 1/350 x z + 1/500 x, + + COEFF(0, 2, -1) = + + 2 187 2 2 + - 2/245 y z + 1/50 z - 1/175 z - 1/175 y - ---- - 1/200 y + 1/350 x , + 7000 + + 167 2 + COEFF(1, 2, -1) = - 1/175 z - ---- - 1/175 y - 2/245 y z + 1/700 x + 7000 + + 2 2 + - 1/200 y - 1/500 x + 1/50 z - 1/350 x y - 1/350 x z, COEFF(2, 2, -1) = + + 107 2 2 + - ---- - 1/175 x z - 2/245 y z - 1/175 z - 1/200 y - 1/175 y + 1/50 z + 7000 + + 2 + - 1/350 x - 1/175 x y - 1/250 x, + + COEFF(-2, -2, 0) = - 4/245 y z + 2/175 z - 2/175 x z, + + COEFF(-1, -2, 0) = - 1/175 x z + 2/175 z - 4/245 y z, + + COEFF(0, -2, 0) = - 4/245 y z + 2/175 z, + + COEFF(1, -2, 0) = 1/175 x z - 4/245 y z + 2/175 z, + + COEFF(2, -2, 0) = 2/175 x z - 4/245 y z + 2/175 z, + + COEFF(-2, -1, 0) = - 1/175 x z + 1/175 z + 2/245 y z, + + COEFF(-1, -1, 0) = - 1/350 x z + 2/245 y z + 1/175 z, + + COEFF(0, -1, 0) = 1/175 z + 2/245 y z, + + COEFF(1, -1, 0) = 1/175 z + 1/350 x z + 2/245 y z, + + COEFF(2, -1, 0) = 1/175 z + 2/245 y z + 1/175 x z, + + COEFF(-2, 0, 0) = 4/245 y z, COEFF(-1, 0, 0) = 4/245 y z, + + COEFF(0, 0, 0) = 4/245 y z, COEFF(1, 0, 0) = 4/245 y z, + + COEFF(2, 0, 0) = 4/245 y z, + + COEFF(-2, 1, 0) = 2/245 y z + 1/175 x z - 1/175 z, + + COEFF(-1, 1, 0) = - 1/175 z + 2/245 y z + 1/350 x z, + + COEFF(0, 1, 0) = - 1/175 z + 2/245 y z, + + COEFF(1, 1, 0) = - 1/175 z - 1/350 x z + 2/245 y z, + + COEFF(2, 1, 0) = - 1/175 x z - 1/175 z + 2/245 y z, + + COEFF(-2, 2, 0) = 2/175 x z - 4/245 y z - 2/175 z, + + COEFF(-1, 2, 0) = - 2/175 z - 4/245 y z + 1/175 x z, + + COEFF(0, 2, 0) = - 2/175 z - 4/245 y z, + + COEFF(1, 2, 0) = - 1/175 x z - 4/245 y z - 2/175 z, + + COEFF(2, 2, 0) = - 2/175 x z - 4/245 y z - 2/175 z, COEFF(-2, -2, 1) = + + 2 2 2 + - 1/175 x z - 1/350 x - 1/200 y + 1/50 z - 1/175 x y + 1/175 y + + 107 2 167 + - 2/245 y z + 1/250 x - ---- + 1/175 z, COEFF(-1, -2, 1) = 1/50 z - ---- + 7000 7000 + + 2 2 + - 2/245 y z + 1/175 z - 1/350 x z - 1/200 y + 1/700 x - 1/350 x y + + + 1/500 x + 1/175 y, COEFF(0, -2, 1) = + + 2 2 2 187 + - 2/245 y z - 1/200 y + 1/50 z + 1/175 z + 1/350 x - ---- + 1/175 y, + 7000 + + 167 2 + COEFF(1, -2, 1) = - 2/245 y z - ---- + 1/700 x + 1/175 z - 1/500 x + 7000 + + 2 2 + + 1/50 z + 1/350 x y - 1/200 y + 1/175 y + 1/350 x z, COEFF(2, -2, 1) = + + 2 2 107 + - 1/200 y + 1/175 z + 1/50 z - 2/245 y z + 1/175 x z - ---- - 1/250 x + 7000 + + 2 2 2 + + 1/175 x y - 1/350 x + 1/175 y, COEFF(-2, -1, 1) = - 1/700 x + 1/100 z + + 229 2 + - 1/350 x z + 1/245 y z - ----- + 1/350 z - 1/350 y + 1/100 y + 1/350 x y + 10500 + + 137 2 2 + + 1/500 x, COEFF(-1, -1, 1) = - ---- + 1/100 z + 1/245 y z + 1/100 y + 5250 + + 2 + + 1/350 z + 1/1400 x + 1/1000 x + 1/700 x y - 1/700 x z - 1/350 y, + + COEFF(0, -1, 1) = + + 289 2 2 2 + - ----- - 1/350 y + 1/700 x + 1/245 y z + 1/350 z + 1/100 y + 1/100 z , + 10500 + + 2 2 2 + COEFF(1, -1, 1) = 1/245 y z + 1/100 y + 1/1400 x + 1/100 z - 1/1000 x + + 137 + - ---- + 1/350 z - 1/700 x y + 1/700 x z - 1/350 y, COEFF(2, -1, 1) = + 5250 + + 2 2 2 + 1/100 y + 1/245 y z - 1/700 x + 1/100 z - 1/350 y - 1/500 x + 1/350 x z + + 229 + - 1/350 x y + 1/350 z - -----, + 10500 + + COEFF(-2, 0, 1) = 2/245 y z + 1/175 x y - 1/175 y, + + COEFF(-1, 0, 1) = 1/350 x y - 1/175 y + 2/245 y z, + + COEFF(0, 0, 1) = - 1/175 y + 2/245 y z, + + COEFF(1, 0, 1) = 2/245 y z - 1/175 y - 1/350 x y, + + COEFF(2, 0, 1) = 2/245 y z - 1/175 y - 1/175 x y, COEFF(-2, 1, 1) = + + 2 2 229 2 + 1/700 x + 1/350 x z - 1/100 y - 1/500 x + ----- - 1/350 z - 1/100 z + 10500 + + + 1/245 y z - 1/350 y + 1/350 x y, COEFF(-1, 1, 1) = 1/700 x y - 1/1000 x + + 137 2 2 2 + - 1/350 y + 1/700 x z + ---- - 1/1400 x + 1/245 y z - 1/100 y - 1/100 z + 5250 + + - 1/350 z, COEFF(0, 1, 1) = + + 2 289 2 2 + - 1/100 y - 1/350 y + ----- - 1/700 x - 1/350 z - 1/100 z + 1/245 y z, + 10500 + + 137 2 + COEFF(1, 1, 1) = - 1/700 x z + ---- - 1/100 z - 1/350 y + 1/1000 x + 5250 + + 2 2 + - 1/700 x y - 1/350 z + 1/245 y z - 1/1400 x - 1/100 y , COEFF(2, 1, 1) + + 2 229 2 + = - 1/350 x z - 1/100 z + ----- - 1/350 x y + 1/245 y z + 1/700 x + 10500 + + 2 + + 1/500 x - 1/100 y - 1/350 y - 1/350 z, COEFF(-2, 2, 1) = - 1/250 x + + 2 2 2 + - 1/175 z + 1/200 y + 1/175 y + 1/350 x - 2/245 y z - 1/50 z + + 107 167 + + 1/175 x z + ---- - 1/175 x y, COEFF(-1, 2, 1) = - 1/500 x + ---- + 7000 7000 + + 2 + - 2/245 y z - 1/350 x y + 1/200 y - 1/175 z + 1/350 x z + 1/175 y + + 2 2 + - 1/700 x - 1/50 z , COEFF(0, 2, 1) = + + 2 187 2 2 + 1/175 y - 2/245 y z - 1/175 z + 1/200 y + ---- - 1/350 x - 1/50 z , + 7000 + + 167 2 2 + COEFF(1, 2, 1) = 1/500 x + ---- - 1/175 z - 1/700 x - 2/245 y z + 1/200 y + 7000 + + 2 2 + - 1/50 z + 1/350 x y + 1/175 y - 1/350 x z, COEFF(2, 2, 1) = 1/350 x + + 2 107 + + 1/200 y + ---- + 1/250 x - 2/245 y z + 1/175 x y - 1/175 z - 1/175 x z + 7000 + + 2 + + 1/175 y - 1/50 z , COEFF(-2, -2, 2) = 2/175 x z - 2/175 z + 1/125 x + + 2 2 2 137 + - 1/100 y - 1/175 x + 4/245 y z - 1/100 z + 2/175 y + ---- - 2/175 x y, + 5250 + + 2 2 + COEFF(-1, -2, 2) = - 1/175 x y + 2/175 y - 1/100 z + 1/175 x z - 1/100 y + + 47 2 + + ---- + 1/250 x + 4/245 y z - 2/175 z + 1/350 x , COEFF(0, -2, 2) = + 5250 + + 2 17 2 2 + 1/175 x + ---- - 2/175 z + 2/175 y - 1/100 z + 4/245 y z - 1/100 y , + 5250 + + 2 47 2 + COEFF(1, -2, 2) = 1/175 x y + 1/350 x - 1/250 x + ---- - 1/100 z + 5250 + + 2 + + 2/175 y - 1/175 x z + 4/245 y z - 2/175 z - 1/100 y , COEFF(2, -2, 2) = + + 137 2 2 + ---- + 4/245 y z + 2/175 y - 1/100 z + 2/175 x y - 1/175 x - 2/175 z + 5250 + + 2 + - 1/100 y - 1/125 x - 2/175 x z, COEFF(-2, -1, 2) = 1/175 x z + 1/175 x y + + 2 2 2 + - 1/175 z - 1/350 x + 1/250 x - 2/245 y z - 1/175 y + 1/50 y - 1/200 z + + 107 2 + - ----, COEFF(-1, -1, 2) = - 2/245 y z + 1/350 x z + 1/50 y + 1/500 x + 7000 + + 2 2 167 + - 1/175 z - 1/200 z - 1/175 y + 1/700 x + 1/350 x y - ----, + 7000 + + COEFF(0, -1, 2) = + + 2 187 2 2 + 1/50 y - ---- - 2/245 y z - 1/200 z - 1/175 y + 1/350 x - 1/175 z, + 7000 + + 2 2 + COEFF(1, -1, 2) = 1/50 y + 1/700 x - 2/245 y z - 1/500 x - 1/175 z + + 2 167 + - 1/350 x z - 1/175 y - 1/350 x y - 1/200 z - ----, COEFF(2, -1, 2) = + 7000 + + 2 2 + - 1/350 x - 1/175 x y - 1/175 y - 1/175 x z - 2/245 y z - 1/200 z + + 107 2 + - 1/250 x - 1/175 z - ---- + 1/50 y , + 7000 + + COEFF(-2, 0, 2) = - 2/175 y + 2/175 x y - 4/245 y z, + + COEFF(-1, 0, 2) = - 2/175 y - 4/245 y z + 1/175 x y, + + COEFF(0, 0, 2) = - 4/245 y z - 2/175 y, + + COEFF(1, 0, 2) = - 1/175 x y - 2/175 y - 4/245 y z, + + COEFF(2, 0, 2) = - 2/175 x y - 2/175 y - 4/245 y z, COEFF(-2, 1, 2) = + + - 1/175 x z - 1/250 x - 2/245 y z + 1/175 z - 1/175 y + 1/175 x y + + 2 2 2 107 2 + + 1/200 z + 1/350 x - 1/50 y + ----, COEFF(-1, 1, 2) = - 1/700 x + 7000 + + 2 2 167 + + 1/350 x y + 1/200 z - 1/50 y - 2/245 y z - 1/175 y - 1/350 x z + ---- + 7000 + + + 1/175 z - 1/500 x, COEFF(0, 1, 2) = + + 187 2 2 2 + - 1/175 y + ---- - 2/245 y z - 1/350 x + 1/200 z + 1/175 z - 1/50 y , + 7000 + + 167 2 + COEFF(1, 1, 2) = 1/500 x + 1/350 x z + ---- - 1/50 y - 1/350 x y + 1/175 z + 7000 + + 2 2 + - 1/175 y - 2/245 y z + 1/200 z - 1/700 x , COEFF(2, 1, 2) = 1/250 x + + 107 2 + + ---- - 2/245 y z - 1/175 x y + 1/175 z - 1/50 y + 1/175 x z - 1/175 y + 7000 + + 2 2 2 + + 1/200 z + 1/350 x , COEFF(-2, 2, 2) = 1/175 x + 2/175 y + 2/175 z + + 137 2 2 + - 2/175 x z + 4/245 y z - ---- - 2/175 x y - 1/125 x + 1/100 z + 1/100 y + 5250 + + 47 2 2 + , COEFF(-1, 2, 2) = - ---- - 1/175 x y + 2/175 z + 1/100 y - 1/350 x + 5250 + + 2 + + 2/175 y - 1/250 x + 4/245 y z + 1/100 z - 1/175 x z, COEFF(0, 2, 2) = + + 2 17 2 2 + - 1/175 x + 4/245 y z - ---- + 1/100 y + 2/175 z + 2/175 y + 1/100 z , + 5250 + + 2 2 47 + COEFF(1, 2, 2) = 1/175 x y + 1/250 x - 1/350 x + 2/175 z + 1/100 z - ---- + 5250 + + 2 + + 4/245 y z + 1/100 y + 1/175 x z + 2/175 y, COEFF(2, 2, 2) = 2/175 x z + + 2 2 2 + + 1/175 x + 1/100 z + 1/125 x + 2/175 x y + 1/100 y + 2/175 z + 2/175 y + + 137 + - ---- + 4/245 y z] + 5250 + +> print_coeff__lc_of_data(%, "coeff_dyz_", "fp", +> "3d.coeffs/3d.cube.order4.smooth0/coeff-dyz.compute.c"); +bytes used=2403427036, alloc=15136044, time=387.16 +bytes used=2404427596, alloc=15136044, time=387.25 +bytes used=2405427924, alloc=15136044, time=387.33 +bytes used=2406428092, alloc=15136044, time=387.41 +bytes used=2407428768, alloc=15136044, time=388.13 +bytes used=2408429164, alloc=15136044, time=388.84 +bytes used=2409429480, alloc=15136044, time=389.55 +bytes used=2410429708, alloc=15136044, time=390.25 +bytes used=2411429872, alloc=15136044, time=390.94 +bytes used=2412430060, alloc=15136044, time=391.28 +bytes used=2413430228, alloc=15136044, time=391.35 +bytes used=2414453148, alloc=15136044, time=391.45 +bytes used=2415457844, alloc=15136044, time=391.52 +bytes used=2416464896, alloc=15136044, time=391.60 +bytes used=2417478960, alloc=15136044, time=391.69 +bytes used=2418479164, alloc=15136044, time=391.77 +bytes used=2419479320, alloc=15136044, time=392.91 +bytes used=2420479552, alloc=15136044, time=393.62 +bytes used=2421479768, alloc=15136044, time=394.01 +bytes used=2422480356, alloc=15136044, time=394.10 +bytes used=2423480660, alloc=15136044, time=394.17 +bytes used=2424481304, alloc=15136044, time=394.24 +bytes used=2425481520, alloc=15136044, time=394.31 +bytes used=2426483560, alloc=15136044, time=394.38 +bytes used=2427483884, alloc=15136044, time=394.45 +bytes used=2428485808, alloc=15136044, time=394.52 +bytes used=2429486036, alloc=15136044, time=394.60 +bytes used=2430497180, alloc=15136044, time=394.71 +bytes used=2431500148, alloc=15136044, time=394.82 +bytes used=2432503228, alloc=15136044, time=394.93 +bytes used=2433503556, alloc=15136044, time=395.06 +bytes used=2434507508, alloc=15136044, time=395.19 +bytes used=2435508292, alloc=15136044, time=395.32 +bytes used=2436508492, alloc=15136044, time=395.44 +bytes used=2437508720, alloc=15136044, time=395.53 +bytes used=2438508936, alloc=15136044, time=396.32 +bytes used=2439509088, alloc=15136044, time=397.75 +bytes used=2440509276, alloc=15136044, time=398.29 +bytes used=2441509436, alloc=15136044, time=398.54 +bytes used=2442509688, alloc=15136044, time=398.62 +bytes used=2443510176, alloc=15136044, time=398.69 +bytes used=2444510524, alloc=15136044, time=398.77 +bytes used=2445510804, alloc=15136044, time=398.84 +bytes used=2446511052, alloc=15136044, time=398.92 +bytes used=2447511308, alloc=15136044, time=399.00 +bytes used=2448514404, alloc=15136044, time=399.17 +bytes used=2449517948, alloc=15136044, time=399.29 +bytes used=2450526136, alloc=15136044, time=399.42 +bytes used=2451526396, alloc=15136044, time=399.53 +bytes used=2452526596, alloc=15136044, time=400.75 +bytes used=2453527508, alloc=15136044, time=401.83 +bytes used=2454527716, alloc=15136044, time=402.40 +bytes used=2455527916, alloc=15136044, time=402.74 +bytes used=2456528216, alloc=15136044, time=402.83 +bytes used=2457528520, alloc=15136044, time=402.93 +bytes used=2458528704, alloc=15136044, time=403.14 +bytes used=2459528920, alloc=15136044, time=404.69 +bytes used=2460529180, alloc=15136044, time=405.82 +bytes used=2461529372, alloc=15136044, time=406.28 +bytes used=2462529664, alloc=15136044, time=406.35 +bytes used=2463529880, alloc=15136044, time=406.50 +bytes used=2464530168, alloc=15136044, time=407.31 +bytes used=2465530348, alloc=15136044, time=408.93 +bytes used=2466530536, alloc=15136044, time=409.52 +bytes used=2467546052, alloc=15136044, time=409.86 +bytes used=2468546372, alloc=15136044, time=409.94 +bytes used=2469546560, alloc=15136044, time=410.03 +> +# d^2/dz^2 +> simplify( diff(interp_3d_cube_order4_smooth0,z,z) ); +bytes used=2470546744, alloc=15136044, time=410.12 +bytes used=2471547020, alloc=15136044, time=410.21 +bytes used=2472547916, alloc=15136044, time=410.29 +bytes used=2473548136, alloc=15136044, time=410.37 +bytes used=2474548676, alloc=15136044, time=410.46 +bytes used=2475548836, alloc=15136044, time=410.54 +bytes used=2476549064, alloc=15136044, time=410.63 +bytes used=2477549348, alloc=15136044, time=410.71 +bytes used=2478550292, alloc=15136044, time=410.80 +bytes used=2479550472, alloc=15136044, time=410.89 +166 151 166 +---- DATA(-1, 1, -1) + ---- DATA(0, 1, -1) + ---- DATA(1, 1, -1) +3675 3675 3675 + + 57 61 57 + - --- DATA(-1, -1, 0) - --- DATA(0, -1, 0) - --- DATA(1, -1, 0) + 490 490 490 + + 61 57 166 + - --- DATA(-1, 0, 0) - --- DATA(-1, 1, 0) + ---- DATA(-1, 1, 1) + 490 490 3675 + + 151 166 166 + + ---- DATA(-1, 0, 1) + ---- DATA(1, -1, 1) + ---- DATA(-1, -1, 1) + 3675 3675 3675 + + 151 169 + + ---- DATA(0, -1, 1) - ----- DATA(-1, -2, 2) - 1/300 DATA(0, -2, 2) + 3675 14700 + + 151 136 151 + + ---- DATA(-1, 0, -1) + ---- DATA(0, 0, -1) + ---- DATA(1, 0, -1) + 3675 3675 3675 + + 13 61 61 + - -- DATA(0, 0, 0) - --- DATA(1, 0, 0) - --- DATA(0, 1, 0) + 98 490 490 + + 57 136 169 + - --- DATA(1, 1, 0) + ---- DATA(0, 0, 1) - ----- DATA(1, -2, 2) + 490 3675 14700 + + 169 529 + - ----- DATA(-2, -1, 2) - ----- DATA(2, -2, 2) - 1/300 DATA(-2, 0, 2) + 14700 14700 + + 169 151 151 + - ----- DATA(-2, 1, 2) + ---- DATA(1, 0, 1) + ---- DATA(0, 1, 1) + 14700 3675 3675 + + 166 529 + + ---- DATA(1, 1, 1) - ----- DATA(-2, 2, 2) - 1/175 x y DATA(-1, -2, 0) + 3675 14700 + + - 2/175 x y DATA(-2, -2, 0) - 1/175 x y DATA(-2, -1, 0) + + + 2/175 x y DATA(2, -2, 0) + 1/175 x y DATA(1, -2, 0) + + + 1/175 x y DATA(-2, 1, 0) + 2/175 x y DATA(-2, 2, 0) + + - 1/350 x y DATA(1, 1, 0) + 1/350 x y DATA(-1, 1, 0) + + - 1/350 x y DATA(-1, -1, 0) + 1/350 x y DATA(1, -1, 0) + + - 1/25 y z DATA(2, -2, -1) - 1/25 y z DATA(1, -2, -1) + + - 1/25 y z DATA(-1, -2, -1) - 1/25 y z DATA(-2, -2, -1) + + - 1/50 y z DATA(2, 2, -2) - 1/50 y z DATA(1, 2, -2) + + - 1/50 y z DATA(-1, 2, -2) + 1/50 y z DATA(-2, 1, -1) + + - 1/50 y z DATA(-2, -1, -1) + 1/25 y z DATA(-2, 2, -1) + + + 1/25 y z DATA(-2, -2, 1) - 2/175 x y DATA(2, 2, 0) + + - 1/175 x y DATA(2, 1, 0) + 1/175 x y DATA(-1, 2, 0) + + + 1/175 x y DATA(2, -1, 0) - 1/175 x y DATA(1, 2, 0) + + 166 2 2 + + ---- DATA(-1, -1, -1) + 2/245 x DATA(2, 0, -2) - 2/245 x DATA(2, 2, 0) + 3675 + + 2 151 211 + - 2/245 x DATA(-2, 2, 0) + ---- DATA(0, -1, -1) + ---- DATA(1, 2, -1) + 3675 3675 + + 2 2 211 + + 1/245 y DATA(0, 0, -1) - 2/245 y DATA(0, -2, 0) + ---- DATA(2, 1, -1) + 3675 + + 211 + + ---- DATA(-1, 2, -1) + 4/75 DATA(0, 2, -1) + 1/25 y z DATA(2, -2, 1) + 3675 + + + 1/50 y z DATA(-2, -1, 1) - 1/50 y z DATA(-2, 1, 1) + + 211 + + ---- DATA(2, -1, -1) + 4/75 DATA(2, 0, -1) - 1/25 y z DATA(-2, 2, 1) + 3675 + + 211 211 + - 1/50 y z DATA(-2, -2, 2) + ---- DATA(2, 1, 1) + ---- DATA(-1, 2, 1) + 3675 3675 + + 211 + + 4/75 DATA(0, 2, 1) + ---- DATA(1, 2, 1) + 1/100 y z DATA(-1, -1, -2) + 3675 + + 2 211 + - 2/245 x DATA(2, -1, 0) + ---- DATA(2, -1, 1) + 4/75 DATA(2, 0, 1) + 3675 + + 166 33 + + ---- DATA(1, -1, -1) - 9/98 DATA(1, 2, 0) - --- DATA(2, 2, 0) + 3675 490 + + - 9/98 DATA(2, 1, 0) - 9/98 DATA(-1, 2, 0) - 1/10 DATA(0, 2, 0) + + 2 2 + + 1/245 x DATA(1, 2, 0) + 1/245 y DATA(-1, 0, -1) - 9/98 DATA(2, -1, 0) + + 256 + - 1/10 DATA(2, 0, 0) + ---- DATA(2, 2, -1) - 1/50 y z DATA(0, -1, -1) + 3675 + + 169 169 529 + - ----- DATA(1, 2, 2) - ----- DATA(-2, -1, -2) - ----- DATA(2, 2, 2) + 14700 14700 14700 + + 2 2 2 + + 3/25 z DATA(-1, 1, 0) + 3/25 z DATA(-1, 0, 0) + 3/25 z DATA(1, 1, 0) + + 2 2 + + 3/25 z DATA(-2, -1, 0) + 3/25 z DATA(-1, -1, 0) + + 2 2 2 + + 3/25 z DATA(0, -1, 0) + 3/25 z DATA(1, -1, 0) - 2/25 z DATA(-1, 0, 1) + + 2 2 + + 3/25 z DATA(-2, 2, 0) + 3/25 z DATA(-1, -2, 0) + + 2 + + 3/25 z DATA(-2, -2, 0) + 2/175 y DATA(0, -2, 0) + + 2 2 2 + + 3/25 z DATA(2, -2, 0) + 3/25 z DATA(1, -2, 0) + 3/25 z DATA(-2, 1, 0) + + 2 2 2 + + 3/25 z DATA(2, 2, 0) + 3/25 z DATA(2, 1, 0) + 3/25 z DATA(-1, 2, 0) + + 2 2 2 + + 3/25 z DATA(2, -1, 0) + 3/25 z DATA(1, 2, 0) + 1/50 z DATA(2, 0, -2) + + 529 + - ----- DATA(2, -2, -2) - 2/175 y DATA(0, 2, 0) - 1/175 y DATA(0, 1, 0) + 14700 + + 169 191 169 + - ----- DATA(1, -2, -2) + ----- DATA(1, 1, 2) - ----- DATA(2, 1, 2) + 14700 14700 14700 + + 169 + - ----- DATA(-1, 2, 2) - 1/300 DATA(0, 2, 2) - 1/300 DATA(0, -2, -2) + 14700 + + 169 311 2 + - ----- DATA(-1, -2, -2) + ----- DATA(1, 0, 2) + 1/490 x DATA(-1, 0, -1) + 14700 14700 + + 2 2 + + 1/245 x DATA(0, 0, -1) + 2/245 x DATA(0, -2, 0) + + 2 2 + - 2/245 x DATA(-2, 0, 0) - 1/300 DATA(2, 0, 2) - 1/245 x DATA(-2, 0, -1) + + 2 2 + - 1/245 x DATA(-1, 0, 2) - 2/245 x DATA(0, 0, 2) + + 2 191 + - 2/245 x DATA(0, 0, -2) + ----- DATA(-1, 1, 2) + 1/25 y z DATA(0, 2, -1) + 14700 + + 311 529 + + ----- DATA(0, 1, 2) - 1/25 y z DATA(0, 2, 1) - ----- DATA(-2, -2, -2) + 14700 14700 + + 2 2 + - 1/245 x DATA(-2, 0, 1) - 1/245 x DATA(1, 0, -2) + + 2 2 + - 1/245 x DATA(-1, 0, -2) + 2/245 x DATA(-2, 0, -2) + + 2 2 2 + - 1/245 x DATA(1, 0, 2) + 2/245 x DATA(2, 0, 2) + 2/245 x DATA(0, 2, 0) + + 2 2 + - 1/245 x DATA(2, 0, -1) + 1/490 x DATA(1, 0, -1) + + 2 2 2 + + 2/245 x DATA(0, 0, 0) + 1/245 x DATA(1, 0, 0) + 2/245 x DATA(0, 1, 0) + + 2 2 + + 1/245 x DATA(0, 0, 1) + 2/245 x DATA(-2, 0, 2) + + 2 2 2 + - 1/245 x DATA(2, 0, 1) - 2/245 x DATA(2, 0, 0) + 1/490 x DATA(1, 0, 1) + + 2 + + 1/245 x DATA(1, 1, 0) - 1/50 x z DATA(-1, 0, -1) + + 2 2 + + 1/245 x DATA(-1, -1, 0) + 2/245 x DATA(0, -1, 0) + + 2 2 + + 1/245 x DATA(-1, 0, 0) + 1/490 x DATA(-1, 0, 1) + + 2 2 + + 1/245 x DATA(-1, 1, 0) + 1/245 x DATA(-1, -2, 0) + + 2 2 + - 2/245 x DATA(-2, -2, 0) - 2/245 x DATA(-2, -1, 0) + + 2 2 + - 2/245 x DATA(2, -2, 0) + 1/245 x DATA(1, -2, 0) + + 2 191 169 + - 2/245 x DATA(-2, 1, 0) + ----- DATA(1, -1, 2) - ----- DATA(2, -1, 2) + 14700 14700 + + 311 431 2 + + ----- DATA(-1, 0, 2) + ----- DATA(0, 0, 2) + 1/245 x DATA(1, -1, 0) + 14700 14700 + + 191 311 256 + + ----- DATA(-1, -1, 2) + ----- DATA(0, -1, 2) + ---- DATA(2, 2, 1) + 14700 14700 3675 + + 2 2 + - 2/245 x DATA(2, 1, 0) + 1/245 x DATA(-1, 2, 0) + + + 1/50 x z DATA(-2, -1, -2) + 1/175 x DATA(-1, -2, 0) + + + 2/175 x DATA(-2, -2, 0) + 2/175 x DATA(-2, -1, 0) + + - 2/175 x DATA(2, -2, 0) - 1/175 x DATA(1, -2, 0) + + 2 2 + + 1/245 x DATA(0, -2, -1) - 2/245 x DATA(0, 2, -2) + + - 1/175 x DATA(1, -1, 0) + 1/50 x z DATA(2, 2, 2) - 1/50 z DATA(1, 0, -2) + + - 1/50 z DATA(-1, 0, -2) - 1/50 z DATA(-2, 0, -2) - 1/25 z DATA(-2, 0, 1) + + - 1/175 x DATA(1, 2, 0) + 1/25 z DATA(-1, 0, -1) + 1/25 z DATA(0, 0, -1) + + 529 2 2 + - ----- DATA(-2, 2, -2) + 1/245 x DATA(0, 2, -1) + 1/245 x DATA(0, 2, 1) + 14700 + + 2 2 + - 2/245 x DATA(0, -1, -2) - 2/245 x DATA(0, 2, 2) + + 2 2 + - 2/245 x DATA(0, -2, -2) - 2/245 x DATA(0, 1, 2) + + 2 2 + - 2/245 x DATA(0, -1, 2) - 2/245 x DATA(0, 1, -2) + + + 2/175 x DATA(2, 0, -2) - 2/175 x DATA(2, 2, 0) - 2/175 x DATA(2, 1, 0) + + + 1/175 x DATA(-1, 2, 0) - 2/175 x DATA(2, -1, 0) + + - 1/50 x z DATA(2, -2, -2) - 1/50 x z DATA(-1, 1, -1) + + 169 + - ----- DATA(2, 1, -2) + 1/25 y z DATA(-1, 2, -1) + 14700 + + - 1/25 x z DATA(-2, 0, -1) + 1/25 z DATA(-2, 0, -1) + + 191 + + 1/50 z DATA(-1, 0, 2) + ----- DATA(1, 1, -2) + 1/25 z DATA(2, 0, -1) + 14700 + + - 1/50 z DATA(0, 0, -2) + 1/50 z DATA(0, 0, 2) - 1/25 z DATA(2, 0, 1) + + + 1/50 z DATA(1, 0, 2) + 1/50 z DATA(2, 0, 2) + 1/25 z DATA(1, 0, -1) + + - 1/25 z DATA(0, 0, 1) + 1/50 z DATA(-2, 0, 2) - 1/25 z DATA(1, 0, 1) + + 311 2 2 + + ----- DATA(0, 1, -2) + 1/245 y DATA(2, 0, 1) + 1/245 y DATA(-2, 0, -1) + 14700 + + 2 2 191 + - 2/245 y DATA(-1, 0, 2) - 2/245 y DATA(0, 0, 2) + ----- DATA(-1, 1, -2) + 14700 + + 2 2 + + 1/245 y DATA(0, 1, 0) + 1/245 y DATA(2, 0, -1) + + 2 2 + - 2/245 y DATA(0, 0, -2) - 2/245 y DATA(1, 0, 2) + + 2 2 + - 2/245 y DATA(2, 0, 2) + 1/245 y DATA(1, 0, -1) + + 2 2 + + 2/245 y DATA(0, 0, 0) + 2/245 y DATA(1, 0, 0) + + - 1/100 x z DATA(-1, 0, 2) + 1/25 x z DATA(2, 0, -1) + + - 1/25 x z DATA(2, 0, 1) + 1/100 x z DATA(1, 0, 2) + + 2 2 + + 1/50 x z DATA(2, 0, 2) - 2/245 y DATA(0, 2, 0) + 2/245 y DATA(2, 0, 0) + + 2 2 + + 1/245 y DATA(0, 0, 1) - 2/245 y DATA(-2, 0, 2) + + 2 169 + + 1/245 y DATA(1, 0, 1) - ----- DATA(-2, 1, -2) - 1/50 y z DATA(0, 1, 1) + 14700 + + + 1/50 x z DATA(1, 0, -1) - 1/50 x z DATA(-2, 0, 2) + + - 1/50 x z DATA(1, 0, 1) + 1/100 y z DATA(0, -1, -2) + + 2 431 + - 1/300 DATA(2, 0, -2) + 1/245 y DATA(-1, 1, 0) + ----- DATA(0, 0, -2) + 14700 + + 311 311 + + 1/25 z DATA(0, -1, -1) + ----- DATA(1, 0, -2) + ----- DATA(-1, 0, -2) + 14700 14700 + + 169 + - 1/25 y z DATA(0, -2, -1) - 1/300 DATA(-2, 0, -2) - ----- DATA(2, -1, -2) + 14700 + + 2 2 + + 1/245 y DATA(0, -1, 0) + 1/245 y DATA(1, 1, 0) + + 2 2 + + 2/245 y DATA(-1, 0, 0) + 1/245 y DATA(-1, 0, 1) + + 2 2 + + 1/245 y DATA(1, -1, 0) + 1/245 y DATA(-1, -1, 0) + + 2 2 + - 2/245 y DATA(1, 2, 0) - 2/25 z DATA(-1, 0, -1) + + 2 2 + - 2/25 z DATA(0, 0, -1) + 3/25 z DATA(0, -2, 0) + + 2 2 + - 2/245 y DATA(-1, -2, 0) - 2/245 y DATA(-2, -2, 0) + + 2 2 + + 1/245 y DATA(-2, -1, 0) - 2/245 y DATA(2, -2, 0) + + 2 2 + - 2/245 y DATA(1, -2, 0) + 1/245 y DATA(-2, 1, 0) + + 2 2 + - 2/245 y DATA(-2, 2, 0) + 1/50 z DATA(-1, 0, -2) + + 2 2 + - 2/245 y DATA(2, 0, -2) - 2/245 y DATA(2, 2, 0) + + 2 2 + + 1/245 y DATA(2, 1, 0) - 2/245 y DATA(-1, 2, 0) + + 2 2 + + 1/245 y DATA(2, -1, 0) + 1/50 z DATA(-2, 0, -2) + + 2 2 2 + + 1/50 z DATA(-1, 0, 2) + 1/50 z DATA(0, 0, 2) + 1/50 z DATA(1, 0, -2) + + 191 2 2 + + ----- DATA(1, -1, -2) - 2/25 z DATA(2, 0, -1) - 2/25 z DATA(2, 0, 1) + 14700 + + 2 2 2 + + 3/25 z DATA(0, 2, 0) + 3/25 z DATA(2, 0, 0) - 2/25 z DATA(-2, 0, -1) + + 2 2 311 + + 3/25 z DATA(1, 0, 0) + 1/50 z DATA(0, 0, -2) + ----- DATA(0, -1, -2) + 14700 + + 2 2 2 + - 2/25 z DATA(0, 0, 1) + 1/50 z DATA(-2, 0, 2) - 2/25 z DATA(1, 0, 1) + + 191 2 2 + + ----- DATA(-1, -1, -2) + 3/25 z DATA(0, 0, 0) + 3/25 z DATA(0, 1, 0) + 14700 + + 2 + - 1/50 y z DATA(0, 2, -2) + 1/245 x DATA(0, -1, 1) + + 2 + - 2/245 x DATA(0, -2, 2) + 1/50 x z DATA(1, 1, -1) + + 2 + + 1/50 x z DATA(-1, 1, 1) - 2/245 y DATA(-2, 0, -2) + + 2 2 + - 2/25 z DATA(-2, 0, 1) + 2/245 y DATA(-2, 0, 0) + + 2 2 + + 1/245 y DATA(-2, 0, 1) - 2/245 y DATA(1, 0, -2) + + 2 2 + - 2/245 y DATA(-1, 0, -2) + 1/245 x DATA(0, -2, 1) + + 2 2 + + 1/245 x DATA(0, 1, -1) - 1/175 x DATA(1, 1, 0) + 3/25 z DATA(-2, 0, 0) + + 2 2 + + 1/50 z DATA(0, -1, -2) - 2/25 z DATA(0, -2, -1) + + 2 256 + + 1/50 z DATA(0, 2, -2) - 1/25 z DATA(-1, 0, 1) + ---- DATA(2, -2, -1) + 3675 + + 2 + - 1/50 x z DATA(1, -1, 1) - 2/25 z DATA(0, -1, -1) + + 2 2 + - 2/25 z DATA(0, 1, 1) + 1/50 x z DATA(-1, -1, 1) + 1/50 z DATA(0, 2, 2) + + 2 2 2 + + 1/50 z DATA(0, -2, -2) + 1/50 z DATA(0, 1, 2) + 1/50 z DATA(0, -1, 2) + + 2 + - 1/100 x z DATA(-1, -2, 2) - 2/25 z DATA(0, 2, -1) + + 2 + - 2/25 z DATA(0, 2, 1) + 1/100 x z DATA(1, -2, 2) - 1/50 z DATA(2, 0, -2) + + 2 211 + + 1/50 y z DATA(0, 2, 2) + 1/50 z DATA(0, 1, -2) + ---- DATA(1, -2, -1) + 3675 + + - 1/50 x z DATA(-2, -1, 2) - 1/175 y DATA(1, 1, 0) + + + 1/50 x z DATA(2, -2, 2) - 1/50 x z DATA(-2, 1, 2) + + - 1/50 x z DATA(1, 1, 1) - 1/50 x z DATA(-2, 2, 2) + + - 1/175 y DATA(-1, 1, 0) + 1/175 y DATA(-1, -1, 0) + + + 1/175 y DATA(0, -1, 0) + 1/175 y DATA(1, -1, 0) + 4/75 DATA(0, -2, -1) + + + 1/50 y z DATA(0, -2, -2) + 1/100 y z DATA(0, 1, 2) + + - 1/100 y z DATA(0, -1, 2) - 1/100 y z DATA(0, 1, -2) + + + 2/175 y DATA(-1, -2, 0) + 1/175 y DATA(-2, -1, 0) + + + 2/175 y DATA(2, -2, 0) + 2/175 y DATA(1, -2, 0) + + 2 + + 2/175 y DATA(-2, -2, 0) - 2/25 z DATA(0, -1, 1) + + 2 2 + + 1/50 z DATA(0, -2, 2) - 2/175 y DATA(2, 2, 0) + 1/50 z DATA(1, 0, 2) + + 2 2 + + 1/50 z DATA(2, 0, 2) - 2/25 z DATA(1, 0, -1) + 1/175 x DATA(1, 0, -2) + + - 2/175 y DATA(-1, 2, 0) - 1/50 x z DATA(-1, -1, -1) + + - 1/175 x DATA(2, 0, -1) - 1/175 x DATA(2, 0, 1) - 1/175 y DATA(2, 1, 0) + + + 1/175 y DATA(2, -1, 0) - 2/175 y DATA(1, 2, 0) + 1/350 x DATA(-1, 0, -1) + + + 2/175 x DATA(-2, 0, 0) + 1/175 x DATA(-2, 0, 1) - 1/175 x DATA(1, 0, 0) + + - 1/350 x DATA(1, 0, 1) + 1/175 x DATA(1, 0, 2) - 1/175 x DATA(-1, 0, -2) + + - 2/175 x DATA(-2, 0, -2) + 1/175 x DATA(-2, 0, -1) + + 211 + - 1/175 x DATA(-1, 0, 2) - 2/175 x DATA(-2, 0, 2) + ---- DATA(-1, -2, -1) + 3675 + + - 2/175 x DATA(2, 0, 0) + 2/175 x DATA(2, 0, 2) - 1/350 x DATA(1, 0, -1) + + + 1/50 x z DATA(1, 2, -1) + 1/25 x z DATA(2, 1, -1) + + 256 + + ---- DATA(-2, -2, -1) - 1/50 x z DATA(-1, 2, -1) + 3675 + + 2 2 2 + + 1/490 y DATA(0, 1, 1) - 2/25 z DATA(0, 1, -1) - 2/25 z DATA(0, -2, 1) + + 2 2 + - 1/245 y DATA(0, 2, 1) + 1/490 y DATA(0, -1, -1) + + 2 2 + - 1/245 y DATA(0, -1, -2) - 1/245 y DATA(0, -2, -1) + + 2 2 + + 2/245 y DATA(0, 2, -2) - 1/245 y DATA(0, 2, -1) + + - 1/50 z DATA(0, -1, -2) + 1/25 z DATA(0, -2, -1) - 1/50 z DATA(0, 2, -2) + + + 1/25 z DATA(0, 2, -1) - 1/25 z DATA(0, 2, 1) + 1/50 z DATA(0, 2, 2) + + - 1/50 z DATA(0, -2, -2) + 1/50 z DATA(0, 1, 2) - 1/25 z DATA(0, 1, 1) + + + 1/50 z DATA(0, -1, 2) - 1/50 z DATA(0, 1, -2) + 1/25 x z DATA(2, -1, -1) + + - 1/25 x z DATA(2, 1, 1) + 1/175 x DATA(-1, 0, 0) + 1/350 x DATA(-1, 0, 1) + + 529 + - 1/175 y DATA(-2, 1, 0) - 2/175 y DATA(-2, 2, 0) - ----- DATA(2, 2, -2) + 14700 + + + 1/50 x z DATA(-1, 2, 1) + 1/50 z DATA(0, -2, 2) - 1/50 x z DATA(1, 2, 1) + + - 1/100 x z DATA(1, 0, -2) + 1/100 x z DATA(-1, 0, -2) + + 169 + - 1/25 x z DATA(2, -1, 1) - ----- DATA(1, 2, -2) + 14700 + + + 1/50 x z DATA(1, -1, -1) + 1/50 x z DATA(-2, 0, -2) + + - 1/25 z DATA(0, -1, 1) + 1/25 x z DATA(2, 2, -1) + 1/25 z DATA(0, 1, -1) + + - 1/25 z DATA(0, -2, 1) - 1/300 DATA(0, 2, -2) + 2/175 x DATA(-2, 1, 0) + + + 1/175 x DATA(-1, 1, 0) + 1/175 x DATA(-1, -1, 0) + + 169 + + 2/175 x DATA(-2, 2, 0) + 1/100 x z DATA(1, 2, 2) - ----- DATA(-1, 2, -2) + 14700 + + 2 2 211 + + 1/245 x DATA(0, -1, -1) + 1/245 x DATA(0, 1, 1) + ---- DATA(-2, 1, -1) + 3675 + + 2 + - 1/50 y z DATA(0, -2, 2) + 2/245 y DATA(0, 2, 2) + + 2 2 + + 2/245 y DATA(0, -2, -2) - 1/245 y DATA(0, 1, 2) + + 2 2 + - 1/245 y DATA(0, -1, 2) - 1/245 y DATA(0, 1, -2) + + 2 2 + + 1/490 y DATA(0, -1, 1) + 2/245 y DATA(0, -2, 2) + + 2 2 + - 1/245 y DATA(0, -2, 1) + 1/490 y DATA(0, 1, -1) + 4/75 DATA(-2, 0, -1) + + - 1/175 y DATA(0, -1, -2) + 2/175 y DATA(0, 2, -2) + + + 1/175 y DATA(0, -2, -1) + 1/350 y DATA(0, -1, -1) + + - 1/350 y DATA(0, 1, 1) - 1/175 y DATA(0, -1, 2) - 1/175 y DATA(0, 2, -1) + + - 1/175 y DATA(0, 2, 1) + 1/350 y DATA(0, -1, 1) - 2/175 y DATA(0, -2, 2) + + 211 + + 1/175 y DATA(0, 1, 2) + 1/175 y DATA(0, 1, -2) + ---- DATA(-2, -1, -1) + 3675 + + 256 + + 1/175 y DATA(0, -2, 1) - 1/350 y DATA(0, 1, -1) + ---- DATA(-2, 2, -1) + 3675 + + + 1/50 y z DATA(0, -1, 1) - 1/10 DATA(0, -2, 0) - 9/98 DATA(-1, -2, 0) + + 33 + - --- DATA(-2, -2, 0) + 2/175 y DATA(0, 2, 2) - 2/175 y DATA(0, -2, -2) + 490 + + - 1/10 DATA(-2, 0, 0) + 1/50 x z DATA(-1, 0, 1) - 9/98 DATA(-2, -1, 0) + + 33 + - --- DATA(2, -2, 0) - 9/98 DATA(1, -2, 0) + 1/25 x z DATA(-2, -2, 1) + 490 + + + 1/50 x z DATA(-1, -2, 1) - 1/50 x z DATA(1, -2, 1) + + + 1/100 x z DATA(1, 1, 2) - 9/98 DATA(-2, 1, 0) - 1/25 x z DATA(2, -2, 1) + + + 1/25 x z DATA(-2, -1, 1) + 1/25 x z DATA(-2, 1, 1) + + + 1/25 x z DATA(-2, 2, 1) - 1/50 x z DATA(-2, -2, 2) + + - 1/25 x z DATA(-2, -2, -1) - 1/50 x z DATA(2, 2, -2) + + + 1/25 y z DATA(0, -2, 1) + 1/50 y z DATA(0, 1, -1) + + - 1/100 x z DATA(1, 2, -2) + 1/100 x z DATA(-1, 2, -2) + + 33 + - --- DATA(-2, 2, 0) - 1/50 x z DATA(2, 0, -2) - 1/25 x z DATA(-2, 1, -1) + 490 + + - 1/25 x z DATA(-2, -1, -1) - 1/25 x z DATA(-2, 2, -1) + + 256 + - 1/100 x z DATA(1, -1, -2) + ---- DATA(-2, -2, 1) + 3675 + + + 1/100 x z DATA(-1, -1, -2) + 1/25 x z DATA(2, -2, -1) + + + 1/50 x z DATA(1, -2, -1) - 1/50 x z DATA(-1, -2, -1) + + - 1/25 x z DATA(2, 2, 1) + 1/50 x z DATA(-2, 2, -2) + + 211 + - 1/50 x z DATA(2, 1, -2) + ---- DATA(-1, -2, 1) + 3675 + + - 1/100 x z DATA(1, 1, -2) + 1/100 x z DATA(-1, 1, -2) + + + 1/50 x z DATA(-2, 1, -2) - 1/50 x z DATA(2, -1, -2) + + 211 + + ---- DATA(1, -2, 1) - 1/100 x z DATA(-1, 1, 2) + 3675 + + + 1/50 x z DATA(-2, -2, -2) + 1/100 x z DATA(1, -1, 2) + + + 4/75 DATA(0, -2, 1) + 1/50 x z DATA(2, -1, 2) + + - 1/100 x z DATA(-1, -1, 2) - 1/350 x y DATA(-1, -2, 1) + + 256 + + 1/350 x y DATA(1, -2, 1) + ---- DATA(2, -2, 1) + 1/350 x y DATA(1, 1, 2) + 3675 + + + 1/175 x y DATA(2, -2, 1) - 1/100 x z DATA(1, -2, -2) + + + 1/50 x z DATA(2, 1, 2) - 1/100 x z DATA(-1, 2, 2) + + + 1/100 x z DATA(-1, -2, -2) + 1/25 x z DATA(-2, 0, 1) + + - 1/100 y z DATA(-1, -1, 2) - 1/25 y z DATA(2, 2, 1) + + - 1/350 x y DATA(-2, -1, -1) - 1/50 y z DATA(-2, 2, -2) + + 2 + + 1/100 y z DATA(1, -1, -2) - 2/25 z DATA(1, 2, 1) + + 2 2 + - 2/25 z DATA(2, -1, 1) - 2/25 z DATA(1, -1, -1) + + - 1/100 y z DATA(2, 1, -2) + 2/175 x y DATA(-2, -2, 2) + + + 1/175 x y DATA(-2, 2, 1) + 1/350 x y DATA(-2, 1, 1) + + 2 + - 1/350 x y DATA(-2, -1, 1) - 2/25 z DATA(2, 2, -1) + + 2 2 + + 1/50 z DATA(-2, -1, -2) + 1/50 z DATA(2, 2, 2) + + 2 2 + + 1/50 z DATA(2, -2, -2) - 2/25 z DATA(-1, 1, -1) + + 2 2 2 + + 1/50 z DATA(1, -2, -2) + 1/50 z DATA(2, 1, 2) + 1/50 z DATA(-1, 2, 2) + + 2 2 + + 1/50 z DATA(-1, -2, -2) + 1/50 z DATA(-1, 1, 2) + + 2 2 + + 1/50 z DATA(-2, -2, -2) + 1/50 z DATA(1, -1, 2) + + 2 2 2 + + 1/50 z DATA(2, -1, 2) + 1/50 z DATA(-1, -1, 2) - 2/25 z DATA(2, 2, 1) + + 2 2 + + 1/50 z DATA(-2, 2, -2) + 1/50 z DATA(2, 1, -2) + + 2 2 + + 1/50 z DATA(1, 1, -2) + 1/50 z DATA(-1, 1, -2) + + 2 2 + + 1/50 z DATA(-2, 1, -2) - 2/25 z DATA(-1, 2, 1) + + 2 2 2 + - 2/25 z DATA(1, 1, -1) - 2/25 z DATA(-1, 1, 1) - 2/25 z DATA(1, -1, 1) + + 2 2 + - 2/25 z DATA(-1, -1, 1) + 1/50 z DATA(-1, -2, 2) + + 2 2 + + 1/50 z DATA(1, -2, 2) + 1/50 z DATA(-2, -1, 2) + + 2 2 2 + + 1/50 z DATA(2, -2, 2) + 1/50 z DATA(-2, 1, 2) - 2/25 z DATA(1, 1, 1) + + 2 2 + + 1/50 z DATA(-2, 2, 2) - 2/25 z DATA(-1, -1, -1) + + 2 2 + - 2/25 z DATA(1, 2, -1) + 1/490 x DATA(1, 1, -1) + + 2 2 + + 1/490 y DATA(1, 1, -1) + 1/490 y DATA(-1, 1, 1) + + 2 2 + + 1/490 y DATA(1, -1, 1) + 1/490 y DATA(-1, -1, 1) + + 2 2 + + 2/245 y DATA(-1, -2, 2) + 2/245 y DATA(1, -2, 2) + + 2 2 + - 1/245 y DATA(-2, -1, 2) + 2/245 y DATA(2, -2, 2) + + 2 2 + - 1/245 y DATA(-2, 1, 2) + 1/490 y DATA(1, 1, 1) + + 2 2 + + 2/245 y DATA(-2, 2, 2) + 1/490 y DATA(-1, -1, -1) + + 2 2 + - 1/245 y DATA(1, 2, -1) + 1/490 y DATA(2, 1, -1) + + 2 2 + - 1/245 y DATA(-1, 2, -1) + 1/490 y DATA(2, -1, -1) + + 2 2 + + 1/490 y DATA(2, 1, 1) - 1/245 y DATA(-1, 2, 1) + + 2 2 + - 1/245 y DATA(1, 2, 1) + 1/490 y DATA(2, -1, 1) + + 2 2 + + 1/490 y DATA(1, -1, -1) - 1/245 y DATA(2, 2, -1) + + 2 2 + + 2/245 y DATA(1, 2, 2) - 1/245 y DATA(-2, -1, -2) + + 2 2 + + 2/245 y DATA(2, 2, 2) + 2/245 y DATA(2, -2, -2) + + 2 2 + + 1/490 y DATA(-1, 1, -1) + 2/245 y DATA(1, -2, -2) + + 2 2 + - 1/245 y DATA(2, 1, 2) + 2/245 y DATA(-1, 2, 2) + + 2 2 + + 2/245 y DATA(-1, -2, -2) - 1/245 y DATA(-1, 1, 2) + + 2 2 + + 2/245 y DATA(-2, -2, -2) - 1/245 y DATA(1, -1, 2) + + 2 2 + - 1/245 y DATA(2, -1, 2) - 1/245 y DATA(-1, -1, 2) + + 2 2 + - 1/245 y DATA(2, 2, 1) + 2/245 y DATA(-2, 2, -2) + + 2 2 + - 1/245 y DATA(2, 1, -2) - 1/245 y DATA(1, 1, -2) + + 2 + - 1/245 y DATA(-1, 1, -2) + 1/100 y z DATA(1, 1, 2) + + + 1/25 y z DATA(1, -2, 1) + 1/175 x y DATA(-2, 2, -1) + + - 1/175 x y DATA(-2, -2, 1) + 1/25 y z DATA(-1, -2, 1) + + 211 + + ---- DATA(-2, -1, 1) - 1/175 x y DATA(-1, 2, -2) + 3675 + + 2 2 + + 2/245 x DATA(-2, -2, -2) - 1/245 x DATA(1, -1, 2) + + 2 2 + + 2/245 x DATA(2, -1, 2) - 1/245 x DATA(-1, -1, 2) + + 2 2 + - 1/245 x DATA(2, 2, 1) + 2/245 x DATA(-2, 2, -2) + + 2 2 + + 2/245 x DATA(2, 1, -2) - 1/245 x DATA(1, 1, -2) + + 2 2 + - 1/245 x DATA(-1, 1, -2) + 2/245 x DATA(-2, 1, -2) + + 2 2 + + 2/245 x DATA(2, -1, -2) - 1/245 x DATA(1, -1, -2) + + 2 2 + - 1/245 x DATA(-1, -1, -2) - 1/245 x DATA(2, -2, -1) + + 2 2 + + 1/490 x DATA(1, -2, -1) - 1/245 x DATA(1, -2, 2) + + 2 2 + + 1/490 x DATA(-1, 1, 1) + 1/490 x DATA(1, -1, 1) + + 2 2 + + 1/490 x DATA(-1, -1, 1) - 1/245 x DATA(-1, -2, 2) + + 2 2 + + 2/245 x DATA(-2, -1, 2) + 2/245 x DATA(2, -2, 2) + + 2 2 + + 2/245 x DATA(-2, 1, 2) + 1/490 x DATA(1, 1, 1) + + 2 2 + + 2/245 x DATA(-2, 2, 2) + 1/490 x DATA(-1, -1, -1) + + 2 2 + + 1/490 x DATA(1, 2, -1) - 1/245 x DATA(2, 1, -1) + + 2 2 + + 1/490 x DATA(-1, 2, -1) - 1/245 x DATA(2, -1, -1) + + 2 2 + - 1/245 x DATA(2, 1, 1) + 1/490 x DATA(-1, 2, 1) + + 2 2 + + 1/490 x DATA(1, 2, 1) - 1/245 x DATA(2, -1, 1) + + 2 2 + + 1/490 x DATA(1, -1, -1) - 1/245 x DATA(2, 2, -1) + + 2 2 + - 1/245 x DATA(1, 2, 2) + 2/245 x DATA(-2, -1, -2) + + 2 2 + + 2/245 x DATA(2, 2, 2) + 2/245 x DATA(2, -2, -2) + + 2 2 + + 1/490 x DATA(-1, 1, -1) - 1/245 x DATA(1, -2, -2) + + 2 2 + + 2/245 x DATA(2, 1, 2) - 1/245 x DATA(-1, 2, 2) + + 2 2 + - 1/245 x DATA(-1, -2, -2) - 1/245 x DATA(-1, 1, 2) + + 2 2 + + 1/490 x DATA(-1, -2, -1) - 1/245 x DATA(-2, -2, -1) + + 2 2 + + 2/245 x DATA(2, 2, -2) - 1/245 x DATA(1, 2, -2) + + 2 2 + - 1/245 x DATA(-1, 2, -2) - 1/245 x DATA(-2, 1, -1) + + 2 2 + - 1/245 x DATA(-2, -1, -1) - 1/245 x DATA(-2, 2, -1) + + 2 2 + - 1/245 x DATA(-2, -2, 1) + 1/490 x DATA(-1, -2, 1) + + 2 2 + + 1/490 x DATA(1, -2, 1) - 1/245 x DATA(1, 1, 2) + + 2 2 + - 1/245 x DATA(2, -2, 1) - 1/245 x DATA(-2, -1, 1) + + 2 2 + - 1/245 x DATA(-2, 1, 1) - 1/245 x DATA(-2, 2, 1) + + 2 + + 2/245 x DATA(-2, -2, 2) - 1/100 y z DATA(-2, -1, 2) + + + 1/350 x DATA(-1, -1, 1) - 1/175 x DATA(-1, -2, 2) + + + 1/175 x DATA(1, -2, 2) - 2/175 x DATA(-2, -1, 2) + + + 2/175 x DATA(2, -2, 2) - 2/175 x DATA(-2, 1, 2) - 1/350 x DATA(1, 1, 1) + + - 2/175 x DATA(-2, 2, 2) + 1/350 x DATA(-1, -1, -1) + + - 1/350 x DATA(1, 2, -1) - 1/175 x DATA(2, 1, -1) + + + 1/350 x DATA(-1, 2, -1) - 1/175 x DATA(2, -1, -1) + + - 1/175 x DATA(2, 1, 1) + 1/350 x DATA(-1, 2, 1) - 1/350 x DATA(1, 2, 1) + + - 1/175 x DATA(2, -1, 1) - 1/350 x DATA(1, -1, -1) + + - 1/175 x DATA(2, 2, -1) + 1/175 x DATA(1, 2, 2) + + - 2/175 x DATA(-2, -1, -2) - 1/350 x DATA(1, -1, 1) + + - 1/175 x DATA(2, -2, -1) - 1/350 x DATA(1, -2, -1) + + + 1/350 x DATA(-1, -2, -1) + 1/175 x DATA(-2, -2, -1) + + + 2/175 x DATA(2, 2, -2) + 1/175 x DATA(1, 2, -2) + + - 1/175 x DATA(-1, 2, -2) + 1/175 x DATA(-2, 1, -1) + + + 1/175 x DATA(-2, -1, -1) + 1/175 x DATA(-2, 2, -1) + + + 1/175 x DATA(-2, -2, 1) + 1/350 x DATA(-1, -2, 1) + + - 1/350 x DATA(1, -2, 1) + 1/175 x DATA(1, 1, 2) - 1/175 x DATA(2, -2, 1) + + - 1/350 x DATA(1, 1, -1) + 1/350 x DATA(-1, 1, 1) + 2/175 x DATA(2, 2, 2) + + + 2/175 x DATA(2, -2, -2) + 1/350 x DATA(-1, 1, -1) + + + 1/175 x DATA(1, -2, -2) + 2/175 x DATA(2, 1, 2) - 1/175 x DATA(-1, 2, 2) + + - 1/175 x DATA(-1, -2, -2) - 1/175 x DATA(-1, 1, 2) + + - 2/175 x DATA(-2, -2, -2) + 1/175 x DATA(1, -1, 2) + + + 2/175 x DATA(2, -1, 2) - 1/175 x DATA(-1, -1, 2) - 1/175 x DATA(2, 2, 1) + + - 2/175 x DATA(-2, 2, -2) + 2/175 x DATA(2, 1, -2) + + + 1/175 x DATA(1, 1, -2) - 1/175 x DATA(-1, 1, -2) + + - 2/175 x DATA(-2, 1, -2) + 2/175 x DATA(2, -1, -2) + + + 1/175 x DATA(1, -1, -2) - 1/175 x DATA(-1, -1, -2) + + + 1/175 x DATA(-2, -1, 1) + 1/175 x DATA(-2, 1, 1) + + + 1/175 x DATA(-2, 2, 1) - 2/175 x DATA(-2, -2, 2) + 1/25 z DATA(1, 1, -1) + + - 1/25 z DATA(-1, 1, 1) - 1/175 y DATA(-2, 2, -1) - 1/350 y DATA(1, 1, -1) + + - 1/350 y DATA(-1, 1, 1) + 1/350 y DATA(1, -1, 1) + + + 1/350 y DATA(-1, -1, 1) - 2/175 y DATA(-1, -2, 2) + + - 2/175 y DATA(1, -2, 2) - 1/175 y DATA(-2, -1, 2) + + - 2/175 y DATA(2, -2, 2) + 1/175 y DATA(-2, 1, 2) - 1/350 y DATA(1, 1, 1) + + + 2/175 y DATA(-2, 2, 2) + 1/350 y DATA(-1, -1, -1) + + - 1/175 y DATA(1, 2, -1) - 1/350 y DATA(2, 1, -1) + + - 1/175 y DATA(-1, 2, -1) + 1/350 y DATA(2, -1, -1) + + - 1/350 y DATA(2, 1, 1) - 1/175 y DATA(-1, 2, 1) - 1/175 y DATA(1, 2, 1) + + + 1/350 y DATA(2, -1, 1) + 1/350 y DATA(1, -1, -1) + + - 1/175 y DATA(2, 2, -1) + 2/175 y DATA(1, 2, 2) + + - 1/175 y DATA(-2, -1, -2) + 2/175 y DATA(2, 2, 2) + + - 2/175 y DATA(2, -2, -2) - 1/350 y DATA(-1, 1, -1) + + - 2/175 y DATA(1, -2, -2) + 1/175 y DATA(2, 1, 2) + 2/175 y DATA(-1, 2, 2) + + - 2/175 y DATA(-1, -2, -2) + 1/175 y DATA(-1, 1, 2) + + 2 + - 2/175 y DATA(-2, -2, -2) + 1/50 z DATA(2, -1, -2) + + 2 2 + + 1/50 z DATA(1, -1, -2) + 1/50 z DATA(-1, -1, -2) + + 2 2 + - 2/25 z DATA(2, -2, -1) - 2/25 z DATA(1, -2, -1) + + 2 2 + - 2/25 z DATA(-1, -2, -1) - 2/25 z DATA(-2, -2, -1) + + 2 2 + + 1/50 z DATA(2, 2, -2) + 1/50 z DATA(1, 2, -2) + + 2 2 + + 1/50 z DATA(-1, 2, -2) - 2/25 z DATA(-2, 1, -1) + + 2 2 + - 2/25 z DATA(-2, -1, -1) - 2/25 z DATA(-2, 2, -1) + + 2 2 + - 2/25 z DATA(-2, -2, 1) - 2/25 z DATA(-1, -2, 1) + + 2 2 2 + - 2/25 z DATA(1, -2, 1) + 1/50 z DATA(1, 1, 2) - 2/25 z DATA(2, -2, 1) + + 2 2 + - 2/25 z DATA(-2, -1, 1) - 2/25 z DATA(-2, 1, 1) + + 2 2 + - 2/25 z DATA(-2, 2, 1) + 1/50 z DATA(-2, -2, 2) + + 2 2 + - 2/25 z DATA(2, 1, -1) - 2/25 z DATA(-1, 2, -1) + + 2 + - 2/25 z DATA(2, -1, -1) - 1/175 y DATA(1, -1, 2) + + - 1/175 y DATA(2, -1, 2) - 1/175 y DATA(-1, -1, 2) - 1/175 y DATA(2, 2, 1) + + + 2/175 y DATA(-2, 2, -2) + 1/175 y DATA(2, 1, -2) + + + 1/175 y DATA(1, 1, -2) + 1/175 y DATA(-1, 1, -2) + + + 1/175 y DATA(-2, 1, -2) - 1/175 y DATA(2, -1, -2) + + - 1/175 y DATA(1, -1, -2) - 1/175 y DATA(-1, -1, -2) + + + 1/175 y DATA(2, -2, -1) + 1/175 y DATA(1, -2, -1) + + + 1/175 y DATA(-1, -2, -1) + 1/175 y DATA(-2, -2, -1) + + + 2/175 y DATA(2, 2, -2) + 2/175 y DATA(1, 2, -2) + + + 2/175 y DATA(-1, 2, -2) - 1/350 y DATA(-2, 1, -1) + + + 1/350 y DATA(-2, -1, -1) + 1/175 y DATA(-2, -2, 1) + + + 1/175 y DATA(-1, -2, 1) + 1/175 y DATA(1, -2, 1) + 1/175 y DATA(1, 1, 2) + + + 1/175 y DATA(2, -2, 1) + 1/350 y DATA(-2, -1, 1) + + - 1/350 y DATA(-2, 1, 1) - 1/175 y DATA(-2, 2, 1) + + - 2/175 y DATA(-2, -2, 2) + 1/50 z DATA(-1, 2, 2) + 1/50 z DATA(-1, 1, 2) + + - 1/50 z DATA(-2, -2, -2) + 1/50 z DATA(1, -1, 2) + 1/50 z DATA(2, -1, 2) + + + 1/50 z DATA(-1, -1, 2) - 1/25 z DATA(2, 2, 1) - 1/50 z DATA(-2, 2, -2) + + - 1/50 z DATA(2, 1, -2) - 1/50 z DATA(1, 1, -2) - 1/50 z DATA(-1, 1, -2) + + - 1/50 z DATA(-2, 1, -2) - 1/50 z DATA(2, -1, -2) - 1/50 z DATA(1, -1, -2) + + - 1/50 z DATA(-1, -1, -2) + 1/25 z DATA(2, -2, -1) + + + 1/25 z DATA(1, -2, -1) + 1/25 z DATA(-1, -2, -1) + + + 1/25 z DATA(-2, -2, -1) - 1/50 z DATA(2, 2, -2) - 1/50 z DATA(1, 2, -2) + + - 1/50 z DATA(-1, 2, -2) + 1/25 z DATA(-2, 1, -1) + + + 1/25 z DATA(-2, -1, -1) + 1/25 z DATA(-2, 2, -1) + + - 1/25 z DATA(-2, -2, 1) - 1/25 z DATA(-1, -2, 1) - 1/25 z DATA(1, -2, 1) + + + 1/50 z DATA(1, 1, 2) - 1/25 z DATA(2, -2, 1) - 1/25 z DATA(-2, -1, 1) + + - 1/25 z DATA(-2, 1, 1) - 1/25 z DATA(-2, 2, 1) + 1/50 z DATA(-2, -2, 2) + + 2 + - 1/50 z DATA(-1, -2, -2) - 1/245 y DATA(-2, 1, -2) + + 2 2 + - 1/245 y DATA(2, -1, -2) - 1/245 y DATA(1, -1, -2) + + 2 2 + - 1/245 y DATA(-1, -1, -2) - 1/245 y DATA(2, -2, -1) + + 2 2 + - 1/245 y DATA(1, -2, -1) - 1/245 y DATA(-1, -2, -1) + + 2 2 + - 1/245 y DATA(-2, -2, -1) + 2/245 y DATA(2, 2, -2) + + 2 2 + + 2/245 y DATA(1, 2, -2) + 2/245 y DATA(-1, 2, -2) + + 2 2 + + 1/490 y DATA(-2, 1, -1) + 1/490 y DATA(-2, -1, -1) + + 2 2 + - 1/245 y DATA(-2, 2, -1) - 1/245 y DATA(-2, -2, 1) + + 2 2 + - 1/245 y DATA(-1, -2, 1) - 1/245 y DATA(1, -2, 1) + + 2 2 + - 1/245 y DATA(1, 1, 2) - 1/245 y DATA(2, -2, 1) + + 2 2 + + 1/490 y DATA(-2, -1, 1) + 1/490 y DATA(-2, 1, 1) + + 2 2 + - 1/245 y DATA(-2, 2, 1) + 2/245 y DATA(-2, -2, 2) + + - 1/25 z DATA(1, -1, 1) - 1/25 z DATA(-1, -1, 1) + 1/50 z DATA(-1, -2, 2) + + + 1/50 z DATA(1, -2, 2) + 1/50 z DATA(-2, -1, 2) + 1/50 z DATA(2, -2, 2) + + + 1/50 z DATA(-2, 1, 2) - 1/25 z DATA(1, 1, 1) + 1/50 z DATA(-2, 2, 2) + + + 1/25 z DATA(-1, -1, -1) + 1/25 z DATA(1, 2, -1) + 1/25 z DATA(2, 1, -1) + + + 1/25 z DATA(-1, 2, -1) + 1/25 z DATA(2, -1, -1) - 1/25 z DATA(2, 1, 1) + + - 1/25 z DATA(-1, 2, 1) - 1/25 z DATA(1, 2, 1) - 1/25 z DATA(2, -1, 1) + + + 1/25 z DATA(1, -1, -1) + 1/25 z DATA(2, 2, -1) + 1/50 z DATA(1, 2, 2) + + - 1/50 z DATA(-2, -1, -2) + 1/50 z DATA(2, 2, 2) - 1/50 z DATA(2, -2, -2) + + + 1/25 z DATA(-1, 1, -1) - 1/50 z DATA(1, -2, -2) + 1/50 z DATA(2, 1, 2) + + + 1/100 y z DATA(2, 1, 2) + 1/50 y z DATA(-1, 1, -1) + + + 1/50 y z DATA(2, -2, -2) - 1/100 y z DATA(1, 1, -2) + + - 1/100 y z DATA(-1, 1, -2) + 1/100 y z DATA(-2, -1, -2) + + + 1/50 y z DATA(2, 2, 2) - 1/50 y z DATA(1, -1, -1) + + + 1/25 y z DATA(2, 2, -1) + 1/50 y z DATA(1, 2, 2) + + - 1/25 y z DATA(1, 2, 1) + 1/50 y z DATA(2, -1, 1) + + - 1/50 y z DATA(2, -1, -1) - 1/50 y z DATA(2, 1, 1) + + - 1/25 y z DATA(-1, 2, 1) + 1/50 y z DATA(2, 1, -1) + + - 1/50 y z DATA(-1, -1, -1) + 1/25 y z DATA(1, 2, -1) + + + 1/50 y z DATA(-2, 2, 2) + 1/50 y z DATA(1, 1, -1) + + + 1/100 y z DATA(-2, 1, 2) - 1/700 x y DATA(1, 1, -1) + + - 1/50 y z DATA(2, -2, 2) - 1/50 y z DATA(1, -2, 2) + + - 1/50 y z DATA(-1, -2, 2) + 1/50 y z DATA(1, -2, -2) + + - 1/100 y z DATA(2, -1, 2) + 1/50 y z DATA(-2, -2, -2) + + + 1/50 y z DATA(-1, -1, 1) - 1/100 y z DATA(1, -1, 2) + + + 1/50 y z DATA(-1, -2, -2) + 1/100 y z DATA(-1, 1, 2) + + + 1/50 y z DATA(1, -1, 1) - 1/50 y z DATA(-1, 1, 1) + + + 1/50 y z DATA(-1, 2, 2) - 1/100 y z DATA(-2, 1, -2) + + 2 + - 2/25 z DATA(2, 1, 1) + 1/350 x y DATA(-2, 1, -1) + + + 1/100 y z DATA(2, -1, -2) - 1/50 y z DATA(1, 1, 1) + + + 2/175 x y DATA(2, 2, -2) + 1/175 x y DATA(1, 2, -2) + + - 1/175 x y DATA(-2, -2, -1) - 1/350 x y DATA(1, -1, -2) + + + 1/350 x y DATA(-1, -1, -2) + 1/175 x y DATA(2, -2, -1) + + + 1/350 x y DATA(1, -2, -1) - 1/350 x y DATA(-1, -2, -1) + + - 1/175 x y DATA(-2, 1, -2) - 1/175 x y DATA(2, -1, -2) + + + 1/350 x y DATA(1, 1, -2) - 1/350 x y DATA(-1, 1, -2) + + - 2/175 x y DATA(-2, 2, -2) + 4/75 DATA(-2, 0, 1) + + + 1/175 x y DATA(2, 1, -2) - 1/350 x y DATA(1, -1, 2) + + - 1/175 x y DATA(2, -1, 2) + 1/350 x y DATA(-1, -1, 2) + + 211 + - 1/175 x y DATA(2, 2, 1) + ---- DATA(-2, 1, 1) + 3675 + + + 1/175 x y DATA(-1, -2, -2) - 1/350 x y DATA(-1, 1, 2) + + + 2/175 x y DATA(-2, -2, -2) + 1/700 x y DATA(-1, 1, -1) + + - 1/175 x y DATA(1, -2, -2) + 1/175 x y DATA(2, 1, 2) + + 256 + - 1/175 x y DATA(-1, 2, 2) + ---- DATA(-2, 2, 1) + 2/175 x y DATA(2, 2, 2) + 3675 + + - 2/175 x y DATA(2, -2, -2) + 1/700 x y DATA(1, -1, -1) + + - 1/175 x y DATA(2, 2, -1) + 1/175 x y DATA(1, 2, 2) + + + 1/175 x y DATA(-2, -1, -2) - 1/350 x y DATA(1, 2, 1) + + + 1/350 x y DATA(2, -1, 1) + 1/350 x y DATA(-1, 2, 1) + + 529 2 + - ----- DATA(-2, -2, 2) + 1/50 z DATA(1, 2, 2) + 14700 + + + 1/350 x y DATA(2, -1, -1) + 1/350 x y DATA(-1, 2, -1) + + - 1/350 x y DATA(2, 1, -1) - 1/350 x y DATA(1, 2, -1) + + - 1/700 x y DATA(-1, -1, -1) - 2/175 x y DATA(-2, 2, 2) + + - 1/700 x y DATA(1, 1, 1) - 1/175 x y DATA(-2, 1, 2) + + - 2/175 x y DATA(2, -2, 2) + 1/175 x y DATA(-2, -1, 2) + + - 1/175 x y DATA(1, -2, 2) + 1/175 x y DATA(-1, -2, 2) + + - 1/700 x y DATA(-1, -1, 1) + 1/700 x y DATA(1, -1, 1) + + + 1/700 x y DATA(-1, 1, 1) - 1/350 x y DATA(2, 1, 1) + +> coeff_as_lc_of_data(%, posn_list_3d_size5); +bytes used=2480550720, alloc=15136044, time=410.97 +bytes used=2481641152, alloc=15136044, time=411.06 +bytes used=2482641380, alloc=15136044, time=411.14 +bytes used=2483644020, alloc=15136044, time=411.23 +bytes used=2484644488, alloc=15136044, time=411.31 +bytes used=2485644892, alloc=15136044, time=411.40 +bytes used=2486661472, alloc=15136044, time=411.48 +bytes used=2487732936, alloc=15136044, time=411.57 +bytes used=2488771100, alloc=15136044, time=411.66 +bytes used=2489776820, alloc=15136044, time=411.75 +bytes used=2490799700, alloc=15136044, time=411.85 +bytes used=2491800000, alloc=15136044, time=411.94 +bytes used=2492800128, alloc=15136044, time=412.03 +bytes used=2493800408, alloc=15136044, time=412.12 +bytes used=2494815880, alloc=15136044, time=412.22 +bytes used=2495842088, alloc=15136044, time=412.32 +bytes used=2496847584, alloc=15136044, time=412.42 +bytes used=2497847776, alloc=15136044, time=412.52 +bytes used=2498850976, alloc=15136044, time=412.62 +bytes used=2499861184, alloc=15136044, time=412.73 +bytes used=2500910620, alloc=15136044, time=412.83 +bytes used=2501927468, alloc=15136044, time=412.94 +bytes used=2502932444, alloc=15136044, time=413.06 +bytes used=2503963048, alloc=15136044, time=413.17 +bytes used=2504966360, alloc=15136044, time=413.29 +bytes used=2505967024, alloc=15136044, time=413.37 +bytes used=2506985204, alloc=15136044, time=413.45 +bytes used=2508003080, alloc=15136044, time=413.52 + 529 2 2 +[COEFF(-2, -2, -2) = - 2/175 y - ----- + 2/245 x - 2/175 x + 1/50 z + 14700 + + 2 + + 2/245 y - 1/50 z + 1/50 y z + 2/175 x y + 1/50 x z, COEFF(-1, -2, -2) + + 169 2 2 + = 1/175 x y - 1/50 z - 2/175 y - ----- + 1/50 z - 1/245 x - 1/175 x + 14700 + + 2 + + 1/50 y z + 2/245 y + 1/100 x z, COEFF(0, -2, -2) = + + 2 2 2 + - 2/175 y - 2/245 x + 1/50 z + 2/245 y - 1/50 z - 1/300 + 1/50 y z, + + 169 2 + COEFF(1, -2, -2) = - 1/175 x y - ----- - 1/100 x z + 1/50 z + 1/50 y z + 14700 + + 2 2 + - 1/245 x + 2/245 y - 1/50 z + 1/175 x - 2/175 y, COEFF(2, -2, -2) = + + 529 2 2 + - ----- - 1/50 z + 2/245 x + 1/50 y z - 2/175 x y + 2/245 y - 1/50 x z + 14700 + + 2 2 2 + + 2/175 x + 1/50 z - 2/175 y, COEFF(-2, -1, -2) = 1/50 z - 1/245 y + + 2 169 + + 1/100 y z + 1/175 x y - 1/50 z + 2/245 x - ----- - 1/175 y - 2/175 x + 14700 + + 2 + + 1/50 x z, COEFF(-1, -1, -2) = - 1/245 x - 1/175 y + 1/100 x z + + 2 2 191 + + 1/350 x y + 1/100 y z + 1/50 z - 1/245 y - 1/175 x + ----- - 1/50 z, + 14700 + + COEFF(0, -1, -2) = + + 311 2 2 2 + ----- + 1/50 z + 1/100 y z - 1/50 z - 1/175 y - 1/245 y - 2/245 x , + 14700 + + 2 2 + COEFF(1, -1, -2) = - 1/175 y - 1/50 z + 1/50 z - 1/245 x - 1/100 x z + + 191 2 + + 1/100 y z + ----- + 1/175 x - 1/350 x y - 1/245 y , COEFF(2, -1, -2) = + 14700 + + 2 169 2 + - 1/50 z + 1/100 y z - 1/245 y - ----- + 2/245 x - 1/175 y - 1/50 x z + 14700 + + 2 + - 1/175 x y + 1/50 z + 2/175 x, COEFF(-2, 0, -2) = + + 2 2 2 + 1/50 z + 2/245 x - 2/245 y + 1/50 x z - 1/50 z - 1/300 - 2/175 x, + + COEFF(-1, 0, -2) = + + 2 2 311 2 + - 1/50 z + 1/50 z - 2/245 y + ----- - 1/175 x - 1/245 x + 1/100 x z, + 14700 + + 431 2 2 2 + COEFF(0, 0, -2) = ----- + 1/50 z - 2/245 y - 2/245 x - 1/50 z, + 14700 + + COEFF(1, 0, -2) = + + 311 2 2 2 + ----- + 1/175 x - 1/100 x z - 1/50 z - 2/245 y - 1/245 x + 1/50 z , + 14700 + + COEFF(2, 0, -2) = + + 2 2 2 + - 1/50 z - 2/245 y + 2/245 x - 1/50 x z + 2/175 x - 1/300 + 1/50 z , + + 2 169 + COEFF(-2, 1, -2) = 1/50 z - 1/175 x y + 1/50 x z + 1/175 y - ----- + 14700 + + 2 2 + + 2/245 x - 2/175 x - 1/100 y z - 1/245 y - 1/50 z, COEFF(-1, 1, -2) = + + 191 2 + 1/100 x z + ----- - 1/245 x - 1/100 y z - 1/175 x - 1/350 x y - 1/50 z + 14700 + + 2 2 + - 1/245 y + 1/50 z + 1/175 y, COEFF(0, 1, -2) = + + 2 2 2 311 + 1/50 z - 1/100 y z - 1/50 z - 1/245 y + 1/175 y - 2/245 x + -----, + 14700 + + 2 + COEFF(1, 1, -2) = - 1/245 x + 1/175 x - 1/100 x z - 1/50 z - 1/100 y z + + 191 2 2 + + 1/350 x y + ----- + 1/50 z - 1/245 y + 1/175 y, COEFF(2, 1, -2) = + 14700 + + 2 169 + 1/175 y + 2/175 x + 2/245 x - 1/50 x z - ----- - 1/100 y z - 1/50 z + 14700 + + 2 2 + - 1/245 y + 1/50 z + 1/175 x y, COEFF(-2, 2, -2) = - 1/50 y z - 1/50 z + + 2 2 2 + + 2/245 x - 2/175 x + 1/50 x z - 2/175 x y + 2/245 y + 1/50 z + 2/175 y + + 529 + - -----, COEFF(-1, 2, -2) = - 1/50 y z + 1/100 x z - 1/175 x y - 1/50 z + 14700 + + 2 2 169 2 + - 1/245 x - 1/175 x + 2/175 y + 2/245 y - ----- + 1/50 z , + 14700 + + COEFF(0, 2, -2) = + + 2 2 2 + - 1/300 + 2/245 y - 1/50 z + 1/50 z - 2/245 x - 1/50 y z + 2/175 y, + + 2 2 + COEFF(1, 2, -2) = - 1/245 x + 1/175 x y - 1/50 z - 1/100 x z + 2/245 y + + 2 169 + + 1/50 z - ----- + 1/175 x - 1/50 y z + 2/175 y, COEFF(2, 2, -2) = + 14700 + + 2 2 + 2/245 y - 1/50 x z + 2/175 y + 2/175 x - 1/50 z + 2/175 x y + 2/245 x + + 529 2 2 + - 1/50 y z - ----- + 1/50 z , COEFF(-2, -2, -1) = - 1/25 x z - 1/245 x + 14700 + + 2 2 256 + - 1/245 y - 1/25 y z - 2/25 z + ---- + 1/25 z - 1/175 x y + 1/175 y + 3675 + + 2 + + 1/175 x, COEFF(-1, -2, -1) = - 1/50 x z + 1/350 x + 1/175 y + 1/490 x + + 2 2 211 + - 2/25 z - 1/245 y + 1/25 z + ---- - 1/25 y z - 1/350 x y, + 3675 + + COEFF(0, -2, -1) = + + 2 2 2 + 4/75 - 1/25 y z + 1/175 y - 2/25 z + 1/25 z - 1/245 y + 1/245 x , + + 211 + COEFF(1, -2, -1) = ---- + 1/175 y + 1/350 x y + 1/50 x z - 1/25 y z + 3675 + + 2 2 2 + - 2/25 z - 1/350 x + 1/25 z - 1/245 y + 1/490 x , COEFF(2, -2, -1) = + + 2 256 2 + - 1/245 y + ---- + 1/175 x y - 1/175 x - 1/245 x + 1/175 y + 1/25 x z + 3675 + + 2 + - 2/25 z - 1/25 y z + 1/25 z, COEFF(-2, -1, -1) = - 1/350 x y + 1/175 x + + 2 211 2 + + 1/350 y - 2/25 z + 1/25 z - 1/25 x z - 1/50 y z + ---- + 1/490 y + 3675 + + 2 166 + - 1/245 x , COEFF(-1, -1, -1) = 1/350 x + 1/350 y + ---- - 1/50 y z + 3675 + + 2 2 2 + - 1/50 x z - 1/700 x y + 1/490 y - 2/25 z + 1/25 z + 1/490 x , + + COEFF(0, -1, -1) = + + 2 2 2 151 + 1/25 z + 1/490 y - 1/50 y z - 2/25 z + 1/245 x + ---- + 1/350 y, + 3675 + + 166 2 2 + COEFF(1, -1, -1) = ---- + 1/50 x z - 1/350 x + 1/490 x - 2/25 z + 1/25 z + 3675 + + 2 + - 1/50 y z + 1/350 y + 1/490 y + 1/700 x y, COEFF(2, -1, -1) = - 1/175 x + + 211 2 2 2 + + 1/25 x z + ---- - 1/245 x + 1/350 x y - 2/25 z + 1/490 y - 1/50 y z + 3675 + + + 1/350 y + 1/25 z, COEFF(-2, 0, -1) = + + 2 2 2 + - 2/25 z - 1/25 x z + 4/75 + 1/245 y + 1/175 x - 1/245 x + 1/25 z, + + COEFF(-1, 0, -1) = + + 2 2 151 2 + 1/245 y - 2/25 z + ---- + 1/350 x - 1/50 x z + 1/25 z + 1/490 x , + 3675 + + 2 2 2 136 + COEFF(0, 0, -1) = 1/245 x + 1/25 z + 1/245 y - 2/25 z + ----, + 3675 + + COEFF(1, 0, -1) = + + 2 2 2 151 + - 2/25 z + 1/490 x + 1/245 y + 1/50 x z + ---- - 1/350 x + 1/25 z, + 3675 + + COEFF(2, 0, -1) = + + 2 2 2 + 1/245 y + 4/75 - 1/245 x + 1/25 z - 2/25 z + 1/25 x z - 1/175 x, + + 2 2 + COEFF(-2, 1, -1) = - 1/25 x z - 2/25 z - 1/350 y + 1/175 x - 1/245 x + + 2 211 166 + + 1/350 x y + 1/25 z + 1/490 y + ---- + 1/50 y z, COEFF(-1, 1, -1) = ---- + 3675 3675 + + 2 2 + + 1/25 z - 1/50 x z + 1/490 x + 1/700 x y - 1/350 y + 1/490 y + 1/50 y z + + 2 + - 2/25 z + 1/350 x, COEFF(0, 1, -1) = + + 151 2 2 2 + 1/25 z - 1/350 y + ---- + 1/245 x - 2/25 z + 1/50 y z + 1/490 y , + 3675 + + 2 166 + COEFF(1, 1, -1) = - 1/350 x + 1/25 z + 1/50 x z - 2/25 z + ---- + 3675 + + 2 2 + - 1/700 x y + 1/50 y z + 1/490 y + 1/490 x - 1/350 y, COEFF(2, 1, -1) = + + 2 + - 1/350 y - 1/245 x + 1/50 y z + 1/25 x z + 1/25 z - 1/350 x y - 1/175 x + + 2 211 2 256 + - 2/25 z + ---- + 1/490 y , COEFF(-2, 2, -1) = ---- + 1/175 x y + 1/175 x + 3675 3675 + + 2 2 2 + - 1/25 x z - 1/245 x - 2/25 z + 1/25 z - 1/175 y - 1/245 y + 1/25 y z, + + 2 2 + COEFF(-1, 2, -1) = 1/25 y z + 1/25 z - 1/245 y + 1/490 x - 1/50 x z + + 211 2 + + ---- - 1/175 y - 2/25 z + 1/350 x + 1/350 x y, COEFF(0, 2, -1) = + 3675 + + 2 2 2 + 1/245 x + 1/25 y z + 4/75 + 1/25 z - 1/245 y - 2/25 z - 1/175 y, + + 211 2 2 + COEFF(1, 2, -1) = 1/50 x z - 1/175 y + ---- - 2/25 z - 1/245 y + 3675 + + 2 + - 1/350 x y + 1/490 x + 1/25 z - 1/350 x + 1/25 y z, COEFF(2, 2, -1) = + + 256 2 + - 1/175 x y - 1/175 y + ---- - 1/175 x + 1/25 x z - 1/245 y + 1/25 y z + 3675 + + 2 2 + - 2/25 z - 1/245 x + 1/25 z, COEFF(-2, -2, 0) = + + 33 2 2 2 + - 2/175 x y + 2/175 x - --- - 2/245 x + 2/175 y + 3/25 z - 2/245 y , + 490 + + COEFF(-1, -2, 0) = + + 2 2 2 + - 2/245 y + 3/25 z - 1/175 x y + 1/245 x - 9/98 + 2/175 y + 1/175 x, + + 2 2 2 + COEFF(0, -2, 0) = - 2/245 y + 2/245 x + 2/175 y + 3/25 z - 1/10, + + COEFF(1, -2, 0) = + + 2 2 2 + - 9/98 + 1/175 x y + 1/245 x + 3/25 z - 2/245 y - 1/175 x + 2/175 y, + + COEFF(2, -2, 0) = + + 2 2 2 33 + - 2/245 x + 3/25 z + 2/175 y + 2/175 x y - 2/245 y - --- - 2/175 x, + 490 + + COEFF(-2, -1, 0) = + + 2 2 2 + 2/175 x + 3/25 z + 1/175 y + 1/245 y - 1/175 x y - 2/245 x - 9/98, + + COEFF(-1, -1, 0) = + + 2 2 57 2 + 1/175 x - 1/350 x y + 1/245 x + 1/245 y - --- + 3/25 z + 1/175 y, + 490 + + 2 2 61 2 + COEFF(0, -1, 0) = 1/175 y + 2/245 x + 3/25 z - --- + 1/245 y , + 490 + + COEFF(1, -1, 0) = + + 57 2 2 2 + - --- + 1/245 x + 1/245 y + 1/175 y - 1/175 x + 1/350 x y + 3/25 z , + 490 + + COEFF(2, -1, 0) = + + 2 2 2 + 1/175 x y - 2/175 x + 1/245 y - 9/98 + 1/175 y - 2/245 x + 3/25 z , + + 2 2 2 + COEFF(-2, 0, 0) = - 1/10 + 3/25 z - 2/245 x + 2/175 x + 2/245 y , + + 2 61 2 2 + COEFF(-1, 0, 0) = 1/245 x + 1/175 x - --- + 3/25 z + 2/245 y , + 490 + + 2 13 2 2 + COEFF(0, 0, 0) = 2/245 y - -- + 2/245 x + 3/25 z , + 98 + + 2 2 2 61 + COEFF(1, 0, 0) = 3/25 z + 1/245 x - 1/175 x + 2/245 y - ---, + 490 + + 2 2 2 + COEFF(2, 0, 0) = - 1/10 + 2/245 y - 2/175 x + 3/25 z - 2/245 x , + + COEFF(-2, 1, 0) = + + 2 2 2 + 3/25 z - 2/245 x - 1/175 y - 9/98 + 1/245 y + 2/175 x + 1/175 x y, + + COEFF(-1, 1, 0) = + + 2 57 2 2 + 1/245 x - --- - 1/175 y + 1/175 x + 3/25 z + 1/245 y + 1/350 x y, + 490 + + 2 61 2 2 + COEFF(0, 1, 0) = - 1/175 y + 2/245 x - --- + 3/25 z + 1/245 y , + 490 + + COEFF(1, 1, 0) = + + 57 2 2 2 + - --- + 1/245 x - 1/350 x y + 3/25 z - 1/175 x - 1/175 y + 1/245 y , + 490 + + COEFF(2, 1, 0) = + + 2 2 2 + - 2/245 x + 1/245 y - 2/175 x + 3/25 z - 9/98 - 1/175 x y - 1/175 y, + + COEFF(-2, 2, 0) = + + 2 2 33 2 + - 2/175 y + 2/175 x y - 2/245 x - 2/245 y - --- + 2/175 x + 3/25 z , + 490 + + COEFF(-1, 2, 0) = + + 2 2 2 + 1/175 x y - 2/245 y - 9/98 + 1/245 x + 3/25 z - 2/175 y + 1/175 x, + + 2 2 2 + COEFF(0, 2, 0) = - 2/175 y + 2/245 x - 1/10 + 3/25 z - 2/245 y , + + COEFF(1, 2, 0) = + + 2 2 2 + - 2/245 y - 2/175 y - 1/175 x y - 1/175 x + 1/245 x + 3/25 z - 9/98, + + COEFF(2, 2, 0) = + + 2 2 33 2 + - 2/175 y - 2/245 x - 2/175 x y - 2/245 y - 2/175 x - --- + 3/25 z , + 490 + + 256 2 2 + COEFF(-2, -2, 1) = - 1/175 x y + ---- - 2/25 z + 1/175 x - 1/245 x + 3675 + + 2 + + 1/175 y - 1/245 y + 1/25 y z + 1/25 x z - 1/25 z, COEFF(-1, -2, 1) = + + 2 211 + - 1/350 x y - 1/25 z + 1/175 y + 1/490 x + 1/25 y z + ---- + 1/350 x + 3675 + + 2 2 + - 2/25 z - 1/245 y + 1/50 x z, COEFF(0, -2, 1) = + + 2 2 2 + 1/245 x + 1/175 y - 2/25 z + 4/75 + 1/25 y z - 1/245 y - 1/25 z, + + 211 + COEFF(1, -2, 1) = 1/350 x y - 1/50 x z + 1/25 y z + ---- + 1/175 y + 3675 + + 2 2 2 + - 2/25 z - 1/25 z - 1/350 x - 1/245 y + 1/490 x , COEFF(2, -2, 1) = + + 2 2 2 + - 1/25 x z - 1/245 x - 1/25 z + 1/175 y - 1/175 x - 1/245 y - 2/25 z + + 256 211 + + 1/25 y z + 1/175 x y + ----, COEFF(-2, -1, 1) = 1/350 y + ---- + 3675 3675 + + 2 2 + - 1/245 x + 1/175 x - 2/25 z + 1/25 x z - 1/25 z - 1/350 x y + 1/50 y z + + 2 2 2 + + 1/490 y , COEFF(-1, -1, 1) = 1/490 y + 1/50 x z + 1/350 y + 1/490 x + + 2 166 + + 1/50 y z + 1/350 x - 2/25 z - 1/700 x y - 1/25 z + ----, + 3675 + + COEFF(0, -1, 1) = + + 2 151 2 2 + - 2/25 z - 1/25 z + 1/50 y z + ---- + 1/490 y + 1/245 x + 1/350 y, + 3675 + + 2 166 + COEFF(1, -1, 1) = 1/50 y z + 1/490 y - 1/25 z + ---- - 1/350 x - 1/50 x z + 3675 + + 2 2 + - 2/25 z + 1/490 x + 1/700 x y + 1/350 y, COEFF(2, -1, 1) = 1/50 y z + + 211 2 2 + + ---- - 1/245 x + 1/490 y - 1/25 x z + 1/350 x y + 1/350 y - 1/25 z + 3675 + + 2 + - 1/175 x - 2/25 z , COEFF(-2, 0, 1) = + + 2 2 2 + - 2/25 z - 1/245 x + 1/245 y + 1/25 x z + 1/175 x - 1/25 z + 4/75, + + COEFF(-1, 0, 1) = + + 2 151 2 2 + 1/350 x - 1/25 z + 1/490 x + ---- + 1/50 x z + 1/245 y - 2/25 z , + 3675 + + 2 136 2 2 + COEFF(0, 0, 1) = - 2/25 z - 1/25 z + ---- + 1/245 y + 1/245 x , + 3675 + + COEFF(1, 0, 1) = + + 2 2 2 151 + - 1/25 z + 1/245 y + 1/490 x - 2/25 z - 1/50 x z - 1/350 x + ----, + 3675 + + COEFF(2, 0, 1) = + + 2 2 2 + - 1/25 x z + 1/245 y - 1/245 x - 1/175 x - 2/25 z + 4/75 - 1/25 z, + + 2 2 + COEFF(-2, 1, 1) = - 1/25 z + 1/175 x + 1/490 y + 1/25 x z - 1/245 x + + 2 211 + - 2/25 z - 1/50 y z + 1/350 x y + ---- - 1/350 y, COEFF(-1, 1, 1) = + 3675 + + 166 2 2 + 1/350 x + ---- - 1/25 z + 1/490 x - 1/350 y - 1/50 y z + 1/490 y + 3675 + + 2 + + 1/50 x z - 2/25 z + 1/700 x y, COEFF(0, 1, 1) = + + 2 2 151 2 + - 1/25 z + 1/245 x - 2/25 z - 1/350 y + ---- - 1/50 y z + 1/490 y , + 3675 + + 166 2 2 + COEFF(1, 1, 1) = ---- - 1/50 y z - 1/50 x z + 1/490 x + 1/490 y + 3675 + + 2 + - 1/700 x y - 2/25 z - 1/25 z - 1/350 x - 1/350 y, COEFF(2, 1, 1) = + + 2 2 2 211 + - 1/25 x z - 1/50 y z - 1/245 x - 2/25 z + 1/490 y + ---- - 1/350 y + 3675 + + 256 + - 1/175 x - 1/25 z - 1/350 x y, COEFF(-2, 2, 1) = 1/175 x + ---- + 3675 + + 2 2 2 + + 1/175 x y - 1/245 x - 1/175 y + 1/25 x z - 1/245 y - 1/25 z - 2/25 z + + 211 2 + - 1/25 y z, COEFF(-1, 2, 1) = - 1/25 z + ---- - 1/245 y + 1/350 x + 3675 + + 2 2 + + 1/350 x y + 1/490 x - 1/175 y + 1/50 x z - 1/25 y z - 2/25 z , + + COEFF(0, 2, 1) = + + 2 2 2 + - 1/175 y - 1/25 z + 4/75 - 2/25 z - 1/245 y - 1/25 y z + 1/245 x , + + 2 2 + COEFF(1, 2, 1) = - 1/350 x - 2/25 z + 1/490 x - 1/25 z - 1/350 x y + + 211 2 256 + - 1/50 x z - 1/25 y z + ---- - 1/175 y - 1/245 y , COEFF(2, 2, 1) = ---- + 3675 3675 + + 2 2 + - 1/175 y - 1/25 x z - 1/245 y - 1/175 x - 1/25 y z - 1/25 z - 2/25 z + + 2 2 + - 1/175 x y - 1/245 x , COEFF(-2, -2, 2) = 1/50 z + 2/245 y - 2/175 x + + 2 529 2 + + 2/245 x - ----- + 1/50 z - 2/175 y - 1/50 x z - 1/50 y z + 2/175 x y, + 14700 + + 2 + COEFF(-1, -2, 2) = 1/50 z - 1/100 x z + 1/175 x y - 1/50 y z + 2/245 y + + 2 2 169 + - 2/175 y - 1/245 x - 1/175 x + 1/50 z - -----, COEFF(0, -2, 2) = + 14700 + + 2 2 2 + 1/50 z - 2/175 y + 1/50 z - 1/50 y z + 2/245 y - 1/300 - 2/245 x , + + 2 + COEFF(1, -2, 2) = 1/175 x + 2/245 y - 1/175 x y - 2/175 y + 1/50 z + + 2 169 2 + + 1/50 z - ----- - 1/50 y z + 1/100 x z - 1/245 x , COEFF(2, -2, 2) = + 14700 + + 2 2 529 2 + 2/245 x + 1/50 z - ----- + 2/245 y + 1/50 x z - 2/175 x y - 2/175 y + 14700 + + + 1/50 z - 1/50 y z + 2/175 x, COEFF(-2, -1, 2) = - 1/50 x z - 2/175 x + + 2 2 2 + - 1/100 y z + 1/175 x y + 1/50 z + 1/50 z - 1/175 y + 2/245 x - 1/245 y + + 169 2 2 + - -----, COEFF(-1, -1, 2) = - 1/100 x z + 1/50 z - 1/245 x - 1/175 y + 14700 + + 2 191 + - 1/100 y z - 1/245 y - 1/175 x + 1/50 z + 1/350 x y + -----, + 14700 + + COEFF(0, -1, 2) = + + 311 2 2 2 + ----- - 1/100 y z - 1/175 y - 1/245 y + 1/50 z - 2/245 x + 1/50 z, + 14700 + + 2 2 + COEFF(1, -1, 2) = 1/50 z - 1/175 y - 1/245 x - 1/245 y + 1/100 x z + + 191 2 + - 1/100 y z + 1/175 x + ----- - 1/350 x y + 1/50 z , COEFF(2, -1, 2) = + 14700 + + 169 2 2 + 2/175 x - ----- - 1/245 y + 1/50 z + 1/50 x z - 1/175 y + 1/50 z + 14700 + + 2 + - 1/100 y z + 2/245 x - 1/175 x y, COEFF(-2, 0, 2) = + + 2 2 2 + - 1/300 + 1/50 z - 2/175 x - 2/245 y + 2/245 x - 1/50 x z + 1/50 z, + + COEFF(-1, 0, 2) = + + 2 2 2 311 + - 1/100 x z + 1/50 z - 2/245 y - 1/245 x - 1/175 x + ----- + 1/50 z, + 14700 + + 431 2 2 2 + COEFF(0, 0, 2) = ----- + 1/50 z + 1/50 z - 2/245 x - 2/245 y , + 14700 + + COEFF(1, 0, 2) = + + 2 311 2 2 + 1/50 z + ----- + 1/175 x + 1/50 z - 1/245 x + 1/100 x z - 2/245 y , + 14700 + + COEFF(2, 0, 2) = + + 2 2 2 + - 1/300 - 2/245 y + 1/50 x z + 2/175 x + 1/50 z + 1/50 z + 2/245 x , + + 2 169 2 + COEFF(-2, 1, 2) = 1/50 z - ----- - 1/50 x z + 1/100 y z + 2/245 x + 14700 + + 2 + - 2/175 x - 1/245 y + 1/175 y - 1/175 x y + 1/50 z, COEFF(-1, 1, 2) = + + 2 2 2 + - 1/245 y + 1/50 z + 1/175 y + 1/50 z - 1/245 x - 1/175 x + 1/100 y z + + 191 + + ----- - 1/100 x z - 1/350 x y, COEFF(0, 1, 2) = + 14700 + + 2 311 2 2 + - 2/245 x + ----- + 1/175 y + 1/50 z - 1/245 y + 1/50 z + 1/100 y z, + 14700 + + 2 + COEFF(1, 1, 2) = 1/50 z + 1/175 y + 1/350 x y + 1/100 y z + 1/175 x + + 2 191 2 + - 1/245 x + ----- + 1/100 x z - 1/245 y + 1/50 z, COEFF(2, 1, 2) = + 14700 + + 2 2 + 1/175 y + 1/50 x z + 1/50 z + 1/100 y z + 2/175 x - 1/245 y + 1/50 z + + 169 2 2 + - ----- + 2/245 x + 1/175 x y, COEFF(-2, 2, 2) = - 2/175 x + 1/50 z + 14700 + + 2 529 2 + + 2/245 x - ----- + 2/245 y - 1/50 x z - 2/175 x y + 1/50 z + 2/175 y + 14700 + + 2 169 + + 1/50 y z, COEFF(-1, 2, 2) = 2/245 y - ----- - 1/100 x z + 1/50 z + 14700 + + 2 2 + + 1/50 z - 1/175 x + 1/50 y z + 2/175 y - 1/175 x y - 1/245 x , + + COEFF(0, 2, 2) = + + 2 2 2 + 2/245 y + 1/50 y z + 1/50 z - 2/245 x - 1/300 + 2/175 y + 1/50 z , + + 169 2 2 + COEFF(1, 2, 2) = - ----- + 1/50 z + 2/245 y + 1/175 x + 1/50 z + 2/175 y + 14700 + + 2 + + 1/100 x z + 1/50 y z - 1/245 x + 1/175 x y, COEFF(2, 2, 2) = 2/175 x y + + 529 2 2 + + 2/175 y + 1/50 z + 1/50 x z - ----- + 1/50 z + 1/50 y z + 2/245 y + 14700 + + 2 + + 2/175 x + 2/245 x ] + +> print_coeff__lc_of_data(%, "coeff_dzz_", "fp", +> "3d.coeffs/3d.cube.order4.smooth0/coeff-dzz.compute.c"); +bytes used=2509003240, alloc=15136044, time=413.61 +bytes used=2510004212, alloc=15136044, time=413.69 +bytes used=2511004404, alloc=15136044, time=413.78 +bytes used=2512004932, alloc=15136044, time=413.85 +bytes used=2513005108, alloc=15136044, time=414.03 +bytes used=2514005464, alloc=15136044, time=414.73 +bytes used=2515005636, alloc=15136044, time=415.43 +bytes used=2516006008, alloc=15136044, time=416.11 +bytes used=2517006468, alloc=15136044, time=416.80 +bytes used=2518006808, alloc=15136044, time=417.46 +bytes used=2519007112, alloc=15136044, time=417.61 +bytes used=2520007380, alloc=15136044, time=417.70 +bytes used=2521074164, alloc=15136044, time=417.80 +bytes used=2522115792, alloc=15136044, time=417.87 +bytes used=2523153204, alloc=15136044, time=417.94 +bytes used=2524165268, alloc=15136044, time=418.02 +bytes used=2525165524, alloc=15136044, time=418.11 +bytes used=2526165800, alloc=15136044, time=419.19 +bytes used=2527166008, alloc=15136044, time=419.94 +bytes used=2528166196, alloc=15136044, time=420.30 +bytes used=2529166632, alloc=15136044, time=420.39 +bytes used=2530166896, alloc=15136044, time=420.46 +bytes used=2531167464, alloc=15136044, time=420.53 +bytes used=2532167764, alloc=15136044, time=420.60 +bytes used=2533168444, alloc=15136044, time=420.67 +bytes used=2534168872, alloc=15136044, time=420.74 +bytes used=2535169320, alloc=15136044, time=420.81 +bytes used=2536169612, alloc=15136044, time=420.89 +bytes used=2537169896, alloc=15136044, time=420.96 +bytes used=2538170048, alloc=15136044, time=421.04 +bytes used=2539170388, alloc=15136044, time=421.12 +bytes used=2540171432, alloc=15136044, time=421.23 +bytes used=2541171644, alloc=15136044, time=421.34 +bytes used=2542171860, alloc=15136044, time=421.45 +bytes used=2543172124, alloc=15136044, time=421.55 +bytes used=2544183484, alloc=15136044, time=421.66 +bytes used=2545185888, alloc=15136044, time=421.76 +bytes used=2546186144, alloc=15136044, time=421.87 +bytes used=2547192392, alloc=15136044, time=421.99 +bytes used=2548192632, alloc=15136044, time=422.12 +bytes used=2549192816, alloc=15136044, time=422.24 +bytes used=2550192988, alloc=15136044, time=422.37 +bytes used=2551193472, alloc=15136044, time=422.47 +bytes used=2552193628, alloc=15136044, time=422.62 +bytes used=2553193832, alloc=15136044, time=424.44 +bytes used=2554194100, alloc=15136044, time=425.30 +bytes used=2555194284, alloc=15136044, time=425.87 +bytes used=2556194536, alloc=15136044, time=425.96 +bytes used=2557194880, alloc=15136044, time=426.04 +bytes used=2558195160, alloc=15136044, time=426.11 +bytes used=2559195456, alloc=15136044, time=426.19 +bytes used=2560195768, alloc=15136044, time=426.27 +bytes used=2561196116, alloc=15136044, time=426.34 +bytes used=2562196356, alloc=15136044, time=426.42 +bytes used=2563196568, alloc=15136044, time=426.50 +bytes used=2564196936, alloc=15136044, time=426.57 +bytes used=2565197120, alloc=15136044, time=426.65 +bytes used=2566197336, alloc=15136044, time=426.73 +bytes used=2567197628, alloc=15136044, time=426.88 +bytes used=2568202696, alloc=15136044, time=427.03 +bytes used=2569202904, alloc=15136044, time=427.16 +bytes used=2570208464, alloc=15136044, time=427.29 +bytes used=2571208624, alloc=15136044, time=427.39 +bytes used=2572208800, alloc=15136044, time=429.28 +bytes used=2573208992, alloc=15136044, time=430.45 +bytes used=2574209148, alloc=15136044, time=431.03 +bytes used=2575209404, alloc=15136044, time=431.12 +bytes used=2576209656, alloc=15136044, time=431.20 +bytes used=2577209816, alloc=15136044, time=431.27 +bytes used=2578210212, alloc=15136044, time=431.35 +bytes used=2579210640, alloc=15136044, time=431.43 +bytes used=2580210796, alloc=15136044, time=431.52 +bytes used=2581210992, alloc=15136044, time=431.77 +bytes used=2582211264, alloc=15136044, time=433.36 +bytes used=2583211432, alloc=15136044, time=434.66 +bytes used=2584211628, alloc=15136044, time=435.33 +bytes used=2585211940, alloc=15136044, time=435.42 +bytes used=2586212308, alloc=15136044, time=435.50 +bytes used=2587212700, alloc=15136044, time=435.57 +bytes used=2588213036, alloc=15136044, time=435.65 +bytes used=2589213232, alloc=15136044, time=435.72 +bytes used=2590213432, alloc=15136044, time=435.92 +bytes used=2591213648, alloc=15136044, time=436.88 +bytes used=2592213888, alloc=15136044, time=438.78 +bytes used=2593214088, alloc=15136044, time=439.48 +bytes used=2594215032, alloc=15136044, time=439.91 +bytes used=2595215392, alloc=15136044, time=439.98 +bytes used=2596215560, alloc=15136044, time=440.14 +> +######################################## +> quit +bytes used=2596825128, alloc=15136044, time=440.24 diff --git a/src/GeneralizedPolynomial-Uniform/3d.maple b/src/GeneralizedPolynomial-Uniform/3d.maple new file mode 100644 index 0000000..03d3a4c --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/3d.maple @@ -0,0 +1,626 @@ +# Maple code to compute 3-D Lagrange interpolation coefficients (orders 1-4) +# $Id$ + +################################################################################ + +# +# interpolating functions +# + +fn_3d_order1 := +proc(x,y,z) +# z^0 ----------- ++ c010*y ++ c000 + c100*x +# z^1 ----------- ++ c001*z +end proc; + +fn_3d_order2 := +proc(x,y,z) +# z^0 -------------------------- ++ c020*y^2 ++ c010*y + c110*x*y ++ c000 + c100*x + c200*x^2 +# z^1 -------------------------- ++ c011*y*z ++ c001*z + c101*x*z +# z^2 -------------------------- ++ c002*z^2 +end proc; + +fn_3d_order3 := +proc(x,y,z) +# z^0 ------------------------------------------- ++ c030*y^3 ++ c020*y^2 + c120*x*y^2 ++ c010*y + c110*x*y + c210*x^2*y ++ c000 + c100*x + c200*x^2 + c300*x^3 +# z^1 ------------------------------------------- ++ c021*y^2*z ++ c011*y *z + c111*x*y*z ++ c001 *z + c101*x *z + c201*x^2*z +# z^2 ------------------------------------------- ++ c012*y*z^2 ++ c002 *z^2 + c102*x*z^2 +# z^3 ------------------------------------------- ++ c003 *z^3 +end proc; + +fn_3d_order4 := +proc(x,y,z) +# z^0 -------------------------------------------------------- ++ c040*y^4 ++ c030*y^3 + c130*x*y^3 ++ c020*y^2 + c120*x*y^2 + c220*x^2*y^2 ++ c010*y + c110*x*y + c210*x^2*y + c310*x^3*y ++ c000 + c100*x + c200*x^2 + c300*x^3 + c400*x^4 +# z^1 ------------------------------------------- ++ c031*y^3*z ++ c021*y^2*z + c121*x*y^2*z ++ c011*y *z + c111*x*y *z + c211*x^2*y*z ++ c001 *z + c101*x *z + c201*x^2 *z + c301*x^3*z +# z^2 ------------------------------------------- ++ c022*y^2*z^2 ++ c012*y *z^2 + c112*x*y*z^2 ++ c002 *z^2 + c102*x *z^2 + c202*x^2*z^2 +# z^3 ------------------------------------------- ++ c013*y *z^3 ++ c003 *z^3 + c103*x *z^3 +# z^4 ------------------------------------------- ++ c004 *z^4 +end; + +################################################################################ + +# +# coefficients in interpolating functions +# + +coeff_list_3d_order1 := [ + # z^0 ----- + c010, + c000, c100, + # z^1 ----- + c001 + ]; +coeff_list_3d_order2 := [ + # z^0 ----------- + c020, + c010, c110, + c000, c100, c200, + # z^1 ----------- + c011, + c001, c101, + # z^2 ----------- + c002 + ]; +coeff_list_3d_order3 := [ + # z^0 ---------------- + c030, + c020, c120, + c010, c110, c210, + c000, c100, c200, c300, + # z^1 ---------------- + c021, + c011, c111, + c001, c101, c201, + # z^2 ---------------- + c012, + c002, c102, + # z^3 ---------------- + c003 + ]; +coeff_list_3d_order4 := [ + # z^0 ----------------------- + c040, + c030, c130, + c020, c120, c220, + c010, c110, c210, c310, + c000, c100, c200, c300, c400, + # z^1 ----------------------- + c031, + c021, c121, + c011, c111, c211, + c001, c101, c201, c301, + # z^2 ----------------------- + c022, + c012, c112, + c002, c102, c202, + # z^3 ----------------------- + c013, + c003, c103, + # z^4 ----------------------- + c004 + ]; + +################################################################################ + +# +# coordinates and interpolation points +# + +coord_list_3d := [x,y,z]; + +# generate points in Fortran ordering +posn_list_3d_size2 := map(ListTools[Reverse], hypercube_points([ 0, 0, 0], [+1,+1,+1])); +posn_list_3d_size3 := map(ListTools[Reverse], hypercube_points([-1,-1,-1], [+1,+1,+1])); +posn_list_3d_size4 := map(ListTools[Reverse], hypercube_points([-1,-1,-1], [+2,+2,+2])); +posn_list_3d_size5 := map(ListTools[Reverse], hypercube_points([-2,-2,-2], [+2,+2,+2])); + +################################################################################ + +# +# generic stuff for 3d, cube, size=2 +# + +data_var_list_3d_size2 := map(data_var_name, posn_list_3d_size2, "data_"); + +print_name_list_dcl(data_var_list_3d_size2, + "fp", "3d.coeffs/3d.cube.size2/data-var.dcl.c"); +print_data_var_assign(posn_list_3d_size2, + "data_", "3d.coeffs/3d.cube.size2/data-var.assign.c"); + +print_name_list_dcl(map(coeff_name, posn_list_3d_size2, "coeff_I_"), + "fp", "3d.coeffs/3d.cube.size2/coeff-I.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size2, "coeff_dx_"), + "fp", "3d.coeffs/3d.cube.size2/coeff-dx.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size2, "coeff_dy_"), + "fp", "3d.coeffs/3d.cube.size2/coeff-dy.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size2, "coeff_dz_"), + "fp", "3d.coeffs/3d.cube.size2/coeff-dz.dcl.c"); + +print_interp_cmpt__lc_of_data(posn_list_3d_size2, + "result", "coeff_I_", "data_", + "3d.coeffs/3d.cube.size2/interp-I.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size2, + "result", "coeff_dx_", "data_", + "3d.coeffs/3d.cube.size2/interp-dx.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size2, + "result", "coeff_dy_", "data_", + "3d.coeffs/3d.cube.size2/interp-dy.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size2, + "result", "coeff_dz_", "data_", + "3d.coeffs/3d.cube.size2/interp-dz.compute.c"); + +######################################## + +# +# generic stuff for 3d, cube, size=3 +# + +data_var_list_3d_size3 := map(data_var_name, posn_list_3d_size3, "data_"); + +print_name_list_dcl(data_var_list_3d_size3, + "fp", "3d.coeffs/3d.cube.size3/data-var.dcl.c"); +print_data_var_assign(posn_list_3d_size3, + "data_", "3d.coeffs/3d.cube.size3/data-var.assign.c"); + +print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_I_"), + "fp", "3d.coeffs/3d.cube.size3/coeff-I.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_dx_"), + "fp", "3d.coeffs/3d.cube.size3/coeff-dx.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_dy_"), + "fp", "3d.coeffs/3d.cube.size3/coeff-dy.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_dz_"), + "fp", "3d.coeffs/3d.cube.size3/coeff-dz.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_dxx_"), + "fp", "3d.coeffs/3d.cube.size3/coeff-dxx.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_dxy_"), + "fp", "3d.coeffs/3d.cube.size3/coeff-dxy.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_dxz_"), + "fp", "3d.coeffs/3d.cube.size3/coeff-dxz.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_dyy_"), + "fp", "3d.coeffs/3d.cube.size3/coeff-dyy.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_dyz_"), + "fp", "3d.coeffs/3d.cube.size3/coeff-dyz.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_dzz_"), + "fp", "3d.coeffs/3d.cube.size3/coeff-dzz.dcl.c"); + +print_interp_cmpt__lc_of_data(posn_list_3d_size3, + "result", "coeff_I_", "data_", + "3d.coeffs/3d.cube.size3/interp-I.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size3, + "result", "coeff_dx_", "data_", + "3d.coeffs/3d.cube.size3/interp-dx.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size3, + "result", "coeff_dy_", "data_", + "3d.coeffs/3d.cube.size3/interp-dy.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size3, + "result", "coeff_dz_", "data_", + "3d.coeffs/3d.cube.size3/interp-dz.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size3, + "result", "coeff_dxx_", "data_", + "3d.coeffs/3d.cube.size3/interp-dxx.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size3, + "result", "coeff_dxy_", "data_", + "3d.coeffs/3d.cube.size3/interp-dxy.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size3, + "result", "coeff_dxz_", "data_", + "3d.coeffs/3d.cube.size3/interp-dxz.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size3, + "result", "coeff_dyy_", "data_", + "3d.coeffs/3d.cube.size3/interp-dyy.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size3, + "result", "coeff_dyz_", "data_", + "3d.coeffs/3d.cube.size3/interp-dyz.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size3, + "result", "coeff_dzz_", "data_", + "3d.coeffs/3d.cube.size3/interp-dzz.compute.c"); + +######################################## + +# +# generic stuff for 3d, cube, size=4 +# + +data_var_list_3d_size4 := map(data_var_name, posn_list_3d_size4, "data_"); + +print_name_list_dcl(data_var_list_3d_size4, + "fp", "3d.coeffs/3d.cube.size4/data-var.dcl.c"); +print_data_var_assign(posn_list_3d_size4, + "data_", "3d.coeffs/3d.cube.size4/data-var.assign.c"); + +print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_I_"), + "fp", "3d.coeffs/3d.cube.size4/coeff-I.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_dx_"), + "fp", "3d.coeffs/3d.cube.size4/coeff-dx.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_dy_"), + "fp", "3d.coeffs/3d.cube.size4/coeff-dy.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_dz_"), + "fp", "3d.coeffs/3d.cube.size4/coeff-dz.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_dxx_"), + "fp", "3d.coeffs/3d.cube.size4/coeff-dxx.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_dxy_"), + "fp", "3d.coeffs/3d.cube.size4/coeff-dxy.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_dxz_"), + "fp", "3d.coeffs/3d.cube.size4/coeff-dxz.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_dyy_"), + "fp", "3d.coeffs/3d.cube.size4/coeff-dyy.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_dyz_"), + "fp", "3d.coeffs/3d.cube.size4/coeff-dyz.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_dzz_"), + "fp", "3d.coeffs/3d.cube.size4/coeff-dzz.dcl.c"); + +print_interp_cmpt__lc_of_data(posn_list_3d_size4, + "result", "coeff_I_", "data_", + "3d.coeffs/3d.cube.size4/interp-I.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size4, + "result", "coeff_dx_", "data_", + "3d.coeffs/3d.cube.size4/interp-dx.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size4, + "result", "coeff_dy_", "data_", + "3d.coeffs/3d.cube.size4/interp-dy.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size4, + "result", "coeff_dz_", "data_", + "3d.coeffs/3d.cube.size4/interp-dz.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size4, + "result", "coeff_dxx_", "data_", + "3d.coeffs/3d.cube.size4/interp-dxx.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size4, + "result", "coeff_dxy_", "data_", + "3d.coeffs/3d.cube.size4/interp-dxy.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size4, + "result", "coeff_dxz_", "data_", + "3d.coeffs/3d.cube.size4/interp-dxz.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size4, + "result", "coeff_dyy_", "data_", + "3d.coeffs/3d.cube.size4/interp-dyy.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size4, + "result", "coeff_dyz_", "data_", + "3d.coeffs/3d.cube.size4/interp-dyz.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size4, + "result", "coeff_dzz_", "data_", + "3d.coeffs/3d.cube.size4/interp-dzz.compute.c"); + +######################################## + +# +# generic stuff for 3d, cube, size=5 +# + +data_var_list_3d_size5 := map(data_var_name, posn_list_3d_size5, "data_"); + +print_name_list_dcl(data_var_list_3d_size5, + "fp", "3d.coeffs/3d.cube.size5/data-var.dcl.c"); +print_data_var_assign(posn_list_3d_size5, + "data_", "3d.coeffs/3d.cube.size5/data-var.assign.c"); + +print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_I_"), + "fp", "3d.coeffs/3d.cube.size5/coeff-I.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_dx_"), + "fp", "3d.coeffs/3d.cube.size5/coeff-dx.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_dy_"), + "fp", "3d.coeffs/3d.cube.size5/coeff-dy.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_dz_"), + "fp", "3d.coeffs/3d.cube.size5/coeff-dz.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_dxx_"), + "fp", "3d.coeffs/3d.cube.size5/coeff-dxx.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_dxy_"), + "fp", "3d.coeffs/3d.cube.size5/coeff-dxy.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_dxz_"), + "fp", "3d.coeffs/3d.cube.size5/coeff-dxz.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_dyy_"), + "fp", "3d.coeffs/3d.cube.size5/coeff-dyy.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_dyz_"), + "fp", "3d.coeffs/3d.cube.size5/coeff-dyz.dcl.c"); +print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_dzz_"), + "fp", "3d.coeffs/3d.cube.size5/coeff-dzz.dcl.c"); + +print_interp_cmpt__lc_of_data(posn_list_3d_size5, + "result", "coeff_I_", "data_", + "3d.coeffs/3d.cube.size5/interp-I.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size5, + "result", "coeff_dx_", "data_", + "3d.coeffs/3d.cube.size5/interp-dx.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size5, + "result", "coeff_dy_", "data_", + "3d.coeffs/3d.cube.size5/interp-dy.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size5, + "result", "coeff_dz_", "data_", + "3d.coeffs/3d.cube.size5/interp-dz.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size5, + "result", "coeff_dxx_", "data_", + "3d.coeffs/3d.cube.size5/interp-dxx.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size5, + "result", "coeff_dxy_", "data_", + "3d.coeffs/3d.cube.size5/interp-dxy.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size5, + "result", "coeff_dxz_", "data_", + "3d.coeffs/3d.cube.size5/interp-dxz.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size5, + "result", "coeff_dyy_", "data_", + "3d.coeffs/3d.cube.size5/interp-dyy.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size5, + "result", "coeff_dyz_", "data_", + "3d.coeffs/3d.cube.size5/interp-dyz.compute.c"); +print_interp_cmpt__lc_of_data(posn_list_3d_size5, + "result", "coeff_dzz_", "data_", + "3d.coeffs/3d.cube.size5/interp-dzz.compute.c"); + + +################################################################################ + +# +# 3d, cube, order=1, smoothing=0 (size=2) +# + +# interpolating polynomial +interp_3d_cube_order1_smooth0 + := polynomial_interpolant(fn_3d_order1, coeff_list_3d_order1, + coord_list_3d, posn_list_3d_size2); + +# I +coeff_as_lc_of_data(%, posn_list_3d_size2); +print_coeff__lc_of_data(%, "coeff_I_", "fp", + "3d.coeffs/3d.cube.order1.smooth0/coeff-I.compute.c"); + +# d/dx +simplify( diff(interp_3d_cube_order1_smooth0,x) ); +coeff_as_lc_of_data(%, posn_list_3d_size2); +print_coeff__lc_of_data(%, "coeff_dx_", "fp", + "3d.coeffs/3d.cube.order1.smooth0/coeff-dx.compute.c"); + +# d/dy +simplify( diff(interp_3d_cube_order1_smooth0,y) ); +coeff_as_lc_of_data(%, posn_list_3d_size2); +print_coeff__lc_of_data(%, "coeff_dy_", "fp", + "3d.coeffs/3d.cube.order1.smooth0/coeff-dy.compute.c"); + +# d/dz +simplify( diff(interp_3d_cube_order1_smooth0,z) ); +coeff_as_lc_of_data(%, posn_list_3d_size2); +print_coeff__lc_of_data(%, "coeff_dz_", "fp", + "3d.coeffs/3d.cube.order1.smooth0/coeff-dz.compute.c"); + +######################################## + +# +# 3d, cube, order=2, smoothing=0 (size=3) +# + +# interpolating polynomial +interp_3d_cube_order2_smooth0 + := polynomial_interpolant(fn_3d_order2, coeff_list_3d_order2, + coord_list_3d, posn_list_3d_size3); + +# I +coeff_as_lc_of_data(%, posn_list_3d_size3); +print_coeff__lc_of_data(%, "coeff_I_", "fp", + "3d.coeffs/3d.cube.order2.smooth0/coeff-I.compute.c"); + +# d/dx +simplify( diff(interp_3d_cube_order2_smooth0,x) ); +coeff_as_lc_of_data(%, posn_list_3d_size3); +print_coeff__lc_of_data(%, "coeff_dx_", "fp", + "3d.coeffs/3d.cube.order2.smooth0/coeff-dx.compute.c"); + +# d/dy +simplify( diff(interp_3d_cube_order2_smooth0,y) ); +coeff_as_lc_of_data(%, posn_list_3d_size3); +print_coeff__lc_of_data(%, "coeff_dy_", "fp", + "3d.coeffs/3d.cube.order2.smooth0/coeff-dy.compute.c"); + +# d/dz +simplify( diff(interp_3d_cube_order2_smooth0,z) ); +coeff_as_lc_of_data(%, posn_list_3d_size3); +print_coeff__lc_of_data(%, "coeff_dz_", "fp", + "3d.coeffs/3d.cube.order2.smooth0/coeff-dz.compute.c"); + +# d^2/dx^2 +simplify( diff(interp_3d_cube_order2_smooth0,x,x) ); +coeff_as_lc_of_data(%, posn_list_3d_size3); +print_coeff__lc_of_data(%, "coeff_dxx_", "fp", + "3d.coeffs/3d.cube.order2.smooth0/coeff-dxx.compute.c"); + +# d^2/dxdy +simplify( diff(interp_3d_cube_order2_smooth0,x,y) ); +coeff_as_lc_of_data(%, posn_list_3d_size3); +print_coeff__lc_of_data(%, "coeff_dxy_", "fp", + "3d.coeffs/3d.cube.order2.smooth0/coeff-dxy.compute.c"); + +# d^2/dxdz +simplify( diff(interp_3d_cube_order2_smooth0,x,z) ); +coeff_as_lc_of_data(%, posn_list_3d_size3); +print_coeff__lc_of_data(%, "coeff_dxz_", "fp", + "3d.coeffs/3d.cube.order2.smooth0/coeff-dxz.compute.c"); + +# d^2/dy^2 +simplify( diff(interp_3d_cube_order2_smooth0,y,y) ); +coeff_as_lc_of_data(%, posn_list_3d_size3); +print_coeff__lc_of_data(%, "coeff_dyy_", "fp", + "3d.coeffs/3d.cube.order2.smooth0/coeff-dyy.compute.c"); + +# d^2/dydz +simplify( diff(interp_3d_cube_order2_smooth0,y,z) ); +coeff_as_lc_of_data(%, posn_list_3d_size3); +print_coeff__lc_of_data(%, "coeff_dyz_", "fp", + "3d.coeffs/3d.cube.order2.smooth0/coeff-dyz.compute.c"); + +# d^2/dz^2 +simplify( diff(interp_3d_cube_order2_smooth0,z,z) ); +coeff_as_lc_of_data(%, posn_list_3d_size3); +print_coeff__lc_of_data(%, "coeff_dzz_", "fp", + "3d.coeffs/3d.cube.order2.smooth0/coeff-dzz.compute.c"); + +######################################## + +# +# 3d, cube, order=3, smoothing=0 (size=4) +# + +# interpolating polynomial +interp_3d_cube_order3_smooth0 + := polynomial_interpolant(fn_3d_order3, coeff_list_3d_order3, + coord_list_3d, posn_list_3d_size4); + +# I +coeff_as_lc_of_data(%, posn_list_3d_size4); +print_coeff__lc_of_data(%, "coeff_I_", "fp", + "3d.coeffs/3d.cube.order3.smooth0/coeff-I.compute.c"); + +# d/dx +simplify( diff(interp_3d_cube_order3_smooth0,x) ); +coeff_as_lc_of_data(%, posn_list_3d_size4); +print_coeff__lc_of_data(%, "coeff_dx_", "fp", + "3d.coeffs/3d.cube.order3.smooth0/coeff-dx.compute.c"); + +# d/dy +simplify( diff(interp_3d_cube_order3_smooth0,y) ); +coeff_as_lc_of_data(%, posn_list_3d_size4); +print_coeff__lc_of_data(%, "coeff_dy_", "fp", + "3d.coeffs/3d.cube.order3.smooth0/coeff-dy.compute.c"); + +# d/dz +simplify( diff(interp_3d_cube_order3_smooth0,z) ); +coeff_as_lc_of_data(%, posn_list_3d_size4); +print_coeff__lc_of_data(%, "coeff_dz_", "fp", + "3d.coeffs/3d.cube.order3.smooth0/coeff-dz.compute.c"); + +# d^2/dx^2 +simplify( diff(interp_3d_cube_order3_smooth0,x,x) ); +coeff_as_lc_of_data(%, posn_list_3d_size4); +print_coeff__lc_of_data(%, "coeff_dxx_", "fp", + "3d.coeffs/3d.cube.order3.smooth0/coeff-dxx.compute.c"); + +# d^2/dxdy +simplify( diff(interp_3d_cube_order3_smooth0,x,y) ); +coeff_as_lc_of_data(%, posn_list_3d_size4); +print_coeff__lc_of_data(%, "coeff_dxy_", "fp", + "3d.coeffs/3d.cube.order3.smooth0/coeff-dxy.compute.c"); + +# d^2/dxdz +simplify( diff(interp_3d_cube_order3_smooth0,x,z) ); +coeff_as_lc_of_data(%, posn_list_3d_size4); +print_coeff__lc_of_data(%, "coeff_dxz_", "fp", + "3d.coeffs/3d.cube.order3.smooth0/coeff-dxz.compute.c"); + +# d^2/dy^2 +simplify( diff(interp_3d_cube_order3_smooth0,y,y) ); +coeff_as_lc_of_data(%, posn_list_3d_size4); +print_coeff__lc_of_data(%, "coeff_dyy_", "fp", + "3d.coeffs/3d.cube.order3.smooth0/coeff-dyy.compute.c"); + +# d^2/dydz +simplify( diff(interp_3d_cube_order3_smooth0,y,z) ); +coeff_as_lc_of_data(%, posn_list_3d_size4); +print_coeff__lc_of_data(%, "coeff_dyz_", "fp", + "3d.coeffs/3d.cube.order3.smooth0/coeff-dyz.compute.c"); + +# d^2/dz^2 +simplify( diff(interp_3d_cube_order3_smooth0,z,z) ); +coeff_as_lc_of_data(%, posn_list_3d_size4); +print_coeff__lc_of_data(%, "coeff_dzz_", "fp", + "3d.coeffs/3d.cube.order3.smooth0/coeff-dzz.compute.c"); + +######################################## + +# +# 3d, cube, order=4, smoothing=0 (size=5) +# + +# interpolating polynomial +interp_3d_cube_order4_smooth0 + := polynomial_interpolant(fn_3d_order4, coeff_list_3d_order4, + coord_list_3d, posn_list_3d_size5); + +# I +coeff_as_lc_of_data(%, posn_list_3d_size5); +print_coeff__lc_of_data(%, "coeff_I_", "fp", + "3d.coeffs/3d.cube.order4.smooth0/coeff-I.compute.c"); + +# d/dx +simplify( diff(interp_3d_cube_order4_smooth0,x) ); +coeff_as_lc_of_data(%, posn_list_3d_size5); +print_coeff__lc_of_data(%, "coeff_dx_", "fp", + "3d.coeffs/3d.cube.order4.smooth0/coeff-dx.compute.c"); + +# d/dy +simplify( diff(interp_3d_cube_order4_smooth0,y) ); +coeff_as_lc_of_data(%, posn_list_3d_size5); +print_coeff__lc_of_data(%, "coeff_dy_", "fp", + "3d.coeffs/3d.cube.order4.smooth0/coeff-dy.compute.c"); + +# d/dz +simplify( diff(interp_3d_cube_order4_smooth0,z) ); +coeff_as_lc_of_data(%, posn_list_3d_size5); +print_coeff__lc_of_data(%, "coeff_dz_", "fp", + "3d.coeffs/3d.cube.order4.smooth0/coeff-dz.compute.c"); + +# d^2/dx^2 +simplify( diff(interp_3d_cube_order4_smooth0,x,x) ); +coeff_as_lc_of_data(%, posn_list_3d_size5); +print_coeff__lc_of_data(%, "coeff_dxx_", "fp", + "3d.coeffs/3d.cube.order4.smooth0/coeff-dxx.compute.c"); + +# d^2/dxdy +simplify( diff(interp_3d_cube_order4_smooth0,x,y) ); +coeff_as_lc_of_data(%, posn_list_3d_size5); +print_coeff__lc_of_data(%, "coeff_dxy_", "fp", + "3d.coeffs/3d.cube.order4.smooth0/coeff-dxy.compute.c"); + +# d^2/dxdz +simplify( diff(interp_3d_cube_order4_smooth0,x,z) ); +coeff_as_lc_of_data(%, posn_list_3d_size5); +print_coeff__lc_of_data(%, "coeff_dxz_", "fp", + "3d.coeffs/3d.cube.order4.smooth0/coeff-dxz.compute.c"); + +# d^2/dy^2 +simplify( diff(interp_3d_cube_order4_smooth0,y,y) ); +coeff_as_lc_of_data(%, posn_list_3d_size5); +print_coeff__lc_of_data(%, "coeff_dyy_", "fp", + "3d.coeffs/3d.cube.order4.smooth0/coeff-dyy.compute.c"); + +# d^2/dydz +simplify( diff(interp_3d_cube_order4_smooth0,y,z) ); +coeff_as_lc_of_data(%, posn_list_3d_size5); +print_coeff__lc_of_data(%, "coeff_dyz_", "fp", + "3d.coeffs/3d.cube.order4.smooth0/coeff-dyz.compute.c"); + +# d^2/dz^2 +simplify( diff(interp_3d_cube_order4_smooth0,z,z) ); +coeff_as_lc_of_data(%, posn_list_3d_size5); +print_coeff__lc_of_data(%, "coeff_dzz_", "fp", + "3d.coeffs/3d.cube.order4.smooth0/coeff-dzz.compute.c"); + +######################################## diff --git a/src/GeneralizedPolynomial-Uniform/COPYING b/src/GeneralizedPolynomial-Uniform/COPYING new file mode 100644 index 0000000..a43ea21 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/COPYING @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) 19yy <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/src/GeneralizedPolynomial-Uniform/COPYRIGHT b/src/GeneralizedPolynomial-Uniform/COPYRIGHT new file mode 100644 index 0000000..7253669 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/COPYRIGHT @@ -0,0 +1,17 @@ +Copyright (C) 2001-2002, Jonathan Thornburg <jthorn@aei.mpg.de> +$Header$ + +This interpolator (the code in this directory and its subdirectories) +is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. diff --git a/src/GeneralizedPolynomial-Uniform/InterpLocalUniform.c b/src/GeneralizedPolynomial-Uniform/InterpLocalUniform.c new file mode 100644 index 0000000..c120298 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/InterpLocalUniform.c @@ -0,0 +1,879 @@ +/*@@ + @file InterpLocalUniform.c + @date 22 Oct 2001 + @author Jonathan Thornburg <jthorn@aei.mpg.de> + @desc + Generalized Interpolation of processor-local arrays. + + This code interpolates a set of functions defined on a + uniform N-dimensional grid, to a set of interpolation points. + It can also do differentiation and/or smoothing in the process + of the interpolation. + + Conceptually, the generalized interpolation is done by + least-squares fitting a polynomial of the specified order + to the data values, applying the differentiation (if any) + to it, then evaluating the result at the interpolation points. + Since this ultimately yields _some_ linear combination of the + data values, so we precompute the coefficients for efficiency. + This is done with separate Maple-generated formulas for each + combination of number of dimensions, order, and differentiation + operator. + @enddesc + @version $Id$ + @@*/ + +#include <stdio.h> +#include <stdlib.h> /* malloc(), free() */ +#include <string.h> + +#include "cctk.h" +#include "util_ErrorCodes.h" +#include "util_Table.h" +#include "InterpLocalUniform.h" + +#include "all-prototypes.h" + +/* the rcs ID and its dummy function to use it */ +static const char *rcsid = "$Header$"; +CCTK_FILEVERSION(CactusBase_LocalInterp_src_GeneralizedPolynomialUniform_InterpLocalUniform_c) + +#ifdef PUGHINTERP_VERBOSE_DEBUG + /* if this is >= 0, we print verbose debugging information at this point */ + int LocalInterp_verbose_debug_n = -1; +#endif + +/******************************************************************************/ +/******************************************************************************/ +/******************************************************************************/ + +/*@@ + @routine LocalInterp_InterpLocalUniform + @date 22 Oct 2001 + @author Jonathan Thornburg <jthorn@aei.mpg.de> + @desc + This function is the top-level driver for + LocalInterp::CCTK_InterpLocalUniform(). + + It interpolates a set of functions defined on a uniform + N-dimensional tensor-product grid, to a set of interpolation points. + It can also do differentiation and/or smoothing in the process + of the interpolation. + + This function is just a driver: it validates arguments, + extracts optional arguments from the parameter table, + then decodes (N_dims, molecule_family, order, smoothing) + and calls the appropriate subfunction. + @enddesc + + ***** misc arguments ***** + + @var N_dims + @vdesc dimensionality of the interpolation + @vtype int N_dims (must be >= 1) + @endvar + + @var param_table_handle + @vdesc handle to a key-value table giving additonal parameters + for the interpolation + @vtype int param_table_handle (must be >= 0) + @endvar + + ***** arguments specifying the coordinate system ***** + + @var coord_origin + @vdesc (pointer to) array[N_dims] of values giving the + x,y,z,... coordinates which correspond to the + integer input-array subscripts (0,0,0,...,0) + (note there is no implication here that such a + grid point need actually exist; the arrays just + give the coordinates it would have if it did exist) + @vtype const CCTK_REAL coord_origin[N_dims] + @endvar + + @var coord_delta + @vdesc (pointer to) array[N_dims] of values giving the + coordinate spacing of the grid + @vtype const CCTK_REAL coord_delta[N_dims] + @endvar + + ***** arguments specifying the interpolation points ***** + + @var N_interp_points + @vdesc number of interpolation points + @vtype int N_interp_points (must be >= 0) + @endvar + + @var interp_coords_type_code + @vdesc one of the CCTK_VARIABLE_* codes giving the data + type of the arrays pointed to by interp_coords[] + @vtype int + @endvar + + @var interp_coords + @vdesc (pointer to) array[N_dims] of pointers + to arrays[N_interp_points] giving + x,y,z,... coordinates of interpolation points + @vtype const void *const interp_coords[N_dims] + @endvar + + ***** arguments specifying the inputs (the data to be interpolated) ***** + + @var N_input_arrays + @vdesc number of arrays input to the interpolation + @vtype int N_input_arrays (must be >= 0) + @endvar + + @var input_array_dims + @vdesc dimensions of the input arrays: unless overridden by + entries in the parameter table, all input arrays are + taken to have these dimensions, with [0] the most contiguous + axis and [N_dims-1] the least contiguous axis, and + array subscripts in the range 0 <= subscript < dims[axis] + @vtype const int input_array_dims[N_dims] + @endvar + + @var input_array_type_codes + @vdesc (pointer to) array of CCTK_VARIABLE_* codes + giving the data types of the input arrays + @vtype const int input_array_type_codes[N_input_arrays] + @endvar + + @var input_arrays + @vdesc (pointer to) array[N_input_arrays] of pointers to input arrays + @vtype const void *const input_arrays[N_input_arrays] + @endvar + + ***** arguments specifying the outputs (the interpolation results) ***** + + @var N_output_arrays + @vdesc number of arrays output from the interpolation + @vtype int N_output_arrays (must be >= 0) + @endvar + + @var output_array_type_codes + @vdesc (pointer to) array of CCTK_VARIABLE_* codes + giving the data types of the output arrays + @vtype const int output_array_type_codes[N_output_arrays] + @endvar + + @var output_arrays + @vdesc (pointer to) array[N_output_arrays] of pointers to output arrays + @vtype void *const output_arrays[N_output_arrays] + @endvar + + ***** arguments passed in the parameter table ***** + + @var order + @vdesc Sets the order of the interpolating polynomial + (1=linear, 2=quadratic, 3=cubic, ...). + This table entry is mandatory; all others are optional. + @vtype CCTK_INT order + @endvar + + @var out_of_range_tolerance + @vdesc Specifies how out-of-range interpolation points should + be handled: + If out_of_range_tolerance[axis] >= 0.0, + then an interpolation point is considered to be + "out of range" if and only if the interpolation + point is > out_of_range_tolerance[axis] + * coord_delta[axis] + outside the grid in any coordinate. + If out_of_range_tolerance[axis] == -1.0, + then an interpolation point is considered to be + "out of range" if and only if a centered molecule + (or more generally, a molecule whose centering + is chosen pretending that the grid is of infinite + extent), would require data from outside the grid. + Other values of out_of_range_tolerance[axis] are illegal. + @vtype const CCTK_REAL out_of_range_tolerance[N_dims] + @endvar + + @var + @vdesc If an out-of-range point is detected, this table entry + is set to its pt value. + @vtype CCTK_INT out_of_range_pt + @vio out + @endvar + + @var + @vdesc If an out-of-range point is detected, this table entry + is set to the axis value which is out of range. + @vtype CCTK_INT out_of_range_axis + @vio out + @endvar + + @var + @vdesc If an out-of-range point is detected, this table entry + is set to -1/+1 if the point is out of range on the min/max + end of the axis. + @vtype CCTK_INT out_of_range_end + @vio out + @endvar + + @var input_array_offsets + @vdesc (pointer to) array giving an "offset" for each input array, + to use in the subscripting computation: for input array + number a, this computation is + data_pointer[offset + i*istride + j*jstride + k*kstride + ...] + where + data_pointer = input_arrays[a] + offset = input_array_offsets[a] + (istride,jstride,kstride,...) = input_array_stride[] + and where (i,j,k,...) run from input_array_min_subscripts[] + to input_array_max_subscripts[] inclusive. + @vtype const CCTK_INT input_array_offsets[N_input_arrays] + @endvar + + @var input_array_strides + @vdesc (pointer to) array giving strides of input arrays + (this is shared by all input arrays) + @vtype const CCTK_INT input_array_strides[N_dims] + @endvar + + @var input_array_min_subscripts + @vdesc (pointer to) array giving minimum subscripts of input arrays + (this is shared by all input arrays) + @vtype const CCTK_INT input_array_min_subscripts[N_dims] + @endvar + + @var input_array_max_subscripts + @vdesc (pointer to) array giving maximum subscripts of input arrays + (this is shared by all input arrays) + @vtype const CCTK_INT input_array_max_subscripts[N_dims] + @endvar + + @var operand_indices + @vdesc (pointer to) array of integer operand indices specifying + which input array (0-origin indexing into input_arrays[]) + is to be generalized-interpolated to produce this output + @vtype const CCTK_INT operand_indices[N_output_arrays] + @endvar + + @var operation_codes + @vdesc (pointer to) array of integer operation codes specifying + what (if any) derivatives are to be takin in the interpolation + process: 0=no derivative, 1=d/dx, 2=d/dy, 3=d/dz (for coords + (x,y,z)), 11=d^2/dx^2, 12=21=d^2/dxdy, etc etc. + @vtype const CCTK_INT operation_codes[N_output_arrays] + @endvar + + ***** return result ***** + + @returntype int + @returndesc 0 successful interpolation + UTIL_ERROR_BAD_INPUT one of the input arguments is invalid + UTIL_ERROR_NO_MEMORY unable to malloc() temporary memory + UTIL_ERROR_BAD_HANDLE invalid parameter table handle + CCTK_ERROR_INTERP_POINT_X_RANGE + interpolation point is out of range + (in this case additional information + is reported through the parameter table) + or any error code returned by one of the Util_TableGet*() + functions called by this function + @endreturndesc + @@*/ +int LocalInterp_InterpLocalUniform(int N_dims, + int param_table_handle, + /***** coordinate system *****/ + const CCTK_REAL coord_origin[], + const CCTK_REAL coord_delta[], + /***** interpolation points *****/ + int N_interp_points, + int interp_coords_type_code, + const void *const interp_coords[], + /***** input arrays *****/ + int N_input_arrays, + const CCTK_INT input_array_dims[], + const CCTK_INT input_array_type_codes[], + const void *const input_arrays[], + /***** output arrays *****/ + int N_output_arrays, + const CCTK_INT output_array_type_codes[], + void *const output_arrays[]) +{ +int status; + +/******************************************************************************/ + +/* + * basic sanity checks on input parameters + */ +if ( (N_dims <= 0) + || (param_table_handle < 0) + || (coord_origin == NULL) + || (coord_delta == NULL) + || (N_interp_points < 0) + || ((N_interp_points > 0) && (interp_coords == NULL)) + || (N_input_arrays < 0) + /* no check here on input_array_dims, */ + /* since it may be NULL if overridden by parameter-table stuff */ + || ((N_input_arrays > 0) && (input_array_type_codes == NULL)) + || ((N_input_arrays > 0) && (input_arrays == NULL)) + || (N_output_arrays < 0) + || ((N_output_arrays > 0) && (output_array_type_codes == NULL)) + || ((N_output_arrays > 0) && (output_arrays == NULL)) ) + then { + CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, +"InterpLocalUniform(): invalid arguments\n" +" (N_dims <= 0, param_table_handle < 0, N_input_arrays < 0,\n" +" N_output_arrays < 0, and/or NULL pointers-that-shouldn't-be-NULL)!"); + return UTIL_ERROR_BAD_INPUT; /*** ERROR RETURN ***/ + } + +if (N_dims > MAX_N_DIMS) + then { + CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, +"InterpLocalUniform(): N_dims=%d > MAX_N_DIMS=%d!", + N_dims, MAX_N_DIMS); + return UTIL_ERROR_BAD_INPUT; /*** ERROR RETURN ***/ + } + +/******************************************************************************/ + +/* + * interpolation order + */ + { +CCTK_INT order; +status = Util_TableGetInt(param_table_handle, &order, "order"); +if (status == 1) + then { } /* ok ==> no-op here */ +else { + /* n.b. order is a mandatory parameter (no default)!*/ + CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, +"InterpLocalUniform(): missing or bad table entry for \"order\" parameter!"); + return status; /*** ERROR RETURN ***/ + } +if ((order < 1) || (order > MAX_ORDER)) + then return UTIL_ERROR_BAD_INPUT; /*** ERROR RETURN ***/ + + +/* + * out-of-range interpolation-point handling + */ + { +CCTK_REAL out_of_range_tolerance[MAX_N_DIMS]; +status = Util_TableGetRealArray(param_table_handle, + N_dims, out_of_range_tolerance, + "out_of_range_tolerance"); +if (status == UTIL_ERROR_TABLE_NO_SUCH_KEY) + then { + /* default */ + int axis; + for (axis = 0 ; axis < N_dims ; ++axis) + { + out_of_range_tolerance[axis] = OUT_OF_RANGE_TOLERANCE_DEFAULT; + } + } +else if (status == N_dims) + then { + /* check that all values are valid */ + int axis; + for (axis = 0 ; axis < N_dims ; ++axis) + { + if (! ( (out_of_range_tolerance[axis] >= 0.0) + || (out_of_range_tolerance[axis] == -1.0) ) ) + then { + CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, + "InterpLocalUniform(): invalid table entry\n" + " out_of_range_tolerance[%d] = %g!" + , + axis, out_of_range_tolerance[axis]); + return UTIL_ERROR_BAD_INPUT; /*** ERROR RETURN ***/ + } + } + } +else { + CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, +"InterpLocalUniform(): bad table entry\n" +" for \"out_of_range_tolerance\" parameter!"); + return status; /*** ERROR RETURN ***/ + } + +/******************************************************************************/ + +/* + * molecule family + */ + { +#define MOLECULE_FAMILY_BUFSIZ (MAX_MOLECULE_FAMILY_STRLEN+1) +char molecule_family_string[MOLECULE_FAMILY_BUFSIZ]; +enum molecule_family molecule_family; +status = Util_TableGetString(param_table_handle, + MOLECULE_FAMILY_BUFSIZ, molecule_family_string, + "molecule_family"); +if (status == UTIL_ERROR_TABLE_NO_SUCH_KEY) + then { + /* default */ + /* (need enum for main code, but also string for error messages) */ + strcpy(molecule_family_string, "cube"); + molecule_family = molecule_family_cube; + } +else if (status < 0) + then { + CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, +"InterpLocalUniform(): bad table entry for \"molecule_family\" parameter!"); + return status; /*** ERROR RETURN ***/ + } +else { + /* decode molecule family string */ + if (strcmp(molecule_family_string, "cube") == 0) + then molecule_family = molecule_family_cube; + else { + CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, +"InterpLocalUniform(): unknown molecule_family=\"%s\"!", + molecule_family_string); + return UTIL_ERROR_BAD_INPUT; /*** ERROR RETURN ***/ + } + } + +/* + * smoothing + */ + { +CCTK_INT smoothing; +status = Util_TableGetInt(param_table_handle, &smoothing, "smoothing"); +if (status == UTIL_ERROR_TABLE_NO_SUCH_KEY) + then smoothing = 0; /* default */ +else if (status == 1) + then { } /* ok ==> no-op here */ +else { + CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, +"InterpLocalUniform(): bad table entry for \"smoothing\" parameter!"); + return status; /*** ERROR RETURN ***/ + } +if ((smoothing < 0) || (smoothing > MAX_SMOOTHING)) + then return UTIL_ERROR_BAD_INPUT; /*** ERROR RETURN ***/ + +/******************************************************************************/ + +/* + * input array offsets + */ + { +CCTK_INT *const input_array_offsets + = malloc(N_input_arrays * sizeof(CCTK_INT)); +if (input_array_offsets == NULL) + then return UTIL_ERROR_NO_MEMORY; /*** ERROR RETURN ***/ +status = Util_TableGetIntArray(param_table_handle, + N_input_arrays, input_array_offsets, + "input_array_offsets"); +if (status == UTIL_ERROR_TABLE_NO_SUCH_KEY) + then { + /* default offset = 0 along each axis */ + LocalInterp_zero_int_array(N_input_arrays, input_array_offsets); + } +else if (status == N_input_arrays) + then { } /* ok ==> no-op here */ +else { + free(input_array_offsets); + CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, +"InterpLocalUniform(): bad table entry for \"input_array_offsets\" parameter!"); + return status; /*** ERROR RETURN ***/ + } + +/* + * input array strides + */ + { +CCTK_INT input_array_strides[MAX_N_DIMS]; +status = Util_TableGetIntArray(param_table_handle, + N_dims, input_array_strides, + "input_array_strides"); +if (status == UTIL_ERROR_TABLE_NO_SUCH_KEY) + then { + /* default stride = Fortran storage order, */ + /* determined from input_array_dims[] */ + if (input_array_dims == NULL) + then { + free(input_array_offsets); + return UTIL_ERROR_BAD_INPUT; /*** ERROR RETURN ***/ + } + { + int stride = 1; + int axis; + for (axis = 0 ; axis < N_dims ; ++axis) + { + input_array_strides[axis] = stride; + stride *= input_array_dims[axis]; + } + } + } +else if (status == N_dims) + then { } /* ok ==> no-op here */ +else { + free(input_array_offsets); + CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, +"InterpLocalUniform(): bad table entry for \"input_array_offsets\" parameter!"); + return status; /*** ERROR RETURN ***/ + } + +/* + * input array min/max subscripts + */ + { +CCTK_INT input_array_min_subscripts[MAX_N_DIMS]; +status = Util_TableGetIntArray(param_table_handle, + N_dims, input_array_min_subscripts, + "input_array_min_subscripts"); +if (status == UTIL_ERROR_TABLE_NO_SUCH_KEY) + then { + /* default min subscript = 0 along each axis */ + LocalInterp_zero_int_array(N_dims, input_array_min_subscripts); + } +else if (status == N_dims) + then { } /* ok ==> no-op here */ +else { + free(input_array_offsets); + CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, +"InterpLocalUniform(): bad table entry for \"input_array_offsets\" parameter!"); + return status; /*** ERROR RETURN ***/ + } + { +CCTK_INT input_array_max_subscripts[MAX_N_DIMS]; +status = Util_TableGetIntArray(param_table_handle, + N_dims, input_array_max_subscripts, + "input_array_max_subscripts"); +if (status == UTIL_ERROR_TABLE_NO_SUCH_KEY) + then { + /* default max subscript = input_array_dims[]-1 along each axis */ + if (input_array_dims == NULL) + then { + free(input_array_offsets); + return UTIL_ERROR_BAD_INPUT; /*** ERROR RETURN ***/ + } + { + int axis; + for (axis = 0 ; axis < N_dims ; ++axis) + { + input_array_max_subscripts[axis] = input_array_dims[axis] - 1; + } + } + } +else if (status == N_dims) + then { } /* ok ==> no-op here */ +else { + free(input_array_offsets); + CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, +"InterpLocalUniform(): bad table entry for \"input_array_offsets\" parameter!"); + return status; /*** ERROR RETURN ***/ + } + +/******************************************************************************/ + +/* + * operand indices + */ + { +CCTK_INT *const operand_indices + = malloc(N_output_arrays * sizeof(CCTK_INT)); +if (operand_indices == NULL) + then { + free(input_array_offsets); + return UTIL_ERROR_NO_MEMORY; /*** ERROR RETURN ***/ + } +status = Util_TableGetIntArray(param_table_handle, + N_output_arrays, operand_indices, + "operand_indices"); +if (status == UTIL_ERROR_TABLE_NO_SUCH_KEY) + then { + /* default operand = use each input exactly once */ + /* but this only makes since if N_input_arrays == N_output_arrays */ + if (N_input_arrays != N_input_arrays) + then { + free(operand_indices); + free(input_array_offsets); + CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, +"\n" +" InterpLocalUniform(): can't default \"operand_indices\"\n" +" with N_input_arrays=%d != N_output_arrays=%d!" +, + N_input_arrays, N_output_arrays); + return UTIL_ERROR_BAD_INPUT; /*** ERROR RETURN ***/ + } + { + int output; + for (output = 0 ; output < N_output_arrays ; ++output) + { + operand_indices[output] = output; + } + } + } +else if (status == N_output_arrays) + then { + /* check that all operands are within range */ + int output; + for (output = 0 ; output < N_output_arrays ; ++output) + { + if ( (operand_indices[output] < 0) + || (operand_indices[output] >= N_input_arrays) ) + then { + free(operand_indices); + free(input_array_offsets); + CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, +"\n" +" InterpLocalUniform(): operand_indices[%d]=%d specifies\n" +" nonexistent input array!\n" +" (valid range is [0,N_input_arrays=%d))" +, + output, operand_indices[output], + N_input_arrays); + return UTIL_ERROR_BAD_INPUT; /*** ERROR RETURN ***/ + } + } + } +else { + free(operand_indices); + free(input_array_offsets); + CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, +"InterpLocalUniform(): bad table entry for \"operand_indices\" parameter!"); + return status; /*** ERROR RETURN ***/ + } + +/* + * operation_codes + */ + { +CCTK_INT *const operation_codes + = malloc(N_output_arrays * sizeof(CCTK_INT)); +if (operation_codes == NULL) + then { + free(operand_indices); + free(input_array_offsets); + return UTIL_ERROR_NO_MEMORY; /*** ERROR RETURN ***/ + } +status = Util_TableGetIntArray(param_table_handle, + N_output_arrays, operation_codes, + "operation_codes"); +if (status == UTIL_ERROR_TABLE_NO_SUCH_KEY) + then { + /* default operation_codes = all 0 */ + /* but this only makes since if N_input_arrays == N_output_arrays */ + if (N_input_arrays != N_input_arrays) + then { + free(operation_codes); + free(operand_indices); + free(input_array_offsets); + CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, +"InterpLocalUniform(): can't default \"operation_codes\"\n" +" with N_input_arrays=%d != N_output_arrays=%d!" +, + N_input_arrays, N_output_arrays); + return UTIL_ERROR_BAD_INPUT; /*** ERROR RETURN ***/ + } + LocalInterp_zero_int_array(N_output_arrays, operation_codes); + } +else if (status == N_output_arrays) + then { } /* ok ==> no-op here */ +else { + free(operation_codes); + free(operand_indices); + free(input_array_offsets); + CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, +"InterpLocalUniform(): bad table entry for \"operation_codes\" parameter!"); + return status; /*** ERROR RETURN ***/ + } + +/******************************************************************************/ + +/* + * decode N_dims, molecule_family, order, and smoothing, + * and call the appropriate subfunction to do the actual interpolation + */ + { +typedef int (*p_interp_fn_t)(/***** coordinate system *****/ + const CCTK_REAL coord_origin[], + const CCTK_REAL coord_delta[], + /***** interpolation points *****/ + int N_interp_points, + int interp_coords_type_code, + const void *const interp_coords[], + const CCTK_REAL out_of_range_tolerance[], + /***** input arrays *****/ + int N_input_arrays, + const CCTK_INT input_array_offsets[], + const CCTK_INT input_array_strides[], + 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[], + /***** output arrays *****/ + int N_output_arrays, + const CCTK_INT output_array_type_codes[], + void *const output_arrays[], + /***** operation info */ + const CCTK_INT operand_indices[], + const CCTK_INT operation_codes[], + /***** error-reporting *****/ + int* error_pt, int* error_axis, int* error_end); +#define NULL_INTERP_FN_PTR ((p_interp_fn_t) NULL) + +/* + * For each axis of this array which is marked below with a "see above" + * comment, the array size is declared as X+1, so the legal subscripts + * are of course 0...X. But for these axes we actually only use 1...X. + * Having the array oversize like this slightly simplifies the array + * subscripting. + */ +static const p_interp_fn_t p_interp_fn_table[MAX_N_DIMS+1] /* see above */ + [N_MOLECULE_FAMILIES] + [MAX_ORDER+1] /* see above */ + [MAX_SMOOTHING+1] + = { + /* in the comments on the initializers, "n.i." = "not implemented" */ + { + /* N_dims = 0 ==> unused */ + { + /* molecule_family = molecule_family_cube */ + { NULL_INTERP_FN_PTR , }, /* order=0 (unused) */ + { NULL_INTERP_FN_PTR , }, /* order=1 (unused) */ + { NULL_INTERP_FN_PTR , }, /* order=2 (unused) */ + { NULL_INTERP_FN_PTR , }, /* order=3 (unused) */ + { NULL_INTERP_FN_PTR , }, /* order=4 (unused) */ + { NULL_INTERP_FN_PTR , }, /* order=5 (unused) */ + { NULL_INTERP_FN_PTR , }, /* order=6 (unused) */ + }, + }, + + { + /* N_dims = 1 */ + { + /* molecule_family = molecule_family_cube */ + { NULL_INTERP_FN_PTR , }, /* order=0 (unused) */ + { LocalInterp_ILU_1d_cube_o1_s0, }, /* order=1 */ + { LocalInterp_ILU_1d_cube_o2_s0, }, /* order=2 */ + { LocalInterp_ILU_1d_cube_o3_s0, }, /* order=3 */ + { LocalInterp_ILU_1d_cube_o4_s0, }, /* order=4 */ + { LocalInterp_ILU_1d_cube_o5_s0, }, /* order=5 */ + { LocalInterp_ILU_1d_cube_o6_s0, }, /* order=6 */ + }, + }, + + { + /* N_dims = 2 */ + { + /* molecule_family = molecule_family_cube */ + { NULL_INTERP_FN_PTR , }, /* order=0 (unused) */ + { LocalInterp_ILU_2d_cube_o1_s0, }, /* order=1 */ + { LocalInterp_ILU_2d_cube_o2_s0, }, /* order=2 */ + { LocalInterp_ILU_2d_cube_o3_s0, }, /* order=3 */ + { LocalInterp_ILU_2d_cube_o4_s0, }, /* order=4 */ + { NULL_INTERP_FN_PTR , }, /* order=5 (n.i.) */ + { NULL_INTERP_FN_PTR , }, /* order=6 (n.i.) */ + }, + }, + + { + /* N_dims = 3 */ + { + /* molecule_family = molecule_family_cube */ + { NULL_INTERP_FN_PTR , }, /* order=0 (unused) */ + { LocalInterp_ILU_3d_cube_o1_s0, }, /* order=1 */ + { LocalInterp_ILU_3d_cube_o2_s0, }, /* order=2 */ + { LocalInterp_ILU_3d_cube_o3_s0, }, /* order=3 */ + { LocalInterp_ILU_3d_cube_o4_s0, }, /* order=4 */ + { NULL_INTERP_FN_PTR , }, /* order=5 (n.i.) */ + { NULL_INTERP_FN_PTR , }, /* order=6 (n.i.) */ + }, + }, + }; + +/* look up the subfunction to do the interpolation */ +p_interp_fn_t p_interp_fn = p_interp_fn_table[N_dims] + [molecule_family] + [order] + [smoothing]; +if (p_interp_fn == NULL_INTERP_FN_PTR) + then { + CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, +"interpolation not implemented for the combination\n" +"N_dims=%d, molecule_family=\"%s\", order=%d, smoothing=%d", + N_dims, molecule_family_string, order, smoothing); + return UTIL_ERROR_BAD_INPUT; /*** ERROR RETURN ***/ + } + + { +/* call the subfunction to actually do the interpolation */ +int error_pt, error_axis, error_end; +const int return_code + = (*p_interp_fn)(coord_origin, coord_delta, + N_interp_points, + interp_coords_type_code, interp_coords, + out_of_range_tolerance, + N_input_arrays, + input_array_offsets, input_array_strides, + input_array_min_subscripts, + input_array_max_subscripts, + input_array_type_codes, input_arrays, + N_output_arrays, + output_array_type_codes, output_arrays, + operand_indices, operation_codes, + &error_pt, &error_axis, &error_end); + +if (return_code == CCTK_ERROR_INTERP_POINT_X_RANGE) + then { + /* store details about the error in the parameter table */ + + status = Util_TableSetInt(param_table_handle, + error_pt, + "out_of_range_pt"); + if (status < 0) + then { + CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, +"InterpLocalUniform(): error %d setting \"out_of_range_pt\" table entry!", + status); + free(operation_codes); + free(operand_indices); + free(input_array_offsets); + return status; /*** ERROR RETURN ***/ + } + + status = Util_TableSetInt(param_table_handle, + error_axis, + "out_of_range_axis"); + if (status < 0) + then { + CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, +"InterpLocalUniform(): error %d setting \"out_of_range_axis\" table entry!", + status); + free(operation_codes); + free(operand_indices); + free(input_array_offsets); + return status; /*** ERROR RETURN ***/ + } + + status = Util_TableSetInt(param_table_handle, + error_end, + "out_of_range_end"); + if (status < 0) + then { + CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, +"InterpLocalUniform(): error %d setting \"out_of_range_end\" table entry!", + status); + free(operation_codes); + free(operand_indices); + free(input_array_offsets); + return status; /*** ERROR RETURN ***/ + } + } + +free(operation_codes); +free(operand_indices); +free(input_array_offsets); + +return return_code; + } + } + } + } + } + } + } + } + } + } + } + } +} diff --git a/src/GeneralizedPolynomial-Uniform/InterpLocalUniform.h b/src/GeneralizedPolynomial-Uniform/InterpLocalUniform.h new file mode 100644 index 0000000..44dbd9d --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/InterpLocalUniform.h @@ -0,0 +1,144 @@ +/* InterpLocalUniform.h -- private stuff for this interpolator */ +/* $Id$ */ + +#ifdef LOCALINTERP_STANDALONE_BUILD + typedef int CCTK_INT; + typedef double CCTK_REAL; +#endif + +typedef CCTK_REAL fp; + +/******************************************************************************/ + +/* misc stuff that Jonathan Thornburg likes to use */ +typedef int bool; +#define false 0 +#define true 1 + +#define then /* empty */ + +/******************************************************************************/ + +/* number of integers in the range [x,y] inclusive */ +#define how_many_in_range(x,y) ((y) - (x) + 1) + +/* is the integer x even/odd? */ +#define is_even(x) (((x) & 0x1) == 0) +#define is_odd (x) (((x) & 0x1) != 0) + +/* round floating-point value to nearest integer */ +/* ... result is expressed as floating point! */ +/* ... needs <math.h> for floor() */ +#define jt_round(x) floor((x) + 0.5) + +/******************************************************************************/ + +/* + * Cactus has some odd anomolies between real and complex datatypes + * as to whether they're #define or typedef, and how their presence + * should be detected at preprocessor-time. These macros isolate this: + */ + +#ifdef CCTK_REAL4 + #define HAVE_CCTK_REAL4 + #define HAVE_CCTK_COMPLEX8 +#endif + +#ifdef CCTK_REAL8 + #define HAVE_CCTK_REAL8 + #define HAVE_CCTK_COMPLEX16 +#endif + +#ifdef CCTK_REAL16 + #define HAVE_CCTK_REAL16 + #define HAVE_CCTK_COMPLEX32 +#endif + +/******************************************************************************/ + +/* + * compile-time upper bounds for sizing arrays etc + */ + +/* + * We must have 1 <= N_dims <= MAX_N_DIMS. Alas, there are lots of places + * in "template.c" where code explicitly enumerates all possible N_DIMS + * values at compile-time, so changing (eg raising) this limit requires + * checking all preprocessor uses of N_DIMS as well as MAX_N_DIMS. :( :( + */ +#define MAX_N_DIMS 3 + +/* + * if molecule_family_string is a C string specifying a molecule family + * (i.e. value associated with the "molecule_family" key in the parameter + * table), we must have + * strlen(molecule_family_string) <= MAX_MOLECULE_FAMILY_STRLEN + */ +#define MAX_MOLECULE_FAMILY_STRLEN 20 + +/* + * N_MOLECULE_FAMILIES is the number of distinct molecule families + */ +enum molecule_family + { + molecule_family_cube = 0, + N_MOLECULE_FAMILIES /* this must be the last entry in the enum */ + }; + +/* + * We must have 1 <= order <= MAX_ORDER. + */ +#define MAX_ORDER 6 + +/* + * We must have 0 <= smoothing <= MAX_SMOOTHING + */ +#define MAX_SMOOTHING 0 + +/******************************************************************************/ + +/* + * other compile-time settings + */ +/* default is that each element of out_of_range_tolerance[] is set to this */ +/* n.b. value should be moderately larger than CCTK_REAL machine epsilon */ +#define OUT_OF_RANGE_TOLERANCE_DEFAULT 1.0e-14 + +/******************************************************************************/ + +/* + * prototypes for functions visible from multiple files + */ + +/* functions in InterpLocalUniform.c */ +int LocalInterp_InterpLocalUniform(int N_dims, + int param_table_handle, + /***** coordinate system *****/ + const CCTK_REAL coord_origin[], + const CCTK_REAL coord_delta[], + /***** interpolation points *****/ + int N_interp_points, + int interp_coords_type_code, + const void *const interp_coords[], + /***** input arrays *****/ + int N_input_arrays, + const CCTK_INT input_array_dims[], + const CCTK_INT input_array_type_codes[], + const void *const input_arrays[], + /***** output arrays *****/ + int N_output_arrays, + const CCTK_INT output_array_type_codes[], + void *const output_arrays[]); + +/* functions in molecule_posn.c */ +int LocalInterp_molecule_posn(fp grid_origin, fp grid_delta, + int grid_i_min, int grid_i_max, + fp out_of_range_tolerance, + int molecule_size, + fp x, + fp *x_rel, + int *molecule_m_min, int *molecule_m_max); + +/* functions in util.c */ +void LocalInterp_zero_int_array(int N, CCTK_INT array[]); +int LocalInterp_decode_N_parts(int type_code); diff --git a/src/GeneralizedPolynomial-Uniform/README b/src/GeneralizedPolynomial-Uniform/README new file mode 100644 index 0000000..39949c3 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/README @@ -0,0 +1,43 @@ +$Header$ + +This directory contains the interpolator registered for + CCTK_InterpLocalUniform() +under the name + "generalized polynomial interpolation" + +This interpolator is distributed under the GNU GPL; see the file COPYRIGHT +for details. Note that this means that if you distribute any program +using this interpolator, you must provide source code to the entire +program! + + + +To add a new combination of (N_dims, molecule_family, order, smoothing), +to this interpolator, you need to +* edit the appropriate Maple script (1d.maple, 2d.maple, 3d.maple, etc) + to generate the coefficients and write the appropriate files +* edit the makefile to create the appropriate directory or directories, + and if necessary add any new targets +* 'make' as appropriate to create the new coefficients etc + [note this can be rather computationally intensive -- the current + set of {1d,2d,3d} coefficients take {4 seconds, 15 seconds, 8 minutes} + to generate using Maple 7 on a xeon (1.7 GHz Pentium 4)] +* edit InterpLocalUniform.c to add the new case to the decoding + switch statements +* create an appropriate "script" file which defines the right macros, + then does a + #include "template.c" + to define the actual interpolation function; the best way to create + the script file is just to copy an existing one + (eg. 2d.cube.order3.smooth0.c) +* add the appropriate entry to all-prototypes.h to define a prototype + for the actual interpolation function +* add the new "script" file to the list in make.code.defn + + + +Other makefile targets: +test_molecule_posn + This makes a standalone test driver for the + LocalInterp_molecule_posn() + function defined in molecule_posn.c diff --git a/src/GeneralizedPolynomial-Uniform/all-prototypes.h b/src/GeneralizedPolynomial-Uniform/all-prototypes.h new file mode 100644 index 0000000..9243069 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/all-prototypes.h @@ -0,0 +1,72 @@ +/* all-prototypes.h -- C prototypes for all template-generated functions */ +/* $Header$ */ + +/* + * 1D + */ + +#undef FUNCTION_NAME +#define FUNCTION_NAME LocalInterp_ILU_1d_cube_o1_s0 +#include "template.h" + +#undef FUNCTION_NAME +#define FUNCTION_NAME LocalInterp_ILU_1d_cube_o2_s0 +#include "template.h" + +#undef FUNCTION_NAME +#define FUNCTION_NAME LocalInterp_ILU_1d_cube_o3_s0 +#include "template.h" + +#undef FUNCTION_NAME +#define FUNCTION_NAME LocalInterp_ILU_1d_cube_o4_s0 +#include "template.h" + +#undef FUNCTION_NAME +#define FUNCTION_NAME LocalInterp_ILU_1d_cube_o5_s0 +#include "template.h" + +#undef FUNCTION_NAME +#define FUNCTION_NAME LocalInterp_ILU_1d_cube_o6_s0 +#include "template.h" + + +/* + * 2D + */ + +#undef FUNCTION_NAME +#define FUNCTION_NAME LocalInterp_ILU_2d_cube_o1_s0 +#include "template.h" + +#undef FUNCTION_NAME +#define FUNCTION_NAME LocalInterp_ILU_2d_cube_o2_s0 +#include "template.h" + +#undef FUNCTION_NAME +#define FUNCTION_NAME LocalInterp_ILU_2d_cube_o3_s0 +#include "template.h" + +#undef FUNCTION_NAME +#define FUNCTION_NAME LocalInterp_ILU_2d_cube_o4_s0 +#include "template.h" + + +/* + * 3D + */ + +#undef FUNCTION_NAME +#define FUNCTION_NAME LocalInterp_ILU_3d_cube_o1_s0 +#include "template.h" + +#undef FUNCTION_NAME +#define FUNCTION_NAME LocalInterp_ILU_3d_cube_o2_s0 +#include "template.h" + +#undef FUNCTION_NAME +#define FUNCTION_NAME LocalInterp_ILU_3d_cube_o3_s0 +#include "template.h" + +#undef FUNCTION_NAME +#define FUNCTION_NAME LocalInterp_ILU_3d_cube_o4_s0 +#include "template.h" diff --git a/src/GeneralizedPolynomial-Uniform/interpolate.maple b/src/GeneralizedPolynomial-Uniform/interpolate.maple new file mode 100644 index 0000000..4938f86 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/interpolate.maple @@ -0,0 +1,313 @@ +# GInterpolate.maple -- compute generalized interpolation formulas/coefficients +# $Id$ + +# +# <<<representation of numbers, data values, etc>>> +# polynomial_interpolant - compute polynomial interpolant +# coeff_as_lc_of_data - coefficients of ... (linear combination of data) +# +# print_coeff__lc_of_data - print C code to compute coefficients +# print_data_var_assign - print C code to assign data-value variables +# print_interp_cmpt__lc_of_data - print C code for computation of interpolant +# +# coeff_name - name of coefficient of data at a given [m] coordinate +# data_var_name - name of variable storing data value at a given [m] coordinate +# + +################################################################################ + +# +# ***** representation of numbers, data values, etc ***** +# +# We use RATIONAL(p.0,q.0) to denote the rational number p/q. +# +# We use DATA(...) to represent the data values being interpolated at a +# specified [m] coordinate, where the arguments are the [m] coordinates. +# +# We use COEFF(...) to represent the molecule coefficient at a specified +# [m] coordinate, where the arguments are the [m] coordinates. +# +# For example, the usual 1-D centered 2nd order 1st derivative molecule +# would be written +# RATIONAL(-1.0,2.0)*DATA(-1) + RATIONA(1.0,2.0)*DATA(1) +# and its coefficients as +# COEFF(-1) = RATIONAL(-1.0,2.0) +# COEFF(1) = RATIONAL(1.0,2.0) +# + +################################################################################ +################################################################################ +################################################################################ + +# +# This function computes a polynomial interpolant in any number of dimensions. +# +# Arguments: +# fn = The interpolation function. This should be a procedure in the +# coordinates, having the coefficients as global variables. For +# example, +# proc(x,y) c00 + c10*x + c01*y end proc +# coeff_list = A set of the interpolation coefficients (coefficients in +# the interpolation function), for example [c00, c10, c01]. +# coord_list = A list of the coordinates (independent variables in the +# interpolation function), for example [x,y]. +# posn_list = A list of positions (each a list of numeric values) where the +# interpolant is to use data, for example hypercube([0,0], [1,1]). +# Any positions may be used; if they're redundant (as in the +# example) the least-squares interpolant is computed. +# +# Results: +# This function returns the interpolating polynomial, in the form of +# an algebraic expression in the coordinates and the data values. +# +polynomial_interpolant := +proc( + fn::procedure, coeff_list::list(name), + coord_list::list(name), posn_list::list(list(numeric)) + ) +local posn, data_eqns, coeff_eqns; + +# coefficients of interpolating polynomial +data_eqns := { seq( fn(op(posn))='DATA'(op(posn)) , posn=posn_list ) }; +coeff_eqns := linalg[leastsqrs](data_eqns, {op(coeff_list)}); +if (has(coeff_eqns, '_t')) + then error "interpolation coefficients aren't uniquely determined!"; +end if; + +# interpolant as a polynomial in the coordinates +return subs(coeff_eqns, eval(fn))(op(coord_list)); +end proc; + +################################################################################ + +# +# This function takes as input an interpolating polynomial, expresses +# it as a linear combination of the data values, and returns the coefficeints +# of that form. +# +# Arguments: +# interpolant = The interpolating polynomial (an algebraic expression +# in the coordinates and the data values). +# posn_list = The same list of positions as was used to compute the +# interpolating polynomial. +# +# Results: +# This function returns the coefficients, as a list of equations of the +# form COEFF(...) = value , where each value is a polynomial in the +# coordinates. The order of the list matches that of posn_list. +# +coeff_as_lc_of_data := +proc( + interpolant::algebraic, + posn_list::list(list(numeric)) + ) +local data_list, interpolant_as_lc_of_data; + +# interpolant as a linear combination of the data values +data_list := [ seq( 'DATA'(op(posn)) , posn=posn_list ) ]; +interpolant_as_lc_of_data := collect(interpolant, data_list); + +# coefficients of the data values in the linear combination +return map( + proc(posn::list(numeric)) + coeff(interpolant_as_lc_of_data, DATA(op(posn))); + 'COEFF'(op(posn)) = %; + end proc + , + posn_list + ); +end proc; + +################################################################################ +################################################################################ +################################################################################ + +# +# This function prints C expressions for the coefficients of an +# interpolating polynomial. (The polynomial is expressed as linear +# combinations of the data values with coefficients which are +# RATIONAL(p,q) calls.) +# +# Arguments: +# coeff_list = A list of the coefficients, as returned from +# coeff_as_lc_of_data() . +# coeff_name_prefix = A prefix string for the coefficient names. +# temp_name_type = The C type to be used for Maple-introduced temporary +# names, eg. "double". +# file_name = The file name to write the coefficients to. This is +# truncated before writing. +# +print_coeff__lc_of_data := +proc( coeff_list::list(specfunc(numeric,COEFF) = algebraic), + coeff_name_prefix::string, + temp_name_type::string, + file_name::string ) +global `codegen/C/function/informed`; +local coeff_list2, cmpt_list, temp_name_list; + +# convert LHS of each equation from a COEFF() call (eg COEFF(-1,+1)) +# to a Maple/C variable name (eg coeff_I_m1_p1) +coeff_list2 := map( + proc(coeff_eqn::specfunc(numeric,COEFF) = algebraic) + local posn; + posn := [op(lhs(coeff_eqn))]; + coeff_name(posn,coeff_name_prefix); + convert(%, name); # codegen[C] wants LHS + # to be an actual Maple *name* + % = fix_rationals(rhs(coeff_eqn)); + end proc + , + coeff_list + ); + +# +# generate the C code +# + +# tell codegen[C] not to warn about unknown RATIONAL() and DATA() "fn calls" +# via undocumented :( global table +`codegen/C/function/informed`['RATIONAL'] := true; +`codegen/C/function/informed`['DATA'] := true; + +ftruncate(file_name); + +# optimized computation sequence for all the coefficients +# (may use local variables t0,t1,t2,...) +cmpt_list := [codegen[optimize](coeff_list2, tryhard)]; + +# list of the t0,t1,t2,... local variables +temp_name_list := nonmatching_names(map(lhs,cmpt_list), coeff_name_prefix); + +# declare the t0,t1,t2,... local variables (if there are any) +if (nops(temp_name_list) > 0) + then print_name_list_dcl(%, temp_name_type, file_name); +fi; + +# now print the optimized computation sequence +codegen[C](cmpt_list, filename=file_name); + +NULL; +end proc; + +################################################################################ + +# +# This function prints a sequence of C expression to assign the data-value +# variables. +# +# Arguments: +# posn_list = The same list of positions as was used to compute the +# interpolating polynomial. +# data_var_name_prefix = A prefix string for the data variable names. +# file_name = The file name to write the coefficients to. This is +# truncated before writing. +# +print_data_var_assign := +proc( + posn_list::list(list(numeric)), + data_var_name_prefix::string, + file_name::string + ) + +ftruncate(file_name); + +map( + proc(posn::list(numeric)) + fprintf(file_name, + "%s = %a;\n", + data_var_name(posn,data_var_name_prefix), + DATA(op(posn))); + end proc + , + posn_list + ); + +NULL; +end proc; + +################################################################################ + +# +# This function prints a C expression to compute the interpolant, +# using the coefficients computed by print_coeff__lc_of_data() +# (i.e. expressing the interpolant as a linear combination of the +# data values). +# +# Arguments: +# posn_list = The same list of positions as was used to compute the +# interpolating polynomial. +# result_var_name = The (string) name of the variable to which the +# result is to be assigned. +# coeff_name_prefix = A prefix string for the coefficient names. +# data_var_name_prefix = A prefix string for the data variable names. +# file_name = The file name to write the coefficients to. This is +# truncated before writing. +# +print_interp_cmpt__lc_of_data := +proc( + posn_list::list(list(numeric)), + result_var_name::string, + coeff_name_prefix::string, + data_var_name_prefix::string, + file_name::string + ) + +ftruncate(file_name); +fprintf(file_name, "%s =\n", result_var_name); + +# list of "coeff*data_var" terms +map( + proc(posn::list(numeric)) + sprintf("%s*%s", + coeff_name(posn,coeff_name_prefix), + data_var_name(posn,data_var_name_prefix)); + end proc + , + posn_list + ); + +ListTools[Join](%, "\n\t+ "); +cat(op(%)); + +fprintf(file_name, "\t%s;\n", %); +NULL; +end proc; + +################################################################################ +################################################################################ +################################################################################ + +# +# This function computes the name of the coefficient of the data at a +# given [m] position, i.e. it encapsulates our naming convention for this. +# +# Arguments: +# posn = (in) The [m] coordinates. +# name_prefix = A prefix string for the coefficient name. +# +# Results: +# The function returns the coefficient, as a Maple string. +# +coeff_name := +proc(posn::list(numeric), name_prefix::string) +cat(name_prefix, sprint_numeric_list(posn)); +end proc; + +################################################################################ + +# +# This function computes the name of the variable in which the C code +# will store the input data at a given [m] position, i.e. it encapsulates +# our naming convention for this. +# +# Arguments: +# posn = (in) The [m] coordinates. +# name_prefix = A prefix string for the variable name. +# +# Results: +# The function returns the variable name, as a Maple string. +# +data_var_name := +proc(posn::list(numeric), name_prefix::string) +cat(name_prefix, sprint_numeric_list(posn)); +end proc; diff --git a/src/GeneralizedPolynomial-Uniform/make.code.defn b/src/GeneralizedPolynomial-Uniform/make.code.defn new file mode 100644 index 0000000..7bd90a0 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/make.code.defn @@ -0,0 +1,21 @@ +# Main make.code.defn file for thorn PUGHInterp +# $Header$ + +# Source files in this directory +SRCS = startup.c \ + InterpLocalUniform.c molecule_posn.c util.c \ + 1d.cube.order1.smooth0.c \ + 1d.cube.order2.smooth0.c \ + 1d.cube.order3.smooth0.c \ + 1d.cube.order4.smooth0.c \ + 1d.cube.order5.smooth0.c \ + 1d.cube.order6.smooth0.c \ + 2d.cube.order1.smooth0.c \ + 2d.cube.order2.smooth0.c \ + 2d.cube.order3.smooth0.c \ + 2d.cube.order4.smooth0.c \ + 3d.cube.order1.smooth0.c \ + 3d.cube.order2.smooth0.c \ + 3d.cube.order3.smooth0.c \ + 3d.cube.order4.smooth0.c \ + # end of list diff --git a/src/GeneralizedPolynomial-Uniform/makefile b/src/GeneralizedPolynomial-Uniform/makefile new file mode 100644 index 0000000..a5a5a6d --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/makefile @@ -0,0 +1,68 @@ +.PHONY : all +all : 2d 3d + +.PHONY : 1d +1d : + -rm -rf 1d.coeffs + mkdir 1d.coeffs + cd 1d.coeffs && mkdir 1d.cube.size2 + cd 1d.coeffs && mkdir 1d.cube.size3 + cd 1d.coeffs && mkdir 1d.cube.size4 + cd 1d.coeffs && mkdir 1d.cube.size5 + cd 1d.coeffs && mkdir 1d.cube.size6 + cd 1d.coeffs && mkdir 1d.cube.size7 + cd 1d.coeffs && mkdir 1d.cube.order1.smooth0 + cd 1d.coeffs && mkdir 1d.cube.order2.smooth0 + cd 1d.coeffs && mkdir 1d.cube.order3.smooth0 + cd 1d.coeffs && mkdir 1d.cube.order4.smooth0 + cd 1d.coeffs && mkdir 1d.cube.order5.smooth0 + cd 1d.coeffs && mkdir 1d.cube.order6.smooth0 + cat util.maple interpolate.maple 1d.maple \ + | maple 2>&1 >1d.log + +.PHONY : 2d +2d : + -rm -rf 2d.coeffs + mkdir 2d.coeffs + cd 2d.coeffs && mkdir 2d.cube.size2 + cd 2d.coeffs && mkdir 2d.cube.size3 + cd 2d.coeffs && mkdir 2d.cube.size4 + cd 2d.coeffs && mkdir 2d.cube.size5 + cd 2d.coeffs && mkdir 2d.cube.order1.smooth0 + cd 2d.coeffs && mkdir 2d.cube.order2.smooth0 + cd 2d.coeffs && mkdir 2d.cube.order3.smooth0 + cd 2d.coeffs && mkdir 2d.cube.order4.smooth0 + cat util.maple interpolate.maple 2d.maple \ + | maple 2>&1 >2d.log + +.PHONY : 3d +3d : + -rm -rf 3d.coeffs + mkdir 3d.coeffs + cd 3d.coeffs && mkdir 3d.cube.size2 + cd 3d.coeffs && mkdir 3d.cube.size3 + cd 3d.coeffs && mkdir 3d.cube.size4 + cd 3d.coeffs && mkdir 3d.cube.size5 + cd 3d.coeffs && mkdir 3d.cube.order1.smooth0 + cd 3d.coeffs && mkdir 3d.cube.order2.smooth0 + cd 3d.coeffs && mkdir 3d.cube.order3.smooth0 + cd 3d.coeffs && mkdir 3d.cube.order4.smooth0 + cat util.maple interpolate.maple 3d.maple \ + | maple 2>&1 >3d.log + +######################################## + +# +# standalone test programs +# + +# FIXME: this doesn't build properly! +test_molecule_posn : test_molecule_posn.c molecule_posn.c \ + InterpLocalUniform.h + gcc -g \ + -Wall -W -Wno-unused -Wshadow -Winline -Wpointer-arith \ + -Wbad-function-cast -Wcast-align -Wcast-qual \ + -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations \ + -DLOCALINTERP_STANDALONE_BUILD -o test_molecule_posn \ + test_molecule_posn.c molecule_posn.c -lm + diff --git a/src/GeneralizedPolynomial-Uniform/molecule_posn.c b/src/GeneralizedPolynomial-Uniform/molecule_posn.c new file mode 100644 index 0000000..182a3e4 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/molecule_posn.c @@ -0,0 +1,225 @@ + /*@@ + @file molecule_posn.c + @date 23 Oct 2001 + @author Jonathan Thornburg <jthorn@aei.mpg.de> + @desc Worker function to compute molecule positions for interpolator. + @enddesc + @version $Id$ + @@*/ + +#include <limits.h> +#include <stdlib.h> +#include <stdio.h> +#include <math.h> + +#ifndef LOCALINTERP_STANDALONE_BUILD + #include "cctk.h" +#endif + +#include "InterpLocalUniform.h" + +/* the rcs ID and its dummy function to use it */ +static const char *rcsid = "$Header$"; +#ifndef LOCALINTERP_STANDALONE_BUILD + CCTK_FILEVERSION(CactusBase_LocalInterp_src_GeneralizedPolynomialUniform_molecule_posn_c) +#endif + +/******************************************************************************/ +/******************************************************************************/ +/******************************************************************************/ + +/*@@ + @routine LocalInterp_molecule_posn + @date 23 Oct 2001 + @author Jonathan Thornburg <jthorn@aei.mpg.de> + @desc + Given a uniformly-spaced grid, this function computes molecule + positions for an interpolation or similar operation: + (1) It computes the closest grid point to the input coordinate + (2) It does the slightly tricky odd/even computation to decide where + to center the molecule + (3) It checks for the molecule falling off the edge of the grid, + and off-centers it as appropriate. + + For (1), we assume that grid points have floating-point + coordinates (we refer to these as "x") which are an arbitrary + linear function of the integer grid coordinates (we refer to + these as "i"), x = grid_origin + i*grid_delta. + + For (2), suppose we have a data array indexed by [i], from which we + wish to select an N-point molecule [i_lo, i_hi] centered as close as + possible to the point x . The problem is just how to choose the + centering. The following diagram illustrates the issues: + + N i_lo i_hi [i-3] [i-2] [i-1] [i] [i+1] [i+2] [i+3] [i+4] + - ---- ---- ----- ----- ----- ----- ----- ----- ----- ----- + 2 i i+1 *xxxxxx* + 3 i-1 i+1 * xxx*xxx * + 4 i-1 i+2 * *xxxxxx* * + 5 i-2 i+2 * * xxx*xxx * * + 6 i-2 i+3 * * *xxxxxx* * * + 7 i-3 i+3 * * * xxx*xxx * * * + 8 i-3 i+4 * * * *xxxxxx* * * * + + The diagram shows the range of x values relative to the grid, + for which we'll choose each centering. Thus if N is even, the + centering is based on which grid zone contains x (take the floor + of the floating-point i coordinate), while if N is odd, the centering + is based on which grid point is closest to x (round the floating- + -point i coordinate to the nearest integer). + + It's also convenient to introduce the integer molecule coordinate m; + this is the integer grid coordinate i relative to that of the molecule + center, i.e. the above diagram has columns labelled with [i+m]. + @enddesc + + @var grid_origin + @vdesc The floating-point coordinate x of the grid point i=0. + @vtype fp grid_origin + @endvar + + @var grid_delta + @vdesc The grid spacing (in the floating-point coordinate x). + @vtype fp grid_delta + @endvar + + @var grid_i_min + @vdesc The minimum integer coordinate i of the grid. + @vtype int grid_i_min + @endvar + + @var grid_i_max + @vdesc The maximum integer coordinate i of the grid. + @vtype int grid_i_max + @endvar + + @var out_of_range_tolerance + @vdesc Specifies how out-of-range interpolation points should + be handled: + If out_of_range_tolerance >= 0.0, + then an interpolation point is considered to be + "out of range" if and only if the interpolation + point is > out_of_range_tolerance * grid_delta + outside the grid in any coordinate. + If out_of_range_tolerance == -1.0, + then an interpolation point is considered to be + "out of range" if and only if a centered molecule + would require data from outside the grid. + Other values of out_of_range_tolerance are illegal. + @vtype fp + @endvar + + @var molecule_size + @vdesc The size (number of points) of the molecule. + @vtype int molecule_size + @endvar + + @var x + @vdesc The floating-point coordinate x at which we would like to center + the molecule. + @vtype fp x + @endvar + + @var x_rel + @vdesc A pointer to a floating-point value where this function should + store the x coordinate relative to the molecule center, measured + in units of the grid spacing; or NULL to skip storing this. + @vtype fp *x_rel + @vio pointer to out + @endvar + + @var molecule_m_min + @vdesc A pointer to an int where this function should store the minimum + molecule coordinate m of the molecule; or NULL to skip storing this. + @vtype int *molecule_m_min + @vio pointer to out + @endvar + + @var p_molecule_m_max + @vdesc A pointer to an int where this function should store the maximum + molecule coordinate m of the molecule; or NULL to skip storing this. + @vtype int *molecle_m_max + @vio pointer to out + @endvar + + @returntype int + @returndesc + This function returns the integer coordinate i_center at which + the molecule should be centered, or one of the error codes + (from <limits.h>) + INT_MIN if x is out-of-range on the min end of the grid + (i.e. x < the minimum allowable x) + INT_MAX if x is out-of-range on the max end of the grid + (i.e. x > the maximum allowable x) + @endreturndesc + @@*/ +int LocalInterp_molecule_posn(fp grid_origin, fp grid_delta, + int grid_i_min, int grid_i_max, + fp out_of_range_tolerance, + int molecule_size, + fp x, + fp *x_rel, + int *molecule_m_min, int *molecule_m_max) +{ +/* min/max molecule coordinates */ +const int m_max = (molecule_size >> 1); /* a positive number */ +const int m_min = m_max - molecule_size + 1; /* a negative number */ + +/* integer coordinate i of point x, as a floating-point number */ +const fp fp_i = (x - grid_origin) / grid_delta; + +/* is point x out-of-range? */ +if (out_of_range_tolerance >= 0.0) + then { + const fp fp_effective_grid_i_min + = ((fp) grid_i_min) - out_of_range_tolerance; + const fp fp_effective_grid_i_max + = ((fp) grid_i_max) + out_of_range_tolerance; + if (fp_i < fp_effective_grid_i_min) + then return INT_MIN; /*** ERROR RETURN ***/ + if (fp_i > fp_effective_grid_i_max) + then return INT_MAX; /*** ERROR RETURN ***/ + } + +/* integer coordinate i where we will center the molecule */ +/* (see diagram in header comment for explanation) */ +/* ... as a floating-point number */ + { +const fp fp_i_center = is_even(molecule_size) ? floor(fp_i) : jt_round(fp_i); +/* ... as an integer */ +int i_center = (int) fp_i_center; + +/* min/max integer coordinates in molecule assuming it's fully centered */ +const int centered_i_min = i_center + m_min; +const int centered_i_max = i_center + m_max; + +/* check if off-centered molecules are forbidden? */ +if (out_of_range_tolerance == -1.0) + then { + if (centered_i_min < grid_i_min) + then return INT_MIN; /*** ERROR RETURN ***/ + if (centered_i_max > grid_i_max) + then return INT_MAX; /*** ERROR RETURN ***/ + } + +/* off-center as needed if we're close to the edge of the grid */ + { +int shift = 0; +if (centered_i_min < grid_i_min) + then shift = grid_i_min - centered_i_min; /* a positive number */ +if (centered_i_max > grid_i_max) + then shift = grid_i_max - centered_i_max; /* a negative number */ +i_center += shift; + +/* store the results */ +if (x_rel != NULL) + then *x_rel = fp_i - ((fp) i_center); +if (molecule_m_min != NULL) + then *molecule_m_min = m_min; +if (molecule_m_max != NULL) + then *molecule_m_max = m_max; + +return i_center; + } + } +} diff --git a/src/GeneralizedPolynomial-Uniform/startup.c b/src/GeneralizedPolynomial-Uniform/startup.c new file mode 100644 index 0000000..38453dd --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/startup.c @@ -0,0 +1,38 @@ + /*@@ + @file startup.c + @date Thu Feb 21 16:25:35 CET 2002 + @author Jonathan Thornburg <jthorn@aei.mpg.de> + @desc + Startup routines for LocalInterp/GeneralizedPolynomial-Uniform + @enddesc + @version $Id$ + @@*/ + +#include <stdlib.h> + +#include "cctk.h" +#include "cctk_Interp.h" +#include "InterpLocalUniform.h" + +/* the rcs ID and its dummy function to use it */ +static const char *rcsid = "$Header$"; +CCTK_FILEVERSION(CactusPUGH_LocalInterp_GeneralizedPolynomialUniform_startup_c) + +/* prototypes of routines defined in this source file */ +void LocalInterp_GPU_Startup(void); + + +/*@@ + @routine LocalInterp_GPU_Startup + @date Thu Feb 21 16:27:41 CET 2002 + @author Jonathan Thornburg <jthorn@aei.mpg.de> + @desc This is the startup registration routine for + the generalized polynomial interpolator. + @enddesc + @@*/ +void LocalInterp_GPU_Startup(void) +{ +CCTK_InterpRegisterOpLocalUniform(LocalInterp_InterpLocalUniform, + "generalized polynomial interpolation", + CCTK_THORNSTRING); +} diff --git a/src/GeneralizedPolynomial-Uniform/template.c b/src/GeneralizedPolynomial-Uniform/template.c new file mode 100644 index 0000000..bcf34e5 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/template.c @@ -0,0 +1,1150 @@ +/*@@ + @file template.c + @date 23 Oct 2001 + @author Jonathan Thornburg <jthorn@aei.mpg.de> + @desc + This file is a template for generalized interpolation for + 1-, 2-, or 3-d molecules. It's used by defining various + C preprocessor macros, then #including this file. Each + such inclusion defines a single interpolation function, + which does generalized interpolation for a single + combination of (N_dims, molecule_family, order, smoothing). + + The following header files must be #included before + #including this file: + <math.h> + <limits.h> + <stdlib.h> + <string.h> + <stdio.h> + "util_ErrorCodes.h" + "cctk.h" + "InterpLocalUniform.h" + + The following preprocessor macros must be defined before + #including this file (note the macros which are file names + must all include the proper quotes for a #include in their + expansion, e.g. + #define DATA_VAR_DCL_FILE_NAME \ + "coeffs/2d.cube.size3/data-var.dcl.c" + @enddesc + + @var FUNCTION_NAME + @vdesc The name of the interpolation function, e.g. + #define FUNCTION_NAME LocalInterp_ILA_2d_cube_ord2_sm0 + @endvar + + @var N_DIMS + @vdesc The number of dimensions in which to interpolate, e.g. + #define N_DIMS 2 + The present implementation restricts this to 1, 2, + or 3, but this could easily be changed if needed. + Note that MAX_N_DIMS (defined in "InterpLocalUniform.c") + is a compile-time upper bound for N_DIMS, useful for + sizing arrays etc. + @endvar + + @var MOLECULE_SIZE + @vdesc The diameter of (number of points in) the molecules to be used, + e.g. + #define MOLECULE_SIZE 3 + The present implementation takes this to be the same in each + dimension, but this could easily be changed if needed. + @endvar + + @var HAVE_OP_{I,DX,DY,DXX,DXY,DYY,...} + Each of these symbols should be defined or not defined + according as if the corresponding derivative operator is + to be supported or not supported by this function. + @endvar + + @var DATA_VAR_DCL_FILE_NAME + @vdesc The name of a file (presumably machine-generated) containing + a sequence of one or more C declarations for a molecule-sized + set of "data variables", eg (for 2D size-3 molecules) + fp data_m1_m1; + fp data_0_m1; + fp data_p1_m1; + fp data_m1_0; + fp data_0_0; + fp data_p1_0; + fp data_m1_p1; + fp data_0_p1; + fp data_p1_p1; + @endvar + + @var COEFF_{I,DX,DY,DXX,DXY,DYY,...}_DCL_FILE_NAME + @vdesc Each of these macros should be the name of a file + (presumably machine-generated) containing a sequence + of one or more C declarations for a molecule-sized set + of coefficients for the corresponding derivative operator, + eg (for dx with 2D size-3 molecules) + fp coeff_dx_m1_m1; + fp coeff_dx_0_m1; + fp coeff_dx_p1_m1; + fp coeff_dx_m1_0; + fp coeff_dx_0_0; + fp coeff_dx_p1_0; + fp coeff_dx_m1_p1; + fp coeff_dx_0_p1; + fp 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 + the corresponding data variables for each molecule component, + eg (for 2D size-3 molecules) + data_m1_m1 = DATA(-1,-1); + data_0_m1 = DATA(0,-1); + data_p1_m1 = DATA(1,-1); + data_m1_0 = DATA(-1,0); + data_0_0 = DATA(0,0); + data_p1_0 = DATA(1,0); + data_m1_p1 = DATA(-1,+1); + data_0_p1 = DATA(0,+1); + data_p1_p1 = DATA(1,+1); + @endvar + + @var INTERP_{I,DX,DY,DXX,DXY,DYY,...}_COMPUTE_FILE_NAME + @vdesc Each of these macros should be the name of a file + (presumably machine-generated) containing a C assignment + statement (or a sequence of such statements) to compute + the variable result as the molecule-sized linear combination + of the data variables (cf DATA_VAR_{DCL,ASSIGN}_FILE_NAME) + and the interpolation coefficients + (cf COEFF_{I,DX,DY,DXX,DXY,DYY,...}_COMPUTE_FILE_NAME), + eg (for 2D size-3 molecules, dx operator) + result = + coeff_dx_m1_m1*data_m1_m1 + + coeff_dx_0_m1*data_0_m1 + + coeff_dx_p1_m1*data_p1_m1 + + coeff_dx_p2_m1*data_p2_m1 + + coeff_dx_m1_0*data_m1_0 + + coeff_dx_0_0*data_0_0 + + coeff_dx_p1_0*data_p1_0 + + coeff_dx_p2_0*data_p2_0 + + coeff_dx_m1_p1*data_m1_p1 + + coeff_dx_0_p1*data_0_p1 + + coeff_dx_p1_p1*data_p1_p1 + + coeff_dx_p2_p1*data_p2_p1 + + coeff_dx_m1_p2*data_m1_p2 + + coeff_dx_0_p2*data_0_p2 + + coeff_dx_p1_p2*data_p1_p2 + + coeff_dx_p2_p2*data_p2_p2; + Note that this may *NOT* include any variable declarations; + it should be valid to appear in the middle of a sequence of + C statements. + @endvar + + @var COEFF_{I,DX,DY,DXX,DXY,DYY,...}_COMPUTE_FILE_NAME + @vdesc Each of these macros should be the name of a file + (presumably machine-generated) containing a sequence of C + assignment statements to compute all the (molecule-sized + set of) interpolation coefficients for the specified + derivative operator, as polynomials in the variables + (x,y,z), eg (for 2D size-3 molecules, dx operator) + fp t35, + t42, + t41, + t40, + t39, + t36; + t35 = RATIONAL(1.0,3.0)*x; + t42 = t35+RATIONAL(-1.0,4.0)*y; + t41 = t35+RATIONAL(1.0,4.0)*y; + t40 = RATIONAL(-1.0,6.0); + t39 = RATIONAL(1.0,6.0); + t36 = RATIONAL(-2.0,3.0)*x; + coeff_dx_m1_m1 = t40+t41; + coeff_dx_0_m1 = t36; + coeff_dx_p1_m1 = t39+t42; + coeff_dx_m1_0 = t40+t35; + coeff_dx_0_0 = t36; + coeff_dx_p1_0 = t35+t39; + coeff_dx_m1_p1 = t40+t42; + coeff_dx_0_p1 = t36; + coeff_dx_p1_p1 = t39+t41; + + As illustrated, the code may use the macro RATIONAL + (defined later in this file) to represent rational-number + coefficients, and it may also declare temporary variables + as needed. + + Note that these are the only coefficients which depend + on the actual interpolation scheme used; all the others + just depend on the interpolation dimension and molecule + family and size. + @endvar + + @version $Id$ +@@*/ + +/******************************************************************************/ + +/*@@ + @routine FUNCTION_NAME + @date 23 Oct 2001 + @author Jonathan Thornburg <jthorn@aei.mpg.de> + @desc + This function does generalized interpolation of one or more + 2d arrays to arbitrary points. For details, see the header + comments for InterpLocalUniform() (in "InterpLocalUniform.c" + in this same directory). + + This function's arguments are all a subset of those of + InterpLocalUniform() ; the only difference is that this function + takes all its arguments explicitly, whereas InputLocalArrays() + takes some of them indirectly via a key/value parameter table. + + @returntype int + @returndesc This function's return result is the same as that of + InterpLocalUniform(): + 0 success + UTIL_ERROR_BAD_INPUT one of the input arguments is invalid + UTIL_ERROR_NO_MEMORY unable to malloc() temporary memory + CCTK_ERROR_INTERP_POINT_X_RANGE + interpolation point is out of range + @endreturndesc + + @@*/ +int FUNCTION_NAME(/***** coordinate system *****/ + const CCTK_REAL coord_system_origin[], + const CCTK_REAL grid_spacing[], + /***** interpolation points *****/ + int N_interp_points, + int interp_coords_type_code, + const void *const interp_coords[], + const CCTK_REAL out_of_range_tolerance[], + /***** input arrays *****/ + int N_input_arrays, + const CCTK_INT input_array_offsets[], + const CCTK_INT input_array_strides[], + 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[], + /***** output arrays *****/ + int N_output_arrays, + const CCTK_INT output_array_type_codes[], + void *const output_arrays[], + /***** operation info */ + const CCTK_INT operand_indices[], + const CCTK_INT operation_codes[], + /***** error-reporting *****/ + int* error_pt, int* error_axis, int* error_end) +{ +/* + * Implementation notes: + * + * The basic outline of this function is as follows: + * + * compute "which derivatives are wanted" flags + * precompute 1/dx factors + * for each interpolation point + * { + * declare all the coefficients + * declare all the data-values variables + * ***fetch*** interpolation point coordinates + * compute coefficients for all derivatives which are wanted + * for each output array + * { + * ***decode*** the input/output array datatypes + * to determine whether they're real or complex + * (they must both be the same in this regard), + * and define + * int N_parts = data is complex ? 2 : 1; + * int part; + * for (part = 0 ; part < N_parts ; ++part) + * { + * if (this output array is computed + * using a different input array + * than the previous one || part != 0) + * then ***fetch*** the input array values + * into local "data" variables + * { + * fp result; + * switch (operation_code) + * { + * case 0: + * result = compute the interpolant + * itself as a linear combination + * of data variables & op=0 coeffs + * break; + * case 1: + * result = compute the interpolant + * itself as a linear combination + * of data variables & op=1 coeffs + * result *= inverse_dx; + * break; + * case ... + * } + * ***store*** result in output array + * } + * } + * } + * } + * + * Here "***decode***", "***fetch***", and "***store***" are all + * actually switches on the various array datatypes. For complex + * datatypes "***fetch***" and "***store***" pointer-alias offset the + * N-dimensional input array to a 2-dimensional array where the 1st axis + * is the 1-D subscript corresponding to the N input axes, and the 2nd + * axes has 2 elements subscripted by [part] for the (real,imaginary) + * components of the complex values. + * + * At present we do all floating-point computations in type "fp" + * (typically a typedef for CCTK_REAL), so arrays of higher precision + * than this will incur extra rounding errors. In practice these should + * be negligible compared to the "truncation" interpolation errors. + */ + +/* + * Naming conventions: + * in, out = 0-origin indices each selecting an input/output array + * pt = 0-origin index selecting an interpolation point + */ + +/* number of real "parts" in a complex number */ +#define COMPLEX_N_PARTS 2 + +/* layout of axes in N_dims-element arrays */ +#define X_AXIS 0 +#define Y_AXIS 1 +#define Z_AXIS 2 +#if (N_DIMS > 3) + #error "N_DIMS may not be > 3!" +#endif + +/* input array size, strides, and subscripting computation */ +#if (N_DIMS >= 1) + const int stride_i = input_array_strides[X_AXIS]; +#endif +#if (N_DIMS >= 2) + const int stride_j = input_array_strides[Y_AXIS]; +#endif +#if (N_DIMS >= 3) + const int stride_k = input_array_strides[Z_AXIS]; +#endif + +#if (N_DIMS == 1) + #define SUB1(i) (i*stride_i) +#elif (N_DIMS == 2) + #define SUB2(i,j) (i*stride_i + j*stride_j) +#elif (N_DIMS == 3) + #define SUB3(i,j,k) (i*stride_i + j*stride_j + k*stride_k) +#else + #error "N_DIMS must be 1, 2, or 3!" +#endif + +/* macros used by machine-generated interpolation coefficient expressions */ +/* + * FIXME: right now this is used as (eg) RATIONAL(1.0,2.0); + * it might be cleaner if it were RATIONAL(1,2) with the + * preprocessor ## operator used to glue on the .0 + * (I _think_ this is portable, but is it really??) + */ +#define RATIONAL(num,den) (num/den) + + +/* + * compute flags specifying which derivatives are wanted + */ +#ifdef HAVE_OP_I + bool want_I = false; +#endif +#ifdef HAVE_OP_DX + bool want_dx = false; +#endif +#ifdef HAVE_OP_DY + bool want_dy = false; +#endif +#ifdef HAVE_OP_DZ + bool want_dz = false; +#endif +#ifdef HAVE_OP_DXX + bool want_dxx = false; +#endif +#ifdef HAVE_OP_DXY + bool want_dxy = false; +#endif +#ifdef HAVE_OP_DXZ + bool want_dxz = false; +#endif +#ifdef HAVE_OP_DYY + bool want_dyy = false; +#endif +#ifdef HAVE_OP_DYZ + bool want_dyz = false; +#endif +#ifdef HAVE_OP_DZZ + bool want_dzz = false; +#endif + { +int out; + for (out = 0 ; out < N_output_arrays ; ++out) + { + switch (operation_codes[out]) + { + #ifdef HAVE_OP_I + case 0: want_I = true; break; + #endif + #ifdef HAVE_OP_DX + case 1: want_dx = true; break; + #endif + #ifdef HAVE_OP_DY + case 2: want_dy = true; break; + #endif + #ifdef HAVE_OP_DZ + case 3: want_dz = true; break; + #endif + #ifdef HAVE_OP_DXX + case 11: want_dxx = true; break; + #endif + #ifdef HAVE_OP_DXY + case 12: + case 21: want_dxy = true; break; + #endif + #ifdef HAVE_OP_DXZ + case 13: + case 31: want_dxz = true; break; + #endif + #ifdef HAVE_OP_DYY + case 22: want_dyy = true; break; + #endif + #ifdef HAVE_OP_DYZ + case 23: + case 32: want_dyz = true; break; + #endif + #ifdef HAVE_OP_DZZ + case 33: want_dzz = true; break; + #endif + default: +CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, + "Generalized interpolation operation_code %d not supported!", + operation_codes[out]); /*NOTREACHED*/ + return UTIL_ERROR_BAD_INPUT; /*** ERROR RETURN ***/ + } + } + } + +/* + * save origin/delta variables, precompute 1/delta factors + * ... in theory we could only compute those factors we're going to use, + * but it's not worth the trouble, so we just compute them all + */ + { +#if N_DIMS >= 1 + const fp origin_x = coord_system_origin[X_AXIS]; + const fp delta_x = grid_spacing[X_AXIS]; + #if defined(HAVE_OP_DX) || defined(HAVE_OP_DXY) || defined(HAVE_OP_DXZ) + const fp inverse_delta_x = 1.0 / delta_x; + #endif + #ifdef HAVE_OP_DXX + const fp inverse_delta_x2 = 1.0 / (delta_x*delta_x); + #endif +#endif +#if N_DIMS >= 2 + const fp origin_y = coord_system_origin[Y_AXIS]; + const fp delta_y = grid_spacing[Y_AXIS]; + #if defined(HAVE_OP_DY) || defined(HAVE_OP_DXY) || defined(HAVE_OP_DYZ) + const fp inverse_delta_y = 1.0 / delta_y; + #endif + #ifdef HAVE_OP_DYY + const fp inverse_delta_y2 = 1.0 / (delta_y*delta_y); + #endif +#endif +#if N_DIMS >= 3 + const fp origin_z = coord_system_origin[Z_AXIS]; + const fp delta_z = grid_spacing[Z_AXIS]; + #if defined(HAVE_OP_DZ) || defined(HAVE_OP_DXZ) || defined(HAVE_OP_DYZ) + const fp inverse_delta_z = 1.0 / delta_z; + #endif + #ifdef HAVE_OP_DZZ + const fp inverse_delta_z2 = 1.0 / (delta_z*delta_z); + #endif +#endif + +/* + * interpolate at each point + */ + { +int pt; + for (pt = 0 ; pt < N_interp_points ; ++pt) + { + /* declare all the data-values variables */ + #include DATA_VAR_DCL_FILE_NAME + + /* declare all the interpolation coefficients */ + #ifdef HAVE_OP_I + #include COEFF_I_DCL_FILE_NAME + #endif + #ifdef HAVE_OP_DX + #include COEFF_DX_DCL_FILE_NAME + #endif + #ifdef HAVE_OP_DY + #include COEFF_DY_DCL_FILE_NAME + #endif + #ifdef HAVE_OP_DZ + #include COEFF_DZ_DCL_FILE_NAME + #endif + #ifdef HAVE_OP_DXX + #include COEFF_DXX_DCL_FILE_NAME + #endif + #ifdef HAVE_OP_DXY + #include COEFF_DXY_DCL_FILE_NAME + #endif + #ifdef HAVE_OP_DXZ + #include COEFF_DXZ_DCL_FILE_NAME + #endif + #ifdef HAVE_OP_DYY + #include COEFF_DYY_DCL_FILE_NAME + #endif + #ifdef HAVE_OP_DYZ + #include COEFF_DYZ_DCL_FILE_NAME + #endif + #ifdef HAVE_OP_DZZ + #include COEFF_DZZ_DCL_FILE_NAME + #endif + + + /* + * ***fetch*** interpolation point coordinates + */ + fp interp_coords_fp[N_DIMS]; + int axis; + for (axis = 0 ; axis < N_DIMS ; ++axis) + { + /* pointer to array of interp coords for this axis */ + const void *const interp_coords_ptr = interp_coords[axis]; + + switch (interp_coords_type_code) + { + + case CCTK_VARIABLE_REAL: + { + const CCTK_REAL *const interp_coords_ptr_real + = (const CCTK_REAL *) interp_coords_ptr; + interp_coords_fp[axis] = interp_coords_ptr_real[pt]; + break; + } + + #ifdef HAVE_CCTK_REAL4 + case CCTK_VARIABLE_REAL4: + { + const CCTK_REAL4 *const interp_coords_ptr_real4 + = (const CCTK_REAL4 *) interp_coords_ptr; + interp_coords_fp[axis] = interp_coords_ptr_real4[pt]; + break; + } + #endif + + #ifdef HAVE_CCTK_REAL8 + case CCTK_VARIABLE_REAL8: + { + const CCTK_REAL8 *const interp_coords_ptr_real8 + = (const CCTK_REAL8 *) interp_coords_ptr; + interp_coords_fp[axis] = interp_coords_ptr_real8[pt]; + break; + } + #endif + + #ifdef HAVE_CCTK_REAL16 + case CCTK_VARIABLE_REAL16: + { + /* FIXME: maybe we should warn (once per cactus run) */ + /* that we may be doing arithmetic in lower */ + /* precision than the interp coords? */ + const CCTK_REAL16 *const interp_coords_ptr_real16 + = (const CCTK_REAL16 *) interp_coords_ptr; + interp_coords_fp[axis] + = interp_coords_ptr_real16[pt]; + break; + } + #endif + + default: + CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, + "interp-coords datatype %d not supported!", + interp_coords_type_code); + /*NOTREACHED*/ + return UTIL_ERROR_BAD_INPUT; /*** ERROR RETURN ***/ + /* end of switch (interp_coords_type_code) */ + } + + /* end of for (axis = ...) loop */ + } + + + /* + * locate interpolation molecules with respect to the grid, i.e. + * compute (x,y,z) = coordinates of interpolation point + * relative to molecule center, in units of the grid spacing + * + * n.b. we need the final answers in variables with the magic + * names (x,y,z) (machine-generated code uses these names), + * but we use temp variables as intermediates for (likely) + * better performance: the temp variables have their addresses + * taken and so may not be register-allocated, whereas the + * final (x,y,z) are "clean" and thus more likely to be + * register-allocated + */ + { + #if (N_DIMS >= 1) + fp x_temp; + const int center_i + = LocalInterp_molecule_posn(origin_x, delta_x, + input_array_min_subscripts[X_AXIS], + input_array_max_subscripts[X_AXIS], + out_of_range_tolerance[X_AXIS], + MOLECULE_SIZE, + interp_coords_fp[X_AXIS], + &x_temp, + (int *) NULL, (int *) NULL); + const fp x = x_temp; + #endif + #if (N_DIMS >= 2) + fp y_temp; + const int center_j + = LocalInterp_molecule_posn(origin_y, delta_y, + input_array_min_subscripts[Y_AXIS], + input_array_max_subscripts[Y_AXIS], + out_of_range_tolerance[Y_AXIS], + MOLECULE_SIZE, + interp_coords_fp[Y_AXIS], + &y_temp, + (int *) NULL, (int *) NULL); + const fp y = y_temp; + #endif + #if (N_DIMS >= 3) + fp z_temp; + const int center_k + = LocalInterp_molecule_posn(origin_z, delta_z, + input_array_min_subscripts[Z_AXIS], + input_array_max_subscripts[Z_AXIS], + out_of_range_tolerance[Z_AXIS], + MOLECULE_SIZE, + interp_coords_fp[Z_AXIS], + &z_temp, + (int *) NULL, (int *) NULL); + const fp z = z_temp; + #endif + + /* is the interpolation point out-of-range? */ + #if (N_DIMS >= 1) + if ((center_i == INT_MIN) || (center_i == INT_MAX)) + then { + *error_pt = pt; + *error_axis = X_AXIS; + *error_end = (center_i == INT_MIN) ? -1 : +1; + return CCTK_ERROR_INTERP_POINT_X_RANGE; /*** ERROR RETURN ***/ + } + #endif + #if (N_DIMS >= 2) + if ((center_j == INT_MIN) || (center_j == INT_MAX)) + then { + *error_pt = pt; + *error_axis = Y_AXIS; + *error_end = (center_j == INT_MIN) ? -1 : +1; + return CCTK_ERROR_INTERP_POINT_X_RANGE; /*** ERROR RETURN ***/ + } + #endif + #if (N_DIMS >= 3) + if ((center_k == INT_MIN) || (center_k == INT_MAX)) + then { + *error_pt = pt; + *error_axis = Z_AXIS; + *error_end = (center_k == INT_MIN) ? -1 : +1; + return CCTK_ERROR_INTERP_POINT_X_RANGE; /*** ERROR RETURN ***/ + } + #endif + + /* 1D subscript of molecule center in input arrays */ + /* (this is used in DATA data-fetching macros below) */ + { + #if (N_DIMS == 1) + const int center_sub = SUB1(center_i); + #elif (N_DIMS == 2) + const int center_sub = SUB2(center_i, center_j); + #elif (N_DIMS == 3) + const int center_sub = SUB3(center_i, center_j, center_k); + #else + #error "N_DIMS must be 1, 2, or 3!" + #endif + + + /* + * compute the coefficients for whichever derivatives are wanted + * using machine-generated coefficient expressions + * (these are polynomials in the variables (x,y,z)) + */ + #ifdef HAVE_OP_I + if (want_I) + then { + #include COEFF_I_COMPUTE_FILE_NAME + } + #endif + #ifdef HAVE_OP_DX + if (want_dx) + then { + #include COEFF_DX_COMPUTE_FILE_NAME + } + #endif + #ifdef HAVE_OP_DY + if (want_dy) + then { + #include COEFF_DY_COMPUTE_FILE_NAME + } + #endif + #ifdef HAVE_OP_DZ + if (want_dz) + then { + #include COEFF_DZ_COMPUTE_FILE_NAME + } + #endif + #ifdef HAVE_OP_DXX + if (want_dxx) + then { + #include COEFF_DXX_COMPUTE_FILE_NAME + } + #endif + #ifdef HAVE_OP_DXY + if (want_dxy) + then { + #include COEFF_DXY_COMPUTE_FILE_NAME + } + #endif + #ifdef HAVE_OP_DXZ + if (want_dxz) + then { + #include COEFF_DXZ_COMPUTE_FILE_NAME + } + #endif + #ifdef HAVE_OP_DYY + if (want_dyy) + then { + #include COEFF_DYY_COMPUTE_FILE_NAME + } + #endif + #ifdef HAVE_OP_DYZ + if (want_dyz) + then { + #include COEFF_DYZ_COMPUTE_FILE_NAME + } + #endif + #ifdef HAVE_OP_DZZ + if (want_dzz) + then { + #include COEFF_DZZ_COMPUTE_FILE_NAME + } + #endif + + + /* + * compute each output array at this point + */ + { + int out; + const void *input_array_ptr = NULL; + for (out = 0 ; out < N_output_arrays ; ++out) + { + const int in = operand_indices[out]; + const int input_offset = input_array_offsets[in]; + const int sub_temp = input_offset + center_sub; + + /* + * ***decode*** the input/output array datatypes + * to determine whether they're real or complex, + * and verify that they're both the same in this regard + * ==> define + * const int N_parts = data is complex ? 2 : 1; + */ + const int N_input_parts + = LocalInterp_decode_N_parts(input_array_type_codes[in]); + const int N_output_parts + = LocalInterp_decode_N_parts(output_array_type_codes[out]); + if (N_input_parts != N_output_parts) + then { +CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, + "\n" + " can't do real input --> complex output\n" + " or complex input --> real output interpolation!\n" + " (0-origin) input #%d datatype = %d, output #%d datatype = %d\n" + , + in, (int) input_array_type_codes[in], + out, (int) output_array_type_codes[out]); /*NOTREACHED*/ + return UTIL_ERROR_BAD_INPUT; /*** ERROR RETURN ***/ + } + + { + const int N_parts = N_input_parts; + int part; + for (part = 0 ; part < N_parts ; ++part) + { + if ( (input_arrays[in] != input_array_ptr) + || (part != 0) ) + then { + /* + * ***fetch*** the input array values + * into local variables + */ + input_array_ptr = input_arrays[in]; + switch (input_array_type_codes[in]) + { + +case CCTK_VARIABLE_REAL: + { + const CCTK_REAL *const input_array_ptr_real + = (const CCTK_REAL *) input_array_ptr; + #undef DATA + #if (N_DIMS == 1) + #define DATA(i) input_array_ptr_real[sub_temp + SUB1(i)] + #elif (N_DIMS == 2) + #define DATA(i,j) input_array_ptr_real[sub_temp + SUB2(i,j)] + #elif (N_DIMS == 3) + #define DATA(i,j,k) input_array_ptr_real[sub_temp + SUB3(i,j,k)] + #else + #error "N_DIMS must be 1, 2, or 3!" + #endif + #include DATA_VAR_ASSIGN_FILE_NAME + break; + } + +#ifdef HAVE_CCTK_REAL4 +case CCTK_VARIABLE_REAL4: + { + const CCTK_REAL4 *const input_array_ptr_real4 + = (const CCTK_REAL4 *) input_array_ptr; + #undef DATA + #if (N_DIMS == 1) + #define DATA(i) input_array_ptr_real4[sub_temp + SUB1(i)] + #elif (N_DIMS == 2) + #define DATA(i,j) input_array_ptr_real4[sub_temp + SUB2(i,j)] + #elif (N_DIMS == 3) + #define DATA(i,j,k) input_array_ptr_real4[sub_temp + SUB3(i,j,k)] + #else + #error "N_DIMS must be 1, 2, or 3!" + #endif + #include DATA_VAR_ASSIGN_FILE_NAME + break; + } +#endif /* HAVE_CCTK_REAL4 */ + +#ifdef HAVE_CCTK_REAL8 +case CCTK_VARIABLE_REAL8: + { + const CCTK_REAL8 *const input_array_ptr_real8 + = (const CCTK_REAL8 *) input_array_ptr; + #undef DATA + #if (N_DIMS == 1) + #define DATA(i) input_array_ptr_real8[sub_temp + SUB1(i)] + #elif (N_DIMS == 2) + #define DATA(i,j) input_array_ptr_real8[sub_temp + SUB2(i,j)] + #elif (N_DIMS == 3) + #define DATA(i,j,k) input_array_ptr_real8[sub_temp + SUB3(i,j,k)] + #else + #error "N_DIMS must be 1, 2, or 3!" + #endif + #include DATA_VAR_ASSIGN_FILE_NAME + break; + } +#endif /* HAVE_CCTK_REAL8 */ + +#ifdef HAVE_CCTK_REAL16 +case CCTK_VARIABLE_REAL16: + { + /* FIXME: maybe we should warn (once per cactus run) that we may be */ + /* doing arithmetic in lower precision than the data type? */ + const CCTK_REAL16 *const input_array_ptr_real16 + = (const CCTK_REAL16 *) input_array_ptr; + #undef DATA + #if (N_DIMS == 1) + #define DATA(i) input_array_ptr_real16[sub_temp + SUB1(i)] + #elif (N_DIMS == 2) + #define DATA(i,j) input_array_ptr_real16[sub_temp + SUB2(i,j)] + #elif (N_DIMS == 3) + #define DATA(i,j,k) input_array_ptr_real16[sub_temp + SUB3(i,j,k)] + #else + #error "N_DIMS must be 1, 2, or 3!" + #endif + #include DATA_VAR_ASSIGN_FILE_NAME + break; + } +#endif /* HAVE_CCTK_REAL16 */ + +case CCTK_VARIABLE_COMPLEX: + { + const CCTK_REAL (*const input_array_ptr_complex)[COMPLEX_N_PARTS] + = (const CCTK_REAL (*)[COMPLEX_N_PARTS]) input_array_ptr; + #undef DATA + #if (N_DIMS == 1) + #define DATA(i) input_array_ptr_complex[sub_temp + SUB1(i)][part] + #elif (N_DIMS == 2) + #define DATA(i,j) input_array_ptr_complex[sub_temp + SUB2(i,j)][part] + #elif (N_DIMS == 3) + #define DATA(i,j,k) input_array_ptr_complex[sub_temp + SUB3(i,j,k)][part] + #else + #error "N_DIMS must be 1, 2, or 3!" + #endif + #include DATA_VAR_ASSIGN_FILE_NAME + break; + } + +#ifdef HAVE_CCTK_COMPLEX8 +case CCTK_VARIABLE_COMPLEX8: + { + const CCTK_REAL4 (*const input_array_ptr_complex8)[COMPLEX_N_PARTS] + = (const CCTK_REAL4 (*)[COMPLEX_N_PARTS]) input_array_ptr; + #undef DATA + #if (N_DIMS == 1) + #define DATA(i) input_array_ptr_complex8[sub_temp + SUB1(i)][part] + #elif (N_DIMS == 2) + #define DATA(i,j) input_array_ptr_complex8[sub_temp + SUB2(i,j)][part] + #elif (N_DIMS == 3) + #define DATA(i,j,k) input_array_ptr_complex8[sub_temp + SUB3(i,j,k)][part] + #else + #error "N_DIMS must be 1, 2, or 3!" + #endif + #include DATA_VAR_ASSIGN_FILE_NAME + break; + } +#endif /* HAVE_CCTK_COMPLEX8 */ + +#ifdef HAVE_CCTK_COMPLEX16 +case CCTK_VARIABLE_COMPLEX16: + { + const CCTK_REAL8 (*const input_array_ptr_complex16)[COMPLEX_N_PARTS] + = (const CCTK_REAL8 (*)[COMPLEX_N_PARTS]) input_array_ptr; + #undef DATA + #if (N_DIMS == 1) + #define DATA(i) input_array_ptr_complex16[sub_temp + SUB1(i)][part] + #elif (N_DIMS == 2) + #define DATA(i,j) input_array_ptr_complex16[sub_temp + SUB2(i,j)][part] + #elif (N_DIMS == 3) + #define DATA(i,j,k) input_array_ptr_complex16[sub_temp + SUB3(i,j,k)][part] + #else + #error "N_DIMS must be 1, 2, or 3!" + #endif + #include DATA_VAR_ASSIGN_FILE_NAME + break; + } +#endif /* HAVE_CCTK_COMPLEX16 */ + +#ifdef HAVE_CCTK_COMPLEX32 +case CCTK_VARIABLE_COMPLEX32: + { + const CCTK_REAL16 (*const input_array_ptr_complex32)[COMPLEX_N_PARTS] + = (const CCTK_REAL16 (*)[COMPLEX_N_PARTS]) input_array_ptr; + #undef DATA + #if (N_DIMS == 1) + #define DATA(i) input_array_ptr_complex32[sub_temp + SUB1(i)][part] + #elif (N_DIMS == 2) + #define DATA(i,j) input_array_ptr_complex32[sub_temp + SUB2(i,j)][part] + #elif (N_DIMS == 3) + #define DATA(i,j,k) input_array_ptr_complex32[sub_temp + SUB3(i,j,k)][part] + #else + #error "N_DIMS must be 1, 2, or 3!" + #endif + #include DATA_VAR_ASSIGN_FILE_NAME + break; + } +#endif /* HAVE_CCTK_COMPLEX32 */ + +default: + CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, + "input datatype %d not supported!", + input_array_type_codes[in]); /*NOTREACHED*/ + return UTIL_ERROR_BAD_INPUT; /*** ERROR RETURN ***/ + } + } + + /* + * compute the interpolant itself + * as a linear combination of the data variables + */ + { + fp result; + switch (operation_codes[out]) + { + #ifdef HAVE_OP_I + case 0: + #include INTERP_I_COMPUTE_FILE_NAME + break; + #endif + #ifdef HAVE_OP_DX + case 1: + #include INTERP_DX_COMPUTE_FILE_NAME + result *= inverse_delta_x; + break; + #endif + #ifdef HAVE_OP_DY + case 2: + #include INTERP_DY_COMPUTE_FILE_NAME + result *= inverse_delta_y; + break; + #endif + #ifdef HAVE_OP_DZ + case 3: + #include INTERP_DZ_COMPUTE_FILE_NAME + result *= inverse_delta_z; + break; + #endif + #ifdef HAVE_OP_DXX + case 11: + #include INTERP_DXX_COMPUTE_FILE_NAME + result *= inverse_delta_x2; + break; + #endif + #ifdef HAVE_OP_DXY + case 12: + case 21: + #include INTERP_DXY_COMPUTE_FILE_NAME + result *= inverse_delta_x * inverse_delta_y; + break; + #endif + #ifdef HAVE_OP_DXZ + case 13: + case 31: + #include INTERP_DXZ_COMPUTE_FILE_NAME + result *= inverse_delta_x * inverse_delta_z; + break; + #endif + #ifdef HAVE_OP_DYY + case 22: + #include INTERP_DYY_COMPUTE_FILE_NAME + result *= inverse_delta_y2; + break; + #endif + #ifdef HAVE_OP_DYZ + case 23: + case 32: + #include INTERP_DYZ_COMPUTE_FILE_NAME + result *= inverse_delta_y * inverse_delta_z; + break; + #endif + #ifdef HAVE_OP_DZZ + case 33: + #include INTERP_DZZ_COMPUTE_FILE_NAME + result *= inverse_delta_z2; + break; + #endif + default: +CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, + "Generalized interpolation operation_code %d not supported!", + operation_codes[out]); /*NOTREACHED*/ + return UTIL_ERROR_BAD_INPUT; + /*** ERROR RETURN ***/ + /* end of switch (operation_codes[out]) */ + } + + + /* + * ***store*** the result in the output array + */ + switch (output_array_type_codes[out]) + { + +case CCTK_VARIABLE_REAL: + { + CCTK_REAL *const output_array_ptr_real + = (CCTK_REAL *) output_arrays[out]; + output_array_ptr_real[pt] = result; + break; + } + +#ifdef HAVE_CCTK_REAL4 +case CCTK_VARIABLE_REAL4: + { + CCTK_REAL4 *const output_array_ptr_real4 + = (CCTK_REAL4 *) output_arrays[out]; + output_array_ptr_real4[pt] = result; + break; + } +#endif + +#ifdef HAVE_CCTK_REAL8 +case CCTK_VARIABLE_REAL8: + { + CCTK_REAL8 *const output_array_ptr_real8 + = (CCTK_REAL8 *) output_arrays[out]; + output_array_ptr_real8[pt] = result; + break; + } +#endif + +#ifdef HAVE_CCTK_REAL16 +case CCTK_VARIABLE_REAL16: + { + CCTK_REAL16 *const output_array_ptr_real16 + = (CCTK_REAL16 *) output_arrays[out]; + output_array_ptr_real16[pt] = result; + break; + } +#endif + +case CCTK_VARIABLE_COMPLEX: + { + CCTK_COMPLEX *const output_array_ptr_complex + = (CCTK_COMPLEX *) output_arrays[out]; + ((CCTK_REAL *) & output_array_ptr_complex[pt]) [part] + = result; + break; + } + +#ifdef HAVE_CCTK_COMPLEX8 +case CCTK_VARIABLE_COMPLEX8: + { + CCTK_COMPLEX8 *const output_array_ptr_complex8 + = (CCTK_COMPLEX8 *) output_arrays[out]; + ((CCTK_REAL4 *) & output_array_ptr_complex8[pt]) [part] + = result; + break; + } +#endif /* HAVE_CCTK_COMPLEX8 */ + +#ifdef HAVE_CCTK_COMPLEX16 +case CCTK_VARIABLE_COMPLEX16: + { + CCTK_COMPLEX16 *const output_array_ptr_complex16 + = (CCTK_COMPLEX16 *) output_arrays[out]; + ((CCTK_REAL8 *) & output_array_ptr_complex16[pt]) [part] + = result; + break; + } +#endif /* HAVE_CCTK_COMPLEX16 */ + +#ifdef HAVE_CCTK_COMPLEX32 +case CCTK_VARIABLE_COMPLEX32: + { + CCTK_COMPLEX32 *const output_array_ptr_complex32 + = (CCTK_COMPLEX32 *) output_arrays[out]; + ((CCTK_REAL16 *) & output_array_ptr_complex32[pt]) [part] + = result; + break; + } +#endif /* HAVE_CCTK_COMPLEX32 */ + +default: + CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, + "output datatype %d not supported", + output_array_type_codes[out]); /*NOTREACHED*/ + return UTIL_ERROR_BAD_INPUT; /*** ERROR RETURN ***/ + /* end of switch (output type code) */ + } + } + /* end of for (part = ...) loop */ + } + } + /* end of for (out = ...) loop */ + } + } + } + } + + /* end of for (pt = ...) loop */ + } + +return 0; /*** NORMAL RETURN ***/ + } + } +} diff --git a/src/GeneralizedPolynomial-Uniform/template.h b/src/GeneralizedPolynomial-Uniform/template.h new file mode 100644 index 0000000..891b997 --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/template.h @@ -0,0 +1,32 @@ +/*@@ + @file template.h + @date 22 Jan 2002 + @author Jonathan Thornburg + @desc prototype for template function in "template.c" + @enddesc + @@*/ +int FUNCTION_NAME(/***** coordinate system *****/ + const CCTK_REAL coord_system_origin[], + const CCTK_REAL grid_spacing[], + /***** interpolation points *****/ + int N_interp_points, + int interp_coords_type_code, + const void *const interp_coords[], + const CCTK_REAL out_of_range_tolerance[], + /***** input arrays *****/ + int N_input_arrays, + const CCTK_INT input_array_offsets[], + const CCTK_INT input_array_strides[], + 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[], + /***** output arrays *****/ + int N_output_arrays, + const CCTK_INT output_array_type_codes[], + void *const output_arrays[], + /***** operation info */ + const CCTK_INT operand_indices[], + const CCTK_INT operation_codes[], + /***** error-reporting *****/ + int* error_pt, int* error_axis, int* error_end); diff --git a/src/GeneralizedPolynomial-Uniform/test_molecule_posn.c b/src/GeneralizedPolynomial-Uniform/test_molecule_posn.c new file mode 100644 index 0000000..fd0b5bc --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/test_molecule_posn.c @@ -0,0 +1,302 @@ +/* test_molecule_posn -- test driver for LocalInterp_molecule_posn() */ + +/* + * This program is a test driver for LocalInterp_molecule_posn() . + * + * Usage: + * test_molecule_posn # run a preset set of tests + * test_molecule_posn molecule_size x # do a single test as specified + */ + +#include <math.h> +#include <stdio.h> +#include <stdlib.h> +#include <limits.h> + +#ifndef LOCALINTERP_STANDALONE_BUILD + #include "cctk.h" +#endif + +#include "InterpLocalUniform.h" + +#define fuzzy_EQ(x,y) (fabs(x-y) <= 1.0e-10) + +/* prototypes */ +void run_interactive_test(fp out_of_range_tolerance, int molecule_size, fp x); +int run_batch_tests(void); + +/* hard-wired arguments for LocalInterp_molecule_posn() */ +const fp grid_x0 = 3.1; +const fp grid_dx = 0.1; +const int grid_i_min = 42; /* x_min = 7.3 */ +const int grid_i_max = 105; /* x_max = 13.6 */ + +/******************************************************************************/ + +/* + * test data for batch tests + */ + +/* arguments/results structure for LocalInterp_molecule_posn() calls */ +struct args_results + { + /* args */ + fp out_of_range_tolerance; + int molecule_size; + fp x; + /* results */ + int i_center; + fp x_rel; + int m_min, m_max; + }; + +/* test data */ +static const struct args_results test_data[] = + { + /* molecule size 2 */ + { 1.0, 2, 7.19, INT_MIN, -1.1, 0,+1 }, + { 1.0, 2, 7.21, 42, -0.9, 0,+1 }, + { 1.0, 2, 7.24, 42, -0.6, 0,+1 }, + { 1.0, 2, 7.26, 42, -0.4, 0,+1 }, + { 1.0, 2, 7.29, 42, -0.1, 0,+1 }, + {-1.0, 2, 7.29, INT_MIN, -0.1, 0,+1 }, + { 1.0e-12, 2, 7.3, 42, 0.0, 0,+1 }, /* x == grid_x_min */ + { 1.0e-12, 2, 7.31, 42, +0.1, 0,+1 }, + {-1.0 , 2, 7.31, 42, +0.1, 0,+1 }, + { 1.0e-12, 2, 7.35, 42, +0.5, 0,+1 }, + { 1.0e-12, 2, 7.39, 42, +0.9, 0,+1 }, + { 1.0e-12, 2, 7.41, 43, 0.1, 0,+1 }, + { 1.0e-12, 2, 9.81, 67, +0.1, 0,+1 }, + { 1.0e-12, 2, 9.85, 67, +0.5, 0,+1 }, + { 1.0e-12, 2, 9.89, 67, +0.9, 0,+1 }, + { 1.0e-12, 2, 13.45, 103, +0.5, 0,+1 }, + { 1.0e-12, 2, 13.51, 104, +0.1, 0,+1 }, + { 1.0e-12, 2, 13.55, 104, +0.5, 0,+1 }, + { 1.0e-12, 2, 13.59, 104, +0.9, 0,+1 }, + {-1.0, 2, 13.59, 104, +0.9, 0,+1 }, + { 1.0e-12, 2, 13.6, 104, +1.0, 0,+1 }, /* x == grid_x_max */ + { 1.0, 2, 13.61, 104, +1.1, 0,+1 }, + {-1.0, 2, 13.61, INT_MAX, +1.1, 0,+1 }, + { 1.0, 2, 13.65, 104, +1.5, 0,+1 }, + { 1.0, 2, 13.69, 104, +1.9, 0,+1 }, + { 1.0, 2, 13.71, INT_MAX, +2.1, 0,+1 }, + /* molecule size 3 */ + { 1.0, 3, 7.19, INT_MIN, -2.1, -1,+1 }, + { 1.0, 3, 7.21, 43, -1.9, -1,+1 }, + { 1.0, 3, 7.24, 43, -1.6, -1,+1 }, + { 1.0, 3, 7.26, 43, -1.4, -1,+1 }, + { 1.0, 3, 7.29, 43, -1.1, -1,+1 }, + {-1.0, 3, 7.29, INT_MIN, -1.1, -1,+1 }, + { 1.0e-12, 3, 7.3, 43, -1.0, -1,+1 }, /* x == grid_x_min */ + { 1.0e-12, 3, 7.31, 43, -0.9, -1,+1 }, + { 1.0e-12, 3, 7.34, 43, -0.6, -1,+1 }, + {-1.0, 3, 7.34, INT_MIN, -0.6, -1,+1 }, + { 1.0e-12, 3, 7.36, 43, -0.4, -1,+1 }, + {-1.0, 3, 7.36, 43, -0.4, -1,+1 }, + { 1.0e-12, 3, 7.39, 43, -0.1, -1,+1 }, + { 1.0e-12, 3, 7.4, 43, 0.0, -1,+1 }, + { 1.0e-12, 3, 7.44, 43, +0.4, -1,+1 }, + { 1.0e-12, 3, 7.46, 44, -0.4, -1,+1 }, + { 1.0e-12, 3, 9.8, 67, 0.0, -1,+1 }, + { 1.0e-12, 3, 9.81, 67, +0.1, -1,+1 }, + { 1.0e-12, 3, 9.84, 67, +0.4, -1,+1 }, + { 1.0e-12, 3, 9.86, 68, -0.4, -1,+1 }, + { 1.0e-12, 3, 9.89, 68, -0.1, -1,+1 }, + { 1.0e-12, 3, 9.9, 68, 0.0, -1,+1 }, + { 1.0e-12, 3, 13.44, 103, +0.4, -1,+1 }, + { 1.0e-12, 3, 13.46, 104, -0.4, -1,+1 }, + { 1.0e-12, 3, 13.5, 104, 0.0, -1,+1 }, + { 1.0e-12, 3, 13.51, 104, +0.1, -1,+1 }, + { 1.0e-12, 3, 13.54, 104, +0.4, -1,+1 }, + {-1.0, 3, 13.54, 104, +0.4, -1,+1 }, + { 1.0e-12, 3, 13.56, 104, +0.6, -1,+1 }, + {-1.0, 3, 13.56, INT_MAX, +0.6, -1,+1 }, + { 1.0e-12, 3, 13.59, 104, +0.9, -1,+1 }, + { 1.0e-12, 3, 13.6, 104, +1.0, -1,+1 }, /* x == grid_x_max */ + { 1.0, 3, 13.61, 104, +1.1, -1,+1 }, + { 1.0, 3, 13.65, 104, +1.5, -1,+1 }, + { 1.0, 3, 13.69, 104, +1.9, -1,+1 }, + { 1.0, 3, 13.71, INT_MAX, +2.1, -1,+1 }, + /* molecule size 4 */ + { 0.2, 4, 7.27, INT_MIN, -1.3, -1,+2 }, + { 0.2, 4, 7.29, 43, -1.1, -1,+2 }, + { 1.0e-12, 4, 7.3, 43, -1.0, -1,+2 }, /* x == grid_x_min */ + { 1.0e-12, 4, 7.33, 43, -0.7, -1,+2 }, + { 1.0e-12, 4, 7.39, 43, -0.1, -1,+2 }, + {-1.0, 4, 7.39, INT_MIN, -0.1, -1,+2 }, + { 1.0e-12, 4, 7.4, 43, 0.0, -1,+2 }, + {-1.0, 4, 7.41, 43, +0.1, -1,+2 }, + { 1.0e-12, 4, 7.42, 43, +0.2, -1,+2 }, + { 1.0e-12, 4, 7.48, 43, +0.8, -1,+2 }, + { 1.0e-12, 4, 7.51, 44, +0.1, -1,+2 }, + { 1.0e-12, 4, 9.81, 67, +0.1, -1,+2 }, + { 1.0e-12, 4, 9.85, 67, +0.5, -1,+2 }, + { 1.0e-12, 4, 9.89, 67, +0.9, -1,+2 }, + { 1.0e-12, 4, 13.39, 102, +0.9, -1,+2 }, + { 1.0e-12, 4, 13.41, 103, +0.1, -1,+2 }, + { 1.0e-12, 4, 13.48, 103, +0.8, -1,+2 }, + {-1.0, 4, 13.48, 103, +0.8, -1,+2 }, + { 1.0e-12, 4, 13.5, 103, +1.0, -1,+2 }, + { 1.0e-12, 4, 13.51, 103, +1.1, -1,+2 }, + {-1.0, 4, 13.51, INT_MAX, +1.1, -1,+2 }, + { 1.0e-12, 4, 13.55, 103, +1.5, -1,+2 }, + { 1.0e-12, 4, 13.59, 103, +1.9, -1,+2 }, + { 1.0e-12, 4, 13.6, 103, +2.0, -1,+2 }, /* x == grid_x_max */ + { 2.0, 4, 13.79, 103, +3.9, -1,+2 }, + { 2.0, 4, 13.81, INT_MAX, +4.1, -1,+2 }, + /* molecule size 5 */ + { 3.0, 5, 6.99, INT_MIN, -5.1, -2,+2 }, + { 3.0, 5, 7.01, 44, -4.9, -2,+2 }, + { 1.0e-12, 5, 7.3, 44, -2.0, -2,+2 }, /* x == grid_x_min */ + { 1.0e-12, 5, 7.4, 44, -1.0, -2,+2 }, + { 1.0e-12, 5, 7.44, 44, -0.6, -2,+2 }, + {-1.0, 5, 7.44, INT_MIN, -0.6, -2,+2 }, + { 1.0e-12, 5, 7.46, 44, -0.4, -2,+2 }, + {-1.0, 5, 7.46, 44, -0.4, -2,+2 }, + { 1.0e-12, 5, 7.49, 44, -0.1, -2,+2 }, + { 1.0e-12, 5, 7.5, 44, 0.0, -2,+2 }, + { 1.0e-12, 5, 7.54, 44, +0.4, -2,+2 }, + { 1.0e-12, 5, 7.56, 45, -0.4, -2,+2 }, + { 1.0e-12, 5, 7.6, 45, 0.0, -2,+2 }, + { 1.0e-12, 5, 7.64, 45, +0.4, -2,+2 }, + { 1.0e-12, 5, 9.8, 67, 0.0, -2,+2 }, + { 1.0e-12, 5, 9.81, 67, +0.1, -2,+2 }, + { 1.0e-12, 5, 9.84, 67, +0.4, -2,+2 }, + { 1.0e-12, 5, 9.86, 68, -0.4, -2,+2 }, + { 1.0e-12, 5, 9.89, 68, -0.1, -2,+2 }, + { 1.0e-12, 5, 9.9, 68, 0.0, -2,+2 }, + { 1.0e-12, 5, 13.34, 102, +0.4, -2,+2 }, + { 1.0e-12, 5, 13.36, 103, -0.4, -2,+2 }, + { 1.0e-12, 5, 13.39, 103, -0.1, -2,+2 }, + { 1.0e-12, 5, 13.41, 103, +0.1, -2,+2 }, + { 1.0e-12, 5, 13.44, 103, +0.4, -2,+2 }, + {-1.0, 5, 13.44, 103, +0.4, -2,+2 }, + { 1.0e-12, 5, 13.46, 103, +0.6, -2,+2 }, + {-1.0, 5, 13.46, INT_MAX, +0.6, -2,+2 }, + { 1.0e-12, 5, 13.48, 103, +0.8, -2,+2 }, + { 1.0e-12, 5, 13.5, 103, +1.0, -2,+2 }, + { 1.0e-12, 5, 13.51, 103, +1.1, -2,+2 }, + { 1.0e-12, 5, 13.54, 103, +1.4, -2,+2 }, + {-1.0, 5, 13.54, INT_MAX, +1.4, -2,+2 }, + { 1.0e-12, 5, 13.56, 103, +1.6, -2,+2 }, + {-1.0, 5, 13.56, INT_MAX, +1.6, -2,+2 }, + { 1.0e-12, 5, 13.59, 103, +1.9, -2,+2 }, + { 1.0e-12, 5, 13.6, 103, +2.0, -2,+2 }, /* x == grid_x_max */ + { 1.5, 5, 13.74, 103, +3.4, -2,+2 }, + { 1.5, 5, 13.76, INT_MAX, +3.6, -2,+2 }, + }; +#define N_TESTS ((int) (sizeof(test_data)/sizeof(test_data[0]))) + + +/******************************************************************************/ + +int main(int argc, const char *const argv[]) +{ +bool N_fail; +fp out_of_range_tolerance; +int molecule_size; +fp x; + +switch (argc) + { +case 1: + /* run batch tests */ + N_fail = run_batch_tests(); + if (N_fail == 0) + then { + printf("*** all tests successful ***\n"); + return 0; + } + else { + printf("*** %d test(s) failed ***\n", N_fail); + return 1; + } + +case 4: + if ( (sscanf(argv[1], "%lf", &out_of_range_tolerance) == 1) + && (sscanf(argv[2], "%d", &molecule_size) == 1) + && (sscanf(argv[3], "%lf", &x) == 1) ) + then { + run_interactive_test(out_of_range_tolerance, molecule_size, x); + return 0; + } + /* fall through */ +default: + fprintf(stderr, + "usage:\n" + "# run a single test as specified:\n" + " %s out_of_range_tolerance molecule_size x\n" + "# run a preset set of tests:\n" + " %s\n" + , + argv[0], argv[0]); + return 1; + } +} + +/******************************************************************************/ + +/* run a single test as specified */ +void run_interactive_test(fp out_of_range_tolerance, int molecule_size, fp x) +{ +fp x_rel; +int m_min, m_max; + +int i_center = LocalInterp_molecule_posn(grid_x0, grid_dx, + grid_i_min, grid_i_max, + out_of_range_tolerance, + molecule_size, + x, + &x_rel, + &m_min, &m_max); + +if ((i_center == INT_MIN) || (i_center == INT_MAX)) + then printf("i_center=%d\n", i_center); + else printf("i_center=%d x_rel=%g m_[min,max]=[%d,%d] i_[min,max]=[%d,%d]\n", + i_center, x_rel, m_min, m_max, i_center+m_min, i_center+m_max); +} + +/******************************************************************************/ + +/* run a preset set of tests, return number of failures */ +int run_batch_tests(void) +{ +int i; +int failure_count = 0; + + for (i = 0 ; i < N_TESTS ; ++i) + { + const struct args_results *p = & test_data[i]; + fp x_rel = 0.0; + int m_min = 0, m_max = 0; + int i_center = LocalInterp_molecule_posn(grid_x0, grid_dx, + grid_i_min, grid_i_max, + p->out_of_range_tolerance, + p->molecule_size, + p->x, + &x_rel, + &m_min, &m_max); + bool ok = ((i_center == INT_MIN) || (i_center == INT_MAX)) + ? (i_center == p->i_center) + : ( (i_center == p->i_center) + && fuzzy_EQ(x_rel, p->x_rel) + && (m_min == p->m_min) + && (m_max == p->m_max) ); + int msglen = printf("tol=%g size=%d x=%g ==> ", + p->out_of_range_tolerance, p->molecule_size, p->x); + printf("i_center=%d x_rel=%g m_[min,max]=[%d,%d]\n", + i_center, x_rel, m_min, m_max); + if (! ok) + then { + ++failure_count; + { + int error_msglen = printf("***** FAIL: "); + printf("%-*s", msglen-error_msglen, "expected"); + printf("i_center=%d x_rel=%g m_[min,max]=[%d,%d]\n", + p->i_center, p->x_rel, p->m_min, p->m_max); + } + } + } + +return failure_count; +} diff --git a/src/GeneralizedPolynomial-Uniform/util.c b/src/GeneralizedPolynomial-Uniform/util.c new file mode 100644 index 0000000..443fa1b --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/util.c @@ -0,0 +1,109 @@ + /*@@ + @file util.c + @date 23 Oct 2001 + @author Jonathan Thornburg <jthorn@aei.mpg.de> + @desc + Utility routines for generalized interpolation. + + This file contains various utility routines for the interpolator. + @enddesc + @version $Id$ + @@*/ + +#include <limits.h> +#include <stdlib.h> +#include <stdio.h> +#include <math.h> + +#ifndef LOCALINTERP_STANDALONE_BUILD + #include "cctk.h" +#endif + +#include "InterpLocalUniform.h" + +/* the rcs ID and its dummy function to use it */ +static const char *rcsid = "$Header$"; +#ifndef LOCALINTERP_STANDALONE_BUILD + CCTK_FILEVERSION(CactusBase_LocalInterp_src_GeneralizedPolynomialUniform_util_c) +#endif + +/******************************************************************************/ + +/*@@ + @routine LocalInterp_zero_int_array + @date 23 Oct 2001 + @author Jonathan Thornburg <jthorn@aei.mpg.de> + @desc This function sets a CCTK_INT array to all zeros. + @enddesc + + @var N + @vdesc The number of elements in the array. + @vtype CCTK_INT N + @endvar + + @var array + @vdesc (A pointer to) the array + @vtype CCTK_INT array[] + @vio out + @endvar + @@*/ +void LocalInterp_zero_int_array(int N, CCTK_INT array[]) +{ +int i; + + for (i = 0 ; i < N ; ++i) + { + array[i] = 0; + } +} + +/******************************************************************************/ + +/*@@ + @routine LocalInterp_decode_N_parts + @date 22 Jan 2002 + @author Jonathan Thornburg <jthorn@aei.mpg.de> + @desc This function decodes a CCTK_VARIABLE_* variable type code + (cctk_Constants.h) to determine whether the type is real + or complex. + @enddesc + + @var type_code + @vdesc The type code to be decoded + @vtype int + @endvar + + @returntype int + @returndesc This function returns + 1 if the data type represents a real number of some sort + (includes integers) + 2 if the data type represents a complex number + 0 if the data type doesn't represent a number, + eg strings and pointers + -1 if the data type is invalid + @endreturndesc + @@*/ +int LocalInterp_decode_N_parts(int type_code) +{ +switch (type_code) + { +case CCTK_VARIABLE_VOID: return 0; +case CCTK_VARIABLE_BYTE: return 1; +case CCTK_VARIABLE_INT: return 1; +case CCTK_VARIABLE_INT2: return 1; +case CCTK_VARIABLE_INT4: return 1; +case CCTK_VARIABLE_INT8: return 1; +case CCTK_VARIABLE_REAL: return 1; +case CCTK_VARIABLE_REAL4: return 1; +case CCTK_VARIABLE_REAL8: return 1; +case CCTK_VARIABLE_REAL16: return 1; +case CCTK_VARIABLE_COMPLEX: return 2; +case CCTK_VARIABLE_COMPLEX8: return 2; +case CCTK_VARIABLE_COMPLEX16: return 2; +case CCTK_VARIABLE_COMPLEX32: return 2; +case CCTK_VARIABLE_STRING: return 0; +case CCTK_VARIABLE_POINTER: return 0; +case CCTK_VARIABLE_FN_POINTER: return 0; +default: return -1; + } +} diff --git a/src/GeneralizedPolynomial-Uniform/util.maple b/src/GeneralizedPolynomial-Uniform/util.maple new file mode 100644 index 0000000..4598c0c --- /dev/null +++ b/src/GeneralizedPolynomial-Uniform/util.maple @@ -0,0 +1,377 @@ +# util.maple -- misc utility routines +# $Id$ + +# +# C_str - codegen[C](), but returning its result as a Maple string +# fix_rationals - convert numbers to RATIONAL() calls +# nonmatching_names - find names in a list which *don't* have a specified prefix +# sprint_numeric_list - convert a numeric list to a valid C identifier suffix +# print_name_list_dcl - print a C declaration for a list of names +# +# hypercube_points - compute all (integer) points in an N-dimensional hypercube +# +# ftruncate - truncate a file to zero length +# + +################################################################################ +################################################################################ +################################################################################ + +# +# This function is a wrapper around codegen[C]() which returns the +# genenerated code explictly as a Maple string. +# +# Arguments: +# expr = (in) The expression for which code is to be generated. +# ... = (in) Any further arguments are taken as options to be passed +# to codegen[C]() +# +# Results: +# The function returns a maple string of C code. +# +C_str := +proc(expr::algebraic) +local tempname, str, temp; + +# name of temp file +# FIXME: should use process number to ensure uniqueness +tempname := "/tmp/C_str.tmp.c"; + +# truncate temp file to zero length +fopen(tempname, WRITE); +fclose(tempname); + +# generate the code +codegen[C](args, filename=tempname); + +# read the code back in +str := ""; + while true + do + temp := readline(tempname); + if (temp = 0) + then break; + end if; + str := cat(str, temp); + end do; +fclose(tempname); + +# strip off the leading " t0 = " +return op(2,sscanf(str, "%s = %[^;];")); +end proc; + +################################################################################ + +# +# This function converts all {integer, rational} subexpressions of its +# input except integer exponents and -1 factors in products, into function +# calls +# RATIONAL(num,den) +# This is useful in conjunction with the C() library function, since +# +# C( (1/3) * foo * bar ) +# t0 = foo*bar/3; +# +# generates a (slow) division (and runs the risk of mixed-mode-arithmetic +# problems), while +# +# C((1.0/3.0) * foo * bar); +# t0 = 0.3333333333*foo*bar; +# +# suffers from roundoff error. With this function, +# +# fix_rationals((1/3) * foo * bar); +# RATIONAL(1,3) foo bar +# C(%); +# t0 = RATIONAL(1.0,3.0)*foo*bar; +# +# which a C preprocessor macro can easily convert to the desired +# +# t0 = (1.0/3.0)*foo*bar; +# +# Additionally, this function can be told to leave certain types of +# subexpressions unconverged. For example, +# fix_rationals(expr, type, specfunc(integer, DATA)); +# will leave all subexpressions of the form DATA(integer arguments) +# unconverted. +# +# Arguments: +# expr = (in) The expression to be converted. +# inert_fn = (optional in) +# If specified, this argument should be a Boolean procedure +# or the name of a Boolean procedure. This procedure should +# take one or more argument, and return true if and only if +# the first argument should *not* be converted, i.e. if we +# should leave this expression unchanged. See the last +# example above. +# ... = (optional in) +# Any further arguments are passed as additional arguments to +# the inert_fn procedure. +# +fix_rationals := +proc( + expr::{ + algebraic, name = algebraic, + list({algebraic, name = algebraic}), + set ({algebraic, name = algebraic}) + }, + inert_fn::{name, procedure} + ) +local nn, k, + base, power, fbase, fpower, + fn, fn_args_list, + num, den, mult; + +# do we want to convert this expression? +if ((nargs >= 2) and inert_fn(expr, args[3..nargs])) + then return expr; +end if; + +# recurse over lists and sets +if (type(expr, {list,set})) + then return map(fix_rationals, expr, args[2..nargs]); +end if; + +# recurse over equation right hand sides +if (type(expr, name = algebraic)) + then return ( lhs(expr) = fix_rationals(rhs(expr), args[2..nargs]) ); +end if; + +# recurse over functions other than RATIONAL() +if (type(expr, function)) + then + fn := op(0, expr); + if (fn <> 'RATIONAL') + then + fn_args_list := [op(expr)]; + fn_args_list := map(fix_rationals, fn_args_list, args[2..nargs]); + fn; return '%'( op(fn_args_list) ); + end if; +end if; + +nn := nops(expr); + +# recurse over sums +if (type(expr, `+`)) + then return sum('fix_rationals(op(k,expr), args[2..nargs])', 'k'=1..nn); +end if; + +# recurse over products +# ... leaving leading -1 factors intact, i.e. not converted to RATIONAL(-1,1) +if (type(expr, `*`)) + then + if (op(1, expr) = -1) + then return -1*fix_rationals(remove(type, expr, 'identical(-1)'), + args[2..nargs]); + else return product('fix_rationals(op(k,expr), args[2..nargs])', + 'k'=1..nn); + end if; +end if; + +# recurse over powers +# ... leaving integer exponents intact +if (type(expr, `^`)) + then + base := op(1, expr); + power := op(2, expr); + + fbase := fix_rationals(base, args[2..nargs]); + if (type(power, integer)) + then fpower := power; + else fpower := fix_rationals(power, args[2..nargs]); + end if; + return fbase ^ fpower; +end if; + +# fix integers and fractions +if (type(expr, integer)) + then return 'RATIONAL'(expr, 1); +end if; +if (type(expr, fraction)) + then + num := op(1, expr); + den := op(2, expr); + + return 'RATIONAL'(num, den); +end if; + +# turn Maple floating-point into integer fraction, then recursively fix that +if (type(expr, float)) + then + mult := op(1, expr); + power := op(2, expr); + return fix_rationals(mult * 10^power, args[2..nargs]); +end if; + +# identity op on names +if (type(expr, name)) + then return expr; +end if; + +# unknown type +error "%0", + "unknown type for expr!", + " whattype(expr) = ", whattype(expr), + " expr = ", expr; +end proc; + +################################################################################ + +# +# This function finds names in a list which *don't* have a specified prefix. +# +# Arguments: +# name_list = A list of the names. +# prefix = The prefix we want to filter out. +# +# Results: +# This function returns the subset list of names which don't have the +# specified prefix. +# +nonmatching_names := +proc( name_list::list({name,string}), prefix::{name,string} ) + +select( proc(n) + evalb(not StringTools[IsPrefix](prefix,n)); + end proc + , + name_list + ); +end proc; + +################################################################################ + +# +# This function converts a numeric list to a string which is a valid +# C identifier suffix: elements are separated by "_", decimal points are +# replaced by "x", and all nonzero values have explicit +/- signs, which +# are replaced by "p"/"m". +# +# For example, [0,-3.5,+4] --> "0_m3x5_p4". +# +sprint_numeric_list := +proc(nlist::list(numeric)) + +# generate preliminary string, eg "+0_-3.5_+4" +map2(sprintf, "%+a", nlist); +ListTools[Join](%, "_"); +cat(op(%)); + +# fixup bad characters +StringTools[SubstituteAll](%, "+0", "0"); +StringTools[CharacterMap](".+-", "xpm", %); + +return %; +end proc; + +################################################################################ + +# +# This function prints a C declaration for a list of names. +# +# Argument: +# name_list = A list of the names. +# name_type = The C type of the names, eg. "double". +# file_name = The file name to write the declaration to. This is +# truncated before writing. +# +print_name_list_dcl := +proc( name_list::list({name,string}), + name_type::string, + file_name::string ) +local blanks, separator_string; + +ftruncate(file_name); + +# a sequence of blanks with the same length as name_type +seq(" ", i=1..length(name_type)); + +# string to separate names +separator_string := cat(",\n", %, " "); + +map(convert, name_list, string); +ListTools[Join](%, separator_string); +cat(op(%)); + +fprintf(file_name, + "%s %s;\n", + name_type, %); +NULL; +end proc; + +################################################################################ +################################################################################ +################################################################################ + +# +# This function computes a list of all the (integer) points in an +# N-dimensional hypercube, in lexicographic order. The present +# implementation requires N <= 4. +# +# Arguments: +# cmin,cmax = N-element lists of cube minimum/maximum coordinates. +# +# Results: +# The function returns a set of d-element lists giving the coordinates. +# For example, +# hypercube([0,0], [2,1] +# returns +# { [0,0], [0,1], [1,0], [1,1], [2,0], [2,1] } +hypercube_points := +proc(cmin::list(integer), cmax::list(integer)) +local N, i,j,k,l; + +N := nops(cmin); +if (nops(cmax) <> N) + then error + "must have same number of dimensions for min and max coordinates!"; +fi; + +if (N = 1) + then return [seq([i], i=cmin[1]..cmax[1])]; +elif (N = 2) + then return [ + seq( + seq([i,j], j=cmin[2]..cmax[2]), + i=cmin[1]..cmax[1]) + ]; +elif (N = 3) + then return [ + seq( + seq( + seq([i,j,k], k=cmin[3]..cmax[3]), + j=cmin[2]..cmax[2] ), + i=cmin[1]..cmax[1]) + ]; +elif (N = 4) + then return [ + seq( + seq( + seq( + seq([i,j,k,l], l=cmin[4]..cmax[4]), + k=cmin[3]..cmax[3] ), + j=cmin[2]..cmax[2]), + i=cmin[1]..cmax[1]) + ]; +else + error "implementation restriction: must have N <= 4, got %1!", N; +fi; +end proc; + +################################################################################ +################################################################################ +################################################################################ + +# +# This function truncates a file to 0 length if it exists, or creates +# it at that length if it doesn't exist. +# +# Arguments: +# file_name = (in) The name of the file. +# +ftruncate := +proc(file_name::string) +fopen(file_name, 'WRITE'); +fclose(%); +NULL; +end proc; diff --git a/src/UniformCartesian/Interpolate.c b/src/UniformCartesian/Interpolate.c new file mode 100644 index 0000000..95b44ce --- /dev/null +++ b/src/UniformCartesian/Interpolate.c @@ -0,0 +1,586 @@ +/*@@ + @file Interpolate.c + @date Wed 17 Jan 2001 + @author Thomas Radke + @desc + Interpolation of arrays to arbitrary points + + This interpolator is based on the Cactus 3.x Fortran version + written by Paul Walker. It also contains some nice optimization + features from Erik Schnetter. Jonathan Thornburg added some + additional comments in October 2001. + @enddesc + + @history + @date Wed 17 Jan 2001 + @author Thomas Radke + @hdesc Translation from Fortran to C + @date Thu 18 Oct 2001 + @author Jonathan Thornburg + @hdesc Add lots of comments, LOCALINTERP_VERBOSE_DEBUG debugging code + @date 22 Jan 2002 + @author Jonathan Thornburg + @hdesc Move all local-interpolation code from LocalInterp to here + @endhistory + + @version $Header$ + @@*/ + +#include <math.h> +#include <stdlib.h> +#include <string.h> +#include <stdio.h> + +#include "cctk.h" +#include "cctk_Parameters.h" +#include "Interpolate.h" + +/* the rcs ID and its dummy function to use it */ +static const char *rcsid = "$Header$"; +CCTK_FILEVERSION(CactusBase_LocalInterp_UniformCartesian_Interpolate_c) + +#ifdef LOCALINTERP_VERBOSE_DEBUG + /* if this is >= 0, we print verbose debugging information at this point */ + int LocalInterp_verbose_debug_n = -1; +#endif + +/* the highest order of interpolation we support so far */ +#define MAXORDER 3 + +/* the highest dimension for variables we can deal with (so far) */ +#define MAXDIM 3 + +/******************************************************************************/ + +/*@@ + @routine INTERPOLATE (macro) + @date 18 Oct 2001 + @author code by ???, these comments by Jonathan Thornburg + @desc + This macro does the interpolation of in_array[] to compute + a single value out_array[n] (actually out_array[n]subpart ; + see the comments below for details). The data to be interpolated + must be real numbers of some type, i.e. if the arrays are + complex this macro must be called separately for the real + and imaginary parts. + @enddesc + + @var cctk_type + @vdesc C type of input and output array elements (might be complex) + @endvar + + @var cctk_subtype + @vdesc C type of actual numbers being interpolated (must be real) + @endvar + + @var subpart + @vdesc string to be suffixed to input/output array element to get + to get real number, i.e. empty string if cctk_type is real, + .Re or .Im as appropriate if cctk_type is complex + @endvar + + @var in_array + @vdesc A pointer to array to be interpolated (strictly speaking, to + the array's [0][0]...[0] element); this is typically passed + as a void * pointer so we typecast it as necessary. + @endvar + + @var out_array + @vdesc A 1-dimensional array where the interpolation result should be + stored; this is typically passed as a void * pointer so we + typecast it as necessary. + @endvar + + @var order + @vdesc The order of the interpolation (1=linear, 2=quadratic, 3=cubic, ...) + @endvar + + @var point + @vdesc [MAXDIM] array of integers giving the integer grid coordinates + of the closest grid point to the interpolation point; the + interpolation molecule/stencil is centered at this point. + @endvar + + @var dims + @vdesc [MAXDIM] array of integers giving the dimensions of in_array . + @endvar + + @var n + @vdesc Position in out_array where we should store the interpolation + result. + @endvar + + @var coeff + @vdesc [MAXDIM][MAX_ORDER+1] array of (floating-point) interpolation + coefficients; detailed semantics are that coeff[axis][m] is the + coefficient of y[m] when the 1-dimensional Lagrange interpolation + polynomial passing through the order+1 points + {(0,y[0]), (1,y[1]), ..., (order,y[order])} + is evaluated at the position x=offset[axis]. + @endvar + @@*/ +/* + * The basic idea here is that conceptually we first interpolate the + * (say) 3D gridfn in the x direction at each y and z grid point, + * then interpolate that 2D plane of values in the y direction at + * each z grid point, and finally interpolate that 1D line of values + * in the z direction. The implementation actually interleaves the + * different directions' interpolations so that only 3 scalar temporaries + * are needed. + */ +#define INTERPOLATE(cctk_type, cctk_subtype, subpart, in_array, out_array, \ + order, point, dims, n, coeff) \ + { \ + int ii, jj, kk; \ + const cctk_type *fi; \ + /* for some reason (probably loop unrolling & pipelining) the compiler \ + produces faster code if arrays are used instead of scalars */ \ + cctk_subtype interp_result, fj[1], fk[1]; \ + \ + \ + interp_result = 0; \ + \ + /* NOTE-MAXDIM: support >3D arrays by adding more loops */ \ + for (kk = 0; kk <= order; kk++) \ + { \ + fk[0] = 0; \ + for (jj = 0; jj <= order; jj++) \ + { \ + /* NOTE-MAXDIM: for >3D arrays adapt the index calculation here */ \ + fi = (const cctk_type *) in_array + \ + point[0] + dims[0]*(point[1]+jj + dims[1]*(point[2]+kk)); \ + \ + fj[0] = 0; \ + for (ii = 0; ii <= order; ii++) \ + { \ + fj[0] += fi[ii]subpart * coeff[0][ii]; \ + } \ + /* at this point we have just computed */ \ + /* fj[0] = in_array[*][jj][kk] interpolated to x=offset[0] */ \ + \ + fk[0] += fj[0] * coeff[1][jj]; \ + } \ + /* at this point we have just computed */ \ + /* fk[0] = fj[0][*][kk] interpolated to y=offset[1] */ \ + /* = in_array[*][*][kk] interpolated to */ \ + /* x=offset[0], y=offset[1] */ \ + \ + interp_result += fk[0] * coeff[2][kk]; \ + } \ + /* at this point we have just computed */ \ + /* interp_result = fk[0][*] interpolated to z=offset[2] */ \ + /* = in_array[*][*][*] interpolated to */ \ + /* x=offset[0], y=offset[1], z=offset[2] */ \ + \ + /* assign the result */ \ + ((cctk_type *) out_array)[n]subpart = interp_result; \ + } /* end of macro */ + +/* this is needed by some preprocessors to pass into INTERPOLATE + as a dummy macro */ +#define NOTHING + +/******************************************************************************/ + +/*@@ + @routine LocalInterp_Interpolate + @date Wed 17 Jan 2001 + @author Thomas Radke + @desc + This routine interpolates a set of input arrays + to a set of output arrays (one-to-one) at arbitrary points + which are given by their coordinates and the underlying + regular, uniform grid. + + Current limitations of this implementation are: + - arrays up to three (MAXDIM) dimensions only can be handled + - interpolation orders up to three (MAXORDER) only are supported + - coordinates must be given as CCTK_REAL types + - input and output array types must be the same + (no type casting of interpolation results supported) + + Despite of these limitations, the code was programmed almost + generically in that it can easily be extended to support + higher-dimensional arrays or more interpolation orders. + Places where the code would need to be changed to do this, + are marked with NOTE-MAXDIM and/or NOTE-MAXORDER comments + as appropriate. + @enddesc + + @var num_points + @vdesc number of points to interpolate at + @vtype int + @vio in + @endvar + @var num_dims + @vdesc dimensionality of the input arrays + @vtype int + @vio in + @endvar + @var num_arrays + @vdesc number of input/output arrays + @vtype int + @vio in + @endvar + @var dims + @vdesc dimensions of the input arrays + @vtype int[ num_dims ] + @vio in + @endvar + @var coord + @vdesc coordinates to interpolate at + @vtype CCTK_REAL coord[ num_dims * num_points ] + @vio in + @endvar + @var origin + @vdesc origin of the underlying grid + @vtype CCTK_REAL origin[ num_dims ] + @vio in + @endvar + @var delta + @vdesc deltas of the underlying grid + @vtype CCTK_REAL delta[ num_dims ] + @vio in + @endvar + @var in_types + @vdesc CCTK variable types of input arrays + @vtype int in_types[ num_arrays ] + @vio in + @endvar + @var in_arrays + @vdesc list of input arrays + @vtype void *in_arrays[ num_arrays ] + @vio in + @endvar + @var out_types + @vdesc CCTK variable types of output arrays + @vtype int out_types[ num_arrays ] + @vio in + @endvar + @var out_arrays + @vdesc list of output arrays + @vtype void *out_arrays[ num_arrays ] + @vio out + @endvar + + @returntype int + @returndesc + 0 - successful interpolation + -1 - in case of any errors + @endreturndesc + @@*/ +int LocalInterp_Interpolate (int order, + int num_points, + int num_dims, + int num_arrays, + const int dims[], + const CCTK_REAL coord[], + const CCTK_REAL origin[], + const CCTK_REAL delta[], + const int in_types[], + const void *const in_arrays[], + const int out_types[], + void *const out_arrays[]) +{ + int retval; + int i, a, n, out_of_bounds, shift; + int max_dims[MAXDIM], point[MAXDIM]; + CCTK_REAL below[MAXDIM]; + CCTK_REAL offset[MAXDIM]; + CCTK_REAL coeff[MAXDIM][MAXORDER + 1]; + + /* verify parameters and check against our restrictions */ + retval = -1; + if (num_dims < 1) + { + CCTK_WARN (1, "Number of dimensions must be positive"); + } + else if (num_dims > MAXDIM) + { + CCTK_VWarn (1, __LINE__, __FILE__, CCTK_THORNSTRING, + "Interpolation of %d-dimensional arrays not implemented", + num_dims); + } + else if (order < 1) + { + CCTK_WARN (1, "Inperpolation order must be positive"); + } + else if (order > MAXORDER) + { + CCTK_VWarn (1, __LINE__, __FILE__, CCTK_THORNSTRING, + "Interpolation order %d not implemented", order); + } + else if (num_points < 0) + { + CCTK_WARN (1, "Negative number of points given"); + } + else + { + retval = 0; + } + + /* immediately return in case of errors */ + if (retval) + { + return (retval); + } + + /* also immediately return if there's nothing to do */ + if (num_points == 0) + { + return (retval); + } + + /* duplicate the dims[] vector into one with MAXDIM-1 elements + (with the remaining elements zeroed out) + so that we can use nested loops over MAXDIM dimensions later on */ + memset (max_dims, 0, sizeof (max_dims)); + memcpy (max_dims, dims, (num_dims - 1) * sizeof (int)); + + /* zero out the coefficients and set the elements with index 'order' to one + so that we can use nested loops over MAXDIM dimensions later on */ + memset (coeff, 0, sizeof (coeff)); + for (i = num_dims; i < MAXDIM; i++) + { + coeff[i][0] = 1; + } + + /* zero out the iterator */ + memset (point, 0, sizeof (point)); + + /* loop over all points to interpolate at */ + for (n = 0; n < num_points; n++) + { + /* reset the out-of-bounds flag */ + out_of_bounds = 0; + + /* loop over all dimensions */ + for (i = 0; i < num_dims; i++) + { + /* closest grid point for stencil */ + point[i] = floor ((coord[num_dims*n + i] - origin[i]) / delta[i] + - 0.5 * (order - 1)); + + /* if beyond lower bound shift the grid point to the right */ + shift = point[i]; + if (shift < 0) + { + point[i] -= shift; + } + + /* if beyond upper bound shift the grid point to the left */ + shift = point[i] + order - (dims[i] - 1); + if (shift > 0) + { + point[i] -= shift; + } + + /* physical coordinate of that grid point */ + below[i] = origin[i] + point[i] * delta[i]; + + /* offset from that grid point, in fractions of grid points */ + offset[i] = (coord[num_dims*n + i] - below[i]) / delta[i]; + + /* test bounds */ + out_of_bounds |= point[i] < 0 || point[i]+order >= dims[i]; + } + +#ifdef LOCALINTERP_VERBOSE_DEBUG +if (n == LocalInterp_verbose_debug_n) + { + int ii; + printf("out_of_bounds = %d\n", out_of_bounds); + for (ii = 0 ; ii < num_dims ; ++ii) + { + printf("offset[%d] = %g\n", ii, (double) offset[ii]); + } + } +#endif /* LOCALINTERP_VERBOSE_DEBUG */ + + /* check bounds */ + if (out_of_bounds) + { + char *msg; + + + /* put all information into a single message string for output */ + msg = (char *) malloc (100 + num_dims*(10 + 4*20)); + sprintf (msg, "Interpolation stencil out of bounds at grid point [%d", + point[0]); + for (i = 1; i < num_dims; i++) + { + sprintf (msg, "%s, %d", msg, point[i]); + } + sprintf (msg, "%s]\nrange would be min/max [%f / %f", msg, + (double) below[0], (double) (below[0] + offset[0])); + for (i = 1; i < num_dims; i++) + { + sprintf (msg, "%s, %f / %f", msg, + (double) below[i], (double) (below[i] + offset[i])); + } + sprintf (msg, "%s]\ngrid is min/max [%f / %f", msg, + (double) origin[0], (double) (origin[0] + dims[0]*delta[0])); + for (i = 1; i < num_dims; i++) + { + sprintf (msg, "%s, %f / %f", msg, + (double) origin[i], (double) (origin[i] + dims[i]*delta[i])); + } + sprintf (msg, "%s]", msg); + CCTK_WARN (1, msg); + free (msg); + + continue; + } + + /* + * *** compute the interpolation coefficients according to the order *** + * + * (Thanks to Erik for formulating these so nicely.) + * + * These formulas are "just" the coefficients of the classical + * Lagrange interpolation polynomials along each dimension. + * For example, in 1 dimension the unique quadratic passing + * through the 3 points {(x0,y0), (x1,y1), (x2,y2)} is: + * ( x-x1)( x-x2) ( x-x0)( x-x2) ( x-x0)( x-x1) + * -------------- y0 + -------------- y1 + -------------- y2 + * (x0-x1)(x0-x2) (x1-x0)(x1-x2) (x2-x0)(x2-x1) + * (It's easy to see this: each of the terms is yi if x=xi, or + * zero if x=any other xj.) To get the formulas below, just negate + * each (x-x) factor, and substitute the values xi=i. + */ + /* + * NOTE-MAXORDER: support higher interpolation orders by adding the + * appropriate coefficients in another else branch + */ + if (order == 1) + { + /* first order (linear) 1D interpolation */ + for (i = 0; i < num_dims; i++) + { + coeff[i][0] = 1 - offset[i]; + coeff[i][1] = offset[i]; + } + } + else if (order == 2) + { + /* second order (quadratic) 1D interpolation */ + for (i = 0; i < num_dims; i++) + { + coeff[i][0] = (1-offset[i]) * (2-offset[i]) / ( 2 * 1 ); + coeff[i][1] = ( -offset[i]) * (2-offset[i]) / ( 1 * (-1)); + coeff[i][2] = ( -offset[i]) * (1-offset[i]) / ((-1) * (-2)); + } + } + else if (order == 3) + { + /* third order (cubic) 1D interpolation */ + for (i = 0; i < num_dims; i++) + { + coeff[i][0] = (1-offset[i]) * (2-offset[i]) * (3-offset[i]) / + ( 3 * 2 * 1 ); + coeff[i][1] = ( -offset[i]) * (2-offset[i]) * (3-offset[i]) / + ( 2 * 1 * (-1)); + coeff[i][2] = ( -offset[i]) * (1-offset[i]) * (3-offset[i]) / + ( 1 * (-1) * (-2)); + coeff[i][3] = ( -offset[i]) * (1-offset[i]) * (2-offset[i]) / + ((-1) * (-2) * (-3)); + } + } + else + { + CCTK_WARN (0, "Implementation error"); + } + +#ifdef LOCALINTERP_VERBOSE_DEBUG +if (n == LocalInterp_verbose_debug_n) + { + int ii,mm; + for (ii = 0 ; ii < num_dims ; ++ii) + { + for (mm = 0 ; mm <= order ; ++mm) + { + printf("coeff[%d][%d] = %g\n", + ii, mm, (double) coeff[ii][mm]); + } + } + } +#endif /* LOCALINTERP_VERBOSE_DEBUG */ + + /* now loop over all arrays to interpolate at the current point */ + for (a = 0; a < num_arrays; a++) + { + /* sorry, for now input and output arrays must be of same type */ + if (in_types[a] != out_types[a]) + { + CCTK_WARN (1, "Type casting of interpolation results not implemented"); + continue; + } + + /* now do the interpolation according to the array type + we support all kinds of CCTK_REAL* and CCTK_COMPLEX* types here */ + if (in_types[a] == CCTK_VARIABLE_REAL) + { + INTERPOLATE (CCTK_REAL, CCTK_REAL, NOTHING, in_arrays[a], + out_arrays[a], order, point, max_dims, n, coeff); + } + else if (in_types[a] == CCTK_VARIABLE_COMPLEX) + { + INTERPOLATE (CCTK_COMPLEX, CCTK_REAL, .Re, in_arrays[a], + out_arrays[a], order, point, max_dims, n, coeff); + INTERPOLATE (CCTK_COMPLEX, CCTK_REAL, .Im, in_arrays[a], + out_arrays[a], order, point, max_dims, n, coeff); + } +#ifdef CCTK_REAL4 + else if (in_types[a] == CCTK_VARIABLE_REAL4) + { + INTERPOLATE (CCTK_REAL4, CCTK_REAL4, NOTHING, in_arrays[a], + out_arrays[a], order, point, max_dims, n, coeff); + } + else if (in_types[a] == CCTK_VARIABLE_COMPLEX8) + { + INTERPOLATE (CCTK_COMPLEX8, CCTK_REAL4, .Re, in_arrays[a], + out_arrays[a], order, point, max_dims, n, coeff); + INTERPOLATE (CCTK_COMPLEX8, CCTK_REAL4, .Im, in_arrays[a], + out_arrays[a], order, point, max_dims, n, coeff); + } +#endif +#ifdef CCTK_REAL8 + else if (in_types[a] == CCTK_VARIABLE_REAL8) + { + INTERPOLATE (CCTK_REAL8, CCTK_REAL8, NOTHING, in_arrays[a], + out_arrays[a], order, point, max_dims, n, coeff); + } + else if (in_types[a] == CCTK_VARIABLE_COMPLEX16) + { + INTERPOLATE (CCTK_COMPLEX16, CCTK_REAL8, .Re, in_arrays[a], + out_arrays[a], order, point, max_dims, n, coeff); + INTERPOLATE (CCTK_COMPLEX16, CCTK_REAL8, .Im, in_arrays[a], + out_arrays[a], order, point, max_dims, n, coeff); + } +#endif +#ifdef CCTK_REAL16 + else if (in_types[a] == CCTK_VARIABLE_REAL16) + { + INTERPOLATE (CCTK_REAL16, CCTK_REAL16, NOTHING, in_arrays[a], + out_arrays[a], order, point, max_dims, n, coeff); + } + else if (in_types[a] == CCTK_VARIABLE_COMPLEX32) + { + INTERPOLATE (CCTK_COMPLEX32, CCTK_REAL16, .Re, in_arrays[a], + out_arrays[a], order, point, max_dims, n, coeff); + INTERPOLATE (CCTK_COMPLEX32, CCTK_REAL16, .Im, in_arrays[a], + out_arrays[a], order, point, max_dims, n, coeff); + } +#endif + else + { + CCTK_VWarn (1, __LINE__, __FILE__, CCTK_THORNSTRING, + "Unsupported variable type %d", (int) in_types[a]); + } + } /* end of loop over all arrays */ + + } /* end of loop over all points to interpolate at */ + + /* we're done */ + return (retval); +} diff --git a/src/UniformCartesian/Interpolate.h b/src/UniformCartesian/Interpolate.h new file mode 100644 index 0000000..35dac21 --- /dev/null +++ b/src/UniformCartesian/Interpolate.h @@ -0,0 +1,45 @@ +/*@@ + @file Interpolate.h + @date 22 Jan 2002 + @author Jonathan Thornburg + @desc function prototypes + @enddesc + @version $Header$ + @history + @date 22 Jan 2002 + @author Jonathan Thornburg + @hdesc created by editing down LocalInterp::pughInterpGH.h + (originally dated 4 July 1999, by Thomas Radke) + @endhistory + @@*/ + +/* prototypes of interpolation operator to be registered */ +int LocalInterp_InterpLocal(cGH *GH, + int order, + int num_points, + int num_dims, + int num_in_arrays, + int num_out_arrays, + const int coord_dims[], + const void *const coord_arrays[], + const int coord_array_types[], + const void *const interp_coord_arrays[], + const int interp_coord_array_types[], + const void *const in_arrays[], + const int in_array_types[], + void *const out_arrays[], + const int out_array_types[]); + +/* prototypes of routines used internally */ +int LocalInterp_Interpolate(int order, + int num_points, + int num_dims, + int num_arrays, + const int dims[ /* num_dims */ ], + const CCTK_REAL coord[ /* num_dims*num_points */ ], + const CCTK_REAL origin[ /* num_dims */ ], + const CCTK_REAL delta[ /* num_dims */ ], + const int in_types[ /* num_arrays */ ], + const void *const in_arrays[ /* num_arrays */ ], + const int out_types[ /* num_arrays */ ], + void *const out_arrays[ /* num_arrays */ ]); diff --git a/src/UniformCartesian/Operator.c b/src/UniformCartesian/Operator.c new file mode 100644 index 0000000..28de748 --- /dev/null +++ b/src/UniformCartesian/Operator.c @@ -0,0 +1,323 @@ +/*@@ + @file Operator.c + @date Tue Apr 15 18:22:45 1997 + @author Paul Walker + @desc + Definition of interpolation operators for regular uniform grids. + @enddesc + + @history + @date Sun Jul 04 1999 + @author Thomas Radke + @hdesc conversion to Cactus 4.0 (copied from pughGetPoints.c) + @date Wed 31 Jan 2001 + @author Thomas Radke + @hdesc translation of fortran interpolators into C + @date 22 Jan 2002 + @author Jonathan Thornburg + @hdesc Move all local-interpolation code from LocalInterp to here + @endhistory + + @version $Header$ + @@*/ + +#include <stdlib.h> +#include <math.h> +#include <string.h> + +#include "cctk.h" +#include "cctk_Parameters.h" +#include "CactusPUGH/PUGH/src/include/pugh.h" +#include "Interpolate.h" + +/* the rcs ID and its dummy function to use it */ +static const char *rcsid = "$Header$"; +CCTK_FILEVERSION(CactusBase_LocalInterp_UniformCartesian_Operator_c) + +/* uncomment this to get some debugging output */ +/* #define PUGHINTERP_DEBUG 1 */ + + + +/* prototypes of routines defined in this source file */ +static int LocalInterp_CheckArguments (cGH *GH, + int num_dims, + int num_points, + int num_in_arrays, + int num_out_arrays, + const int interp_coord_array_types[]); + +/******************************************************************************/ + +/*@@ + @routine LocalInterp_InterpLocal + @date Sun Jul 04 1999 + @author Thomas Radke + @desc + The interpolation operator registered with the CCTK + under the name "uniform cartesian". + + Interpolates a list of non-distributed, processor-local + input arrays to a list of output arrays (one-to-one) + at a given number of interpolation points (indicated by + their coordinates). The points are located on a coordinate + system which is assumed to be a uniform cartesian. + @enddesc + + @var GH + @vdesc Pointer to CCTK grid hierarchy + @vtype cGH * + @vio in + @endvar + @var order + @vdesc interpolation order + @vtype int + @vio in + @endvar + @var num_points + @vdesc number of points to be interpolated on this processor + @vtype int + @vio in + @endvar + @var num_dims + @vdesc dimensionality of the underlying grid + @vtype int + @vio in + @endvar + @var num_in_arrays + @vdesc number of input arrays to interpolate from + @vtype int + @vio in + @endvar + @var num_out_arrays + @vdesc number of output arrays to interpolate to + @vtype int + @vio in + @endvar + @var coord_dims + @vdesc dimensions of the underlying grid + @vtype int [num_dims] + @vio in + @endvar + @var coord_arrays + @vdesc list of grid coordinate arrays + @vtype void *const [num_dims] + @vio in + @endvar + @var coord_array_types + @vdesc CCTK data type of coordinate arrays + @vtype int [num_dims] + @vio int + @endvar + @var interp_coord_arrays + @vdesc coordinates of points to interpolate at + @vtype void *const [num_dims] + @vio in + @endvar + @var interp_coord_array_types + @vdesc CCTK data type of coordinate arrays to interpolate at + @vtype int [num_dims] + @vio out + @endvar + @var in_arrays + @vdesc list of input arrays to interpolate on + @vtype void *const [num_in_arrays] + @vio in + @endvar + @var in_array_types + @vdesc CCTK data types of input arrays + @vtype int [num_in_arrays] + @vio in + @endvar + @var out_arrays + @vdesc list of output arrays to interpolate to + @vtype void *const [num_out_arrays] + @vio out + @endvar + @var out_array_types + @vdesc CCTK data types of output arrays + @vtype int [num_out_arrays] + @vio in + @endvar + + @returntype int + @returndesc + 0 - successful interpolation + -1 - in case of any errors + @endreturndesc + @@*/ +int LocalInterp_InterpLocal (cGH *GH, + int order, + int num_points, + int num_dims, + int num_in_arrays, + int num_out_arrays, + const int coord_dims[], + const void *const coord_arrays[], + const int coord_array_types[], + const void *const interp_coord_arrays[], + const int interp_coord_array_types[], + const void *const in_arrays[], + const int in_array_types[], + void *const out_arrays[], + const int out_array_types[]) +{ + int dim, point, retval; + CCTK_REAL *coords, *origin, *delta; + const CCTK_REAL *const *data; + + /* check arguments */ + retval = LocalInterp_CheckArguments (GH, num_dims, num_points, + num_in_arrays, num_out_arrays, + interp_coord_array_types); + if (retval <= 0) + { + return (retval); + } + for (dim = 0; dim < num_dims; dim++) + { + if (coord_array_types[dim] != CCTK_VARIABLE_REAL) + { + CCTK_WARN (1, "Coordinates should be of type CCTK_REAL"); + return (-1); + } + if (interp_coord_array_types[dim] != CCTK_VARIABLE_REAL) + { + CCTK_WARN (1, "Interpolation coordinates should be of type CCTK_REAL"); + return (-1); + } + } + + /* get the grid spacings - this assumes a cartesian grid */ + origin = (CCTK_REAL *) malloc (2 * num_dims * sizeof (CCTK_REAL)); + delta = origin + num_dims; + data = (const CCTK_REAL *const *) coord_arrays; + for (dim = 0; dim < num_dims; dim++) + { + origin[dim] = data[dim][0]; + delta[dim] = data[dim][1] - data[dim][0]; + } + + /* sort the individual interpolation coordinate arrays into a single one */ + coords = (CCTK_REAL *) malloc (num_dims * num_points * sizeof (CCTK_REAL)); + data = (const CCTK_REAL *const *) interp_coord_arrays; + for (point = 0; point < num_points; point++) + { + for (dim = 0; dim < num_dims; dim++) + { + *coords++ = data[dim][point]; + } + } + coords -= num_dims * num_points; + + /* call the interpolator function */ + retval = LocalInterp_Interpolate (order, + num_points, num_dims, num_out_arrays, + coord_dims, coords, origin, delta, + in_array_types, in_arrays, + out_array_types, out_arrays); + + /* free allocated resources */ + free (coords); + free (origin); + + return (retval); +} + +/**************************************************************************/ +/* local routines */ +/**************************************************************************/ + +/*@@ + @routine LocalInterp_CheckArguments + @date Thu 25 Jan 2001 + @author Thomas Radke + @desc + Checks the interpolation arguments passed in via + the flesh's general interpolation calling interface + + This routine also verifies that the parameters meet + the limitations of LocalInterp's interpolation operators. + @enddesc + + @var GH + @vdesc Pointer to CCTK grid hierarchy + @vtype cGH * + @vio in + @endvar + @var num_dims + @vdesc dimensionality of the underlying grid + @vtype int + @vio in + @endvar + @var num_points + @vdesc number of points to interpolate at + @vtype int + @vio in + @endvar + @var num_in_arrays + @vdesc number of passed input arrays + @vtype int + @vio in + @endvar + @var num_out_arrays + @vdesc number of passed input arrays + @vtype int + @vio in + @endvar + @var interp_coord_array_types + @vdesc types of passed coordinates to interpolate at + @vtype int [num_dims] + @vio in + @endvar + + @returntype int + @returndesc + +1 for success + 0 for success but nothing to do + -1 for failure (wrong parameters passed or limitations not met) + @endreturndesc + @@*/ +static int LocalInterp_CheckArguments (cGH *GH, + int num_dims, + int num_points, + int num_in_arrays, + int num_out_arrays, + const int interp_coord_array_types[]) +{ + int i; + + + /* check for invalid arguments */ + if (num_dims < 0 || num_points < 0 || num_in_arrays < 0 || num_out_arrays < 0) + { + return (-1); + } + + /* check if there's anything to do at all */ + /* NOTE: num_points can be 0 in a collective call */ + if (num_dims == 0 || num_in_arrays == 0 || num_out_arrays == 0) + { + return (0); + } + + /* for now we can only deal with coordinates of type CCTK_REAL */ + for (i = 0; i < num_dims; i++) + { + if (interp_coord_array_types[i] != CCTK_VARIABLE_REAL) + { + CCTK_WARN (1, "Interpolation coordinates must be of type CCTK_REAL"); + return (-1); + } + } + + /* LocalInterp's interpolation operators compute one output array + per input array */ + if (num_in_arrays != num_out_arrays) + { + CCTK_WARN (1, "Number of input arrays must match number of output arrays"); + return (-1); + } + + return (1); +} diff --git a/src/UniformCartesian/README b/src/UniformCartesian/README new file mode 100644 index 0000000..2342312 --- /dev/null +++ b/src/UniformCartesian/README @@ -0,0 +1,14 @@ +This directory contains the interpolation functions registered for + CCTK_InterpLocal() +under the names + "first-order uniform cartesian" + "second-order uniform cartesian" + "third-order uniform cartesian" + +Implementation Notes +==================== +The interpolation operators registered for different orders are mapped +via wrappers (in "Startup.c") onto a single routine (in "Operator.c"), +just passing the order as an additional argument. + +The actual core interpolation routine is located in "Interpolate.c". diff --git a/src/UniformCartesian/Startup.c b/src/UniformCartesian/Startup.c new file mode 100644 index 0000000..b25dc9f --- /dev/null +++ b/src/UniformCartesian/Startup.c @@ -0,0 +1,185 @@ +/*@@ + @file Startup.c + @date Sun Jul 04 1999 + @author Thomas Radke + @desc + Startup routines for LocalInterp/UniformCartesian + @enddesc + + @history + @date 22 Jan 2002 + @author Jonathan Thornburg + @hdesc Move all local-interpolation code from LocalInterp to here + @endhistory + + @version $Header$ + @@*/ + +#include <stdlib.h> + +#include "cctk.h" +#include "cctk_Interp.h" +#include "Interpolate.h" + +/* the rcs ID and its dummy function to use it */ +static const char *rcsid = "$Header$"; +CCTK_FILEVERSION(CactusBase_LocalInterp_UniformCartesian_Startup_c) + + +/* prototypes of externally-visible routines defined in this source file */ +void LocalInterp_UC_Startup(void); + +/* prototypes of static routines defined in this source file */ +static int LocalInterp_InterpLocal_1stOrder(cGH *GH, + int num_points, + int num_dims, + int num_in_arrays, + int num_out_arrays, + const int coord_dims[], + const void *const coord_arrays[], + const int coord_array_types[], + const void *const interp_coord_arrays[], + const int interp_coord_array_types[], + const void *const in_arrays[], + const int in_array_types[], + void *const out_arrays[], + const int out_array_types[]); +static int LocalInterp_InterpLocal_2ndOrder(cGH *GH, + int num_points, + int num_dims, + int num_in_arrays, + int num_out_arrays, + const int coord_dims[], + const void *const coord_arrays[], + const int coord_array_types[], + const void *const interp_coord_arrays[], + const int interp_coord_array_types[], + const void *const in_arrays[], + const int in_array_types[], + void *const out_arrays[], + const int out_array_types[]); +static int LocalInterp_InterpLocal_3rdOrder(cGH *GH, + int num_points, + int num_dims, + int num_in_arrays, + int num_out_arrays, + const int coord_dims[], + const void *const coord_arrays[], + const int coord_array_types[], + const void *const interp_coord_arrays[], + const int interp_coord_array_types[], + const void *const in_arrays[], + const int in_array_types[], + void *const out_arrays[], + const int out_array_types[]); + +/******************************************************************************/ + +/*@@ + @routine LocalInterp_InterpLocal_NthOrder + @date Wed 14 Feb 2001 + @author Thomas Radke + @desc + Wrappers for the different interpolation operators + registered for first/second/third order interpolation. + These wrappers just call the common interpolation routine + passing all arguments plus the interpolation order. + @enddesc + + @returntype int + @returndesc + the return code of the common interpolation routine + @endreturndesc + @@*/ +static int LocalInterp_InterpLocal_1stOrder(cGH *GH, + int num_points, + int num_dims, + int num_in_arrays, + int num_out_arrays, + const int coord_dims[], + const void *const coord_arrays[], + const int coord_array_types[], + const void *const interp_coord_arrays[], + const int interp_coord_array_types[], + const void *const in_arrays[], + const int in_array_types[], + void *const out_arrays[], + const int out_array_types[]) +{ + return (LocalInterp_InterpLocal (GH, 1, num_points, num_dims, + num_in_arrays, num_out_arrays, + coord_dims, coord_arrays, coord_array_types, + interp_coord_arrays, interp_coord_array_types, + in_arrays, in_array_types, + out_arrays, out_array_types)); +} + + +static int LocalInterp_InterpLocal_2ndOrder(cGH *GH, + int num_points, + int num_dims, + int num_in_arrays, + int num_out_arrays, + const int coord_dims[], + const void *const coord_arrays[], + const int coord_array_types[], + const void *const interp_coord_arrays[], + const int interp_coord_array_types[], + const void *const in_arrays[], + const int in_array_types[], + void *const out_arrays[], + const int out_array_types[]) +{ + return (LocalInterp_InterpLocal (GH, 2, num_points, num_dims, + num_in_arrays, num_out_arrays, + coord_dims, coord_arrays, coord_array_types, + interp_coord_arrays, interp_coord_array_types, + in_arrays, in_array_types, + out_arrays, out_array_types)); +} + + +static int LocalInterp_InterpLocal_3rdOrder(cGH *GH, + int num_points, + int num_dims, + int num_in_arrays, + int num_out_arrays, + const int coord_dims[], + const void *const coord_arrays[], + const int coord_array_types[], + const void *const interp_coord_arrays[], + const int interp_coord_array_types[], + const void *const in_arrays[], + const int in_array_types[], + void *const out_arrays[], + const int out_array_types[]) +{ + return (LocalInterp_InterpLocal (GH, 3, num_points, num_dims, + num_in_arrays, num_out_arrays, + coord_dims, coord_arrays, coord_array_types, + interp_coord_arrays, interp_coord_array_types, + in_arrays, in_array_types, + out_arrays, out_array_types)); +} + +/******************************************************************************/ + +/*@@ + @routine LocalInterp_Startup + @date Sun Jul 04 1999 + @author Thomas Radke + @desc + The startup registration routine for LocalInterp. + Registers the interpolation operators with the flesh. + @enddesc + @calls CCTK_InterpRegisterOperatorLocal + @@*/ +void LocalInterp_UC_Startup(void) +{ + CCTK_InterpRegisterOperatorLocal (LocalInterp_InterpLocal_1stOrder, + "first-order uniform cartesian"); + CCTK_InterpRegisterOperatorLocal (LocalInterp_InterpLocal_2ndOrder, + "second-order uniform cartesian"); + CCTK_InterpRegisterOperatorLocal (LocalInterp_InterpLocal_3rdOrder, + "third-order uniform cartesian"); +} diff --git a/src/UniformCartesian/make.code.defn b/src/UniformCartesian/make.code.defn new file mode 100644 index 0000000..4a506e8 --- /dev/null +++ b/src/UniformCartesian/make.code.defn @@ -0,0 +1,4 @@ +# $Header$ + +# Source files in this directory +SRCS = Startup.c Operator.c Interpolate.c diff --git a/src/make.code.defn b/src/make.code.defn new file mode 100644 index 0000000..647ac4a --- /dev/null +++ b/src/make.code.defn @@ -0,0 +1,8 @@ +# Main make.code.defn file for thorn LocalInterp +# $Header$ + +# Source files in this directory +SRCS = + +# Subdirectories containing source files +SUBDIRS = UniformCartesian GeneralizedPolynomial-Uniform diff --git a/test/README b/test/README new file mode 100644 index 0000000..d5552b1 --- /dev/null +++ b/test/README @@ -0,0 +1,10 @@ +This thorn doesn't have a "test suite" in the usual Cactus sense of +this phrase. However, the CactusTest arrangement contains (among others) +the thorns TestInterp and TestInterp2: +* TestInterp used to test CCTK_InterpGV() and CCTK_InterpLocal() + interpolators, although it seems to be broken at the moment +* TestInterp2 tests CCTK_InterpGV(), CCTK_InterpLocal(), and + CCTK_InterpLocalUniform() interpolators, but at the moment it's + not integrated into the Cactus test architecture, i.e. you have + to run it explicitly and look at the output to see how well things + worked. |