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

QpBoundData.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 QPBOUNDDATA_H
00006 #define QPBOUNDDATA_H
00007 
00008 #include "Data.h"
00009 
00010 #include "DoubleMatrixHandle.h"
00011 #include "OoqpVectorHandle.h"
00012 #include "OoqpVector.h"
00013 
00014 
00015 class QpBound;
00016 class MpsReader;
00017 
00024 class QpBoundData : public Data 
00025 {
00026 
00027 private:
00028   QpBoundData() {};
00029 protected:
00030   QpBound * factory;
00031 
00033   int nx;
00034 
00036   int nlower;
00037 
00039   int nupper;
00040 
00042   SymMatrixHandle mQ;
00043 
00045   double alpha;
00046 
00048   OoqpVectorHandle c; 
00049 
00051   OoqpVectorHandle lower;
00052 
00054   OoqpVectorHandle upper;
00055 
00058   OoqpVectorHandle index_lower;
00059 
00062   OoqpVectorHandle index_upper;
00063 
00064 public:
00065 
00066   QpBoundData( QpBound * f, SymMatrix * Q, int n_in );
00067 
00072   QpBoundData( QpBound * f, double alpha,
00073                OoqpVector * g, SymMatrix * Q,
00074                OoqpVector * l, OoqpVector * index_lower_,
00075                OoqpVector * u, OoqpVector * index_upper_ );
00076   virtual ~QpBoundData();
00077 
00078   
00080   virtual double objectiveValue( Variables * vars );
00081 
00085   virtual void putQIntoAt( SymMatrix& M, int row, int col );
00086 
00090   virtual void putQIntoAt( GenMatrix& M, int row, int col );
00091 
00094   virtual void Qmult( double beta,  OoqpVector& y,
00095                       double alpha, OoqpVector& x );
00096 
00098   virtual int getN();
00099 
00101   virtual int getNlower();
00102 
00104   virtual int getNupper();
00105 
00107   virtual void getg ( OoqpVector& c );
00108 
00110   virtual void getl ( OoqpVector& l );
00111 
00113   virtual void getu ( OoqpVector& u );
00114 
00115   virtual double datanorm();
00116 
00117   virtual void datainput() { };
00118 
00120   virtual void datainput(MpsReader * reader, int& ierr );
00121 
00123   virtual void datarandom();
00124 
00126   virtual void print();
00127 
00129   OoqpVector * getIndexLower() { return SpAsPointer(index_lower); };
00130 
00132   OoqpVector * getIndexUpper() { return SpAsPointer(index_upper); };
00133 
00134 };
00135 
00136 #endif

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