PIPS-NLP
|
#include <Ma27Solver.h>
Public Member Functions | |
Ma27SolverBase (int n, int nnz) | |
double | thresholdPivoting () |
void | setThresholdPivoting (double piv) |
double | treatAsZero () |
void | setTreatAsZero (double tol) |
virtual void | copyMatrixElements (double fact[], int lfact)=0 |
virtual void | getIndices (int irowM[], int jcolM[])=0 |
virtual void | diagonalChanged (int idiag, int extent) |
virtual int | matrixChanged () |
virtual void | basicSolve (double drhs[], int n) |
virtual void | solve (OoqpVector &rhs)=0 |
virtual | ~Ma27SolverBase () |
![]() | |
DoubleLinearSolver () | |
virtual void | solveTrans (OoqpVector &x) |
virtual void | solve (GenMatrix &rhs) |
virtual void | Lsolve (OoqpVector &x) |
virtual void | Dsolve (OoqpVector &x) |
virtual void | Ltsolve (OoqpVector &x) |
virtual | ~DoubleLinearSolver () |
Protected Member Functions | |
Ma27SolverBase () | |
int | ierror () |
int | minimumRealWorkspace () |
int | minimumIntWorkspace () |
int | ma27ErrFlg () |
virtual void | firstCall () |
Protected Attributes | |
int | icntl [30] |
int | info [20] |
double | cntl [5] |
double | precision |
int * | irowM |
int * | jcolM |
double * | fact |
int | n |
int | nnz |
int | la |
int * | ikeep |
int * | iw |
int | liw |
int * | iw1 |
int * | iw2 |
int | nsteps |
int | maxfrt |
double * | w |
double | ipessimism |
double | rpessimism |
Additional Inherited Members | |
![]() | |
int | negEigVal |
int | KryIter |
implements the linear solver class using the HSL MA27 solver
|
inlineprotected |
Ma27SolverBase::Ma27SolverBase | ( | int | n, |
int | nnz | ||
) |
base class constructor. Allocates values for kTreatAsZero, kThresholdPivoting, kThresholdPivotingMax, kThresholdPivotingFactor, kPrecision, ipessimism,rpessimism
|
virtual |
destructor
|
virtual |
version of the main solve routine that takes argument as an array of doubles
drhs | on input contains the right-hand side; on output contains the solution |
n | dimension of the system |
|
pure virtual |
copy elements from matrix into the fact data structure, in preparation for factorization (or refactorization).
Implemented in Ma27Solver.
|
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
|
pure virtual |
change format for row/column index matrices, in preparation for call to MA27 FORTRAN routines
irowM | array of nnz elements indicating row index (in range 1..n) of the corresponding matrix element |
jcolM | array of nnz elements indicating col index (in range 1..n) of the corresponding matrix element |
Implemented in Ma27Solver.
|
inlineprotected |
ierror, used by ma27 to send context-specific supplimental info to the user
|
inlineprotected |
|
virtual |
called if some elements of the matrix have changed. Triggers a refactorization of the matrix, if necessary.
Implements DoubleLinearSolver.
|
inlineprotected |
|
inlineprotected |
|
inline |
|
inline |
|
pure virtual |
version of the main solve routine that takes argument as an OoqpVector
drhs | on input contains the right-hand side; on output contains the solution |
n | dimension of the system |
Implements DoubleLinearSolver.
Implemented in Ma27Solver.
|
inline |
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.
|
inline |
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 |
nonzero element of the factors
|
protected |
|
protected |
pivot sequence and temporary storage information
|
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
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
length of the array containing factors; may be increased during the numerical factorization if the estimate obtained during the symbolic factorization proves to be inadequate.
|
protected |
|
protected |
|
protected |
dimension of the whole matrix
|
protected |
number of nonzeros in the matrix
|
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 |
|
protected |
temporary storage for the factorization