StaticBufferTupleOfVector< AddressSpace, S, NumOfVector, ScalarPerVector, InvalidElementUseNumericalZeroValue, type > Struct Template Reference

StaticBufferTupleOfVector&lt; AddressSpace, S, NumOfVector, ScalarPerVector, InvalidElementUseNumericalZeroValue, type &gt; Struct Template Reference#

Composable Kernel: ck::StaticBufferTupleOfVector< AddressSpace, S, NumOfVector, ScalarPerVector, InvalidElementUseNumericalZeroValue, type > Struct Template Reference
ck::StaticBufferTupleOfVector< AddressSpace, S, NumOfVector, ScalarPerVector, InvalidElementUseNumericalZeroValue, type > Struct Template Reference

#include <static_buffer.hpp>

Inheritance diagram for ck::StaticBufferTupleOfVector< AddressSpace, S, NumOfVector, ScalarPerVector, InvalidElementUseNumericalZeroValue, type >:

Public Types

using V = typename vector_type<S, ScalarPerVector>::type
using base = StaticallyIndexedArray<vector_type<S, ScalarPerVector>, NumOfVector>

Public Member Functions

__host__ __device__ constexpr StaticBufferTupleOfVector ()
template<index_t I>
__host__ __device__ constexpr const S & operator[] (Number< I > i) const
template<index_t I>
__host__ __device__ constexpr S & operator() (Number< I > i)
template<typename X, index_t I, typename enable_if< has_same_scalar_type< S, X >::value||!is_native_type< S >(), bool >::type = false>
__host__ __device__ constexpr auto GetAsType (Number< I > i) const
template<typename X, index_t I, typename enable_if< has_same_scalar_type< S, X >::value||!is_native_type< S >(), bool >::type = false>
__host__ __device__ constexpr void SetAsType (Number< I > i, X x)
template<index_t I>
__host__ __device__ constexpr const auto & GetVectorTypeReference (Number< I > i) const
template<index_t I>
__host__ __device__ constexpr auto & GetVectorTypeReference (Number< I > i)
__host__ __device__ void Clear ()

Static Public Member Functions

__host__ static __device__ constexpr AddressSpaceEnum GetAddressSpace ()
__host__ static __device__ constexpr bool IsStaticBuffer ()
__host__ static __device__ constexpr bool IsDynamicBuffer ()
__host__ static __device__ constexpr index_t Size ()

Static Public Attributes

static constexpr auto s_per_v = Number<ScalarPerVector>{}
static constexpr auto num_of_v_ = Number<NumOfVector>{}
static constexpr auto s_per_buf = s_per_v * num_of_v_

Member Typedef Documentation

◆ base

template<AddressSpaceEnum AddressSpace, typename S, index_t NumOfVector, index_t ScalarPerVector, bool InvalidElementUseNumericalZeroValue, typename enable_if< is_scalar_type< S >::value, bool >::type = false>
using ck::StaticBufferTupleOfVector< AddressSpace, S, NumOfVector, ScalarPerVector, InvalidElementUseNumericalZeroValue, type >::base = StaticallyIndexedArray<vector_type<S, ScalarPerVector>, NumOfVector>

◆ V

template<AddressSpaceEnum AddressSpace, typename S, index_t NumOfVector, index_t ScalarPerVector, bool InvalidElementUseNumericalZeroValue, typename enable_if< is_scalar_type< S >::value, bool >::type = false>
using ck::StaticBufferTupleOfVector< AddressSpace, S, NumOfVector, ScalarPerVector, InvalidElementUseNumericalZeroValue, type >::V = typename vector_type<S, ScalarPerVector>::type

Constructor & Destructor Documentation

◆ StaticBufferTupleOfVector()

template<AddressSpaceEnum AddressSpace, typename S, index_t NumOfVector, index_t ScalarPerVector, bool InvalidElementUseNumericalZeroValue, typename enable_if< is_scalar_type< S >::value, bool >::type = false>
__host__ __device__ constexpr ck::StaticBufferTupleOfVector< AddressSpace, S, NumOfVector, ScalarPerVector, InvalidElementUseNumericalZeroValue, type >::StaticBufferTupleOfVector ( )
inlineconstexpr

Member Function Documentation

◆ Clear()

template<AddressSpaceEnum AddressSpace, typename S, index_t NumOfVector, index_t ScalarPerVector, bool InvalidElementUseNumericalZeroValue, typename enable_if< is_scalar_type< S >::value, bool >::type = false>
__host__ __device__ void ck::StaticBufferTupleOfVector< AddressSpace, S, NumOfVector, ScalarPerVector, InvalidElementUseNumericalZeroValue, type >::Clear ( )
inline

◆ GetAddressSpace()

template<AddressSpaceEnum AddressSpace, typename S, index_t NumOfVector, index_t ScalarPerVector, bool InvalidElementUseNumericalZeroValue, typename enable_if< is_scalar_type< S >::value, bool >::type = false>
__host__ static __device__ constexpr AddressSpaceEnum ck::StaticBufferTupleOfVector< AddressSpace, S, NumOfVector, ScalarPerVector, InvalidElementUseNumericalZeroValue, type >::GetAddressSpace ( )
inlinestaticconstexpr

◆ GetAsType()

template<AddressSpaceEnum AddressSpace, typename S, index_t NumOfVector, index_t ScalarPerVector, bool InvalidElementUseNumericalZeroValue, typename enable_if< is_scalar_type< S >::value, bool >::type = false>
template<typename X, index_t I, typename enable_if< has_same_scalar_type< S, X >::value||!is_native_type< S >(), bool >::type = false>
__host__ __device__ constexpr auto ck::StaticBufferTupleOfVector< AddressSpace, S, NumOfVector, ScalarPerVector, InvalidElementUseNumericalZeroValue, type >::GetAsType ( Number< I > i) const
inlineconstexpr

◆ GetVectorTypeReference() [1/2]

template<AddressSpaceEnum AddressSpace, typename S, index_t NumOfVector, index_t ScalarPerVector, bool InvalidElementUseNumericalZeroValue, typename enable_if< is_scalar_type< S >::value, bool >::type = false>
template<index_t I>
__host__ __device__ constexpr auto & ck::StaticBufferTupleOfVector< AddressSpace, S, NumOfVector, ScalarPerVector, InvalidElementUseNumericalZeroValue, type >::GetVectorTypeReference ( Number< I > i)
inlineconstexpr

◆ GetVectorTypeReference() [2/2]

template<AddressSpaceEnum AddressSpace, typename S, index_t NumOfVector, index_t ScalarPerVector, bool InvalidElementUseNumericalZeroValue, typename enable_if< is_scalar_type< S >::value, bool >::type = false>
template<index_t I>
__host__ __device__ constexpr const auto & ck::StaticBufferTupleOfVector< AddressSpace, S, NumOfVector, ScalarPerVector, InvalidElementUseNumericalZeroValue, type >::GetVectorTypeReference ( Number< I > i) const
inlineconstexpr

◆ IsDynamicBuffer()

template<AddressSpaceEnum AddressSpace, typename S, index_t NumOfVector, index_t ScalarPerVector, bool InvalidElementUseNumericalZeroValue, typename enable_if< is_scalar_type< S >::value, bool >::type = false>
__host__ static __device__ constexpr bool ck::StaticBufferTupleOfVector< AddressSpace, S, NumOfVector, ScalarPerVector, InvalidElementUseNumericalZeroValue, type >::IsDynamicBuffer ( )
inlinestaticconstexpr

◆ IsStaticBuffer()

template<AddressSpaceEnum AddressSpace, typename S, index_t NumOfVector, index_t ScalarPerVector, bool InvalidElementUseNumericalZeroValue, typename enable_if< is_scalar_type< S >::value, bool >::type = false>
__host__ static __device__ constexpr bool ck::StaticBufferTupleOfVector< AddressSpace, S, NumOfVector, ScalarPerVector, InvalidElementUseNumericalZeroValue, type >::IsStaticBuffer ( )
inlinestaticconstexpr

◆ operator()()

template<AddressSpaceEnum AddressSpace, typename S, index_t NumOfVector, index_t ScalarPerVector, bool InvalidElementUseNumericalZeroValue, typename enable_if< is_scalar_type< S >::value, bool >::type = false>
template<index_t I>
__host__ __device__ constexpr S & ck::StaticBufferTupleOfVector< AddressSpace, S, NumOfVector, ScalarPerVector, InvalidElementUseNumericalZeroValue, type >::operator() ( Number< I > i)
inlineconstexpr

◆ operator[]()

template<AddressSpaceEnum AddressSpace, typename S, index_t NumOfVector, index_t ScalarPerVector, bool InvalidElementUseNumericalZeroValue, typename enable_if< is_scalar_type< S >::value, bool >::type = false>
template<index_t I>
__host__ __device__ constexpr const S & ck::StaticBufferTupleOfVector< AddressSpace, S, NumOfVector, ScalarPerVector, InvalidElementUseNumericalZeroValue, type >::operator[] ( Number< I > i) const
inlineconstexpr

◆ SetAsType()

template<AddressSpaceEnum AddressSpace, typename S, index_t NumOfVector, index_t ScalarPerVector, bool InvalidElementUseNumericalZeroValue, typename enable_if< is_scalar_type< S >::value, bool >::type = false>
template<typename X, index_t I, typename enable_if< has_same_scalar_type< S, X >::value||!is_native_type< S >(), bool >::type = false>
__host__ __device__ constexpr void ck::StaticBufferTupleOfVector< AddressSpace, S, NumOfVector, ScalarPerVector, InvalidElementUseNumericalZeroValue, type >::SetAsType ( Number< I > i,
X x )
inlineconstexpr

◆ Size()

template<AddressSpaceEnum AddressSpace, typename S, index_t NumOfVector, index_t ScalarPerVector, bool InvalidElementUseNumericalZeroValue, typename enable_if< is_scalar_type< S >::value, bool >::type = false>
__host__ static __device__ constexpr index_t ck::StaticBufferTupleOfVector< AddressSpace, S, NumOfVector, ScalarPerVector, InvalidElementUseNumericalZeroValue, type >::Size ( )
inlinestaticconstexpr

Member Data Documentation

◆ num_of_v_

template<AddressSpaceEnum AddressSpace, typename S, index_t NumOfVector, index_t ScalarPerVector, bool InvalidElementUseNumericalZeroValue, typename enable_if< is_scalar_type< S >::value, bool >::type = false>
auto ck::StaticBufferTupleOfVector< AddressSpace, S, NumOfVector, ScalarPerVector, InvalidElementUseNumericalZeroValue, type >::num_of_v_ = Number<NumOfVector>{}
staticconstexpr

◆ s_per_buf

template<AddressSpaceEnum AddressSpace, typename S, index_t NumOfVector, index_t ScalarPerVector, bool InvalidElementUseNumericalZeroValue, typename enable_if< is_scalar_type< S >::value, bool >::type = false>
auto ck::StaticBufferTupleOfVector< AddressSpace, S, NumOfVector, ScalarPerVector, InvalidElementUseNumericalZeroValue, type >::s_per_buf = s_per_v * num_of_v_
staticconstexpr

◆ s_per_v

template<AddressSpaceEnum AddressSpace, typename S, index_t NumOfVector, index_t ScalarPerVector, bool InvalidElementUseNumericalZeroValue, typename enable_if< is_scalar_type< S >::value, bool >::type = false>
auto ck::StaticBufferTupleOfVector< AddressSpace, S, NumOfVector, ScalarPerVector, InvalidElementUseNumericalZeroValue, type >::s_per_v = Number<ScalarPerVector>{}
staticconstexpr

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