| [section:threads Thread Safety] |
| |
| 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 `long double`. |
| |
| 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: |
| |
| static const T coefficient_array = { ... list of values ... }; |
| |
| 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. |
| |
| This limitation may be addressed in a future release. |
| |
| [endsect] [/section:threads Thread Safety] |
| |
| [/ |
| Copyright 2006 John Maddock and Paul A. Bristow. |
| Distributed under the Boost Software License, Version 1.0. |
| (See accompanying file LICENSE_1_0.txt or copy at |
| http://www.boost.org/LICENSE_1_0.txt). |
| ] |