Multiprecision Support

O2scl

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:

List of classes which support multiprecision types:

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 &#8212;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 &#8212;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 &#8212;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 &#8212;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