...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Almost all configuration details are set up automatically by <boost\math\tools\config.hpp>
.
In normal use, only policy configuration macros are likely to be used. See policy reference.
For reference, information on Boost.Math macros used internally are described briefly below.
Table 1.11. Boost.Math Macros
MACRO |
Notes |
---|---|
|
Do not produce or use long double functions: this macro gets set when the platform's long double or standard library long double support is absent or buggy. |
|
When set the numeric constants support the |
|
When set the numeric constants do not use the |
|
Do not try to use real concept tests (hardware or software does not support real_concept type). |
|
Controls FP hardware exceptions - our tests don't support hardware
exceptions on MSVC. May get set to something like: |
|
This macro is used by our test cases, it is set when an assignment of a function template to a function pointer requires explicit template arguments to be provided on the function name. |
|
Use C99 math functions. |
|
define if no native (or buggy) |
|
Helper macro used in our test cases to set underflowing constants set to zero if this would cause compiler issues. |
|
Set if constants too large for a float, will cause "bad" values to be stored in the data, rather than infinity or a suitably large value. |
|
Provides |
|
Used at the entrypoint to each special function to reset all FPU exception flags prior to internal calculations, and then merge the old and new exception flags on function exit. Used as a workaround on platforms or hardware that behave strangely if any FPU exception flags are set when calling standard library functions. |
|
Define to output diagnostics for math functions. This is rather 'global' to Boost.Math and so coarse-grained that it will probably produce copious output! (Especially because full precision values are output). Designed primarily for internal use and development. |
|
Output selected named variable, for example |
|
Output selected variable, for example |
|
Output the state of the FPU's control flags. |
Table 1.12. Boost.Math Tuning
Macros for Tuning performance options for specific compilers |
Notes |
---|---|
|
See the performance tuning section. |
|
See the performance tuning section. |
|
See the performance tuning section. |
|
See the performance tuning section. |
|
Helper macro for appending the correct suffix to integer constants which may actually be stored as reals depending on the value of BOOST_MATH_INT_TABLE_TYPE. |