Go to the documentation of this file.
11 #ifndef __IPMA97SOLVERINTERFACE_HPP__
12 #define __IPMA97SOLVERINTERFACE_HPP__
93 const std::string& prefix
117 Index numberOfNegEVals
161 const std::string& name
double * val_
Storage for variables.
ESymSolverStatus
Enum to report outcome of a linear solve.
EMatrixFormat
Enum to specify sparse matrix format.
ESymSolverStatus InitializeStructure(Index dim, Index nonzeros, const Index *ia, const Index *ja)
Method for initializing internal structures.
EMatrixFormat MatrixFormat() const
Query of requested matrix type that the linear solver understands.
bool ProvidesInertia() const
Query whether inertia is computed by linear solver.
This file contains a base class for all exceptions and a set of macros to help with exceptions.
ESymSolverStatus MultiSolve(bool new_matrix, const Index *ia, const Index *ja, Index nrhs, double *rhs_vals, bool check_NegEVals, Index numberOfNegEVals)
Solve operation for multiple right hand sides.
double * GetValuesArrayPtr()
Method returning an internal array into which the nonzero elements (in the same order as ja) will be ...
void * akeep_
Stores pointer to factors (only understood Fortran code!)
@ CSR_Format_1_Offset
Compressed sparse row format for lower triangular part, with 1 offset.
Base class for interfaces to symmetric indefinite linear solvers for sparse matrices.
double * scaling_
Store scaling for reuse if doing dynamic scaling.
int Index
Type of all indices of vectors, matrices etc.
bool rescale_
Indicates if we should rescale next factorization.
int numneg_
Number of negative pivots in last factorization.
Template class for Smart Pointers.
bool ProvidesDegeneracyDetection() const
Query whether the indices of linearly dependent rows/columns can be determined by this linear solver.
bool IncreaseQuality()
Request to increase quality of solution for next solve.
int ndim_
Number of dimensions.
Index NumberOfNegEVals() const
Number of negative eigenvalues detected during last factorization.
bool pivtol_changed_
indicates if pivtol has been changed
ESymSolverStatus DetermineDependentRows(const Index *, const Index *, std::list< Index > &)
This method determines the list of row indices of the linearly dependent rows.
int numdelay_
Number of delayed pivots last time we scaled.
bool InitializeImpl(const OptionsList &options, const std::string &prefix)
Implementation of the initialization method that has to be overloaded by for each derived class.
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
static int ScaleNameToNum(const std::string &name)
converts a scaling option name to its ma97 option number
struct ma97_control control_
enum scale_opts switch_[3]
This class stores a list of user set options.
void * fkeep_
Stores pointer to factors (only understood Fortran code!)
int fctidx_
Current factorization number to dump to.
@ SYMSOLVER_FATAL_ERROR
Unrecoverable error in linear solver occurred.