# solve_osqp: Sparse Quadratic Programming Solver In osqp: Quadratic Programming Solver using the 'OSQP' Library

## Description

Solves

argmin_x 0.5 x'P x + q'x

s.t.

li < (A x)i < ui

for real matrices P (nxn, positive semidefinite) and A (mxn) with m number of constraints

## Usage

 ```1 2``` ```solve_osqp(P = NULL, q = NULL, A = NULL, l = NULL, u = NULL, pars = osqpSettings()) ```

## Arguments

 `P, A` sparse matrices of class dgCMatrix or coercible into such, with P positive semidefinite. Only the upper triangular part of P will be used. `q, l, u` Numeric vectors, with possibly infinite elements in l and u `pars` list with optimization parameters, conveniently set with the function `osqpSettings`

## Value

A list with elements x (the primal solution), y (the dual solution), prim_inf_cert, dual_inf_cert, and info.

## References

Stellato, B., Banjac, G., Goulart, P., Bemporad, A., Boyd and S. (2018). “OSQP: An Operator Splitting Solver for Quadratic Programs.” ArXiv e-prints. 1711.08013.

`osqp`. The underlying OSQP documentation: https://osqp.org/
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18``` ```library(osqp) ## example, adapted from OSQP documentation library(Matrix) P <- Matrix(c(11., 0., 0., 0.), 2, 2, sparse = TRUE) q <- c(3., 4.) A <- Matrix(c(-1., 0., -1., 2., 3., 0., -1., -3., 5., 4.) , 5, 2, sparse = TRUE) u <- c(0., 0., -15., 100., 80) l <- rep_len(-Inf, 5) settings <- osqpSettings(verbose = TRUE) # Solve with OSQP res <- solve_osqp(P, q, A, l, u, settings) res\$x ```