00001 /* @HEADER@ */ 00002 // 00003 /* @HEADER@ */ 00004 00005 #ifndef PLAYA_SIMPLE_IDENTITY_OP_DECL_HPP 00006 #define PLAYA_SIMPLE_IDENTITY_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 00022 00023 /** */ 00024 template <class Scalar> 00025 class SimpleIdentityOp : public LinearOpWithSpaces<Scalar> 00026 { 00027 public: 00028 /** */ 00029 SimpleIdentityOp(const VectorSpace<Scalar>& space); 00030 00031 00032 /** */ 00033 void apply(Teuchos::ETransp transApplyType, 00034 const Vector<Scalar>& in, 00035 Vector<Scalar> out) const ; 00036 00037 /** */ 00038 std::string description() const ; 00039 }; 00040 00041 /** \relates SimpleIdentityOp */ 00042 template <class Scalar> 00043 LinearOperator<Scalar> identityOperator( 00044 const VectorSpace<Scalar>& space); 00045 00046 } 00047 00048 #endif