#include <IpLowRankAugSystemSolver.hpp>
Public Member Functions | |
bool | InitializeImpl (const OptionsList &options, const std::string &prefix) |
overloaded from AlgorithmStrategyObject | |
virtual ESymSolverStatus | Solve (const SymMatrix *W, double W_factor, const Vector *D_x, double delta_x, const Vector *D_s, double delta_s, const Matrix *J_c, const Vector *D_c, double delta_c, const Matrix *J_d, const Vector *D_d, double delta_d, const Vector &rhs_x, const Vector &rhs_s, const Vector &rhs_c, const Vector &rhs_d, Vector &sol_x, Vector &sol_s, Vector &sol_c, Vector &sol_d, bool check_NegEVals, Index numberOfNegEVals) |
Set up the augmented system and solve it for a given right hand side. | |
virtual Index | NumberOfNegEVals () const |
Number of negative eigenvalues detected during last solve. | |
virtual bool | ProvidesInertia () const |
Query whether inertia is computed by linear solver. | |
virtual bool | IncreaseQuality () |
Request to increase quality of solution for next solve. | |
Constructors/Destructors | |
LowRankAugSystemSolver (AugSystemSolver &aug_system_solver) | |
Constructor using only a linear solver object. | |
virtual | ~LowRankAugSystemSolver () |
Default destructor. |
LowRankAugSystemSolver | ( | AugSystemSolver & | aug_system_solver | ) |
Constructor using only a linear solver object.
References DBG_ASSERT, DBG_START_METH, and Ipopt::IsValid().
~LowRankAugSystemSolver | ( | ) | [virtual] |
bool InitializeImpl | ( | const OptionsList & | options, | |
const std::string & | prefix | |||
) | [virtual] |
overloaded from AlgorithmStrategyObject
Implements AugSystemSolver.
References AlgorithmStrategyObject::IpCq(), AlgorithmStrategyObject::IpData(), AlgorithmStrategyObject::IpNLP(), and AlgorithmStrategyObject::Jnlst().
ESymSolverStatus Solve | ( | const SymMatrix * | W, | |
double | W_factor, | |||
const Vector * | D_x, | |||
double | delta_x, | |||
const Vector * | D_s, | |||
double | delta_s, | |||
const Matrix * | J_c, | |||
const Vector * | D_c, | |||
double | delta_c, | |||
const Matrix * | J_d, | |||
const Vector * | D_d, | |||
double | delta_d, | |||
const Vector & | rhs_x, | |||
const Vector & | rhs_s, | |||
const Vector & | rhs_c, | |||
const Vector & | rhs_d, | |||
Vector & | sol_x, | |||
Vector & | sol_s, | |||
Vector & | sol_c, | |||
Vector & | sol_d, | |||
bool | check_NegEVals, | |||
Index | numberOfNegEVals | |||
) | [virtual] |
Set up the augmented system and solve it for a given right hand side.
Reimplemented from AugSystemSolver.
References DBG_ASSERT, DBG_START_METH, Vector::Dim(), Ipopt::GetRawPtr(), TaggedObject::GetTag(), Ipopt::IsNull(), Ipopt::IsValid(), Ipopt::J_DETAILED, Ipopt::J_SOLVE_PD_SYSTEM, AlgorithmStrategyObject::Jnlst(), Journalist::Printf(), and Ipopt::SYMSOLVER_SUCCESS.
Index NumberOfNegEVals | ( | ) | const [virtual] |
Number of negative eigenvalues detected during last solve.
Returns the number of negative eigenvalues of the most recent factorized matrix. This must not be called if the linear solver does not compute this quantities (see ProvidesInertia).
Implements AugSystemSolver.
References DBG_ASSERT.
bool ProvidesInertia | ( | ) | const [virtual] |
Query whether inertia is computed by linear solver.
Returns true, if linear solver provides inertia.
Implements AugSystemSolver.
bool IncreaseQuality | ( | ) | [virtual] |
Request to increase quality of solution for next solve.
Ask underlying linear solver to increase quality of solution for the next solve (e.g. increase pivot tolerance). Returns false, if this is not possible (e.g. maximal pivot tolerance already used.)
Implements AugSystemSolver.