NonLinearEquation.h
00001 #ifndef NonLinearEquation_h
00002 #define NonLinearEquation_h
00003
00004 #include "NonLinearConstraint.h"
00005
00015 namespace OPTPP {
00016
00017
00018
00019 class NonLinearEquation: public NonLinearConstraint{
00020
00021 protected:
00023 NEWMAT::ColumnVector b_;
00025 NEWMAT::ColumnVector ctype_;
00026
00027 public:
00034 NonLinearEquation();
00041 NonLinearEquation(NLP* nlprob, int numconstraints = 1);
00049 NonLinearEquation(NLP* nlprob, const NEWMAT::ColumnVector& rhs,
00050 int numconstraints = 1);
00051
00055 virtual ~NonLinearEquation(){}
00056
00060 NEWMAT::ColumnVector getConstraintType() const { return ctype_;};
00061
00065 NEWMAT::ColumnVector getB() const { return b_;};
00066
00072 NEWMAT::ColumnVector evalResidual(const NEWMAT::ColumnVector& xc) const;
00073 void evalCFGH(const NEWMAT::ColumnVector& xc) const;
00074
00080 NEWMAT::Matrix evalGradient(const NEWMAT::ColumnVector& xc) const ;
00081
00087 NEWMAT::SymmetricMatrix evalHessian(NEWMAT::ColumnVector& xc) const;
00088
00095 OptppArray<NEWMAT::SymmetricMatrix> evalHessian(NEWMAT::ColumnVector& xc, int darg) const;
00096
00103 bool amIFeasible(const NEWMAT::ColumnVector& xc, double epsilon) const;
00104
00105 };
00106
00107 }
00108 #endif