quadprog 0.0.2

A dense quadratic program solver in pure rust
Documentation
  • Coverage
  • 100%
    8 out of 8 items documented1 out of 3 items with examples
  • Size
  • Source code size: 71.15 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 483.44 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 5s Average build duration of successful builds.
  • all releases: 9s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • erikbrinkman/quadprog-rs
    4 4 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • erikbrinkman

quadprog

Crate Docs Build

A dense quadratic program solver in pure rust, based on the Goldfarb-Idnani algorithm. This implementation draws primarily from quadprog.

Usage

Add this to your Cargo.toml:

[dependencies]
quadprog = "*"

Then solve a strictly convex QP of the form:

    minimize     1/2 x' Q x + c' x
    subject to   A1 x  = b1
                 A2 x <= b2

For example, to solve

    minimize     1/2 x^2 + 1/2 y^2 + x
    subject to   x + 2 y >= 1

write

use quadprog::solve_qp;
let mut q = [1., 0., 0., 1.];
let c = [1., 0.];
let a = [-1., -2.];
let b = [-1.];
let sol = solve_qp(&mut q, &c, &a, &b, 0, false).unwrap();
assert_eq!(sol.sol, &[-0.6, 0.8]);

References

D. Goldfarb and A. Idnani (1983). A numerically stable dual method for solving strictly convex quadratic programs. Mathematical Programming, 27, 1-33.