PIPS-NLP
|
#include <PartitionAugSolver.h>
Public Member Functions | |
PartitionAugSolver () | |
PartitionAugSolver (DoubleMatrix *MatIn, int *var_Part_idx_in, int *con_Part_idx_in, const int localNegaEigVal_in, const int fullVarSize, const int fullConSize, const int nPart) | |
~PartitionAugSolver () | |
virtual int | matrixChanged () |
virtual void | solve (OoqpVector &rhs_) |
virtual void | solve (GenMatrix &rhs_in) |
![]() | |
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 void | initializeKKT_Dense () |
virtual int | _numericalFact () |
virtual void | finalizeKKT () |
virtual void | addTermToDenseSchurCompl () |
virtual void | addLnizi (OoqpVector &z0_, OoqpVector &zi_, const int block) |
virtual void | LDLtsolve_SC (OoqpVector *lastDiag_Rhs) |
virtual void | diagonalChanged (int idiag, int extent) |
virtual void | LniTransMult (SparseGenMatrix *borderMat, SimpleVector &y, double alpha, SimpleVector &x, const int block) |
Additional Inherited Members | |
![]() | |
int | negEigVal |
int | KryIter |
for each diagonal, after we remove all the 1st stage var Aug fullMat = H | A' | = r_p (1) A | 0 | r_d =
H1 | | H1p | A1' | | p_1 | H2 | H2p | | A2' | p_2 Hp1 | Hp2 | Hp | A1p' | A2p' | Ap' = p_p (1) A1 | | A1p | | | d_1 | A2 | A2p | | | d_2 | | Ap | | | d_p
Reorder it
H1 | A1' | | | H1p | p11 A1 | | | | A1p | d_1 | | H2 | A2' | H2p | = p_2 (1) | | A2 | | A2p | d_2 H1p' | A1p' | H2p' | A2p' | Hp | Ap' p_p | | | | Ap | d_p
can do SC on [ Hp | Ap' ] [ Ap | ]
|
inline |
PartitionAugSolver::PartitionAugSolver | ( | DoubleMatrix * | MatIn, |
int * | var_Part_idx_in, | ||
int * | con_Part_idx_in, | ||
const int | localNegaEigVal_in, | ||
const int | fullVarSize, | ||
const int | fullConSize, | ||
const int | nPart | ||
) |
|
inline |
|
protectedvirtual |
|
protectedvirtual |
z0 -= Border^T * Li\ [ zi ]
|
protectedvirtual |
Computes C = Border^T * inv(Diag_1) * Border.
|
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 |
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
memopt
|
inlinevirtual |
called if some elements of the matrix have changed. Triggers a refactorization of the matrix, if necessary.
Implements DoubleLinearSolver.
|
virtual |
solves a linear system.
x | on entry the right hand side of the system to be solved. On exit, the solution. |
Implements DoubleLinearSolver.
|
virtual |
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 |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |