openscvx 0.5.3.dev34__tar.gz → 0.5.3.dev35__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.3.dev34/openscvx.egg-info → openscvx-0.5.3.dev35}/PKG-INFO +1 -1
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/_version.py +3 -3
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/problem.py +29 -6
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35/openscvx.egg-info}/PKG-INFO +1 -1
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx.egg-info/SOURCES.txt +1 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx.egg-info/scm_file_list.json +1 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx.egg-info/scm_version.json +2 -2
- openscvx-0.5.3.dev35/tests/test_post_process_batched_tau_clamp.py +104 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/.github/assets/logo.svg +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/.github/release-drafter.yml +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/.github/workflows/_docs.yml +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/.github/workflows/branch-name.yml +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/.github/workflows/docs.yml +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/.github/workflows/lint.yml +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/.github/workflows/nightly.yml +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/.github/workflows/release-drafter.yml +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/.github/workflows/release.yml +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/.github/workflows/tests-integration.yml +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/.github/workflows/tests-unit.yml +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/.gitignore +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/.gitmodules +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/CONTRIBUTING.md +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/LICENSE +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/README.md +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/Foundations/constraint_reformulation.md +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/Foundations/control_parameterization.md +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/Foundations/discretization.md +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/Foundations/ocp.md +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/Foundations/scvx.md +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/Foundations/time_dilation.md +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/UnderTheHood/batching_jit_grad.md +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/UnderTheHood/custom_algorithms_autotuners.md +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/UnderTheHood/lowering_architecture.md +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/UnderTheHood/vectorization_and_vmapping.md +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/UsersGuide/00_introduction.md +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/UsersGuide/01_hello_world_brachistochrone.md +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/UsersGuide/02_drone_racing_constraints.md +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/UsersGuide/03_obstacle_avoidance_vmap.md +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/UsersGuide/04_viewpoint_constraints.md +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/UsersGuide/05_visualization.md +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/UsersGuide/06_logic.md +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/UsersGuide/07_lie.md +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/UsersGuide/08_mpcc.md +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/UsersGuide/09_mjx_dynamics.md +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/assets/favicon.png +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/assets/images/ct-scvx_dark.png +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/assets/images/ct-scvx_light.png +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/assets/images/ctcs_dark.png +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/assets/images/ctcs_light.png +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/assets/images/problem_class_dark.png +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/assets/images/problem_class_light.png +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/assets/logo.svg +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/assets/openscvx_logo_square.png +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/assets/viser-client/index.html +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/assets/viser-recordings/drone_racing.viser +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/assets/viser-recordings/franka_fr3v2_pick_place.viser +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/citation.md +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/examples.md +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/index.md +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/javascripts/mathjax.js +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/versions.json +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/_viser_embed_export.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/abstract/brachistochrone.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/abstract/brachistochrone_batched.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/abstract/flappy_bird.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/abstract/hypersensitive.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/abstract/impulsive.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/abstract/stl_integer_variable.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/abstract/stl_or.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/aircraft/dynamic_soaring.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/aircraft/supersonic_time_to_climb.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/animations/7_dof_arm.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/animations/_camera.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/animations/_render.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/animations/_sensor_view.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/animations/dr_vp_polytope.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/animations/franka_fr3v2_pick_place.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/animations/logo.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/animations/obstacle_avoidance_vmap.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/arm/3_dof_arm.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/arm/7_dof_arm.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/arm/7_dof_arm_collision.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/arm/7_dof_arm_vp.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/arm/franka_fr3v2_pick_place.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/arm/franka_fr3v2_viewplanning.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/arm/franka_fr3v2_viewplanning_nodal.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/car/dubins_car.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/car/dubins_car_disjoint.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/car/dubins_car_obstacle_conditional.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/car/dubins_car_obstacle_stl.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/car/dubins_car_stl_or.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/car/dubins_car_waypoint_stl.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/double_integrator/_plotting.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/double_integrator/moving_safe_zones.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/drone/2d_obstacle_avoidance_batched_ic.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/drone/cinema_vp.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/drone/cinema_vp_nodal.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/drone/dr_double_integrator.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/drone/dr_vp.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/drone/dr_vp_nodal.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/drone/dr_vp_polytope.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/drone/drone_racing.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/drone/drone_racing_batched_gates.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/drone/logo.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/drone/logo_utils/acl_logo.svg +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/drone/logo_utils/openscvx_logo_single.svg +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/drone/logo_utils/quadrotor_mesh.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/drone/logo_utils/svg_path_utils.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/drone/multi_agent_circle_swap.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/drone/obstacle_avoidance.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/drone/obstacle_avoidance_nodal.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/drone/obstacle_avoidance_vmap.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/drone/obstacle_avoidance_vmap_2d.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/drone/openscvx_logo.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/frax/panda_frax.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/frax/panda_frax_pick_place.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/frax/panda_frax_viewplanning.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/frax/panda_frax_waypoint.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/mjx/cartpole_mjx.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/mjx/double_cartpole_mjx.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/mjx/skydio_x2_mjx.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/mjx/triple_cartpole_3d_mjx.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/mjx/triple_cartpole_game.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/mjx/triple_cartpole_mjx.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/mpc/double_integrator_discrete.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/mpc/double_integrator_drone_racing.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/mpc/dubins_car_circle_analytical.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/mpc/dubins_car_circle_discrete.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/mpc/realtime_double_integrator_drone_racing.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/plotting.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/plotting_viser.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/realtime/3DoF_pdg_realtime.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/realtime/6DoF_pdg_realtime.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/realtime/base_problems/3DoF_pdg_realtime_base.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/realtime/base_problems/6DoF_pdg_realtime_base.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/realtime/base_problems/cinema_vp_realtime_base.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/realtime/base_problems/drone_racing_realtime_base.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/realtime/base_problems/dubins_car_realtime_base.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/realtime/base_problems/obstacle_avoidance_realtime_base.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/realtime/cinema_vp_realtime.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/realtime/drone_racing_realtime.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/realtime/dubins_car_realtime.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/realtime/obstacle_avoidance_realtime.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/rocket/3DoF_pdg.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/rocket/6DoF_pdg.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/rocket/6DoF_pdg_batched_ic.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/rocket/ascent_launch_vehicle.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/spacecraft/halo_orbit.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/spacecraft/hohmann_transfer.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/spacecraft/let_transfer.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/spacecraft/proxops_cw.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/spacecraft/relative_loitering.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/figures/ctlos_cine.gif +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/figures/ctlos_dr.gif +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/figures/dtlos_cine.gif +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/figures/dtlos_dr.gif +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/figures/openscvx_logo.svg +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/figures/openscvx_logo_square.png +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/figures/oscvx_structure_full_dark.svg +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/figures/video_preview.png +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/material/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/material/overrides/assets/stylesheets/custom.css +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/material/overrides/assets/stylesheets/home-dropin.css +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/material/overrides/assets/stylesheets/home-hero.css +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/material/overrides/assets/stylesheets/home-viser.css +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/material/overrides/home.html +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/material/overrides/main.html +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/material/overrides/partials/home-diagram.html +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/material/overrides/partials/home-dropin-banner.html +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/material/overrides/partials/home-hero.html +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/material/overrides/partials/home-pipeline.html +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/material/overrides/partials/home-viser-strip.html +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/mkdocs.yml +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/__main__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/algorithms/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/algorithms/autotuner/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/algorithms/autotuner/acceptance_ratio.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/algorithms/autotuner/adaptive_proximal_weight.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/algorithms/autotuner/augmented_lagrangian.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/algorithms/autotuner/base.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/algorithms/autotuner/constant_proximal_weight.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/algorithms/autotuner/ramp_proximal_weight.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/algorithms/base.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/algorithms/history.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/algorithms/hyperparams.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/algorithms/loop.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/algorithms/optimization_results.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/algorithms/penalty.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/algorithms/scvx/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/algorithms/scvx/iteration.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/algorithms/scvx/penalized_trust_region.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/algorithms/state.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/algorithms/weights.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/config.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/discretization/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/discretization/base.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/discretization/discretize_linearize.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/discretization/linearize_discretize.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/discretization/linearize_discretize_sparse.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/discretization/sparse_utils/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/discretization/sparse_utils/bcoo_helpers.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/discretization/sparse_utils/sparse_jacobian.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/expert/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/expert/byof.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/expert/lowering.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/expert/validation.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/init/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/init/interpolation.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/init/inverse_kinematics.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/integrations/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/integrations/_utils.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/integrations/base.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/integrations/frax.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/integrations/menagerie.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/integrations/mjx.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/integrators/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/integrators/diffrax.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/integrators/runge_kutta.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/loader.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/lowered/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/lowered/cvxpy_constraints.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/lowered/cvxpy_variables.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/lowered/dynamics.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/lowered/jax_constraints.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/lowered/parameters.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/lowered/problem.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/lowered/unified.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/plotting/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/plotting/plotting.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/plotting/publication.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/plotting/scp_iteration.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/plotting/viser/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/plotting/viser/animated.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/plotting/viser/coordinates.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/plotting/viser/orbits.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/plotting/viser/plotly_integration.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/plotting/viser/primitives.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/plotting/viser/scp.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/plotting/viser/server.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/propagation/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/propagation/post_processing.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/propagation/propagation.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/solvers/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/solvers/base.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/solvers/cones.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/solvers/cvxpy_ptr_solver.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/solvers/moreau_ptr_solver.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/solvers/ptr_solver.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/solvers/qpax_ptr_solver.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/affine.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/augmentation.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/builder.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/canonicalize.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/constraint_set.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/expr/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/expr/arithmetic.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/expr/array.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/expr/constraint.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/expr/control.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/expr/expr.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/expr/lie/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/expr/lie/adjoint.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/expr/lie/se3.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/expr/lie/so3.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/expr/linalg.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/expr/logic.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/expr/math.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/expr/parameter.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/expr/spatial.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/expr/state.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/expr/stl.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/expr/stljax.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/expr/time.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/expr/variable.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/expr/vmap.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/hashing.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lower.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/cvxpy/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/cvxpy/_lowerer.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/cvxpy/_registry.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/cvxpy/arithmetic.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/cvxpy/array.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/cvxpy/constraint.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/cvxpy/control.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/cvxpy/expr.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/cvxpy/linalg.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/cvxpy/logic.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/cvxpy/math.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/cvxpy/state.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/jax/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/jax/_lowerer.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/jax/_registry.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/jax/arithmetic.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/jax/array.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/jax/constraint.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/jax/control.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/jax/expr.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/jax/lie.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/jax/linalg.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/jax/logic.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/jax/math.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/jax/spatial.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/jax/state.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/jax/stl.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/jax/stljax.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/lowerers/jax/vmap.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/parser/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/parser/_registry.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/parser/array.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/parser/constraint.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/parser/lie.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/parser/linalg.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/parser/logic.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/parser/math.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/parser/parser.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/parser/spatial.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/parser/stl.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/parser/stljax.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/parser/tokenizer.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/preprocessing.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/problem.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/sparsity.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/symbolic/unified.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/utils/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/utils/cache.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/utils/caching.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/utils/printing.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/utils/profiling.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx/utils/utils.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx.egg-info/dependency_links.txt +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx.egg-info/entry_points.txt +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx.egg-info/requires.txt +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/openscvx.egg-info/top_level.txt +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/pyproject.toml +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/scripts/gen_example_pages.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/scripts/gen_ref_pages.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/scripts/mkdocs_copy_viser_client_hook.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/setup.cfg +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/_marks.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/algorithms/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/algorithms/_iteration_helpers.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/algorithms/autotuner/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/algorithms/autotuner/test_defaults_agreement.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/algorithms/autotuner/test_hyper_overrides.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/algorithms/autotuner/test_update_weights_jit.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/algorithms/test_algorithm_state_pytree.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/algorithms/test_iteration_fn_jit.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/algorithms/test_iteration_fn_parity.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/algorithms/test_make_solve_loop.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/brachistochrone_analytical.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/conftest.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/expr/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/expr/test_gmsr.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/fixtures/brachistochrone.json +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/fixtures/brachistochrone.yaml +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/hohmann_analytical.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/integrations/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/integrations/test_mjx.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/integrations/test_mjx_dynamics.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/solvers/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/solvers/_iteration_callback_helpers.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/solvers/test_cvxpy_callback_jit_spike.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/solvers/test_iteration_callback_cvxpy.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/solvers/test_iteration_callback_moreau.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/solvers/test_iteration_callback_qpax.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/solvers/test_iteration_callback_vmap.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/solvers/test_moreau_ptr_solver.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/solvers/test_qpax_ptr_solver.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/solvers/test_subproblem_pytree.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/expr/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/expr/test_arithmetic.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/expr/test_array.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/expr/test_constraint.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/expr/test_expr.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/expr/test_lie.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/expr/test_linalg.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/expr/test_logic.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/expr/test_math.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/expr/test_node_reference.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/expr/test_parameters.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/expr/test_scaling.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/expr/test_spatial.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/expr/test_stl.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/expr/test_variable.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/expr/test_vmap.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/parser/__init__.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/parser/test_array.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/parser/test_constraint.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/parser/test_lie.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/parser/test_linalg.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/parser/test_load.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/parser/test_logic.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/parser/test_math.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/parser/test_parser.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/parser/test_spatial.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/parser/test_stl.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/parser/test_tokenizer.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/parser/test_vmap.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/test_augmentation.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/test_hashing.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/test_lower_cvxpy.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/test_lower_jax.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/test_preprocessing.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/test_sparsity.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/symbolic/test_unified.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/test_autotuning.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/test_brachistochrone.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/test_cvxpygen_optional.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/test_discretization.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/test_examples.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/test_expert.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/test_impulsive.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/test_init.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/test_integrators.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/test_loader.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/test_multishot_propagation.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/test_optimization_results.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/test_plotting.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/test_propagation.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/test_results_parameters.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/test_solve_batched_brachistochrone.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/test_solve_batched_cvxpy_export_errors.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/test_solve_batched_export_roundtrip.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/test_solve_batched_inference.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/test_solve_jax_bare_brachistochrone.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/test_solve_jax_jit_brachistochrone.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/test_solve_jax_vmap_brachistochrone.py +0 -0
- {openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/tests/test_solve_jax_vmap_converged_no_drift.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openscvx
|
|
3
|
-
Version: 0.5.3.
|
|
3
|
+
Version: 0.5.3.dev35
|
|
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
|
|
@@ -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.5.3.
|
|
22
|
-
__version_tuple__ = version_tuple = (0, 5, 3, '
|
|
21
|
+
__version__ = version = '0.5.3.dev35'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 5, 3, 'dev35')
|
|
23
23
|
|
|
24
|
-
__commit_id__ = commit_id = '
|
|
24
|
+
__commit_id__ = commit_id = 'g43f7b7f31'
|
|
@@ -63,7 +63,11 @@ from openscvx.lowered.jax_constraints import (
|
|
|
63
63
|
LoweredJaxConstraints,
|
|
64
64
|
LoweredNodalConstraint,
|
|
65
65
|
)
|
|
66
|
-
from openscvx.propagation import
|
|
66
|
+
from openscvx.propagation import (
|
|
67
|
+
get_propagation_solver,
|
|
68
|
+
propagate_trajectory_results,
|
|
69
|
+
s_to_t,
|
|
70
|
+
)
|
|
67
71
|
from openscvx.solvers import ConvexSolver, resolve_solver_config
|
|
68
72
|
from openscvx.symbolic.builder import preprocess_symbolic_problem
|
|
69
73
|
from openscvx.symbolic.expr import CTCS, Constraint
|
|
@@ -2074,7 +2078,12 @@ class Problem:
|
|
|
2074
2078
|
``ceil(T_max / settings.prp.dt) + 1`` where ``T_max`` is the
|
|
2075
2079
|
longest terminal time across the batch. All ``B`` elements are
|
|
2076
2080
|
interpolated to the **same** ``n_times`` so the output arrays
|
|
2077
|
-
have uniform shape.
|
|
2081
|
+
have uniform shape. The requested (or default) value is capped
|
|
2082
|
+
so no single segment of any element receives more dense samples
|
|
2083
|
+
than the propagation solver's compiled per-segment capacity
|
|
2084
|
+
(``settings.prp.max_tau_len``); the cap binds on the largest
|
|
2085
|
+
segment-duration fraction across the batch, so trajectories with
|
|
2086
|
+
near-uniform segments are left untouched.
|
|
2078
2087
|
|
|
2079
2088
|
Returns:
|
|
2080
2089
|
The same ``results`` object with ``t_full``, ``x_full``, ``u_full``,
|
|
@@ -2095,10 +2104,24 @@ class Problem:
|
|
|
2095
2104
|
n_times = max(int(np.ceil(T_max / self.settings.prp.dt)) + 1, 2)
|
|
2096
2105
|
|
|
2097
2106
|
# The propagation solver is compiled with a per-segment tau capacity of
|
|
2098
|
-
# ``max_tau_len
|
|
2099
|
-
# ``
|
|
2100
|
-
#
|
|
2101
|
-
|
|
2107
|
+
# ``max_tau_len`` — the *per-segment* buffer width, not a total-point
|
|
2108
|
+
# budget. A uniform ``linspace`` grid over an element's real time span
|
|
2109
|
+
# drops about ``(n_times - 1) * seg_dur / span`` points into each
|
|
2110
|
+
# segment, so the binding quantity is the largest segment-duration
|
|
2111
|
+
# fraction across the batch, not the total point count. Bound
|
|
2112
|
+
# ``n_times`` so the busiest segment of any element — plus the endpoint
|
|
2113
|
+
# sample ``simulate_nonlinear_time`` appends — stays within
|
|
2114
|
+
# ``max_tau_len``:
|
|
2115
|
+
# (n_times - 1) * frac_max + 2 <= max_tau_len.
|
|
2116
|
+
u_batch = np.asarray(results.U[-1]) # (B, N, n_u)
|
|
2117
|
+
frac_max = 0.0
|
|
2118
|
+
for b in range(B):
|
|
2119
|
+
t_b = np.asarray(
|
|
2120
|
+
s_to_t(x_batch[b], u_batch[b], self.settings, self._discretizer)
|
|
2121
|
+
).reshape(-1)
|
|
2122
|
+
frac_max = max(frac_max, float(np.diff(t_b).max() / (t_b[-1] - t_b[0])))
|
|
2123
|
+
per_segment_bound = max(int((self.settings.prp.max_tau_len - 2) / frac_max) + 1, 2)
|
|
2124
|
+
n_times = min(n_times, per_segment_bound)
|
|
2102
2125
|
|
|
2103
2126
|
t_fulls: List[np.ndarray] = []
|
|
2104
2127
|
x_fulls: List[np.ndarray] = []
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openscvx
|
|
3
|
-
Version: 0.5.3.
|
|
3
|
+
Version: 0.5.3.dev35
|
|
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
|
|
@@ -354,6 +354,7 @@ tests/test_loader.py
|
|
|
354
354
|
tests/test_multishot_propagation.py
|
|
355
355
|
tests/test_optimization_results.py
|
|
356
356
|
tests/test_plotting.py
|
|
357
|
+
tests/test_post_process_batched_tau_clamp.py
|
|
357
358
|
tests/test_propagation.py
|
|
358
359
|
tests/test_results_parameters.py
|
|
359
360
|
tests/test_solve_batched_brachistochrone.py
|
|
@@ -221,6 +221,7 @@
|
|
|
221
221
|
"tests/hohmann_analytical.py",
|
|
222
222
|
"tests/test_expert.py",
|
|
223
223
|
"tests/test_results_parameters.py",
|
|
224
|
+
"tests/test_post_process_batched_tau_clamp.py",
|
|
224
225
|
"tests/test_solve_batched_inference.py",
|
|
225
226
|
"tests/test_solve_jax_bare_brachistochrone.py",
|
|
226
227
|
"tests/test_cvxpygen_optional.py",
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"""``post_process_batched`` sizes its dense grid per-segment, not per-total.
|
|
2
|
+
|
|
3
|
+
The propagation solver is compiled with a *per-segment* tau buffer of width
|
|
4
|
+
``settings.prp.max_tau_len``. ``post_process_batched`` used to clamp the
|
|
5
|
+
*total* number of dense output points to that per-segment width, collapsing
|
|
6
|
+
trajectories that would otherwise carry hundreds of samples down to a handful.
|
|
7
|
+
These tests pin the fixed behaviour: the dense grid may far exceed
|
|
8
|
+
``max_tau_len`` in total, yet no single segment of any batch element ever
|
|
9
|
+
overfills the per-segment buffer.
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
import jax.numpy as jnp
|
|
13
|
+
import numpy as np
|
|
14
|
+
import pytest
|
|
15
|
+
|
|
16
|
+
from openscvx.propagation import s_to_t
|
|
17
|
+
from tests.solvers._iteration_callback_helpers import build_brachistochrone
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def _x_initial_stack(prob, shifts=(0.0, 0.3, -0.3)):
|
|
21
|
+
"""Stack a few initial pins by shifting the starting x-coordinate."""
|
|
22
|
+
default_pin = prob.state.x_init_pin
|
|
23
|
+
return jnp.stack([default_pin.at[0].set(default_pin[0] + s) for s in shifts])
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def _worst_segment_occupancy(prob, results):
|
|
27
|
+
"""Largest per-segment dense-sample count across the batch.
|
|
28
|
+
|
|
29
|
+
Mirrors the binning ``simulate_nonlinear_time`` performs: each dense time
|
|
30
|
+
falls into the node-time segment ``[t_nodal[k], t_nodal[k + 1])``. Returns
|
|
31
|
+
the maximum count over all segments and all batch elements.
|
|
32
|
+
"""
|
|
33
|
+
x_batch = np.asarray(results.X[-1])
|
|
34
|
+
u_batch = np.asarray(results.U[-1])
|
|
35
|
+
worst = 0
|
|
36
|
+
for b in range(x_batch.shape[0]):
|
|
37
|
+
t_nodal = np.asarray(
|
|
38
|
+
s_to_t(x_batch[b], u_batch[b], prob.settings, prob._discretizer)
|
|
39
|
+
).reshape(-1)
|
|
40
|
+
seg = np.clip(
|
|
41
|
+
np.searchsorted(t_nodal, results.t_full[b], side="right") - 1,
|
|
42
|
+
0,
|
|
43
|
+
len(t_nodal) - 2,
|
|
44
|
+
)
|
|
45
|
+
counts = np.bincount(seg, minlength=len(t_nodal) - 1)
|
|
46
|
+
worst = max(worst, int(counts.max()))
|
|
47
|
+
return worst
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
# === Dense grid is sized by the total, capped only per-segment ===
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def test_batched_dense_grid_exceeds_per_segment_capacity():
|
|
54
|
+
"""The default grid carries far more total points than one segment holds.
|
|
55
|
+
|
|
56
|
+
``ceil(T_max / prp.dt) + 1`` comfortably exceeds ``max_tau_len`` here, and
|
|
57
|
+
with near-uniform segments each segment stays well within the per-segment
|
|
58
|
+
buffer — so the total-count clamp was pure loss. Before the fix the dense
|
|
59
|
+
grid came out at exactly ``max_tau_len`` samples.
|
|
60
|
+
"""
|
|
61
|
+
pytest.importorskip("qpax")
|
|
62
|
+
|
|
63
|
+
prob = build_brachistochrone("qpax", n=8, k_max=20)
|
|
64
|
+
prob.initialize()
|
|
65
|
+
max_tau_len = prob.settings.prp.max_tau_len
|
|
66
|
+
|
|
67
|
+
batched = prob.solve_batched(x_initial=_x_initial_stack(prob))
|
|
68
|
+
results = prob.post_process_batched(batched)
|
|
69
|
+
|
|
70
|
+
# The dense grid dwarfs the per-segment buffer — the old clamp would have
|
|
71
|
+
# pinned it to exactly ``max_tau_len``.
|
|
72
|
+
assert results.t_full.shape[-1] > max_tau_len
|
|
73
|
+
# ...and the per-segment safety still holds: nothing overfills the buffer.
|
|
74
|
+
assert _worst_segment_occupancy(prob, results) + 1 <= max_tau_len
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
# === Per-segment capacity is still enforced ===
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def test_batched_large_n_times_request_is_clamped_to_per_segment_capacity():
|
|
81
|
+
"""An absurd explicit ``n_times`` is capped, and no segment overfills.
|
|
82
|
+
|
|
83
|
+
Requesting far more points than the per-segment buffer could ever absorb
|
|
84
|
+
forces the bound to bind. A naive ``linspace`` of this size would drop
|
|
85
|
+
thousands of samples into each segment and blow past ``max_tau_len`` — the
|
|
86
|
+
propagation solver would crash on the negative pad. The per-segment-aware
|
|
87
|
+
bound reduces ``n_times`` just enough that every segment fits, so the call
|
|
88
|
+
both returns a smaller grid and completes without error.
|
|
89
|
+
"""
|
|
90
|
+
pytest.importorskip("qpax")
|
|
91
|
+
|
|
92
|
+
prob = build_brachistochrone("qpax", n=8, k_max=20)
|
|
93
|
+
prob.initialize()
|
|
94
|
+
max_tau_len = prob.settings.prp.max_tau_len
|
|
95
|
+
|
|
96
|
+
batched = prob.solve_batched(x_initial=_x_initial_stack(prob))
|
|
97
|
+
huge = 100_000
|
|
98
|
+
results = prob.post_process_batched(batched, n_times=huge)
|
|
99
|
+
|
|
100
|
+
# The request was clamped well below what was asked for...
|
|
101
|
+
assert results.t_full.shape[-1] < huge
|
|
102
|
+
# ...precisely so that the busiest segment plus its endpoint sample stays
|
|
103
|
+
# within the compiled per-segment buffer.
|
|
104
|
+
assert _worst_segment_occupancy(prob, results) + 1 <= max_tau_len
|
|
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.5.3.dev34 → openscvx-0.5.3.dev35}/docs/UnderTheHood/custom_algorithms_autotuners.md
RENAMED
|
File without changes
|
|
File without changes
|
{openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/UnderTheHood/vectorization_and_vmapping.md
RENAMED
|
File without changes
|
|
File without changes
|
{openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/UsersGuide/01_hello_world_brachistochrone.md
RENAMED
|
File without changes
|
{openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/UsersGuide/02_drone_racing_constraints.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
|
{openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/docs/assets/viser-recordings/drone_racing.viser
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
|
{openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/animations/franka_fr3v2_pick_place.py
RENAMED
|
File without changes
|
|
File without changes
|
{openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/animations/obstacle_avoidance_vmap.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.5.3.dev34 → openscvx-0.5.3.dev35}/examples/arm/franka_fr3v2_viewplanning_nodal.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/car/dubins_car_obstacle_conditional.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/double_integrator/moving_safe_zones.py
RENAMED
|
File without changes
|
{openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/drone/2d_obstacle_avoidance_batched_ic.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
|
{openscvx-0.5.3.dev34 → openscvx-0.5.3.dev35}/examples/drone/logo_utils/openscvx_logo_single.svg
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.5.3.dev34 → openscvx-0.5.3.dev35}/examples/mpc/double_integrator_drone_racing.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.5.3.dev34 → openscvx-0.5.3.dev35}/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
|