Block-Structured AMR Software Framework
amrex::Scan Namespace Reference

Namespaces

 detail
 
 Type
 

Classes

struct  RetSum
 

Functions

template<typename T , typename N , typename FIN , typename FOUT , typename TYPE , typename M = std::enable_if_t<std::is_integral<N>::value && (std::is_same<std::decay_t<TYPE>,Type::Inclusive>::value || std::is_same<std::decay_t<TYPE>,Type::Exclusive>::value)>>
PrefixSum (N n, FIN const &fin, FOUT const &fout, TYPE, RetSum a_ret_sum=retSum)
 
template<typename N , typename T , typename M = std::enable_if_t<std::is_integral<N>::value>>
InclusiveSum (N n, T const *in, T *out, RetSum a_ret_sum=retSum)
 
template<typename N , typename T , typename M = std::enable_if_t<std::is_integral<N>::value>>
ExclusiveSum (N n, T const *in, T *out, RetSum a_ret_sum=retSum)
 

Variables

static constexpr RetSum retSum {true}
 
static constexpr RetSum noRetSum {false}
 

Function Documentation

◆ ExclusiveSum()

template<typename N , typename T , typename M = std::enable_if_t<std::is_integral<N>::value>>
T amrex::Scan::ExclusiveSum ( n,
T const *  in,
T *  out,
RetSum  a_ret_sum = retSum 
)

◆ InclusiveSum()

template<typename N , typename T , typename M = std::enable_if_t<std::is_integral<N>::value>>
T amrex::Scan::InclusiveSum ( n,
T const *  in,
T *  out,
RetSum  a_ret_sum = retSum 
)

◆ PrefixSum()

template<typename T , typename N , typename FIN , typename FOUT , typename TYPE , typename M = std::enable_if_t<std::is_integral<N>::value && (std::is_same<std::decay_t<TYPE>,Type::Inclusive>::value || std::is_same<std::decay_t<TYPE>,Type::Exclusive>::value)>>
T amrex::Scan::PrefixSum ( n,
FIN const &  fin,
FOUT const &  fout,
TYPE  ,
RetSum  a_ret_sum = retSum 
)

Variable Documentation

◆ noRetSum

constexpr RetSum amrex::Scan::noRetSum {false}
staticconstexpr

◆ retSum

constexpr RetSum amrex::Scan::retSum {true}
staticconstexpr