Skip to content

QP Solvers

ssqp::solvers::QPSolver is the abstract interface both QP backends implement. See QP Solvers in Concepts for the conceptual explanation. The reference below is generated directly from the headers' own doc comments.

Class ssqp::solvers::QPSolver

ClassList > ssqp > solvers > QPSolver

Inherited by the following classes: ssqp::solvers::admm_qp, ssqp::solvers::hpipm_qp

Classes

Type Name
struct Solution

Public Functions

Type Name
virtual MatX feedbackGain (const uint k) const = 0
virtual void increaseRegularization () = 0
virtual uint iterations () const = 0
virtual void reset () = 0
virtual SolverState solve (Solution & sol) = 0
virtual ~QPSolver () = default

Public Functions Documentation

function feedbackGain

virtual MatX ssqp::solvers::QPSolver::feedbackGain (
    const uint k
) const = 0

function increaseRegularization

virtual void ssqp::solvers::QPSolver::increaseRegularization () = 0

function iterations

virtual uint ssqp::solvers::QPSolver::iterations () const = 0

function reset

virtual void ssqp::solvers::QPSolver::reset () = 0

function solve

virtual SolverState ssqp::solvers::QPSolver::solve (
    Solution & sol
) = 0

function ~QPSolver

virtual ssqp::solvers::QPSolver::~QPSolver () = default


The documentation for this class was generated from the following file /home/runner/work/ssqp/ssqp/include/solvers/qp.hpp

admm_qp

SSQP's own ADMM implementation; the default backend, no extra dependencies.

Class ssqp::solvers::admm_qp

ClassList > ssqp > solvers > admm_qp

Inherits the following classes: ssqp::solvers::QPSolver

Classes

Type Name
struct Params

Public Functions

Type Name
admm_qp (const QPData & qp, const Params & params=Params::Default())
MatX feedbackGain (const uint k) override const
void increaseRegularization () override
uint iterations () override const
void reset () override
SolverState solve (QPSolver::Solution & sol) override

Public Functions Documentation

function admm_qp
ssqp::solvers::admm_qp::admm_qp (
    const QPData & qp,
    const Params & params=Params::Default()
) 

function feedbackGain
MatX ssqp::solvers::admm_qp::feedbackGain (
    const uint k
) override const

function increaseRegularization
void ssqp::solvers::admm_qp::increaseRegularization () override

function iterations
uint ssqp::solvers::admm_qp::iterations () override const

function reset
void ssqp::solvers::admm_qp::reset () override

function solve
SolverState ssqp::solvers::admm_qp::solve (
    QPSolver::Solution & sol
) override


The documentation for this class was generated from the following file /home/runner/work/ssqp/ssqp/include/solvers/admm_qp.hpp

hpipm_qp

Wraps HPIPM via BLASFEO. Requires building with -DWITH_HPIPM=ON (see Installation):

Class ssqp::solvers::hpipm_qp

ClassList > ssqp > solvers > hpipm_qp

Inherits the following classes: ssqp::solvers::QPSolver

Classes

Type Name
struct Params

Public Functions

Type Name
MatX feedbackGain (const uint k) override const
hpipm_qp (const QPData & qp, const Params & params=Params::Default())
hpipm_qp (const hpipm_qp &) = delete
void increaseRegularization () override
uint iterations () override const
hpipm_qp & operator= (const hpipm_qp &) = delete
void reset () override
void set_stage_sizes ()
SolverState solve (QPSolver::Solution & sol) override
~hpipm_qp ()

Public Functions Documentation

function feedbackGain
MatX ssqp::solvers::hpipm_qp::feedbackGain (
    const uint k
) override const

function hpipm_qp [1/2]
ssqp::solvers::hpipm_qp::hpipm_qp (
    const QPData & qp,
    const Params & params=Params::Default()
) 

function hpipm_qp [2/2]
ssqp::solvers::hpipm_qp::hpipm_qp (
    const hpipm_qp &
) = delete

function increaseRegularization
void ssqp::solvers::hpipm_qp::increaseRegularization () override

function iterations
uint ssqp::solvers::hpipm_qp::iterations () override const

function operator=
hpipm_qp & ssqp::solvers::hpipm_qp::operator= (
    const hpipm_qp &
) = delete

function reset
void ssqp::solvers::hpipm_qp::reset () override

function set_stage_sizes
void ssqp::solvers::hpipm_qp::set_stage_sizes () 

function solve
SolverState ssqp::solvers::hpipm_qp::solve (
    QPSolver::Solution & sol
) override

function ~hpipm_qp
ssqp::solvers::hpipm_qp::~hpipm_qp () 


The documentation for this class was generated from the following file /home/runner/work/ssqp/ssqp/include/solvers/hpipm_qp.hpp

lqr

A Riccati-recursion solver used internally by admm_qp for the unconstrained (equality-only) structure of the QP at each iteration:

Class ssqp::solvers::lqr

ClassList > ssqp > solvers > lqr

Classes

Type Name
struct Output
struct Params

Public Functions

Type Name
Output & constrained (const admm_qp::Solution & current_sol, const FlatVec & z, const FlatVec & y)
Output & constrained (const admm_qp::Solution & current_sol, const FlatVec & z, const FlatVec & y, const FlatVec & rho)
lqr (const QPData & qp, const admm_qp::Solution & current_sol, const FlatVec & rho, const Params & params=Params::Default())
Output & output_structure ()
Output & unconstrained ()

Public Functions Documentation

function constrained [1/2]
Output & ssqp::solvers::lqr::constrained (
    const admm_qp::Solution & current_sol,
    const FlatVec & z,
    const FlatVec & y
) 

function constrained [2/2]
Output & ssqp::solvers::lqr::constrained (
    const admm_qp::Solution & current_sol,
    const FlatVec & z,
    const FlatVec & y,
    const FlatVec & rho
) 

function lqr
ssqp::solvers::lqr::lqr (
    const QPData & qp,
    const admm_qp::Solution & current_sol,
    const FlatVec & rho,
    const Params & params=Params::Default()
) 

function output_structure
Output & ssqp::solvers::lqr::output_structure () 

function unconstrained
Output & ssqp::solvers::lqr::unconstrained () 


The documentation for this class was generated from the following file /home/runner/work/ssqp/ssqp/include/solvers/lqr.hpp