mim-solvers 0.0.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- mim_solvers-0.0.5/.github/workflows/ci.yml +31 -0
- mim_solvers-0.0.5/.github/workflows/release.yml +123 -0
- mim_solvers-0.0.5/.gitignore +162 -0
- mim_solvers-0.0.5/.gitmodules +3 -0
- mim_solvers-0.0.5/.mergify.yml +36 -0
- mim_solvers-0.0.5/.pre-commit-config.yaml +5 -0
- mim_solvers-0.0.5/CMakeLists.txt +166 -0
- mim_solvers-0.0.5/LICENSE +28 -0
- mim_solvers-0.0.5/PKG-INFO +62 -0
- mim_solvers-0.0.5/README.md +45 -0
- mim_solvers-0.0.5/benchmarks/CMakeLists.txt +15 -0
- mim_solvers-0.0.5/benchmarks/solo12.cpp +236 -0
- mim_solvers-0.0.5/benchmarks/timings.cpp +11 -0
- mim_solvers-0.0.5/benchmarks/timings.hpp +105 -0
- mim_solvers-0.0.5/benchmarks/ur5.cpp +216 -0
- mim_solvers-0.0.5/bindings/CMakeLists.txt +45 -0
- mim_solvers-0.0.5/bindings/csqp.cpp +146 -0
- mim_solvers-0.0.5/bindings/csqp_proxqp.cpp +102 -0
- mim_solvers-0.0.5/bindings/ddp.cpp +158 -0
- mim_solvers-0.0.5/bindings/fddp.cpp +75 -0
- mim_solvers-0.0.5/bindings/main.cpp +26 -0
- mim_solvers-0.0.5/bindings/mim_solvers/__init__.py +84 -0
- mim_solvers-0.0.5/bindings/sqp.cpp +80 -0
- mim_solvers-0.0.5/bindings/utils/callback-base.cpp +40 -0
- mim_solvers-0.0.5/bindings/utils/callback-base.hpp +30 -0
- mim_solvers-0.0.5/bindings/utils/callbacks.cpp +29 -0
- mim_solvers-0.0.5/bindings/utils/copyable.hpp +30 -0
- mim_solvers-0.0.5/cmake/.clang-format +4 -0
- mim_solvers-0.0.5/cmake/.cmake-format.py +240 -0
- mim_solvers-0.0.5/cmake/.docs/Makefile +177 -0
- mim_solvers-0.0.5/cmake/.docs/_static/css/cmake.css +4 -0
- mim_solvers-0.0.5/cmake/.docs/cmake.py +430 -0
- mim_solvers-0.0.5/cmake/.docs/conf.py +333 -0
- mim_solvers-0.0.5/cmake/.docs/examples/minimal-hpp.cmake +13 -0
- mim_solvers-0.0.5/cmake/.docs/examples/minimal-with-packages.cmake +28 -0
- mim_solvers-0.0.5/cmake/.docs/examples/minimal.cmake +12 -0
- mim_solvers-0.0.5/cmake/.docs/index.rst +39 -0
- mim_solvers-0.0.5/cmake/.docs/pages/base.rst +32 -0
- mim_solvers-0.0.5/cmake/.docs/pages/cmake-packages.rst +33 -0
- mim_solvers-0.0.5/cmake/.docs/pages/dependencies.rst +54 -0
- mim_solvers-0.0.5/cmake/.docs/pages/developers.rst +101 -0
- mim_solvers-0.0.5/cmake/.docs/pages/internal.rst +13 -0
- mim_solvers-0.0.5/cmake/.docs/pages/other.rst +38 -0
- mim_solvers-0.0.5/cmake/.docs/pages/projects.rst +22 -0
- mim_solvers-0.0.5/cmake/.git-blame-ignore-revs +2 -0
- mim_solvers-0.0.5/cmake/.github/workflows/cmake.yml +30 -0
- mim_solvers-0.0.5/cmake/.gitignore +4 -0
- mim_solvers-0.0.5/cmake/.pre-commit-config.yaml +54 -0
- mim_solvers-0.0.5/cmake/Config.cmake.in +154 -0
- mim_solvers-0.0.5/cmake/GNUInstallDirs.cmake +379 -0
- mim_solvers-0.0.5/cmake/LICENSE +4 -0
- mim_solvers-0.0.5/cmake/README.md +42 -0
- mim_solvers-0.0.5/cmake/_unittests/catkin/CMakeLists.txt +25 -0
- mim_solvers-0.0.5/cmake/_unittests/cpp/CMakeLists.txt +30 -0
- mim_solvers-0.0.5/cmake/_unittests/cpp/include/jrl_cmakemodule/lib.hh +1 -0
- mim_solvers-0.0.5/cmake/_unittests/cpp/src/lib.cc +6 -0
- mim_solvers-0.0.5/cmake/_unittests/cpp/src/main.cc +7 -0
- mim_solvers-0.0.5/cmake/_unittests/dependency/CMakeLists.txt +20 -0
- mim_solvers-0.0.5/cmake/_unittests/macros.cmake +11 -0
- mim_solvers-0.0.5/cmake/_unittests/python/CMakeLists.txt +20 -0
- mim_solvers-0.0.5/cmake/_unittests/python/jrl_cmakemodule/python.py +0 -0
- mim_solvers-0.0.5/cmake/_unittests/run_unit_tests.sh +76 -0
- mim_solvers-0.0.5/cmake/_unittests/test_pkg-config.cmake +45 -0
- mim_solvers-0.0.5/cmake/announce-gen +556 -0
- mim_solvers-0.0.5/cmake/apple.cmake +34 -0
- mim_solvers-0.0.5/cmake/base.cmake +390 -0
- mim_solvers-0.0.5/cmake/boost/FindBoost.cmake +2592 -0
- mim_solvers-0.0.5/cmake/boost.cmake +363 -0
- mim_solvers-0.0.5/cmake/catkin.cmake +21 -0
- mim_solvers-0.0.5/cmake/cmake_reinstall.cmake.in +18 -0
- mim_solvers-0.0.5/cmake/cmake_uninstall.cmake.in +85 -0
- mim_solvers-0.0.5/cmake/compiler.cmake +69 -0
- mim_solvers-0.0.5/cmake/componentConfig.cmake.in +23 -0
- mim_solvers-0.0.5/cmake/config.h.cmake +27 -0
- mim_solvers-0.0.5/cmake/config.hh.cmake +68 -0
- mim_solvers-0.0.5/cmake/coverage.cmake +94 -0
- mim_solvers-0.0.5/cmake/cpack.cmake +81 -0
- mim_solvers-0.0.5/cmake/createshexe.cmake +41 -0
- mim_solvers-0.0.5/cmake/cxx-standard.cmake +161 -0
- mim_solvers-0.0.5/cmake/cxx11.cmake +28 -0
- mim_solvers-0.0.5/cmake/cython/cython.cmake +787 -0
- mim_solvers-0.0.5/cmake/cython/dummy.cpp +0 -0
- mim_solvers-0.0.5/cmake/cython/python/FindPython/Support.cmake +1324 -0
- mim_solvers-0.0.5/cmake/cython/python/FindPython.cmake +224 -0
- mim_solvers-0.0.5/cmake/cython/python/FindPython2.cmake +189 -0
- mim_solvers-0.0.5/cmake/cython/python/FindPython3.cmake +189 -0
- mim_solvers-0.0.5/cmake/cython/python/README.md +6 -0
- mim_solvers-0.0.5/cmake/cython/setup.in.py +184 -0
- mim_solvers-0.0.5/cmake/debian.cmake +117 -0
- mim_solvers-0.0.5/cmake/deprecated.hh.cmake +56 -0
- mim_solvers-0.0.5/cmake/dist.cmake +132 -0
- mim_solvers-0.0.5/cmake/distcheck.cmake +140 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/LICENSE +202 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/MathJax.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/CHTML-preview.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/FontWarnings.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/HelpDialog.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/MatchWebFonts.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/MathEvents.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/MathMenu.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/MathZoom.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/Safe.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/TeX/AMScd.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/TeX/AMSmath.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/TeX/AMSsymbols.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/TeX/HTML.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/TeX/action.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/TeX/autobold.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/TeX/autoload-all.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/TeX/bbox.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/TeX/begingroup.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/TeX/boldsymbol.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/TeX/cancel.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/TeX/color.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/TeX/enclose.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/TeX/extpfeil.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/TeX/mathchoice.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/TeX/mediawiki-texvc.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/TeX/mhchem.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/TeX/newcommand.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/TeX/noErrors.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/TeX/noUndefined.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/TeX/unicode.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/TeX/verb.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/jsMath2jax.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/tex2jax.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/extensions/toMathML.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/element/mml/jax.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/element/mml/optable/Arrows.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/element/mml/optable/BasicLatin.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/element/mml/optable/CombDiacritMarks.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/element/mml/optable/CombDiactForSymbols.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/element/mml/optable/Dingbats.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/element/mml/optable/GeneralPunctuation.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/element/mml/optable/GeometricShapes.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/element/mml/optable/GreekAndCoptic.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/element/mml/optable/Latin1Supplement.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/element/mml/optable/LetterlikeSymbols.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/element/mml/optable/MathOperators.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/element/mml/optable/MiscMathSymbolsA.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/element/mml/optable/MiscMathSymbolsB.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/element/mml/optable/MiscSymbolsAndArrows.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/element/mml/optable/MiscTechnical.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/element/mml/optable/SpacingModLetters.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/element/mml/optable/SuppMathOperators.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/element/mml/optable/SupplementalArrowsA.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/element/mml/optable/SupplementalArrowsB.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/AsciiMath/config.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/AsciiMath/jax.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/config.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/entities/a.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/entities/b.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/entities/c.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/entities/d.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/entities/e.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/entities/f.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/entities/fr.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/entities/g.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/entities/h.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/entities/i.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/entities/j.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/entities/k.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/entities/l.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/entities/m.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/entities/n.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/entities/o.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/entities/opf.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/entities/p.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/entities/q.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/entities/r.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/entities/s.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/entities/scr.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/entities/t.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/entities/u.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/entities/v.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/entities/w.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/entities/x.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/entities/y.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/entities/z.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/MathML/jax.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/TeX/config.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/input/TeX/jax.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/CommonHTML/config.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/CommonHTML/jax.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/autoload/annotation-xml.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/autoload/maction.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/autoload/menclose.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/autoload/mglyph.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/autoload/mmultiscripts.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/autoload/ms.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/autoload/mtable.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/autoload/multiline.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/config.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/Arrows.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/BoxDrawing.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/CombDiacritMarks.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/Dingbats.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/EnclosedAlphanum.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/GeneralPunctuation.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/GeometricShapes.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/GreekAndCoptic.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/Latin1Supplement.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/LatinExtendedA.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/LetterlikeSymbols.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/Main.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/MathOperators.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/MiscMathSymbolsB.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/MiscSymbols.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/MiscTechnical.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/PUA.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/SpacingModLetters.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/SuppMathOperators.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Caligraphic/Bold/Main.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Caligraphic/Regular/Main.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Fraktur/Bold/BasicLatin.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Fraktur/Bold/Main.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Fraktur/Bold/Other.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Fraktur/Bold/PUA.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Fraktur/Regular/BasicLatin.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Fraktur/Regular/Main.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Fraktur/Regular/Other.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Fraktur/Regular/PUA.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/Arrows.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/BasicLatin.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/CombDiacritMarks.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/CombDiactForSymbols.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/GeneralPunctuation.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/GeometricShapes.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/GreekAndCoptic.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/Latin1Supplement.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/LatinExtendedA.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/LatinExtendedB.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/LetterlikeSymbols.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/Main.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/MathOperators.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/MiscMathSymbolsA.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/MiscSymbols.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/MiscTechnical.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/SpacingModLetters.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/SuppMathOperators.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/SupplementalArrowsA.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Italic/BasicLatin.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Italic/CombDiacritMarks.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Italic/GeneralPunctuation.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Italic/GreekAndCoptic.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Italic/LatinExtendedA.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Italic/LatinExtendedB.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Italic/LetterlikeSymbols.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Italic/Main.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Italic/MathOperators.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Regular/BasicLatin.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Regular/CombDiacritMarks.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Regular/GeometricShapes.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Regular/GreekAndCoptic.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Regular/LatinExtendedA.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Regular/LatinExtendedB.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Regular/LetterlikeSymbols.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Regular/Main.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Regular/MathOperators.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Regular/MiscSymbols.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Regular/SpacingModLetters.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Main/Regular/SuppMathOperators.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Math/BoldItalic/Main.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Math/Italic/Main.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/SansSerif/Bold/BasicLatin.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/SansSerif/Bold/CombDiacritMarks.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/SansSerif/Bold/Main.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/SansSerif/Bold/Other.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/SansSerif/Italic/BasicLatin.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/SansSerif/Italic/CombDiacritMarks.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/SansSerif/Italic/Main.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/SansSerif/Italic/Other.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/SansSerif/Regular/BasicLatin.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/SansSerif/Regular/CombDiacritMarks.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/SansSerif/Regular/Main.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/SansSerif/Regular/Other.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Script/Regular/BasicLatin.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Script/Regular/Main.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Size1/Regular/Main.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Size2/Regular/Main.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Size3/Regular/Main.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Size4/Regular/Main.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Typewriter/Regular/BasicLatin.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Typewriter/Regular/CombDiacritMarks.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Typewriter/Regular/Main.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/Typewriter/Regular/Other.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/fontdata-extra.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/fonts/TeX/fontdata.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/MathJax/jax/output/SVG/jax.js +19 -0
- mim_solvers-0.0.5/cmake/doxygen/doxyfile.awk +10 -0
- mim_solvers-0.0.5/cmake/doxygen/doxygen.css +660 -0
- mim_solvers-0.0.5/cmake/doxygen/footer.html +21 -0
- mim_solvers-0.0.5/cmake/doxygen/header-mathjax.html +20 -0
- mim_solvers-0.0.5/cmake/doxygen/header.html +21 -0
- mim_solvers-0.0.5/cmake/doxygen/header.tex +53 -0
- mim_solvers-0.0.5/cmake/doxygen/style.rtf +78 -0
- mim_solvers-0.0.5/cmake/doxygen/style.tex +96 -0
- mim_solvers-0.0.5/cmake/doxygen/tabs.css +59 -0
- mim_solvers-0.0.5/cmake/doxygen.cmake +734 -0
- mim_solvers-0.0.5/cmake/dynamic_graph/python-module-py.cc.in +32 -0
- mim_solvers-0.0.5/cmake/dynamic_graph/submodule/__init__.py.cmake +18 -0
- mim_solvers-0.0.5/cmake/eigen.cmake +58 -0
- mim_solvers-0.0.5/cmake/filefilter.txt +51 -0
- mim_solvers-0.0.5/cmake/find-external/CDD/FindCDD.cmake +53 -0
- mim_solvers-0.0.5/cmake/find-external/CLP/FindCLP.cmake +52 -0
- mim_solvers-0.0.5/cmake/find-external/CoinUtils/FindCoinUtils.cmake +59 -0
- mim_solvers-0.0.5/cmake/find-external/CppAD/Findcppad.cmake +38 -0
- mim_solvers-0.0.5/cmake/find-external/CppAD/Findcppadcg.cmake +32 -0
- mim_solvers-0.0.5/cmake/find-external/GMP/FindGMP.cmake +29 -0
- mim_solvers-0.0.5/cmake/find-external/Julia/FindJulia.cmake +183 -0
- mim_solvers-0.0.5/cmake/find-external/MPFR/FindMPFR.cmake +90 -0
- mim_solvers-0.0.5/cmake/find-external/OpenMP/FindOpenMP.cmake +772 -0
- mim_solvers-0.0.5/cmake/find-external/OpenRTM/FindOpenRTM.cmake +189 -0
- mim_solvers-0.0.5/cmake/find-external/Qhull/FindQhull.cmake +224 -0
- mim_solvers-0.0.5/cmake/find-external/Simde/FindSimde.cmake +39 -0
- mim_solvers-0.0.5/cmake/find-external/TinyXML/FindTinyXML.cmake +41 -0
- mim_solvers-0.0.5/cmake/find-external/assimp/Findassimp.cmake +99 -0
- mim_solvers-0.0.5/cmake/find-external/glpk/Findglpk.cmake +55 -0
- mim_solvers-0.0.5/cmake/find-external/qpOASES/FindqpOASES.cmake +59 -0
- mim_solvers-0.0.5/cmake/fix-license.sh +37 -0
- mim_solvers-0.0.5/cmake/geometric-tools.cmake +71 -0
- mim_solvers-0.0.5/cmake/git-archive-all.py +603 -0
- mim_solvers-0.0.5/cmake/git-archive-all.sh +255 -0
- mim_solvers-0.0.5/cmake/github/update-doxygen-doc.sh +356 -0
- mim_solvers-0.0.5/cmake/gitlog-to-changelog +433 -0
- mim_solvers-0.0.5/cmake/gtest/CMakeLists.txt.in +15 -0
- mim_solvers-0.0.5/cmake/gtest.cmake +68 -0
- mim_solvers-0.0.5/cmake/header.cmake +223 -0
- mim_solvers-0.0.5/cmake/hpp/doc/layout.xml +195 -0
- mim_solvers-0.0.5/cmake/hpp/doc.cmake +29 -0
- mim_solvers-0.0.5/cmake/hpp/idl/omniidl_be_python_with_docstring.py +144 -0
- mim_solvers-0.0.5/cmake/hpp.cmake +80 -0
- mim_solvers-0.0.5/cmake/ide.cmake +104 -0
- mim_solvers-0.0.5/cmake/idl.cmake +209 -0
- mim_solvers-0.0.5/cmake/idlrtc.cmake +74 -0
- mim_solvers-0.0.5/cmake/image/visp.cmake +51 -0
- mim_solvers-0.0.5/cmake/install-data.cmake +28 -0
- mim_solvers-0.0.5/cmake/julia.cmake +18 -0
- mim_solvers-0.0.5/cmake/kineo.cmake +85 -0
- mim_solvers-0.0.5/cmake/lapack.cmake +59 -0
- mim_solvers-0.0.5/cmake/logging.cmake +191 -0
- mim_solvers-0.0.5/cmake/man.cmake +56 -0
- mim_solvers-0.0.5/cmake/memorycheck_unit_test.cmake.in +32 -0
- mim_solvers-0.0.5/cmake/metapodfromurdf.cmake +35 -0
- mim_solvers-0.0.5/cmake/modernize-links.cmake +44 -0
- mim_solvers-0.0.5/cmake/msvc-specific.cmake +211 -0
- mim_solvers-0.0.5/cmake/msvc.vcxproj.user.in +10 -0
- mim_solvers-0.0.5/cmake/openhrp.cmake +65 -0
- mim_solvers-0.0.5/cmake/openhrpcontroller.cmake +57 -0
- mim_solvers-0.0.5/cmake/openrtm.cmake +48 -0
- mim_solvers-0.0.5/cmake/oscheck.cmake +44 -0
- mim_solvers-0.0.5/cmake/package-config.cmake +295 -0
- mim_solvers-0.0.5/cmake/pkg-config.cmake +1184 -0
- mim_solvers-0.0.5/cmake/pkg-config.pc.cmake +22 -0
- mim_solvers-0.0.5/cmake/portability.cmake +77 -0
- mim_solvers-0.0.5/cmake/post-project.cmake +68 -0
- mim_solvers-0.0.5/cmake/pthread.cmake +45 -0
- mim_solvers-0.0.5/cmake/pyproject.py +30 -0
- mim_solvers-0.0.5/cmake/python-helpers.cmake +115 -0
- mim_solvers-0.0.5/cmake/python.cmake +532 -0
- mim_solvers-0.0.5/cmake/qhull.cmake +130 -0
- mim_solvers-0.0.5/cmake/release.cmake +154 -0
- mim_solvers-0.0.5/cmake/relpath.cmake +49 -0
- mim_solvers-0.0.5/cmake/ros.cmake +167 -0
- mim_solvers-0.0.5/cmake/sdformat.cmake +48 -0
- mim_solvers-0.0.5/cmake/setup.cfg +4 -0
- mim_solvers-0.0.5/cmake/shared-library.cmake +45 -0
- mim_solvers-0.0.5/cmake/sphinx/conf.py.in +0 -0
- mim_solvers-0.0.5/cmake/sphinx/index.rst.in +0 -0
- mim_solvers-0.0.5/cmake/sphinx.cmake +133 -0
- mim_solvers-0.0.5/cmake/stubgen/CMakeLists.txt.in +15 -0
- mim_solvers-0.0.5/cmake/stubs.cmake +155 -0
- mim_solvers-0.0.5/cmake/swig.cmake +57 -0
- mim_solvers-0.0.5/cmake/test.cmake +244 -0
- mim_solvers-0.0.5/cmake/uninstall.cmake +78 -0
- mim_solvers-0.0.5/cmake/version-script-test.lds +2 -0
- mim_solvers-0.0.5/cmake/version-script.cmake +70 -0
- mim_solvers-0.0.5/cmake/version.cmake +269 -0
- mim_solvers-0.0.5/cmake/warning.hh.cmake +35 -0
- mim_solvers-0.0.5/cmake/xacro.cmake +100 -0
- mim_solvers-0.0.5/examples/humanoid_taichi.py +285 -0
- mim_solvers-0.0.5/examples/solo12.py +253 -0
- mim_solvers-0.0.5/examples/ur5.py +156 -0
- mim_solvers-0.0.5/examples/utils_solo12.py +206 -0
- mim_solvers-0.0.5/include/mim_solvers/csqp.hpp +329 -0
- mim_solvers-0.0.5/include/mim_solvers/csqp_proxqp.hpp +242 -0
- mim_solvers-0.0.5/include/mim_solvers/ddp.hpp +373 -0
- mim_solvers-0.0.5/include/mim_solvers/fddp.hpp +152 -0
- mim_solvers-0.0.5/include/mim_solvers/kkt.hpp +102 -0
- mim_solvers-0.0.5/include/mim_solvers/python.hpp +36 -0
- mim_solvers-0.0.5/include/mim_solvers/sqp.hpp +163 -0
- mim_solvers-0.0.5/include/mim_solvers/utils/callbacks.hpp +71 -0
- mim_solvers-0.0.5/package.xml +29 -0
- mim_solvers-0.0.5/pyproject.toml +27 -0
- mim_solvers-0.0.5/python/__init__.py +9 -0
- mim_solvers-0.0.5/python/csqp.py +229 -0
- mim_solvers-0.0.5/python/qp_solvers/py_osqp.py +121 -0
- mim_solvers-0.0.5/python/qp_solvers/qpsolvers.py +744 -0
- mim_solvers-0.0.5/python/qp_solvers/stagewise_qp.py +475 -0
- mim_solvers-0.0.5/python/qp_solvers/stagewise_qp_kkt.py +142 -0
- mim_solvers-0.0.5/python/sqp.py +330 -0
- mim_solvers-0.0.5/python/sqp_cpp.py +195 -0
- mim_solvers-0.0.5/src/csqp.cpp +1133 -0
- mim_solvers-0.0.5/src/csqp_proxqp.cpp +530 -0
- mim_solvers-0.0.5/src/ddp.cpp +624 -0
- mim_solvers-0.0.5/src/fddp.cpp +362 -0
- mim_solvers-0.0.5/src/kkt.cpp +358 -0
- mim_solvers-0.0.5/src/main.cpp +14 -0
- mim_solvers-0.0.5/src/sqp.cpp +375 -0
- mim_solvers-0.0.5/src/utils/callbacks.cpp +160 -0
- mim_solvers-0.0.5/tests/CMakeLists.txt +41 -0
- mim_solvers-0.0.5/tests/factory/constraints.cpp +74 -0
- mim_solvers-0.0.5/tests/factory/constraints.hpp +68 -0
- mim_solvers-0.0.5/tests/factory/model.cpp +120 -0
- mim_solvers-0.0.5/tests/factory/model.hpp +66 -0
- mim_solvers-0.0.5/tests/factory/point-mass.cpp +420 -0
- mim_solvers-0.0.5/tests/factory/point-mass.hpp +204 -0
- mim_solvers-0.0.5/tests/factory/problem.cpp +107 -0
- mim_solvers-0.0.5/tests/factory/problem.hpp +60 -0
- mim_solvers-0.0.5/tests/factory/solver.cpp +91 -0
- mim_solvers-0.0.5/tests/factory/solver.hpp +72 -0
- mim_solvers-0.0.5/tests/python/Testing/Temporary/CTestCostData.txt +1 -0
- mim_solvers-0.0.5/tests/python/problems.py +535 -0
- mim_solvers-0.0.5/tests/python/test_clqr_convergence_all.py +141 -0
- mim_solvers-0.0.5/tests/python/test_clqr_osqp.py +52 -0
- mim_solvers-0.0.5/tests/python/test_clqr_stagewise_admm.py +87 -0
- mim_solvers-0.0.5/tests/python/test_lqr_problem.py +62 -0
- mim_solvers-0.0.5/tests/python/test_qp_solo_all.py +303 -0
- mim_solvers-0.0.5/tests/python/test_qp_ur5_all.py +214 -0
- mim_solvers-0.0.5/tests/python/test_sqp.py +72 -0
- mim_solvers-0.0.5/tests/python/test_sqp_taichi_convergence.py +78 -0
- mim_solvers-0.0.5/tests/python/test_sqp_ur5_convergence.py +80 -0
- mim_solvers-0.0.5/tests/python/test_ur5_csqp.py +166 -0
- mim_solvers-0.0.5/tests/random_generator.hpp +43 -0
- mim_solvers-0.0.5/tests/test_solvers.cpp +439 -0
- mim_solvers-0.0.5/tests/unittest_common.hpp +142 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
name: Test
|
|
2
|
+
|
|
3
|
+
on: [push, pull_request]
|
|
4
|
+
|
|
5
|
+
env:
|
|
6
|
+
CTEST_OUTPUT_ON_FAILURE: ON
|
|
7
|
+
CTEST_PARALLEL_LEVEL: 4
|
|
8
|
+
CTEST_PROGRESS_OUTPUT: ON
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
test:
|
|
12
|
+
name: "Test python ${{ matrix.python-version }}"
|
|
13
|
+
runs-on: "ubuntu-latest"
|
|
14
|
+
strategy:
|
|
15
|
+
matrix:
|
|
16
|
+
python-version: ["3.8", "3.9", "3.10", "3.11"]
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v4
|
|
19
|
+
with:
|
|
20
|
+
submodules: 'true'
|
|
21
|
+
- uses: actions/setup-python@v5
|
|
22
|
+
with:
|
|
23
|
+
python-version: ${{ matrix.python-version }}
|
|
24
|
+
- run: python -m pip install crocoddyl[build] proxsuite[build]
|
|
25
|
+
- run: echo "CMAKE_PREFIX_PATH=$(cmeel cmake)" >> $GITHUB_ENV
|
|
26
|
+
- run: cmake -B build -S .
|
|
27
|
+
- run: cmake --build build -j 4
|
|
28
|
+
|
|
29
|
+
- run: python -m pip install osqp
|
|
30
|
+
- run: echo "LD_LIBRARY_PATH=$(cmeel lib)" >> $GITHUB_ENV
|
|
31
|
+
- run: cmake --build build -t test
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
name: Release on PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v*"
|
|
7
|
+
branches:
|
|
8
|
+
- cmeel
|
|
9
|
+
pull_request:
|
|
10
|
+
branches:
|
|
11
|
+
- cmeel
|
|
12
|
+
|
|
13
|
+
env:
|
|
14
|
+
CMEEL_LOG_LEVEL: DEBUG
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
wheel:
|
|
18
|
+
name: "Build ${{ matrix.python }} ${{ matrix.os }}"
|
|
19
|
+
runs-on: "${{ matrix.os }}"
|
|
20
|
+
strategy:
|
|
21
|
+
matrix:
|
|
22
|
+
os: ["ubuntu-24.04", "ubuntu-24.04-arm", "macos-13", "macos-14"]
|
|
23
|
+
python: ["cp38", "cp39", "cp310", "cp311", "cp312", "cp313"]
|
|
24
|
+
exclude:
|
|
25
|
+
- os: "macos-14"
|
|
26
|
+
python: "cp38"
|
|
27
|
+
steps:
|
|
28
|
+
- uses: actions/checkout@v4
|
|
29
|
+
with:
|
|
30
|
+
submodules: 'true'
|
|
31
|
+
- run: pipx install cibuildwheel
|
|
32
|
+
- run: echo "OPENMP=OFF" >> $GITHUB_ENV
|
|
33
|
+
if: ${{ startsWith(matrix.os, 'macos') }}
|
|
34
|
+
- run: echo "OPENMP=ON" >> $GITHUB_ENV
|
|
35
|
+
if: ${{ startsWith(matrix.os, 'ubuntu') }}
|
|
36
|
+
- run: cibuildwheel
|
|
37
|
+
env:
|
|
38
|
+
CIBW_BUILD: "${{ matrix.python }}-*"
|
|
39
|
+
CIBW_SKIP: "*-musllinux* *i686"
|
|
40
|
+
CIBW_MANYLINUX_X86_64_IMAGE: "quay.io/pypa/manylinux_2_28_x86_64"
|
|
41
|
+
CIBW_MANYLINUX_AARCH64_IMAGE: "quay.io/pypa/manylinux_2_28_aarch64"
|
|
42
|
+
CIBW_REPAIR_WHEEL_COMMAND: ""
|
|
43
|
+
CIBW_ENVIRONMENT: CMEEL_LOG_LEVEL="DEBUG" CMEEL_JOBS="1" CMEEL_RUN_TESTS="false" CMEEL_CMAKE_ARGS="-DBUILD_WITH_MULTITHREADS=$OPENMP"
|
|
44
|
+
- uses: actions/upload-artifact@v4
|
|
45
|
+
with:
|
|
46
|
+
name: "artifact-${{ matrix.os }}-${{ matrix.python }}"
|
|
47
|
+
path: wheelhouse
|
|
48
|
+
|
|
49
|
+
test:
|
|
50
|
+
needs: ["wheel"]
|
|
51
|
+
name: "Test ${{ matrix.python }} ${{ matrix.os }}"
|
|
52
|
+
runs-on: "${{ matrix.os }}"
|
|
53
|
+
strategy:
|
|
54
|
+
matrix:
|
|
55
|
+
os: ["ubuntu-24.04", "ubuntu-24.04-arm", "macos-13", "macos-14"]
|
|
56
|
+
python: ["cp38", "cp39", "cp310", "cp311", "cp312", "cp313"]
|
|
57
|
+
exclude:
|
|
58
|
+
- os: "macos-14"
|
|
59
|
+
python: "cp38"
|
|
60
|
+
steps:
|
|
61
|
+
- uses: actions/download-artifact@v4
|
|
62
|
+
with:
|
|
63
|
+
name: "artifact-${{ matrix.os }}-${{ matrix.python }}"
|
|
64
|
+
path: wheelhouse
|
|
65
|
+
- run: echo "${{ matrix.python }}" | sed "s/cp3/PYTHON_VERSION=3./" >> "${GITHUB_ENV}"
|
|
66
|
+
- uses: actions/setup-python@v5
|
|
67
|
+
with:
|
|
68
|
+
python-version: ${{ env.PYTHON_VERSION }}
|
|
69
|
+
- name: index
|
|
70
|
+
run: |
|
|
71
|
+
python -m pip install -U pip
|
|
72
|
+
python -m pip install wheel simple503
|
|
73
|
+
python -m simple503 --base-url ${{ github.workspace }}/wheelhouse ${{ github.workspace }}/wheelhouse
|
|
74
|
+
- name: install deps
|
|
75
|
+
run: python -m pip install build cmeel[build] crocoddyl[build] proxsuite[build] cmeel-boost
|
|
76
|
+
- name: install wheel
|
|
77
|
+
run: python -m pip install -i "file://${{ github.workspace }}/wheelhouse" cmeel-boost
|
|
78
|
+
|
|
79
|
+
sdist:
|
|
80
|
+
runs-on: ubuntu-24.04
|
|
81
|
+
steps:
|
|
82
|
+
- uses: actions/checkout@v4
|
|
83
|
+
with:
|
|
84
|
+
submodules: 'true'
|
|
85
|
+
- uses: actions/setup-python@v5
|
|
86
|
+
with:
|
|
87
|
+
python-version: 3.13
|
|
88
|
+
- name: setup
|
|
89
|
+
run: |
|
|
90
|
+
python -m pip install -U pip
|
|
91
|
+
python -m pip install build cmeel[build] crocoddyl[build] proxsuite[build] cmeel-boost
|
|
92
|
+
- name: build sdist
|
|
93
|
+
run: python -m build -nso dist .
|
|
94
|
+
- uses: actions/upload-artifact@v4
|
|
95
|
+
with:
|
|
96
|
+
name: artifact-sdist
|
|
97
|
+
path: dist
|
|
98
|
+
|
|
99
|
+
release:
|
|
100
|
+
needs: ["test", "sdist"]
|
|
101
|
+
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
|
|
102
|
+
runs-on: ubuntu-24.04
|
|
103
|
+
environment: release
|
|
104
|
+
permissions:
|
|
105
|
+
id-token: write
|
|
106
|
+
contents: write
|
|
107
|
+
steps:
|
|
108
|
+
- uses: actions/checkout@v4
|
|
109
|
+
with:
|
|
110
|
+
ref: ${{ github.ref_name }}
|
|
111
|
+
- run: curl https://github.com/nim65s.gpg | gpg --import
|
|
112
|
+
- name: validate signature
|
|
113
|
+
run: >
|
|
114
|
+
git verify-tag --raw ${{ github.ref_name }} 2>&1
|
|
115
|
+
| grep -q 'VALIDSIG 9B1A79065D2F2B806C8A5A1C7D2ACDAF4653CF28'
|
|
116
|
+
- uses: actions/download-artifact@v4
|
|
117
|
+
with:
|
|
118
|
+
merge-multiple: true
|
|
119
|
+
path: dist
|
|
120
|
+
- name: Publish package distributions to PyPI
|
|
121
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
122
|
+
with:
|
|
123
|
+
skip-existing: true
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
*.data
|
|
2
|
+
*.vscode
|
|
3
|
+
# Byte-compiled / optimized / DLL files
|
|
4
|
+
__pycache__/
|
|
5
|
+
*.py[cod]
|
|
6
|
+
*$py.class
|
|
7
|
+
|
|
8
|
+
# C extensions
|
|
9
|
+
*.so
|
|
10
|
+
|
|
11
|
+
# Distribution / packaging
|
|
12
|
+
.Python
|
|
13
|
+
build/
|
|
14
|
+
develop-eggs/
|
|
15
|
+
dist/
|
|
16
|
+
downloads/
|
|
17
|
+
eggs/
|
|
18
|
+
.eggs/
|
|
19
|
+
lib/
|
|
20
|
+
lib64/
|
|
21
|
+
parts/
|
|
22
|
+
sdist/
|
|
23
|
+
var/
|
|
24
|
+
wheels/
|
|
25
|
+
share/python-wheels/
|
|
26
|
+
*.egg-info/
|
|
27
|
+
.installed.cfg
|
|
28
|
+
*.egg
|
|
29
|
+
MANIFEST
|
|
30
|
+
|
|
31
|
+
# PyInstaller
|
|
32
|
+
# Usually these files are written by a python script from a template
|
|
33
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
34
|
+
*.manifest
|
|
35
|
+
*.spec
|
|
36
|
+
|
|
37
|
+
# Installer logs
|
|
38
|
+
pip-log.txt
|
|
39
|
+
pip-delete-this-directory.txt
|
|
40
|
+
|
|
41
|
+
# Unit test / coverage reports
|
|
42
|
+
htmlcov/
|
|
43
|
+
.tox/
|
|
44
|
+
.nox/
|
|
45
|
+
.coverage
|
|
46
|
+
.coverage.*
|
|
47
|
+
.cache
|
|
48
|
+
nosetests.xml
|
|
49
|
+
coverage.xml
|
|
50
|
+
*.cover
|
|
51
|
+
*.py,cover
|
|
52
|
+
.hypothesis/
|
|
53
|
+
.pytest_cache/
|
|
54
|
+
cover/
|
|
55
|
+
|
|
56
|
+
# Translations
|
|
57
|
+
*.mo
|
|
58
|
+
*.pot
|
|
59
|
+
|
|
60
|
+
# Django stuff:
|
|
61
|
+
*.log
|
|
62
|
+
local_settings.py
|
|
63
|
+
db.sqlite3
|
|
64
|
+
db.sqlite3-journal
|
|
65
|
+
|
|
66
|
+
# Flask stuff:
|
|
67
|
+
instance/
|
|
68
|
+
.webassets-cache
|
|
69
|
+
|
|
70
|
+
# Scrapy stuff:
|
|
71
|
+
.scrapy
|
|
72
|
+
|
|
73
|
+
# Sphinx documentation
|
|
74
|
+
docs/_build/
|
|
75
|
+
|
|
76
|
+
# PyBuilder
|
|
77
|
+
.pybuilder/
|
|
78
|
+
target/
|
|
79
|
+
|
|
80
|
+
# Jupyter Notebook
|
|
81
|
+
.ipynb_checkpoints
|
|
82
|
+
|
|
83
|
+
# IPython
|
|
84
|
+
profile_default/
|
|
85
|
+
ipython_config.py
|
|
86
|
+
|
|
87
|
+
# pyenv
|
|
88
|
+
# For a library or package, you might want to ignore these files since the code is
|
|
89
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
90
|
+
# .python-version
|
|
91
|
+
|
|
92
|
+
# pipenv
|
|
93
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
94
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
95
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
96
|
+
# install all needed dependencies.
|
|
97
|
+
#Pipfile.lock
|
|
98
|
+
|
|
99
|
+
# poetry
|
|
100
|
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
|
101
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
102
|
+
# commonly ignored for libraries.
|
|
103
|
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
|
104
|
+
#poetry.lock
|
|
105
|
+
|
|
106
|
+
# pdm
|
|
107
|
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
|
108
|
+
#pdm.lock
|
|
109
|
+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
|
110
|
+
# in version control.
|
|
111
|
+
# https://pdm.fming.dev/#use-with-ide
|
|
112
|
+
.pdm.toml
|
|
113
|
+
|
|
114
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
|
115
|
+
__pypackages__/
|
|
116
|
+
|
|
117
|
+
# Celery stuff
|
|
118
|
+
celerybeat-schedule
|
|
119
|
+
celerybeat.pid
|
|
120
|
+
|
|
121
|
+
# SageMath parsed files
|
|
122
|
+
*.sage.py
|
|
123
|
+
|
|
124
|
+
# Environments
|
|
125
|
+
.env
|
|
126
|
+
.venv
|
|
127
|
+
env/
|
|
128
|
+
venv/
|
|
129
|
+
ENV/
|
|
130
|
+
env.bak/
|
|
131
|
+
venv.bak/
|
|
132
|
+
|
|
133
|
+
# Spyder project settings
|
|
134
|
+
.spyderproject
|
|
135
|
+
.spyproject
|
|
136
|
+
|
|
137
|
+
# Rope project settings
|
|
138
|
+
.ropeproject
|
|
139
|
+
|
|
140
|
+
# mkdocs documentation
|
|
141
|
+
/site
|
|
142
|
+
|
|
143
|
+
# mypy
|
|
144
|
+
.mypy_cache/
|
|
145
|
+
.dmypy.json
|
|
146
|
+
dmypy.json
|
|
147
|
+
|
|
148
|
+
# Pyre type checker
|
|
149
|
+
.pyre/
|
|
150
|
+
|
|
151
|
+
# pytype static type analyzer
|
|
152
|
+
.pytype/
|
|
153
|
+
|
|
154
|
+
# Cython debug symbols
|
|
155
|
+
cython_debug/
|
|
156
|
+
|
|
157
|
+
# PyCharm
|
|
158
|
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
|
159
|
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
|
160
|
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
|
161
|
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
|
162
|
+
#.idea/
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
pull_request_rules:
|
|
2
|
+
- name: merge automatically when CI passes and PR is approved
|
|
3
|
+
conditions:
|
|
4
|
+
- check-success = "Build cp310 macos-13"
|
|
5
|
+
- check-success = "Build cp310 macos-14"
|
|
6
|
+
- check-success = "Build cp310 ubuntu-24.04"
|
|
7
|
+
- check-success = "Build cp310 ubuntu-24.04-arm"
|
|
8
|
+
- check-success = "Build cp311 macos-13"
|
|
9
|
+
- check-success = "Build cp311 macos-14"
|
|
10
|
+
- check-success = "Build cp311 ubuntu-24.04"
|
|
11
|
+
- check-success = "Build cp311 ubuntu-24.04-arm"
|
|
12
|
+
- check-success = "Build cp312 macos-13"
|
|
13
|
+
- check-success = "Build cp312 macos-14"
|
|
14
|
+
- check-success = "Build cp312 ubuntu-24.04"
|
|
15
|
+
- check-success = "Build cp312 ubuntu-24.04-arm"
|
|
16
|
+
- check-success = "Build cp313 macos-13"
|
|
17
|
+
- check-success = "Build cp313 macos-14"
|
|
18
|
+
- check-success = "Build cp313 ubuntu-24.04"
|
|
19
|
+
- check-success = "Build cp313 ubuntu-24.04-arm"
|
|
20
|
+
- check-success = "Build cp38 macos-13"
|
|
21
|
+
- check-success = "Build cp38 ubuntu-24.04"
|
|
22
|
+
- check-success = "Build cp38 ubuntu-24.04-arm"
|
|
23
|
+
- check-success = "Build cp39 macos-13"
|
|
24
|
+
- check-success = "Build cp39 macos-14"
|
|
25
|
+
- check-success = "Build cp39 ubuntu-24.04"
|
|
26
|
+
- check-success = "Build cp39 ubuntu-24.04-arm"
|
|
27
|
+
- check-success = "sdist"
|
|
28
|
+
- check-success = "pre-commit.ci - pr"
|
|
29
|
+
- or:
|
|
30
|
+
- approved-reviews-by = nim65s
|
|
31
|
+
- author = nim65s
|
|
32
|
+
- author = dependabot[bot]
|
|
33
|
+
- author = github-actions[bot]
|
|
34
|
+
- author = pre-commit-ci[bot]
|
|
35
|
+
actions:
|
|
36
|
+
merge:
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
cmake_minimum_required(VERSION 3.10)
|
|
2
|
+
|
|
3
|
+
# Project properties
|
|
4
|
+
set(PROJECT_NAMESPACE machines-in-motion)
|
|
5
|
+
set(PROJECT_NAME mim_solvers)
|
|
6
|
+
set(PROJECT_DESCRIPTION
|
|
7
|
+
"Numerical solvers of the Machines in Motion Laboratory.")
|
|
8
|
+
set(PROJECT_URL https://github.com/${PROJECT_NAMESPACE}/${PROJECT_NAME})
|
|
9
|
+
set(PROJECT_CUSTOM_HEADER_EXTENSION "hpp")
|
|
10
|
+
set(PROJECT_USE_CMAKE_EXPORT TRUE)
|
|
11
|
+
set(PROJECT_USE_KEYWORD_LINK_LIBRARIES TRUE)
|
|
12
|
+
|
|
13
|
+
set(CXX_DISABLE_WERROR True)
|
|
14
|
+
set(CMAKE_VERBOSE_MAKEFILE True)
|
|
15
|
+
|
|
16
|
+
add_compile_options(--warn-no-conversion)
|
|
17
|
+
|
|
18
|
+
# Project options
|
|
19
|
+
option(BUILD_PYTHON_INTERFACE "Build the python binding" ON)
|
|
20
|
+
option(SUFFIX_SO_VERSION "Suffix library name with its version" ON)
|
|
21
|
+
option(BUILD_WITH_PROXSUITE "Build the ProxQP-based SQP solver" OFF)
|
|
22
|
+
option(BUILD_BENCHMARKS "Build the benchmarks" OFF)
|
|
23
|
+
option(CHECK_RUNTIME_MALLOC "Check eigen mallocs" OFF)
|
|
24
|
+
option(ENABLE_VECTORIZATION
|
|
25
|
+
"Enable vectorization and further processor-related optimizations" OFF)
|
|
26
|
+
option(BUILD_WITH_MULTITHREADS
|
|
27
|
+
"Build the library with the Multithreading support (required OpenMP)"
|
|
28
|
+
OFF)
|
|
29
|
+
|
|
30
|
+
# Project configuration
|
|
31
|
+
set(PROJECT_USE_CMAKE_EXPORT TRUE)
|
|
32
|
+
set(CUSTOM_HEADER_DIR ${PROJECT_NAME})
|
|
33
|
+
|
|
34
|
+
if(ENABLE_VECTORIZATION)
|
|
35
|
+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
|
|
36
|
+
endif()
|
|
37
|
+
|
|
38
|
+
# Check if the submodule cmake have been initialized
|
|
39
|
+
set(JRL_CMAKE_MODULES "${CMAKE_CURRENT_LIST_DIR}/cmake")
|
|
40
|
+
if(EXISTS "${JRL_CMAKE_MODULES}/base.cmake")
|
|
41
|
+
message(STATUS "JRL cmakemodules found in 'cmake/' git submodule")
|
|
42
|
+
else()
|
|
43
|
+
find_package(jrl-cmakemodules QUIET CONFIG)
|
|
44
|
+
if(jrl-cmakemodules_FOUND)
|
|
45
|
+
get_property(
|
|
46
|
+
JRL_CMAKE_MODULES
|
|
47
|
+
TARGET jrl-cmakemodules::jrl-cmakemodules
|
|
48
|
+
PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
|
|
49
|
+
message(STATUS "JRL cmakemodules found on system at ${JRL_CMAKE_MODULES}")
|
|
50
|
+
elseif(${CMAKE_VERSION} VERSION_LESS "3.14.0")
|
|
51
|
+
message(
|
|
52
|
+
FATAL_ERROR
|
|
53
|
+
"\nCan't find jrl-cmakemodules. Please either:\n"
|
|
54
|
+
" - use git submodule: 'git submodule update --init'\n"
|
|
55
|
+
" - or install https://github.com/jrl-umi3218/jrl-cmakemodules\n"
|
|
56
|
+
" - or upgrade your CMake version to >= 3.14 to allow automatic fetching\n"
|
|
57
|
+
)
|
|
58
|
+
else()
|
|
59
|
+
message(STATUS "JRL cmakemodules not found. Let's fetch it.")
|
|
60
|
+
include(FetchContent)
|
|
61
|
+
FetchContent_Declare(
|
|
62
|
+
"jrl-cmakemodules"
|
|
63
|
+
GIT_REPOSITORY "https://github.com/jrl-umi3218/jrl-cmakemodules.git")
|
|
64
|
+
FetchContent_MakeAvailable("jrl-cmakemodules")
|
|
65
|
+
FetchContent_GetProperties("jrl-cmakemodules" SOURCE_DIR JRL_CMAKE_MODULES)
|
|
66
|
+
endif()
|
|
67
|
+
endif()
|
|
68
|
+
|
|
69
|
+
# JRL-cmakemodule setup
|
|
70
|
+
include(${JRL_CMAKE_MODULES}/base.cmake)
|
|
71
|
+
# Project definition
|
|
72
|
+
compute_project_args(PROJECT_ARGS LANGUAGES CXX)
|
|
73
|
+
project(${PROJECT_NAME} ${PROJECT_ARGS})
|
|
74
|
+
|
|
75
|
+
include(${JRL_CMAKE_MODULES}/boost.cmake)
|
|
76
|
+
include(${JRL_CMAKE_MODULES}/apple.cmake)
|
|
77
|
+
include(${JRL_CMAKE_MODULES}/ide.cmake)
|
|
78
|
+
include(CMakeDependentOption)
|
|
79
|
+
|
|
80
|
+
# If needed, fix CMake policy for APPLE systems
|
|
81
|
+
apply_default_apple_configuration()
|
|
82
|
+
|
|
83
|
+
# Project dependencies
|
|
84
|
+
find_package(Boost REQUIRED COMPONENTS unit_test_framework)
|
|
85
|
+
add_project_dependency(crocoddyl 2.0.0 REQUIRED)
|
|
86
|
+
add_project_dependency(eigenpy 2.7.10 REQUIRED)
|
|
87
|
+
add_project_dependency(example-robot-data 4.0.7 REQUIRED PKG_CONFIG_REQUIRES
|
|
88
|
+
"example-robot-data >= 4.0.7")
|
|
89
|
+
|
|
90
|
+
if(BUILD_WITH_PROXSUITE)
|
|
91
|
+
add_project_dependency(proxsuite REQUIRED)
|
|
92
|
+
add_definitions(-DMIM_SOLVERS_WITH_PROXQP)
|
|
93
|
+
endif()
|
|
94
|
+
|
|
95
|
+
if(BUILD_WITH_MULTITHREADS)
|
|
96
|
+
find_package(OpenMP REQUIRED COMPONENTS CXX)
|
|
97
|
+
endif()
|
|
98
|
+
|
|
99
|
+
if(BUILD_PYTHON_INTERFACE)
|
|
100
|
+
set(PY_NAME ${PROJECT_NAME}_pywrap)
|
|
101
|
+
set(${PY_NAME}_INSTALL_DIR ${PYTHON_SITELIB}/${PY_NAME})
|
|
102
|
+
endif()
|
|
103
|
+
|
|
104
|
+
if(CHECK_RUNTIME_MALLOC)
|
|
105
|
+
message(STATUS "Check if some memory allocations are performed at runtime.")
|
|
106
|
+
add_definitions(-DMIM_SOLVERS_EIGEN_CHECK_MALLOC)
|
|
107
|
+
add_definitions(-DEIGEN_RUNTIME_NO_MALLOC)
|
|
108
|
+
endif(CHECK_RUNTIME_MALLOC)
|
|
109
|
+
|
|
110
|
+
# Main Library
|
|
111
|
+
set(${PROJECT_NAME}_HEADERS
|
|
112
|
+
include/${PROJECT_NAME}/kkt.hpp
|
|
113
|
+
include/${PROJECT_NAME}/ddp.hpp
|
|
114
|
+
include/${PROJECT_NAME}/fddp.hpp
|
|
115
|
+
include/${PROJECT_NAME}/sqp.hpp
|
|
116
|
+
include/${PROJECT_NAME}/csqp.hpp
|
|
117
|
+
include/${PROJECT_NAME}/utils/callbacks.hpp)
|
|
118
|
+
|
|
119
|
+
set(${PROJECT_NAME}_SOURCES src/kkt.cpp src/ddp.cpp src/fddp.cpp src/sqp.cpp
|
|
120
|
+
src/csqp.cpp src/utils/callbacks.cpp)
|
|
121
|
+
|
|
122
|
+
if(BUILD_WITH_PROXSUITE)
|
|
123
|
+
list(APPEND ${PROJECT_NAME}_HEADERS include/${PROJECT_NAME}/csqp_proxqp.hpp)
|
|
124
|
+
list(APPEND ${PROJECT_NAME}_SOURCES src/csqp_proxqp.cpp)
|
|
125
|
+
endif(BUILD_WITH_PROXSUITE)
|
|
126
|
+
|
|
127
|
+
add_library(${PROJECT_NAME} SHARED ${${PROJECT_NAME}_SOURCES}
|
|
128
|
+
${${PROJECT_NAME}_HEADERS})
|
|
129
|
+
target_include_directories(
|
|
130
|
+
${PROJECT_NAME} PUBLIC $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
|
|
131
|
+
|
|
132
|
+
if(SUFFIX_SO_VERSION)
|
|
133
|
+
set_target_properties(${PROJECT_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION})
|
|
134
|
+
endif()
|
|
135
|
+
|
|
136
|
+
# Main Executable
|
|
137
|
+
target_link_libraries(${PROJECT_NAME} crocoddyl::crocoddyl)
|
|
138
|
+
if(BUILD_WITH_PROXSUITE)
|
|
139
|
+
target_link_libraries(${PROJECT_NAME} proxsuite::proxsuite)
|
|
140
|
+
endif()
|
|
141
|
+
|
|
142
|
+
if(UNIX)
|
|
143
|
+
get_relative_rpath(${CMAKE_INSTALL_LIBDIR} ${PROJECT_NAME}_INSTALL_RPATH)
|
|
144
|
+
set_target_properties(
|
|
145
|
+
${PROJECT_NAME} PROPERTIES INSTALL_RPATH "${${PROJECT_NAME}_INSTALL_RPATH}")
|
|
146
|
+
endif()
|
|
147
|
+
|
|
148
|
+
# Python Bindings
|
|
149
|
+
if(BUILD_PYTHON_INTERFACE)
|
|
150
|
+
add_subdirectory(bindings)
|
|
151
|
+
endif()
|
|
152
|
+
|
|
153
|
+
# Unit tests
|
|
154
|
+
add_subdirectory(tests)
|
|
155
|
+
|
|
156
|
+
# Benchmarks
|
|
157
|
+
if(BUILD_BENCHMARKS)
|
|
158
|
+
add_subdirectory(benchmarks)
|
|
159
|
+
endif()
|
|
160
|
+
|
|
161
|
+
# Installation
|
|
162
|
+
install(
|
|
163
|
+
TARGETS ${PROJECT_NAME}
|
|
164
|
+
EXPORT ${TARGETS_EXPORT_NAME}
|
|
165
|
+
DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
166
|
+
install(FILES package.xml DESTINATION share/${PROJECT_NAME})
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
BSD 3-Clause License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2023, Machines in Motion Laboratory
|
|
4
|
+
|
|
5
|
+
Redistribution and use in source and binary forms, with or without
|
|
6
|
+
modification, are permitted provided that the following conditions are met:
|
|
7
|
+
|
|
8
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
|
9
|
+
list of conditions and the following disclaimer.
|
|
10
|
+
|
|
11
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
12
|
+
this list of conditions and the following disclaimer in the documentation
|
|
13
|
+
and/or other materials provided with the distribution.
|
|
14
|
+
|
|
15
|
+
3. Neither the name of the copyright holder nor the names of its
|
|
16
|
+
contributors may be used to endorse or promote products derived from
|
|
17
|
+
this software without specific prior written permission.
|
|
18
|
+
|
|
19
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
20
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
21
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
22
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
23
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
24
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
25
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
26
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
27
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
28
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: mim-solvers
|
|
3
|
+
Version: 0.0.5
|
|
4
|
+
Summary: A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
|
|
5
|
+
Requires-Python: >=3.8
|
|
6
|
+
License-Expression: BSD-3-Clause
|
|
7
|
+
Home-page: https://github.com/cmake-wheel/mim_solvers
|
|
8
|
+
Project-URL: Upstream, https://github.com/machines-in-motion/mim_solvers
|
|
9
|
+
Requires-Dist: cmeel
|
|
10
|
+
Requires-Dist: cmeel-boost >= 1.87.0, < 1.88
|
|
11
|
+
Requires-Dist: crocoddyl
|
|
12
|
+
Requires-Dist: proxsuite
|
|
13
|
+
Provides-Extra: build
|
|
14
|
+
Requires-Dist: crocoddyl[build] ; extra == "build"
|
|
15
|
+
Requires-Dist: proxsuite[build] ; extra == "build"
|
|
16
|
+
Description-Content-Type: text/markdown
|
|
17
|
+
|
|
18
|
+
# mim_solvers
|
|
19
|
+
Implementation of efficient numerical optimal control solvers.
|
|
20
|
+
In particular, the Sequential Quadratic Programming (SQP) solver described in [this paper](https://laas.hal.science/hal-04330251) solves nonlinear constrained OCPs efficiently by leveraging sparsity.
|
|
21
|
+
|
|
22
|
+
All the solvers are implemented based on the API of [Crocoddyl](https://github.com/loco-3d/crocoddyl/tree/devel) (v2).
|
|
23
|
+
In other words, our solvers take as input a `crocoddyl.ShootingProblem`.
|
|
24
|
+
|
|
25
|
+
Examples on how to use the solvers can be found in the `examples` directory.
|
|
26
|
+
|
|
27
|
+
# Dependencies
|
|
28
|
+
- [Pinocchio](https://github.com/stack-of-tasks/pinocchio) (rigid-body dynamics computations)
|
|
29
|
+
- [Crocoddyl](https://github.com/loco-3d/crocoddyl) (optimal control library)
|
|
30
|
+
- [ProxSuite](https://github.com/Simple-Robotics/proxsuite) (quadratic programming) (optional)
|
|
31
|
+
|
|
32
|
+
# Installation
|
|
33
|
+
|
|
34
|
+
## Using conda
|
|
35
|
+
|
|
36
|
+
`conda install mim-solvers --channel conda-forge`
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
## Using CMake
|
|
40
|
+
`git clone --recursive https://github.com/machines-in-motion/mim_solvers.git`
|
|
41
|
+
|
|
42
|
+
`cd mim_solvers && mkdir build && cd build`
|
|
43
|
+
|
|
44
|
+
`cmake .. [-DCMAKE_BUILD_TYPE=Release] [-DCMAKE_INSTALL_PREFIX=...]`
|
|
45
|
+
|
|
46
|
+
`make [-j6] && make install`
|
|
47
|
+
|
|
48
|
+
You can also run unittests using `ctest` and benchmarks using `./benchmarks/ur5` or `./benchmarks/solo12` from the build directory.
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
# Contributors
|
|
52
|
+
|
|
53
|
+
- [Armand Jordana](https://github.com/ajordana) (NYU): main developer and manager of the project
|
|
54
|
+
- [Sébastien Kleff](https://github.com/skleff1994) (NYU): main developer and manager of the project
|
|
55
|
+
- [Avadesh Meduri](https://github.com/avadesh02) (NYU): main developer and manager of the project
|
|
56
|
+
- [Ludovic Righetti](https://engineering.nyu.edu/faculty/ludovic-righetti) (NYU): project instructor
|
|
57
|
+
- [Justin Carpentier](https://jcarpent.github.io) (INRIA): project instructor
|
|
58
|
+
- [Nicolas Mansard](http://projects.laas.fr/gepetto/index.php/Members/NicolasMansard) (LAAS-CNRS): project instructor
|
|
59
|
+
- [Yann de Mont-Marin](https://github.com/ymontmarin) (INRIA): Conda integration and support
|
|
60
|
+
- [Louis Montaut](https://github.com/lmontaut) (INRIA): CMake support
|
|
61
|
+
- [Guilhem Saurel](https://github.com/nim65s) (LAAS-CNRS): CMake & pip packaging support
|
|
62
|
+
- [Jianghan ZHang](https://github.com/JianghanZHang) (NYU): features extension
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# mim_solvers
|
|
2
|
+
Implementation of efficient numerical optimal control solvers.
|
|
3
|
+
In particular, the Sequential Quadratic Programming (SQP) solver described in [this paper](https://laas.hal.science/hal-04330251) solves nonlinear constrained OCPs efficiently by leveraging sparsity.
|
|
4
|
+
|
|
5
|
+
All the solvers are implemented based on the API of [Crocoddyl](https://github.com/loco-3d/crocoddyl/tree/devel) (v2).
|
|
6
|
+
In other words, our solvers take as input a `crocoddyl.ShootingProblem`.
|
|
7
|
+
|
|
8
|
+
Examples on how to use the solvers can be found in the `examples` directory.
|
|
9
|
+
|
|
10
|
+
# Dependencies
|
|
11
|
+
- [Pinocchio](https://github.com/stack-of-tasks/pinocchio) (rigid-body dynamics computations)
|
|
12
|
+
- [Crocoddyl](https://github.com/loco-3d/crocoddyl) (optimal control library)
|
|
13
|
+
- [ProxSuite](https://github.com/Simple-Robotics/proxsuite) (quadratic programming) (optional)
|
|
14
|
+
|
|
15
|
+
# Installation
|
|
16
|
+
|
|
17
|
+
## Using conda
|
|
18
|
+
|
|
19
|
+
`conda install mim-solvers --channel conda-forge`
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## Using CMake
|
|
23
|
+
`git clone --recursive https://github.com/machines-in-motion/mim_solvers.git`
|
|
24
|
+
|
|
25
|
+
`cd mim_solvers && mkdir build && cd build`
|
|
26
|
+
|
|
27
|
+
`cmake .. [-DCMAKE_BUILD_TYPE=Release] [-DCMAKE_INSTALL_PREFIX=...]`
|
|
28
|
+
|
|
29
|
+
`make [-j6] && make install`
|
|
30
|
+
|
|
31
|
+
You can also run unittests using `ctest` and benchmarks using `./benchmarks/ur5` or `./benchmarks/solo12` from the build directory.
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
# Contributors
|
|
35
|
+
|
|
36
|
+
- [Armand Jordana](https://github.com/ajordana) (NYU): main developer and manager of the project
|
|
37
|
+
- [Sébastien Kleff](https://github.com/skleff1994) (NYU): main developer and manager of the project
|
|
38
|
+
- [Avadesh Meduri](https://github.com/avadesh02) (NYU): main developer and manager of the project
|
|
39
|
+
- [Ludovic Righetti](https://engineering.nyu.edu/faculty/ludovic-righetti) (NYU): project instructor
|
|
40
|
+
- [Justin Carpentier](https://jcarpent.github.io) (INRIA): project instructor
|
|
41
|
+
- [Nicolas Mansard](http://projects.laas.fr/gepetto/index.php/Members/NicolasMansard) (LAAS-CNRS): project instructor
|
|
42
|
+
- [Yann de Mont-Marin](https://github.com/ymontmarin) (INRIA): Conda integration and support
|
|
43
|
+
- [Louis Montaut](https://github.com/lmontaut) (INRIA): CMake support
|
|
44
|
+
- [Guilhem Saurel](https://github.com/nim65s) (LAAS-CNRS): CMake & pip packaging support
|
|
45
|
+
- [Jianghan ZHang](https://github.com/JianghanZHang) (NYU): features extension
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
set(${PROJECT_NAME}_BENCHMARK ur5 solo12)
|
|
2
|
+
|
|
3
|
+
set(${PROJECT_NAME}_BENCHMARK_TOOLS timings.hpp timings.cpp)
|
|
4
|
+
|
|
5
|
+
add_library(${PROJECT_NAME}_BENCHMARK_TOOLS SHARED
|
|
6
|
+
${${PROJECT_NAME}_BENCHMARK_TOOLS})
|
|
7
|
+
|
|
8
|
+
foreach(BENCHMARK_NAME ${${PROJECT_NAME}_BENCHMARK})
|
|
9
|
+
add_executable(${BENCHMARK_NAME} ${BENCHMARK_NAME}.cpp)
|
|
10
|
+
target_link_libraries(
|
|
11
|
+
${BENCHMARK_NAME} ${PROJECT_NAME} example-robot-data::example-robot-data
|
|
12
|
+
${PROJECT_NAME}_BENCHMARK_TOOLS)
|
|
13
|
+
add_custom_target("benchmarks-cpp-${BENCHMARK_NAME}" ${BENCHMARK_NAME}
|
|
14
|
+
\${INPUT})
|
|
15
|
+
endforeach(BENCHMARK_NAME ${${PROJECT_NAME}_BENCHMARK})
|