openscvx 0.3.1.dev4__tar.gz → 0.3.1.dev12__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.3.1.dev4/openscvx.egg-info → openscvx-0.3.1.dev12}/PKG-INFO +1 -1
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/_version.py +3 -3
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/algorithms/optimization_results.py +2 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/algorithms/ptr.py +12 -8
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/algorithms/solver_state.py +4 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/plotting/__init__.py +2 -20
- openscvx-0.3.1.dev12/openscvx/plotting/plotting.py +1155 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/problem.py +6 -1
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12/openscvx.egg-info}/PKG-INFO +1 -1
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx.egg-info/SOURCES.txt +1 -0
- openscvx-0.3.1.dev12/tests/test_plotting.py +624 -0
- openscvx-0.3.1.dev4/openscvx/plotting/plotting.py +0 -851
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/.github/assets/logo.svg +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/.github/release-drafter.yml +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/.github/workflows/_docs.yml +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/.github/workflows/docs.yml +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/.github/workflows/lint.yml +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/.github/workflows/nightly.yml +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/.github/workflows/release-drafter.yml +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/.github/workflows/release.yml +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/.github/workflows/tests-integration.yml +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/.github/workflows/tests-unit.yml +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/.gitignore +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/LICENSE +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/README.md +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/Overview/constraint_reformulation.md +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/Overview/control_parameterization.md +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/Overview/discretization.md +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/Overview/ocp.md +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/Overview/scvx.md +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/Overview/time_dilation.md +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/UnderTheHood/lowering_architecture.md +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/UnderTheHood/vectorization_and_vmapping.md +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/Usage/advanced_problem_setup.md +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/Usage/api.md +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/Usage/api_constraints.md +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/Usage/api_control.md +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/Usage/api_integrators.md +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/Usage/api_state.md +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/Usage/api_trajoptproblem.md +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/Usage/api_variable.md +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/Usage/basic_problem_setup.md +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/Usage/tutorial_6dof_los_guidance.md +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/Usage/tutorial_6dof_obstacle_avoidance.md +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/Usage/tutorials.md +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/assets/favicon.png +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/assets/images/ct-scvx_dark.png +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/assets/images/ct-scvx_light.png +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/assets/images/ctcs_dark.png +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/assets/images/ctcs_light.png +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/assets/images/problem_class_dark.png +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/assets/images/problem_class_light.png +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/assets/logo.svg +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/citation.md +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/examples.md +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/getting-started.md +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/index.md +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/docs/javascripts/mathjax.js +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/examples/abstract/3DoF_pdg.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/examples/abstract/brachistochrone.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/examples/car/dubins_car.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/examples/car/dubins_car_disjoint.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/examples/car/dubins_car_stljax.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/examples/drone/cinema_vp.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/examples/drone/cinema_vp_realtime_base.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/examples/drone/dr_double_integrator.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/examples/drone/dr_vp.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/examples/drone/dr_vp_nodal.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/examples/drone/dr_vp_polytope.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/examples/drone/drone_racing.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/examples/drone/obstacle_avoidance.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/examples/drone/obstacle_avoidance_nodal.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/examples/drone/obstacle_avoidance_realtime_base.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/examples/plotting.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/examples/realtime/cinema_vp_realtime.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/examples/realtime/drone_racing_realtime.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/examples/realtime/dubins_car_realtime.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/examples/realtime/obstacle_avoidance_realtime.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/figures/ctlos_cine.gif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/figures/ctlos_dr.gif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/figures/dtlos_cine.gif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/figures/dtlos_dr.gif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/figures/openscvx_logo.svg +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/figures/oscvx_structure_full_dark.svg +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/figures/video_preview.png +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/__init__.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/1-background.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/1-background@1x.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/1-background@2x.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/1-background@3x.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/1-background@4x.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/2-mars.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/2-mars@1x.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/2-mars@2x.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/2-mars@3x.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/2-mars@4x.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/3-moon.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/3-moon@1x.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/3-moon@2x.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/3-moon@3x.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/3-moon@4x.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/4-sat1.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/4-sat1@1x.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/4-sat1@2x.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/4-sat1@3x.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/4-sat1@4x.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/5-space.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/5-space@1x.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/5-space@2x.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/5-space@3x.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/5-space@4x.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/6-earth.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/6-earth@1x.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/6-earth@2x.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/6-earth@3x.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/images/layers/6-earth@4x.avif +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/javascripts/parallax.js +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/logo.svg +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/stylesheets/custom.css +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/assets/stylesheets/parallax.css +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/home.html +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/main.html +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/partials/parallax/hero.html +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/material/overrides/partials/parallax.html +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/mkdocs.yml +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/__init__.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/algorithms/__init__.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/algorithms/autotuning.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/config.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/discretization/__init__.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/discretization/discretization.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/integrators/__init__.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/integrators/runge_kutta.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/lowered/__init__.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/lowered/cvxpy_constraints.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/lowered/cvxpy_variables.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/lowered/dynamics.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/lowered/jax_constraints.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/lowered/parameters.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/lowered/problem.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/lowered/unified.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/propagation/__init__.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/propagation/post_processing.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/propagation/propagation.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/solvers/__init__.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/solvers/cvxpy.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/symbolic/__init__.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/symbolic/augmentation.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/symbolic/builder.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/symbolic/constraint_set.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/symbolic/expr/__init__.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/symbolic/expr/arithmetic.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/symbolic/expr/array.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/symbolic/expr/constraint.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/symbolic/expr/control.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/symbolic/expr/expr.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/symbolic/expr/linalg.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/symbolic/expr/math.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/symbolic/expr/spatial.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/symbolic/expr/state.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/symbolic/expr/stl.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/symbolic/expr/variable.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/symbolic/hashing.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/symbolic/lower.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/symbolic/lowerers/__init__.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/symbolic/lowerers/cvxpy.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/symbolic/lowerers/jax.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/symbolic/preprocessing.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/symbolic/problem.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/symbolic/time.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/symbolic/unified.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/utils/__init__.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/utils/cache.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/utils/caching.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/utils/printing.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/utils/profiling.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx/utils/utils.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx.egg-info/dependency_links.txt +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx.egg-info/requires.txt +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/openscvx.egg-info/top_level.txt +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/pyproject.toml +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/scripts/gen_example_pages.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/scripts/gen_ref_pages.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/setup.cfg +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/tests/__init__.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/tests/brachistochrone_analytical.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/tests/symbolic/__init__.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/tests/symbolic/expr/__init__.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/tests/symbolic/expr/test_arithmetic.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/tests/symbolic/expr/test_array.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/tests/symbolic/expr/test_constraint.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/tests/symbolic/expr/test_expr.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/tests/symbolic/expr/test_linalg.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/tests/symbolic/expr/test_math.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/tests/symbolic/expr/test_node_reference.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/tests/symbolic/expr/test_parameters.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/tests/symbolic/expr/test_scaling.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/tests/symbolic/expr/test_spatial.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/tests/symbolic/expr/test_variable.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/tests/symbolic/test_augmentation.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/tests/symbolic/test_hashing.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/tests/symbolic/test_lower_cvxpy.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/tests/symbolic/test_lower_jax.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/tests/symbolic/test_preprocessing.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/tests/symbolic/test_unified.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/tests/test_brachistochrone.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/tests/test_cvxpygen_optional.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/tests/test_discretization.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/tests/test_examples.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/tests/test_integrators.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/tests/test_propagation.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/tests/test_pyqtgraph_functions.py +0 -0
- {openscvx-0.3.1.dev4 → openscvx-0.3.1.dev12}/tests/test_pyqtgraph_helpers.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openscvx
|
|
3
|
-
Version: 0.3.1.
|
|
3
|
+
Version: 0.3.1.dev12
|
|
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.3.1.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 3, 1, '
|
|
31
|
+
__version__ = version = '0.3.1.dev12'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 3, 1, 'dev12')
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'g9a182ff5a'
|
|
@@ -66,6 +66,8 @@ class OptimizationResults:
|
|
|
66
66
|
J_tr_history: list[np.ndarray] = field(default_factory=list)
|
|
67
67
|
J_vb_history: list[np.ndarray] = field(default_factory=list)
|
|
68
68
|
J_vc_history: list[np.ndarray] = field(default_factory=list)
|
|
69
|
+
TR_history: list[np.ndarray] = field(default_factory=list)
|
|
70
|
+
VC_history: list[np.ndarray] = field(default_factory=list)
|
|
69
71
|
|
|
70
72
|
@property
|
|
71
73
|
def x(self) -> np.ndarray:
|
|
@@ -101,6 +101,8 @@ def format_result(problem, state: "SolverState", converged: bool) -> Optimizatio
|
|
|
101
101
|
J_tr_history=state.J_tr,
|
|
102
102
|
J_vb_history=state.J_vb,
|
|
103
103
|
J_vc_history=state.J_vc,
|
|
104
|
+
TR_history=state.TR_history,
|
|
105
|
+
VC_history=state.VC_history,
|
|
104
106
|
)
|
|
105
107
|
|
|
106
108
|
|
|
@@ -142,6 +144,8 @@ def PTR_step(
|
|
|
142
144
|
V_multi_shoot,
|
|
143
145
|
subprop_time,
|
|
144
146
|
dis_time,
|
|
147
|
+
vc_mat,
|
|
148
|
+
tr_mat,
|
|
145
149
|
) = PTR_subproblem(
|
|
146
150
|
params.items(),
|
|
147
151
|
cpg_solve,
|
|
@@ -157,6 +161,8 @@ def PTR_step(
|
|
|
157
161
|
state.V_history.append(V_multi_shoot)
|
|
158
162
|
state.X.append(x_sol)
|
|
159
163
|
state.U.append(u_sol)
|
|
164
|
+
state.VC_history.append(vc_mat)
|
|
165
|
+
state.TR_history.append(tr_mat)
|
|
160
166
|
|
|
161
167
|
state.J_tr = np.sum(np.array(J_tr_vec))
|
|
162
168
|
state.J_vb = np.sum(np.array(J_vb_vec))
|
|
@@ -300,14 +306,10 @@ def PTR_subproblem(
|
|
|
300
306
|
)
|
|
301
307
|
|
|
302
308
|
# Calculate J_tr_vec using the JAX-compatible block diagonal matrix
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
)
|
|
308
|
-
** 2
|
|
309
|
-
)
|
|
310
|
-
J_vc_vec = np.sum(np.abs(prob.var_dict["nu"].value), axis=1)
|
|
309
|
+
tr_mat = inv_block_diag @ np.hstack((x_new_guess - state.x, u_new_guess - state.u)).T
|
|
310
|
+
J_tr_vec = la.norm(tr_mat, axis=0) ** 2
|
|
311
|
+
vc_mat = np.abs(prob.var_dict["nu"].value)
|
|
312
|
+
J_vc_vec = np.sum(vc_mat, axis=1)
|
|
311
313
|
|
|
312
314
|
id_ncvx = 0
|
|
313
315
|
J_vb_vec = 0
|
|
@@ -336,4 +338,6 @@ def PTR_subproblem(
|
|
|
336
338
|
V_multi_shoot,
|
|
337
339
|
subprop_time,
|
|
338
340
|
dis_time,
|
|
341
|
+
vc_mat,
|
|
342
|
+
abs(tr_mat),
|
|
339
343
|
)
|
|
@@ -59,6 +59,8 @@ class SolverState:
|
|
|
59
59
|
X: List[np.ndarray] = field(default_factory=list)
|
|
60
60
|
U: List[np.ndarray] = field(default_factory=list)
|
|
61
61
|
V_history: List[np.ndarray] = field(default_factory=list)
|
|
62
|
+
VC_history: List[np.ndarray] = field(default_factory=list)
|
|
63
|
+
TR_history: List[np.ndarray] = field(default_factory=list)
|
|
62
64
|
|
|
63
65
|
@property
|
|
64
66
|
def x(self) -> np.ndarray:
|
|
@@ -225,4 +227,6 @@ class SolverState:
|
|
|
225
227
|
X=[settings.sim.x.guess.copy()],
|
|
226
228
|
U=[settings.sim.u.guess.copy()],
|
|
227
229
|
V_history=[],
|
|
230
|
+
VC_history=[],
|
|
231
|
+
TR_history=[],
|
|
228
232
|
)
|
|
@@ -13,34 +13,16 @@ violations, and creating animations of the optimization process.
|
|
|
13
13
|
"""
|
|
14
14
|
|
|
15
15
|
from .plotting import (
|
|
16
|
-
frame_args,
|
|
17
|
-
full_subject_traj_time,
|
|
18
|
-
plot_constraint_violation,
|
|
19
16
|
plot_control,
|
|
20
|
-
|
|
21
|
-
plot_losses,
|
|
22
|
-
plot_scp_animation,
|
|
17
|
+
plot_scp_iteration_animation,
|
|
23
18
|
plot_state,
|
|
24
|
-
qdcm,
|
|
25
|
-
save_gate_parameters,
|
|
26
|
-
scp_traj_interp,
|
|
27
19
|
)
|
|
28
20
|
|
|
29
21
|
__all__ = [
|
|
30
22
|
# Core plotting functions
|
|
31
23
|
"plot_state",
|
|
32
24
|
"plot_control",
|
|
33
|
-
"
|
|
34
|
-
"plot_losses",
|
|
35
|
-
"plot_scp_animation",
|
|
36
|
-
"plot_initial_guess",
|
|
37
|
-
# Trajectory utilities
|
|
38
|
-
"full_subject_traj_time",
|
|
39
|
-
"scp_traj_interp",
|
|
40
|
-
# Helper functions
|
|
41
|
-
"qdcm",
|
|
42
|
-
"save_gate_parameters",
|
|
43
|
-
"frame_args",
|
|
25
|
+
"plot_scp_iteration_animation",
|
|
44
26
|
]
|
|
45
27
|
|
|
46
28
|
# Mark module as unstable/deprecated
|