merge_v2_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_tile::merge_v2_magic_division< LowLengths > Struct Template Reference
#include <coordinate_transform.hpp>
Inheritance diagram for ck_tile::merge_v2_magic_division< LowLengths >:

Public Types | |
using | LowerIndex = multi_index< NDimLow > |
using | UpperIndex = multi_index< 1 > |
using | UpLengths = decltype(make_tuple(container_reduce(LowLengths{}, multiplies{}, number< 1 >{}))) |
using | LowLengthsMagicDivisor = decltype(generate_tuple(lambda_merge_generate_MagicDivision_calculate_magic_divisor< LowLengths >{}, number< NDimLow >{})) |
Public Member Functions | |
constexpr CK_TILE_HOST_DEVICE | merge_v2_magic_division ()=default |
constexpr CK_TILE_HOST_DEVICE | merge_v2_magic_division (const LowLengths &low_lengths) |
constexpr CK_TILE_HOST_DEVICE const auto & | get_upper_lengths () const |
template<typename LowIdx , typename UpIdx > | |
constexpr CK_TILE_HOST_DEVICE void | calculate_lower_index (LowIdx &idx_low, const UpIdx &idx_up) const |
template<typename LowIdxDiff , typename UpIdxDiff , typename LowIdx , typename UpIdx > | |
CK_TILE_HOST_DEVICE void | update_lower_index (LowIdxDiff &idx_diff_low, const UpIdxDiff &, LowIdx &idx_low, const UpIdx &idx_up_new) const |
CK_TILE_HOST_DEVICE void | print () const |
Static Public Member Functions | |
static constexpr CK_TILE_HOST_DEVICE auto | get_type_enum () |
static constexpr CK_TILE_HOST_DEVICE bool | is_valid_upper_index_always_mapped_to_valid_lower_index () |
static constexpr CK_TILE_HOST_DEVICE bool | is_known_at_compile_time () |
template<typename UpIdx > | |
static constexpr CK_TILE_HOST_DEVICE bool | is_valid_upper_index_mapped_to_valid_lower_index (const UpIdx &) |
template<typename LowVectorLengths , typename LowVectorStrides > | |
static constexpr CK_TILE_HOST_DEVICE auto | calculate_upper_dimension_safe_vector_length_strides (const LowVectorLengths &low_vector_lengths, const LowVectorStrides &low_vector_strides) |
![]() | |
static constexpr CK_TILE_HOST_DEVICE auto | get_type_enum () |
static constexpr CK_TILE_HOST_DEVICE index_t | get_num_of_lower_dimension () |
static constexpr CK_TILE_HOST_DEVICE index_t | get_num_of_upper_dimension () |
static constexpr CK_TILE_HOST_DEVICE auto | calculate_upper_dimension_safe_vector_length_strides (const LowVectorLengths &, const LowVectorStrides &) |
Public Attributes | |
LowLengths | low_lengths_ |
LowLengthsMagicDivisor | low_lengths_magic_divisor_ |
UpLengths | up_lengths_ |
Static Public Attributes | |
static constexpr index_t | NDimLow = LowLengths::size() |
static constexpr auto | I0 = number<0>{} |
static constexpr auto | I1 = number<1>{} |
Member Typedef Documentation
◆ LowerIndex
template<typename LowLengths >
using ck_tile::merge_v2_magic_division< LowLengths >::LowerIndex = multi_index<NDimLow> |
◆ LowLengthsMagicDivisor
template<typename LowLengths >
using ck_tile::merge_v2_magic_division< LowLengths >::LowLengthsMagicDivisor = decltype(generate_tuple( lambda_merge_generate_MagicDivision_calculate_magic_divisor<LowLengths>{}, number<NDimLow>{})) |
◆ UpLengths
template<typename LowLengths >
using ck_tile::merge_v2_magic_division< LowLengths >::UpLengths = decltype(make_tuple(container_reduce(LowLengths{}, multiplies{}, number<1>{}))) |
◆ UpperIndex
template<typename LowLengths >
using ck_tile::merge_v2_magic_division< LowLengths >::UpperIndex = multi_index<1> |
Constructor & Destructor Documentation
◆ merge_v2_magic_division() [1/2]
template<typename LowLengths >
|
constexprdefault |
◆ merge_v2_magic_division() [2/2]
template<typename LowLengths >
|
inlineconstexpr |
Member Function Documentation
◆ calculate_lower_index()
template<typename LowLengths >
template<typename LowIdx , typename UpIdx >
|
inlineconstexpr |
◆ calculate_upper_dimension_safe_vector_length_strides()
template<typename LowLengths >
template<typename LowVectorLengths , typename LowVectorStrides >
|
inlinestaticconstexpr |
◆ get_type_enum()
template<typename LowLengths >
|
inlinestaticconstexpr |
◆ get_upper_lengths()
template<typename LowLengths >
|
inlineconstexpr |
◆ is_known_at_compile_time()
template<typename LowLengths >
|
inlinestaticconstexpr |
◆ is_valid_upper_index_always_mapped_to_valid_lower_index()
template<typename LowLengths >
|
inlinestaticconstexpr |
◆ is_valid_upper_index_mapped_to_valid_lower_index()
template<typename LowLengths >
template<typename UpIdx >
|
inlinestaticconstexpr |
◆ print()
template<typename LowLengths >
|
inline |
◆ update_lower_index()
template<typename LowLengths >
template<typename LowIdxDiff , typename UpIdxDiff , typename LowIdx , typename UpIdx >
|
inline |
Member Data Documentation
◆ I0
template<typename LowLengths >
|
staticconstexpr |
◆ I1
template<typename LowLengths >
|
staticconstexpr |
◆ low_lengths_
template<typename LowLengths >
LowLengths ck_tile::merge_v2_magic_division< LowLengths >::low_lengths_ |
◆ low_lengths_magic_divisor_
template<typename LowLengths >
LowLengthsMagicDivisor ck_tile::merge_v2_magic_division< LowLengths >::low_lengths_magic_divisor_ |
◆ NDimLow
template<typename LowLengths >
|
staticconstexpr |
◆ up_lengths_
template<typename LowLengths >
UpLengths ck_tile::merge_v2_magic_division< LowLengths >::up_lengths_ |
The documentation for this struct was generated from the following file:
- /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/docs-6.4.3/include/ck_tile/core/algorithm/coordinate_transform.hpp