Tpetra parallel linear algebra
Version of the Day
|
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... | |
Namespace for Tpetra Reduction/Tranformation Interface.
|
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.
|
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.