RTOpPack Namespace Reference


Classes

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

Definition at line 355 of file RTOpPack_Types.hpp.

template<class Scalar>
void 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 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 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.

Definition at line 76 of file RTOpPack_MPI_apply_op_decl.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[],
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.

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 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,
int  num_indexes,
int  num_chars,
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[],
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.

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 Thu Sep 18 12:30:43 2008 for RTOp Package Browser (Single Doxygen Collection) by doxygen 1.3.9.1