00001 /* OOQP * 00002 * Authors: E. Michael Gertz, Stephen J. Wright * 00003 * (C) 2001 University of Chicago. See Copyright Notification in OOQP */ 00004 00005 #ifndef QPGENDELINSYS 00006 #define QPGENDELINSYS 00007 00008 #include "QpGenLinsys.h" 00009 00010 class QpGen; 00011 class QpGenData; 00012 class LinearAlgebraPackage; 00013 #include "DenseSymMatrixHandle.h" 00014 class DoubleLinearSolver; 00015 #include "OoqpVectorHandle.h" 00016 00017 00025 class QpGenDenseLinsys : public QpGenLinsys { 00026 protected: 00027 DenseSymMatrixHandle kkt; 00028 DoubleLinearSolver * solver; 00029 public: 00030 QpGenDenseLinsys( QpGen * factory, 00031 QpGenData * data, 00032 LinearAlgebraPackage * la, DenseSymMatrix * Mat, 00033 DoubleLinearSolver * solver ); 00034 00041 virtual void solveCompressed( OoqpVector& rhs ); 00042 00043 virtual void putXDiagonal( OoqpVector& xdiag ); 00044 virtual void putZDiagonal( OoqpVector& zdiag ); 00045 00051 virtual void factor(Data *prob, Variables *vars); 00052 00053 virtual ~QpGenDenseLinsys(); 00054 }; 00055 00056 #endif 00057 00058 00059 00060 00061 00062 00063 00064 00065 00066