PlayaSimpleTransposedOpDecl.hpp
00001
00002
00003
00004
00005 #ifndef PLAYA_SIMPLE_TRANSPOSED_OP_DECL_HPP
00006 #define PLAYA_SIMPLE_TRANSPOSED_OP_DECL_HPP
00007
00008
00009
00010 #include "PlayaDefs.hpp"
00011 #include "PlayaLinearOpWithSpacesDecl.hpp"
00012 #include "PlayaLinearOperatorDecl.hpp"
00013
00014
00015 namespace Playa
00016 {
00017 using namespace Teuchos;
00018
00019
00020
00021
00025 template <class Scalar>
00026 class SimpleTransposedOp : public LinearOpWithSpaces<Scalar>
00027 {
00028 public:
00030 SimpleTransposedOp(const LinearOperator<Scalar>& A);
00031
00033 void apply(Teuchos::ETransp transApplyType,
00034 const Vector<Scalar>& in,
00035 Vector<Scalar> out) const;
00036
00037
00039 std::string description() const ;
00040
00042 LinearOperator<Scalar> op() const {return A_;}
00043
00044 private:
00045 LinearOperator<Scalar> A_;
00046 };
00047
00048
00050 template <class Scalar>
00051 LinearOperator<Scalar> transposedOperator(
00052 const LinearOperator<Scalar>& op);
00053
00054 }
00055
00056 #endif