| 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.