|
PIPS-NLP
|
#include <SaddlePointSolver.h>
Public Member Functions | |
| virtual int | matrixChanged () |
| SaddlePointSolver () | |
| SaddlePointSolver (DoubleMatrix *MatIn, const int localXSize, const int localYSize, const int localZSize) | |
| ~SaddlePointSolver () | |
Public Member Functions inherited from DoubleLinearSolver | |
| DoubleLinearSolver () | |
| virtual void | solveTrans (OoqpVector &x) |
| virtual void | Lsolve (OoqpVector &x) |
| virtual void | Dsolve (OoqpVector &x) |
| virtual void | Ltsolve (OoqpVector &x) |
| virtual | ~DoubleLinearSolver () |
Protected Member Functions | |
| virtual void | firstCall () |
| virtual int | _numericalFact () |
| virtual void | diagonalChanged (int idiag, int extent) |
| virtual void | solve (OoqpVector &rhs_) |
| virtual void | solve (GenMatrix &rhs_in) |
Protected Attributes | |
| DoubleLinearSolver * | Ax_solver |
| int | firstCallFlag |
| int | firstSCsolve |
| int | Hxx_Dim |
| int | Hss_Dim |
| int | Ax_Dim_m |
| int | Tx_Dim_m |
| int | fullMatDim |
| int | Hxx_NNz |
| int | Hss_NNz |
| int | Ax_NNz |
| int | Tx_NNz |
| int | fullMatNNz |
| double * | Hxx_ele |
| double * | Hss_ele |
| double * | Ax_ele |
| double * | Tx_ele |
| int * | Hxx_rowBeg |
| int * | Hss_rowBeg |
| int * | Ax_rowBeg |
| int * | Tx_rowBeg |
| int * | Hxx_colIdx |
| int * | Hss_colIdx |
| int * | Ax_colIdx |
| int * | Tx_colIdx |
| int * | Hxx_Full_eleMap |
| int * | Hss_Full_eleMap |
| int * | Ax_Full_eleMap |
| int * | Tx_Full_eleMap |
| int | locnx |
| int | locns |
| int | locmy |
| SparseSymMatrix * | Hxx_Mat |
| SparseSymMatrix * | Hss_Mat |
| SparseGenMatrix * | Ax_Mat |
| SparseGenMatrix * | Tx_Mat |
| SparseSymMatrix * | Msys |
Private Member Functions | |
| void | SaddlePointJacSolve (OoqpVector *rhs_y_, OoqpVector *rhs_z_) |
| void | SaddlePointJacTransSolve (OoqpVector *rhs_x_, OoqpVector *rhs_s_) |
Additional Inherited Members | |
Public Attributes inherited from DoubleLinearSolver | |
| int | negEigVal |
| int | KryIter |
u is the decision matrix, x is the others (state var) in this solver, we assume Ax and Ax' are invertible.
all the u var have been removed.
fullMat = Hxx | | Ax' | Tx' | r_x | Hss | | -I | = r_s (1) Ax | |(reg_d) | | r_y Tx | -I | |(reg_d) | r_z
reg_d is diagonal and ==0, we do not need it.
let C = ( Ax ) , Hc = ( Hxx 0 ) (*) ( Tx -I ) ( 0 Hss )
(1)can be rewrited as Hc | C' | = r_p (2) C | | r_d
the invert mat of C is ^{-1} = ( Ax^{-1} ) ( TxAx^{-1} -I )
similar to the schur complement method, we solve the problem fullMat*(x,s,y,z)=r by the following sequence: (a) compute = C^{-1} (r_d)
(b) compute = C^{-T} ( r_p - Hc*delta_p)
note that input matrix fullMat is symmetric, and in a row-wise, lower-triangular form
| SaddlePointSolver::SaddlePointSolver | ( | ) |
| SaddlePointSolver::SaddlePointSolver | ( | DoubleMatrix * | MatIn, |
| const int | localXSize, | ||
| const int | localYSize, | ||
| const int | localZSize | ||
| ) |
|
inline |
|
protectedvirtual |
|
inlineprotectedvirtual |
called if the diagonal elements of the matrix have changed. Triggers a refactorization of the matrix, if necessary.
| idiag | index of the first diagonal element that changed |
| extent | the number of diagonal element that changed. |
Implements DoubleLinearSolver.
|
protectedvirtual |
|
inlinevirtual |
called if some elements of the matrix have changed. Triggers a refactorization of the matrix, if necessary.
Implements DoubleLinearSolver.
|
private |
|
private |
|
protectedvirtual |
solves a linear system.
| x | on entry the right hand side of the system to be solved. On exit, the solution. |
Implements DoubleLinearSolver.
|
protectedvirtual |
Reimplemented from DoubleLinearSolver.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
1.8.11