openscvx 0.5.2.dev2__tar.gz → 0.5.2.dev11__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.
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/.github/workflows/_docs.yml +11 -3
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/.gitignore +10 -2
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/CONTRIBUTING.md +7 -2
- {openscvx-0.5.2.dev2/openscvx.egg-info → openscvx-0.5.2.dev11}/PKG-INFO +14 -16
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/README.md +7 -7
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/docs/UnderTheHood/lowering_architecture.md +36 -0
- openscvx-0.5.2.dev11/docs/assets/viser-client/index.html +20 -0
- openscvx-0.5.2.dev11/docs/assets/viser-recordings/drone_racing.viser +0 -0
- openscvx-0.5.2.dev11/docs/assets/viser-recordings/franka_fr3v2_pick_place.viser +0 -0
- openscvx-0.5.2.dev11/docs/index.md +38 -0
- openscvx-0.5.2.dev11/docs/versions.json +7 -0
- openscvx-0.5.2.dev11/examples/_viser_embed_export.py +174 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/abstract/brachistochrone.py +13 -4
- openscvx-0.5.2.dev11/examples/abstract/hypersensitive.py +121 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/arm/franka_fr3v2_pick_place.py +107 -82
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/mjx/cartpole_mjx.py +13 -19
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/mjx/double_cartpole_mjx.py +9 -18
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/mjx/skydio_x2_mjx.py +14 -21
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/mjx/triple_cartpole_3d_mjx.py +9 -18
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/mjx/triple_cartpole_mjx.py +10 -19
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/rocket/6DoF_pdg.py +53 -46
- openscvx-0.5.2.dev11/examples/spacecraft/let_transfer.py +1131 -0
- openscvx-0.5.2.dev11/figures/openscvx_logo_square.png +0 -0
- openscvx-0.5.2.dev11/material/overrides/assets/stylesheets/custom.css +465 -0
- openscvx-0.5.2.dev11/material/overrides/assets/stylesheets/home-dropin.css +231 -0
- openscvx-0.5.2.dev11/material/overrides/assets/stylesheets/home-hero.css +930 -0
- openscvx-0.5.2.dev11/material/overrides/assets/stylesheets/home-viser.css +138 -0
- openscvx-0.5.2.dev11/material/overrides/home.html +21 -0
- openscvx-0.5.2.dev11/material/overrides/main.html +11 -0
- openscvx-0.5.2.dev11/material/overrides/partials/home-diagram.html +71 -0
- openscvx-0.5.2.dev11/material/overrides/partials/home-dropin-banner.html +41 -0
- openscvx-0.5.2.dev11/material/overrides/partials/home-hero.html +25 -0
- openscvx-0.5.2.dev11/material/overrides/partials/home-pipeline.html +90 -0
- openscvx-0.5.2.dev11/material/overrides/partials/home-viser-strip.html +72 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/mkdocs.yml +18 -9
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/__init__.py +27 -1
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/_version.py +3 -3
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/algorithms/__init__.py +13 -4
- openscvx-0.5.2.dev11/openscvx/algorithms/autotuner/__init__.py +17 -0
- openscvx-0.5.2.dev11/openscvx/algorithms/autotuner/adaptive_proximal_weight.py +190 -0
- {openscvx-0.5.2.dev2/openscvx/algorithms → openscvx-0.5.2.dev11/openscvx/algorithms/autotuner}/augmented_lagrangian.py +9 -5
- {openscvx-0.5.2.dev2/openscvx/algorithms → openscvx-0.5.2.dev11/openscvx/algorithms/autotuner}/constant_proximal_weight.py +3 -3
- {openscvx-0.5.2.dev2/openscvx/algorithms → openscvx-0.5.2.dev11/openscvx/algorithms/autotuner}/ramp_proximal_weight.py +3 -3
- openscvx-0.5.2.dev11/openscvx/algorithms/scvx/__init__.py +5 -0
- {openscvx-0.5.2.dev2/openscvx/algorithms → openscvx-0.5.2.dev11/openscvx/algorithms/scvx}/penalized_trust_region.py +38 -9
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/discretization/discretize_linearize.py +6 -1
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/discretization/sparse_utils/sparse_jacobian.py +6 -1
- openscvx-0.5.2.dev11/openscvx/integrations/__init__.py +66 -0
- openscvx-0.5.2.dev11/openscvx/integrations/base.py +89 -0
- openscvx-0.5.2.dev11/openscvx/integrations/mjx.py +496 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/loader.py +2 -2
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/lowered/cvxpy_constraints.py +4 -1
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/plotting/viser/server.py +2 -2
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/problem.py +36 -17
- openscvx-0.5.2.dev11/openscvx/solvers/__init__.py +103 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/solvers/base.py +124 -36
- openscvx-0.5.2.dev2/openscvx/solvers/ptr_solver.py → openscvx-0.5.2.dev11/openscvx/solvers/cvxpy_ptr_solver.py +49 -86
- openscvx-0.5.2.dev11/openscvx/solvers/moreau_ptr_solver.py +1125 -0
- openscvx-0.5.2.dev11/openscvx/solvers/ptr_solver.py +198 -0
- openscvx-0.5.2.dev11/openscvx/solvers/qpax_ptr_solver.py +776 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/hashing.py +16 -3
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lower.py +6 -7
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/utils/printing.py +9 -1
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11/openscvx.egg-info}/PKG-INFO +14 -16
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx.egg-info/SOURCES.txt +34 -40
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx.egg-info/requires.txt +6 -7
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/pyproject.toml +8 -9
- openscvx-0.5.2.dev11/scripts/gen_example_pages.py +239 -0
- openscvx-0.5.2.dev11/scripts/gen_ref_pages.py +187 -0
- openscvx-0.5.2.dev11/scripts/mkdocs_copy_viser_client_hook.py +52 -0
- openscvx-0.5.2.dev11/tests/_marks.py +59 -0
- openscvx-0.5.2.dev11/tests/conftest.py +12 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/expr/test_gmsr.py +12 -7
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/integrations/test_mjx.py +2 -69
- openscvx-0.5.2.dev11/tests/integrations/test_mjx_dynamics.py +542 -0
- openscvx-0.5.2.dev11/tests/solvers/test_moreau_ptr_solver.py +274 -0
- openscvx-0.5.2.dev11/tests/solvers/test_qpax_ptr_solver.py +238 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/expr/test_stl.py +1 -1
- openscvx-0.5.2.dev11/tests/symbolic/parser/__init__.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/test_autotuning.py +196 -4
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/test_brachistochrone.py +194 -3
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/test_examples.py +1 -1
- openscvx-0.5.2.dev2/docs/getting-started.md +0 -239
- openscvx-0.5.2.dev2/docs/index.md +0 -9
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/1-background.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/1-background@1x.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/1-background@2x.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/1-background@3x.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/1-background@4x.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/2-mars.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/2-mars@1x.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/2-mars@2x.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/2-mars@3x.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/2-mars@4x.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/3-moon.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/3-moon@1x.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/3-moon@2x.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/3-moon@3x.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/3-moon@4x.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/4-sat1.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/4-sat1@1x.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/4-sat1@2x.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/4-sat1@3x.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/4-sat1@4x.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/5-space.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/5-space@1x.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/5-space@2x.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/5-space@3x.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/5-space@4x.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/6-earth.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/6-earth@1x.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/6-earth@2x.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/6-earth@3x.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/images/layers/6-earth@4x.avif +0 -0
- openscvx-0.5.2.dev2/material/overrides/assets/javascripts/parallax.js +0 -54
- openscvx-0.5.2.dev2/material/overrides/assets/logo.svg +0 -1
- openscvx-0.5.2.dev2/material/overrides/assets/stylesheets/custom.css +0 -135
- openscvx-0.5.2.dev2/material/overrides/assets/stylesheets/parallax.css +0 -216
- openscvx-0.5.2.dev2/material/overrides/home.html +0 -26
- openscvx-0.5.2.dev2/material/overrides/main.html +0 -8
- openscvx-0.5.2.dev2/material/overrides/partials/parallax/hero.html +0 -46
- openscvx-0.5.2.dev2/material/overrides/partials/parallax.html +0 -7
- openscvx-0.5.2.dev2/openscvx/integrations/__init__.py +0 -62
- openscvx-0.5.2.dev2/openscvx/integrations/mjx.py +0 -323
- openscvx-0.5.2.dev2/openscvx/solvers/__init__.py +0 -76
- openscvx-0.5.2.dev2/scripts/gen_example_pages.py +0 -103
- openscvx-0.5.2.dev2/scripts/gen_ref_pages.py +0 -41
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/.github/assets/logo.svg +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/.github/release-drafter.yml +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/.github/workflows/branch-name.yml +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/.github/workflows/docs.yml +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/.github/workflows/lint.yml +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/.github/workflows/nightly.yml +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/.github/workflows/release-drafter.yml +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/.github/workflows/release.yml +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/.github/workflows/tests-integration.yml +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/.github/workflows/tests-unit.yml +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/.gitmodules +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/LICENSE +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/docs/Foundations/constraint_reformulation.md +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/docs/Foundations/control_parameterization.md +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/docs/Foundations/discretization.md +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/docs/Foundations/ocp.md +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/docs/Foundations/scvx.md +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/docs/Foundations/time_dilation.md +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/docs/UnderTheHood/vectorization_and_vmapping.md +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/docs/UsersGuide/00_introduction.md +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/docs/UsersGuide/01_hello_world_brachistochrone.md +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/docs/UsersGuide/02_drone_racing_constraints.md +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/docs/UsersGuide/03_obstacle_avoidance_vmap.md +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/docs/UsersGuide/04_viewpoint_constraints.md +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/docs/UsersGuide/05_visualization.md +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/docs/UsersGuide/06_logic.md +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/docs/UsersGuide/07_lie.md +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/docs/UsersGuide/08_mpcc.md +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/docs/assets/favicon.png +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/docs/assets/images/ct-scvx_dark.png +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/docs/assets/images/ct-scvx_light.png +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/docs/assets/images/ctcs_dark.png +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/docs/assets/images/ctcs_light.png +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/docs/assets/images/problem_class_dark.png +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/docs/assets/images/problem_class_light.png +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/docs/assets/logo.svg +0 -0
- {openscvx-0.5.2.dev2/figures → openscvx-0.5.2.dev11/docs/assets}/openscvx_logo_square.png +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/docs/citation.md +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/docs/examples.md +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/docs/javascripts/mathjax.js +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/abstract/impulsive.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/abstract/stl_integer_variable.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/abstract/stl_or.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/animations/7_dof_arm.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/animations/_camera.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/animations/_render.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/animations/_sensor_view.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/animations/dr_vp_polytope.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/animations/franka_fr3v2_pick_place.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/animations/logo.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/animations/obstacle_avoidance_vmap.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/arm/3_dof_arm.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/arm/7_dof_arm.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/arm/7_dof_arm_collision.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/arm/7_dof_arm_vp.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/arm/franka_fr3v2_viewplanning.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/car/dubins_car.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/car/dubins_car_disjoint.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/car/dubins_car_obstacle_conditional.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/car/dubins_car_obstacle_stl.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/car/dubins_car_stl_or.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/car/dubins_car_waypoint_stl.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/drone/cinema_vp.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/drone/dr_double_integrator.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/drone/dr_vp.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/drone/dr_vp_nodal.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/drone/dr_vp_polytope.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/drone/drone_racing.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/drone/logo.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/drone/logo_utils/acl_logo.svg +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/drone/logo_utils/svg_path_utils.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/drone/obstacle_avoidance.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/drone/obstacle_avoidance_nodal.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/drone/obstacle_avoidance_vmap.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/mjx/triple_cartpole_game.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/mpc/double_integrator_discrete.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/mpc/double_integrator_drone_racing.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/mpc/dubins_car_circle_analytical.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/mpc/dubins_car_circle_discrete.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/mpc/realtime_double_integrator_drone_racing.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/plotting.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/plotting_viser.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/realtime/3DoF_pdg_realtime.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/realtime/6DoF_pdg_realtime.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/realtime/base_problems/3DoF_pdg_realtime_base.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/realtime/base_problems/6DoF_pdg_realtime_base.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/realtime/base_problems/cinema_vp_realtime_base.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/realtime/base_problems/drone_racing_realtime_base.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/realtime/base_problems/dubins_car_realtime_base.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/realtime/base_problems/obstacle_avoidance_realtime_base.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/realtime/cinema_vp_realtime.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/realtime/drone_racing_realtime.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/realtime/dubins_car_realtime.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/realtime/obstacle_avoidance_realtime.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/rocket/3DoF_pdg.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/spacecraft/halo_orbit.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/spacecraft/hohmann_transfer.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/examples/spacecraft/proxops_cw.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/figures/ctlos_cine.gif +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/figures/ctlos_dr.gif +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/figures/dtlos_cine.gif +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/figures/dtlos_dr.gif +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/figures/openscvx_logo.svg +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/figures/oscvx_structure_full_dark.svg +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/figures/video_preview.png +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/material/__init__.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/__main__.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/algorithms/base.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/algorithms/optimization_results.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/algorithms/weights.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/config.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/discretization/__init__.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/discretization/base.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/discretization/linearize_discretize.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/discretization/linearize_discretize_sparse.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/discretization/sparse_utils/__init__.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/discretization/sparse_utils/bcoo_helpers.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/expert/__init__.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/expert/byof.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/expert/lowering.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/expert/validation.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/init/__init__.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/init/interpolation.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/init/inverse_kinematics.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/integrations/menagerie.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/integrators/__init__.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/integrators/diffrax.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/integrators/runge_kutta.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/lowered/__init__.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/lowered/cvxpy_variables.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/lowered/dynamics.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/lowered/jax_constraints.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/lowered/parameters.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/lowered/problem.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/lowered/unified.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/plotting/__init__.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/plotting/plotting.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/plotting/scp_iteration.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/plotting/viser/__init__.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/plotting/viser/animated.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/plotting/viser/orbits.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/plotting/viser/plotly_integration.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/plotting/viser/primitives.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/plotting/viser/scp.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/propagation/__init__.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/propagation/post_processing.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/propagation/propagation.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/__init__.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/augmentation.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/builder.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/constraint_set.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/expr/__init__.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/expr/arithmetic.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/expr/array.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/expr/constraint.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/expr/control.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/expr/expr.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/expr/lie/__init__.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/expr/lie/adjoint.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/expr/lie/se3.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/expr/lie/so3.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/expr/linalg.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/expr/logic.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/expr/math.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/expr/parameter.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/expr/spatial.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/expr/state.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/expr/stl.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/expr/stljax.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/expr/time.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/expr/variable.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/expr/vmap.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/__init__.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/cvxpy/__init__.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/cvxpy/_lowerer.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/cvxpy/_registry.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/cvxpy/arithmetic.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/cvxpy/array.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/cvxpy/constraint.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/cvxpy/control.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/cvxpy/expr.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/cvxpy/linalg.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/cvxpy/logic.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/cvxpy/math.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/cvxpy/state.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/jax/__init__.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/jax/_lowerer.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/jax/_registry.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/jax/arithmetic.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/jax/array.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/jax/constraint.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/jax/control.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/jax/expr.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/jax/lie.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/jax/linalg.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/jax/logic.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/jax/math.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/jax/spatial.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/jax/state.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/jax/stl.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/jax/stljax.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/lowerers/jax/vmap.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/parser/__init__.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/parser/_registry.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/parser/array.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/parser/constraint.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/parser/lie.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/parser/linalg.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/parser/logic.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/parser/math.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/parser/parser.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/parser/spatial.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/parser/stl.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/parser/stljax.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/parser/tokenizer.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/preprocessing.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/problem.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/sparsity.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/symbolic/unified.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/utils/__init__.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/utils/cache.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/utils/caching.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/utils/profiling.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx/utils/utils.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx.egg-info/dependency_links.txt +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx.egg-info/entry_points.txt +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/openscvx.egg-info/top_level.txt +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/setup.cfg +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/__init__.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/brachistochrone_analytical.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/expr/__init__.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/fixtures/brachistochrone.json +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/fixtures/brachistochrone.yaml +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/hohmann_analytical.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/integrations/__init__.py +0 -0
- {openscvx-0.5.2.dev2/tests/symbolic → openscvx-0.5.2.dev11/tests/solvers}/__init__.py +0 -0
- {openscvx-0.5.2.dev2/tests/symbolic/expr → openscvx-0.5.2.dev11/tests/symbolic}/__init__.py +0 -0
- {openscvx-0.5.2.dev2/tests/symbolic/parser → openscvx-0.5.2.dev11/tests/symbolic/expr}/__init__.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/expr/test_arithmetic.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/expr/test_array.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/expr/test_constraint.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/expr/test_expr.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/expr/test_lie.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/expr/test_linalg.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/expr/test_logic.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/expr/test_math.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/expr/test_node_reference.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/expr/test_parameters.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/expr/test_scaling.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/expr/test_spatial.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/expr/test_variable.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/expr/test_vmap.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/parser/test_array.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/parser/test_constraint.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/parser/test_lie.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/parser/test_linalg.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/parser/test_load.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/parser/test_logic.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/parser/test_math.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/parser/test_parser.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/parser/test_spatial.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/parser/test_stl.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/parser/test_tokenizer.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/parser/test_vmap.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/test_augmentation.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/test_hashing.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/test_lower_cvxpy.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/test_lower_jax.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/test_preprocessing.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/test_sparsity.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/symbolic/test_unified.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/test_cvxpygen_optional.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/test_discretization.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/test_expert.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/test_impulsive.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/test_init.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/test_integrators.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/test_loader.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/test_optimization_results.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/test_plotting.py +0 -0
- {openscvx-0.5.2.dev2 → openscvx-0.5.2.dev11}/tests/test_propagation.py +0 -0
|
@@ -12,6 +12,11 @@ jobs:
|
|
|
12
12
|
docs:
|
|
13
13
|
name: 📖 Documentation
|
|
14
14
|
runs-on: ubuntu-latest
|
|
15
|
+
env:
|
|
16
|
+
# Material stderr banner (MkDocs 2.0 blog); CI uses MkDocs 1.x + --strict.
|
|
17
|
+
NO_MKDOCS_2_WARNING: "true"
|
|
18
|
+
# ProperDocs may emit a follow-up WARNING; keep --strict clean.
|
|
19
|
+
DISABLE_MKDOCS_2_WARNING: "true"
|
|
15
20
|
|
|
16
21
|
steps:
|
|
17
22
|
- name: Checkout repository
|
|
@@ -38,20 +43,23 @@ jobs:
|
|
|
38
43
|
- name: Cache MkDocs build
|
|
39
44
|
uses: actions/cache@v4
|
|
40
45
|
with:
|
|
41
|
-
key: mkdocs-material-${{ hashFiles('mkdocs.yml', 'docs/**') }}
|
|
46
|
+
key: mkdocs-material-${{ hashFiles('mkdocs.yml', 'docs/**', 'material/overrides/**', 'scripts/gen_ref_pages.py', 'scripts/gen_example_pages.py', 'scripts/mkdocs_copy_viser_client_hook.py') }}
|
|
42
47
|
path: .cache
|
|
43
48
|
restore-keys: |
|
|
44
49
|
mkdocs-material-
|
|
45
50
|
|
|
46
51
|
- name: Install system dependencies
|
|
47
|
-
run:
|
|
52
|
+
run: >-
|
|
53
|
+
sudo apt-get update &&
|
|
54
|
+
sudo apt-get install -y pngquant libcairo2-dev libfreetype6-dev libffi-dev
|
|
55
|
+
libjpeg-dev libpng-dev zlib1g-dev
|
|
48
56
|
|
|
49
57
|
# - name: Install MkDocs Material Insiders
|
|
50
58
|
# run: uv pip install --system git+https://${{ secrets.MKDOCS_INSIDERS_TOKEN }}@github.com/squidfunk/mkdocs-material-insiders.git
|
|
51
59
|
|
|
52
60
|
- name: Install documentation tools
|
|
53
61
|
run: |
|
|
54
|
-
uv pip install --system mkdocs-material mkdocstrings-python
|
|
62
|
+
uv pip install --system "mkdocs-material[imaging]" mkdocstrings-python
|
|
55
63
|
uv pip install --system mkdocs-gen-files mkdocs-literate-nav mkdocs-section-index
|
|
56
64
|
uv pip install --system mike
|
|
57
65
|
|
|
@@ -209,7 +209,15 @@ check_lint.py
|
|
|
209
209
|
MUJOCO_LOG.TXT
|
|
210
210
|
|
|
211
211
|
# MkDocs Material Insiders (installed from GitHub in CI, not committed)
|
|
212
|
-
material/
|
|
213
|
-
#
|
|
212
|
+
# Ignore contents of material/ but not material/overrides/ (Git cannot un-ignore
|
|
213
|
+
# paths inside an ignored directory when the rule is material/).
|
|
214
|
+
material/*
|
|
214
215
|
!material/overrides/
|
|
216
|
+
!material/overrides/**
|
|
215
217
|
src/
|
|
218
|
+
|
|
219
|
+
# SPICE kernels for spacecrafts examples
|
|
220
|
+
examples/spacecraft/ker/
|
|
221
|
+
|
|
222
|
+
# Solver_data folder
|
|
223
|
+
solver_data/
|
|
@@ -20,7 +20,6 @@ pip install -e ".[test]"
|
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
For additional features, you can install optional dependencies:
|
|
23
|
-
- `pip install -e ".[gui]"` - GUI visualization tools
|
|
24
23
|
- `pip install -e ".[cvxpygen]"` - Code generation support
|
|
25
24
|
- `pip install -e ".[stl]"` - STL (Signal Temporal Logic) constraints
|
|
26
25
|
|
|
@@ -204,11 +203,17 @@ def solve(self, max_iterations: int = 100) -> OptimizationResult:
|
|
|
204
203
|
To preview documentation locally, first install the dependencies:
|
|
205
204
|
|
|
206
205
|
```bash
|
|
207
|
-
pip install mkdocs-material mkdocstrings-python mkdocs-gen-files mkdocs-literate-nav mkdocs-section-index
|
|
206
|
+
pip install "mkdocs-material[imaging]" mkdocstrings-python mkdocs-gen-files mkdocs-literate-nav mkdocs-section-index
|
|
208
207
|
```
|
|
209
208
|
|
|
209
|
+
The `social` plugin (enabled in `mkdocs.yml`) uses **CairoSVG**, which loads the native **Cairo** library. A `pip`-only `cairosvg` on macOS often cannot find `libcairo` and will spam warnings during `mkdocs build` / `mkdocs serve`. Install Cairo into the same environment (for example `conda install -c conda-forge cairo cairosvg`) or install Cairo via Homebrew so the dynamic linker can resolve it. Uninstalling `cairosvg` does not silence the build: the plugin will warn on every page that imaging dependencies are missing.
|
|
210
|
+
|
|
210
211
|
Then serve the documentation locally:
|
|
211
212
|
|
|
212
213
|
```bash
|
|
213
214
|
mkdocs serve
|
|
214
215
|
```
|
|
216
|
+
|
|
217
|
+
To silence MkDocs 2.0 / ProperDocs notices when building with **`--strict`**, set **`NO_MKDOCS_2_WARNING=true`** (Material’s stderr banner) and, if you use ProperDocs, **`DISABLE_MKDOCS_2_WARNING=true`** for the pip-style WARNING; the documentation workflow sets both for CI.
|
|
218
|
+
|
|
219
|
+
The version dropdown uses Material’s **mike** integration and expects a `versions.json` at the site root. Plain `mkdocs serve` does not run `mike deploy`, so the repo includes a minimal **`docs/versions.json`** (copied into the build) to avoid a 404 in local previews. On **GitHub Pages**, CI replaces the published root with **`mike deploy`**, which writes the real multi-version manifest. To preview multiple versions locally the same way as production, use **`mike serve`** after you have a `gh-pages` branch with deployed versions.
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openscvx
|
|
3
|
-
Version: 0.5.2.
|
|
3
|
+
Version: 0.5.2.dev11
|
|
4
4
|
Summary: A general Python-based successive convexification implementation which uses a JAX backend.
|
|
5
5
|
Author-email: Chris Hayner and Griffin Norris <haynec@uw.edu>
|
|
6
6
|
License: Apache Software License
|
|
7
|
-
Project-URL: Homepage, https://openscvx.github.io/
|
|
7
|
+
Project-URL: Homepage, https://openscvx.github.io/OpenSCvx/
|
|
8
8
|
Classifier: Programming Language :: Python :: 3
|
|
9
9
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
10
|
-
Requires-Python: >=3.
|
|
10
|
+
Requires-Python: >=3.11
|
|
11
11
|
Description-Content-Type: text/markdown
|
|
12
12
|
License-File: LICENSE
|
|
13
13
|
Requires-Dist: cvxpy>=1.8.1
|
|
@@ -23,15 +23,13 @@ Requires-Dist: viser
|
|
|
23
23
|
Requires-Dist: matplotlib
|
|
24
24
|
Requires-Dist: pyyaml
|
|
25
25
|
Requires-Dist: pydantic>=2.0
|
|
26
|
-
Provides-Extra: gui
|
|
27
|
-
Requires-Dist: pyqtgraph; extra == "gui"
|
|
28
|
-
Requires-Dist: PyQt5; extra == "gui"
|
|
29
|
-
Requires-Dist: scipy; extra == "gui"
|
|
30
|
-
Requires-Dist: PyOpenGL; extra == "gui"
|
|
31
|
-
Requires-Dist: PyOpenGL_accelerate; extra == "gui"
|
|
32
26
|
Provides-Extra: cvxpygen
|
|
33
27
|
Requires-Dist: cvxpygen; extra == "cvxpygen"
|
|
34
28
|
Requires-Dist: qocogen; extra == "cvxpygen"
|
|
29
|
+
Provides-Extra: qpax
|
|
30
|
+
Requires-Dist: qpax>=0.1.1; extra == "qpax"
|
|
31
|
+
Provides-Extra: moreau
|
|
32
|
+
Requires-Dist: moreau>=0.3.3; extra == "moreau"
|
|
35
33
|
Provides-Extra: stl
|
|
36
34
|
Requires-Dist: stljax; extra == "stl"
|
|
37
35
|
Provides-Extra: lie
|
|
@@ -156,11 +154,11 @@ uv pip install openscvx
|
|
|
156
154
|
```
|
|
157
155
|
|
|
158
156
|
> [!TIP]
|
|
159
|
-
> **Optional
|
|
157
|
+
> **Optional dependencies**
|
|
160
158
|
>
|
|
161
|
-
> For
|
|
159
|
+
> For CVXPYGen code generation:
|
|
162
160
|
> ```bash
|
|
163
|
-
> pip install openscvx[
|
|
161
|
+
> pip install openscvx[cvxpygen]
|
|
164
162
|
> ```
|
|
165
163
|
|
|
166
164
|
> [!TIP]
|
|
@@ -210,13 +208,13 @@ uv pip install -e .
|
|
|
210
208
|
> git submodule update --init third_party/mujoco_menagerie
|
|
211
209
|
> ```
|
|
212
210
|
|
|
213
|
-
##
|
|
211
|
+
## Documentation
|
|
214
212
|
|
|
215
|
-
Check out the OpenSCvx documentation
|
|
213
|
+
Check out the OpenSCvx documentation:
|
|
216
214
|
|
|
217
|
-
- [Getting Started Docs](https://openscvx.github.io/OpenSCvx/latest/getting-started/)
|
|
218
215
|
- [Users Guide](https://openscvx.github.io/OpenSCvx/latest/UsersGuide/00_introduction/)
|
|
219
|
-
- [API Reference](https://openscvx.github.io/OpenSCvx/latest/Reference/
|
|
216
|
+
- [API Reference](https://openscvx.github.io/OpenSCvx/latest/Reference/)
|
|
217
|
+
- [Examples overview](https://openscvx.github.io/OpenSCvx/latest/examples/)
|
|
220
218
|
|
|
221
219
|
### Running the Examples
|
|
222
220
|
|
|
@@ -107,11 +107,11 @@ uv pip install openscvx
|
|
|
107
107
|
```
|
|
108
108
|
|
|
109
109
|
> [!TIP]
|
|
110
|
-
> **Optional
|
|
110
|
+
> **Optional dependencies**
|
|
111
111
|
>
|
|
112
|
-
> For
|
|
112
|
+
> For CVXPYGen code generation:
|
|
113
113
|
> ```bash
|
|
114
|
-
> pip install openscvx[
|
|
114
|
+
> pip install openscvx[cvxpygen]
|
|
115
115
|
> ```
|
|
116
116
|
|
|
117
117
|
> [!TIP]
|
|
@@ -161,13 +161,13 @@ uv pip install -e .
|
|
|
161
161
|
> git submodule update --init third_party/mujoco_menagerie
|
|
162
162
|
> ```
|
|
163
163
|
|
|
164
|
-
##
|
|
164
|
+
## Documentation
|
|
165
165
|
|
|
166
|
-
Check out the OpenSCvx documentation
|
|
166
|
+
Check out the OpenSCvx documentation:
|
|
167
167
|
|
|
168
|
-
- [Getting Started Docs](https://openscvx.github.io/OpenSCvx/latest/getting-started/)
|
|
169
168
|
- [Users Guide](https://openscvx.github.io/OpenSCvx/latest/UsersGuide/00_introduction/)
|
|
170
|
-
- [API Reference](https://openscvx.github.io/OpenSCvx/latest/Reference/
|
|
169
|
+
- [API Reference](https://openscvx.github.io/OpenSCvx/latest/Reference/)
|
|
170
|
+
- [Examples overview](https://openscvx.github.io/OpenSCvx/latest/examples/)
|
|
171
171
|
|
|
172
172
|
### Running the Examples
|
|
173
173
|
|
|
@@ -160,9 +160,45 @@ JAX lowering has no dependency on:
|
|
|
160
160
|
|
|
161
161
|
This means JAX-lowered dynamics and constraints could be used with alternative solvers.
|
|
162
162
|
|
|
163
|
+
## Convex Subproblem Backends
|
|
164
|
+
|
|
165
|
+
The convex subproblem at each SCP iteration is solved by a concrete subclass
|
|
166
|
+
of the abstract `PTRSolver` base. Three backends ship today:
|
|
167
|
+
|
|
168
|
+
| Backend | Class | Selector | Notes |
|
|
169
|
+
|---------|-------|----------|-------|
|
|
170
|
+
| CVXPy (default) | `CVXPyPTRSolver` | `solver={"backend": "cvxpy"}` (default) | DCP graph via CVXPy, dispatched to QOCO / CLARABEL / etc. Supports user `.convex()` constraints, cross-node constraints, CTCS, and impulsive controls. Optional cvxpygen code generation. |
|
|
171
|
+
| QPAX | `QPAXPTRSolver` | `solver={"backend": "qpax"}` | JAX-native QP via `qpax.solve_qp`. Flat `(Q, q, A, b, G, h)` assembly. Supports box / dynamics / CTCS / boundary-Fix; **rejects** user `.convex()`, cross-node, and impulsive at `initialize()` with a clear "use `CVXPyPTRSolver`" message. Enables a path toward an end-to-end JAX-differentiable SCP loop in follow-up work. |
|
|
172
|
+
| Moreau | `MoreauPTRSolver` | `solver={"backend": "moreau"}` | JAX-native conic solver (`moreau.jax.Solver`). Sparse CSR assembly; SOC epigraphs for the L1 / pos PTR penalties (fewer variables and rows than QPAX). Warm-starts between SCP iterations. Same supported subset as QPAX. Paves the way for user `.convex()` SOC support in a follow-up. |
|
|
173
|
+
|
|
174
|
+
Picking a backend at construction time:
|
|
175
|
+
|
|
176
|
+
```python
|
|
177
|
+
import openscvx as ox
|
|
178
|
+
|
|
179
|
+
# Default — same as today's CVXPyPTRSolver.
|
|
180
|
+
problem = ox.Problem(...)
|
|
181
|
+
|
|
182
|
+
# Explicit CVXPy with a different inner solver.
|
|
183
|
+
problem = ox.Problem(..., solver={"backend": "cvxpy", "cvx_solver": "CLARABEL"})
|
|
184
|
+
|
|
185
|
+
# JAX-native QPAX (requires the `qpax` extra: pip install openscvx[qpax]).
|
|
186
|
+
problem = ox.Problem(..., solver={"backend": "qpax"})
|
|
187
|
+
|
|
188
|
+
# JAX-native Moreau conic (requires the `moreau` extra: pip install openscvx[moreau]).
|
|
189
|
+
problem = ox.Problem(..., solver={"backend": "moreau"})
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
Both JAX backends consume the global JAX dtype — pass `float_dtype="float64"`
|
|
193
|
+
to `Problem` if you need tight inner-solver tolerances; the default `float32`
|
|
194
|
+
is enough for
|
|
195
|
+
many problems but caps the QP's conditioning.
|
|
196
|
+
|
|
163
197
|
## Further Reading
|
|
164
198
|
|
|
165
199
|
- `openscvx/symbolic/lower.py` — Main lowering implementation
|
|
166
200
|
- `openscvx/lowered/` — Dataclass definitions
|
|
167
201
|
- `openscvx/symbolic/lowerers/jax.py` — JAX visitor implementation
|
|
168
202
|
- `openscvx/symbolic/lowerers/cvxpy.py` — CVXPy visitor implementation
|
|
203
|
+
- `openscvx/solvers/ptr_solver.py` — Abstract `PTRSolver` contract
|
|
204
|
+
- `openscvx/solvers/cvxpy_ptr_solver.py` / `qpax_ptr_solver.py` — Concrete backends
|