Space filling curve keys generator, CRTP base. More...
Public Types | |
using | int_t |
Integer type used to represent the key. | |
Public Member Functions | |
std::size_t | depth () const |
Find the depth of the current key. | |
constexpr | filling_curve_key () |
Default constructor: create an invalid key containing only zeros. | |
constexpr | filling_curve_key (int_t value) |
Construct a key from an integer of type int_t. | |
int_t | last_value () const |
Return the last bits of the key. | |
constexpr filling_curve_key | parent () const |
Return the parent of this key (depth - 1) | |
int_t | pop () |
Pop last bits and return its value. | |
void | pop (std::size_t d) |
Pop the depth d bits from the end of this key. | |
constexpr auto | push (int_t bits) const |
Push bits onto the end of this key. | |
constexpr int_t | value () const |
Get the value associated to this key. | |
Relational and equality operators | |
Equality operator
| |
constexpr bool | operator== (const filling_curve_key &bid) const |
Less than or equal to operator. | |
constexpr bool | operator<= (const filling_curve_key &bid) const |
Less than or equal to operator. | |
constexpr bool | operator>= (const filling_curve_key &bid) const |
Greater than or equal to operator. | |
constexpr bool | operator> (const filling_curve_key &bid) const |
Greater than operator. | |
constexpr bool | operator< (const filling_curve_key &bid) const |
Less than operator. | |
constexpr bool | operator!= (const filling_curve_key &bid) const |
Inequality operator. | |
Static Public Member Functions | |
static constexpr DERIVED | max () |
Biggest value possible at max_depth. | |
static constexpr std::size_t | max_depth () |
Max depth possible for this type of key. | |
static constexpr DERIVED | min () |
Smallest value possible at max_depth. | |
static constexpr DERIVED | root () |
Get the root key (depth 0) | |
Protected Attributes | |
int_t | value_ |
Value of the filling curve key. | |
Friends | |
std::ostream & | operator<< (std::ostream &ostr, const filling_curve_key &fc) |
Display a key, starting from the root (1), grouping the bits in digits. | |
Space filling curve keys generator, CRTP base.
DIM | The spatial dimension for the filling curve (1, 2 or 3 supported) |
T | The integer type used to represent the keys. The type is used as a bit-field. |
DERIVED | derived class (see below for requirements) |
Integer type used to represent the key.
|
constexpr |
Default constructor: create an invalid key containing only zeros.
|
explicitconstexpr |
Construct a key from an integer of type int_t.
|
staticconstexpr |
Max depth possible for this type of key.
|
staticconstexpr |
Smallest value possible at max_depth.
|
staticconstexpr |
Biggest value possible at max_depth.
|
staticconstexpr |
Get the root key (depth 0)
std::size_t depth | ( | ) | const |
Find the depth of the current key.
Push bits onto the end of this key.
Pop last bits and return its value.
Return the last bits of the key.
void pop | ( | std::size_t | d | ) |
Pop the depth d bits from the end of this key.
|
constexpr |
Return the parent of this key (depth - 1)
Get the value associated to this key.
|
constexpr |
Less than or equal to operator.
|
constexpr |
Less than or equal to operator.
|
constexpr |
Greater than or equal to operator.
|
constexpr |
Greater than operator.
|
constexpr |
Less than operator.
|
constexpr |
Inequality operator.
|
friend |
Display a key, starting from the root (1), grouping the bits in digits.
The digits are composed of 1, 2, 3 bits matching the dimension used for the key.