|
Uni20
Asynchronous tensor and runtime library.
|
#include "precision.hpp"#include <charconv>#include <concepts>#include <gmp.h>#include <limits>#include <optional>#include <string>#include <string_view>#include <type_traits>#include <utility>Go to the source code of this file.
Classes | |
| class | uni20::decimal_literal |
| A precisionless decimal spelling produced by the _mp literal operator. More... | |
| class | uni20::exact_rational |
| Owning arbitrary-size rational with exact, eager arithmetic. More... | |
Namespaces | |
| namespace | uni20 |
| namespace | uni20::literals |
Concepts | |
| concept | uni20::ExactRationalSource |
| Exact numeric sources accepted without an approximation precision. | |
Functions | |
| constexpr decimal_literal | uni20::literals::operator""_mp (char const *text) |
| Preserve decimal source digits without conversion through a machine float. | |
| exact_rational | uni20::operator* (exact_rational const &a, exact_rational const &b) |
| exact_rational | uni20::operator+ (exact_rational const &a) |
| exact_rational | uni20::operator+ (exact_rational const &a, exact_rational const &b) |
| exact_rational | uni20::operator- (exact_rational const &a) |
| exact_rational | uni20::operator- (exact_rational const &a, exact_rational const &b) |
| exact_rational | uni20::operator/ (exact_rational const &a, exact_rational const &b) |
| std::strong_ordering | uni20::operator<=> (exact_rational const &a, exact_rational const &b) |
| bool | uni20::operator== (exact_rational const &a, exact_rational const &b) |
| template<class X , class Y > requires ((std::same_as<X, exact_rational> || std::same_as<X, decimal_literal>) && (std::same_as<Y, exact_rational> || std::same_as<Y, decimal_literal>)) | |
| exact_rational | uni20::pow (X const &base, Y const &power) |
| Evaluate a rational power exactly when its real result is rational. | |
| std::optional< exact_rational > | uni20::rational_root (exact_rational const &x, unsigned long degree) |
| Return a rational nth root when it exists, without choosing a precision. | |
| template<class X > requires (std::same_as<X, exact_rational> || std::same_as<X, decimal_literal>) | |
| exact_rational | uni20::sqrt (X const &value) |
| Return the nonnegative rational square root, or require finite precision. | |