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 } // namespace OPTPP
00120 #endif
00121 
Generated on Mon Jan 24 12:04:37 2011 for FASTlib by  doxygen 1.6.3