SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved > Struct Template Reference

SpaceFillingCurve&lt; TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved &gt; Struct Template Reference#

Composable Kernel: ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved > Struct Template Reference
ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved > Struct Template Reference

#include <tensor_space_filling_curve.hpp>

Public Types

using Index = MultiIndex<nDim>

Static Public Member Functions

__host__ static __device__ constexpr index_t GetNumOfAccess ()
template<index_t AccessIdx1dBegin, index_t AccessIdx1dEnd>
static __device__ __host__ constexpr auto GetStepBetween (Number< AccessIdx1dBegin >, Number< AccessIdx1dEnd >)
template<index_t AccessIdx1d>
static __device__ __host__ constexpr auto GetForwardStep (Number< AccessIdx1d >)
template<index_t AccessIdx1d>
static __device__ __host__ constexpr auto GetBackwardStep (Number< AccessIdx1d >)
template<index_t AccessIdx1d>
static __device__ __host__ constexpr Index GetIndex (Number< AccessIdx1d >)
template<index_t AccessIdx1d>
static __device__ __host__ constexpr auto GetIndexTupleOfNumber (Number< AccessIdx1d >)

Static Public Attributes

static constexpr index_t nDim = TensorLengths::Size()
static constexpr index_t ScalarPerVector
static constexpr auto access_lengths = TensorLengths{} / ScalarsPerAccess{}
static constexpr auto dim_access_order = DimAccessOrder{}
static constexpr auto ordered_access_lengths
static constexpr auto to_index_adaptor
static constexpr auto I0 = Number<0>{}
static constexpr auto I1 = Number<1>{}

Member Typedef Documentation

◆ Index

template<typename TensorLengths, typename DimAccessOrder, typename ScalarsPerAccess, bool SnakeCurved = true>
using ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::Index = MultiIndex<nDim>

Member Function Documentation

◆ GetBackwardStep()

template<typename TensorLengths, typename DimAccessOrder, typename ScalarsPerAccess, bool SnakeCurved = true>
template<index_t AccessIdx1d>
__device__ __host__ constexpr auto ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::GetBackwardStep ( Number< AccessIdx1d > )
inlinestaticconstexpr

◆ GetForwardStep()

template<typename TensorLengths, typename DimAccessOrder, typename ScalarsPerAccess, bool SnakeCurved = true>
template<index_t AccessIdx1d>
__device__ __host__ constexpr auto ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::GetForwardStep ( Number< AccessIdx1d > )
inlinestaticconstexpr

◆ GetIndex()

template<typename TensorLengths, typename DimAccessOrder, typename ScalarsPerAccess, bool SnakeCurved = true>
template<index_t AccessIdx1d>
__device__ __host__ constexpr Index ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::GetIndex ( Number< AccessIdx1d > )
inlinestaticconstexpr

◆ GetIndexTupleOfNumber()

template<typename TensorLengths, typename DimAccessOrder, typename ScalarsPerAccess, bool SnakeCurved = true>
template<index_t AccessIdx1d>
__device__ __host__ constexpr auto ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::GetIndexTupleOfNumber ( Number< AccessIdx1d > )
inlinestaticconstexpr

◆ GetNumOfAccess()

template<typename TensorLengths, typename DimAccessOrder, typename ScalarsPerAccess, bool SnakeCurved = true>
__host__ static __device__ constexpr index_t ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::GetNumOfAccess ( )
inlinestaticconstexpr

◆ GetStepBetween()

template<typename TensorLengths, typename DimAccessOrder, typename ScalarsPerAccess, bool SnakeCurved = true>
template<index_t AccessIdx1dBegin, index_t AccessIdx1dEnd>
__device__ __host__ constexpr auto ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::GetStepBetween ( Number< AccessIdx1dBegin > ,
Number< AccessIdx1dEnd >  )
inlinestaticconstexpr

Member Data Documentation

◆ access_lengths

template<typename TensorLengths, typename DimAccessOrder, typename ScalarsPerAccess, bool SnakeCurved = true>
auto ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::access_lengths = TensorLengths{} / ScalarsPerAccess{}
staticconstexpr

◆ dim_access_order

template<typename TensorLengths, typename DimAccessOrder, typename ScalarsPerAccess, bool SnakeCurved = true>
auto ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::dim_access_order = DimAccessOrder{}
staticconstexpr

◆ I0

template<typename TensorLengths, typename DimAccessOrder, typename ScalarsPerAccess, bool SnakeCurved = true>
auto ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::I0 = Number<0>{}
staticconstexpr

◆ I1

template<typename TensorLengths, typename DimAccessOrder, typename ScalarsPerAccess, bool SnakeCurved = true>
auto ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::I1 = Number<1>{}
staticconstexpr

◆ nDim

template<typename TensorLengths, typename DimAccessOrder, typename ScalarsPerAccess, bool SnakeCurved = true>
index_t ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::nDim = TensorLengths::Size()
staticconstexpr

◆ ordered_access_lengths

template<typename TensorLengths, typename DimAccessOrder, typename ScalarsPerAccess, bool SnakeCurved = true>
auto ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::ordered_access_lengths
staticconstexpr
Initial value:
=
__host__ __device__ constexpr auto container_reorder_given_new2old(const Array< TData, NSize > &old_array, Sequence< IRs... >)
Definition utility/container_helper.hpp:43
static constexpr auto access_lengths
Definition tensor_space_filling_curve.hpp:28
static constexpr auto dim_access_order
Definition tensor_space_filling_curve.hpp:29

◆ ScalarPerVector

template<typename TensorLengths, typename DimAccessOrder, typename ScalarsPerAccess, bool SnakeCurved = true>
index_t ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::ScalarPerVector
staticconstexpr
Initial value:
=
reduce_on_sequence(ScalarsPerAccess{}, math::multiplies{}, Number<1>{})
integral_constant< index_t, N > Number
Definition number.hpp:12
__host__ __device__ constexpr index_t reduce_on_sequence(Seq, Reduce f, Number< Init >)
Definition utility/sequence.hpp:884
Definition utility/math.hpp:34

◆ to_index_adaptor

template<typename TensorLengths, typename DimAccessOrder, typename ScalarsPerAccess, bool SnakeCurved = true>
auto ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::to_index_adaptor
staticconstexpr
Initial value:
__host__ __device__ constexpr auto make_single_stage_tensor_adaptor(const Transforms &transforms, LowerDimensionOldTopIdss, UpperDimensionNewTopIdss)
Definition tensor_description/tensor_adaptor.hpp:425
__host__ __device__ constexpr auto make_merge_transform(const LowLengths &low_lengths)
Definition multi_index_transform_helper.hpp:55
__host__ __device__ constexpr auto make_tuple(Xs &&... xs)
Definition utility/tuple.hpp:211
Definition utility/sequence.hpp:43
static constexpr auto ordered_access_lengths
Definition tensor_space_filling_curve.hpp:30
typename conditional< kHasContent, type0, type1 >::type type
Definition utility/sequence.hpp:271

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