Miscellaneous utility classes for analysing the built-in integer types at compile time.
More...
#include "regina-core.h"
#include "regina-config.h"
#include <cstdint>
#include <limits>
#include <type_traits>
|
namespace | regina |
| Contains the entire Regina calculation engine.
|
|
|
#define | ENABLE_MEMBER_FOR_REGINA_INTEGER(T, returnType) |
| Conditionally enables a member function for a template class only when the type T is one of Regina's own integer classes.
|
|
#define | INT128_AVAILABLE |
| Defined if and only if native 128-bit arithmetic is available on this platform.
|
|
|
template<typename IntType > |
constexpr int | regina::bitsRequired (IntType n) |
| Returns the number of bits required to store integers in the range 0,...,n-1.
|
|
template<typename IntType > |
constexpr IntType | regina::nextPowerOfTwo (IntType n) |
| Returns the smallest integer power of two that is greater than or equal to the given argument n.
|
|
|
template<typename IntType , IntType coeff> |
constexpr IntType | regina::maxSafeFactor |
| The largest integer of the given type that can be multiplied by coeff without overflowing.
|
|
template<typename IntType , IntType coeff> |
constexpr IntType | regina::minSafeFactor |
| The largest integer of the given type that can be multiplied by coeff without overflowing.
|
|
Miscellaneous utility classes for analysing the built-in integer types at compile time.
◆ INT128_AVAILABLE
Defined if and only if native 128-bit arithmetic is available on this platform.
If this macro is defined, then you can access native signed and unsigned 128-bit integers through the types IntOfSize<16>::type and IntOfSize<16>::utype respectively.
If this macro is not defined, then the types IntOfSize<16>::type and IntOfSize<16>::utype will both be void
.
Copyright © 1999-2025, The Regina development team
This software is released under the GNU General Public License,
with some additional permissions; see the source code for details.
For further information, or to submit a bug or other problem, please contact
Ben Burton (
bab@maths.uq.edu.au).