RAJA
RAJA provides a collection of platform portability abstractions for C++ HPC applications.
Public Types | Public Member Functions | Public Attributes | List of all members
RAJA::expt::ValOp< T, Op > Struct Template Reference

#include <params_base.hpp>

Public Types

using value_type = T
 
using op_type = Op< T, T, T >
 

Public Member Functions

 ValOp ()=default
 
constexpr RAJA_HOST_DEVICE ValOp (value_type v)
 
 ValOp (ValOp const &)=default
 
 ValOp (ValOp &&)=default
 
ValOpoperator= (ValOp const &)=default
 
ValOpoperator= (ValOp &&)=default
 
template<typename U = op_type, std::enable_if_t< std::is_same< U, RAJA::operators::minimum< T, T, T >>::value > * = nullptr>
constexpr RAJA_HOST_DEVICE ValOpmin (value_type v)
 
template<typename U = op_type, std::enable_if_t< std::is_same< U, RAJA::operators::maximum< T, T, T >>::value > * = nullptr>
constexpr RAJA_HOST_DEVICE ValOpmax (value_type v)
 
template<typename U = op_type, std::enable_if_t< std::is_same< U, RAJA::operators::plus< T, T, T >>::value > * = nullptr>
constexpr RAJA_HOST_DEVICE ValOpoperator+= (const value_type &rhs)
 
template<typename U = op_type, std::enable_if_t< std::is_same< U, RAJA::operators::bit_and< T, T, T >>::value > * = nullptr>
constexpr RAJA_HOST_DEVICE ValOpoperator&= (const value_type &rhs)
 
template<typename U = op_type, std::enable_if_t< std::is_same< U, RAJA::operators::bit_or< T, T, T >>::value > * = nullptr>
constexpr RAJA_HOST_DEVICE ValOpoperator|= (const value_type &rhs)
 
template<typename U = op_type, std::enable_if_t< std::is_same< U, RAJA::operators::bit_and< T, T, T >>::value > * = nullptr>
RAJA_HOST_DEVICE ValOpoperator&= (value_type &rhs)
 
template<typename U = op_type, std::enable_if_t< std::is_same< U, RAJA::operators::bit_or< T, T, T >>::value > * = nullptr>
RAJA_HOST_DEVICE ValOpoperator|= (value_type &rhs)
 
constexpr RAJA_HOST_DEVICE bool operator< (const ValOp &rhs) const
 
constexpr RAJA_HOST_DEVICE bool operator> (const ValOp &rhs) const
 

Public Attributes

value_type val = op_type::identity()
 

Member Typedef Documentation

◆ value_type

template<typename T , template< typename, typename, typename > class Op>
using RAJA::expt::ValOp< T, Op >::value_type = T

◆ op_type

template<typename T , template< typename, typename, typename > class Op>
using RAJA::expt::ValOp< T, Op >::op_type = Op<T, T, T>

Constructor & Destructor Documentation

◆ ValOp() [1/4]

template<typename T , template< typename, typename, typename > class Op>
RAJA::expt::ValOp< T, Op >::ValOp ( )
default

◆ ValOp() [2/4]

template<typename T , template< typename, typename, typename > class Op>
constexpr RAJA_HOST_DEVICE RAJA::expt::ValOp< T, Op >::ValOp ( value_type  v)
inlineexplicitconstexpr

◆ ValOp() [3/4]

template<typename T , template< typename, typename, typename > class Op>
RAJA::expt::ValOp< T, Op >::ValOp ( ValOp< T, Op > const &  )
default

◆ ValOp() [4/4]

template<typename T , template< typename, typename, typename > class Op>
RAJA::expt::ValOp< T, Op >::ValOp ( ValOp< T, Op > &&  )
default

Member Function Documentation

◆ operator=() [1/2]

template<typename T , template< typename, typename, typename > class Op>
ValOp& RAJA::expt::ValOp< T, Op >::operator= ( ValOp< T, Op > const &  )
default

◆ operator=() [2/2]

template<typename T , template< typename, typename, typename > class Op>
ValOp& RAJA::expt::ValOp< T, Op >::operator= ( ValOp< T, Op > &&  )
default

◆ min()

template<typename T , template< typename, typename, typename > class Op>
template<typename U = op_type, std::enable_if_t< std::is_same< U, RAJA::operators::minimum< T, T, T >>::value > * = nullptr>
constexpr RAJA_HOST_DEVICE ValOp& RAJA::expt::ValOp< T, Op >::min ( value_type  v)
inlineconstexpr

◆ max()

template<typename T , template< typename, typename, typename > class Op>
template<typename U = op_type, std::enable_if_t< std::is_same< U, RAJA::operators::maximum< T, T, T >>::value > * = nullptr>
constexpr RAJA_HOST_DEVICE ValOp& RAJA::expt::ValOp< T, Op >::max ( value_type  v)
inlineconstexpr

◆ operator+=()

template<typename T , template< typename, typename, typename > class Op>
template<typename U = op_type, std::enable_if_t< std::is_same< U, RAJA::operators::plus< T, T, T >>::value > * = nullptr>
constexpr RAJA_HOST_DEVICE ValOp& RAJA::expt::ValOp< T, Op >::operator+= ( const value_type rhs)
inlineconstexpr

◆ operator&=() [1/2]

template<typename T , template< typename, typename, typename > class Op>
template<typename U = op_type, std::enable_if_t< std::is_same< U, RAJA::operators::bit_and< T, T, T >>::value > * = nullptr>
constexpr RAJA_HOST_DEVICE ValOp& RAJA::expt::ValOp< T, Op >::operator&= ( const value_type rhs)
inlineconstexpr

◆ operator|=() [1/2]

template<typename T , template< typename, typename, typename > class Op>
template<typename U = op_type, std::enable_if_t< std::is_same< U, RAJA::operators::bit_or< T, T, T >>::value > * = nullptr>
constexpr RAJA_HOST_DEVICE ValOp& RAJA::expt::ValOp< T, Op >::operator|= ( const value_type rhs)
inlineconstexpr

◆ operator&=() [2/2]

template<typename T , template< typename, typename, typename > class Op>
template<typename U = op_type, std::enable_if_t< std::is_same< U, RAJA::operators::bit_and< T, T, T >>::value > * = nullptr>
RAJA_HOST_DEVICE ValOp& RAJA::expt::ValOp< T, Op >::operator&= ( value_type rhs)
inline

◆ operator|=() [2/2]

template<typename T , template< typename, typename, typename > class Op>
template<typename U = op_type, std::enable_if_t< std::is_same< U, RAJA::operators::bit_or< T, T, T >>::value > * = nullptr>
RAJA_HOST_DEVICE ValOp& RAJA::expt::ValOp< T, Op >::operator|= ( value_type rhs)
inline

◆ operator<()

template<typename T , template< typename, typename, typename > class Op>
constexpr RAJA_HOST_DEVICE bool RAJA::expt::ValOp< T, Op >::operator< ( const ValOp< T, Op > &  rhs) const
inlineconstexpr

◆ operator>()

template<typename T , template< typename, typename, typename > class Op>
constexpr RAJA_HOST_DEVICE bool RAJA::expt::ValOp< T, Op >::operator> ( const ValOp< T, Op > &  rhs) const
inlineconstexpr

Member Data Documentation

◆ val

template<typename T , template< typename, typename, typename > class Op>
value_type RAJA::expt::ValOp< T, Op >::val = op_type::identity()

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