openscvx 2.dev6__py3-none-any.whl → 2.dev7__py3-none-any.whl
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/__init__.py +16 -1
- openscvx/_version.py +2 -2
- openscvx/loader.py +2 -2
- openscvx/lowered/cvxpy_constraints.py +4 -1
- openscvx/problem.py +19 -13
- openscvx/solvers/__init__.py +40 -23
- openscvx/solvers/base.py +117 -36
- openscvx/solvers/cvxpy_ptr_solver.py +908 -0
- openscvx/solvers/ptr_solver.py +94 -843
- openscvx/solvers/qpax_ptr_solver.py +776 -0
- openscvx/symbolic/lower.py +6 -7
- openscvx/utils/printing.py +9 -1
- {openscvx-2.dev6.dist-info → openscvx-2.dev7.dist-info}/METADATA +3 -1
- {openscvx-2.dev6.dist-info → openscvx-2.dev7.dist-info}/RECORD +18 -16
- {openscvx-2.dev6.dist-info → openscvx-2.dev7.dist-info}/WHEEL +0 -0
- {openscvx-2.dev6.dist-info → openscvx-2.dev7.dist-info}/entry_points.txt +0 -0
- {openscvx-2.dev6.dist-info → openscvx-2.dev7.dist-info}/licenses/LICENSE +0 -0
- {openscvx-2.dev6.dist-info → openscvx-2.dev7.dist-info}/top_level.txt +0 -0
openscvx/symbolic/lower.py
CHANGED
|
@@ -830,16 +830,15 @@ def lower_symbolic_problem(
|
|
|
830
830
|
|
|
831
831
|
_augment_impulsive_constraints(problem.constraints, problem.controls, problem.N)
|
|
832
832
|
|
|
833
|
-
#
|
|
834
|
-
|
|
833
|
+
# Each solver owns its convex-lowering policy. The default
|
|
834
|
+
# implementation on ConvexSolver refuses user .convex() constraints
|
|
835
|
+
# (right for QP-only backends like QPAXPTRSolver); CVXPyPTRSolver
|
|
836
|
+
# overrides to actually lower. No branching on solver type here.
|
|
837
|
+
lowered_cvxpy_constraint_list, cvxpy_params = solver.lower_convex_constraints(
|
|
835
838
|
problem.constraints,
|
|
836
|
-
solver.ocp_vars.x_nonscaled,
|
|
837
|
-
solver.ocp_vars.u_nonscaled,
|
|
838
839
|
problem.parameters,
|
|
839
840
|
)
|
|
840
|
-
cvxpy_constraints = LoweredCvxpyConstraints(
|
|
841
|
-
constraints=lowered_cvxpy_constraint_list,
|
|
842
|
-
)
|
|
841
|
+
cvxpy_constraints = LoweredCvxpyConstraints(constraints=lowered_cvxpy_constraint_list)
|
|
843
842
|
|
|
844
843
|
# Lower algebraic outputs to vmapped JAX functions
|
|
845
844
|
algebraic_prop_lowered = {}
|
openscvx/utils/printing.py
CHANGED
|
@@ -232,6 +232,14 @@ def print_problem_summary(
|
|
|
232
232
|
autotuner_name = type(autotuner).__name__ if autotuner is not None else "N/A"
|
|
233
233
|
discretization_name = type(discretizer).__name__
|
|
234
234
|
|
|
235
|
+
solver_name = type(solver).__name__
|
|
236
|
+
cvx_solver_label = getattr(solver, "cvx_solver", None)
|
|
237
|
+
solver_line = (
|
|
238
|
+
f"Solver: {solver_name} ({cvx_solver_label})"
|
|
239
|
+
if cvx_solver_label is not None
|
|
240
|
+
else f"Solver: {solver_name}"
|
|
241
|
+
)
|
|
242
|
+
|
|
235
243
|
lines = [
|
|
236
244
|
"Problem Summary",
|
|
237
245
|
(
|
|
@@ -248,7 +256,7 @@ def print_problem_summary(
|
|
|
248
256
|
f"Autotuner: {autotuner_name}",
|
|
249
257
|
f"Discretizer: {discretization_name} ({discretizer.ode_solver})",
|
|
250
258
|
"SEP",
|
|
251
|
-
|
|
259
|
+
solver_line,
|
|
252
260
|
f"Float Dtype: {float_dtype}",
|
|
253
261
|
f"JAX Backend: {jax_backend} (v{jax_version})",
|
|
254
262
|
]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openscvx
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.dev7
|
|
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
|
|
@@ -26,6 +26,8 @@ Requires-Dist: pydantic>=2.0
|
|
|
26
26
|
Provides-Extra: cvxpygen
|
|
27
27
|
Requires-Dist: cvxpygen; extra == "cvxpygen"
|
|
28
28
|
Requires-Dist: qocogen; extra == "cvxpygen"
|
|
29
|
+
Provides-Extra: qpax
|
|
30
|
+
Requires-Dist: qpax>=0.1.1; extra == "qpax"
|
|
29
31
|
Provides-Extra: stl
|
|
30
32
|
Requires-Dist: stljax; extra == "stl"
|
|
31
33
|
Provides-Extra: lie
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
openscvx/__init__.py,sha256=
|
|
1
|
+
openscvx/__init__.py,sha256=7uj7WjaK6bDWNkyBnefnADcOIHgQrEa51S7k8Jxixw0,4262
|
|
2
2
|
openscvx/__main__.py,sha256=Hwm7mtVg3tLdvoUPkpcQv8KF3wxl72PNLBp9axFu8GY,2991
|
|
3
|
-
openscvx/_version.py,sha256=
|
|
3
|
+
openscvx/_version.py,sha256=Uut-XS6yaMHRtH_hOvjjwpwI1TOf-QSeMS9gCugRZq0,523
|
|
4
4
|
openscvx/config.py,sha256=qfDDYoCe6WqJglKsx5b2W48YOglXenKr-PVRRdCFhYE,9898
|
|
5
|
-
openscvx/loader.py,sha256=
|
|
6
|
-
openscvx/problem.py,sha256=
|
|
5
|
+
openscvx/loader.py,sha256=5WDLVA6CQxnyi1pRBfP8jQQc0r8RiAM2O_ItKgMXxAk,7660
|
|
6
|
+
openscvx/problem.py,sha256=bqhu7btVrjO3k58hnVa1o1ePeNquybkGOYC6KEjX5oI,48048
|
|
7
7
|
openscvx/algorithms/__init__.py,sha256=_jbRLwhiHQGCqs3mide1UTj7AzxJlELnDkqSySNCTIM,5688
|
|
8
8
|
openscvx/algorithms/base.py,sha256=JsaVfS-hyHeGU1GUuQV9i-EpKQ1HBE0RHABIBGrEonM,30205
|
|
9
9
|
openscvx/algorithms/optimization_results.py,sha256=Fk7tiW8IuMZa8Ri9-SHq9kmw3BPxXl1mc0yXy11w_-c,13416
|
|
@@ -38,7 +38,7 @@ openscvx/integrators/__init__.py,sha256=easV2-ruQLif5e8UBqE-xP5mpslYCN84gzT3OfZG
|
|
|
38
38
|
openscvx/integrators/diffrax.py,sha256=5RWNtaAUSGAWeHvX897fBxWjjJLVM4ORhqC12gdFVIA,4215
|
|
39
39
|
openscvx/integrators/runge_kutta.py,sha256=yMf_JLVToPgdwayFP7ZZ-w-grf_ch9UgyPsZu3mYRb0,2972
|
|
40
40
|
openscvx/lowered/__init__.py,sha256=P1xtMVkXWa3uz4tiJeTllurwGFeugdwxqU8h0Mt6uTo,942
|
|
41
|
-
openscvx/lowered/cvxpy_constraints.py,sha256=
|
|
41
|
+
openscvx/lowered/cvxpy_constraints.py,sha256=CcgJLweSJEeNGfD21HUjHdNbBcvHhNejhq0gncU7lP0,846
|
|
42
42
|
openscvx/lowered/cvxpy_variables.py,sha256=CO_J-930lnBQuyt4zgZfnonav5P34h8FRmAFDM5031g,5888
|
|
43
43
|
openscvx/lowered/dynamics.py,sha256=EzgzQmOnFJoBUC6sMPJSJo_9Nb1IO8D51bsb6prZSSk,2400
|
|
44
44
|
openscvx/lowered/jax_constraints.py,sha256=9h96qKx_ZbK35S6OpvmthsI55FAk3-kdx3TVjSKiCVk,6063
|
|
@@ -58,15 +58,17 @@ openscvx/plotting/viser/server.py,sha256=rRRHDejVTcqWCkKO1EgwezEcmFktiqqx1YwAE3W
|
|
|
58
58
|
openscvx/propagation/__init__.py,sha256=XjlOoEwgo2Vow0uW0mMCcLIN53VzFBnSuer3ZzPqnbk,1851
|
|
59
59
|
openscvx/propagation/post_processing.py,sha256=zunqYinzhrLWvTtylZZ3KdQuyng_nyl69dFCSv5d8zo,7197
|
|
60
60
|
openscvx/propagation/propagation.py,sha256=RZlAKBSHfp4XLMxHbzk6YXGgyBFv8sxsyBqdhzvwRF0,10994
|
|
61
|
-
openscvx/solvers/__init__.py,sha256=
|
|
62
|
-
openscvx/solvers/base.py,sha256=
|
|
63
|
-
openscvx/solvers/
|
|
61
|
+
openscvx/solvers/__init__.py,sha256=CqnRRfP4bFhxuFdaLMw14OuZ71og5_SkLD-8OJm80yk,3229
|
|
62
|
+
openscvx/solvers/base.py,sha256=EjFWy9wSksIL5ImEo6UZxcBz_OuCXtd3JY5Aomqk8U8,13618
|
|
63
|
+
openscvx/solvers/cvxpy_ptr_solver.py,sha256=H1O-EzfHA-F-oWMns6VWkYvFnyfdrc3xmKdUHpVFxSM,36821
|
|
64
|
+
openscvx/solvers/ptr_solver.py,sha256=ghdnyerCcbCnxgO87Z11f6GFKNDb142D9hVaspQfEJk,7644
|
|
65
|
+
openscvx/solvers/qpax_ptr_solver.py,sha256=ff5CWKapXW84cHdt1F2j2tGJUi1x-BtkGXmWcdVdot0,32248
|
|
64
66
|
openscvx/symbolic/__init__.py,sha256=aBwrKg6OnmbDL9pma9k4G009QWCOjM2Lmt_6MZPF7I4,294
|
|
65
67
|
openscvx/symbolic/augmentation.py,sha256=qZWpcFenJawRM_VIRZmoJtYOLErx0jmb8eLvSf_xCvI,29555
|
|
66
68
|
openscvx/symbolic/builder.py,sha256=ivkPY9tecg6KEgguEuOHknh_FRabWXlCUjXrnWuiwe0,24631
|
|
67
69
|
openscvx/symbolic/constraint_set.py,sha256=HtLKmXvji9B47l1jzd5fEJSAFAKX93vyzDwux1xxayM,3476
|
|
68
70
|
openscvx/symbolic/hashing.py,sha256=OLSwuqFal9tKKtMxLAM9HBGb1bo5vzo-DG7srSy21lI,4686
|
|
69
|
-
openscvx/symbolic/lower.py,sha256=
|
|
71
|
+
openscvx/symbolic/lower.py,sha256=y0nhPxZnXJxJvGwCGx4N4oQL3wWPjRVpS-lyjalh73g,31927
|
|
70
72
|
openscvx/symbolic/preprocessing.py,sha256=Sqy_i5ntGWXdxcJCvql_034ZWoYU-kBRPEX34wgB344,36318
|
|
71
73
|
openscvx/symbolic/problem.py,sha256=TblK3Z0orLaI_6_uPBVZP4SMxTSFXnUfNb0SICR-vFg,4853
|
|
72
74
|
openscvx/symbolic/sparsity.py,sha256=9CVvvOz3FiBSMKL7TAcrq9FzMIis8m3iOq0URXWO0F8,5973
|
|
@@ -138,12 +140,12 @@ openscvx/symbolic/parser/tokenizer.py,sha256=Q7NzkNM6XjxZedflDq7J-4sagsFfA0Wumn3
|
|
|
138
140
|
openscvx/utils/__init__.py,sha256=jO7gVvPklDsQXg_AwL929DcY2jLp2ZbNeyjYETOtEWY,402
|
|
139
141
|
openscvx/utils/cache.py,sha256=_LExCrntPw5mp0BPS9okgCc6ad_AMddWdQzft2vbnOs,3612
|
|
140
142
|
openscvx/utils/caching.py,sha256=BPkT_IbmYT-i-BZ-himdWUc_4oBcwXWJxeUMwQWnSNc,9341
|
|
141
|
-
openscvx/utils/printing.py,sha256=
|
|
143
|
+
openscvx/utils/printing.py,sha256=4dx9MYV9I2RoJtxDTdVLpkYIoNEosEBpwxrIgH5rgWo,13595
|
|
142
144
|
openscvx/utils/profiling.py,sha256=k2x-i0CpG_kRe6dNcNBGu-ylrOtQw4B4C1UaOTjUMfU,1678
|
|
143
145
|
openscvx/utils/utils.py,sha256=M25RHE_7DSr3Reaca0xCXnDSY9KHuqYvXdh5m1ZotEc,3047
|
|
144
|
-
openscvx-2.
|
|
145
|
-
openscvx-2.
|
|
146
|
-
openscvx-2.
|
|
147
|
-
openscvx-2.
|
|
148
|
-
openscvx-2.
|
|
149
|
-
openscvx-2.
|
|
146
|
+
openscvx-2.dev7.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
147
|
+
openscvx-2.dev7.dist-info/METADATA,sha256=khpD8n2FLEdAq1V0UeWIVVif1qZ6NZJlOPe4BWUgLlY,10727
|
|
148
|
+
openscvx-2.dev7.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
|
|
149
|
+
openscvx-2.dev7.dist-info/entry_points.txt,sha256=1Oqek8Sy28hmAZFgZXDxFXYVf56YLYWlHjhh9RYJ7wE,52
|
|
150
|
+
openscvx-2.dev7.dist-info/top_level.txt,sha256=nUT4Ybefzh40H8tVXqc1RzKESy_MAowElb-CIvAbd4Q,9
|
|
151
|
+
openscvx-2.dev7.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|