Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

QpBoundVars.h

00001 /* OOQP                                                               *
00002  * Authors: E. Michael Gertz, Stephen J. Wright                       *
00003  * (C) 2001 University of Chicago. See Copyright Notification in OOQP */
00004 
00005 #ifndef QPBOUNDVARS_H
00006 #define QPBOUNDVARS_H
00007 
00008 #include "Variables.h"
00009 #include "OoqpVectorHandle.h"
00010 
00011 class QpBound;
00012 class QpBoundData;
00013 
00020 class QpBoundVars : public Variables
00021 {
00022 public:
00023   QpBound * factory;
00024 
00026   OoqpVectorHandle x;
00027 
00029   OoqpVectorHandle t;
00030 
00032   OoqpVectorHandle v;
00033 
00035   OoqpVectorHandle tau;
00036 
00038   OoqpVectorHandle   nu; 
00039   
00041   OoqpVectorHandle index_lower;
00042 
00044   OoqpVectorHandle index_upper;
00045 
00047   int nx;
00048 
00050   int nlower;
00051 
00053   int nupper;
00054 
00056   QpBoundVars( QpBound * f, QpBoundData *prob );
00057 
00059   QpBoundVars( QpBound * f, QpBoundData *prob,
00060                OoqpVector * x, 
00061                OoqpVector * t,    OoqpVector * v, 
00062                OoqpVector * tau,  OoqpVector * nu );
00063   virtual ~QpBoundVars();
00064 
00066   virtual double mu();
00067 
00068 
00069   virtual double mustep(Variables *step, double alpha);
00070 
00072   virtual void saxpy( Variables *b, double alpha);
00073 
00074   virtual void negate();
00075 
00098   virtual double findBlocking( Variables * step, 
00099                                double & primalValue,
00100                                double & primalStep,
00101                                double & dualValue,
00102                                double & dualStep,
00103                                int& firstOrSecond );
00104   
00112   virtual double stepbound( Variables *b);
00113 
00115   virtual void interiorPoint( double alpha, double beta );
00116 
00119   virtual void shiftBoundVariables( double alpha, double beta );
00120 
00121   virtual double violation();
00122 
00123 
00124   virtual void print();
00125 
00126   virtual void copy(Variables *b);
00127   virtual double onenorm();
00128   virtual double infnorm();
00129 };
00130 
00137 enum { no_block = 0,
00138        t_block = 1,
00139        tau_block = 2,
00140        v_block = 3,
00141        nu_block = 4
00142 };  
00143 
00144 #endif

Generated on Mon May 24 17:40:46 2004 for OOQP by doxygen1.2.18