TiledArray::math::PartialReduceUnwind< N > Class Template Reference

Documentation

template<std::size_t N>
class TiledArray::math::PartialReduceUnwind< N >

Partial reduce algorithm automatic loop unwinding.

Template Parameters
NThe number of steps to unwind

Definition at line 102 of file partial_reduce.h.

Public Types

typedef PartialReduceUnwind< N - 1 > PartialReduceUnwindN1
 

Static Public Member Functions

template<typename Left , typename Right , typename Result , typename Op >
static TILEDARRAY_FORCE_INLINE void row_reduce (const Left *MADNESS_RESTRICT const left, const std::size_t stride, const Right *MADNESS_RESTRICT const right, Result *MADNESS_RESTRICT const result, const Op &op)
 
template<typename Arg , typename Result , typename Op >
static TILEDARRAY_FORCE_INLINE void row_reduce (const Arg *MADNESS_RESTRICT const arg, const std::size_t stride, Result *MADNESS_RESTRICT const result, const Op &op)
 
template<typename Left , typename Right , typename Result , typename Op >
static TILEDARRAY_FORCE_INLINE void col_reduce (const Left *MADNESS_RESTRICT const left, const std::size_t stride, const Right *MADNESS_RESTRICT const right, Result *MADNESS_RESTRICT const result, const Op &op)
 
template<typename Arg , typename Result , typename Op >
static TILEDARRAY_FORCE_INLINE void col_reduce (const Arg *MADNESS_RESTRICT const arg, const std::size_t stride, Result *MADNESS_RESTRICT const result, const Op &op)
 

Static Public Attributes

static const std::size_t offset = TILEDARRAY_LOOP_UNWIND - N - 1
 

Member Typedef Documentation

◆ PartialReduceUnwindN1

Definition at line 104 of file partial_reduce.h.

Member Function Documentation

◆ col_reduce() [1/2]

template<std::size_t N>
template<typename Arg , typename Result , typename Op >
static TILEDARRAY_FORCE_INLINE void TiledArray::math::PartialReduceUnwind< N >::col_reduce ( const Arg *MADNESS_RESTRICT const  arg,
const std::size_t  stride,
Result *MADNESS_RESTRICT const  result,
const Op &  op 
)
inlinestatic

Definition at line 163 of file partial_reduce.h.

Here is the call graph for this function:

◆ col_reduce() [2/2]

template<std::size_t N>
template<typename Left , typename Right , typename Result , typename Op >
static TILEDARRAY_FORCE_INLINE void TiledArray::math::PartialReduceUnwind< N >::col_reduce ( const Left *MADNESS_RESTRICT const  left,
const std::size_t  stride,
const Right *MADNESS_RESTRICT const  right,
Result *MADNESS_RESTRICT const  result,
const Op &  op 
)
inlinestatic

Definition at line 140 of file partial_reduce.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ row_reduce() [1/2]

template<std::size_t N>
template<typename Arg , typename Result , typename Op >
static TILEDARRAY_FORCE_INLINE void TiledArray::math::PartialReduceUnwind< N >::row_reduce ( const Arg *MADNESS_RESTRICT const  arg,
const std::size_t  stride,
Result *MADNESS_RESTRICT const  result,
const Op &  op 
)
inlinestatic

Definition at line 125 of file partial_reduce.h.

Here is the call graph for this function:

◆ row_reduce() [2/2]

template<std::size_t N>
template<typename Left , typename Right , typename Result , typename Op >
static TILEDARRAY_FORCE_INLINE void TiledArray::math::PartialReduceUnwind< N >::row_reduce ( const Left *MADNESS_RESTRICT const  left,
const std::size_t  stride,
const Right *MADNESS_RESTRICT const  right,
Result *MADNESS_RESTRICT const  result,
const Op &  op 
)
inlinestatic

Definition at line 109 of file partial_reduce.h.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ offset

template<std::size_t N>
const std::size_t TiledArray::math::PartialReduceUnwind< N >::offset = TILEDARRAY_LOOP_UNWIND - N - 1
static

Definition at line 106 of file partial_reduce.h.


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