Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
mpreal.hpp File Reference
#include "detail/function_identity.hpp"
#include "detail/scaled_rational.hpp"
#include "exact_rational.hpp"
#include "math_constants.hpp"
#include "scalar_traits.hpp"
#include <memory>
#include <mpfr.h>
#include <ostream>
#include <uni20/common/initialization.hpp>
#include <variant>
#include "mpreal_functions.hpp"
#include "mpreal_special.hpp"
#include "mpreal_extensions.hpp"
Include dependency graph for mpreal.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  uni20::mpreal
 Owning exact rational or finite-precision MPFR real, with eager arithmetic. More...
 
struct  uni20::numeric_limits< mpreal >
 Type properties and explicit runtime limits for exact-or-approximate reals. More...
 

Namespaces

namespace  uni20
 

Functions

mpreal uni20::abs (mpreal const &x)
 
mpreal uni20::abs (mpreal const &x, Precision p)
 Evaluate abs(x.at(p)), returning an approximation at finite precision p.
 
mpreal uni20::acos (mpreal const &x)
 Inverse cosine in radians; retain input precision or a supported exact result.
 
mpreal uni20::acos (mpreal const &x, Precision p)
 Evaluate acos(x.at(p)), returning an approximation at finite precision p.
 
mpreal uni20::acosh (mpreal const &x)
 Inverse hyperbolic cosine; retain input precision or a supported exact result.
 
mpreal uni20::acosh (mpreal const &x, Precision p)
 Evaluate acosh(x.at(p)), returning an approximation at finite precision p.
 
mpreal uni20::asin (mpreal const &x)
 Inverse sine in radians; retain input precision or a supported exact result.
 
mpreal uni20::asin (mpreal const &x, Precision p)
 Evaluate asin(x.at(p)), returning an approximation at finite precision p.
 
mpreal uni20::asinh (mpreal const &x)
 Inverse hyperbolic sine; retain input precision or a supported exact result.
 
mpreal uni20::asinh (mpreal const &x, Precision p)
 Evaluate asinh(x.at(p)), returning an approximation at finite precision p.
 
mpreal uni20::atan (mpreal const &x)
 
mpreal uni20::atan (mpreal const &x, Precision p)
 Evaluate atan(x.at(p)), returning an approximation at finite precision p.
 
mpreal uni20::atan2 (mpreal const &y, mpreal const &x)
 
mpreal uni20::atan2 (mpreal const &y, mpreal const &x, Precision p)
 Evaluate atan2(y.at(p), x.at(p)), overriding both operands' precisions.
 
mpreal uni20::atanh (mpreal const &x)
 Inverse hyperbolic tangent; retain input precision or a supported exact result.
 
mpreal uni20::atanh (mpreal const &x, Precision p)
 Evaluate atanh(x.at(p)), returning an approximation at finite precision p.
 
mpreal uni20::cbrt (mpreal const &x)
 Real cube root, including negative arguments; retain input precision or a supported exact result.
 
mpreal uni20::cbrt (mpreal const &x, Precision p)
 Evaluate cbrt(x.at(p)), returning an approximation at finite precision p.
 
mpreal uni20::conj (mpreal const &x)
 
mpreal uni20::cos (mpreal const &x)
 
mpreal uni20::cos (mpreal const &x, Precision p)
 Evaluate cos(x.at(p)), returning an approximation at finite precision p.
 
mpreal uni20::cosh (mpreal const &x)
 Hyperbolic cosine; retain input precision or a supported exact result.
 
mpreal uni20::cosh (mpreal const &x, Precision p)
 Evaluate cosh(x.at(p)), returning an approximation at finite precision p.
 
mpreal uni20::epsilon (Precision precision)
 Spacing above one for a specified binary working precision.
 
mpreal uni20::exp (mpreal const &x)
 
mpreal uni20::exp (mpreal const &x, Precision p)
 Evaluate exp(x.at(p)), returning an approximation at finite precision p.
 
mpreal uni20::exp2 (mpreal const &x)
 Base-two exponential; retain input precision or a supported exact result.
 
mpreal uni20::exp2 (mpreal const &x, Precision p)
 Evaluate exp2(x.at(p)), returning an approximation at finite precision p.
 
mpreal uni20::expm1 (mpreal const &x)
 Exponential minus one without cancellation; retain input precision or exact zero.
 
mpreal uni20::expm1 (mpreal const &x, Precision p)
 Evaluate expm1(x.at(p)), returning an approximation at finite precision p.
 
mpreal uni20::hypot (mpreal const &x, mpreal const &y)
 
mpreal uni20::hypot (mpreal const &x, mpreal const &y, Precision p)
 Evaluate hypot(x.at(p), y.at(p)), overriding both operands' precisions.
 
bool uni20::isfinite (mpreal const &x)
 
bool uni20::isinf (mpreal const &x)
 
bool uni20::isnan (mpreal const &x)
 
mpreal uni20::log (mpreal const &x)
 
mpreal uni20::log (mpreal const &x, Precision p)
 Evaluate log(x.at(p)), returning an approximation at finite precision p.
 
mpreal uni20::log10 (mpreal const &x)
 Base-ten logarithm; retain input precision or a supported exact result.
 
mpreal uni20::log10 (mpreal const &x, Precision p)
 Evaluate log10(x.at(p)), returning an approximation at finite precision p.
 
mpreal uni20::log1p (mpreal const &x)
 Logarithm of one plus x without cancellation; retain input precision or exact zero.
 
mpreal uni20::log1p (mpreal const &x, Precision p)
 Evaluate log1p(x.at(p)), returning an approximation at finite precision p.
 
mpreal uni20::log2 (mpreal const &x)
 Base-two logarithm; retain input precision or a supported exact result.
 
mpreal uni20::log2 (mpreal const &x, Precision p)
 Evaluate log2(x.at(p)), returning an approximation at finite precision p.
 
mpreal uni20::operator* (exact_rational const &a, mpreal const &b)
 
mpreal uni20::operator* (mpreal const &a, exact_rational const &b)
 
mpreal uni20::operator* (mpreal const &a, mpreal const &b)
 
mpreal uni20::operator+ (exact_rational const &a, mpreal const &b)
 
mpreal uni20::operator+ (mpreal const &a)
 
mpreal uni20::operator+ (mpreal const &a, exact_rational const &b)
 
mpreal uni20::operator+ (mpreal const &a, mpreal const &b)
 
mpreal uni20::operator- (exact_rational const &a, mpreal const &b)
 
mpreal uni20::operator- (mpreal const &a)
 
mpreal uni20::operator- (mpreal const &a, exact_rational const &b)
 
mpreal uni20::operator- (mpreal const &a, mpreal const &b)
 
mpreal uni20::operator/ (exact_rational const &a, mpreal const &b)
 
mpreal uni20::operator/ (mpreal const &a, exact_rational const &b)
 
mpreal uni20::operator/ (mpreal const &a, mpreal const &b)
 
std::ostream & uni20::operator<< (std::ostream &os, exact_rational const &value)
 
std::ostream & uni20::operator<< (std::ostream &os, mpreal const &value)
 Stream the round-trip decimal representation, independent of stream precision.
 
std::partial_ordering uni20::operator<=> (mpreal const &a, exact_rational const &b)
 
template<std::integral I>
requires (!std::same_as<I, bool>)
std::partial_ordering uni20::operator<=> (mpreal const &a, I b)
 
std::partial_ordering uni20::operator<=> (mpreal const &a, mpreal const &b)
 Compare exact or stored approximate values without rounding either operand.
 
bool uni20::operator== (mpreal const &a, exact_rational const &b)
 
template<std::integral I>
requires (!std::same_as<I, bool>)
bool uni20::operator== (mpreal const &a, I b)
 
bool uni20::operator== (mpreal const &a, mpreal const &b)
 
mpreal uni20::pow (mpreal const &x, mpreal const &y)
 
mpreal uni20::pow (mpreal const &x, mpreal const &y, Precision p)
 Evaluate pow(x.at(p), y.at(p)), overriding both operands' precisions.
 
bool uni20::signbit (mpreal const &x)
 
mpreal uni20::sin (mpreal const &x)
 
mpreal uni20::sin (mpreal const &x, Precision p)
 Evaluate sin(x.at(p)), returning an approximation at finite precision p.
 
mpreal uni20::sinh (mpreal const &x)
 Hyperbolic sine; retain input precision or a supported exact result.
 
mpreal uni20::sinh (mpreal const &x, Precision p)
 Evaluate sinh(x.at(p)), returning an approximation at finite precision p.
 
mpreal uni20::sqrt (mpreal const &x)
 
mpreal uni20::sqrt (mpreal const &x, Precision p)
 Evaluate sqrt(x.at(p)), returning an approximation at finite precision p.
 
mpreal uni20::tan (mpreal const &x)
 
mpreal uni20::tan (mpreal const &x, Precision p)
 Evaluate tan(x.at(p)), returning an approximation at finite precision p.
 
mpreal uni20::tanh (mpreal const &x)
 Hyperbolic tangent; retain input precision or a supported exact result.
 
mpreal uni20::tanh (mpreal const &x, Precision p)
 Evaluate tanh(x.at(p)), returning an approximation at finite precision p.