The library is fully thread safe and re-entrant provided the function and
class templates in the library are instantiated with built-in floating point
types: i.e. the types float,
double and longdouble.

However, the library is not thread safe
when used with user-defined (i.e. class type) numeric types.

The reason for the latter limitation is the need to initialise symbolic constants
using constructs such as:

staticconstTcoefficient_array={...listofvalues...};

Which is always thread safe when T is a built-in floating point type, but
not when T is a user defined type: as in this case there is a need for T's
constructors to be run, leading to potential race conditions.