reverse_slice_sequence_impl< sequence< x, xs… >, sequence< m, ms… >, sequence< id, ids… >, SliceSize > Struct Template Reference

reverse_slice_sequence_impl&lt; sequence&lt; x, xs… &gt;, sequence&lt; m, ms… &gt;, sequence&lt; id, ids… &gt;, SliceSize &gt; Struct Template Reference#

Composable Kernel: ck_tile::impl::reverse_slice_sequence_impl< sequence< x, xs... >, sequence< m, ms... >, sequence< id, ids... >, SliceSize > Struct Template Reference
ck_tile::impl::reverse_slice_sequence_impl< sequence< x, xs... >, sequence< m, ms... >, sequence< id, ids... >, SliceSize > Struct Template Reference

#include <sequence.hpp>

Public Types

using old_scan
using dim_lengths
using dim_slices
using remaining_slice_sizes

Static Public Attributes

static constexpr auto slice_size = old_scan::remaining_slice_sizes::front().value
static constexpr auto slice_length
static constexpr index_t _flag
static constexpr index_t _split_flag = std::conditional_t<m, number<_flag>, number<0>>::value
static constexpr index_t _split_idx
static constexpr index_t split_flag = _split_flag || old_scan::split_flag
static constexpr index_t split_idx

Member Typedef Documentation

◆ dim_lengths

template<index_t x, index_t... xs, index_t m, index_t... ms, index_t id, index_t... ids, index_t SliceSize>
using ck_tile::impl::reverse_slice_sequence_impl< sequence< x, xs... >, sequence< m, ms... >, sequence< id, ids... >, SliceSize >::dim_lengths
Initial value:
typename sequence_merge<sequence<slice_length>, typename old_scan::dim_lengths>::type
Definition tile/core/container/sequence.hpp:236

◆ dim_slices

template<index_t x, index_t... xs, index_t m, index_t... ms, index_t id, index_t... ids, index_t SliceSize>
using ck_tile::impl::reverse_slice_sequence_impl< sequence< x, xs... >, sequence< m, ms... >, sequence< id, ids... >, SliceSize >::dim_slices
Initial value:
typename sequence_merge<sequence<x / slice_length>, typename old_scan::dim_slices>::type
Definition tile/core/container/sequence.hpp:49

◆ old_scan

template<index_t x, index_t... xs, index_t m, index_t... ms, index_t id, index_t... ids, index_t SliceSize>
using ck_tile::impl::reverse_slice_sequence_impl< sequence< x, xs... >, sequence< m, ms... >, sequence< id, ids... >, SliceSize >::old_scan
Initial value:
reverse_slice_sequence_impl<sequence<xs...>, sequence<ms...>, sequence<ids...>, SliceSize>
Definition tile/core/container/sequence.hpp:1125

◆ remaining_slice_sizes

template<index_t x, index_t... xs, index_t m, index_t... ms, index_t id, index_t... ids, index_t SliceSize>
using ck_tile::impl::reverse_slice_sequence_impl< sequence< x, xs... >, sequence< m, ms... >, sequence< id, ids... >, SliceSize >::remaining_slice_sizes
Initial value:
typename sequence_merge<
typename old_scan::remaining_slice_sizes>::type

Member Data Documentation

◆ _flag

template<index_t x, index_t... xs, index_t m, index_t... ms, index_t id, index_t... ids, index_t SliceSize>
index_t ck_tile::impl::reverse_slice_sequence_impl< sequence< x, xs... >, sequence< m, ms... >, sequence< id, ids... >, SliceSize >::_flag
staticconstexpr
Initial value:
=
slice_length != x && remaining_slice_sizes{}.front().value == 1
typename sequence_merge< std::conditional_t< m, sequence< slice_size/slice_length >, sequence< slice_size > >, typename old_scan::remaining_slice_sizes >::type remaining_slice_sizes
Definition tile/core/container/sequence.hpp:1150

◆ _split_flag

template<index_t x, index_t... xs, index_t m, index_t... ms, index_t id, index_t... ids, index_t SliceSize>
index_t ck_tile::impl::reverse_slice_sequence_impl< sequence< x, xs... >, sequence< m, ms... >, sequence< id, ids... >, SliceSize >::_split_flag = std::conditional_t<m, number<_flag>, number<0>>::value
staticconstexpr

◆ _split_idx

template<index_t x, index_t... xs, index_t m, index_t... ms, index_t id, index_t... ids, index_t SliceSize>
index_t ck_tile::impl::reverse_slice_sequence_impl< sequence< x, xs... >, sequence< m, ms... >, sequence< id, ids... >, SliceSize >::_split_idx
staticconstexpr
Initial value:
=
std::conditional_t<_split_flag, number<id>, number<0>>::value
constant< v > number
Definition tile/core/numeric/integral_constant.hpp:37
const GenericPointer< typename T::ValueType > T2 value
Definition pointer.h:1697

◆ slice_length

template<index_t x, index_t... xs, index_t m, index_t... ms, index_t id, index_t... ids, index_t SliceSize>
auto ck_tile::impl::reverse_slice_sequence_impl< sequence< x, xs... >, sequence< m, ms... >, sequence< id, ids... >, SliceSize >::slice_length
staticconstexpr
Initial value:
=
std::conditional_t<m, number<gcd(x, slice_size)>, number<x>>::value
CK_TILE_HOST_DEVICE constexpr index_t gcd(index_t x, index_t y)
Definition tile/core/numeric/math.hpp:268

◆ slice_size

template<index_t x, index_t... xs, index_t m, index_t... ms, index_t id, index_t... ids, index_t SliceSize>
auto ck_tile::impl::reverse_slice_sequence_impl< sequence< x, xs... >, sequence< m, ms... >, sequence< id, ids... >, SliceSize >::slice_size = old_scan::remaining_slice_sizes::front().value
staticconstexpr

◆ split_flag

template<index_t x, index_t... xs, index_t m, index_t... ms, index_t id, index_t... ids, index_t SliceSize>
index_t ck_tile::impl::reverse_slice_sequence_impl< sequence< x, xs... >, sequence< m, ms... >, sequence< id, ids... >, SliceSize >::split_flag = _split_flag || old_scan::split_flag
staticconstexpr

◆ split_idx

template<index_t x, index_t... xs, index_t m, index_t... ms, index_t id, index_t... ids, index_t SliceSize>
index_t ck_tile::impl::reverse_slice_sequence_impl< sequence< x, xs... >, sequence< m, ms... >, sequence< id, ids... >, SliceSize >::split_idx
staticconstexpr
Initial value:
= std::
conditional_t<old_scan::split_flag, number<old_scan::split_idx>, number<_split_idx>>::value

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