ConicBundle
QPKKTSolverObject.hxx
Go to the documentation of this file.
1 
2 #ifndef CONICBUNDLE_QPKKTSOLVEROBJECT_HXX
3 #define CONICBUNDLE_QPKKTSOLVEROBJECT_HXX
4 
12 #include "QPSolverObject.hxx"
13 #include "QPModelBlockObject.hxx"
14 
15 namespace ConicBundle {
16 
17  class QPSolverParameters;
18 
22 
101 class QPKKTSolverObject: public virtual CBout
102 {
103 protected:
104 
105  //--- data describing the KKT system
110 
113 
114 public:
116  virtual void clear()
117  {Hp=0;model=0;A=0;eq_indices=0;blockH_norm=1.;blockA_norm=1.;}
118 
120  QPKKTSolverObject(CBout* cb=0,int cbinc=-1):
121  CBout(cb,cbinc),Hp(0),model(0),A(0),eq_indices(0),blockH_norm(1.),blockA_norm(1.)
122  {}
123 
125  virtual ~QPKKTSolverObject();
126 
127 
129  virtual int QPinit_KKTdata(QPSolverProxObject* Hp,
130  QPModelBlockObject* model,
132  const CH_Matrix_Classes::Indexmatrix* eq_indices
133  )=0;
134 
136  virtual int QPinit_KKTsystem(const CH_Matrix_Classes::Matrix& KKTdiagx,
137  const CH_Matrix_Classes::Matrix& KKTdiagy,
138  CH_Matrix_Classes::Real Hfactor,
140  QPSolverParameters* params) =0;
141 
145  const CH_Matrix_Classes::Matrix& primalrhs,
146  const CH_Matrix_Classes::Matrix& dualrhs,
148  CH_Matrix_Classes::Real rhscorr,
150  QPSolverParameters* params) =0;
151 
154  {return blockH_norm;}
155 
158  {return blockA_norm;}
159 
162  {return 0;}
163 
166  {return -1.;}
167 
170  {return -1;}
171 
174  {return 0;}
175 };
176 
177 
178 
179 
180 
182 
183 }
184 
185 #endif
186 
int Integer
all integer numbers in calculations and indexing are of this type
Definition: matop.hxx:40
parameters for steering the termination criteria and solution method of the solver ...
Definition: QPSolverParameters.hxx:26
virtual CH_Matrix_Classes::Real QPget_condition_number()
for evaluation purposes with iterative solvers, return an estimate of the condition number (returns -...
Definition: QPKKTSolverObject.hxx:165
double Real
all real numbers in calculations are of this type
Definition: matop.hxx:50
virtual ~QPKKTSolverObject()
virtual destructor
CH_Matrix_Classes::Real blockH_norm
for judging violation: (an estimate of) the norm of the H-row in the system
Definition: QPKKTSolverObject.hxx:111
QPModelBlockObject * model
points to the cutting model information, may be NULL
Definition: QPKKTSolverObject.hxx:107
Matrix class for integral values of type Integer
Definition: indexmat.hxx:195
Header declaring the abstract class ConicBundle::QPSolverObject.
virtual CH_Matrix_Classes::Real QPget_blockH_norm()
for judging violation this returns (an estimate of) the norm of the H-row in the latest system ...
Definition: QPKKTSolverObject.hxx:153
QPKKTSolverObject(CBout *cb=0, int cbinc=-1)
default constructor
Definition: QPKKTSolverObject.hxx:120
virtual void clear()
reset data to empty
Definition: QPKKTSolverObject.hxx:116
virtual int QPinit_KKTdata(QPSolverProxObject *Hp, QPModelBlockObject *model, const CH_Matrix_Classes::Sparsemat *A, const CH_Matrix_Classes::Indexmatrix *eq_indices)=0
returns 1 if this class is not applicable in the current data situation, otherwise it stores the data...
conic bundle method solver for sum of convex functions. See the ConicBundle_Manual for a quick introd...
Definition: CBSolver.hxx:22
base class for uniform use of WARNINGS and ERRORS (at some point in time)
Definition: CBout.hxx:30
virtual CH_Matrix_Classes::Integer QPget_system_size()
for evaluation purposes with iterative solvers, return the size of the system matrix ...
Definition: QPKKTSolverObject.hxx:173
virtual CH_Matrix_Classes::Integer QPget_precond_rank()
for evaluation purposes with iterative solvers, return the rank of the precondiontioner used (or the ...
Definition: QPKKTSolverObject.hxx:169
Header declaring the classes ConicBundle::QPModelBlockObject.
virtual CH_Matrix_Classes::Integer QPget_nmult() const
for evaluation purposes with iterative solvers, return the number of matrix vector multiplications si...
Definition: QPKKTSolverObject.hxx:161
virtual int QPsolve_KKTsystem(CH_Matrix_Classes::Matrix &solx, CH_Matrix_Classes::Matrix &soly, const CH_Matrix_Classes::Matrix &primalrhs, const CH_Matrix_Classes::Matrix &dualrhs, CH_Matrix_Classes::Real rhsmu, CH_Matrix_Classes::Real rhscorr, CH_Matrix_Classes::Real prec, QPSolverParameters *params)=0
solve the KKTsystem to precision prec for the given right hand sides that have been computed for the ...
Matrix class for real values of type Real
Definition: matrix.hxx:74
Matrix class of sparse matrices with real values of type Real
Definition: sparsmat.hxx:74
const CH_Matrix_Classes::Indexmatrix * eq_indices
if not NULL, these rows of A correspond to equations; needed for checking applicability of this Objec...
Definition: QPKKTSolverObject.hxx:109
virtual int QPinit_KKTsystem(const CH_Matrix_Classes::Matrix &KKTdiagx, const CH_Matrix_Classes::Matrix &KKTdiagy, CH_Matrix_Classes::Real Hfactor, CH_Matrix_Classes::Real prec, QPSolverParameters *params)=0
set up the primal dual KKT system for being solved for predictor and corrector rhs in QPsolve_KKTsyst...
abstract interface for model blocks in the constrained QPSolver
Definition: QPModelBlockObject.hxx:89
virtual CH_Matrix_Classes::Real QPget_blockA_norm()
for judging violation this returns (an estimate of) the norm of the A-row in the latest system ...
Definition: QPKKTSolverObject.hxx:157
QPSolverProxObject * Hp
points to the quadratic cost representation, may NOT be NULL afer init
Definition: QPKKTSolverObject.hxx:106
CH_Matrix_Classes::Real blockA_norm
for judging violation: (an estimate of) the norm of the A-row in the system
Definition: QPKKTSolverObject.hxx:112
abstract class for setting up and solving the primal dual KKT System within QPSolverBasicStructures ...
Definition: QPKKTSolverObject.hxx:101
const CH_Matrix_Classes::Sparsemat * A
points to a possibly present constraint matrix, may be NULL
Definition: QPKKTSolverObject.hxx:108
in order to pass a ConicBundle::BundleProxObject, see Quadratic Proximal Terms, to a custzomized QPSo...
Definition: QPSolverObject.hxx:55