LinearInequality.h
00001 #ifndef LinearInequality_h
00002 #define LinearInequality_h
00003
00004 #ifndef LinearConstraint_h
00005 #include "LinearConstraint.h"
00006 #endif
00007
00017 namespace OPTPP {
00018
00019 class LinearInequality: public LinearConstraint {
00020 protected:
00022 NEWMAT::ColumnVector ctype_;
00023
00024 public:
00028 LinearInequality();
00029
00038 LinearInequality(const NEWMAT::Matrix& A, const NEWMAT::ColumnVector& rhs);
00047 LinearInequality(const NEWMAT::Matrix& A, const NEWMAT::ColumnVector& rhs,
00048 const bool rowFlag);
00057 LinearInequality(const NEWMAT::Matrix& A, const NEWMAT::ColumnVector& lower,
00058 const NEWMAT::ColumnVector& upper);
00059
00063 virtual ~LinearInequality(){}
00064
00068 bool getStdForm() const {return stdForm_;}
00069
00073 virtual NEWMAT::ColumnVector getConstraintType() const {return ctype_;}
00074
00080 virtual NEWMAT::ColumnVector evalAx(const NEWMAT::ColumnVector& xc) const;
00081
00088 virtual NEWMAT::ColumnVector evalResidual(const NEWMAT::ColumnVector& xc) const;
00089 virtual void evalCFGH(const NEWMAT::ColumnVector& xc) const;
00090
00097 virtual NEWMAT::Matrix evalGradient(const NEWMAT::ColumnVector& xc) const;
00098
00105 virtual bool amIFeasible(const NEWMAT::ColumnVector& xc, double epsilon) const;
00106 };
00107
00108 }
00109 #endif
00110