8 #ifndef __IPMA57TSOLVERINTERFACE_HPP__ 9 #define __IPMA57TSOLVERINTERFACE_HPP__ 15 #ifdef FUNNY_MA57_FINT 24 #define IPOPT_DECL_MA57A(x) void (x)( \ 39 #define IPOPT_DECL_MA57B(x) void (x)( \ 63 #define IPOPT_DECL_MA57C(x) void (x)( \ 81 #define IPOPT_DECL_MA57E(x) void (x)( \ 97 #define IPOPT_DECL_MA57I(x) void (x)( \ 123 const std::string& prefix
144 Index numberOfNegEVals
310 Index numberOfNegEVals
bool warm_start_same_structure_
Flag indicating whether the TNLP with identical structure has already been solved before...
ESymSolverStatus
Enum to report outcome of a linear solve.
Number pivtol_
Pivot tolerance.
Index nonzeros_
Number of nonzeros of the matrix.
Base class for interfaces to symmetric indefinite linear solvers for sparse matrices.
#define IPOPT_DECL_MA57I(x)
#define IPOPT_DECL_MA57C(x)
bool refactorize_
Flag that is true if we just requested the values of the matrix again (SYMSOLVER_CALL_AGAIN) and have...
ipindex Index
Type of all indices of vectors, matrices etc.
This file contains a base class for all exceptions and a set of macros to help with exceptions...
EMatrixFormat MatrixFormat() const
Query of requested matrix type that the linear solver understands.
Ma57TSolverInterface(SmartPtr< LibraryLoader > hslloader_)
Constructor.
IPOPT_DECL_MA57E * ma57e
copy arrays
Template class for Smart Pointers.
This class stores a list of user set options.
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
virtual Number * GetValuesArrayPtr()
Method returning an internal array into which the nonzero elements (in the same order as ja) will be ...
Triplet (MA27) format for lower triangular part.
Number * a_
factor A of matrix
bool InitializeImpl(const OptionsList &options, const std::string &prefix)
Implementation of the initialization method that has to be overloaded by for each derived class...
ESymSolverStatus Factorization(const Index *airn, const Index *ajcn, bool check_NegEVals, Index numberOfNegEVals)
Call MA57BX to factorize the Matrix.
virtual Index NumberOfNegEVals() const
Number of negative eigenvalues detected during last factorization.
static void SetFunctions(IPOPT_DECL_MA57A(*ma57a), IPOPT_DECL_MA57B(*ma57b), IPOPT_DECL_MA57C(*ma57c), IPOPT_DECL_MA57E(*ma57e),)
set MA57 functions to use for every instantiation of this class
IPOPT_DECL_MA57I * ma57i
initialize solver
#define IPOPT_DECL_MA57B(x)
virtual ESymSolverStatus MultiSolve(bool new_matrix, const Index *airn, const Index *ajcn, Index nrhs, Number *rhs_vals, bool check_NegEVals, Index numberOfNegEVals)
Solve operation for multiple right hand sides.
virtual ESymSolverStatus InitializeStructure(Index dim, Index nonzeros, const Index *airn, const Index *ajcn)
Method for initializing internal structures.
Number ma57_pre_alloc_
Factor for estimating initial size of work arrays.
ESymSolverStatus Backsolve(Index nrhs, Number *rhs_vals)
Call MA57CX to do the backsolve.
ipnumber Number
Type of all numbers.
IPOPT_DECL_MA57A * ma57a
symbolic factorization
#define IPOPT_DECL_MA57E(x)
bool pivtol_changed_
Flag indicating if the matrix has to be refactorized because the pivot tolerance has been changed...
virtual bool IncreaseQuality()
Request to increase quality of solution for next solve.
bool initialized_
Flag indicating if internal data is initialized.
EMatrixFormat
Enum to specify sparse matrix format.
void operator=(const Ma57TSolverInterface &)
Default Assignment Operator.
Index dim_
Number of rows and columns of the matrix.
int ipindex
Type of all indices of vectors, matrices etc.
SmartPtr< LibraryLoader > hslloader
virtual ~Ma57TSolverInterface()
Destructor.
Index negevals_
Number of negative eigenvalues.
Number pivtolmax_
Maximal pivot tolerance.
ESymSolverStatus SymbolicFactorization(const Index *airn, const Index *ajcn)
Call MA57AX and reserve memory for MA57 data.
IPOPT_DECL_MA57B * ma57b
numerical factorization
Interface to the symmetric linear solver MA57, derived from SparseSymLinearSolverInterface.
IPOPT_DECL_MA57C * ma57c
solution
virtual bool ProvidesInertia() const
Query whether inertia is computed by linear solver.
#define IPOPT_DECL_MA57A(x)