smooth_feedback
Control and estimation on Lie groups
|
Quadratic Program solver. More...
#include <chrono>
#include <iomanip>
#include <iostream>
#include <limits>
#include <optional>
#include <Eigen/Cholesky>
#include <Eigen/Dense>
#include <Eigen/Sparse>
#include <Eigen/SparseCholesky>
#include "qp.hpp"
#include "utils/sparse.hpp"
Go to the source code of this file.
Classes | |
struct | smooth::feedback::QPSolverParams |
Options for solve_qp. More... | |
struct | smooth::feedback::detail::LDLTWrapper< LDLTt > |
Copy-able wrapper around Eigen LDLT types. More... | |
class | smooth::feedback::QPSolver< Pbm > |
Solver for quadratic programs. More... | |
Typedefs | |
template<typename Pbm > | |
using | smooth::feedback::detail::qp_solution_t = QPSolution< decltype(Pbm::A)::RowsAtCompileTime, decltype(Pbm::A)::ColsAtCompileTime, typename decltype(Pbm::A)::Scalar > |
Functions | |
template<typename Pbm , typename D1 , typename D2 > | |
bool | smooth::feedback::detail::polish_qp (const Pbm &pbm, qp_solution_t< Pbm > &sol, const QPSolverParams &prm, const typename decltype(Pbm::A)::Scalar c, const Eigen::MatrixBase< D1 > &sx, const Eigen::MatrixBase< D2 > &sy) |
Polish solution of quadratic program. More... | |
template<typename Pbm > | |
detail::qp_solution_t< Pbm > | smooth::feedback::solve_qp (const Pbm &pbm, const QPSolverParams &prm, std::optional< std::reference_wrapper< const detail::qp_solution_t< Pbm > > > warmstart={}) |
Solve a quadratic program using the operator splitting approach. More... | |
Quadratic Program solver.
Definition in file qp_solver.hpp.
using smooth::feedback::detail::qp_solution_t = typedef QPSolution< decltype(Pbm::A)::RowsAtCompileTime, decltype(Pbm::A)::ColsAtCompileTime, typename decltype(Pbm::A)::Scalar> |
Definition at line 73 of file qp_solver.hpp.
bool smooth::feedback::detail::polish_qp | ( | const Pbm & | pbm, |
qp_solution_t< Pbm > & | sol, | ||
const QPSolverParams & | prm, | ||
const typename decltype(Pbm::A)::Scalar | c, | ||
const Eigen::MatrixBase< D1 > & | sx, | ||
const Eigen::MatrixBase< D2 > & | sy | ||
) |
Polish solution of quadratic program.
Pbm | problem type |
[in] | pbm | problem formulation |
[in,out] | sol | solution to polish |
[in] | prm | solver options |
[in] | c | cost scaling |
[in] | sx | variable scaling |
[in] | sy | constraint scaling |
Definition at line 93 of file qp_solver.hpp.
detail::qp_solution_t< Pbm > smooth::feedback::solve_qp | ( | const Pbm & | pbm, |
const QPSolverParams & | prm, | ||
std::optional< std::reference_wrapper< const detail::qp_solution_t< Pbm > > > | warmstart = {} |
||
) |
Solve a quadratic program using the operator splitting approach.
Pbm | problem type (QuadraticProgram or QuadraticProgramSparse) |
pbm | problem formulation |
prm | solver options |
warmstart | provide initial guess for primal and dual variables |
M == -1 || N == -1
) are supportedThis is a third-party implementation of the algorithm described in the following paper:
For the official C implementation, see https://osqp.org/.
Definition at line 780 of file qp_solver.hpp.