We're not currently set up to accept outside pull requests, the core module is still under active development. If you'd like to contribute please contact us so we can discuss.
- Fork the repo
- Clone it to your local machine
cd <path to repo>
git clone <url>
- Add an "upstream" remote
cd <path to repo>/reponame
git remote add upstream <url>
git remote set-url --push upstream no_push
git fetch upstream
git checkout -b my_branch upstream/master
-
Rebase to master
git fetch upstream
git rebase -i upstream/master
-
Push to your fork
git push origin -f
We use GitHub issues to track public bugs.
FBstab uses Eigen as its linear algebra library and is designed to be extensible for different classes of QPs. Its architecture is similar to that of OOQP.
The algorithm itself is implemented in an abstract way using template metaprogramming. It requires 5 component classes which each must implement several methods.
- A Variable class for storing primal-dual variables.
- A Residual class for computing optimality residuals.
- A Data class for storing and manipulating problem data.
- A LinearSolver class for computing Newton steps.
- A Feasibility class for detecting primal or dual infeasibility.
These classes should be specialized for different kinds of QPs, e.g., support vector machines, optimal control problems, general dense QPs, in order to exploit structure. FBstab currently supports:
- Linear-quadratic optimal control problems with polyhedral constraints, i.e., model predictive control problems.
- Dense inequality constrained problems.
By contributing to FBstab, you agree that your contributions will be licensed under the LICENSE file in the root directory.
- Dominic Liao-McPherson (main developer)
- Soonho Kong
- Frank Permenter