Merge_v1_carry_check< LowLengths > Struct Template Reference#
Public Types |
Public Member Functions |
Static Public Member Functions |
Public Attributes |
Static Public Attributes |
List of all members  
  ck::Merge_v1_carry_check< LowLengths > Struct Template Reference
  #include <multi_index_transform.hpp>
Public Types | |
| using | LowerIndex = MultiIndex< NDimLow > | 
| using | UpperIndex = MultiIndex< 1 > | 
| using | LowLengthsScan = decltype(container_reverse_exclusive_scan(LowLengths{}, math::multiplies{}, Number< 1 >{})) | 
| using | UpLengths = decltype(make_tuple(container_reduce(LowLengths{}, math::multiplies{}, Number< 1 >{}))) | 
Public Member Functions | |
| __host__ constexpr __device__ | Merge_v1_carry_check ()=default | 
| __host__ constexpr __device__ | Merge_v1_carry_check (const LowLengths &low_lengths) | 
| __host__ constexpr __device__ const auto & | GetUpperLengths () const | 
| template<typename LowIdx , typename UpIdx > | |
| __host__ constexpr __device__ 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_1a (LowIdxDiff &idx_diff_low, const UpIdxDiff &idx_diff_up, LowIdx &idx_low, const UpIdx &, Number< Hack >) const | 
| template<typename LowIdxDiff , typename UpIdxDiff , typename LowIdx , typename UpIdx , index_t Hack> | |
| __host__ __device__ void | UpdateLowerIndex_1b (LowIdxDiff &idx_diff_low, const UpIdxDiff &idx_diff_up, LowIdx &idx_low, const UpIdx &, Number< Hack >) const | 
| template<typename LowIdxDiff , typename UpIdxDiff , typename LowIdx , typename UpIdx , index_t Hack> | |
| __host__ __device__ void | UpdateLowerIndex_2 (LowIdxDiff &idx_diff_low, const UpIdxDiff &idx_diff_up, LowIdx &idx_low, const UpIdx &, Number< Hack >) const | 
| template<typename LowIdxDiff , typename UpIdxDiff , typename LowIdx , typename UpIdx , index_t Hack> | |
| __host__ __device__ void | UpdateLowerIndex (LowIdxDiff &idx_diff_low, const UpIdxDiff &idx_diff_up, LowIdx &idx_low, const UpIdx &idx_up_new, Number< Hack >) const | 
| __host__ __device__ void | Print () const | 
Static Public Member Functions | |
| __host__ static constexpr __device__ index_t | GetNumOfLowerDimension () | 
| __host__ static constexpr __device__ index_t | GetNumOfUpperDimension () | 
| __host__ static constexpr __device__ bool | IsLinearTransform () | 
| __host__ static constexpr __device__ bool | IsValidUpperIndexAlwaysMappedToValidLowerIndex () | 
| __host__ static constexpr __device__ bool | IsKnownAtCompileTime () | 
| template<typename UpIdx > | |
| __host__ static constexpr __device__ bool | IsValidUpperIndexMappedToValidLowerIndex (const UpIdx &) | 
Public Attributes | |
| LowLengths | low_lengths_ | 
| LowLengthsScan | low_lengths_scan_ | 
| UpLengths | up_lengths_ | 
Static Public Attributes | |
| static constexpr index_t | NDimLow = LowLengths::Size() | 
Member Typedef Documentation
◆ LowerIndex
template<typename LowLengths > 
      | using ck::Merge_v1_carry_check< LowLengths >::LowerIndex = MultiIndex<NDimLow> | 
◆ LowLengthsScan
template<typename LowLengths > 
      | using ck::Merge_v1_carry_check< LowLengths >::LowLengthsScan = decltype(container_reverse_exclusive_scan(LowLengths{}, math::multiplies{}, Number<1>{})) | 
◆ UpLengths
template<typename LowLengths > 
      | using ck::Merge_v1_carry_check< LowLengths >::UpLengths = decltype(make_tuple(container_reduce(LowLengths{}, math::multiplies{}, Number<1>{}))) | 
◆ UpperIndex
template<typename LowLengths > 
      | using ck::Merge_v1_carry_check< LowLengths >::UpperIndex = MultiIndex<1> | 
Constructor & Destructor Documentation
◆ Merge_v1_carry_check() [1/2]
template<typename LowLengths > 
      
  | 
  constexprdefault | 
◆ Merge_v1_carry_check() [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 | 
◆ UpdateLowerIndex_1a()
template<typename LowLengths > 
template<typename LowIdxDiff , typename UpIdxDiff , typename LowIdx , typename UpIdx , index_t Hack> 
      
  | 
  inline | 
◆ UpdateLowerIndex_1b()
template<typename LowLengths > 
template<typename LowIdxDiff , typename UpIdxDiff , typename LowIdx , typename UpIdx , index_t Hack> 
      
  | 
  inline | 
◆ UpdateLowerIndex_2()
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_v1_carry_check< LowLengths >::low_lengths_ | 
◆ low_lengths_scan_
template<typename LowLengths > 
      | LowLengthsScan ck::Merge_v1_carry_check< LowLengths >::low_lengths_scan_ | 
◆ NDimLow
template<typename LowLengths > 
      
  | 
  staticconstexpr | 
◆ up_lengths_
template<typename LowLengths > 
      | UpLengths ck::Merge_v1_carry_check< LowLengths >::up_lengths_ | 
The documentation for this struct was generated from the following file:
- include/ck/tensor_description/multi_index_transform.hpp