Multiprecision Support¶
If O₂scl is compiled with multiprecision support using the
--enable-multip
flag to the configure
script, then 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.
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¶