00001
00002
00003
00004
00005 #ifndef QPBOUNDLINSYS_H
00006 #define QPBOUNDLINSYS_H
00007
00008 #include "LinearSystem.h"
00009 #include "DoubleMatrixHandle.h"
00010 #include "OoqpVectorHandle.h"
00011 #include "OoqpVector.h"
00012
00013 class Data;
00014 class Variables;
00015 class Residuals;
00016 class DoubleLinearSolver;
00017 class QpBound;
00018
00026 class QpBoundLinsys : public LinearSystem
00027 {
00028 protected:
00029
00031 int nx;
00032
00034 DoubleMatrixHandle Mat;
00035
00036 DoubleLinearSolver * solver;
00037 QpBoundLinsys() {};
00038 QpBound * factory;
00039 OoqpVectorHandle index_lower;
00040 OoqpVectorHandle index_upper;
00041
00043 OoqpVectorHandle dq;
00044
00046 OoqpVectorHandle dd;
00047 public:
00048 QpBoundLinsys( QpBound * f, DoubleMatrix * Mat,
00049 DoubleLinearSolver * solver, OoqpVector * dq, int nx_,
00050 OoqpVector * index_lower, OoqpVector * index_upper );
00051 virtual ~QpBoundLinsys();
00052
00059 void factor(Data *prob, Variables *vars);
00060
00062 void solve(Data *prob, Variables *vars, Residuals *rhs,
00063 Variables *step);
00064
00065 };
00066
00067
00068 #endif