StaticTensorTupleOfVectorBuffer< AddressSpace, S, ScalarPerVector, TensorDesc, InvalidElementUseNumericalZeroValue, type > Struct Template Reference

StaticTensorTupleOfVectorBuffer&lt; AddressSpace, S, ScalarPerVector, TensorDesc, InvalidElementUseNumericalZeroValue, type &gt; Struct Template Reference#

Composable Kernel: ck::StaticTensorTupleOfVectorBuffer< AddressSpace, S, ScalarPerVector, TensorDesc, InvalidElementUseNumericalZeroValue, type > Struct Template Reference
ck::StaticTensorTupleOfVectorBuffer< AddressSpace, S, ScalarPerVector, TensorDesc, InvalidElementUseNumericalZeroValue, type > Struct Template Reference

#include <static_tensor.hpp>

Public Types

using V = vector_type<S, ScalarPerVector>

Public Member Functions

__host__ __device__ constexpr StaticTensorTupleOfVectorBuffer ()
__host__ __device__ constexpr StaticTensorTupleOfVectorBuffer (S invalid_element_value)
template<typename Idx, typename enable_if< is_known_at_compile_time< Idx >::value &&Idx::Size()==ndim_, bool >::type = false>
__host__ __device__ constexpr const S & operator[] (Idx) const
template<typename Idx, typename enable_if< is_known_at_compile_time< Idx >::value &&Idx::Size()==ndim_, bool >::type = false>
__host__ __device__ constexpr S & operator() (Idx)
template<typename X, typename Idx, typename enable_if<(has_same_scalar_type< S, X >::value||!is_native_type< S >()) &&is_known_at_compile_time< Idx >::value &&Idx::Size()==ndim_, bool >::type = false>
__host__ __device__ constexpr X GetAsType (Idx) const
template<typename X, typename Idx, typename enable_if<(has_same_scalar_type< S, X >::value||!is_native_type< S >()) &&is_known_at_compile_time< Idx >::value &&Idx::Size()==ndim_, bool >::type = false>
__host__ __device__ constexpr void SetAsType (Idx, X x)
template<typename Idx>
__host__ __device__ constexpr const VGetVectorTypeReference (Idx) const
template<typename Idx>
__host__ __device__ constexpr VGetVectorTypeReference (Idx)

Public Attributes

StaticBufferTupleOfVector< AddressSpace, S, num_of_vector_, ScalarPerVector, true > data_
const S invalid_element_scalar_value_ = S{0}
ignored_element_scalar_

Static Public Attributes

static constexpr auto desc_ = TensorDesc{}
static constexpr index_t ndim_ = TensorDesc::GetNumOfDimension()
static constexpr index_t element_space_size_ = desc_.GetElementSpaceSize()
static constexpr index_t num_of_vector_
static constexpr S zero_scalar_value_ = S{0}

Member Typedef Documentation

◆ V

template<AddressSpaceEnum AddressSpace, typename S, index_t ScalarPerVector, typename TensorDesc, bool InvalidElementUseNumericalZeroValue, typename enable_if< TensorDesc::IsKnownAtCompileTime(), bool >::type = false>
using ck::StaticTensorTupleOfVectorBuffer< AddressSpace, S, ScalarPerVector, TensorDesc, InvalidElementUseNumericalZeroValue, type >::V = vector_type<S, ScalarPerVector>

Constructor & Destructor Documentation

◆ StaticTensorTupleOfVectorBuffer() [1/2]

template<AddressSpaceEnum AddressSpace, typename S, index_t ScalarPerVector, typename TensorDesc, bool InvalidElementUseNumericalZeroValue, typename enable_if< TensorDesc::IsKnownAtCompileTime(), bool >::type = false>
__host__ __device__ constexpr ck::StaticTensorTupleOfVectorBuffer< AddressSpace, S, ScalarPerVector, TensorDesc, InvalidElementUseNumericalZeroValue, type >::StaticTensorTupleOfVectorBuffer ( )
inlineconstexpr

◆ StaticTensorTupleOfVectorBuffer() [2/2]

template<AddressSpaceEnum AddressSpace, typename S, index_t ScalarPerVector, typename TensorDesc, bool InvalidElementUseNumericalZeroValue, typename enable_if< TensorDesc::IsKnownAtCompileTime(), bool >::type = false>
__host__ __device__ constexpr ck::StaticTensorTupleOfVectorBuffer< AddressSpace, S, ScalarPerVector, TensorDesc, InvalidElementUseNumericalZeroValue, type >::StaticTensorTupleOfVectorBuffer ( S invalid_element_value)
inlineconstexpr

Member Function Documentation

◆ GetAsType()

template<AddressSpaceEnum AddressSpace, typename S, index_t ScalarPerVector, typename TensorDesc, bool InvalidElementUseNumericalZeroValue, typename enable_if< TensorDesc::IsKnownAtCompileTime(), bool >::type = false>
template<typename X, typename Idx, typename enable_if<(has_same_scalar_type< S, X >::value||!is_native_type< S >()) &&is_known_at_compile_time< Idx >::value &&Idx::Size()==ndim_, bool >::type = false>
__host__ __device__ constexpr X ck::StaticTensorTupleOfVectorBuffer< AddressSpace, S, ScalarPerVector, TensorDesc, InvalidElementUseNumericalZeroValue, type >::GetAsType ( Idx ) const
inlineconstexpr

◆ GetVectorTypeReference() [1/2]

template<AddressSpaceEnum AddressSpace, typename S, index_t ScalarPerVector, typename TensorDesc, bool InvalidElementUseNumericalZeroValue, typename enable_if< TensorDesc::IsKnownAtCompileTime(), bool >::type = false>
template<typename Idx>
__host__ __device__ constexpr V & ck::StaticTensorTupleOfVectorBuffer< AddressSpace, S, ScalarPerVector, TensorDesc, InvalidElementUseNumericalZeroValue, type >::GetVectorTypeReference ( Idx )
inlineconstexpr

◆ GetVectorTypeReference() [2/2]

template<AddressSpaceEnum AddressSpace, typename S, index_t ScalarPerVector, typename TensorDesc, bool InvalidElementUseNumericalZeroValue, typename enable_if< TensorDesc::IsKnownAtCompileTime(), bool >::type = false>
template<typename Idx>
__host__ __device__ constexpr const V & ck::StaticTensorTupleOfVectorBuffer< AddressSpace, S, ScalarPerVector, TensorDesc, InvalidElementUseNumericalZeroValue, type >::GetVectorTypeReference ( Idx ) const
inlineconstexpr

◆ operator()()

template<AddressSpaceEnum AddressSpace, typename S, index_t ScalarPerVector, typename TensorDesc, bool InvalidElementUseNumericalZeroValue, typename enable_if< TensorDesc::IsKnownAtCompileTime(), bool >::type = false>
template<typename Idx, typename enable_if< is_known_at_compile_time< Idx >::value &&Idx::Size()==ndim_, bool >::type = false>
__host__ __device__ constexpr S & ck::StaticTensorTupleOfVectorBuffer< AddressSpace, S, ScalarPerVector, TensorDesc, InvalidElementUseNumericalZeroValue, type >::operator() ( Idx )
inlineconstexpr

◆ operator[]()

template<AddressSpaceEnum AddressSpace, typename S, index_t ScalarPerVector, typename TensorDesc, bool InvalidElementUseNumericalZeroValue, typename enable_if< TensorDesc::IsKnownAtCompileTime(), bool >::type = false>
template<typename Idx, typename enable_if< is_known_at_compile_time< Idx >::value &&Idx::Size()==ndim_, bool >::type = false>
__host__ __device__ constexpr const S & ck::StaticTensorTupleOfVectorBuffer< AddressSpace, S, ScalarPerVector, TensorDesc, InvalidElementUseNumericalZeroValue, type >::operator[] ( Idx ) const
inlineconstexpr

◆ SetAsType()

template<AddressSpaceEnum AddressSpace, typename S, index_t ScalarPerVector, typename TensorDesc, bool InvalidElementUseNumericalZeroValue, typename enable_if< TensorDesc::IsKnownAtCompileTime(), bool >::type = false>
template<typename X, typename Idx, typename enable_if<(has_same_scalar_type< S, X >::value||!is_native_type< S >()) &&is_known_at_compile_time< Idx >::value &&Idx::Size()==ndim_, bool >::type = false>
__host__ __device__ constexpr void ck::StaticTensorTupleOfVectorBuffer< AddressSpace, S, ScalarPerVector, TensorDesc, InvalidElementUseNumericalZeroValue, type >::SetAsType ( Idx ,
X x )
inlineconstexpr

Member Data Documentation

◆ data_

template<AddressSpaceEnum AddressSpace, typename S, index_t ScalarPerVector, typename TensorDesc, bool InvalidElementUseNumericalZeroValue, typename enable_if< TensorDesc::IsKnownAtCompileTime(), bool >::type = false>
StaticBufferTupleOfVector<AddressSpace, S, num_of_vector_, ScalarPerVector, true> ck::StaticTensorTupleOfVectorBuffer< AddressSpace, S, ScalarPerVector, TensorDesc, InvalidElementUseNumericalZeroValue, type >::data_

◆ desc_

template<AddressSpaceEnum AddressSpace, typename S, index_t ScalarPerVector, typename TensorDesc, bool InvalidElementUseNumericalZeroValue, typename enable_if< TensorDesc::IsKnownAtCompileTime(), bool >::type = false>
auto ck::StaticTensorTupleOfVectorBuffer< AddressSpace, S, ScalarPerVector, TensorDesc, InvalidElementUseNumericalZeroValue, type >::desc_ = TensorDesc{}
staticconstexpr

◆ element_space_size_

template<AddressSpaceEnum AddressSpace, typename S, index_t ScalarPerVector, typename TensorDesc, bool InvalidElementUseNumericalZeroValue, typename enable_if< TensorDesc::IsKnownAtCompileTime(), bool >::type = false>
index_t ck::StaticTensorTupleOfVectorBuffer< AddressSpace, S, ScalarPerVector, TensorDesc, InvalidElementUseNumericalZeroValue, type >::element_space_size_ = desc_.GetElementSpaceSize()
staticconstexpr

◆ ignored_element_scalar_

template<AddressSpaceEnum AddressSpace, typename S, index_t ScalarPerVector, typename TensorDesc, bool InvalidElementUseNumericalZeroValue, typename enable_if< TensorDesc::IsKnownAtCompileTime(), bool >::type = false>
S ck::StaticTensorTupleOfVectorBuffer< AddressSpace, S, ScalarPerVector, TensorDesc, InvalidElementUseNumericalZeroValue, type >::ignored_element_scalar_

◆ invalid_element_scalar_value_

template<AddressSpaceEnum AddressSpace, typename S, index_t ScalarPerVector, typename TensorDesc, bool InvalidElementUseNumericalZeroValue, typename enable_if< TensorDesc::IsKnownAtCompileTime(), bool >::type = false>
const S ck::StaticTensorTupleOfVectorBuffer< AddressSpace, S, ScalarPerVector, TensorDesc, InvalidElementUseNumericalZeroValue, type >::invalid_element_scalar_value_ = S{0}

◆ ndim_

template<AddressSpaceEnum AddressSpace, typename S, index_t ScalarPerVector, typename TensorDesc, bool InvalidElementUseNumericalZeroValue, typename enable_if< TensorDesc::IsKnownAtCompileTime(), bool >::type = false>
index_t ck::StaticTensorTupleOfVectorBuffer< AddressSpace, S, ScalarPerVector, TensorDesc, InvalidElementUseNumericalZeroValue, type >::ndim_ = TensorDesc::GetNumOfDimension()
staticconstexpr

◆ num_of_vector_

template<AddressSpaceEnum AddressSpace, typename S, index_t ScalarPerVector, typename TensorDesc, bool InvalidElementUseNumericalZeroValue, typename enable_if< TensorDesc::IsKnownAtCompileTime(), bool >::type = false>
index_t ck::StaticTensorTupleOfVectorBuffer< AddressSpace, S, ScalarPerVector, TensorDesc, InvalidElementUseNumericalZeroValue, type >::num_of_vector_
staticconstexpr
Initial value:
=
__host__ __device__ constexpr auto integer_divide_ceil(X x, Y y)
Definition utility/math.hpp:72
static constexpr index_t element_space_size_
Definition static_tensor.hpp:96

◆ zero_scalar_value_

template<AddressSpaceEnum AddressSpace, typename S, index_t ScalarPerVector, typename TensorDesc, bool InvalidElementUseNumericalZeroValue, typename enable_if< TensorDesc::IsKnownAtCompileTime(), bool >::type = false>
S ck::StaticTensorTupleOfVectorBuffer< AddressSpace, S, ScalarPerVector, TensorDesc, InvalidElementUseNumericalZeroValue, type >::zero_scalar_value_ = S{0}
staticconstexpr

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