aboutsummaryrefslogtreecommitdiff
path: root/src/jtutil/README
diff options
context:
space:
mode:
Diffstat (limited to 'src/jtutil/README')
-rw-r--r--src/jtutil/README36
1 files changed, 35 insertions, 1 deletions
diff --git a/src/jtutil/README b/src/jtutil/README
index d8dac3a..2273735 100644
--- a/src/jtutil/README
+++ b/src/jtutil/README
@@ -1,3 +1,37 @@
This directory holds low-level utility code that we use, but that's
not really specific to this project -- things like min/max templates,
-multidimensional array classes, fuzzy arithmetic routines, etc.
+multidimensional array classes, fuzzy arithmetic routines, etc:
+
+array<fp>
+ is a template class (templated on the integer or floating-point
+ type of the array elements) providing multidimensional arrays.
+ At present these are stored directly in C++ \code{new[]}-allocated
+ storage, but sometime soon I'll add an option to use Cactus
+ grid functions or local arrays.
+
+linear_map<fp>
+ is a template class (templated on the floating-point type)
+ representing a linear map between a contiguous interval of
+ integers, and floating-point numbers.
+cpm_map<fp>
+ is a template class (templated on the floating-point type)
+ representing a mapping from the integers to the integers,
+ of the form i --> constant +/- i . (The name abbreviates
+ "Constant Plus or Minus MAP".)
+fuzzy<fp>
+ is a template class (templated on the floating-point type)
+ providing fuzzy arithmetic, to try to paper over some of the
+ effects of floating-point rounding errors. For example,
+ one can write
+ for (fp x = 0.0 ; fuzzy<fp>::LE(x,1.0) ; x += 0.1)
+ {
+ // ...
+ }
+ and have the loop execute as one would naievly expect,
+ even if rounding errors cause the final value of \code{x}
+ to be 0.9999999999999999 or 1.000000000000001 or suchlike.
+round<fp>
+ is a template class (templated on the floating-point type)
+ to do machine-independent rounding of floating point values
+
+There are also a number of test drivers in the files test_*.cc .