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.
@@ -830,16 +830,15 @@ def lower_symbolic_problem(
830
830
 
831
831
  _augment_impulsive_constraints(problem.constraints, problem.controls, problem.N)
832
832
 
833
- # Lower convex constraints using solver's variables
834
- lowered_cvxpy_constraint_list, cvxpy_params = lower_cvxpy_constraints(
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 = {}
@@ -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
- f"CVX Solver: {solver.cvx_solver}",
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.dev6
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=a_aE1InLyrFrx4mrOAsvBvnxbExXjZOSNK9UdfRgz_g,3746
1
+ openscvx/__init__.py,sha256=7uj7WjaK6bDWNkyBnefnADcOIHgQrEa51S7k8Jxixw0,4262
2
2
  openscvx/__main__.py,sha256=Hwm7mtVg3tLdvoUPkpcQv8KF3wxl72PNLBp9axFu8GY,2991
3
- openscvx/_version.py,sha256=_vMjYm42122ybxhtL6w7zoTQ8XvZX87uR27CauIPs7I,523
3
+ openscvx/_version.py,sha256=Uut-XS6yaMHRtH_hOvjjwpwI1TOf-QSeMS9gCugRZq0,523
4
4
  openscvx/config.py,sha256=qfDDYoCe6WqJglKsx5b2W48YOglXenKr-PVRRdCFhYE,9898
5
- openscvx/loader.py,sha256=FvKLkkXd4ihd5FqLFF8Cd9VnPbPwTV_azBRnEipi28c,7654
6
- openscvx/problem.py,sha256=GlCxYFhpacIt6Sxte3-K-d_GbGxVL9F9Qzy4y8-hrGc,47675
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=Duuvs7OPcG_mCoTtd4FGLhDSpxCj2d2Vy8pR-nkQxdw,642
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=QWhKSsScDnghleuiejblmairj13ufXgijRJtRv8Vf6s,2433
62
- openscvx/solvers/base.py,sha256=MF9nep-9eYUoX5SsbOsEMrN0KY75XtkwtDrOx3M-Mus,9928
63
- openscvx/solvers/ptr_solver.py,sha256=Zs7uwPOXI-0Ie3ZlDfH-CqEwMY5Gv8Pi1AzYs9EDSVY,38107
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=zGMVRduOqzC-u3cU3Rw1y61EG-86waHdc-hP0XDh5io,31790
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=zl3IxnKhwITqB5dK0Ru2IlORPqB61Y3DgsTryqMNu9M,13360
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.dev6.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
145
- openscvx-2.dev6.dist-info/METADATA,sha256=oVbcoS-ikeTajYCE_jmyk9xoAsTwQ5v39Zc6qsAOxC4,10662
146
- openscvx-2.dev6.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
147
- openscvx-2.dev6.dist-info/entry_points.txt,sha256=1Oqek8Sy28hmAZFgZXDxFXYVf56YLYWlHjhh9RYJ7wE,52
148
- openscvx-2.dev6.dist-info/top_level.txt,sha256=nUT4Ybefzh40H8tVXqc1RzKESy_MAowElb-CIvAbd4Q,9
149
- openscvx-2.dev6.dist-info/RECORD,,
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,,