10#ifndef TEUCHOS_MPI_REDUCTION_OP_SETTER_HPP 
   11#define TEUCHOS_MPI_REDUCTION_OP_SETTER_HPP 
   24#include "Teuchos_ReductionOp.hpp" 
   37class TEUCHOSCOMM_LIB_DLL_EXPORT MpiReductionOpBase :
 
   38    virtual public Describable {
 
   41  reduce (
void* invec, 
void* inoutvec,
 
   42          int* len, MPI_Datatype* datatype) 
const = 0;
 
   51template<
typename OrdinalType>
 
   52class MpiReductionOp : 
public MpiReductionOpBase {
 
   54  MpiReductionOp (
const ValueTypeReductionOp<OrdinalType,char>& reductOp)
 
   55    : reductOp_ (reductOp)
 
   59  reduce (
void* invec, 
void* inoutvec, 
int* len, MPI_Datatype* datatype)
 const 
   71    MPI_Type_size (*datatype, &sz);
 
   73    reductOp_.reduce ((*len) * sz, 
reinterpret_cast<char*
> (invec),
 
   74                      reinterpret_cast<char*
> (inoutvec));
 
   78  const ValueTypeReductionOp<OrdinalType, char>& reductOp_;
 
   81  MpiReductionOp (
const MpiReductionOp&);
 
   82  MpiReductionOp& operator= (
const MpiReductionOp&);
 
   93TEUCHOSCOMM_LIB_DLL_EXPORT MPI_Op setMpiReductionOp (
const MpiReductionOpBase& reductOp);
 
Teuchos header file which uses auto-configuration information to include necessary C++ headers.
 
#define TEUCHOS_TEST_FOR_EXCEPT(throw_exception_test)
This macro is designed to be a short version of TEUCHOS_TEST_FOR_EXCEPTION() that is easier to call.
 
Namespace of implementation details.
 
The Teuchos namespace contains all of the classes, structs and enums used by Teuchos,...