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

NlpIterate.hh

Go to the documentation of this file.
00001 #ifndef NLPVARIABLES
00002 #define NLPVARIABLES
00003 
00013 #include "IotrRefCount.hh"
00014 #include "IotrHandle.hh"
00015 #include "ElementGather.hh"
00016 
00017 #include <iostream>
00018 
00019 class IotrVector;
00020 class NlpBounds;
00021 class ElementGather;
00022 class NlpBounds;
00023 class NlpLinsysSol;
00024 class NlpResiduals;
00025 class NlpResidualShift;
00026 
00027 typedef Handle<IotrVector> IotrVectorHandle;
00028 typedef Handle<ElementGather> ElementGatherHandle;
00029 typedef Handle<NlpBounds> NlpBoundsHandle;
00030 
00037 class NlpIterate : public IotrRefCount {
00038 protected:
00041   IotrVectorHandle mX;
00042   IotrVectorHandle mY;
00043 
00044   IotrVectorHandle mLambda;
00045   IotrVectorHandle mPi;
00046   IotrVectorHandle mGamma;
00047   IotrVectorHandle mPhi;
00048 public:
00050   NlpIterate( NlpBounds & bounds );
00051   NlpIterate( IotrVector * x,
00052               IotrVector * gamma, IotrVector * phi,
00053               IotrVector * y,
00054               IotrVector * lambda, IotrVector * pi );
00055 
00058   virtual void axpy( double alpha, NlpLinsysSol & step );
00059 
00060   IotrVector & x() { return *mX;  }
00061   IotrVector & y() { return *mY; }
00062 
00063   IotrVector & lambda() { return *mLambda; }
00064   IotrVector & pi() { return *mPi; }
00065   IotrVector & gamma() { return *mGamma; }
00066   IotrVector & phi() { return *mPhi; }
00067 
00069   virtual void getX( IotrVector& x );
00071   virtual void startingPoint( NlpBounds& bounds );
00073   virtual void asMfile( std::ostream & out );
00074   virtual double dualStepbound( NlpLinsysSol &step, double maxstep );
00075   virtual void inspect();
00076   virtual void inspectAsMatlab();
00077   virtual void copyFrom( NlpIterate & v );
00078   virtual void setToConstant( double xVal, double yVal, double lamVal,
00079                               double piVal, double gamVal, double phiVal );
00080   virtual void setToIotrPi( NlpIterate & vnew, NlpResiduals & resids, 
00081                             NlpResidualShift & rshift );
00082 };
00083 
00084 typedef Handle<NlpIterate> NlpIterateHandle;
00085 
00086 #endif

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