RTOpPack Namespace Reference


Classes

class  ReductTarget
 Abstract base class for all reduction objects. More...
class  RTOpT
 Templated interface to vector reduction/transformation operators {abstract}. More...
class  UnknownError
  More...
class  InvalidUsage
  More...
class  InvalidNumVecs
  More...
class  InvalidNumTargVecs
  More...
class  IncompatibleVecs
  More...
class  ConstSubVectorView
 Class for a non-mutable sub-vector. More...
class  SubVectorView
 Class for a mutable sub-vector. More...
class  SparseSubVectorT
 Class for a (sparse or dense) sub-vector. More...
class  ConstSubMultiVectorView
 Class for a non-mutable sub-multi-vector (submatrix). More...
class  SubMultiVectorView
 Class for a mutable sub-vector. More...
class  ROpCountNanInf
 Reduction operator that counts the number of entries that are NaN or Inf. More...
class  ROpDotProd
 Dot product reduction operator: result = sum( conj(v0[i])*v1[i], i=0...n-1 ). More...
class  ROpGetSubVector
 Reduction operator that extracts a sub-vector in the range of global zero-based indexes [l,u]. More...
class  ReductTargetSubVectorT
  More...
class  ROpMax
 Returns the maximum element: result = max{ v0[i], i=0...n-1 }. More...
class  ROpMaxIndex
 Returns the maximum element and its index: result.scalar = x(k) and result.index = k such that x(k) >= x(i) for i=0...n-1 and k is the minimum index to break ties. More...
class  ROpMaxIndexLessThanBound
 Returns the maximum element less than some bound along with its index: result.scalar = x(k) and result.index = k such that x(k) >= x(i) for all i where x(i) < bound and k is the minimum index to break ties. More...
class  ROpMin
 Returns the minimum element: result = min{ v0[i], i=0...n-1 }. More...
class  ROpMinIndex
 Returns the minimum element and its index: result.scalar = x(k) and result.index = k such that x(k) <= x(i) for i=0...n-1 and k is the minimum index to break ties. More...
class  ROpMinIndexGreaterThanBound
 Returns the minimum element greater than some bound along with its index: result.scalar = x(k) and result.index = k such that x(k) <= x(i) for all i where x(i) > bound and k is the minimum index to break ties. More...
class  ROpNorm1
 One norm reduction operator: result = max( |v0[i]|, i=0...n-1 ). More...
class  ROpNorm2
 Two (Euclidean) norm reduction operator: result = sqrt( sum( conj(v0[i])*v0[i], i=0...n-1 ) ). More...
class  ROpNormInf
 Infinity norm reduction operator: result = sum( |v0[i]|, i=0...n-1 ). More...
class  ROpSum
 Summation reduction operator: result = sum( v0[i], i=0...n-1 ). More...
class  ROpWeightedNorm2
 Weighted Two (Euclidean) norm reduction operator: result = sqrt( sum( v0[i]*conj(v1[i])*v1[i], i=0...n-1 ) ). More...
class  SUNDIALS_VProd
class  SUNDIALS_VDiv
class  SUNDIALS_VScale
class  SUNDIALS_VAddConst
class  SUNDIALS_VWL2Norm
class  SUNDIALS_VWrmsMaskNorm
class  SUNDIALS_VConstrMask
class  SUNDIALS_VMinQuotient
class  SUNDIALS_VInvTest
class  SUNDIALS_VCompare
class  TOpAbs
 Transformation operator that takes absolute values of elements: z0[i] = abs(v0[i]), i=0...n-1. More...
class  TOpAddScalar
 Add a scalar to a vector transformation operator: z0[i] += alpha, i=0...n-1. More...
class  TOpAssignScalar
 Assign a scalar to a vector transformation operator: z0[i] = alpha, i=0...n-1. More...
class  TOpAssignVectors
 VectorBase assignment transformation operator: z0[i] = v0[i], i=0...n-1. More...
class  TOpAXPY
 AXPY transformation operator: z0[i] += alpha*v0[i], i=0...n-1. More...
class  TOpEleWiseDivide
 Element-wise division transformation operator: z0[i] += alpha*v0[i]/v1[i], i=0...n-1. More...
class  TOpEleWiseProd
 Element-wise product transformation operator: z0[i] += alpha*v0[i]*v1[i], i=0...n-1. More...
class  TOpEleWiseProdUpdate
 Element-wise product update transformation operator: z0[i] *= alpha*v0[i], i=0...n-1. More...
class  TOpLinearCombination
 Linear combination transformation operator: z0[i] = beta*z0[i] + sum( alpha[k]*v[k][i], k=0...num_vecs-1 ), i=0...n-1. More...
class  TOpRandomize
 Generate a random vector in the range [l,u]: z0[i] = 0.5*((u-l)*TeuchosScalarTraits<Scalar>::random()+(u+l)), i=0...n-1. More...
class  TOpReciprocal
 VectorBase assignment transformation operator: z0[i] = v0[i], i=0...n-1. More...
class  TOpScaleVector
 Simple transformation operator that scales every vector element by a scalar alpha. More...
class  TOpSetSubVector
 Advanced transformation operator that assigns elements from a sparse explicit vector. More...
class  RTOpServer
 Server for creating RTOpT objects given just the operators name. More...
struct  ScalarIndex
 Simple struct for a Scalar and an Index object. More...
class  ReductTargetScalar
 Simple ReductTarget subclass for simple scalar objects. More...
class  ReductTargetScalarIndex
 Simple ReductTarget subclass for Scalar,Index objects. More...
class  ROpScalarReductionBase
 Simple base class for all reduction operators that return a simple scalar reduction object. More...
class  ROpScalarReductionBaseRawValSetter< true, false, Scalar, ReductScalar >
class  ROpScalarReductionBaseRawValSetter< true, true, Scalar, ReductScalar >
class  ROpScalarReductionBaseRawValSetter< false, isScalarReductScalar, Scalar, ReductScalar >
class  ROpScalarIndexReductionBase
 Base class for all reduction operators that return a ScalarIndex reduction object. More...
class  ROpIndexReductionBase
 Simple base class for all reduction operators that return a simple index reduction object. More...
class  ROpScalarTransformationBase
 Simple base class for all transformation operators that use a single piece of Scalar data. More...
class  ROpScalarScalarTransformationBase
 Simple base class for all transformation operators that use a pair of Scalar data members. More...
class  RTOpBoolReduceAndTransform
 Do a transformation and reduce to a bool. Needed for the NVector adapters for the SUNDIALS interface. More...
class  ReductTargetSerializer
 Serializer subclass for ReductTarget objects. More...
class  ReductTargetReductionOp
 ReductionOp subclass for ReductTarget objects. More...
class  TOpUnaryFuncPtr
 RTOpT subclass for unary transformation functions using a function pointer. More...

Typedefs

typedef Teuchos_Index index_type
 Depreciated .
typedef char char_type
 Depreciated .
typedef index_type Index
 

Functions

template<class Scalar>
void assign_entries (const SubVectorView< Scalar > *msv, const ConstSubVectorView< Scalar > &sv)
template<class Scalar>
void assign_entries (const SubMultiVectorView< Scalar > *msmv, const ConstSubMultiVectorView< Scalar > &smv)
std::string version ()
 Print the version of RTOp.
template<class Scalar>
void print (const ConstSubVectorView< Scalar > &v, Teuchos::FancyOStream &out_arg)
template<class primitive_value_type>
void MPI_type_signature (const int num_values,const int num_indexes,const int num_chars,int *num_entries,int block_lengths[],MPI_Aint displacements[],MPI_Datatype datatypes[])
 Initialize MPI compatible type signature arrays for reduction/transformation operator object instance data and reduction target object data.
template<class Scalar>
void extract_reduct_obj_ext_state (const RTOpT< Scalar > &op,const ReductTarget &reduct_obj,int num_values,int num_indexes,int num_chars,void *reduct_obj_ext)
 
template<class Scalar>
void load_reduct_obj_ext_state (const RTOpT< Scalar > &op,const void *reduct_obj_ext,ReductTarget *reduct_obj)
 
template<class Scalar>
void MPI_apply_op (MPI_Comm comm,const RTOpT< Scalar > &op,const int root_rank,const int num_vecs,const ConstSubVectorView< Scalar > sub_vecs[],const int num_targ_vecs,const SubVectorView< Scalar > targ_sub_vecs[],ReductTarget *reduct_obj)
 Apply an RTOp in SMPD mode with MPI to a set of vectors with contiguous storage per processor.
template<class Scalar>
void MPI_apply_op (MPI_Comm comm, const RTOpT< Scalar > &op, const int root_rank, const int num_cols, const int num_multi_vecs, const RTOpPack::ConstSubMultiVectorView< Scalar > sub_multi_vecs[], const int num_targ_multi_vecs, const RTOpPack::SubMultiVectorView< Scalar > targ_sub_multi_vecs[], RTOpPack::ReductTarget *const reduct_objs[])
 Apply an RTOp in SMPD mode with MPI to a set of columns to a set of multi-vectors with contiguous storage per processor.
template<class Scalar>
void MPI_all_reduce (MPI_Comm comm,const RTOpT< Scalar > &op,const int root_rank,const int num_cols,const ReductTarget *const i_reduct_objs[],ReductTarget *const reduct_objs[])
 Perform global reduction of reduction target objects.
template<class Scalar>
void MPI_apply_op (MPI_Comm comm,const RTOpT< Scalar > &op,const int root_rank,const int num_cols,const int num_vecs,const ConstSubVectorView< Scalar > sub_vecs[],const int num_targ_vecs,const SubVectorView< Scalar > sub_targ_vecs[],ReductTarget *const reduct_objs[])
 Apply an RTOp in SMPD mode with MPI to a set of columns to a set of multi-vectors with contiguous storage per processor.
template<class primitive_value_type>
int reduct_obj_ext_size (int num_values, int num_indexes, int num_chars)
 Return the size in bytes of an external representation of reduct_obj.
template<class PrimitiveScalar>
int serializedSize (int num_values,int num_indexes,int num_chars)
 Return the size in bytes of an external representation of a ReductTarget object.
template<class Scalar>
void serialize (const RTOpT< Scalar > &op,int num_values,int num_indexes,int num_chars,const ReductTarget &reduct_obj,char reduct_obj_ext[])
 Serialize a ReductTarget object.
template<class Scalar>
void deserialize (const RTOpT< Scalar > &op,int num_values,int num_indexes,int num_chars,const char reduct_obj_ext[],ReductTarget *reduct_obj)
 Deserialize a ReductTarget object.
template<class Scalar>
void SPMD_all_reduce (const Teuchos::Comm< index_type > *comm,const RTOpT< Scalar > &op,const int num_cols,const ReductTarget *const i_reduct_objs[],ReductTarget *const reduct_objs[])
 Reduce a set of reduction objects.
template<class Scalar>
void SPMD_apply_op (const Teuchos::Comm< index_type > *comm,const RTOpT< Scalar > &op,const int num_vecs,const ConstSubVectorView< Scalar > sub_vecs[],const int num_targ_vecs,const SubVectorView< Scalar > targ_sub_vecs[],ReductTarget *reduct_obj)
 Apply an RTOp in SMPD mode to a set of vectors with contiguous storage per process.
template<class Scalar>
void SPMD_apply_op (const Teuchos::Comm< index_type > *comm, const RTOpT< Scalar > &op, const int num_cols, const int num_multi_vecs, const RTOpPack::ConstSubMultiVectorView< Scalar > sub_multi_vecs[], const int num_targ_multi_vecs, const RTOpPack::SubMultiVectorView< Scalar > targ_sub_multi_vecs[], RTOpPack::ReductTarget *const reduct_objs[])
 Apply an RTOp in SMPD mode to a set of columns to a set of multi-vectors with contiguous storage per process.
template<class Scalar>
void SPMD_apply_op (const Teuchos::Comm< index_type > *comm,const RTOpT< Scalar > &op,const int num_cols,const int num_vecs,const ConstSubVectorView< Scalar > sub_vecs[],const int num_targ_vecs,const SubVectorView< Scalar > sub_targ_vecs[],ReductTarget *const reduct_objs[])
 Apply an RTOp in SMPD mode to a set of columns to a set of multi-vectors with contiguous storage per process.

Variables

bool show_mpi_apply_op_dump = false


Typedef Documentation

typedef Teuchos_Index RTOpPack::index_type

Depreciated .

Definition at line 44 of file RTOpPack_Types.hpp.

typedef char RTOpPack::char_type

Depreciated .

Definition at line 46 of file RTOpPack_Types.hpp.

typedef index_type RTOpPack::Index

Definition at line 48 of file RTOpPack_Types.hpp.


Function Documentation

template<class Scalar>
void RTOpPack::assign_entries ( const SubVectorView< Scalar > *  msv,
const ConstSubVectorView< Scalar > &  sv 
)

Definition at line 355 of file RTOpPack_Types.hpp.

template<class Scalar>
void RTOpPack::assign_entries ( const SubMultiVectorView< Scalar > *  msmv,
const ConstSubMultiVectorView< Scalar > &  smv 
)

Definition at line 532 of file RTOpPack_Types.hpp.

std::string RTOpPack::version (  ) 

Print the version of RTOp.

Definition at line 34 of file RTOpPack_version.cpp.

template<class Scalar>
void RTOpPack::print ( const ConstSubVectorView< Scalar > &  v,
Teuchos::FancyOStream out_arg 
)

Definition at line 49 of file RTOpPack_MPI_apply_op.hpp.

template<class primitive_value_type>
void RTOpPack::MPI_type_signature ( const int  num_values,
const int  num_indexes,
const int  num_chars,
int *  num_entries,
int  block_lengths[],
MPI_Aint  displacements[],
MPI_Datatype  datatypes[] 
)

Initialize MPI compatible type signature arrays for reduction/transformation operator object instance data and reduction target object data.

Parameters:
num_values [in] Number of primitive_value members
num_indexes [in] Number of index members
num_chars [in] Number of character members
num_entries [out] Number of entries in output arrays set
block_lengths [out] array (length >= RTOp_NUM_DATA_TYPES)
displacements [out] array (length >= RTOp_NUM_DATA_TYPES)
datatypes [out] array (length >= RTOp_NUM_DATA_TYPES)
See the MPI function MPI_Type_struct(...) for a description of these arrays.

Definition at line 161 of file RTOpPack_MPI_apply_op.hpp.

template<class Scalar>
void RTOpPack::extract_reduct_obj_ext_state ( const RTOpT< Scalar > &  op,
const ReductTarget &  reduct_obj,
int  num_values,
int  num_indexes,
int  num_chars,
void *  _reduct_obj_ext 
)

Definition at line 208 of file RTOpPack_MPI_apply_op.hpp.

template<class Scalar>
void RTOpPack::load_reduct_obj_ext_state ( const RTOpT< Scalar > &  op,
const void *  _reduct_obj_ext,
ReductTarget *  reduct_obj 
)

Definition at line 238 of file RTOpPack_MPI_apply_op.hpp.

template<class Scalar>
void RTOpPack::MPI_apply_op ( MPI_Comm  comm,
const RTOpT< Scalar > &  op,
const int  root_rank,
const int  num_vecs,
const ConstSubVectorView< Scalar >  sub_vecs[],
const int  num_targ_vecs,
const SubVectorView< Scalar >  targ_sub_vecs[],
ReductTarget *  reduct_obj 
)

Apply an RTOp in SMPD mode with MPI to a set of vectors with contiguous storage per processor.

ToDo: Finish documentation!

Definition at line 265 of file RTOpPack_MPI_apply_op.hpp.

template<class Scalar>
void RTOpPack::MPI_apply_op ( MPI_Comm  comm,
const RTOpT< Scalar > &  op,
const int  root_rank,
const int  num_cols,
const int  num_multi_vecs,
const ConstSubMultiVectorView< Scalar >  sub_multi_vecs[],
const int  num_targ_multi_vecs,
const SubMultiVectorView< Scalar >  targ_sub_multi_vecs[],
ReductTarget *const   reduct_objs[] 
)

Apply an RTOp in SMPD mode with MPI to a set of columns to a set of multi-vectors with contiguous storage per processor.

ToDo: Finish documentation!

Definition at line 285 of file RTOpPack_MPI_apply_op.hpp.

template<class Scalar>
void RTOpPack::MPI_all_reduce ( MPI_Comm  comm,
const RTOpT< Scalar > &  op,
const int  root_rank,
const int  num_cols,
const ReductTarget *const   i_reduct_objs[],
ReductTarget *const   reduct_objs[] 
)

Perform global reduction of reduction target objects.

Parameters:
comm [in] MPI communicator
op [in] Reduction operator object associated with reduction objects. This operator defines how the global reductions are performed.
root_rank [in] The rank of the root processor
num_cols [in] The number of vector sets (i.e. multi-vector columns) that these reduction objects where collected over.
i_reduct_objs [in] Array (length num_cols) of local intermediate reduction objects.
reduct_objs [in/out] Array (length num_cols) of global reduction objects that each i_reduct_objs[i] from each processor will be reduced into.
ToDo: Finish documentation!

Definition at line 327 of file RTOpPack_MPI_apply_op.hpp.

template<class Scalar>
void RTOpPack::MPI_apply_op ( MPI_Comm  comm,
const RTOpT< Scalar > &  op,
const int  root_rank,
const int  num_cols,
const int  num_vecs,
const ConstSubVectorView< Scalar >  sub_vecs[],
const int  num_targ_vecs,
const SubVectorView< Scalar >  sub_targ_vecs[],
ReductTarget *const   reduct_objs[] 
)

Apply an RTOp in SMPD mode with MPI to a set of columns to a set of multi-vectors with contiguous storage per processor.

ToDo: Finish documentation!

Definition at line 462 of file RTOpPack_MPI_apply_op.hpp.

template<class primitive_value_type>
int RTOpPack::reduct_obj_ext_size ( int  num_values,
int  num_indexes,
int  num_chars 
)

Return the size in bytes of an external representation of reduct_obj.

Definition at line 76 of file RTOpPack_MPI_apply_op_decl.hpp.

template<class PrimitiveScalar>
int RTOpPack::serializedSize ( int  num_values,
int  num_indexes,
int  num_chars 
)

Return the size in bytes of an external representation of a ReductTarget object.

Definition at line 73 of file RTOpPack_SPMD_apply_op.hpp.

template<class Scalar>
void RTOpPack::serialize ( const RTOpT< Scalar > &  op,
int  num_values,
int  num_indexes,
int  num_chars,
const ReductTarget &  reduct_obj,
char  reduct_obj_ext[] 
)

Serialize a ReductTarget object.

Definition at line 86 of file RTOpPack_SPMD_apply_op.hpp.

template<class Scalar>
void RTOpPack::deserialize ( const RTOpT< Scalar > &  op,
int  num_values_in,
int  num_indexes_in,
int  num_chars_in,
const char  reduct_obj_ext[],
ReductTarget *  reduct_obj 
)

Deserialize a ReductTarget object.

Definition at line 123 of file RTOpPack_SPMD_apply_op.hpp.

template<class Scalar>
void RTOpPack::SPMD_all_reduce ( const Teuchos::Comm< index_type > *  comm,
const RTOpT< Scalar > &  op,
const int  num_cols,
const ReductTarget *const   i_reduct_objs[],
ReductTarget *const   reduct_objs[] 
)

Reduce a set of reduction objects.

ToDo: Finish documentation!

Definition at line 273 of file RTOpPack_SPMD_apply_op.hpp.

template<class Scalar>
void RTOpPack::SPMD_apply_op ( const Teuchos::Comm< index_type > *  comm,
const RTOpT< Scalar > &  op,
const int  num_vecs,
const ConstSubVectorView< Scalar >  sub_vecs[],
const int  num_targ_vecs,
const SubVectorView< Scalar >  targ_sub_vecs[],
ReductTarget *  reduct_obj 
)

Apply an RTOp in SMPD mode to a set of vectors with contiguous storage per process.

ToDo: Finish documentation!

Definition at line 305 of file RTOpPack_SPMD_apply_op.hpp.

template<class Scalar>
void RTOpPack::SPMD_apply_op ( const Teuchos::Comm< index_type > *  comm,
const RTOpT< Scalar > &  op,
const int  num_cols,
const int  num_multi_vecs,
const ConstSubMultiVectorView< Scalar >  sub_multi_vecs[],
const int  num_targ_multi_vecs,
const SubMultiVectorView< Scalar >  targ_sub_multi_vecs[],
ReductTarget *const   reduct_objs[] 
)

Apply an RTOp in SMPD mode to a set of columns to a set of multi-vectors with contiguous storage per process.

ToDo: Finish documentation!

Definition at line 324 of file RTOpPack_SPMD_apply_op.hpp.

template<class Scalar>
void RTOpPack::SPMD_apply_op ( const Teuchos::Comm< index_type > *  comm,
const RTOpT< Scalar > &  op,
const int  num_cols,
const int  num_vecs,
const ConstSubVectorView< Scalar >  sub_vecs[],
const int  num_targ_vecs,
const SubVectorView< Scalar >  sub_targ_vecs[],
ReductTarget *const   reduct_objs[] 
)

Apply an RTOp in SMPD mode to a set of columns to a set of multi-vectors with contiguous storage per process.

ToDo: Finish documentation!

Definition at line 365 of file RTOpPack_SPMD_apply_op.hpp.


Variable Documentation

bool RTOpPack::show_mpi_apply_op_dump = false

Definition at line 33 of file RTOpPack_MPI_apply_op.cpp.


Generated on Tue Oct 20 12:46:17 2009 for RTOp Package Browser (Single Doxygen Collection) by doxygen 1.4.7