Xor< LowLengths, ApplyModulo > Struct Template Reference

Xor&lt; LowLengths, ApplyModulo &gt; Struct Template Reference#

Composable Kernel: ck::Xor< LowLengths, ApplyModulo > Struct Template Reference
ck::Xor< LowLengths, ApplyModulo > Struct Template Reference

#include <multi_index_transform.hpp>

Public Types

using LowerIndex = MultiIndex<2>
using UpperIndex = MultiIndex<2>
using UpLengths = LowLengths

Public Member Functions

__host__ __device__ constexpr Xor ()
__host__ __device__ constexpr Xor (const LowLengths &low_lengths)
__host__ __device__ constexpr const auto & GetUpperLengths () const
template<typename LowIdx, typename UpIdx>
__host__ __device__ constexpr void CalculateLowerIndex (LowIdx &idx_low, const UpIdx &idx_up) const
template<typename LowIdxDiff, typename UpIdxDiff, typename LowIdx, typename UpIdx, index_t Hack>
__host__ __device__ void UpdateLowerIndex (LowIdxDiff &idx_diff_low, const UpIdxDiff &, LowIdx &idx_low, const UpIdx &idx_up, Number< Hack >) const
__host__ __device__ void Print () const

Static Public Member Functions

__host__ static __device__ constexpr index_t GetNumOfLowerDimension ()
__host__ static __device__ constexpr index_t GetNumOfUpperDimension ()
__host__ static __device__ constexpr bool IsValidUpperIndexAlwaysMappedToValidLowerIndex ()
template<typename UpIdx>
__host__ static __device__ constexpr bool IsValidUpperIndexMappedToValidLowerIndex (const UpIdx &)
__host__ static __device__ constexpr bool IsKnownAtCompileTime ()

Public Attributes

UpLengths up_lengths_

Member Typedef Documentation

◆ LowerIndex

template<typename LowLengths, bool ApplyModulo>
using ck::Xor< LowLengths, ApplyModulo >::LowerIndex = MultiIndex<2>

◆ UpLengths

template<typename LowLengths, bool ApplyModulo>
using ck::Xor< LowLengths, ApplyModulo >::UpLengths = LowLengths

◆ UpperIndex

template<typename LowLengths, bool ApplyModulo>
using ck::Xor< LowLengths, ApplyModulo >::UpperIndex = MultiIndex<2>

Constructor & Destructor Documentation

◆ Xor() [1/2]

template<typename LowLengths, bool ApplyModulo>
__host__ __device__ constexpr ck::Xor< LowLengths, ApplyModulo >::Xor ( )
inlineconstexpr

◆ Xor() [2/2]

template<typename LowLengths, bool ApplyModulo>
__host__ __device__ constexpr ck::Xor< LowLengths, ApplyModulo >::Xor ( const LowLengths & low_lengths)
inlineconstexpr

Member Function Documentation

◆ CalculateLowerIndex()

template<typename LowLengths, bool ApplyModulo>
template<typename LowIdx, typename UpIdx>
__host__ __device__ constexpr void ck::Xor< LowLengths, ApplyModulo >::CalculateLowerIndex ( LowIdx & idx_low,
const UpIdx & idx_up ) const
inlineconstexpr

◆ GetNumOfLowerDimension()

template<typename LowLengths, bool ApplyModulo>
__host__ static __device__ constexpr index_t ck::Xor< LowLengths, ApplyModulo >::GetNumOfLowerDimension ( )
inlinestaticconstexpr

◆ GetNumOfUpperDimension()

template<typename LowLengths, bool ApplyModulo>
__host__ static __device__ constexpr index_t ck::Xor< LowLengths, ApplyModulo >::GetNumOfUpperDimension ( )
inlinestaticconstexpr

◆ GetUpperLengths()

template<typename LowLengths, bool ApplyModulo>
__host__ __device__ constexpr const auto & ck::Xor< LowLengths, ApplyModulo >::GetUpperLengths ( ) const
inlineconstexpr

◆ IsKnownAtCompileTime()

template<typename LowLengths, bool ApplyModulo>
__host__ static __device__ constexpr bool ck::Xor< LowLengths, ApplyModulo >::IsKnownAtCompileTime ( )
inlinestaticconstexpr

◆ IsValidUpperIndexAlwaysMappedToValidLowerIndex()

template<typename LowLengths, bool ApplyModulo>
__host__ static __device__ constexpr bool ck::Xor< LowLengths, ApplyModulo >::IsValidUpperIndexAlwaysMappedToValidLowerIndex ( )
inlinestaticconstexpr

◆ IsValidUpperIndexMappedToValidLowerIndex()

template<typename LowLengths, bool ApplyModulo>
template<typename UpIdx>
__host__ static __device__ constexpr bool ck::Xor< LowLengths, ApplyModulo >::IsValidUpperIndexMappedToValidLowerIndex ( const UpIdx & )
inlinestaticconstexpr

◆ Print()

template<typename LowLengths, bool ApplyModulo>
__host__ __device__ void ck::Xor< LowLengths, ApplyModulo >::Print ( ) const
inline

◆ UpdateLowerIndex()

template<typename LowLengths, bool ApplyModulo>
template<typename LowIdxDiff, typename UpIdxDiff, typename LowIdx, typename UpIdx, index_t Hack>
__host__ __device__ void ck::Xor< LowLengths, ApplyModulo >::UpdateLowerIndex ( LowIdxDiff & idx_diff_low,
const UpIdxDiff & ,
LowIdx & idx_low,
const UpIdx & idx_up,
Number< Hack >  ) const
inline

Member Data Documentation

◆ up_lengths_

template<typename LowLengths, bool ApplyModulo>
UpLengths ck::Xor< LowLengths, ApplyModulo >::up_lengths_

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