Grappa  r3821, hash 22cd626d567a91ead5b23302066d1e9469f45c66
Reducer< T, ReducerType::Or > Class Template Reference

Reducer for "or" (operator|). More...

#include <Reducer.hpp>

Inheritance diagram for Reducer< T, ReducerType::Or >:
ReducerImpl< T, collective_or >

Public Member Functions

 Super (ReducerImpl< T, collective_or >)
 
void operator|= (const T &v)
 
- Public Member Functions inherited from ReducerImpl< T, collective_or >
 ReducerImpl ()
 
 operator T () const
 Read out value; does expensive global reduce. More...
 
void operator= (const T &v)
 Globally set the value; expensive global synchronization. More...
 
void reset ()
 Globally reset to default value for the type. More...
 

Additional Inherited Members

- Protected Attributes inherited from ReducerImpl< T, collective_or >
local_value
 

Detailed Description

template<typename T>
class Reducer< T, ReducerType::Or >

Reducer for "or" (operator|).

Useful for "any" checks, such as "are any values non-zero?". Provides cheap operator for "or-ing" something onto the value: |=.

Example:

  • ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Reducer<bool,ReducerType::Or> any_nonzero;

    // ... (somewhere in main task) any_nonzero = false; forall(A, N, [](double& A_i){ if (A_i != 0) { any_nonzero |= true } }); LOG(INFO) << ( any_nonzero ? "some" : "no" ) << " nonzeroes.";

  • ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Definition at line 343 of file Reducer.hpp.

Member Function Documentation

template<typename T >
void Reducer< T, ReducerType::Or >::operator|= ( const T &  v)
inline

Definition at line 346 of file Reducer.hpp.

template<typename T >
Reducer< T, ReducerType::Or >::Super ( ReducerImpl< T, collective_or )

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