00001 #ifndef GENSQP_VECTOR_H
00002 #define GENSQP_VECTOR_H
00003
00004 #include "Teuchos_RefCountPtr.hpp"
00005
00017 namespace GenSQP {
00018
00019 class Vector {
00020 public:
00021
00022 virtual ~Vector() {}
00023
00026 virtual double innerProd( const Vector &x ) const = 0;
00027
00030 virtual void linComb( const double &alpha, const Vector &x, const double &beta = 1.0 ) = 0;
00031
00034 virtual void Scale( const double &alpha ) = 0;
00035
00038 virtual void Set( const double &alpha ) = 0;
00039
00042 virtual void Set( const double &alpha, const Vector &x ) = 0;
00043
00046 virtual Teuchos::RefCountPtr<Vector> createVector() const = 0;
00047
00048 };
00049
00050 }
00051
00052 #endif