intutils.h File Reference

Miscellaneous utility classes for analysing the built-in integer types at compile time. More...

`#include "regina-core.h"`
`#include "regina-config.h"`
`#include <stdint.h>`

## Classes

struct | regina::IntOfSize< bytes >
| Gives access to native integer types that hold exactly k bytes, where k may be any compile-time constant. More...
struct | regina::IntOfMinSize< bytes >
| Gives access to native integer types that hold at least k bytes, where k may be any compile-time constant. More...

## Namespaces

| regina
| Contains the entire Regina calculation engine.

## Macros

#define | INT128_AVAILABLE
| Defined if and only if native 128-bit arithmetic is available on this platform. More...

## Functions

template<typename IntType >
constexpr int | regina::bitsRequired (IntType n)
| Returns the number of bits required to store integers in the range 0,...,n-1. More...
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. More...

## Detailed Description

Miscellaneous utility classes for analysing the built-in integer types at compile time.

## Macro Definition Documentation

## INT128_AVAILABLE

#define 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-2016, 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).