Similar to #32 and addressing #24. Right now (with the feature/conic-constraints branch) TinyMPC only supports bound constraints (clamping) and second-order cones out of the box. Adding affine constraints is straightforward and just requires adding a few more slack variables for any associated constraints, but like #32 requires:
- Adding a hyperplane projection function and the slack variable update logic to the algorithm
- Refactoring the codegen section to include these variables when generating the workspace
- Modifying the API to accept affine constraints (maybe in a more general way if we now have to deal with clamping, affine constraints, and second-order cones separately, for example using only a second-order cone interface since reductions can be used to define clamping and affine constraints)
Similar to #32 and addressing #24. Right now (with the feature/conic-constraints branch) TinyMPC only supports bound constraints (clamping) and second-order cones out of the box. Adding affine constraints is straightforward and just requires adding a few more slack variables for any associated constraints, but like #32 requires: