00001 /* OOQP * 00002 * Authors: E. Michael Gertz, Stephen J. Wright * 00003 * (C) 2001 University of Chicago. See Copyright Notification in OOQP */ 00004 00005 #ifndef QPGENSPARSELINSYS 00006 #define QPGENSPARSELINSYS 00007 00008 #include "QpGenLinsys.h" 00009 #include "SparseSymMatrixHandle.h" 00010 00011 class DoubleLinearSolver; 00012 00019 class QpGenSparseLinsys : public QpGenLinsys { 00020 protected: 00021 SparseSymMatrixHandle Mat; 00022 DoubleLinearSolver * solver; 00023 public: 00024 QpGenSparseLinsys( QpGen * factory, 00025 QpGenData * data, 00026 LinearAlgebraPackage * la, SparseSymMatrix * Mat, 00027 DoubleLinearSolver * solver ); 00028 00035 virtual void solveCompressed( OoqpVector& rhs ); 00036 00037 virtual void putXDiagonal( OoqpVector& xdiag ); 00038 virtual void putZDiagonal( OoqpVector& zdiag ); 00039 00045 virtual void factor(Data *prob, Variables *vars); 00046 00047 virtual ~QpGenSparseLinsys(); 00048 }; 00049 #endif