|
Regina 7.4 Calculation Engine
|
Provides arbitrary-precision and fixed-precision integer types. More...
#include <climits>#include <cstdint>#include <cstddef>#include <tuple>#include <gmp.h>#include "regina-core.h"#include "maths/ring.h"#include "utilities/exception.h"#include "utilities/tightencoding.h"Classes | |
| class | regina::IntegerBase< bool > |
| Represents an arbitrary precision integer. More... | |
| class | regina::NativeInteger< int > |
| A wrapper class for a native, fixed-precision integer type of the given size. More... | |
Namespaces | |
| namespace | regina |
| Contains the entire Regina calculation engine. | |
| namespace | regina::detail |
| Contains implementation details and common functionality for Regina's dimension-agnostic classes. | |
Macros | |
| #define | mpz_cmp_si_cpp(z, si) |
| An internal copy of the GMP signed comparison optimisations. | |
Typedefs | |
| using | regina::LargeInteger = IntegerBase<true> |
| LargeInteger is a type alias for IntegerBase<true>, which offers arbitrary precision integers with support for infinity. | |
| using | regina::Integer = IntegerBase<false> |
| Integer is a type alias for IntegerBase<false>, which offers arbitrary precision integers without support for infinity. | |
| using | regina::NativeLong = NativeInteger<sizeof(long)> |
| NativeLong is a type alias for the NativeInteger template class whose underlying integer type is a native long. | |
Functions | |
| mpz_ptr | regina::detail::mpz_from_ll (long long value) |
| Returns a raw GMP integer holding the given value. | |
| mpz_ptr | regina::detail::mpz_from_ull (unsigned long long value) |
| Returns a raw GMP integer holding the given value. | |
| template<bool withInfinity> | |
| void | regina::swap (IntegerBase< withInfinity > &a, IntegerBase< withInfinity > &b) noexcept |
| Swaps the contents of the given integers. | |
| template<bool withInfinity> | |
| std::ostream & | regina::operator<< (std::ostream &out, const IntegerBase< withInfinity > &i) |
| Writes the given integer to the given output stream. | |
| template<bool withInfinity> | |
| IntegerBase< withInfinity > | regina::operator+ (long lhs, const IntegerBase< withInfinity > &rhs) |
| Adds the given native integer to the given large integer. | |
| template<bool withInfinity> | |
| IntegerBase< withInfinity > | regina::operator* (long lhs, const IntegerBase< withInfinity > &rhs) |
| Multiplies the given native integer with the given large integer. | |
| template<bool withInfinity> | |
| void | regina::tightEncode (std::ostream &out, IntegerBase< withInfinity > value) |
| Writes the tight encoding of the given arbitrary precision integer to the given output stream. | |
| template<bool withInfinity> | |
| std::string | regina::tightEncoding (IntegerBase< withInfinity > value) |
| Returns the tight encoding of the given arbitrary precision integer. | |
| template<int bytes> | |
| void | regina::swap (NativeInteger< bytes > &a, NativeInteger< bytes > &b) noexcept |
| Swaps the contents of the given integers. | |
| template<int bytes> | |
| std::ostream & | regina::operator<< (std::ostream &out, const NativeInteger< bytes > &i) |
| Writes the given integer to the given output stream. | |
Provides arbitrary-precision and fixed-precision integer types.