Multiprecision Support¶
Some O₂scl classes support floating-point types beyond double
.
Generally, these classes support both long double
and the
boost::multiprecision
types. (Though some of the boost
multiprecision types require additional libraries, such as GMP.) In
some cases, O₂scl classes use adaptive multiprecision, i.e., they
are able to automatically choose among several different floating
point types to perform a calculation to a specified accuracy. See also
Multiprecision Support for Particles and EOSs.
Unfortunately, the multiprecision support also dramatically increases
the compilation time and the associated memory requirements.
Multiprecision support can be disabled with the
O2SCL_NO_BOOST_MULTIPRECISION
flag.
List of classes which support adaptive multiprecision:
Function evaluation: funct_multip_tl
Numerical differentiation: deriv_gsl
Root-finding: root_brent_gsl and root_cern
Integration: inte_kronrod_boost, inte_double_exp_boost. inte_gauss_cern, and inte_adapt_cern_tl.
List of classes which support multiprecision types:
Numerical differentiation: deriv_gsl
Function approximation: cheb_approx_tl
Root-finding: mroot_cern, root_brent_gsl, and root_toms748
String to and from floating-point conversions:
o2scl::dtos()
,o2scl::function_to_fp()
, ando2scl::function_to_fp_nothrow()
.Polynomial solving: quadratic_real_coeff_gsl2, quadratic_complex_std, cubic_real_coeff_cern, cubic_real_coeff_gsl2 and cubic_complex_std.
Mathematical expression evaluation calc_utf8
Constant library find_constants
Integration: inte_gauss56_cern.
Almost all of the vector and matrix functions in Arrays, Vectors, Matrices, and Tensors section support multiprecision. Finally, the BLAS functions documented at BLAS functions support multiprecision.
Multiprecision function typedefs¶
-
typedef std::function<long double(long double)> o2scl::funct_ld
One-dimensional long double function in src/base/funct_multip.h.
-
typedef std::function<cpp_dec_float_25(cpp_dec_float_25)> o2scl::funct_cdf25¶
One-dimensional Boost 25-digit function in src/base/funct_multip.h.
-
typedef std::function<cpp_dec_float_35(cpp_dec_float_35)> o2scl::funct_cdf35¶
One-dimensional Boost 35-digit function in src/base/funct_multip.h.
-
typedef std::function<cpp_dec_float_50(cpp_dec_float_50)> o2scl::funct_cdf50¶
One-dimensional Boost 50-digit function in src/base/funct_multip.h.
-
typedef std::function<cpp_dec_float_100(cpp_dec_float_100)> o2scl::funct_cdf100¶
One-dimensional Boost 100-digit function in src/base/funct_multip.h.
-
typedef std::function<int(long double, long double&)> o2scl::funct_ret_ld¶
One-dimensional long double function with integer return in src/base/funct_multip.h.
-
typedef std::function<int(cpp_dec_float_25, cpp_dec_float_25&)> o2scl::funct_ret_cdf25¶
One-dimensional Boost 25-digit function with integer return in src/base/funct_multip.h.
-
typedef std::function<int(cpp_dec_float_35, cpp_dec_float_35&)> o2scl::funct_ret_cdf35¶
One-dimensional Boost 35-digit function with integer return in src/base/funct_multip.h.
-
typedef std::function<int(cpp_dec_float_50, cpp_dec_float_50&)> o2scl::funct_ret_cdf50¶
One-dimensional Boost 50-digit function with integer return in src/base/funct_multip.h.
-
typedef std::function<int(cpp_dec_float_100, cpp_dec_float_100&)> o2scl::funct_ret_cdf100¶
One-dimensional Boost 100-digit function with integer return in src/base/funct_multip.h.
-
typedef std::function<mpfr_25(mpfr_25)> o2scl::funct_mpfr25¶
One-dimensional function typedef in src/base/funct.h.
This typedef is defined only if —enable-mpfr is selected when when O2scl is configured.
-
typedef std::function<mpfr_35(mpfr_35)> o2scl::funct_mpfr35¶
One-dimensional function typedef in src/base/funct.h.
This typedef is defined only if —enable-mpfr is selected when when O2scl is configured.
-
typedef std::function<mpfr_50(mpfr_50)> o2scl::funct_mpfr50¶
One-dimensional function typedef in src/base/funct.h.
This typedef is defined only if —enable-mpfr is selected when when O2scl is configured.
-
typedef std::function<mpfr_100(mpfr_100)> o2scl::funct_mpfr100¶
One-dimensional function typedef in src/base/funct.h.
This typedef is defined only if —enable-mpfr is selected when when O2scl is configured.
-
typedef std::function<int(size_t, const boost::numeric::ublas::vector<long double>&, boost::numeric::ublas::vector<long double>&)> o2scl::mm_funct_ld¶
Array of multi-dimensional long double functions typedef in src/base/mm_funct.h.
-
typedef std::function<int(size_t, const boost::numeric::ublas::vector<cpp_dec_float_25>&, boost::numeric::ublas::vector<cpp_dec_float_25>&)> o2scl::mm_funct_cdf25¶
-
typedef std::function<int(size_t, const boost::numeric::ublas::vector<cpp_dec_float_35>&, boost::numeric::ublas::vector<cpp_dec_float_35>&)> o2scl::mm_funct_cdf35¶
-
typedef std::function<int(size_t, const boost::numeric::ublas::vector<cpp_dec_float_50>&, boost::numeric::ublas::vector<cpp_dec_float_50>&)> o2scl::mm_funct_cdf50¶
-
typedef std::function<int(size_t, const boost::numeric::ublas::vector<cpp_dec_float_100>&, boost::numeric::ublas::vector<cpp_dec_float_100>&)> o2scl::mm_funct_cdf100¶