20#ifndef RIPPLE_BASICS_NUMBER_H_INCLUDED 
   21#define RIPPLE_BASICS_NUMBER_H_INCLUDED 
   55    explicit constexpr Number() = 
default;
 
   67    operator+() const noexcept;
 
   69    operator-() const noexcept;
 
   80    operator+=(
Number const& x);
 
   82    operator-=(
Number const& x);
 
   85    operator*=(
Number const& x);
 
   87    operator/=(
Number const& x);
 
  102    operator 
rep() const;  
 
  104    friend constexpr 
bool 
  107        return x.mantissa_ == y.mantissa_ && x.exponent_ == y.exponent_;
 
 
  110    friend constexpr bool 
  116    friend constexpr bool 
  121        bool const lneg = x.mantissa_ < 0;
 
  122        bool const rneg = y.mantissa_ < 0;
 
  129        if (x.mantissa_ == 0)
 
  130            return y.mantissa_ > 0;
 
  133        if (y.mantissa_ == 0)
 
  137        if (x.exponent_ > y.exponent_)
 
  139        if (x.exponent_ < y.exponent_)
 
  143        return x.mantissa_ < y.mantissa_;
 
 
  171    friend constexpr bool 
  177    friend constexpr bool 
 
  183    friend constexpr bool 
 
  323inline constexpr Number
 
  361power(Number 
const& f, 
unsigned n);
 
  368root(Number f, 
unsigned d);
 
  376power(Number 
const& f, 
unsigned n, 
unsigned d);
 
  380inline constexpr Number
 
NumberRoundModeGuard(NumberRoundModeGuard const &)=delete
 
NumberRoundModeGuard & operator=(NumberRoundModeGuard const &)=delete
 
saveNumberRoundMode saved_
 
NumberRoundModeGuard(Number::rounding_mode mode) noexcept
 
constexpr bool isnormal() const noexcept
 
friend constexpr bool operator<(Number const &x, Number const &y) noexcept
 
static constexpr std::int64_t maxMantissa
 
static constexpr int maxExponent
 
Number truncate() const noexcept
 
static constexpr std::int64_t minMantissa
 
constexpr int exponent() const noexcept
 
static thread_local rounding_mode mode_
 
constexpr Number operator+() const noexcept
 
static constexpr Number max() noexcept
 
static rounding_mode getround()
 
static constexpr int minExponent
 
friend constexpr bool operator!=(Number const &x, Number const &y) noexcept
 
friend constexpr bool operator>=(Number const &x, Number const &y) noexcept
 
static rounding_mode setround(rounding_mode mode)
 
constexpr rep mantissa() const noexcept
 
static constexpr Number lowest() noexcept
 
static constexpr Number min() noexcept
 
Number & operator-=(Number const &x)
 
constexpr Number operator-() const noexcept
 
friend std::ostream & operator<<(std::ostream &os, Number const &x)
 
friend constexpr bool operator>(Number const &x, Number const &y) noexcept
 
constexpr Number()=default
 
constexpr int signum() const noexcept
Return the sign of the amount.
 
friend constexpr bool operator<=(Number const &x, Number const &y) noexcept
 
saveNumberRoundMode(Number::rounding_mode mode) noexcept
 
saveNumberRoundMode & operator=(saveNumberRoundMode const &)=delete
 
Number::rounding_mode mode_
 
saveNumberRoundMode(saveNumberRoundMode const &)=delete
 
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
 
Number operator*(Number const &x, Number const &y)
 
Number power(Number const &f, unsigned n)
 
std::string to_string(base_uint< Bits, Tag > const &a)
 
Number operator-(Number const &x, Number const &y)
 
Number root(Number f, unsigned d)
 
constexpr base_uint< Bits, Tag > operator+(base_uint< Bits, Tag > const &a, base_uint< Bits, Tag > const &b)
 
constexpr Number squelch(Number const &x, Number const &limit) noexcept
 
Number operator/(Number const &x, Number const &y)
 
constexpr Number abs(Number x) noexcept