openscvx 0.4.1.dev166__tar.gz → 0.4.1.dev169__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.4.1.dev166/openscvx.egg-info → openscvx-0.4.1.dev169}/PKG-INFO +1 -1
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/plotting.py +3 -3
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/_version.py +3 -3
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/algorithms/__init__.py +1 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/algorithms/base.py +4 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/algorithms/penalized_trust_region.py +4 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/problem.py +12 -2
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169/openscvx.egg-info}/PKG-INFO +1 -1
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/test_brachistochrone.py +1 -1
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/.github/assets/logo.svg +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/.github/release-drafter.yml +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/.github/workflows/_docs.yml +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/.github/workflows/branch-name.yml +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/.github/workflows/docs.yml +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/.github/workflows/lint.yml +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/.github/workflows/nightly.yml +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/.github/workflows/release-drafter.yml +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/.github/workflows/release.yml +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/.github/workflows/tests-integration.yml +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/.github/workflows/tests-unit.yml +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/.gitignore +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/CONTRIBUTING.md +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/LICENSE +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/README.md +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/Foundations/constraint_reformulation.md +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/Foundations/control_parameterization.md +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/Foundations/discretization.md +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/Foundations/ocp.md +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/Foundations/scvx.md +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/Foundations/time_dilation.md +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/UnderTheHood/lowering_architecture.md +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/UnderTheHood/vectorization_and_vmapping.md +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/UsersGuide/00_introduction.md +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/UsersGuide/01_hello_world_brachistochrone.md +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/UsersGuide/02_drone_racing_constraints.md +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/UsersGuide/03_obstacle_avoidance_vmap.md +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/UsersGuide/04_viewpoint_constraints.md +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/UsersGuide/05_visualization.md +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/UsersGuide/06_logic.md +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/UsersGuide/07_lie.md +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/UsersGuide/08_mpcc.md +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/assets/favicon.png +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/assets/images/ct-scvx_dark.png +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/assets/images/ct-scvx_light.png +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/assets/images/ctcs_dark.png +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/assets/images/ctcs_light.png +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/assets/images/problem_class_dark.png +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/assets/images/problem_class_light.png +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/assets/logo.svg +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/citation.md +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/examples.md +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/getting-started.md +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/index.md +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/javascripts/mathjax.js +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/abstract/brachistochrone.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/abstract/impulsive.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/abstract/stl_integer_variable.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/abstract/stl_or.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/arm/3_dof_arm.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/arm/7_dof_arm.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/arm/7_dof_arm_vp.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/car/dubins_car.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/car/dubins_car_disjoint.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/car/dubins_car_obstacle_conditional.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/car/dubins_car_obstacle_stl.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/car/dubins_car_stl_or.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/car/dubins_car_waypoint_stl.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/drone/cinema_vp.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/drone/dr_double_integrator.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/drone/dr_vp.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/drone/dr_vp_nodal.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/drone/dr_vp_polytope.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/drone/drone_racing.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/drone/logo.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/drone/logo_utils/acl_logo.svg +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/drone/logo_utils/svg_path_utils.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/drone/obstacle_avoidance.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/drone/obstacle_avoidance_nodal.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/drone/obstacle_avoidance_vmap.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/mpc/double_integrator_discrete.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/mpc/double_integrator_drone_racing.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/mpc/dubins_car_circle_analytical.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/mpc/dubins_car_circle_discrete.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/mpc/realtime_double_integrator_drone_racing.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/plotting_viser.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/realtime/3DoF_pdg_realtime.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/realtime/6DoF_pdg_realtime.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/realtime/base_problems/3DoF_pdg_realtime_base.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/realtime/base_problems/6DoF_pdg_realtime_base.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/realtime/base_problems/cinema_vp_realtime_base.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/realtime/base_problems/drone_racing_realtime_base.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/realtime/base_problems/dubins_car_realtime_base.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/realtime/base_problems/obstacle_avoidance_realtime_base.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/realtime/cinema_vp_realtime.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/realtime/drone_racing_realtime.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/realtime/dubins_car_realtime.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/realtime/obstacle_avoidance_realtime.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/rocket/3DoF_pdg.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/rocket/6DoF_pdg.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/spacecraft/halo_orbit.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/spacecraft/hohmann_transfer.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/spacecraft/proxops_cw.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/figures/ctlos_cine.gif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/figures/ctlos_dr.gif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/figures/dtlos_cine.gif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/figures/dtlos_dr.gif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/figures/openscvx_logo.svg +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/figures/openscvx_logo_square.png +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/figures/oscvx_structure_full_dark.svg +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/figures/video_preview.png +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/__init__.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/1-background.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/1-background@1x.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/1-background@2x.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/1-background@3x.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/1-background@4x.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/2-mars.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/2-mars@1x.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/2-mars@2x.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/2-mars@3x.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/2-mars@4x.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/3-moon.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/3-moon@1x.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/3-moon@2x.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/3-moon@3x.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/3-moon@4x.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/4-sat1.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/4-sat1@1x.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/4-sat1@2x.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/4-sat1@3x.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/4-sat1@4x.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/5-space.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/5-space@1x.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/5-space@2x.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/5-space@3x.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/5-space@4x.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/6-earth.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/6-earth@1x.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/6-earth@2x.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/6-earth@3x.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/6-earth@4x.avif +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/javascripts/parallax.js +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/logo.svg +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/stylesheets/custom.css +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/stylesheets/parallax.css +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/home.html +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/main.html +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/partials/parallax/hero.html +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/partials/parallax.html +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/mkdocs.yml +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/__init__.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/__main__.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/algorithms/augmented_lagrangian.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/algorithms/constant_proximal_weight.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/algorithms/optimization_results.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/algorithms/ramp_proximal_weight.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/algorithms/weights.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/config.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/discretization/__init__.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/discretization/base.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/discretization/discretize_linearize.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/discretization/linearize_discretize.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/discretization/linearize_discretize_sparse.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/discretization/sparse_utils/__init__.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/discretization/sparse_utils/bcoo_helpers.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/discretization/sparse_utils/sparse_jacobian.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/expert/__init__.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/expert/byof.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/expert/lowering.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/expert/validation.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/init/__init__.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/init/interpolation.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/init/inverse_kinematics.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/integrators/__init__.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/integrators/diffrax.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/integrators/runge_kutta.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/loader.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/lowered/__init__.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/lowered/cvxpy_constraints.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/lowered/cvxpy_variables.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/lowered/dynamics.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/lowered/jax_constraints.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/lowered/parameters.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/lowered/problem.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/lowered/unified.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/plotting/__init__.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/plotting/plotting.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/plotting/scp_iteration.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/plotting/viser/__init__.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/plotting/viser/animated.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/plotting/viser/orbits.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/plotting/viser/plotly_integration.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/plotting/viser/primitives.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/plotting/viser/scp.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/plotting/viser/server.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/propagation/__init__.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/propagation/post_processing.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/propagation/propagation.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/solvers/__init__.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/solvers/base.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/solvers/ptr_solver.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/__init__.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/augmentation.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/builder.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/constraint_set.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/expr/__init__.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/expr/arithmetic.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/expr/array.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/expr/constraint.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/expr/control.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/expr/expr.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/expr/lie/__init__.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/expr/lie/adjoint.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/expr/lie/se3.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/expr/lie/so3.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/expr/linalg.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/expr/logic.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/expr/math.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/expr/parameter.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/expr/spatial.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/expr/state.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/expr/stl.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/expr/stljax.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/expr/time.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/expr/variable.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/expr/vmap.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/hashing.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lower.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/__init__.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/cvxpy/__init__.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/cvxpy/_lowerer.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/cvxpy/_registry.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/cvxpy/arithmetic.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/cvxpy/array.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/cvxpy/constraint.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/cvxpy/control.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/cvxpy/expr.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/cvxpy/linalg.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/cvxpy/logic.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/cvxpy/math.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/cvxpy/state.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/jax/__init__.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/jax/_lowerer.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/jax/_registry.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/jax/arithmetic.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/jax/array.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/jax/constraint.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/jax/control.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/jax/expr.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/jax/lie.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/jax/linalg.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/jax/logic.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/jax/math.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/jax/spatial.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/jax/state.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/jax/stl.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/jax/stljax.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/lowerers/jax/vmap.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/parser/__init__.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/parser/_registry.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/parser/array.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/parser/constraint.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/parser/lie.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/parser/linalg.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/parser/logic.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/parser/math.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/parser/parser.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/parser/spatial.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/parser/stl.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/parser/stljax.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/parser/tokenizer.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/preprocessing.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/problem.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/sparsity.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/symbolic/unified.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/utils/__init__.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/utils/cache.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/utils/caching.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/utils/printing.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/utils/profiling.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/utils/utils.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx.egg-info/SOURCES.txt +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx.egg-info/dependency_links.txt +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx.egg-info/entry_points.txt +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx.egg-info/requires.txt +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx.egg-info/top_level.txt +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/pyproject.toml +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/scripts/gen_example_pages.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/scripts/gen_ref_pages.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/setup.cfg +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/__init__.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/brachistochrone_analytical.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/expr/__init__.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/expr/test_gmsr.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/fixtures/brachistochrone.json +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/fixtures/brachistochrone.yaml +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/hohmann_analytical.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/__init__.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/expr/__init__.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/expr/test_arithmetic.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/expr/test_array.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/expr/test_constraint.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/expr/test_expr.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/expr/test_lie.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/expr/test_linalg.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/expr/test_logic.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/expr/test_math.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/expr/test_node_reference.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/expr/test_parameters.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/expr/test_scaling.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/expr/test_spatial.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/expr/test_stl.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/expr/test_variable.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/expr/test_vmap.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/parser/__init__.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/parser/test_array.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/parser/test_constraint.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/parser/test_lie.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/parser/test_linalg.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/parser/test_load.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/parser/test_logic.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/parser/test_math.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/parser/test_parser.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/parser/test_spatial.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/parser/test_stl.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/parser/test_tokenizer.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/parser/test_vmap.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/test_augmentation.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/test_hashing.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/test_lower_cvxpy.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/test_lower_jax.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/test_preprocessing.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/test_sparsity.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/symbolic/test_unified.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/test_autotuning.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/test_cvxpygen_optional.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/test_discretization.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/test_examples.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/test_expert.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/test_impulsive.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/test_init.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/test_integrators.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/test_loader.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/test_optimization_results.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/test_plotting.py +0 -0
- {openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/tests/test_propagation.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openscvx
|
|
3
|
-
Version: 0.4.1.
|
|
3
|
+
Version: 0.4.1.dev169
|
|
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
|
|
@@ -657,9 +657,9 @@ def plot_dubins_car_disjoint(results: OptimizationResults, params: Config):
|
|
|
657
657
|
|
|
658
658
|
def full_subject_traj_time(results: OptimizationResults, params: Config):
|
|
659
659
|
x_full = results.x_full
|
|
660
|
-
x_nodes = results.x
|
|
661
|
-
t_nodes =
|
|
662
|
-
t_full = results.
|
|
660
|
+
x_nodes = results.x
|
|
661
|
+
t_nodes = results.nodes["time"]
|
|
662
|
+
t_full = results.trajectory["time"]
|
|
663
663
|
subs_traj = []
|
|
664
664
|
subs_traj_node = []
|
|
665
665
|
subs_traj_sen = []
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '0.4.1.
|
|
22
|
-
__version_tuple__ = version_tuple = (0, 4, 1, '
|
|
21
|
+
__version__ = version = '0.4.1.dev169'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 4, 1, 'dev169')
|
|
23
23
|
|
|
24
|
-
__commit_id__ = commit_id = '
|
|
24
|
+
__commit_id__ = commit_id = 'gbc266779e'
|
|
@@ -129,6 +129,7 @@ class PenalizedTrustRegionConfig(BaseModel):
|
|
|
129
129
|
return v
|
|
130
130
|
|
|
131
131
|
k_max: int = 200
|
|
132
|
+
t_max: Optional[float] = None
|
|
132
133
|
lam_prox: Union[float, Dict[str, Any]] = 1e-1
|
|
133
134
|
lam_vc: Union[float, Dict[str, Any]] = 1e0
|
|
134
135
|
lam_cost: Union[float, Dict[str, Any]] = 1e-2
|
|
@@ -718,6 +718,10 @@ class Algorithm(ABC):
|
|
|
718
718
|
#: Maximum number of SCP iterations. Subclasses must set this in ``__init__``.
|
|
719
719
|
k_max: int
|
|
720
720
|
|
|
721
|
+
#: Optional wall-clock time limit in seconds. ``None`` means no limit.
|
|
722
|
+
#: Subclasses must set this in ``__init__``.
|
|
723
|
+
t_max: Optional[float]
|
|
724
|
+
|
|
721
725
|
@abstractmethod
|
|
722
726
|
def initialize(
|
|
723
727
|
self,
|
{openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/algorithms/penalized_trust_region.py
RENAMED
|
@@ -87,6 +87,7 @@ class PenalizedTrustRegion(Algorithm):
|
|
|
87
87
|
self,
|
|
88
88
|
autotuner: "AutotuningBase" = None,
|
|
89
89
|
k_max: int = 200,
|
|
90
|
+
t_max: float | None = None,
|
|
90
91
|
lam_prox: Union[float, Dict[str, Union[float, list]]] = 1e-1,
|
|
91
92
|
lam_vc: Union[float, Dict[str, Union[float, list]]] = 1e0,
|
|
92
93
|
lam_cost: Union[float, Dict[str, float]] = 1e-2,
|
|
@@ -103,6 +104,8 @@ class PenalizedTrustRegion(Algorithm):
|
|
|
103
104
|
autotuner: Weight adaptation strategy. Defaults to
|
|
104
105
|
:class:`AugmentedLagrangian` when ``None``.
|
|
105
106
|
k_max: Maximum SCP iterations. Defaults to 200.
|
|
107
|
+
t_max: Wall-clock time limit in seconds. ``None`` (default)
|
|
108
|
+
disables the time limit.
|
|
106
109
|
lam_prox: Trust region (proximal) weight. Either a float
|
|
107
110
|
(applied uniformly to all states and controls) or a dict
|
|
108
111
|
mapping state/control names to weights, e.g.
|
|
@@ -166,6 +169,7 @@ class PenalizedTrustRegion(Algorithm):
|
|
|
166
169
|
|
|
167
170
|
# SCP convergence parameters
|
|
168
171
|
self.k_max = k_max
|
|
172
|
+
self.t_max = t_max
|
|
169
173
|
self.ep_tr = ep_tr
|
|
170
174
|
self.ep_vb = ep_vb
|
|
171
175
|
self.ep_vc = ep_vc
|
|
@@ -972,12 +972,18 @@ class Problem:
|
|
|
972
972
|
}
|
|
973
973
|
|
|
974
974
|
def solve(
|
|
975
|
-
self,
|
|
975
|
+
self,
|
|
976
|
+
max_iters: Optional[int] = None,
|
|
977
|
+
time_limit: Optional[float] = None,
|
|
978
|
+
continuous: bool = False,
|
|
976
979
|
) -> OptimizationResults:
|
|
977
980
|
"""Run the SCP algorithm until convergence or iteration limit.
|
|
978
981
|
|
|
979
982
|
Args:
|
|
980
983
|
max_iters: Maximum iterations (default: algorithm.k_max)
|
|
984
|
+
time_limit: Wall-clock time limit in seconds. Overrides
|
|
985
|
+
``algorithm.t_max`` when provided. ``None`` (default) falls
|
|
986
|
+
back to ``algorithm.t_max``.
|
|
981
987
|
continuous: If True, run all iterations regardless of convergence
|
|
982
988
|
|
|
983
989
|
Returns:
|
|
@@ -1007,11 +1013,14 @@ class Problem:
|
|
|
1007
1013
|
printing.header(self._columns)
|
|
1008
1014
|
|
|
1009
1015
|
k_max = max_iters if max_iters is not None else self._algorithm.k_max
|
|
1016
|
+
t_max = time_limit if time_limit is not None else self._algorithm.t_max
|
|
1010
1017
|
|
|
1011
1018
|
while self._state.k <= k_max:
|
|
1012
1019
|
result = self.step()
|
|
1013
1020
|
if result["converged"] and not continuous:
|
|
1014
1021
|
break
|
|
1022
|
+
if t_max is not None and (time.time() - t_0_while) >= t_max:
|
|
1023
|
+
break
|
|
1015
1024
|
|
|
1016
1025
|
t_f_while = time.time()
|
|
1017
1026
|
self.timing_solve = t_f_while - t_0_while
|
|
@@ -1030,7 +1039,8 @@ class Problem:
|
|
|
1030
1039
|
# Store solution state
|
|
1031
1040
|
self._solution = copy.deepcopy(self._state)
|
|
1032
1041
|
|
|
1033
|
-
|
|
1042
|
+
timed_out = t_max is not None and self.timing_solve >= t_max
|
|
1043
|
+
return self._format_result(self._state, self._state.k <= k_max and not timed_out)
|
|
1034
1044
|
|
|
1035
1045
|
def post_process(self) -> OptimizationResults:
|
|
1036
1046
|
"""Propagate solution through full nonlinear dynamics for high-fidelity trajectory.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openscvx
|
|
3
|
-
Version: 0.4.1.
|
|
3
|
+
Version: 0.4.1.dev169
|
|
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
|
|
@@ -76,7 +76,7 @@ def _assert_brachistochrone_accuracy(comparison, problem, result):
|
|
|
76
76
|
assert num_iters < 27, f"Took {num_iters} SCP iterations (expected < 15)"
|
|
77
77
|
|
|
78
78
|
# Check timing - these are generous limits for a simple problem like brachistochrone
|
|
79
|
-
assert problem.timing_init <
|
|
79
|
+
assert problem.timing_init < 15.0, (
|
|
80
80
|
f"Initialization took {problem.timing_init:.2f}s (expected < 12s)"
|
|
81
81
|
)
|
|
82
82
|
assert problem.timing_solve < 1.2, f"Solve took {problem.timing_solve:.2f}s (expected < 1.2s)"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/Foundations/constraint_reformulation.md
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/Foundations/control_parameterization.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/UnderTheHood/vectorization_and_vmapping.md
RENAMED
|
File without changes
|
|
File without changes
|
{openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/UsersGuide/01_hello_world_brachistochrone.md
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/UsersGuide/02_drone_racing_constraints.md
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/docs/UsersGuide/03_obstacle_avoidance_vmap.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/car/dubins_car_obstacle_conditional.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/mpc/double_integrator_drone_racing.py
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/mpc/dubins_car_circle_analytical.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/examples/realtime/obstacle_avoidance_realtime.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/2-mars.avif
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/3-moon.avif
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/4-sat1.avif
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/5-space.avif
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/images/layers/6-earth.avif
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/javascripts/parallax.js
RENAMED
|
File without changes
|
|
File without changes
|
{openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/stylesheets/custom.css
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/assets/stylesheets/parallax.css
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/material/overrides/partials/parallax/hero.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/algorithms/constant_proximal_weight.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/discretization/discretize_linearize.py
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/discretization/linearize_discretize.py
RENAMED
|
File without changes
|
|
File without changes
|
{openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/discretization/sparse_utils/__init__.py
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev166 → openscvx-0.4.1.dev169}/openscvx/discretization/sparse_utils/bcoo_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|