Tpetra parallel linear algebra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
List of all members
Tpetra::RTI::BinaryOp< S, LO, GO, Node, Op > Class Template Reference

Tpetra::Operator wrapping a binary functor using the Tpetra Reduction/Transformation Interface. More...

#include <Tpetra_RTIOp.hpp>

Inheritance diagram for Tpetra::RTI::BinaryOp< S, LO, GO, Node, Op >:
Inheritance graph
[legend]

Public Types

Typedefs that give access to the template parameters.
typedef S scalar_type
 The type of the entries of the input and output multivectors. More...
 
typedef LO local_ordinal_type
 The local index type. More...
 
typedef GO global_ordinal_type
 The global index type. More...
 
typedef Node node_type
 The Kokkos Node type. More...
 

Public Member Functions

Pure virtual functions to be overridden by subclasses.
virtual bool hasTransposeApply () const
 Whether this operator supports applying the transpose or conjugate transpose. More...
 

Detailed Description

template<class S, class LO, class GO, class Node, class Op>
class Tpetra::RTI::BinaryOp< S, LO, GO, Node, Op >

Tpetra::Operator wrapping a binary functor using the Tpetra Reduction/Transformation Interface.

Definition at line 172 of file Tpetra_RTIOp.hpp.

Member Typedef Documentation

typedef S Tpetra::Operator< S , LO , GO , Node >::scalar_type
inherited

The type of the entries of the input and output multivectors.

Definition at line 92 of file Tpetra_Operator.hpp.

typedef LO Tpetra::Operator< S , LO , GO , Node >::local_ordinal_type
inherited

The local index type.

Definition at line 95 of file Tpetra_Operator.hpp.

typedef GO Tpetra::Operator< S , LO , GO , Node >::global_ordinal_type
inherited

The global index type.

Definition at line 98 of file Tpetra_Operator.hpp.

typedef Node Tpetra::Operator< S , LO , GO , Node >::node_type
inherited

The Kokkos Node type.

Definition at line 101 of file Tpetra_Operator.hpp.

Member Function Documentation

RCP<const Map<LO,GO,Node> > Tpetra::RTI::KernelOp< S, LO, GO, Node, Tpetra::RTI::detail::BinaryFunctorAdapterWithAlphaBeta< Op, S > >::getDomainMap ( ) const
inlinevirtualinherited

The Map associated with the domain of this operator, which must be compatible with X.getMap().

Implements Tpetra::Operator< S, LO, GO, Node >.

Definition at line 103 of file Tpetra_RTIOp.hpp.

RCP<const Map<LO,GO,Node> > Tpetra::RTI::KernelOp< S, LO, GO, Node, Tpetra::RTI::detail::BinaryFunctorAdapterWithAlphaBeta< Op, S > >::getRangeMap ( ) const
inlinevirtualinherited

The Map associated with the range of this operator, which must be compatible with Y.getMap().

Implements Tpetra::Operator< S, LO, GO, Node >.

Definition at line 104 of file Tpetra_RTIOp.hpp.

void Tpetra::RTI::KernelOp< S, LO, GO, Node, Tpetra::RTI::detail::BinaryFunctorAdapterWithAlphaBeta< Op, S > >::apply ( const MultiVector< S, LO, GO, Node > &  X,
MultiVector< S, LO, GO, Node > &  Y,
Teuchos::ETransp  mode = Teuchos::NO_TRANS,
alpha = Teuchos::ScalarTraits<S>::one (),
beta = Teuchos::ScalarTraits<S>::zero () 
) const
inlinevirtualinherited

Computes the operator-multivector application.

Loosely, performs $Y = \alpha \cdot A^{\textrm{mode}} \cdot X + \beta \cdot Y$. However, the details of operation vary according to the values of alpha and beta. Specifically

  • if beta == 0, apply() must overwrite Y, so that any values in Y (including NaNs) are ignored.
  • if alpha == 0, apply() may short-circuit the operator, so that any values in X (including NaNs) are ignored.

Implements Tpetra::Operator< S, LO, GO, Node >.

Definition at line 107 of file Tpetra_RTIOp.hpp.

virtual bool Tpetra::Operator< S , LO , GO , Node >::hasTransposeApply ( ) const
virtualinherited

Whether this operator supports applying the transpose or conjugate transpose.

By default, this returns false. Subclasses must override this method if they can support apply() with mode=Teuchos::TRANS or mode=Teuchos::CONJ_TRANS.


The documentation for this class was generated from the following file: