openscvx 0.4.1.dev61__tar.gz → 0.4.1.dev63__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.dev61/openscvx.egg-info → openscvx-0.4.1.dev63}/PKG-INFO +1 -1
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/_version.py +3 -3
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/expert/byof.py +11 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/expert/validation.py +16 -2
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/problem.py +1 -1
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/builder.py +6 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/expr/lie/se3.py +0 -1
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/expr/lie/so3.py +0 -1
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63/openscvx.egg-info}/PKG-INFO +1 -1
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/.github/assets/logo.svg +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/.github/release-drafter.yml +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/.github/workflows/_docs.yml +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/.github/workflows/branch-name.yml +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/.github/workflows/docs.yml +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/.github/workflows/lint.yml +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/.github/workflows/nightly.yml +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/.github/workflows/release-drafter.yml +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/.github/workflows/release.yml +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/.github/workflows/tests-integration.yml +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/.github/workflows/tests-unit.yml +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/.gitignore +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/CONTRIBUTING.md +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/LICENSE +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/README.md +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/Foundations/constraint_reformulation.md +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/Foundations/control_parameterization.md +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/Foundations/discretization.md +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/Foundations/ocp.md +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/Foundations/scvx.md +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/Foundations/time_dilation.md +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/UnderTheHood/lowering_architecture.md +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/UnderTheHood/vectorization_and_vmapping.md +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/UsersGuide/00_introduction.md +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/UsersGuide/01_hello_world_brachistochrone.md +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/UsersGuide/02_drone_racing_constraints.md +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/UsersGuide/03_obstacle_avoidance_vmap.md +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/UsersGuide/04_viewpoint_constraints.md +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/UsersGuide/05_visualization.md +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/UsersGuide/06_logic.md +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/UsersGuide/07_lie.md +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/assets/favicon.png +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/assets/images/ct-scvx_dark.png +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/assets/images/ct-scvx_light.png +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/assets/images/ctcs_dark.png +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/assets/images/ctcs_light.png +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/assets/images/problem_class_dark.png +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/assets/images/problem_class_light.png +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/assets/logo.svg +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/citation.md +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/examples.md +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/getting-started.md +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/index.md +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/javascripts/mathjax.js +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/examples/abstract/brachistochrone.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/examples/arm/three_link_arm.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/examples/car/dubins_car.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/examples/car/dubins_car_conditional.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/examples/car/dubins_car_disjoint.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/examples/car/dubins_car_stljax.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/examples/drone/cinema_vp.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/examples/drone/dr_double_integrator.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/examples/drone/dr_vp.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/examples/drone/dr_vp_nodal.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/examples/drone/dr_vp_polytope.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/examples/drone/drone_racing.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/examples/drone/logo.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/examples/drone/logo_utils/acl_logo.svg +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/examples/drone/logo_utils/svg_path_utils.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/examples/drone/obstacle_avoidance.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/examples/drone/obstacle_avoidance_nodal.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/examples/drone/obstacle_avoidance_vmap.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/examples/plotting.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/examples/plotting_viser.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/examples/realtime/base_problems/cinema_vp_realtime_base.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/examples/realtime/base_problems/drone_racing_realtime_base.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/examples/realtime/base_problems/obstacle_avoidance_realtime_base.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/examples/realtime/cinema_vp_realtime.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/examples/realtime/drone_racing_realtime.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/examples/realtime/dubins_car_realtime.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/examples/realtime/obstacle_avoidance_realtime.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/examples/rocket/3DoF_pdg.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/examples/spacecraft/proxops_cw.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/figures/ctlos_cine.gif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/figures/ctlos_dr.gif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/figures/dtlos_cine.gif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/figures/dtlos_dr.gif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/figures/openscvx_logo.svg +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/figures/openscvx_logo_square.png +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/figures/oscvx_structure_full_dark.svg +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/figures/video_preview.png +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/__init__.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/1-background.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/1-background@1x.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/1-background@2x.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/1-background@3x.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/1-background@4x.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/2-mars.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/2-mars@1x.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/2-mars@2x.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/2-mars@3x.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/2-mars@4x.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/3-moon.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/3-moon@1x.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/3-moon@2x.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/3-moon@3x.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/3-moon@4x.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/4-sat1.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/4-sat1@1x.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/4-sat1@2x.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/4-sat1@3x.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/4-sat1@4x.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/5-space.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/5-space@1x.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/5-space@2x.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/5-space@3x.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/5-space@4x.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/6-earth.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/6-earth@1x.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/6-earth@2x.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/6-earth@3x.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/6-earth@4x.avif +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/javascripts/parallax.js +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/logo.svg +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/stylesheets/custom.css +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/stylesheets/parallax.css +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/home.html +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/main.html +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/partials/parallax/hero.html +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/partials/parallax.html +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/mkdocs.yml +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/__init__.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/__main__.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/algorithms/AugmentedLagrangian.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/algorithms/ConstantProximalWeight.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/algorithms/RampProximalWeight.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/algorithms/__init__.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/algorithms/base.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/algorithms/optimization_results.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/algorithms/penalized_trust_region.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/config.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/discretization/__init__.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/discretization/base.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/discretization/linearize_discretize.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/expert/__init__.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/expert/lowering.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/init/__init__.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/init/interpolation.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/integrators/__init__.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/integrators/runge_kutta.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/loader.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/lowered/__init__.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/lowered/cvxpy_constraints.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/lowered/cvxpy_variables.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/lowered/dynamics.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/lowered/jax_constraints.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/lowered/parameters.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/lowered/problem.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/lowered/unified.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/plotting/__init__.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/plotting/plotting.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/plotting/scp_iteration.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/plotting/viser/__init__.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/plotting/viser/animated.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/plotting/viser/plotly_integration.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/plotting/viser/primitives.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/plotting/viser/scp.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/plotting/viser/server.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/propagation/__init__.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/propagation/post_processing.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/propagation/propagation.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/solvers/__init__.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/solvers/base.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/solvers/ptr_solver.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/__init__.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/augmentation.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/constraint_set.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/expr/__init__.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/expr/arithmetic.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/expr/array.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/expr/constraint.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/expr/control.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/expr/expr.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/expr/lie/__init__.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/expr/lie/adjoint.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/expr/linalg.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/expr/logic.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/expr/math.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/expr/spatial.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/expr/state.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/expr/stl.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/expr/variable.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/expr/vmap.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/hashing.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lower.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lowerers/__init__.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lowerers/cvxpy/__init__.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lowerers/cvxpy/_lowerer.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lowerers/cvxpy/_registry.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lowerers/cvxpy/arithmetic.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lowerers/cvxpy/array.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lowerers/cvxpy/constraint.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lowerers/cvxpy/control.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lowerers/cvxpy/expr.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lowerers/cvxpy/linalg.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lowerers/cvxpy/logic.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lowerers/cvxpy/math.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lowerers/cvxpy/state.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lowerers/jax/__init__.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lowerers/jax/_lowerer.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lowerers/jax/_registry.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lowerers/jax/arithmetic.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lowerers/jax/array.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lowerers/jax/constraint.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lowerers/jax/control.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lowerers/jax/expr.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lowerers/jax/lie.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lowerers/jax/linalg.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lowerers/jax/logic.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lowerers/jax/math.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lowerers/jax/spatial.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lowerers/jax/state.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lowerers/jax/stl.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/lowerers/jax/vmap.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/parser/__init__.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/parser/_registry.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/parser/array.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/parser/constraint.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/parser/lie.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/parser/linalg.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/parser/logic.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/parser/math.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/parser/parser.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/parser/spatial.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/parser/stl.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/parser/tokenizer.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/preprocessing.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/problem.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/time.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/symbolic/unified.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/utils/__init__.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/utils/cache.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/utils/caching.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/utils/printing.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/utils/profiling.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx/utils/utils.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx.egg-info/SOURCES.txt +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx.egg-info/dependency_links.txt +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx.egg-info/entry_points.txt +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx.egg-info/requires.txt +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/openscvx.egg-info/top_level.txt +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/pyproject.toml +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/scripts/gen_example_pages.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/scripts/gen_ref_pages.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/setup.cfg +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/__init__.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/brachistochrone_analytical.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/fixtures/brachistochrone.json +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/fixtures/brachistochrone.yaml +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/__init__.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/expr/__init__.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/expr/test_arithmetic.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/expr/test_array.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/expr/test_constraint.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/expr/test_expr.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/expr/test_lie.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/expr/test_linalg.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/expr/test_logic.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/expr/test_math.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/expr/test_node_reference.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/expr/test_parameters.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/expr/test_scaling.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/expr/test_spatial.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/expr/test_variable.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/expr/test_vmap.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/parser/__init__.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/parser/test_array.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/parser/test_constraint.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/parser/test_lie.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/parser/test_linalg.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/parser/test_load.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/parser/test_logic.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/parser/test_math.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/parser/test_parser.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/parser/test_spatial.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/parser/test_stl.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/parser/test_tokenizer.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/parser/test_vmap.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/test_augmentation.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/test_hashing.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/test_lower_cvxpy.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/test_lower_jax.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/test_preprocessing.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/symbolic/test_unified.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/test_autotuning.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/test_brachistochrone.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/test_cvxpygen_optional.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/test_discretization.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/test_examples.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/test_expert.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/test_init.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/test_integrators.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/test_loader.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/test_optimization_results.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/tests/test_plotting.py +0 -0
- {openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/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.dev63
|
|
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
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '0.4.1.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 4, 1, '
|
|
31
|
+
__version__ = version = '0.4.1.dev63'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 4, 1, 'dev63')
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'g80650c4e0'
|
|
@@ -92,6 +92,8 @@ from typing import TYPE_CHECKING, Any, Callable, List, Literal, Tuple, TypedDict
|
|
|
92
92
|
|
|
93
93
|
if TYPE_CHECKING:
|
|
94
94
|
from jax import Array as JaxArray
|
|
95
|
+
|
|
96
|
+
from openscvx.symbolic.expr.expr import Parameter
|
|
95
97
|
else:
|
|
96
98
|
JaxArray = Any
|
|
97
99
|
|
|
@@ -252,6 +254,10 @@ class ByofSpec(TypedDict, total=False):
|
|
|
252
254
|
state/control vectors.
|
|
253
255
|
|
|
254
256
|
Attributes:
|
|
257
|
+
parameters: List of :class:`~openscvx.symbolic.expr.expr.Parameter` objects that
|
|
258
|
+
are only used inside byof functions (not in any symbolic expression). Parameters
|
|
259
|
+
already referenced in symbolic dynamics or constraints are collected automatically
|
|
260
|
+
and do not need to be listed here. Duplicates are ignored.
|
|
255
261
|
dynamics: Raw JAX functions for state derivatives. Maps state names to functions
|
|
256
262
|
with signature ``(x, u, node, params) -> xdot_component``. States here should
|
|
257
263
|
NOT appear in symbolic dynamics dict. You can mix: some states symbolic,
|
|
@@ -283,12 +289,16 @@ class ByofSpec(TypedDict, total=False):
|
|
|
283
289
|
velocity = ox.State("velocity", shape=(1,))
|
|
284
290
|
theta = ox.Control("theta", shape=(1,))
|
|
285
291
|
|
|
292
|
+
# Parameters used by byof functions
|
|
293
|
+
g = ox.Parameter("g", shape=(), value=9.81)
|
|
294
|
+
|
|
286
295
|
# Custom dynamics for one state using .slice property
|
|
287
296
|
def custom_velocity_dynamics(x, u, node, params):
|
|
288
297
|
# Use .slice property for clean indexing
|
|
289
298
|
return params["g"] * jnp.cos(u[theta.slice][0])
|
|
290
299
|
|
|
291
300
|
byof: ByofSpec = {
|
|
301
|
+
"parameters": [g],
|
|
292
302
|
"dynamics": {
|
|
293
303
|
"velocity": custom_velocity_dynamics,
|
|
294
304
|
},
|
|
@@ -320,6 +330,7 @@ class ByofSpec(TypedDict, total=False):
|
|
|
320
330
|
}
|
|
321
331
|
"""
|
|
322
332
|
|
|
333
|
+
parameters: List["Parameter"]
|
|
323
334
|
dynamics: dict[str, DynamicsFunction]
|
|
324
335
|
nodal_constraints: List[NodalConstraintSpec]
|
|
325
336
|
cross_nodal_constraints: List[CrossNodalConstraintFunction]
|
|
@@ -19,6 +19,7 @@ def validate_byof(
|
|
|
19
19
|
n_x: int,
|
|
20
20
|
n_u: int,
|
|
21
21
|
N: int = None,
|
|
22
|
+
parameters: dict = None,
|
|
22
23
|
) -> None:
|
|
23
24
|
"""Validate byof function signatures and shapes.
|
|
24
25
|
|
|
@@ -45,16 +46,29 @@ def validate_byof(
|
|
|
45
46
|
import jax.numpy as jnp
|
|
46
47
|
|
|
47
48
|
# Validate byof keys
|
|
48
|
-
valid_keys = {
|
|
49
|
+
valid_keys = {
|
|
50
|
+
"parameters",
|
|
51
|
+
"dynamics",
|
|
52
|
+
"nodal_constraints",
|
|
53
|
+
"cross_nodal_constraints",
|
|
54
|
+
"ctcs_constraints",
|
|
55
|
+
}
|
|
49
56
|
invalid_keys = set(byof.keys()) - valid_keys
|
|
50
57
|
if invalid_keys:
|
|
51
58
|
raise ValueError(f"Unknown byof keys: {invalid_keys}. Valid keys: {valid_keys}")
|
|
52
59
|
|
|
60
|
+
# Validate byof parameters
|
|
61
|
+
from openscvx.symbolic.expr.expr import Parameter
|
|
62
|
+
|
|
63
|
+
for i, param in enumerate(byof.get("parameters", [])):
|
|
64
|
+
if not isinstance(param, Parameter):
|
|
65
|
+
raise TypeError(f"byof parameters[{i}] must be a Parameter object, got {type(param)}")
|
|
66
|
+
|
|
53
67
|
# Create dummy inputs for testing
|
|
54
68
|
dummy_x = jnp.zeros(n_x)
|
|
55
69
|
dummy_u = jnp.zeros(n_u)
|
|
56
70
|
dummy_node = 0
|
|
57
|
-
dummy_params = {}
|
|
71
|
+
dummy_params = dict(parameters) if parameters else {}
|
|
58
72
|
|
|
59
73
|
# Validate dynamics functions
|
|
60
74
|
byof_dynamics = byof.get("dynamics", {})
|
|
@@ -180,7 +180,7 @@ class Problem:
|
|
|
180
180
|
for control in self.symbolic.controls
|
|
181
181
|
)
|
|
182
182
|
|
|
183
|
-
validate_byof(byof, self.symbolic.states, n_x, n_u, N)
|
|
183
|
+
validate_byof(byof, self.symbolic.states, n_x, n_u, N, self.symbolic.parameters)
|
|
184
184
|
|
|
185
185
|
# Store byof for cache hashing
|
|
186
186
|
self._byof = byof
|
|
@@ -281,6 +281,12 @@ def preprocess_symbolic_problem(
|
|
|
281
281
|
for constraint in constraints.unsorted:
|
|
282
282
|
traverse(constraint, collect_param_values)
|
|
283
283
|
|
|
284
|
+
# Collect from byof parameters
|
|
285
|
+
if byof is not None:
|
|
286
|
+
for param in byof.get("parameters", []):
|
|
287
|
+
if param.name not in parameters:
|
|
288
|
+
parameters[param.name] = param.value
|
|
289
|
+
|
|
284
290
|
# ==================== PHASE 4: Constraint Separation & Augmentation ====================
|
|
285
291
|
|
|
286
292
|
# Sort and separate constraints by type (drains unsorted -> fills categories)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openscvx
|
|
3
|
-
Version: 0.4.1.
|
|
3
|
+
Version: 0.4.1.dev63
|
|
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
|
|
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.dev61 → openscvx-0.4.1.dev63}/docs/UnderTheHood/vectorization_and_vmapping.md
RENAMED
|
File without changes
|
|
File without changes
|
{openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/docs/UsersGuide/01_hello_world_brachistochrone.md
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/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
|
|
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.dev61 → openscvx-0.4.1.dev63}/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
|
{openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/2-mars.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/2-mars@1x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/2-mars@2x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/2-mars@3x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/2-mars@4x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/3-moon.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/3-moon@1x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/3-moon@2x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/3-moon@3x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/3-moon@4x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/4-sat1.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/4-sat1@1x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/4-sat1@2x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/4-sat1@3x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/images/layers/4-sat1@4x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/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.dev61 → openscvx-0.4.1.dev63}/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.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/javascripts/parallax.js
RENAMED
|
File without changes
|
|
File without changes
|
{openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/stylesheets/custom.css
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/material/overrides/assets/stylesheets/parallax.css
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscvx-0.4.1.dev61 → openscvx-0.4.1.dev63}/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
|
|
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.dev61 → openscvx-0.4.1.dev63}/openscvx/discretization/linearize_discretize.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
|
|
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
|