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

Namespaces

 detail
 

Functions

template<typename T , typename N , typename M = std::enable_if_t<std::is_integral<N>::value>>
Sum (N n, T const *v, T init_val=0)
 
template<typename T , typename N , typename F , typename M = std::enable_if_t<std::is_integral<N>::value>>
Sum (N n, F const &f, T init_val=0)
 
template<typename T , typename N , typename M = std::enable_if_t<std::is_integral<N>::value>>
Min (N n, T const *v, T init_val=std::numeric_limits< T >::max())
 
template<typename T , typename N , typename F , typename M = std::enable_if_t<std::is_integral<N>::value>>
Min (N n, F const &f, T init_val=std::numeric_limits< T >::max())
 
template<typename T , typename N , typename M = std::enable_if_t<std::is_integral<N>::value>>
Max (N n, T const *v, T init_val=std::numeric_limits< T >::lowest())
 
template<typename T , typename N , typename F , typename M = std::enable_if_t<std::is_integral<N>::value>>
Max (N n, F const &f, T init_val=std::numeric_limits< T >::lowest())
 
template<typename T , typename N , typename M = std::enable_if_t<std::is_integral<N>::value>>
std::pair< T, T > MinMax (N n, T const *v)
 
template<typename T , typename N , typename F , typename M = std::enable_if_t<std::is_integral<N>::value>>
std::pair< T, T > MinMax (N n, F const &f)
 
template<typename T , typename N , typename P , typename M = std::enable_if_t<std::is_integral<N>::value>>
bool AnyOf (N n, T const *v, P const &pred)
 
template<typename P >
bool AnyOf (Box const &box, P const &pred)
 

Function Documentation

◆ AnyOf() [1/2]

template<typename P >
bool amrex::Reduce::AnyOf ( Box const &  box,
P const &  pred 
)

◆ AnyOf() [2/2]

template<typename T , typename N , typename P , typename M = std::enable_if_t<std::is_integral<N>::value>>
bool amrex::Reduce::AnyOf ( n,
T const *  v,
P const &  pred 
)

◆ Max() [1/2]

template<typename T , typename N , typename F , typename M = std::enable_if_t<std::is_integral<N>::value>>
T amrex::Reduce::Max ( n,
F const &  f,
init_val = std::numeric_limits<T>::lowest() 
)

◆ Max() [2/2]

template<typename T , typename N , typename M = std::enable_if_t<std::is_integral<N>::value>>
T amrex::Reduce::Max ( n,
T const *  v,
init_val = std::numeric_limits<T>::lowest() 
)

◆ Min() [1/2]

template<typename T , typename N , typename F , typename M = std::enable_if_t<std::is_integral<N>::value>>
T amrex::Reduce::Min ( n,
F const &  f,
init_val = std::numeric_limits<T>::max() 
)

◆ Min() [2/2]

template<typename T , typename N , typename M = std::enable_if_t<std::is_integral<N>::value>>
T amrex::Reduce::Min ( n,
T const *  v,
init_val = std::numeric_limits<T>::max() 
)

◆ MinMax() [1/2]

template<typename T , typename N , typename F , typename M = std::enable_if_t<std::is_integral<N>::value>>
std::pair<T,T> amrex::Reduce::MinMax ( n,
F const &  f 
)

◆ MinMax() [2/2]

template<typename T , typename N , typename M = std::enable_if_t<std::is_integral<N>::value>>
std::pair<T,T> amrex::Reduce::MinMax ( n,
T const *  v 
)

◆ Sum() [1/2]

template<typename T , typename N , typename F , typename M = std::enable_if_t<std::is_integral<N>::value>>
T amrex::Reduce::Sum ( n,
F const &  f,
init_val = 0 
)

◆ Sum() [2/2]

template<typename T , typename N , typename M = std::enable_if_t<std::is_integral<N>::value>>
T amrex::Reduce::Sum ( n,
T const *  v,
init_val = 0 
)