Belos Package Browser (Single Doxygen Collection) Development
Loading...
Searching...
No Matches
Belos::OperatorTraits< ScalarType, MultiVec< ScalarType >, Operator< ScalarType > > Class Template Reference

Specialization of OperatorTraits for Operator and MultiVec. More...

#include <BelosOperator.hpp>

Inheritance diagram for Belos::OperatorTraits< ScalarType, MultiVec< ScalarType >, Operator< ScalarType > >:

Static Public Member Functions

static void Apply (const Operator< ScalarType > &Op, const MultiVec< ScalarType > &x, MultiVec< ScalarType > &y, ETrans trans=NOTRANS)
 Specialization of Apply() for Operator and MultiVec objects.
 
static bool HasApplyTranspose (const Operator< ScalarType > &Op)
 Specialization of HasApplyTranspose() for Operator objects.
 
static void Apply (const Operator< ScalarType > &Op, const MultiVec< ScalarType > &x, MultiVec< ScalarType > &y, ETrans trans=NOTRANS)
 Apply Op to x, putting the result into y.
 
static bool HasApplyTranspose (const Operator< ScalarType > &Op)
 Whether this operator implements applying the transpose.
 

Detailed Description

template<class ScalarType>
class Belos::OperatorTraits< ScalarType, MultiVec< ScalarType >, Operator< ScalarType > >

Specialization of OperatorTraits for Operator and MultiVec.

This is a partial template specialization of Belos::OperatorTraits class using the Belos::Operator and Belos::MultiVec abstract interfaces. Any class that inherits from Belos::Operator will be accepted by the Belos templated solvers, due to this specialization of Belos::OperatorTraits.

Definition at line 162 of file BelosOperator.hpp.

Member Function Documentation

◆ Apply() [1/2]

template<class ScalarType>
static void Belos::OperatorTraits< ScalarType, MultiVec< ScalarType >, Operator< ScalarType > >::Apply ( const Operator< ScalarType > & Op,
const MultiVec< ScalarType > & x,
MultiVec< ScalarType > & y,
ETrans trans = NOTRANS )
inlinestatic

Specialization of Apply() for Operator and MultiVec objects.

Definition at line 167 of file BelosOperator.hpp.

◆ HasApplyTranspose() [1/2]

template<class ScalarType>
static bool Belos::OperatorTraits< ScalarType, MultiVec< ScalarType >, Operator< ScalarType > >::HasApplyTranspose ( const Operator< ScalarType > & Op)
inlinestatic

Specialization of HasApplyTranspose() for Operator objects.

Definition at line 177 of file BelosOperator.hpp.

◆ Apply() [2/2]

static void Belos::OperatorTraits< ScalarType, MultiVec< ScalarType >, Operator< ScalarType > >::Apply ( const Operator< ScalarType > & Op,
const MultiVec< ScalarType > & x,
MultiVec< ScalarType > & y,
ETrans trans = NOTRANS )
inlinestatic

Apply Op to x, putting the result into y.

If Op, x, and y are real-valued, then applying the conjugate transpose (trans = CONJTRANS) means the same thing as applying the transpose (trans = TRANS).

If Op does not support applying the transpose and you use trans != NOTRANS, or if there is some other error in applying the operator, this method throws a subclass of std::exception.

Definition at line 123 of file BelosOperatorTraits.hpp.

◆ HasApplyTranspose() [2/2]

static bool Belos::OperatorTraits< ScalarType, MultiVec< ScalarType >, Operator< ScalarType > >::HasApplyTranspose ( const Operator< ScalarType > & Op)
inlinestatic

Whether this operator implements applying the transpose.

The instance of OP which is the first argument of Apply() is not required to support applying the transpose (or Hermitian transpose, if applicable). If it does support applying the transpose, this method should return true. Otherwise, it should return false.

If the operator is complex, "can apply its transpose" means that it can apply both its transpose and its Hermitian transpose.

We provide a default implementation of this method that conservatively returns false. If you want the specialization of OperatorTraits for OP to advertise that operators of type OP may implement applying the transpose, override the default implementation in the specialization.

Definition at line 151 of file BelosOperatorTraits.hpp.


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