PlayaSimpleTransposedOpDecl.hpp

00001 /* @HEADER@ */
00002 //
00003  /* @HEADER@ */
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

doxygen