ECOGEN 4.0
Evolutive, Compressible, Open, Genuine, Easy, N-phase
Loading...
Searching...
No Matches
decomposition::Key< Dim > Struct Template Reference

#include <key.hpp>

Classes

struct  hash_functor
 

Public Types

using value_type = unsigned long long int
 
using scalar_coordinate_type = int
 
using float_type = double
 
template<typename U >
using vector_type = math::vector< U, Dim >
 
using coordinate_type = vector_type< scalar_coordinate_type >
 
using real_coordinate_type = vector_type< float_type >
 

Public Member Functions

 Key () noexcept
 
 Key (value_type idx) noexcept
 
 Key (int x, int y, int z) noexcept
 
 Key (coordinate_type x) noexcept
 
 Key (const Key &)=default
 
 Key (Key &&)=default
 
Keyoperator= (const Key &) &=default
 
Keyoperator= (Key &&) &=default
 
coordinate_type coordinate () const noexcept
 
const value_typeindex () const noexcept
 
value_typeindex () noexcept
 
const value_typegetIndex () const noexcept
 
value_typegetIndex () noexcept
 
Key neighbor (const coordinate_type &_offset) const noexcept
 
Key child (int i) const noexcept
 
Keyoperator++ () noexcept
 
Keyoperator-- () noexcept
 
Keyoperator+= (int) noexcept
 
Keyoperator-= (int) noexcept
 

Static Public Member Functions

static value_type compute_index (const coordinate_type &_c) noexcept
 
static coordinate_type coordinate (const value_type &code) noexcept
 

Static Private Member Functions

template<int nDim = Dim>
static value_type split_bits (value_type w)
 
template<int nDim = Dim>
static value_type compress_bits (value_type w)
 
static value_type split_bits_impl (value_type w, std::integral_constant< int, 3 > *) noexcept
 
static scalar_coordinate_type compress_bits_impl (value_type w, std::integral_constant< int, 3 > *) noexcept
 
static value_type split_bits_impl (value_type x, std::integral_constant< int, 2 > *) noexcept
 
static scalar_coordinate_type compress_bits_impl (value_type w, std::integral_constant< int, 2 > *) noexcept
 

Private Attributes

value_type index_
 

Friends

std::ostream & operator<< (std::ostream &os, const Key &_k)
 

Member Typedef Documentation

◆ coordinate_type

template<int Dim>
using decomposition::Key< Dim >::coordinate_type = vector_type<scalar_coordinate_type>

◆ float_type

template<int Dim>
using decomposition::Key< Dim >::float_type = double

◆ real_coordinate_type

template<int Dim>
using decomposition::Key< Dim >::real_coordinate_type = vector_type<float_type>

◆ scalar_coordinate_type

template<int Dim>
using decomposition::Key< Dim >::scalar_coordinate_type = int

◆ value_type

template<int Dim>
using decomposition::Key< Dim >::value_type = unsigned long long int

◆ vector_type

template<int Dim>
template<typename U >
using decomposition::Key< Dim >::vector_type = math::vector<U,Dim>

Constructor & Destructor Documentation

◆ Key() [1/6]

template<int Dim>
decomposition::Key< Dim >::Key ( )
inlinenoexcept

◆ Key() [2/6]

template<int Dim>
decomposition::Key< Dim >::Key ( value_type  idx)
inlinenoexcept

◆ Key() [3/6]

template<int Dim>
decomposition::Key< Dim >::Key ( int  x,
int  y,
int  z 
)
inlinenoexcept

◆ Key() [4/6]

template<int Dim>
decomposition::Key< Dim >::Key ( coordinate_type  x)
inlinenoexcept

◆ Key() [5/6]

template<int Dim>
decomposition::Key< Dim >::Key ( const Key< Dim > &  )
default

◆ Key() [6/6]

template<int Dim>
decomposition::Key< Dim >::Key ( Key< Dim > &&  )
default

Member Function Documentation

◆ child()

template<int Dim>
Key decomposition::Key< Dim >::child ( int  i) const
inlinenoexcept

◆ compress_bits()

template<int Dim>
template<int nDim = Dim>
static value_type decomposition::Key< Dim >::compress_bits ( value_type  w)
inlinestaticprivate

◆ compress_bits_impl() [1/2]

template<int Dim>
static scalar_coordinate_type decomposition::Key< Dim >::compress_bits_impl ( value_type  w,
std::integral_constant< int, 2 > *   
)
inlinestaticprivatenoexcept

◆ compress_bits_impl() [2/2]

template<int Dim>
static scalar_coordinate_type decomposition::Key< Dim >::compress_bits_impl ( value_type  w,
std::integral_constant< int, 3 > *   
)
inlinestaticprivatenoexcept

◆ compute_index()

template<int Dim>
static value_type decomposition::Key< Dim >::compute_index ( const coordinate_type _c)
inlinestaticnoexcept

◆ coordinate() [1/2]

template<int Dim>
coordinate_type decomposition::Key< Dim >::coordinate ( ) const
inlinenoexcept

◆ coordinate() [2/2]

template<int Dim>
static coordinate_type decomposition::Key< Dim >::coordinate ( const value_type code)
inlinestaticnoexcept

◆ getIndex() [1/2]

template<int Dim>
const value_type & decomposition::Key< Dim >::getIndex ( ) const
inlinenoexcept

◆ getIndex() [2/2]

template<int Dim>
value_type & decomposition::Key< Dim >::getIndex ( )
inlinenoexcept

◆ index() [1/2]

template<int Dim>
const value_type & decomposition::Key< Dim >::index ( ) const
inlinenoexcept

◆ index() [2/2]

template<int Dim>
value_type & decomposition::Key< Dim >::index ( )
inlinenoexcept

◆ neighbor()

template<int Dim>
Key decomposition::Key< Dim >::neighbor ( const coordinate_type _offset) const
inlinenoexcept

◆ operator++()

template<int Dim>
Key & decomposition::Key< Dim >::operator++ ( )
inlinenoexcept

◆ operator+=()

template<int Dim>
Key & decomposition::Key< Dim >::operator+= ( int  )
inlinenoexcept

◆ operator--()

template<int Dim>
Key & decomposition::Key< Dim >::operator-- ( )
inlinenoexcept

◆ operator-=()

template<int Dim>
Key & decomposition::Key< Dim >::operator-= ( int  )
inlinenoexcept

◆ operator=() [1/2]

template<int Dim>
Key & decomposition::Key< Dim >::operator= ( const Key< Dim > &  ) &
default

◆ operator=() [2/2]

template<int Dim>
Key & decomposition::Key< Dim >::operator= ( Key< Dim > &&  ) &
default

◆ split_bits()

template<int Dim>
template<int nDim = Dim>
static value_type decomposition::Key< Dim >::split_bits ( value_type  w)
inlinestaticprivate

◆ split_bits_impl() [1/2]

template<int Dim>
static value_type decomposition::Key< Dim >::split_bits_impl ( value_type  w,
std::integral_constant< int, 3 > *   
)
inlinestaticprivatenoexcept

◆ split_bits_impl() [2/2]

template<int Dim>
static value_type decomposition::Key< Dim >::split_bits_impl ( value_type  x,
std::integral_constant< int, 2 > *   
)
inlinestaticprivatenoexcept

Friends And Related Symbol Documentation

◆ operator<<

template<int Dim>
std::ostream & operator<< ( std::ostream &  os,
const Key< Dim > &  _k 
)
friend

Member Data Documentation

◆ index_

template<int Dim>
value_type decomposition::Key< Dim >::index_
private

The documentation for this struct was generated from the following file: