<mpfrcpp/extra/beta.hpp>
]<mpfrcpp/extra/complex.hpp>
]<mpfrcpp/extra/fp_comparator.hpp>
]<mpfrcpp/extra/polynomial.hpp>
]<mpfrcpp/extra/pminf.hpp>
]<mpfrcpp/extra/simple_functions.hpp>
]std
Overloads [<mpfrcpp/extra/std_overloads.hpp>
]<mpfrcpp/extra/beta.hpp>
]Beta (x,y) = Gamma(x)Gamma(y)/Gamma(x+y).
namespace mpfrcpp {
Real Beta (Real&, Real&) throw();
}
<mpfrcpp/extra/complex.hpp>
]Complex numbers implementation. Based on the GNU ISO C++ Library implementation by Gabriel Dos Reis. It's not a std::complex<T>
specialization for T = mpfrcpp::Real
because of distinctions in different std::complex<T>
implementations (actually, not all of them are ISO-conforming).
namespace mpfrcpp {
typedef class nacre::complex::Complex<Real> Complex;
using namespace nacre::complex;
}
<mpfrcpp/extra/fp_comparator.hpp>
]Comparison of two floating point numbers respecting to some epsilon, machine epsilon by default.
namespace mpfrcpp {
typedef class nacre::comparator::FpComparator<Real> FpComparator;
using nacre::comparator;
}
<mpfrcpp/extra/polynomial.hpp>
]General polynomial class, orthogonal polynomials (Chebyshev, Hermite, Laguerre, Legendre), polynomial roots (Muller method).
namespace mpfrcpp {
typedef class nacre::polynomial::Polynomial<Real> Polynomial;
using namespace nacre::polynomial;
}
<mpfrcpp/extra/pminf.hpp>
]namespace mpfrcpp {
extern AbsClass AbsMInf;
extern AbsClass AbsPInf;
extern AcosClass AcosMInf;
extern AcosClass AcosPInf;
extern AcoshClass AcoshMInf;
extern AcoshClass AcoshPInf;
extern AgmClass AgmMInf;
extern AgmClass AgmPInf;
extern AsinhClass AsinhMInf;
extern AsinhClass AsinhPInf;
extern AtanClass AtanMInf;
extern AtanClass AtanPInf;
extern AtanhClass AtanhMInf;
extern AtanhClass AtanhPInf;
extern CbrtClass CbrtMInf;
extern CbrtClass CbrtPInf;
extern ConstantClass ConstantMInf;
extern ConstantClass ConstantPInf;
extern CosClass CosMInf;
extern CosClass CosPInf;
extern CoshClass CoshMInf;
extern CoshClass CoshPInf;
extern CotClass CotMInf;
extern CotClass CotPInf;
extern CothClass CothMInf;
extern CothClass CothPInf;
extern CscClass CscMInf;
extern CscClass CscPInf;
extern CschClass CschMInf;
extern CschClass CschPInf;
extern DivClass DivMInf;
extern DivClass DivPInf;
extern EintClass EintMInf;
extern EintClass EintPInf;
extern ErfClass ErfMInf;
extern ErfClass ErfPInf;
extern ErfcClass ErfcMInf;
extern ErfcClass ErfcPInf;
extern ExpClass ExpMInf;
extern ExpClass ExpPInf;
extern Exp10Class Exp10MInf;
extern Exp10Class Exp10PInf;
extern Exp2Class Exp2MInf;
extern Exp2Class Exp2PInf;
extern Expm1Class Expm1MInf;
extern Expm1Class Expm1PInf;
extern FactorialClass FactorialMInf;
extern FactorialClass FactorialPInf;
extern FmaClass FmaMInf;
extern FmaClass FmaPInf;
extern FracClass FracMInf;
extern FracClass FracPInf;
extern GammaClass GammaMInf;
extern GammaClass GammaPInf;
extern HypotClass HypotMInf;
extern HypotClass HypotPInf;
extern LngammaClass LngammaMInf;
extern LngammaClass LngammaPInf;
extern LogClass LogMInf;
extern LogClass LogPInf;
extern Log10Class Log10MInf;
extern Log10Class Log10PInf;
extern Log1pClass Log1pMInf;
extern Log1pClass Log1pPInf;
extern Log2Class Log2MInf;
extern Log2Class Log2PInf;
extern MulClass MulMInf;
extern MulClass MulPInf;
extern NegClass NegMInf;
extern NegClass NegPInf;
extern PowClass PowMInf;
extern PowClass PowPInf;
extern RootClass RootMInf;
extern RootClass RootPInf;
extern SecClass SecMInf;
extern SecClass SecPInf;
extern SechClass SechMInf;
extern SechClass SechPInf;
extern SinClass SinMInf;
extern SinClass SinPInf;
extern SinCosClass SinCosMInf;
extern SinCosClass SinCosPInf;
extern SinhClass SinhMInf;
extern SinhClass SinhPInf;
extern SqrClass SqrMInf;
extern SqrClass SqrPInf;
extern SqrtClass SqrtMInf;
extern SqrtClass SqrtPInf;
extern SubClass SubMInf;
extern SubClass SubPInf;
extern TanClass TanMInf;
extern TanClass TanPInf;
extern TanhClass TanhMInf;
extern TanhClass TanhPInf;
extern ZetaClass ZetaMInf;
extern ZetaClass ZetaPInf;
class ExtraNumericFunctions : public NumericFunctions;
extern ExtraNumericFunctions ExtraFunctions;
} // namespace mpfrcpp
<mpfrcpp/extra/simple_functions.hpp>
]Overloads the folowing functions: abs
, acos
, acosh
, agm
, asin
, asinh
, atan2
, atan
, atanh
, cbrt
, ceil
, cos
, cosh
, cot
, coth
, csc
, csch
, eint
, erf
, erfc
, exp10
, exp2
, exp
, expm1
, factorial
, floor
, fma
, frac
, gamma
, hypot
, lngamma
, log10
, log1p
, log2
, log
, pow
, root
, round
, sec
, sech
, sin
, sinh
, sqr
, sqrt
, tan
, tanh
, trunc
, zeta
in the mpfrcpp
namespace.
Could conflict with std_overloads.hpp
, do not use with std_overloads.hpp
.
namespace mpfrcpp {
Real abs (const Real&) throw();
Real acos (const Real&) throw();
Real acosh (const Real&) throw();
Real agm (const Real&, const Real&) throw();
Real asin (const Real&) throw();
Real asinh (const Real&) throw();
Real atan2 (const Real&, const Real&) throw();
Real atan (const Real&) throw();
Real atanh (const Real&) throw();
Real cbrt (const Real&) throw();
Real ceil (const Real&) throw();
Real cos (const Real&) throw();
Real cosh (const Real&) throw();
Real cot (const Real&) throw();
Real coth (const Real&) throw();
Real csc (const Real&) throw();
Real csch (const Real&) throw();
Real eint (const Real&) throw();
Real erf (const Real&) throw();
Real erfc (const Real&) throw();
Real exp10 (const Real&) throw();
Real exp2 (const Real&) throw();
Real exp (const Real&) throw();
Real expm1 (const Real&) throw();
Real factorial (unsigned int) throw();
Real floor (const Real&) throw();
Real fma (const Real&, const Real&, const Real&) throw();
Real frac (const Real&) throw();
Real gamma (const Real&) throw();
Real hypot (const Real&, const Real&) throw();
Real lngamma (const Real&) throw();
Real log10 (const Real&) throw();
Real log1p (const Real&) throw();
Real log2 (const Real&) throw();
Real log (const Real&) throw();
Real pow (const Real&, const Real&) throw();
Real pow (const Real&, int&) throw();
Real pow (const Real&, const mpz_t&) throw();
Real pow (const Real&, const mpz_class&) throw();
Real root (const Real&, unsigned int) throw();
Real round (const Real&) throw();
Real sec (const Real&) throw();
Real sech (const Real&) throw();
Real sin (const Real&) throw();
Real sinh (const Real&) throw();
Real sqr (const Real&) throw();
Real sqrt (const Real&) throw();
Real tan (const Real&) throw();
Real tanh (const Real&) throw();
Real trunc (const Real&) throw();
Real zeta (const Real&) throw();
} // namespace mpfrcpp
std
Overloads [<mpfrcpp/extra/std_overloads.hpp>
]Overloads the folowing functions: abs
, acos
, asin
, atan
, atan2
, ceil
, cos
, cosh
, exp
, fabs
, floor
, fmod
, frexp
, ldexp
, log
, log10
, modf
, pow
, sin
, sinh
, sqrt
, swap
, tan
, tanh
in the std
namespace.
Partial std::numeric_limits<Real>
specification. Could conflict with simple_functions.hpp
, do not use with simple_functions.hpp
.
namespace std {
void swap (mpfrcpp::Real&, mpfrcpp::Real&) throw();
mpfrcpp::Real abs (const mpfrcpp::Real&) throw();
mpfrcpp::Real acos (const mpfrcpp::Real&) throw();
mpfrcpp::Real asin (const mpfrcpp::Real&) throw();
mpfrcpp::Real atan (const mpfrcpp::Real&) throw();
mpfrcpp::Real atan2 (const mpfrcpp::Real&, const mpfrcpp::Real&);
mpfrcpp::Real ceil (const mpfrcpp::Real&) throw();
mpfrcpp::Real cos (const mpfrcpp::Real&) throw();
mpfrcpp::Real cosh (const mpfrcpp::Real&) throw();
mpfrcpp::Real exp (const mpfrcpp::Real&) throw();
mpfrcpp::Real fabs (const mpfrcpp::Real&) throw();
mpfrcpp::Real floor (const mpfrcpp::Real&) throw();
mpfrcpp::Real fmod (const mpfrcpp::Real&, const mpfrcpp::Real&) throw();
mpfrcpp::Real frexp (const mpfrcpp::Real&, int*) throw();
mpfrcpp::Real ldexp (const mpfrcpp::Real&, int) throw();
mpfrcpp::Real log (const mpfrcpp::Real&) throw();
mpfrcpp::Real log10 (const mpfrcpp::Real&) throw();
mpfrcpp::Real modf (const mpfrcpp::Real&, mpfrcpp::Real*) throw();
mpfrcpp::Real pow (const mpfrcpp::Real&, const mpfrcpp::Real&) throw();
mpfrcpp::Real pow (const mpfrcpp::Real&, int&) throw();
mpfrcpp::Real sin (const mpfrcpp::Real&) throw();
mpfrcpp::Real sinh (const mpfrcpp::Real&) throw();
mpfrcpp::Real sqrt (const mpfrcpp::Real&) throw();
mpfrcpp::Real tan (const mpfrcpp::Real&) throw();
mpfrcpp::Real tanh (const mpfrcpp::Real&) throw();
template<> class numeric_limits<mpfrcpp::Real> {
public:
static const bool is_specialized = false; // FIXME
static const int radix = 2;
static const bool is_signed = true;
static const bool is_integer = false;
static const bool is_iec559 = true;
static const bool has_infinity = true;
static const bool has_quiet_NaN = true;
static const bool is_bounded = true;
static const bool is_modulo = false;
static const bool is_exact = false;
static mpfrcpp::Real epsilon () throw();
static mpfrcpp::Real quiet_NaN() throw();
static mpfrcpp::Real signaling_NaN() throw();
static mpfrcpp::Real infinity() throw();
};
} // namespace std
numeric_limits<mpfrcpp::Real>::is_specialized == false
since the complete specification depends on type precision. Current code should be used to get epsilon / NaN / Infinity only.