Regina Calculation Engine
Classes | Namespaces | Typedefs | Functions
tritmask.h File Reference

Provides optimised "ternary bitmasks" of fixed length. More...

#include <algorithm>
#include <iostream>
#include "regina-core.h"
#include "regina-config.h"

Classes

class  regina::Tritmask1< T >
 
A small but extremely fast "ternary bitmask" class that can store up to 8 * sizeof(T) "trits", each equal to 0, 1 or 2. More...
 
class  regina::Tritmask2< T, U >
 
A small but extremely fast "ternary bitmask" class that can store up to 8 * sizeof(T) + 8 * sizeof(U) "trits", each equal to 0, 1 or 2. More...
 

Namespaces

 regina
 Contains the entire Regina calculation engine.
 

Typedefs

typedef Tritmask1< unsigned char > regina::TritmaskLen8
 
A convenience typedef that gives a small and extremely fast tritmask class capable of holding at least 8 true-or-false bits. More...
 
typedef Tritmask1< unsigned int > regina::TritmaskLen16
 
A convenience typedef that gives a small and extremely fast tritmask class capable of holding at least 16 true-or-false bits. More...
 
typedef InternalTritmaskLen32 ::Type regina::TritmaskLen32
 
A convenience typedef that gives a small and extremely fast tritmask class capable of holding at least 32 true-or-false bits. More...
 
typedef InternalTritmaskLen64 ::Type regina::TritmaskLen64
 
A convenience typedef that gives a small and extremely fast tritmask class capable of holding at least 64 true-or-false bits. More...
 

Functions

template<typename T >
std::ostream & regina::operator<< (std::ostream &out, const Tritmask1< T > &mask)
 
Writes the given tritmask to the given output stream as a sequence of digits (0, 1 and/or 2). More...
 
template<typename T , typename U >
std::ostream & regina::operator<< (std::ostream &out, const Tritmask2< T, U > &mask)
 
Writes the given tritmask to the given output stream as a sequence of digits (0, 1 and/or 2). More...
 

Detailed Description

Provides optimised "ternary bitmasks" of fixed length.


Copyright © 1999-2021, 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).