Sleipnir C++ API
Loading...
Searching...
No Matches
slp::DenseKKTSolver< Scalar > Class Template Reference

#include </home/runner/work/Sleipnir/Sleipnir/include/sleipnir/optimization/solver/util/dense_kkt_solver.hpp>

Public Types

using DenseMatrix = Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic >
 Type alias for dense matrix.
 
using DenseVector = Eigen::Vector< Scalar, Eigen::Dynamic >
 Type alias for dense vector.
 

Public Member Functions

 DenseKKTSolver (int num_decision_variables, int num_equality_constraints)
 
 DenseKKTSolver (int num_decision_variables, int num_equality_constraints, Scalar γ_min)
 
Eigen::ComputationInfo info () const
 
DenseKKTSolvercompute (const DenseMatrix &lhs)
 
template<typename Rhs >
DenseVector solve (const Eigen::MatrixBase< Rhs > &rhs) const
 
template<typename Rhs >
DenseVector solve (const Eigen::SparseMatrixBase< Rhs > &rhs) const
 
Scalar hessian_regularization () const
 
Scalar constraint_jacobian_regularization () const
 

Detailed Description

template<typename Scalar>
class slp::DenseKKTSolver< Scalar >

Solves a dense KKT system.

Applies regularization so the solution is a descent direction.

Template Parameters
ScalarScalar type.

Constructor & Destructor Documentation

◆ DenseKKTSolver() [1/2]

template<typename Scalar >
slp::DenseKKTSolver< Scalar >::DenseKKTSolver ( int  num_decision_variables,
int  num_equality_constraints 
)
inline

Constructs a DenseKKTSolver instance.

Parameters
num_decision_variablesThe number of decision variables in the system.
num_equality_constraintsThe number of equality constraints in the system.

◆ DenseKKTSolver() [2/2]

template<typename Scalar >
slp::DenseKKTSolver< Scalar >::DenseKKTSolver ( int  num_decision_variables,
int  num_equality_constraints,
Scalar  γ_min 
)
inline

Constructs a DenseKKTSolver instance.

Parameters
num_decision_variablesThe number of decision variables in the system.
num_equality_constraintsThe number of equality constraints in the system.
γ_minThe minimum constraint regularization.

Member Function Documentation

◆ compute()

template<typename Scalar >
DenseKKTSolver & slp::DenseKKTSolver< Scalar >::compute ( const DenseMatrix lhs)
inline

Computes the factorization of the KKT matrix.

Parameters
lhsLeft-hand side of the system.
Returns
The factorization.

◆ constraint_jacobian_regularization()

template<typename Scalar >
Scalar slp::DenseKKTSolver< Scalar >::constraint_jacobian_regularization ( ) const
inline

Returns the constraint Jacobian regularization factor.

Returns
Constraint Jacobian regularization factor.

◆ hessian_regularization()

template<typename Scalar >
Scalar slp::DenseKKTSolver< Scalar >::hessian_regularization ( ) const
inline

Returns the Hessian regularization factor.

Returns
Hessian regularization factor.

◆ info()

template<typename Scalar >
Eigen::ComputationInfo slp::DenseKKTSolver< Scalar >::info ( ) const
inline

Reports whether previous computation was successful.

Returns
Whether previous computation was successful.

◆ solve() [1/2]

template<typename Scalar >
template<typename Rhs >
DenseVector slp::DenseKKTSolver< Scalar >::solve ( const Eigen::MatrixBase< Rhs > &  rhs) const
inline

Solves the system of equations.

Parameters
rhsRight-hand side of the system.
Returns
The solution.

◆ solve() [2/2]

template<typename Scalar >
template<typename Rhs >
DenseVector slp::DenseKKTSolver< Scalar >::solve ( const Eigen::SparseMatrixBase< Rhs > &  rhs) const
inline

Solves the system of equations.

Parameters
rhsRight-hand side of the system.
Returns
The solution.

The documentation for this class was generated from the following file: