jaxsim 0.4.3.dev133__tar.gz → 0.4.3.dev136__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.
Files changed (124) hide show
  1. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/PKG-INFO +2 -2
  2. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/environment.yml +1 -1
  3. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/pyproject.toml +1 -1
  4. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/_version.py +2 -2
  5. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/rbda/contacts/relaxed_rigid.py +60 -12
  6. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim.egg-info/PKG-INFO +2 -2
  7. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim.egg-info/requires.txt +1 -1
  8. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/.devcontainer/Dockerfile +0 -0
  9. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/.devcontainer/devcontainer.json +0 -0
  10. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/.gitattributes +0 -0
  11. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/.github/CODEOWNERS +0 -0
  12. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/.github/workflows/ci_cd.yml +0 -0
  13. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/.github/workflows/read_the_docs.yml +0 -0
  14. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/.github/workflows/update_pixi_lockfile.yml +0 -0
  15. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/.gitignore +0 -0
  16. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/.pre-commit-config.yaml +0 -0
  17. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/.readthedocs.yaml +0 -0
  18. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/CONTRIBUTING.md +0 -0
  19. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/LICENSE +0 -0
  20. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/README.md +0 -0
  21. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/docs/Makefile +0 -0
  22. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/docs/conf.py +0 -0
  23. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/docs/examples.rst +0 -0
  24. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/docs/guide/install.rst +0 -0
  25. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/docs/index.rst +0 -0
  26. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/docs/make.bat +0 -0
  27. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/docs/modules/api.rst +0 -0
  28. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/docs/modules/integrators.rst +0 -0
  29. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/docs/modules/math.rst +0 -0
  30. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/docs/modules/mujoco.rst +0 -0
  31. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/docs/modules/parsers.rst +0 -0
  32. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/docs/modules/rbda.rst +0 -0
  33. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/docs/modules/typing.rst +0 -0
  34. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/docs/modules/utils.rst +0 -0
  35. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/examples/.gitattributes +0 -0
  36. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/examples/.gitignore +0 -0
  37. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/examples/PD_controller.ipynb +0 -0
  38. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/examples/Parallel_computing.ipynb +0 -0
  39. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/examples/README.md +0 -0
  40. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/examples/assets/cartpole.urdf +0 -0
  41. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/pixi.lock +0 -0
  42. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/setup.cfg +0 -0
  43. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/setup.py +0 -0
  44. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/__init__.py +0 -0
  45. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/api/__init__.py +0 -0
  46. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/api/com.py +0 -0
  47. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/api/common.py +0 -0
  48. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/api/contact.py +0 -0
  49. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/api/data.py +0 -0
  50. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/api/frame.py +0 -0
  51. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/api/joint.py +0 -0
  52. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/api/kin_dyn_parameters.py +0 -0
  53. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/api/link.py +0 -0
  54. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/api/model.py +0 -0
  55. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/api/ode.py +0 -0
  56. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/api/ode_data.py +0 -0
  57. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/api/references.py +0 -0
  58. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/exceptions.py +0 -0
  59. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/integrators/__init__.py +0 -0
  60. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/integrators/common.py +0 -0
  61. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/integrators/fixed_step.py +0 -0
  62. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/integrators/variable_step.py +0 -0
  63. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/logging.py +0 -0
  64. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/math/__init__.py +0 -0
  65. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/math/adjoint.py +0 -0
  66. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/math/cross.py +0 -0
  67. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/math/inertia.py +0 -0
  68. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/math/joint_model.py +0 -0
  69. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/math/quaternion.py +0 -0
  70. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/math/rotation.py +0 -0
  71. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/math/skew.py +0 -0
  72. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/math/transform.py +0 -0
  73. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/mujoco/__init__.py +0 -0
  74. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/mujoco/__main__.py +0 -0
  75. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/mujoco/loaders.py +0 -0
  76. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/mujoco/model.py +0 -0
  77. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/mujoco/visualizer.py +0 -0
  78. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/parsers/__init__.py +0 -0
  79. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/parsers/descriptions/__init__.py +0 -0
  80. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/parsers/descriptions/collision.py +0 -0
  81. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/parsers/descriptions/joint.py +0 -0
  82. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/parsers/descriptions/link.py +0 -0
  83. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/parsers/descriptions/model.py +0 -0
  84. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/parsers/kinematic_graph.py +0 -0
  85. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/parsers/rod/__init__.py +0 -0
  86. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/parsers/rod/parser.py +0 -0
  87. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/parsers/rod/utils.py +0 -0
  88. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/rbda/__init__.py +0 -0
  89. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/rbda/aba.py +0 -0
  90. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/rbda/collidable_points.py +0 -0
  91. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/rbda/contacts/__init__.py +0 -0
  92. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/rbda/contacts/common.py +0 -0
  93. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/rbda/contacts/rigid.py +0 -0
  94. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/rbda/contacts/soft.py +0 -0
  95. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/rbda/crba.py +0 -0
  96. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/rbda/forward_kinematics.py +0 -0
  97. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/rbda/jacobian.py +0 -0
  98. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/rbda/rnea.py +0 -0
  99. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/rbda/utils.py +0 -0
  100. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/terrain/__init__.py +0 -0
  101. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/terrain/terrain.py +0 -0
  102. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/typing.py +0 -0
  103. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/utils/__init__.py +0 -0
  104. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/utils/jaxsim_dataclass.py +0 -0
  105. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/utils/tracing.py +0 -0
  106. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim/utils/wrappers.py +0 -0
  107. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim.egg-info/SOURCES.txt +0 -0
  108. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim.egg-info/dependency_links.txt +0 -0
  109. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/src/jaxsim.egg-info/top_level.txt +0 -0
  110. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/tests/__init__.py +0 -0
  111. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/tests/conftest.py +0 -0
  112. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/tests/test_api_com.py +0 -0
  113. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/tests/test_api_contact.py +0 -0
  114. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/tests/test_api_data.py +0 -0
  115. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/tests/test_api_frame.py +0 -0
  116. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/tests/test_api_joint.py +0 -0
  117. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/tests/test_api_link.py +0 -0
  118. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/tests/test_api_model.py +0 -0
  119. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/tests/test_automatic_differentiation.py +0 -0
  120. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/tests/test_contact.py +0 -0
  121. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/tests/test_exceptions.py +0 -0
  122. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/tests/test_pytree.py +0 -0
  123. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/tests/test_simulations.py +0 -0
  124. {jaxsim-0.4.3.dev133 → jaxsim-0.4.3.dev136}/tests/utils_idyntree.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: jaxsim
3
- Version: 0.4.3.dev133
3
+ Version: 0.4.3.dev136
4
4
  Summary: A differentiable physics engine and multibody dynamics library for control and robot learning.
5
5
  Author-email: Diego Ferigo <dgferigo@gmail.com>
6
6
  Maintainer-email: Diego Ferigo <dgferigo@gmail.com>, Filippo Luca Ferretti <filippo.ferretti@iit.it>
@@ -61,11 +61,11 @@ Description-Content-Type: text/markdown
61
61
  License-File: LICENSE
62
62
  Requires-Dist: coloredlogs
63
63
  Requires-Dist: jax>=0.4.26
64
- Requires-Dist: jaxopt>=0.8.0
65
64
  Requires-Dist: jaxlib>=0.4.26
66
65
  Requires-Dist: jaxlie>=1.3.0
67
66
  Requires-Dist: jax_dataclasses>=1.4.0
68
67
  Requires-Dist: pptree
68
+ Requires-Dist: optax>=0.2.3
69
69
  Requires-Dist: qpax
70
70
  Requires-Dist: rod>=0.3.3
71
71
  Requires-Dist: typing_extensions; python_version < "3.12"
@@ -8,10 +8,10 @@ dependencies:
8
8
  - python >= 3.12.0
9
9
  - coloredlogs
10
10
  - jax >= 0.4.26
11
- - jaxopt >= 0.8.0
12
11
  - jaxlib >= 0.4.26
13
12
  - jaxlie >= 1.3.0
14
13
  - jax-dataclasses >= 1.4.0
14
+ - optax >= 0.2.3
15
15
  - pptree
16
16
  - qpax
17
17
  - rod >= 0.3.3
@@ -45,11 +45,11 @@ classifiers = [
45
45
  dependencies = [
46
46
  "coloredlogs",
47
47
  "jax >= 0.4.26",
48
- "jaxopt >= 0.8.0",
49
48
  "jaxlib >= 0.4.26",
50
49
  "jaxlie >= 1.3.0",
51
50
  "jax_dataclasses >= 1.4.0",
52
51
  "pptree",
52
+ "optax >= 0.2.3",
53
53
  "qpax",
54
54
  "rod >= 0.3.3",
55
55
  "typing_extensions ; python_version < '3.12'",
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '0.4.3.dev133'
16
- __version_tuple__ = version_tuple = (0, 4, 3, 'dev133')
15
+ __version__ = version = '0.4.3.dev136'
16
+ __version_tuple__ = version_tuple = (0, 4, 3, 'dev136')
@@ -1,12 +1,13 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import dataclasses
4
+ from collections.abc import Callable
4
5
  from typing import Any
5
6
 
6
7
  import jax
7
8
  import jax.numpy as jnp
8
9
  import jax_dataclasses
9
- import jaxopt
10
+ import optax
10
11
 
11
12
  import jaxsim.api as js
12
13
  import jaxsim.typing as jtp
@@ -297,24 +298,71 @@ class RelaxedRigidContacts(ContactModel):
297
298
  A = G + R
298
299
  b = CW_al_free_WC - a_ref
299
300
 
300
- objective = lambda x: jnp.sum(jnp.square(A @ x + b))
301
+ objective = lambda x, A, b: jnp.sum(jnp.square(A @ x + b))
301
302
 
302
- # Compute the 3D linear force in C[W] frame
303
- opt = jaxopt.LBFGS(
304
- fun=objective,
305
- maxiter=self.parameters.max_iterations,
306
- tol=self.parameters.tolerance,
307
- maxls=30,
308
- history_size=10,
309
- max_stepsize=100.0,
310
- )
303
+ def run_optimization(
304
+ init_params: jtp.Array,
305
+ fun: Callable,
306
+ opt: optax.GradientTransformation,
307
+ maxiter: jtp.Int,
308
+ tol: jtp.Float,
309
+ **kwargs,
310
+ ):
311
+ value_and_grad_fn = optax.value_and_grad_from_state(fun)
312
+
313
+ def step(carry):
314
+ params, state = carry
315
+ value, grad = value_and_grad_fn(
316
+ params,
317
+ state=state,
318
+ A=A,
319
+ b=b,
320
+ )
321
+ updates, state = opt.update(
322
+ updates=grad,
323
+ state=state,
324
+ params=params,
325
+ value=value,
326
+ grad=grad,
327
+ value_fn=fun,
328
+ A=A,
329
+ b=b,
330
+ )
331
+ params = optax.apply_updates(params, updates)
332
+ return params, state
333
+
334
+ def continuing_criterion(carry):
335
+ _, state = carry
336
+ iter_num = optax.tree_utils.tree_get(state, "count")
337
+ grad = optax.tree_utils.tree_get(state, "grad")
338
+ err = optax.tree_utils.tree_l2_norm(grad)
339
+ return (iter_num == 0) | ((iter_num < maxiter) & (err >= tol))
340
+
341
+ init_carry = (init_params, opt.init(init_params))
342
+ final_params, final_state = jax.lax.while_loop(
343
+ continuing_criterion, step, init_carry
344
+ )
345
+ return final_params, final_state
311
346
 
312
347
  init_params = (
313
348
  K[:, jnp.newaxis] * jnp.zeros_like(position).at[:, 2].set(δ)
314
349
  + D[:, jnp.newaxis] * velocity
315
350
  ).flatten()
316
351
 
317
- CW_f_Ci = opt.run(init_params=init_params).params.reshape(-1, 3)
352
+ # Compute the 3D linear force in C[W] frame
353
+ CW_f_Ci, _ = run_optimization(
354
+ init_params=init_params,
355
+ A=A,
356
+ b=b,
357
+ maxiter=self.parameters.max_iterations,
358
+ opt=optax.lbfgs(
359
+ memory_size=10,
360
+ ),
361
+ fun=objective,
362
+ tol=self.parameters.tolerance,
363
+ )
364
+
365
+ CW_f_Ci = CW_f_Ci.reshape((-1, 3))
318
366
 
319
367
  def mixed_to_inertial(W_H_C: jax.Array, CW_fl: jax.Array) -> jax.Array:
320
368
  W_Xf_CW = Adjoint.from_transform(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: jaxsim
3
- Version: 0.4.3.dev133
3
+ Version: 0.4.3.dev136
4
4
  Summary: A differentiable physics engine and multibody dynamics library for control and robot learning.
5
5
  Author-email: Diego Ferigo <dgferigo@gmail.com>
6
6
  Maintainer-email: Diego Ferigo <dgferigo@gmail.com>, Filippo Luca Ferretti <filippo.ferretti@iit.it>
@@ -61,11 +61,11 @@ Description-Content-Type: text/markdown
61
61
  License-File: LICENSE
62
62
  Requires-Dist: coloredlogs
63
63
  Requires-Dist: jax>=0.4.26
64
- Requires-Dist: jaxopt>=0.8.0
65
64
  Requires-Dist: jaxlib>=0.4.26
66
65
  Requires-Dist: jaxlie>=1.3.0
67
66
  Requires-Dist: jax_dataclasses>=1.4.0
68
67
  Requires-Dist: pptree
68
+ Requires-Dist: optax>=0.2.3
69
69
  Requires-Dist: qpax
70
70
  Requires-Dist: rod>=0.3.3
71
71
  Requires-Dist: typing_extensions; python_version < "3.12"
@@ -1,10 +1,10 @@
1
1
  coloredlogs
2
2
  jax>=0.4.26
3
- jaxopt>=0.8.0
4
3
  jaxlib>=0.4.26
5
4
  jaxlie>=1.3.0
6
5
  jax_dataclasses>=1.4.0
7
6
  pptree
7
+ optax>=0.2.3
8
8
  qpax
9
9
  rod>=0.3.3
10
10
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes