]>
Commit | Line | Data |
---|---|---|
1 | [section:config_macros Configuration Macros] | |
2 | ||
3 | Almost all configuration details are set up automatically by | |
4 | `<boost\math\tools\config.hpp>`. | |
5 | ||
6 | In normal use, only policy configuration macros are likely to be used. See __policy_ref. | |
7 | ||
8 | For reference, information on Boost.Math macros used internally are described briefly below. | |
9 | ||
10 | [table Boost.Math Macros | |
11 | [[MACRO][Notes]] | |
12 | [[`BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS`] [Do not produce or use long double functions: this macro gets set when the platform's | |
13 | long double or standard library long double support is absent or buggy.]] | |
14 | [[`BOOST_MATH_USE_FLOAT128`][When set the numeric constants support the `__float128` data type with constants having the `Q` suffix.]] | |
15 | [[`BOOST_MATH_DISABLE_FLOAT128`][When set the numeric constants do not use the `__float128` data type even if the compiler appears to support it.]] | |
16 | [[`BOOST_MATH_NO_REAL_CONCEPT_TESTS`] [Do not try to use real concept tests (hardware or software does not support real_concept type).]] | |
17 | [[`BOOST_MATH_CONTROL_FP`] [Controls FP hardware exceptions - our tests don't support hardware exceptions on MSVC. | |
18 | May get set to something like: ` _control87(MCW_EM,MCW_EM)`.]] | |
19 | [[`BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS`] [This macro is used by our test cases, it is set when an assignment of a function template | |
20 | to a function pointer requires explicit template arguments to be provided on the function name.]] | |
21 | [[`BOOST_MATH_USE_C99` ] [Use C99 math functions.]] | |
22 | [[`BOOST_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY`] [define if no native (or buggy) `fpclassify(long double)` | |
23 | even though the other C99 functions are present.]] | |
24 | [[`BOOST_MATH_SMALL_CONSTANT(x)`] [Helper macro used in our test cases to set underflowing constants set to zero | |
25 | if this would cause compiler issues.]] | |
26 | [[`BOOST_MATH_BUGGY_LARGE_FLOAT_CONSTANTS`] [Set if constants too large for a float, will cause "bad" values to be stored in the data, | |
27 | rather than infinity or a suitably large value.]] | |
28 | [[`BOOST_MATH_STD_USING`] [Provides `using` statements for many std:: (abs to sqrt) and boost::math (rounds, modf) functions. | |
29 | This allows these functions to be called unqualified so that if | |
30 | [@http://en.wikipedia.org/wiki/Argument-dependent_name_lookup argument-dependent Argument Dependent Lookup] | |
31 | fails to find a suitable overload, then the std:: versions will also be considered.]] | |
32 | [[`BOOST_FPU_EXCEPTION_GUARD`] [Used at the entrypoint to each special function to reset all FPU exception flags prior | |
33 | to internal calculations, and then merge the old and new exception flags on function exit. Used as a workaround | |
34 | on platforms or hardware that behave strangely if any FPU exception flags are set when calling standard library | |
35 | functions.]] | |
36 | [[`BOOST_MATH_INSTRUMENT`] [Define to output diagnostics for math functions. This is rather 'global' to Boost.Math and so | |
37 | coarse-grained that it will probably produce copious output! (Especially because full precision values are output). | |
38 | Designed primarily for internal use and development.]] | |
39 | [[`BOOST_MATH_INSTRUMENT_CODE(x)`] [Output selected named variable, for example `BOOST_MATH_INSTRUMENT_CODE("guess = " << guess)`; Used by `BOOST_MATH_INSTRUMENT`]] | |
40 | [[`BOOST_MATH_INSTRUMENT_VARIABLE(name)`] [Output selected variable, for example `BOOST_MATH_INSTRUMENT_VARIABLE(result);` Used by `BOOST_MATH_INSTRUMENT`]] | |
41 | [[`BOOST_MATH_INSTRUMENT_FPU`] [Output the state of the FPU's control flags.]] | |
42 | ] [/table] | |
43 | ||
44 | [table Boost.Math Tuning | |
45 | [[ Macros for Tuning performance options for specific compilers] [Notes]] | |
46 | [[`BOOST_MATH_POLY_METHOD`] [See the [link math_toolkit.tuning performance tuning section].]] | |
47 | [[`BOOST_MATH_RATIONAL_METHOD`] [See the [link math_toolkit.tuning performance tuning section].]] | |
48 | [[`BOOST_MATH_MAX_POLY_ORDER`] [See the [link math_toolkit.tuning performance tuning section].]] | |
49 | [[`BOOST_MATH_INT_TABLE_TYPE`] [See the [link math_toolkit.tuning performance tuning section].]] | |
50 | [[`BOOST_MATH_INT_VALUE_SUFFIX`] [Helper macro for appending the correct suffix to integer constants | |
51 | which may actually be stored as reals depending on the value of BOOST_MATH_INT_TABLE_TYPE.]] | |
52 | ] [/table] | |
53 | ||
54 | [endsect] [/section:config_macros Configuration Macros] | |
55 | ||
56 | [/ | |
57 | Copyright 2010 John Maddock and Paul A. Bristow. | |
58 | Distributed under the Boost Software License, Version 1.0. | |
59 | (See accompanying file LICENSE_1_0.txt or copy at | |
60 | http://www.boost.org/LICENSE_1_0.txt). | |
61 | ] |