-
GUENNEBAUD Gael authored
Brief: Rewrite and optimize QuadProg++ on top of Eigen, extend rational_quadprog fitter with a LS quadratic objective, and improve inequality scheduling. Details: - 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
2578f708