Main Page   Modules   Class Hierarchy   Compound List   File List   Compound Members   File Members   Related Pages  

NlpIotrMerit.hh

00001 #ifndef NLPIOTRMERIT
00002 #define NLPIOTRMERIT
00003 
00004 #include "IotrRefCount.hh"
00005 #include "IotrHandle.hh"
00006 #include "NlpLinsys.hh"
00007 
00008 class IotrVector;
00009 
00010 class NlpIterate;
00011 class NlpResiduals;
00012 class NlpIotrMerit;
00013 class NlpValues;
00014 class NlpGrads;
00015 class NlpHessian;
00016 class NlpBounds;
00017 class NlpLinsysSol;
00018 class NlpLinsysDiag;
00019 class NlpResidualShift;
00020 
00021 typedef Handle<NlpLinsysSol> NlpLinsysSolHandle;
00022 typedef Handle<NlpValues>  NlpValuesHandle;
00023 typedef Handle<NlpGrads>   NlpGradsHandle;
00024 typedef Handle<NlpHessian> NlpHessianHandle;
00025 typedef Handle<NlpLinsysDiag> NlpLinsysDiagHandle;
00026 typedef Handle<NlpLinsys>     NlpLinsysHandle;
00027 
00031 class NlpIotrMerit : public IotrRefCount {
00032 protected:
00033   NlpValuesHandle     mValues;
00034   NlpGradsHandle      mGrads;
00035   NlpHessianHandle    mHessian;
00036   NlpLinsysSolHandle  mDelMerit;
00037 public:
00038   NlpIotrMerit( NlpValues * values, NlpGrads * grads, NlpHessian * hess,
00039                 NlpLinsysSol * delMerit );
00040   virtual ~NlpIotrMerit();
00041   virtual double evalMerit( NlpIterate & vars,
00042                             NlpResiduals & resids, NlpBounds & bnds,
00043                             NlpResidualShift & rshift );
00044   virtual void updateDelMerit( NlpIterate & vars, NlpResiduals & resids,
00045                                NlpLinsysSol & rhs,
00046                                NlpBounds & bnds, NlpResidualShift & rshift );
00047   virtual double dotWithDelMerit( NlpLinsysSol & sol );
00048   virtual void   merit2kkt( NlpLinsysSol & sol, NlpLinsysDiag & diag,
00049                             NlpBounds & bounds  );
00050   virtual double symProdKMerit( NlpLinsysSol & sol, NlpIterate & vars,
00051                                 NlpResiduals & resids,
00052                                 NlpResidualShift & rshift,
00053                                 NlpLinsysDiag & diag,
00054                                 NlpBounds & bounds );
00055                                 
00056   virtual void inspect();
00057 };
00058 
00059 typedef Handle<NlpIotrMerit> NlpIotrMeritHandle;
00060 
00061 
00062 #endif

Generated on Wed Aug 27 10:03:41 2003 for iotr by doxygen1.2.18