7 #ifndef __IPMA27TSOLVERINTERFACE_HPP__ 8 #define __IPMA27TSOLVERINTERFACE_HPP__ 15 #define IPOPT_DECL_MA27A(x) void (x)( \ 33 #define IPOPT_DECL_MA27B(x) void (x)( \ 52 #define IPOPT_DECL_MA27C(x) void (x)( \ 68 #define IPOPT_DECL_MA27I(x) void (x)( \ 94 const std::string& prefix
115 Index numberOfNegEVals);
293 Index numberOfNegEVals
Index * ikeep_
MA27's IKEEP.
EMatrixFormat MatrixFormat() const
Query of requested matrix type that the linear solver understands.
virtual ~Ma27TSolverInterface()
Destructor.
virtual Number * GetValuesArrayPtr()
Method returning an internal array into which the nonzero elements (in the same order as ja) will be ...
ESymSolverStatus
Enum to report outcome of a linear solve.
#define IPOPT_DECL_MA27B(x)
bool pivtol_changed_
Flag indicating if the matrix has to be refactorized because the pivot tolerance has been changed...
Base class for interfaces to symmetric indefinite linear solvers for sparse matrices.
virtual bool ProvidesInertia() const
Query whether inertia is computed by linear solver.
virtual ESymSolverStatus InitializeStructure(Index dim, Index nonzeros, const Index *airn, const Index *ajcn)
Method for initializing internal structures.
SmartPtr< LibraryLoader > hslloader
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.
void operator=(const Ma27TSolverInterface &)
Default Assignment Operator.
ESymSolverStatus Factorization(const Index *airn, const Index *ajcn, bool check_NegEVals, Index numberOfNegEVals)
Call MA27BX to factorize the Matrix.
#define IPOPT_DECL_MA27C(x)
Index nsteps_
MA27's NSTEPS.
bool initialized_
Flag indicating if internal data is initialized.
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...
bool la_increase_
flag indicating that la should be increased before next factorization
Template class for Smart Pointers.
This class stores a list of user set options.
bool skip_inertia_check_
Flag indicating if the inertia is always assumed to be correct.
Number cntl_[5]
real control values
Triplet (MA27) format for lower triangular part.
Index maxfrt_
MA27's MAXFRT.
Index liw_
length of integer work space
bool warm_start_same_structure_
Flag indicating whether the TNLP with identical structure has already been solved before...
bool ignore_singularity_
Flag indicating if MA27 should continue if a singular matrix is detected, but right hands sides are s...
virtual bool IncreaseQuality()
Request to increase quality of solution for next solve.
Index negevals_
Number of negative eigenvalues.
Index * iw_
integer work space
Number la_init_factor_
Factor for estimating initial value of la.
Index nonzeros_
Number of nonzeros of the matrix.
bool refactorize_
Flag that is true if we just requested the values of the matrix again (SYMSOLVER_CALL_AGAIN) and have...
Interface to the symmetric linear solver MA27, derived from SparseSymLinearSolverInterface.
ipnumber Number
Type of all numbers.
#define IPOPT_DECL_MA27A(x)
Index dim_
Number of rows and columns of the matrix.
static void SetFunctions(IPOPT_DECL_MA27A(*ma27a), IPOPT_DECL_MA27B(*ma27b), IPOPT_DECL_MA27C(*ma27c),)
set MA27 functions to use for every instantiation of this class
ESymSolverStatus SymbolicFactorization(const Index *airn, const Index *ajcn)
Call MA27AX and reserve memory for MA27 data.
Number meminc_factor_
Factor for increaseing memory.
EMatrixFormat
Enum to specify sparse matrix format.
Ma27TSolverInterface(SmartPtr< LibraryLoader > hslloader_)
Constructor.
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
ESymSolverStatus Backsolve(Index nrhs, Number *rhs_vals)
Call MA27CX to do the backsolve.
bool InitializeImpl(const OptionsList &options, const std::string &prefix)
Implementation of the initialization method that has to be overloaded by for each derived class...
virtual Index NumberOfNegEVals() const
Number of negative eigenvalues detected during last factorization.
bool liw_increase_
flag indicating that liw should be increased before next factorization
Number * a_
factor A of matrix
Number liw_init_factor_
Factor for estimating initial value of liw.
#define IPOPT_DECL_MA27I(x)
Number pivtolmax_
Maximal pivot tolerance.
Index icntl_[30]
integer control values
Number pivtol_
Pivot tolerance.