-
Notifications
You must be signed in to change notification settings - Fork 26
Open
Description
@gabrielebndn I just saw that there is a version of Eiquadprog with warm-start capabilities and other juicy features here. It would be great to integrate their work into our version of the solver. This is a (partial) list of what they did on top of the version of eiquadprog I started from:
- Rewitre and optimize QuadProg++ to be fully based on Eigen. This leads to a more readable code, and significant speed up to compute step directons and add/delete constraints.
- Generalize QuadProg++ API to allow passing the inital guess, to export the resulting active-set, to pass a list of inequalities to satisfy first, and options and schedule the inequalities.
- Add various inequality scheduling heuristics:
- WorstFirst : the default for QuadProg++
- SlidingWindows: treat the worst of the current subset, and shift/grow the subset (the default for rational_quadprog)
- WorstSetFirst: treat all the N worst before checking for the others
- Add new options for rational_quadprog:
_scheduling_mode = args.get_string("scheduling-mode","SlidingWindows"); -> can also be "WorstFirt" or "WorstSetFirst"
_scheduling_chunk_size = args.get_int("scheduling-chunk-size",-1); -> the default is usually very good
_scheduling_grow_factor = args.get_float("scheduling-grow-factor",-1); -> not recommended
_export_qp = args.is_defined("export-qp"); -> export QP problem to files for testing with other solvers
_delta = args.get_float("delta", 1);
_add_ls_energy = args.is_defined("add-ls-energy"); -> recommended - Update rational_quadprog_parallel to reflect API changes
Metadata
Metadata
Assignees
Labels
No labels