Merge_v2r2_magic_division< LowLengths > Struct Template Reference#
Public Types |
Public Member Functions |
Static Public Member Functions |
Public Attributes |
Static Public Attributes |
List of all members
ck::Merge_v2r2_magic_division< LowLengths > Struct Template Reference
#include <multi_index_transform.hpp>
Public Types | |
| using | LowerIndex = MultiIndex<NDimLow> |
| using | UpperIndex = MultiIndex<1> |
| using | LowLengthsScan |
| using | UpLengths |
| using | LowLengthsScanMagicDivisorMultipiler |
| using | LowLengthsScanMagicDivisorShift |
Public Member Functions | |
| __host__ __device__ constexpr | Merge_v2r2_magic_division ()=default |
| __host__ __device__ constexpr | Merge_v2r2_magic_division (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_new, 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 | IsLinearTransform () |
| __host__ static __device__ constexpr bool | IsValidUpperIndexAlwaysMappedToValidLowerIndex () |
| __host__ static __device__ constexpr bool | IsKnownAtCompileTime () |
| template<typename UpIdx> | |
| __host__ static __device__ constexpr bool | IsValidUpperIndexMappedToValidLowerIndex (const UpIdx &) |
Static Public Attributes | |
| static constexpr index_t | NDimLow = LowLengths::Size() |
Member Typedef Documentation
◆ LowerIndex
template<typename LowLengths>
| using ck::Merge_v2r2_magic_division< LowLengths >::LowerIndex = MultiIndex<NDimLow> |
◆ LowLengthsScan
template<typename LowLengths>
| using ck::Merge_v2r2_magic_division< LowLengths >::LowLengthsScan |
Initial value:
__host__ __device__ constexpr auto container_reverse_exclusive_scan(const Array< TData, NSize > &x, Reduce f, TData init)
Definition utility/container_helper.hpp:213
Definition utility/math.hpp:34
◆ LowLengthsScanMagicDivisorMultipiler
template<typename LowLengths>
| using ck::Merge_v2r2_magic_division< LowLengths >::LowLengthsScanMagicDivisorMultipiler |
Initial value:
decltype(generate_tuple(
Number<NDimLow>{}))
__host__ __device__ constexpr auto generate_tuple(F &&f, Number< N >)
Definition tuple_helper.hpp:21
Definition multi_index_transform.hpp:1004
◆ LowLengthsScanMagicDivisorShift
template<typename LowLengths>
| using ck::Merge_v2r2_magic_division< LowLengths >::LowLengthsScanMagicDivisorShift |
Initial value:
◆ UpLengths
template<typename LowLengths>
| using ck::Merge_v2r2_magic_division< LowLengths >::UpLengths |
Initial value:
__host__ __device__ constexpr auto container_reduce(const Container &x, Reduce reduce, Init init, Number< IBegin >=Number< 0 >{}, Number< IEnd >=Number< Container::Size()>{}, Number< IStep >=Number< 1 >{})
Definition utility/container_helper.hpp:111
__host__ __device__ constexpr auto make_tuple(Xs &&... xs)
Definition utility/tuple.hpp:211
◆ UpperIndex
template<typename LowLengths>
| using ck::Merge_v2r2_magic_division< LowLengths >::UpperIndex = MultiIndex<1> |
Constructor & Destructor Documentation
◆ Merge_v2r2_magic_division() [1/2]
template<typename LowLengths>
|
constexprdefault |
◆ Merge_v2r2_magic_division() [2/2]
template<typename LowLengths>
|
inlineconstexpr |
Member Function Documentation
◆ CalculateLowerIndex()
template<typename LowLengths>
template<typename LowIdx, typename UpIdx>
|
inlineconstexpr |
◆ GetNumOfLowerDimension()
template<typename LowLengths>
|
inlinestaticconstexpr |
◆ GetNumOfUpperDimension()
template<typename LowLengths>
|
inlinestaticconstexpr |
◆ GetUpperLengths()
template<typename LowLengths>
|
inlineconstexpr |
◆ IsKnownAtCompileTime()
template<typename LowLengths>
|
inlinestaticconstexpr |
◆ IsLinearTransform()
template<typename LowLengths>
|
inlinestaticconstexpr |
◆ IsValidUpperIndexAlwaysMappedToValidLowerIndex()
template<typename LowLengths>
|
inlinestaticconstexpr |
◆ IsValidUpperIndexMappedToValidLowerIndex()
template<typename LowLengths>
template<typename UpIdx>
|
inlinestaticconstexpr |
◆ Print()
template<typename LowLengths>
|
inline |
◆ UpdateLowerIndex()
template<typename LowLengths>
template<typename LowIdxDiff, typename UpIdxDiff, typename LowIdx, typename UpIdx, index_t Hack>
|
inline |
Member Data Documentation
◆ low_lengths_
template<typename LowLengths>
| LowLengths ck::Merge_v2r2_magic_division< LowLengths >::low_lengths_ |
◆ low_lengths_scan_
template<typename LowLengths>
| LowLengthsScan ck::Merge_v2r2_magic_division< LowLengths >::low_lengths_scan_ |
◆ low_lengths_scan_magic_divisor_multiplier_
template<typename LowLengths>
| LowLengthsScanMagicDivisorMultipiler ck::Merge_v2r2_magic_division< LowLengths >::low_lengths_scan_magic_divisor_multiplier_ |
◆ low_lengths_scan_magic_divisor_shift_
template<typename LowLengths>
| LowLengthsScanMagicDivisorShift ck::Merge_v2r2_magic_division< LowLengths >::low_lengths_scan_magic_divisor_shift_ |
◆ NDimLow
template<typename LowLengths>
|
staticconstexpr |
◆ up_lengths_
template<typename LowLengths>
| UpLengths ck::Merge_v2r2_magic_division< LowLengths >::up_lengths_ |
The documentation for this struct was generated from the following file: