Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | List of all members
uni20::Precision Class Reference

Exact arithmetic or an explicit binary working precision. More...

#include <precision.hpp>

Public Types

using bit_count_type = std::int64_t
 

Public Member Functions

constexpr bit_count_type bit_count () const
 Number of binary significand bits.
 
constexpr bool is_exact () const noexcept
 
constexpr bool operator== (Precision const &) const =default
 

Static Public Member Functions

static constexpr Precision bits (bit_count_type count)
 Select a positive binary significand size.
 
static constexpr Precision decimal_digits (std::int64_t count)
 Request at least this many decimal digits of significand precision.
 
static constexpr Precision exact () noexcept
 No approximation has been selected; rational arithmetic remains exact.
 

Detailed Description

Exact arithmetic or an explicit binary working precision.

A provider-independent description, available in every build. It never changes numerical defaults. Providers validate their own ranges.

Member Typedef Documentation

◆ bit_count_type

using uni20::Precision::bit_count_type = std::int64_t

Member Function Documentation

◆ bit_count()

constexpr bit_count_type uni20::Precision::bit_count ( ) const
inlineconstexpr

Number of binary significand bits.

Exceptions
std::logic_errorIf this precision denotes exact arithmetic.

◆ bits()

static constexpr Precision uni20::Precision::bits ( bit_count_type  count)
inlinestaticconstexpr

Select a positive binary significand size.

◆ decimal_digits()

static constexpr Precision uni20::Precision::decimal_digits ( std::int64_t  count)
inlinestaticconstexpr

Request at least this many decimal digits of significand precision.

Uses the upper bound 3.32193 for log2(10); may allocate extra bits.

◆ exact()

static constexpr Precision uni20::Precision::exact ( )
inlinestaticconstexprnoexcept

No approximation has been selected; rational arithmetic remains exact.

◆ is_exact()

constexpr bool uni20::Precision::is_exact ( ) const
inlineconstexprnoexcept

◆ operator==()

constexpr bool uni20::Precision::operator== ( Precision const &  ) const
constexprdefault

The documentation for this class was generated from the following file: