NonLinearInequality.h
00001 #ifndef NonLinearInequality_h
00002 #define NonLinearInequality_h
00003
00004 #include "NonLinearConstraint.h"
00005
00015 namespace OPTPP {
00016
00017 class NonLinearInequality: public NonLinearConstraint{
00018 protected:
00020 NEWMAT::ColumnVector ctype_;
00022 const bool oneSided_;
00023
00024 public:
00028 NonLinearInequality();
00034 NonLinearInequality(NLP* nlprob, int numconstraints = 1);
00041 NonLinearInequality(NLP* nlprob, const NEWMAT::ColumnVector& rhs,
00042 int numconstraints = 1);
00049 NonLinearInequality(NLP* nlprob, const bool flag, int numconstraints = 1);
00050
00058 NonLinearInequality(NLP* nlprob, const NEWMAT::ColumnVector& rhs, const bool flag,
00059 int numconstraints = 1);
00066 NonLinearInequality(NLP* nlprob, const NEWMAT::ColumnVector& lower,
00067 const NEWMAT::ColumnVector& upper, int numconstraints = 1);
00068
00072 virtual ~NonLinearInequality(){}
00073
00077 NEWMAT::ColumnVector getConstraintType() const {return ctype_;}
00078
00084 NEWMAT::ColumnVector evalResidual(const NEWMAT::ColumnVector & xc) const;
00085 void evalCFGH(const NEWMAT::ColumnVector & xc) const;
00086
00092 NEWMAT::Matrix evalGradient(const NEWMAT::ColumnVector& xc) const;
00093
00099 NEWMAT::SymmetricMatrix evalHessian(NEWMAT::ColumnVector& xc) const;
00100
00107 OptppArray<NEWMAT::SymmetricMatrix> evalHessian(NEWMAT::ColumnVector& xc, int darg)const;
00108
00115 bool amIFeasible(const NEWMAT::ColumnVector& xc, double epsilon) const;
00116
00117 };
00118
00119 }
00120 #endif
00121