KktSolver.hpp
87 KktMatrix(const Hessian& H, MatrixConstRef A, VectorConstRef x, VectorConstRef z, double gamma, double delta)
KktMatrix(const Hessian &H, MatrixConstRef A, VectorConstRef x, VectorConstRef z)
Construct a custom KktMatrix instance.
Definition: KktSolver.hpp:82
auto decompose(const KktMatrix &lhs) -> void
Decompose the KKT matrix before solving it.
Definition: KktSolver.cpp:575
KktMethod method
The method for the solution of the KKT equations.
Definition: KktSolver.hpp:74
KktMatrix(const Hessian &H, MatrixConstRef A, VectorConstRef x, VectorConstRef z, double gamma, double delta)
Construct a custom KktMatrix instance.
Definition: KktSolver.hpp:87
const double delta
The regularization parameter .
Definition: KktSolver.hpp:107
Vector rx
The top vector of the right-hand side KKT vector.
Definition: KktSolver.hpp:129
Vector rz
The bottom vector of the right-hand side KKT vector.
Definition: KktSolver.hpp:135
virtual ~KktSolver()
Destroy this KktSolver instance.
Definition: KktSolver.cpp:556
Vector dy
The step vector of the dual variables y
Definition: KktSolver.hpp:118
KktSolver()
Construct a default KktSolver instance.
Definition: KktSolver.cpp:548
KktMethod
An enumeration of possible methods for the solution of a KKT equation.
Definition: KktSolver.hpp:44
The namespace containing all components of the Reaktoro library.
Definition: ChemicalScalar.hpp:24
double time_solve
The wall time spent for the solution of the KKT problem (in units of s)
Definition: KktSolver.hpp:39
Vector ry
The middle vector of the right-hand side KKT vector.
Definition: KktSolver.hpp:132
auto setOptions(const KktOptions &options) -> void
Set the options for the KKT calculations.
Definition: KktSolver.cpp:570
A type to describe the options for the KKT calculation.
Definition: KktSolver.hpp:72
const double gamma
The regularization parameter .
Definition: KktSolver.hpp:104
auto operator=(KktSolver other) -> KktSolver &
Assign a KktSolver instance to this.
Definition: KktSolver.cpp:559
A type to represent the solution vector of a KKT equation.
Definition: KktSolver.hpp:113
auto result() const -> const KktResult &
Return the result of the last calculation.
Definition: KktSolver.cpp:565
@ PartialPivLU
Use a partial pivoting LU algorithm on the full KKT equation.
A type to represent the left-hand side matrix of a KKT equation.
Definition: KktSolver.hpp:80
auto solve(const KktVector &rhs, KktSolution &sol) -> void
Solve the KKT equation using an appropriate and efficient approach according to a priori decompositio...
Definition: KktSolver.cpp:580
Vector dx
The step vector of the primal variables x
Definition: KktSolver.hpp:115
A type to represent the right-hand side vector of a KKT equation.
Definition: KktSolver.hpp:127
Vector dz
The step vector of the dual variables z
Definition: KktSolver.hpp:121
const Hessian & H
The Hessian matrix H of the KKT matrix equation.
Definition: KktSolver.hpp:92
Eigen::Ref< const Eigen::MatrixXd > MatrixConstRef
Alias to Eigen type Ref<const MatrixXd>.
Definition: Matrix.hpp:44
double time_decompose
The wall time spent for the decomposition of the KKT problem (in units of s)
Definition: KktSolver.hpp:36
bool succeeded
The flag that indicates if the KKT calculation succeeded.
Definition: KktSolver.hpp:33
MatrixConstRef A
The coefficient matrix A of the KKT matrix equation.
Definition: KktSolver.hpp:95
Eigen::Ref< const Eigen::VectorXd > VectorConstRef
< Alias to Eigen type Ref<VectorXd>.
Definition: Matrix.hpp:31