diff options
Diffstat (limited to 'src/jtutil/README')
-rw-r--r-- | src/jtutil/README | 36 |
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 . |