aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/GeneralizedPolynomial-Uniform/README30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/GeneralizedPolynomial-Uniform/README b/src/GeneralizedPolynomial-Uniform/README
index 39949c3..a4232b9 100644
--- a/src/GeneralizedPolynomial-Uniform/README
+++ b/src/GeneralizedPolynomial-Uniform/README
@@ -12,6 +12,36 @@ program!
+The source code files are as follows:
+* startup.c registers the interpolation operator
+* InterpLocalUniform.c is the top-level driver: it gets the various
+ options from the parameter table, then decodes
+ (N_dims, molecule_family, order, smoothing)
+ and calls the appropriate subfunction to do the actual interpolation,
+ then finally stores some results back in the parameter table.
+* [123]d.cube.order*.smooth*.c define the individual interpolation
+ subfunctions. Each of them just #defines a whole bunch of macros,
+ then #includes template.c (which has the actual code).
+* template.c is the actual interpolation code. It is written in
+ terms of a large number of macros, which should be #defined
+ before #including template.c. There's a long block comment
+ "Implementation notes:" at the start of the function, which
+ gives an outline of how the function works. (This is probably
+ the best place to start reading if you want to understand this
+ interpolator!) All the actual interpolation is done by
+ Maple-generated code fragments in the [123]d.coeffs/directories;
+ template.c uses various macros to tell it which fragments to
+ #include.
+* [123]d.maple are the top-level Maple code files; they call
+ various functions in interpolate.maple and util.maple to do
+ the actual work.
+* interpolate.maple contains the high-level Maple code for
+ computing an interpolant and manipulating/printing it in various
+ ways
+* util.maple contains low-level utility routines
+
+
+
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)