PIPS-NLP
|
#include <Ma57Solver.h>
Public Member Functions | |
Ma57Solver (SparseSymMatrix *sgm, const int numOfNegEigVal_in=-1) | |
virtual | ~Ma57Solver () |
virtual void | diagonalChanged (int idiag, int extent) |
virtual int | matrixChanged () |
virtual void | solve (OoqpVector &rhs) |
virtual void | solve (GenMatrix &rhs) |
void | setValTreatAsZero (const double tolTreatAsZero) |
void | setPivotTol (const double tolPivot) |
![]() | |
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 () |
Protected Attributes | |
int | icntl [20] |
int | info [40] |
double | cntl [5] |
double | rinfo [20] |
double | kThresholdPivoting |
double | kTreatAsZero |
double | kPrecision |
int * | irowM |
int * | jcolM |
double * | M |
int | n |
int | nnz |
int | lkeep |
int * | keep |
int | lifact |
int * | ifact |
int | lfact |
double * | fact |
double | ipessimism |
double | rpessimism |
SparseStorageHandle | mStorage |
Private Member Functions | |
Ma57Solver () | |
void | SetUpMa57Solver (SparseSymMatrix *sgm) |
void | solve (int solveType, OoqpVector &rhs) |
int * | new_iworkn (int dim) |
double * | new_dworkn (int dim) |
Private Attributes | |
int * | iworkn |
int | niworkn |
double * | dworkn |
int | ndworkn |
Additional Inherited Members | |
![]() | |
int | negEigVal |
int | KryIter |
implements the linear solver class using the HSL MA57 solver
|
inlineprivate |
Ma57Solver::Ma57Solver | ( | SparseSymMatrix * | sgm, |
const int | numOfNegEigVal_in = -1 |
||
) |
|
virtual |
|
virtual |
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 |
called the very first time a matrix is factored. Allocates space for the factorization and performs ordering
|
virtual |
called if some elements of the matrix have changed. Triggers a refactorization of the matrix, if necessary.
Implements DoubleLinearSolver.
|
private |
|
private |
|
inline |
if pivot tolerence in MA57
|
private |
|
inline |
if pivot < this val, treat it as Zero in MA57
|
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.
|
private |
SimpleVectorHandle work( new SimpleVector(n) );
|
protected |
|
private |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
amounts by which to increase allocated factorization space when inadequate space is detected. ipessimism is for array "iw", rpessimism is for the array "fact".
|
protected |
index array for the factorization
|
private |
|
protected |
|
protected |
|
protected |
precision we demand from the linear system solver. If it isn't attained on the first solve, we use iterative refinement and possibly refactorization with a higher value of kThresholdPivoting.
|
protected |
the Threshold Pivoting parameter, stored as U in the ma27dd common block. Takes values in the range [0,1]. Larger values enforce greater stability in the factorization as they insist on larger pivots. Smaller values preserve sparsity at the cost of using smaller pivots.
|
protected |
the "Treat As Zero" parameter, stored as pivtol in the common block ma27td. The factorization will not accept a pivot whose absolute value is less than this parameter as a 1x1 pivot or as the off-diagonal in a 2x2 pivot.
|
protected |
|
protected |
temporary storage for the factorization process
|
protected |
temporary storage
|
protected |
storage for the original matrix
|
protected |
store as a sparse symmetric matrix
|
protected |
dimension of the whole matrix
|
private |
|
private |
|
protected |
number of nonzeros in the matrix
|
protected |
|
protected |