Low-Level Abstraction of Memory Access
llama::mapping::LinearizeArrayIndexMorton Struct Reference

Functor that maps an ArrayIndex into linear numbers using the Z-order space filling curve (Morton codes). More...

#include <Common.hpp>

Public Member Functions

template<typename ArrayExtents >
constexpr auto size (const ArrayExtents &extents) const -> typename ArrayExtents::value_type
 
template<typename ArrayExtents >
constexpr auto operator() (const typename ArrayExtents::Index &ai, [[maybe_unused]] const ArrayExtents &extents) const -> typename ArrayExtents::value_type
 

Detailed Description

Functor that maps an ArrayIndex into linear numbers using the Z-order space filling curve (Morton codes).

Definition at line 119 of file Common.hpp.

Member Function Documentation

◆ operator()()

template<typename ArrayExtents >
constexpr auto llama::mapping::LinearizeArrayIndexMorton::operator() ( const typename ArrayExtents::Index ai,
[[maybe_unused] ] const ArrayExtents extents 
) const -> typename ArrayExtents::value_type
inlineconstexpr
Parameters
aiCoordinate in the array dimensions.
extentsTotal size of the array dimensions.
Returns
Linearized index.

Definition at line 141 of file Common.hpp.

◆ size()

template<typename ArrayExtents >
constexpr auto llama::mapping::LinearizeArrayIndexMorton::size ( const ArrayExtents extents) const -> typename ArrayExtents::value_type
inlineconstexpr

Definition at line 122 of file Common.hpp.


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