Tpetra parallel linear algebra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Namespaces | Classes | Functions
Tpetra::RTI Namespace Reference

Namespace for Tpetra Reduction/Tranformation Interface. More...

Namespaces

 detail
 Internal detail for Tpetra::RTI. Methods and class here are not guaranteed to be backwards compatible.
 

Classes

class  ZeroOp
 A static identity functor, providing a static method identity() that returns zero. More...
 
class  OneOp
 A static identity functor, providing a static method identity() that returns one. More...
 
class  ReductionGlob
 A type glob containing the types needed for calling Tpetra::RTI::reduce() with individual functors. More...
 
class  TransformReductionGlob
 A type glob containing the types needed for calling Tpetra::RTI::binary_pre_transform_reduce() with individual functors. More...
 
class  KernelOp
 Operator wrapping a Kokkos (Classic) kernel using RTI. More...
 
class  BinaryOp
 Tpetra::Operator wrapping a binary functor using the Tpetra Reduction/Transformation Interface. More...
 

Functions

template<class IOP , class GOP , class ROP >
ReductionGlob< GOP, ROP, IOP > reductionGlob (GOP gop, ROP rop)
 Non-member constructor to instantiate a type glob of a static identity functor and generation and reduction functor objects. More...
 
template<class IOP , class TOP , class GOP , class ROP >
TransformReductionGlob< TOP,
GOP, ROP, IOP > 
reductionGlob (TOP top, GOP gop, ROP rop)
 Non-member constructor to instantiate a type glob of a static identity functor and transform, generation and reduction functor objects. More...
 
template<class S , class LO , class GO , class Node , class OP >
void unary_transform (Vector< S, LO, GO, Node > &vec_inout, OP op)
 Transform values of vec_inout using via operator op. More...
 
template<class S1 , class S2 , class LO , class GO , class Node , class OP >
void binary_transform (Vector< S1, LO, GO, Node > &vec_inout, const Vector< S2, LO, GO, Node > &vec_in2, OP op)
 Transform values of vec_inout using vec_inout, vec_in2 and operator op. More...
 
template<class S1 , class S2 , class S3 , class LO , class GO , class Node , class OP >
void tertiary_transform (Vector< S1, LO, GO, Node > &vec_inout, const Vector< S2, LO, GO, Node > &vec_in2, const Vector< S3, LO, GO, Node > &vec_in3, OP op)
 Transform values of vec_inout using vec_inout, vec_in2, vec_in3 and operator op. More...
 
template<class S , class LO , class GO , class Node , class Glob >
Glob::RedOP::result_type reduce (const Vector< S, LO, GO, Node > &vec_in, Glob glob)
 Reduce values of vec_in using the operators instantiated in glob. More...
 
template<class S1 , class S2 , class LO , class GO , class Node , class Glob >
Glob::RedOP::result_type reduce (const Vector< S1, LO, GO, Node > &vec_in1, const Vector< S2, LO, GO, Node > &vec_in2, Glob glob)
 Reduce values of vec_in1 and vec_in2 using the operators instantiated in glob. More...
 
template<class S1 , class S2 , class S3 , class LO , class GO , class Node , class Glob >
Glob::RedOP::result_type reduce (const Vector< S1, LO, GO, Node > &vec_in1, const Vector< S2, LO, GO, Node > &vec_in2, const Vector< S3, LO, GO, Node > &vec_in3, Glob glob)
 Reduce values of vec_in1, vec_in2 and vec_in3 using the operators instantiated in glob. More...
 
template<class S1 , class S2 , class LO , class GO , class Node , class Glob >
Glob::RedOP::result_type binary_pre_transform_reduce (Vector< S1, LO, GO, Node > &vec_inout, const Vector< S2, LO, GO, Node > &vec_in2, Glob glob)
 Transforms values of vec_inout while simultaneously performing a parallel reduction. More...
 
template<class S1 , class S2 , class S3 , class LO , class GO , class Node , class Glob >
Glob::RedOP::result_type tertiary_pre_transform_reduce (Vector< S1, LO, GO, Node > &vec_inout, const Vector< S2, LO, GO, Node > &vec_in2, const Vector< S3, LO, GO, Node > &vec_in3, Glob glob)
 Transforms values of vec_inout while simultaneously performing a parallel reduction. More...
 
template<class S , class LO , class GO , class Node , class Kernel >
RCP< const KernelOp< S, LO, GO,
Node, Kernel > > 
kernelOp (Kernel kernel, const RCP< const Map< LO, GO, Node > > &domainMap, const RCP< const Map< LO, GO, Node > > &rangeMap=null, const RCP< const Import< LO, GO, Node > > &importer=null, const RCP< const Export< LO, GO, Node > > &exporter=null)
 Non-member constructor for a Tpetra::RTI::KernelOp object. More...
 
template<class S , class LO , class GO , class Node , class Op >
RCP< const BinaryOp< S, LO, GO,
Node, Op > > 
binaryOp (Op op, const RCP< const Map< LO, GO, Node > > &domainMap, const RCP< const Map< LO, GO, Node > > &rangeMap=null, const RCP< const Import< LO, GO, Node > > &importer=null, const RCP< const Export< LO, GO, Node > > &exporter=null)
 Non-member constructor for a Tpetra::RTI::BinaryOp object. More...
 

Detailed Description

Namespace for Tpetra Reduction/Tranformation Interface.

Function Documentation

template<class IOP , class GOP , class ROP >
ReductionGlob<GOP,ROP,IOP> Tpetra::RTI::reductionGlob ( GOP  gop,
ROP  rop 
)
inline

Non-member constructor to instantiate a type glob of a static identity functor and generation and reduction functor objects.

Definition at line 137 of file Tpetra_RTI.hpp.

template<class IOP , class TOP , class GOP , class ROP >
TransformReductionGlob<TOP,GOP,ROP,IOP> Tpetra::RTI::reductionGlob ( TOP  top,
GOP  gop,
ROP  rop 
)
inline

Non-member constructor to instantiate a type glob of a static identity functor and transform, generation and reduction functor objects.

Definition at line 144 of file Tpetra_RTI.hpp.

template<class S , class LO , class GO , class Node , class OP >
void Tpetra::RTI::unary_transform ( Vector< S, LO, GO, Node > &  vec_inout,
OP  op 
)

Transform values of vec_inout using via operator op.

For each element vec_inout[i], assign vec_inout[i] = op( vec_inout[i] )

Calls Tpetra::RTI::detail::unary_transform via the Tpetra::RTI::detail::UnaryFunctorAdapter.

Definition at line 155 of file Tpetra_RTI.hpp.

template<class S1 , class S2 , class LO , class GO , class Node , class OP >
void Tpetra::RTI::binary_transform ( Vector< S1, LO, GO, Node > &  vec_inout,
const Vector< S2, LO, GO, Node > &  vec_in2,
OP  op 
)

Transform values of vec_inout using vec_inout, vec_in2 and operator op.

For each element vec_inout[i], assign vec_inout[i] = op( vec_inout[i], vec_in2[i] )

Calls Tpetra::RTI::detail::binary_transform via the Tpetra::RTI::detail::BinaryFunctorAdapter.

Definition at line 167 of file Tpetra_RTI.hpp.

template<class S1 , class S2 , class S3 , class LO , class GO , class Node , class OP >
void Tpetra::RTI::tertiary_transform ( Vector< S1, LO, GO, Node > &  vec_inout,
const Vector< S2, LO, GO, Node > &  vec_in2,
const Vector< S3, LO, GO, Node > &  vec_in3,
OP  op 
)

Transform values of vec_inout using vec_inout, vec_in2, vec_in3 and operator op.

For each element vec_inout[i], assign vec_inout[i] = op( vec_inout[i], vec_in2[i], vec_in3[i] )

Calls Tpetra::RTI::detail::tertiary_transform via the Tpetra::RTI::detail::TertiaryFunctorAdapter.

Definition at line 183 of file Tpetra_RTI.hpp.

template<class S , class LO , class GO , class Node , class Glob >
Glob::RedOP::result_type Tpetra::RTI::reduce ( const Vector< S, LO, GO, Node > &  vec_in,
Glob  glob 
)

Reduce values of vec_in using the operators instantiated in glob.

For each element vec_in[i], generates reduction elements via glob.genop( vec_in[i] ) and reduces them via the glob.redop binary functor.

Calls Tpetra::RTI::detail::reduce via the Tpetra::RTI::detail::RTIReductionAdapter1.

Definition at line 201 of file Tpetra_RTI.hpp.

template<class S1 , class S2 , class LO , class GO , class Node , class Glob >
Glob::RedOP::result_type Tpetra::RTI::reduce ( const Vector< S1, LO, GO, Node > &  vec_in1,
const Vector< S2, LO, GO, Node > &  vec_in2,
Glob  glob 
)

Reduce values of vec_in1 and vec_in2 using the operators instantiated in glob.

For each element pair vec_in1[i] and vec_in2[i], generates reduction elements via glob.genop( vec_in1[i], vec_in2[i] ) and reduces them via the glob.redop binary functor.

Calls Tpetra::RTI::detail::reduce via the Tpetra::RTI::detail::RTIReductionAdapter2.

Definition at line 215 of file Tpetra_RTI.hpp.

template<class S1 , class S2 , class S3 , class LO , class GO , class Node , class Glob >
Glob::RedOP::result_type Tpetra::RTI::reduce ( const Vector< S1, LO, GO, Node > &  vec_in1,
const Vector< S2, LO, GO, Node > &  vec_in2,
const Vector< S3, LO, GO, Node > &  vec_in3,
Glob  glob 
)

Reduce values of vec_in1, vec_in2 and vec_in3 using the operators instantiated in glob.

For each element triplet vec_in1[i], vec_in2[i] and vec_in3[i], generates reduction elements via glob.genop( vec_in1[i], vec_in2[i], vec_in3[i] ) and reduces them via the glob.redop binary functor.

Calls Tpetra::RTI::detail::reduce via the Tpetra::RTI::detail::RTIReductionAdapter3.

Definition at line 234 of file Tpetra_RTI.hpp.

template<class S1 , class S2 , class LO , class GO , class Node , class Glob >
Glob::RedOP::result_type Tpetra::RTI::binary_pre_transform_reduce ( Vector< S1, LO, GO, Node > &  vec_inout,
const Vector< S2, LO, GO, Node > &  vec_in2,
Glob  glob 
)

Transforms values of vec_inout while simultaneously performing a parallel reduction.

For each element pair vec_inout[i] and vec_in2[i], assigns vec_inout[i] = glob.top( vec_inout[i], vec_in2[i] ). Simultaneously, generates reduction elements via glob.genop( vec_inout[i], vec_in2[i] ) (using the transformed values) and reduces them via the glob.redop binary functor.

Calls Tpetra::RTI::detail::transform_reduce via the Tpetra::RTI::detail::RTIPreTransformReductionAdapter.

Definition at line 253 of file Tpetra_RTI.hpp.

template<class S1 , class S2 , class S3 , class LO , class GO , class Node , class Glob >
Glob::RedOP::result_type Tpetra::RTI::tertiary_pre_transform_reduce ( Vector< S1, LO, GO, Node > &  vec_inout,
const Vector< S2, LO, GO, Node > &  vec_in2,
const Vector< S3, LO, GO, Node > &  vec_in3,
Glob  glob 
)

Transforms values of vec_inout while simultaneously performing a parallel reduction.

For each element triplet vec_inout[i] and vec_in2[i] and vec_in3[i], assigns vec_inout[i] = glob.top( vec_inout[i], vec_in2[i], vec_in3[i] ). Simultaneously, generates reduction elements via glob.genop( vec_inout[i], vec_in2[i], vec_in3[i] ) (using the transformed values) and reduces them via the glob.redop tertiary functor.

Calls Tpetra::RTI::detail::transform_reduce via the Tpetra::RTI::detail::RTIPreTransformReductionAdapter3.

Definition at line 273 of file Tpetra_RTI.hpp.

template<class S , class LO , class GO , class Node , class Kernel >
RCP<const KernelOp<S,LO,GO,Node,Kernel> > Tpetra::RTI::kernelOp ( Kernel  kernel,
const RCP< const Map< LO, GO, Node > > &  domainMap,
const RCP< const Map< LO, GO, Node > > &  rangeMap = null,
const RCP< const Import< LO, GO, Node > > &  importer = null,
const RCP< const Export< LO, GO, Node > > &  exporter = null 
)

Non-member constructor for a Tpetra::RTI::KernelOp object.

Definition at line 160 of file Tpetra_RTIOp.hpp.

template<class S , class LO , class GO , class Node , class Op >
RCP<const BinaryOp<S,LO,GO,Node,Op> > Tpetra::RTI::binaryOp ( Op  op,
const RCP< const Map< LO, GO, Node > > &  domainMap,
const RCP< const Map< LO, GO, Node > > &  rangeMap = null,
const RCP< const Import< LO, GO, Node > > &  importer = null,
const RCP< const Export< LO, GO, Node > > &  exporter = null 
)

Non-member constructor for a Tpetra::RTI::BinaryOp object.

Definition at line 187 of file Tpetra_RTIOp.hpp.