|
Regina Calculation Engine
|
Provides arbitrary-precision and fixed-precision integer types. More...
#include <climits>#include <stdint.h>#include <stddef.h>#include <gmp.h>#include <iostream>#include <string>#include "regina-core.h"#include "utilities/intutils.h"Classes | |
| class | regina::NativeInteger< bytes > |
| A wrapper class for a native, fixed-precision integer type of the given size. More... | |
| struct | regina::InfinityBase< supportInfinity > |
| Internal base classes for use with IntegerBase, templated on whether we should support infinity as an allowed value. More... | |
| class | regina::IntegerBase< supportInfinity > |
| Represents an arbitrary precision integer. More... | |
| class | regina::NativeInteger< bytes > |
| A wrapper class for a native, fixed-precision integer type of the given size. More... | |
Namespaces | |
| regina | |
| Contains the entire Regina calculation engine. | |
Macros | |
| #define | mpz_cmp_si_cpp(z, si) |
| An internal copy of the GMP signed comparison optimisations. More... | |
Typedefs | |
| typedef IntegerBase< true > | regina::LargeInteger |
| LargeInteger is a typedef for IntegerBase<true>, which offers arbitrary precision integers with support for infinity. More... | |
| typedef IntegerBase< false > | regina::Integer |
| Integer is a typedef for IntegerBase<false>, which offers arbitrary precision integers without support for infinity. More... | |
| typedef NativeInteger< sizeof(long)> | regina::NNativeLong |
| NNativeLong is a typedef for the NativeInteger template class whose underlying integer type is a native long. More... | |
| typedef Integer | regina::NInteger |
| Deprecated typedef for backward compatibility. More... | |
| typedef LargeInteger | regina::NLargeInteger |
| Deprecated typedef for backward compatibility. More... | |
| template<int bytes> | |
| using | regina::NNativeInteger = NativeInteger< bytes > |
| Deprecated typedef for backward compatibility. More... | |
Functions | |
| template<bool supportInfinity> | |
| std::ostream & | regina::operator<< (std::ostream &out, const IntegerBase< supportInfinity > &i) |
| Writes the given integer to the given output stream. More... | |
| template<bool supportInfinity> | |
| IntegerBase< supportInfinity > | regina::operator+ (long lhs, const IntegerBase< supportInfinity > &rhs) |
| Adds the given native integer to the given large integer. More... | |
| template<bool supportInfinity> | |
| IntegerBase< supportInfinity > | regina::operator* (long lhs, const IntegerBase< supportInfinity > &rhs) |
| Multiplies the given native integer with the given large integer. More... | |
| template<int bytes> | |
| std::ostream & | regina::operator<< (std::ostream &out, const NativeInteger< bytes > &i) |
| Writes the given integer to the given output stream. More... | |
Provides arbitrary-precision and fixed-precision integer types.
| #define mpz_cmp_si_cpp | ( | z, | |
| si | |||
| ) |
An internal copy of the GMP signed comparison optimisations.
This macro should not be used outside this class.
By making our own copy of such optimisation macros we can use C++-style casts instead of C-style casts and avoid noisy compiler warnings. I'd love a better way of doing this.