NetKet 3.22.0.dev4__tar.gz → 3.22.2__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 (440) hide show
  1. {netket-3.22.0.dev4 → netket-3.22.2}/PKG-INFO +5 -4
  2. {netket-3.22.0.dev4 → netket-3.22.2}/netket/__init__.py +2 -0
  3. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/callbacks/auto_chunk_size.py +2 -2
  4. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/callbacks/base.py +2 -2
  5. {netket-3.22.0.dev4/netket → netket-3.22.2/netket/_src}/callbacks/convergence_stopping.py +17 -26
  6. {netket-3.22.0.dev4/netket → netket-3.22.2/netket/_src}/callbacks/early_stopping.py +22 -37
  7. {netket-3.22.0.dev4/netket → netket-3.22.2/netket/_src}/callbacks/invalid_loss_stopping.py +13 -24
  8. {netket-3.22.0.dev4/netket → netket-3.22.2/netket/_src}/callbacks/timeout.py +15 -30
  9. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/driver/abstract_optimization_driver.py +3 -2
  10. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/driver/abstract_variational_driver.py +1 -1
  11. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/driver/abstract_variational_driver_old.py +2 -2
  12. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/driver/infidelity_sr.py +3 -3
  13. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/driver/vmc_sr.py +1 -2
  14. {netket-3.22.0.dev4/netket → netket-3.22.2/netket/_src}/logging/base.py +0 -2
  15. netket-3.22.2/netket/_src/logging/hdf5_log.py +329 -0
  16. {netket-3.22.0.dev4/netket → netket-3.22.2/netket/_src}/logging/json_log.py +1 -1
  17. netket-3.22.2/netket/_src/logging/mlflow_log.py +300 -0
  18. {netket-3.22.0.dev4/netket → netket-3.22.2/netket/_src}/logging/runtime_log.py +1 -1
  19. {netket-3.22.0.dev4/netket → netket-3.22.2/netket/_src}/logging/state_log.py +1 -1
  20. {netket-3.22.0.dev4/netket → netket-3.22.2/netket/_src}/logging/tensorboard.py +108 -62
  21. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/ngd/sr.py +1 -1
  22. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/ngd/srt.py +2 -2
  23. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/ngd/srt_onthefly.py +7 -7
  24. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/nn/apply_operator/linen.py +3 -2
  25. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/nn/apply_operator/nnx.py +3 -2
  26. netket-3.22.2/netket/_src/nn/freeze/api.py +129 -0
  27. netket-3.22.2/netket/_src/nn/freeze/common.py +110 -0
  28. netket-3.22.2/netket/_src/nn/freeze/functional.py +110 -0
  29. netket-3.22.2/netket/_src/nn/freeze/linen.py +150 -0
  30. netket-3.22.2/netket/_src/nn/freeze/nnx.py +84 -0
  31. netket-3.22.2/netket/_src/observable/correlator/__init__.py +17 -0
  32. netket-3.22.2/netket/_src/observable/correlator/correlator.py +72 -0
  33. netket-3.22.2/netket/_src/observable/correlator/expect.py +70 -0
  34. {netket-3.22.0.dev4/netket/experimental → netket-3.22.2/netket/_src}/observable/infidelity/__init__.py +3 -3
  35. {netket-3.22.0.dev4/netket/experimental → netket-3.22.2/netket/_src}/observable/infidelity/exact.py +1 -1
  36. netket-3.22.2/netket/_src/observable/infidelity/expect.py +113 -0
  37. {netket-3.22.0.dev4/netket/experimental → netket-3.22.2/netket/_src}/observable/infidelity/infidelity_operator.py +1 -1
  38. {netket-3.22.0.dev4/netket/experimental → netket-3.22.2/netket/_src}/observable/renyi2/expect.py +47 -50
  39. {netket-3.22.0.dev4/netket/experimental → netket-3.22.2/netket/_src}/observable/variance/expect.py +33 -16
  40. netket-3.22.2/netket/_src/observable/vscore.py +218 -0
  41. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/operator/particle_number_conserving_fermionic/fermihubbard.py +1 -1
  42. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/operator/particle_number_conserving_fermionic/kernels.py +2 -2
  43. netket-3.22.2/netket/_src/stats/local_estimators.py +245 -0
  44. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/stats/online_stats/__init__.py +7 -0
  45. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/stats/online_stats/accumulator.py +12 -0
  46. netket-3.22.2/netket/_src/stats/online_stats/accumulator_batch.py +255 -0
  47. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/stats/online_stats/operations.py +71 -5
  48. netket-3.22.2/netket/_src/vqs/check_mc_convergence.py +494 -0
  49. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/vqs/expect_to_precision.py +39 -29
  50. netket-3.22.2/netket/_src/vqs/freeze_vstate.py +166 -0
  51. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/vqs/transformed_vstate.py +14 -6
  52. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_version.py +2 -2
  53. netket-3.22.0.dev4/netket/callbacks/__init__.py → netket-3.22.2/netket/callbacks.py +12 -9
  54. {netket-3.22.0.dev4 → netket-3.22.2}/netket/driver/__init__.py +2 -1
  55. {netket-3.22.0.dev4 → netket-3.22.2}/netket/errors.py +17 -11
  56. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/driver/tdvp_common.py +1 -1
  57. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/driver/tdvp_schmitt.py +2 -2
  58. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/dynamics/_rk/_tableau.py +1 -1
  59. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/logging/__init__.py +14 -4
  60. netket-3.22.2/netket/experimental/observable/__init__.py +53 -0
  61. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/random/fock.py +4 -1
  62. netket-3.22.2/netket/jax/_compat.py +68 -0
  63. {netket-3.22.0.dev4 → netket-3.22.2}/netket/jax/_jacobian/logic.py +1 -1
  64. {netket-3.22.0.dev4 → netket-3.22.2}/netket/jax/_sort.py +2 -1
  65. {netket-3.22.0.dev4 → netket-3.22.2}/netket/jax/_utils_dtype.py +14 -2
  66. {netket-3.22.0.dev4 → netket-3.22.2}/netket/jax/_utils_random.py +3 -2
  67. {netket-3.22.0.dev4 → netket-3.22.2}/netket/jax/_vjp_chunked.py +1 -1
  68. {netket-3.22.0.dev4 → netket-3.22.2}/netket/jax/_vmap_chunked.py +6 -6
  69. {netket-3.22.0.dev4 → netket-3.22.2}/netket/jax/sharding/debug.py +1 -1
  70. {netket-3.22.0.dev4 → netket-3.22.2}/netket/jax/sharding/fixed_sharding_decorator.py +4 -4
  71. {netket-3.22.0.dev4 → netket-3.22.2}/netket/jax/sharding/fixed_sharding_utils.py +4 -4
  72. netket-3.22.0.dev4/netket/logging/__init__.py → netket-3.22.2/netket/logging.py +9 -7
  73. {netket-3.22.0.dev4 → netket-3.22.2}/netket/models/slater.py +1 -1
  74. {netket-3.22.0.dev4 → netket-3.22.2}/netket/nn/__init__.py +5 -0
  75. {netket-3.22.0.dev4 → netket-3.22.2}/netket/nn/symmetric_linear.py +3 -3
  76. {netket-3.22.0.dev4 → netket-3.22.2}/netket/nn/utils.py +14 -10
  77. netket-3.22.0.dev4/netket/experimental/observable/__init__.py → netket-3.22.2/netket/observable.py +12 -6
  78. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_abstract_operator.py +15 -0
  79. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_discrete_operator.py +1 -1
  80. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_fermion2nd/jax.py +2 -1
  81. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_kinetic.py +3 -2
  82. {netket-3.22.0.dev4 → netket-3.22.2}/netket/optimizer/qgt/qgt_onthefly_logic.py +5 -0
  83. {netket-3.22.0.dev4 → netket-3.22.2}/netket/sampler/autoreg.py +1 -1
  84. {netket-3.22.0.dev4 → netket-3.22.2}/netket/sampler/base.py +17 -11
  85. {netket-3.22.0.dev4 → netket-3.22.2}/netket/sampler/exact.py +2 -2
  86. {netket-3.22.0.dev4 → netket-3.22.2}/netket/sampler/metropolis.py +15 -4
  87. {netket-3.22.0.dev4 → netket-3.22.2}/netket/sampler/metropolis_numpy.py +1 -1
  88. {netket-3.22.0.dev4 → netket-3.22.2}/netket/sampler/rules/exchange.py +49 -22
  89. {netket-3.22.0.dev4 → netket-3.22.2}/netket/sampler/rules/hamiltonian.py +2 -2
  90. {netket-3.22.0.dev4 → netket-3.22.2}/netket/stats/__init__.py +7 -1
  91. {netket-3.22.0.dev4 → netket-3.22.2}/netket/stats/mc_stats.py +48 -0
  92. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/__init__.py +1 -0
  93. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/_tips.py +13 -0
  94. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/config_flags.py +63 -10
  95. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/group/_group.py +16 -24
  96. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/history/accum.py +0 -1
  97. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/history/history_dict.py +14 -2
  98. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/model_frameworks/__init__.py +1 -1
  99. netket-3.22.2/netket/utils/model_frameworks/flax_bound.py +51 -0
  100. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/moduletools.py +31 -0
  101. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/struct/dataclass.py +17 -1
  102. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/struct/pytree_serialization_sharding.py +1 -1
  103. netket-3.22.2/netket/utils/tree_walk.py +137 -0
  104. {netket-3.22.0.dev4 → netket-3.22.2}/netket/vqs/__init__.py +8 -1
  105. {netket-3.22.0.dev4 → netket-3.22.2}/netket/vqs/full_summ/state.py +3 -3
  106. {netket-3.22.0.dev4 → netket-3.22.2}/netket/vqs/mc/__init__.py +6 -1
  107. {netket-3.22.0.dev4 → netket-3.22.2}/netket/vqs/mc/common.py +31 -0
  108. {netket-3.22.0.dev4 → netket-3.22.2}/netket/vqs/mc/mc_mixed_state/state.py +1 -1
  109. {netket-3.22.0.dev4 → netket-3.22.2}/netket/vqs/mc/mc_state/__init__.py +2 -0
  110. {netket-3.22.0.dev4 → netket-3.22.2}/netket/vqs/mc/mc_state/expect.py +4 -40
  111. {netket-3.22.0.dev4 → netket-3.22.2}/netket/vqs/mc/mc_state/expect_chunked.py +3 -54
  112. netket-3.22.2/netket/vqs/mc/mc_state/local_estimators.py +82 -0
  113. {netket-3.22.0.dev4 → netket-3.22.2}/netket/vqs/mc/mc_state/state.py +101 -98
  114. {netket-3.22.0.dev4 → netket-3.22.2}/pyproject.toml +7 -5
  115. netket-3.22.0.dev4/netket/_src/vqs/check_mc_convergence.py +0 -265
  116. netket-3.22.0.dev4/netket/experimental/logging/hdf5_log.py +0 -218
  117. netket-3.22.0.dev4/netket/experimental/observable/infidelity/expect.py +0 -112
  118. {netket-3.22.0.dev4 → netket-3.22.2}/.gitignore +0 -0
  119. {netket-3.22.0.dev4 → netket-3.22.2}/LICENSE +0 -0
  120. {netket-3.22.0.dev4 → netket-3.22.2}/README.md +0 -0
  121. {netket-3.22.0.dev4 → netket-3.22.2}/docs/sphinx_extensions/netket_citations.py +0 -0
  122. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/callbacks/auto_slurm_requeue.py +0 -0
  123. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/callbacks/callback_list.py +0 -0
  124. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/callbacks/legacy_wrappers.py +0 -0
  125. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/callbacks/observables.py +0 -0
  126. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/callbacks/progressbar.py +0 -0
  127. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/callbacks/save_state.py +0 -0
  128. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/callbacks/stop_at_time.py +0 -0
  129. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/driver/abstract_dynamics_driver.py +0 -0
  130. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/ngd/kwargs.py +0 -0
  131. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/ngd/sr_srt_common.py +0 -0
  132. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/nn/apply_operator/functional.py +0 -0
  133. {netket-3.22.0.dev4/netket/experimental → netket-3.22.2/netket/_src}/observable/renyi2/S2_operator.py +0 -0
  134. {netket-3.22.0.dev4/netket/experimental → netket-3.22.2/netket/_src}/observable/renyi2/__init__.py +0 -0
  135. {netket-3.22.0.dev4/netket/experimental → netket-3.22.2/netket/_src}/observable/renyi2/exact.py +0 -0
  136. {netket-3.22.0.dev4/netket/experimental → netket-3.22.2/netket/_src}/observable/variance/__init__.py +0 -0
  137. {netket-3.22.0.dev4/netket/experimental → netket-3.22.2/netket/_src}/observable/variance/exact.py +0 -0
  138. {netket-3.22.0.dev4/netket/experimental → netket-3.22.2/netket/_src}/observable/variance/variance_operator.py +0 -0
  139. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/operator/normal_order_utils.py +0 -0
  140. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/operator/particle_number_conserving_fermionic/conversion.py +0 -0
  141. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/operator/particle_number_conserving_fermionic/operator_data.py +0 -0
  142. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/operator/particle_number_conserving_fermionic/operators.py +0 -0
  143. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/operator/permutation/base.py +0 -0
  144. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/operator/permutation/construct.py +0 -0
  145. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/operator/permutation/fermion.py +0 -0
  146. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/operator/permutation/spin.py +0 -0
  147. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/operator/permutation/trace_utils.py +0 -0
  148. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/operator/pyscf_api.py +0 -0
  149. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/operator/pyscf_utils.py +0 -0
  150. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/operator/spin_flip.py +0 -0
  151. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/solvers/nan_fallback.py +0 -0
  152. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/stats/online_stats/kernels.py +0 -0
  153. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/symmetry/canonical_representation.py +0 -0
  154. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/symmetry/labeled_representation.py +0 -0
  155. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/symmetry/labeled_representation_coset_filter.py +0 -0
  156. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/symmetry/representation.py +0 -0
  157. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/symmetry/representation_construction.py +0 -0
  158. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/symmetry/spin_flip_representation.py +0 -0
  159. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/symmetry/translation_coset_filter.py +0 -0
  160. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/symmetry/translation_representation.py +0 -0
  161. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/vqs/fermion_mf/__init__.py +0 -0
  162. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/vqs/fermion_mf/expectation.py +0 -0
  163. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/vqs/fermion_mf/qgt.py +0 -0
  164. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/vqs/fermion_mf/state.py +0 -0
  165. {netket-3.22.0.dev4 → netket-3.22.2}/netket/_src/vqs/plot_mc_convergence.py +0 -0
  166. {netket-3.22.0.dev4 → netket-3.22.2}/netket/driver/steady_state.py +0 -0
  167. {netket-3.22.0.dev4 → netket-3.22.2}/netket/driver/vmc.py +0 -0
  168. {netket-3.22.0.dev4 → netket-3.22.2}/netket/exact.py +0 -0
  169. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/__init__.py +0 -0
  170. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/driver/__init__.py +0 -0
  171. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/driver/tdvp.py +0 -0
  172. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/dynamics/__init__.py +0 -0
  173. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/dynamics/_integrator.py +0 -0
  174. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/dynamics/_integrator_params.py +0 -0
  175. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/dynamics/_integrator_state.py +0 -0
  176. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/dynamics/_rk/__init__.py +0 -0
  177. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/dynamics/_rk/_solver.py +0 -0
  178. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/dynamics/_solver.py +0 -0
  179. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/dynamics/_utils.py +0 -0
  180. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/geometry/__init__.py +0 -0
  181. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/geometry/cell.py +0 -0
  182. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/hilbert/__init__.py +0 -0
  183. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/hilbert/continuous_hilbert.py +0 -0
  184. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/hilbert/particle.py +0 -0
  185. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/hilbert/random/__init__.py +0 -0
  186. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/hilbert/random/particle.py +0 -0
  187. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/models/__init__.py +0 -0
  188. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/models/fast_rnn.py +0 -0
  189. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/models/rnn.py +0 -0
  190. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/nn/__init__.py +0 -0
  191. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/nn/rnn/__init__.py +0 -0
  192. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/nn/rnn/cells.py +0 -0
  193. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/nn/rnn/layers.py +0 -0
  194. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/nn/rnn/layers_fast.py +0 -0
  195. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/nn/rnn/ordering.py +0 -0
  196. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/operator/__init__.py +0 -0
  197. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/operator/pyscf.py +0 -0
  198. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/qsr/__init__.py +0 -0
  199. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/qsr/dataset.py +0 -0
  200. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/qsr/driver.py +0 -0
  201. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/qsr/logic_helpers.py +0 -0
  202. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/vqs/__init__.py +0 -0
  203. {netket-3.22.0.dev4 → netket-3.22.2}/netket/experimental/vqs/io.py +0 -0
  204. {netket-3.22.0.dev4 → netket-3.22.2}/netket/graph/__init__.py +0 -0
  205. {netket-3.22.0.dev4 → netket-3.22.2}/netket/graph/_lattice_draw.py +0 -0
  206. {netket-3.22.0.dev4 → netket-3.22.2}/netket/graph/_lattice_edge_logic.py +0 -0
  207. {netket-3.22.0.dev4 → netket-3.22.2}/netket/graph/abstract_graph.py +0 -0
  208. {netket-3.22.0.dev4 → netket-3.22.2}/netket/graph/common_lattices.py +0 -0
  209. {netket-3.22.0.dev4 → netket-3.22.2}/netket/graph/graph.py +0 -0
  210. {netket-3.22.0.dev4 → netket-3.22.2}/netket/graph/lattice.py +0 -0
  211. {netket-3.22.0.dev4 → netket-3.22.2}/netket/graph/space_group.py +0 -0
  212. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/__init__.py +0 -0
  213. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/abstract_hilbert.py +0 -0
  214. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/constraint/__init__.py +0 -0
  215. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/constraint/base.py +0 -0
  216. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/constraint/multiple.py +0 -0
  217. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/constraint/sum.py +0 -0
  218. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/constraint/sum_partition.py +0 -0
  219. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/discrete_hilbert.py +0 -0
  220. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/doubled_hilbert.py +0 -0
  221. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/fock.py +0 -0
  222. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/homogeneous.py +0 -0
  223. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/index/__init__.py +0 -0
  224. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/index/base.py +0 -0
  225. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/index/constrained_generic.py +0 -0
  226. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/index/constrained_sum.py +0 -0
  227. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/index/constrained_sum_partitions.py +0 -0
  228. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/index/unconstrained.py +0 -0
  229. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/index/uniform_tensor.py +0 -0
  230. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/qubit.py +0 -0
  231. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/random/__init__.py +0 -0
  232. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/random/base.py +0 -0
  233. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/random/doubled.py +0 -0
  234. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/random/homogeneous.py +0 -0
  235. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/random/qubit.py +0 -0
  236. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/random/tensor_hilbert.py +0 -0
  237. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/spin.py +0 -0
  238. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/spin_orbital_fermions.py +0 -0
  239. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/tensor_hilbert.py +0 -0
  240. {netket-3.22.0.dev4 → netket-3.22.2}/netket/hilbert/tensor_hilbert_discrete.py +0 -0
  241. {netket-3.22.0.dev4 → netket-3.22.2}/netket/jax/__init__.py +0 -0
  242. {netket-3.22.0.dev4 → netket-3.22.2}/netket/jax/_chunk_utils.py +0 -0
  243. {netket-3.22.0.dev4 → netket-3.22.2}/netket/jax/_expect.py +0 -0
  244. {netket-3.22.0.dev4 → netket-3.22.2}/netket/jax/_grad.py +0 -0
  245. {netket-3.22.0.dev4 → netket-3.22.2}/netket/jax/_jacobian/__init__.py +0 -0
  246. {netket-3.22.0.dev4 → netket-3.22.2}/netket/jax/_jacobian/default_mode.py +0 -0
  247. {netket-3.22.0.dev4 → netket-3.22.2}/netket/jax/_jacobian/jacobian_dense.py +0 -0
  248. {netket-3.22.0.dev4 → netket-3.22.2}/netket/jax/_jacobian/jacobian_pytree.py +0 -0
  249. {netket-3.22.0.dev4 → netket-3.22.2}/netket/jax/_math.py +0 -0
  250. {netket-3.22.0.dev4 → netket-3.22.2}/netket/jax/_ntk/__init__.py +0 -0
  251. {netket-3.22.0.dev4 → netket-3.22.2}/netket/jax/_ntk/logic.py +0 -0
  252. {netket-3.22.0.dev4 → netket-3.22.2}/netket/jax/_ntk/utils.py +0 -0
  253. {netket-3.22.0.dev4 → netket-3.22.2}/netket/jax/_scanmap.py +0 -0
  254. {netket-3.22.0.dev4 → netket-3.22.2}/netket/jax/_sparse.py +0 -0
  255. {netket-3.22.0.dev4 → netket-3.22.2}/netket/jax/_utils_tree.py +0 -0
  256. {netket-3.22.0.dev4 → netket-3.22.2}/netket/jax/_vjp.py +0 -0
  257. {netket-3.22.0.dev4 → netket-3.22.2}/netket/jax/lax.py +0 -0
  258. {netket-3.22.0.dev4 → netket-3.22.2}/netket/jax/sharding/__init__.py +0 -0
  259. {netket-3.22.0.dev4 → netket-3.22.2}/netket/jax/sharding/flexible_sharding.py +0 -0
  260. {netket-3.22.0.dev4 → netket-3.22.2}/netket/models/README.md +0 -0
  261. {netket-3.22.0.dev4 → netket-3.22.2}/netket/models/__init__.py +0 -0
  262. {netket-3.22.0.dev4 → netket-3.22.2}/netket/models/autoreg.py +0 -0
  263. {netket-3.22.0.dev4 → netket-3.22.2}/netket/models/deepset.py +0 -0
  264. {netket-3.22.0.dev4 → netket-3.22.2}/netket/models/equivariant.py +0 -0
  265. {netket-3.22.0.dev4 → netket-3.22.2}/netket/models/fast_autoreg.py +0 -0
  266. {netket-3.22.0.dev4 → netket-3.22.2}/netket/models/full_space.py +0 -0
  267. {netket-3.22.0.dev4 → netket-3.22.2}/netket/models/gaussian.py +0 -0
  268. {netket-3.22.0.dev4 → netket-3.22.2}/netket/models/jastrow.py +0 -0
  269. {netket-3.22.0.dev4 → netket-3.22.2}/netket/models/mlp.py +0 -0
  270. {netket-3.22.0.dev4 → netket-3.22.2}/netket/models/ndm.py +0 -0
  271. {netket-3.22.0.dev4 → netket-3.22.2}/netket/models/rbm.py +0 -0
  272. {netket-3.22.0.dev4 → netket-3.22.2}/netket/models/tensor_networks/__init__.py +0 -0
  273. {netket-3.22.0.dev4 → netket-3.22.2}/netket/models/tensor_networks/mpdo.py +0 -0
  274. {netket-3.22.0.dev4 → netket-3.22.2}/netket/models/tensor_networks/mps.py +0 -0
  275. {netket-3.22.0.dev4 → netket-3.22.2}/netket/models/utils.py +0 -0
  276. {netket-3.22.0.dev4 → netket-3.22.2}/netket/nn/activation.py +0 -0
  277. {netket-3.22.0.dev4 → netket-3.22.2}/netket/nn/apply_operator.py +0 -0
  278. {netket-3.22.0.dev4 → netket-3.22.2}/netket/nn/blocks/__init__.py +0 -0
  279. {netket-3.22.0.dev4 → netket-3.22.2}/netket/nn/blocks/deepset.py +0 -0
  280. {netket-3.22.0.dev4 → netket-3.22.2}/netket/nn/blocks/mlp.py +0 -0
  281. {netket-3.22.0.dev4 → netket-3.22.2}/netket/nn/blocks/symmetry_sum.py +0 -0
  282. {netket-3.22.0.dev4 → netket-3.22.2}/netket/nn/fast_masked_linear.py +0 -0
  283. {netket-3.22.0.dev4 → netket-3.22.2}/netket/nn/masked_linear.py +0 -0
  284. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/__init__.py +0 -0
  285. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_abstract_observable.py +0 -0
  286. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_abstract_super_operator.py +0 -0
  287. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_bose_hubbard/__init__.py +0 -0
  288. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_bose_hubbard/base.py +0 -0
  289. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_bose_hubbard/jax.py +0 -0
  290. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_bose_hubbard/numba.py +0 -0
  291. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_continuous_operator.py +0 -0
  292. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_discrete_operator_jax.py +0 -0
  293. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_embed/__init__.py +0 -0
  294. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_embed/base.py +0 -0
  295. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_embed/discrete_jax_operator.py +0 -0
  296. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_embed/discrete_operator.py +0 -0
  297. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_embed/operator.py +0 -0
  298. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_fermion2nd/__init__.py +0 -0
  299. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_fermion2nd/base.py +0 -0
  300. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_fermion2nd/numba.py +0 -0
  301. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_fermion2nd/utils.py +0 -0
  302. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_graph_operator.py +0 -0
  303. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_hamiltonian.py +0 -0
  304. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_heisenberg.py +0 -0
  305. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_ising/__init__.py +0 -0
  306. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_ising/base.py +0 -0
  307. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_ising/jax.py +0 -0
  308. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_ising/numba.py +0 -0
  309. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_lazy.py +0 -0
  310. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_local_liouvillian.py +0 -0
  311. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_local_operator/__init__.py +0 -0
  312. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_local_operator/base.py +0 -0
  313. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_local_operator/compile_helpers.py +0 -0
  314. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_local_operator/convert.py +0 -0
  315. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_local_operator/helpers.py +0 -0
  316. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_local_operator/jax.py +0 -0
  317. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_local_operator/numba.py +0 -0
  318. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_pauli_strings/__init__.py +0 -0
  319. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_pauli_strings/base.py +0 -0
  320. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_pauli_strings/jax.py +0 -0
  321. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_pauli_strings/numba.py +0 -0
  322. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_potential.py +0 -0
  323. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_prod/__init__.py +0 -0
  324. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_prod/base.py +0 -0
  325. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_prod/discrete_jax_operator.py +0 -0
  326. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_prod/discrete_operator.py +0 -0
  327. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_prod/operator.py +0 -0
  328. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_sum/__init__.py +0 -0
  329. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_sum/base.py +0 -0
  330. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_sum/continuous.py +0 -0
  331. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_sum/discrete_jax_operator.py +0 -0
  332. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_sum/discrete_operator.py +0 -0
  333. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/_sum/operator.py +0 -0
  334. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/boson.py +0 -0
  335. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/fermion.py +0 -0
  336. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/permutation.py +0 -0
  337. {netket-3.22.0.dev4 → netket-3.22.2}/netket/operator/spin.py +0 -0
  338. {netket-3.22.0.dev4 → netket-3.22.2}/netket/optimizer/__init__.py +0 -0
  339. {netket-3.22.0.dev4 → netket-3.22.2}/netket/optimizer/linear_operator.py +0 -0
  340. {netket-3.22.0.dev4 → netket-3.22.2}/netket/optimizer/preconditioner.py +0 -0
  341. {netket-3.22.0.dev4 → netket-3.22.2}/netket/optimizer/qgt/__init__.py +0 -0
  342. {netket-3.22.0.dev4 → netket-3.22.2}/netket/optimizer/qgt/common.py +0 -0
  343. {netket-3.22.0.dev4 → netket-3.22.2}/netket/optimizer/qgt/default.py +0 -0
  344. {netket-3.22.0.dev4 → netket-3.22.2}/netket/optimizer/qgt/qgt_jacobian.py +0 -0
  345. {netket-3.22.0.dev4 → netket-3.22.2}/netket/optimizer/qgt/qgt_jacobian_common.py +0 -0
  346. {netket-3.22.0.dev4 → netket-3.22.2}/netket/optimizer/qgt/qgt_jacobian_dense.py +0 -0
  347. {netket-3.22.0.dev4 → netket-3.22.2}/netket/optimizer/qgt/qgt_jacobian_pytree.py +0 -0
  348. {netket-3.22.0.dev4 → netket-3.22.2}/netket/optimizer/qgt/qgt_onthefly.py +0 -0
  349. {netket-3.22.0.dev4 → netket-3.22.2}/netket/optimizer/solver/__init__.py +0 -0
  350. {netket-3.22.0.dev4 → netket-3.22.2}/netket/optimizer/solver/solvers.py +0 -0
  351. {netket-3.22.0.dev4 → netket-3.22.2}/netket/optimizer/sr.py +0 -0
  352. {netket-3.22.0.dev4 → netket-3.22.2}/netket/sampler/__init__.py +0 -0
  353. {netket-3.22.0.dev4 → netket-3.22.2}/netket/sampler/parallel_tempering.py +0 -0
  354. {netket-3.22.0.dev4 → netket-3.22.2}/netket/sampler/rules/__init__.py +0 -0
  355. {netket-3.22.0.dev4 → netket-3.22.2}/netket/sampler/rules/base.py +0 -0
  356. {netket-3.22.0.dev4 → netket-3.22.2}/netket/sampler/rules/continuous_gaussian.py +0 -0
  357. {netket-3.22.0.dev4 → netket-3.22.2}/netket/sampler/rules/custom_numpy.py +0 -0
  358. {netket-3.22.0.dev4 → netket-3.22.2}/netket/sampler/rules/fermion_2nd.py +0 -0
  359. {netket-3.22.0.dev4 → netket-3.22.2}/netket/sampler/rules/fixed.py +0 -0
  360. {netket-3.22.0.dev4 → netket-3.22.2}/netket/sampler/rules/global_flip_rule.py +0 -0
  361. {netket-3.22.0.dev4 → netket-3.22.2}/netket/sampler/rules/hamiltonian_numpy.py +0 -0
  362. {netket-3.22.0.dev4 → netket-3.22.2}/netket/sampler/rules/langevin.py +0 -0
  363. {netket-3.22.0.dev4 → netket-3.22.2}/netket/sampler/rules/local.py +0 -0
  364. {netket-3.22.0.dev4 → netket-3.22.2}/netket/sampler/rules/local_numpy.py +0 -0
  365. {netket-3.22.0.dev4 → netket-3.22.2}/netket/sampler/rules/multiple.py +0 -0
  366. {netket-3.22.0.dev4 → netket-3.22.2}/netket/sampler/rules/tensor.py +0 -0
  367. {netket-3.22.0.dev4 → netket-3.22.2}/netket/stats/_autocorr.py +0 -0
  368. {netket-3.22.0.dev4 → netket-3.22.2}/netket/stats/mc_stats_old.py +0 -0
  369. {netket-3.22.0.dev4 → netket-3.22.2}/netket/stats/mpi_stats.py +0 -0
  370. {netket-3.22.0.dev4 → netket-3.22.2}/netket/symmetry/__init__.py +0 -0
  371. {netket-3.22.0.dev4 → netket-3.22.2}/netket/symmetry/group/__init__.py +0 -0
  372. {netket-3.22.0.dev4 → netket-3.22.2}/netket/tools/__init__.py +0 -0
  373. {netket-3.22.0.dev4 → netket-3.22.2}/netket/tools/_common.py +0 -0
  374. {netket-3.22.0.dev4 → netket-3.22.2}/netket/tools/_cpu_info.py +0 -0
  375. {netket-3.22.0.dev4 → netket-3.22.2}/netket/tools/check_mpi.py +0 -0
  376. {netket-3.22.0.dev4 → netket-3.22.2}/netket/tools/djaxrun.py +0 -0
  377. {netket-3.22.0.dev4 → netket-3.22.2}/netket/tools/info.py +0 -0
  378. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/_dependencies_check.py +0 -0
  379. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/_serialization.py +0 -0
  380. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/api_utils.py +0 -0
  381. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/array.py +0 -0
  382. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/citations/__init__.py +0 -0
  383. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/citations/cli.py +0 -0
  384. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/citations/core.py +0 -0
  385. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/citations/docs.py +0 -0
  386. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/citations/internal_citations.bib +0 -0
  387. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/deprecation.py +0 -0
  388. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/dispatch.py +0 -0
  389. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/display/__init__.py +0 -0
  390. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/display/repr.py +0 -0
  391. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/float.py +0 -0
  392. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/group/__init__.py +0 -0
  393. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/group/_permutation_group.py +0 -0
  394. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/group/_point_group.py +0 -0
  395. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/group/_semigroup.py +0 -0
  396. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/group/axial.py +0 -0
  397. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/group/cubic.py +0 -0
  398. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/group/icosa.py +0 -0
  399. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/group/planar.py +0 -0
  400. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/history/__init__.py +0 -0
  401. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/history/history.py +0 -0
  402. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/holomorphic.py +0 -0
  403. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/iterators.py +0 -0
  404. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/jax.py +0 -0
  405. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/model_frameworks/base.py +0 -0
  406. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/model_frameworks/equinox.py +0 -0
  407. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/model_frameworks/flax.py +0 -0
  408. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/model_frameworks/haiku.py +0 -0
  409. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/model_frameworks/jax.py +0 -0
  410. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/model_frameworks/nnx.py +0 -0
  411. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/model_frameworks/nnx_wrapped.py +0 -0
  412. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/mpi/__init__.py +0 -0
  413. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/mpi/mpi.py +0 -0
  414. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/mpi/primitives.py +0 -0
  415. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/numbers.py +0 -0
  416. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/optional_deps.py +0 -0
  417. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/partial.py +0 -0
  418. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/seed.py +0 -0
  419. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/static_number.py +0 -0
  420. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/static_range.py +0 -0
  421. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/struct/__init__.py +0 -0
  422. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/struct/fields.py +0 -0
  423. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/struct/pytree.py +0 -0
  424. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/struct/utils.py +0 -0
  425. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/summation.py +0 -0
  426. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/timing.py +0 -0
  427. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/types.py +0 -0
  428. {netket-3.22.0.dev4 → netket-3.22.2}/netket/utils/version_check.py +0 -0
  429. {netket-3.22.0.dev4 → netket-3.22.2}/netket/vqs/base.py +0 -0
  430. {netket-3.22.0.dev4 → netket-3.22.2}/netket/vqs/full_summ/__init__.py +0 -0
  431. {netket-3.22.0.dev4 → netket-3.22.2}/netket/vqs/full_summ/expect.py +0 -0
  432. {netket-3.22.0.dev4 → netket-3.22.2}/netket/vqs/mc/kernels.py +0 -0
  433. {netket-3.22.0.dev4 → netket-3.22.2}/netket/vqs/mc/mc_mixed_state/__init__.py +0 -0
  434. {netket-3.22.0.dev4 → netket-3.22.2}/netket/vqs/mc/mc_mixed_state/expect.py +0 -0
  435. {netket-3.22.0.dev4 → netket-3.22.2}/netket/vqs/mc/mc_mixed_state/expect_chunked.py +0 -0
  436. {netket-3.22.0.dev4 → netket-3.22.2}/netket/vqs/mc/mc_mixed_state/expect_grad.py +0 -0
  437. {netket-3.22.0.dev4 → netket-3.22.2}/netket/vqs/mc/mc_state/expect_forces.py +0 -0
  438. {netket-3.22.0.dev4 → netket-3.22.2}/netket/vqs/mc/mc_state/expect_forces_chunked.py +0 -0
  439. {netket-3.22.0.dev4 → netket-3.22.2}/netket/vqs/mc/mc_state/expect_grad.py +0 -0
  440. {netket-3.22.0.dev4 → netket-3.22.2}/netket/vqs/mc/mc_state/expect_grad_chunked.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: NetKet
3
- Version: 3.22.0.dev4
3
+ Version: 3.22.2
4
4
  Summary: Netket : Machine Learning toolbox for many-body quantum systems.
5
5
  Project-URL: homepage, https://www.netket.org
6
6
  Project-URL: documentation, https://netket.readthedocs.io/en/latest/#
@@ -19,14 +19,14 @@ Classifier: Programming Language :: Python :: 3
19
19
  Classifier: Topic :: Scientific/Engineering :: Physics
20
20
  Requires-Python: >=3.11
21
21
  Requires-Dist: einops>=0.8.1
22
- Requires-Dist: equinox>=0.11.3
22
+ Requires-Dist: equinox>=0.12.2
23
23
  Requires-Dist: flax>=0.10.6
24
24
  Requires-Dist: igraph>=0.10.0
25
25
  Requires-Dist: jax>=0.7.0
26
26
  Requires-Dist: numba>=0.59
27
27
  Requires-Dist: numpy<3.0,>=1.20
28
28
  Requires-Dist: optax<0.3,>=0.2.2
29
- Requires-Dist: orjson<4,>=3.4
29
+ Requires-Dist: orjson<4,>=3.10.7
30
30
  Requires-Dist: plum-dispatch>=2.4
31
31
  Requires-Dist: rich>=12.0
32
32
  Requires-Dist: scipy<2,>=1.5.3
@@ -51,7 +51,7 @@ Requires-Dist: wheel>=0.38.1; extra == 'dev'
51
51
  Provides-Extra: docs
52
52
  Requires-Dist: ipywidgets>=8.1.7; extra == 'docs'
53
53
  Requires-Dist: myst-nb<1.5,>=1.0; extra == 'docs'
54
- Requires-Dist: myst-parser<5.1.0,>=2.0.0; extra == 'docs'
54
+ Requires-Dist: myst-parser<5.2.0,>=2.0.0; extra == 'docs'
55
55
  Requires-Dist: nbconvert>=7.16.6; extra == 'docs'
56
56
  Requires-Dist: sphinx-autodoc-typehints<4.0,>=1.22; extra == 'docs'
57
57
  Requires-Dist: sphinx-book-theme<1.3,>=1.1; extra == 'docs'
@@ -62,6 +62,7 @@ Requires-Dist: sphinxcontrib-fulltoc~=1.2.0; extra == 'docs'
62
62
  Requires-Dist: sphinxcontrib-jsmath~=1.0.1; extra == 'docs'
63
63
  Provides-Extra: extra
64
64
  Requires-Dist: h5py>=3.7.0; extra == 'extra'
65
+ Requires-Dist: mlflow>=2.0.0; extra == 'extra'
65
66
  Requires-Dist: openfermion>=1.0.0; extra == 'extra'
66
67
  Requires-Dist: qutip>=4; extra == 'extra'
67
68
  Requires-Dist: tensorboardx>=2.0.0; extra == 'extra'
@@ -22,6 +22,7 @@ __all__ = [
22
22
  "logging",
23
23
  "models",
24
24
  "nn",
25
+ "observable",
25
26
  "operator",
26
27
  "optimizer",
27
28
  "sampler",
@@ -55,6 +56,7 @@ from . import (
55
56
  callbacks,
56
57
  logging,
57
58
  models,
59
+ observable,
58
60
  sampler,
59
61
  vqs,
60
62
  optimizer,
@@ -16,7 +16,7 @@ def get_forward_operator(driver):
16
16
  ``@get_forward_operator.dispatch`` for custom driver types.
17
17
 
18
18
  Example:
19
- class VMC(AbstractVariationalDriver):
19
+ class VMC(AbstractOptimizationDriver):
20
20
  ...
21
21
 
22
22
  @get_forward_operator.dispatch
@@ -59,7 +59,7 @@ class AutoChunkSize(AbstractCallback):
59
59
 
60
60
  from netket._src.callbacks.auto_chunk_size import get_forward_operator
61
61
 
62
- class MyDriver(AbstractVariationalDriver):
62
+ class MyDriver(AbstractOptimizationDriver):
63
63
  def __init__(self, hamiltonian, ...):
64
64
  self._ham = hamiltonian
65
65
  ...
@@ -6,7 +6,7 @@ class StopRun(Exception):
6
6
  Exception to be raised by callbacks to gracefully stop the optimisation loop.
7
7
 
8
8
  Raise this exception (or a subclass of it) from any callback hook to stop
9
- the :meth:`~netket.driver.AbstractVariationalDriver.run` loop early.
9
+ the :meth:`~netket.driver.AbstractDriver.run` loop early.
10
10
  The driver will catch it, call
11
11
  :meth:`~netket.callbacks.AbstractCallback.on_run_end` on all callbacks, and
12
12
  then return normally — no traceback is printed and no exception propagates to
@@ -104,7 +104,7 @@ class AbstractCallback(struct.Pytree, mutable=True):
104
104
 
105
105
  At this point:
106
106
 
107
- - The loss and its gradient have been computed by :meth:`~netket.driver.AbstractVariationalDriver.compute_loss_and_update`.
107
+ - The loss and its gradient have been computed by :meth:`~netket.driver.AbstractDriver.compute_loss_and_update`.
108
108
  - The step has been accepted (not rejected by :meth:`on_compute_update_end`).
109
109
  - ``driver.step_count`` still refers to the *current* step — it has not yet been incremented.
110
110
  - The variational state parameters have **not** yet changed.
@@ -18,26 +18,27 @@ import numpy as np
18
18
 
19
19
  from netket.utils import struct
20
20
 
21
+ from netket._src.callbacks.base import AbstractCallback, StopRun
21
22
 
22
- class ConvergenceStopping(struct.Pytree, mutable=True):
23
+
24
+ class ConvergenceStopping(AbstractCallback, mutable=True):
23
25
  """A simple callback to stop the optimisation when the monitored quantity gets
24
26
  below a certain threshold for at least `patience` steps.
25
27
  """
26
28
 
27
- target: float = struct.field(serialize=False)
29
+ target: float = struct.field(pytree_node=False)
28
30
  """Target value for the monitored quantity. Training will stop if the driver drops below this value."""
29
- monitor: str = struct.field(serialize=False)
31
+ monitor: str = struct.field(pytree_node=False)
30
32
  """Loss statistic to monitor. Should be one of 'mean', 'variance', 'error_of_mean'."""
31
- smoothing_window: int = struct.field(serialize=False)
33
+ smoothing_window: int = struct.field(pytree_node=False)
32
34
  """The loss is smoothed over the last `smoothing_window` iterations to
33
- reduce statistical fluctuations"""
34
- patience: int = struct.field(serialize=False)
35
+ reduce statistical fluctuations."""
36
+ patience: int = struct.field(pytree_node=False)
35
37
  """The loss must be consistently below this value for this number of
36
38
  iterations in order to stop the optimisation."""
37
39
 
38
- # caches
39
- _loss_window: deque
40
- _patience_counter: int
40
+ _loss_window: deque = struct.field(pytree_node=False, serialize=False)
41
+ _patience_counter: int = struct.field(pytree_node=False, serialize=False, default=0)
41
42
 
42
43
  def __init__(
43
44
  self,
@@ -68,21 +69,10 @@ class ConvergenceStopping(struct.Pytree, mutable=True):
68
69
  self.smoothing_window = smoothing_window
69
70
  self.patience = patience
70
71
 
71
- self._loss_window: deque = deque([], maxlen=self.smoothing_window)
72
- self._patience_counter: int = 0
73
-
74
- def __call__(self, step, log_data, driver):
75
- """
76
- A boolean function that determines whether or not to stop training.
72
+ self._loss_window = deque([], maxlen=smoothing_window)
73
+ self._patience_counter = 0
77
74
 
78
- Args:
79
- step: An integer corresponding to the step (iteration or epoch) in training.
80
- log_data: A dictionary containing log data for training.
81
- driver: A NetKet variational driver.
82
-
83
- Returns:
84
- A boolean. If True, training continues, else, it does not.
85
- """
75
+ def on_step_end(self, step, log_data, driver):
86
76
  loss = np.asarray(np.real(getattr(log_data[driver._loss_name], self.monitor)))
87
77
 
88
78
  self._loss_window.append(loss)
@@ -94,6 +84,7 @@ class ConvergenceStopping(struct.Pytree, mutable=True):
94
84
  self._patience_counter = 0
95
85
 
96
86
  if self._patience_counter > self.patience:
97
- return False
98
-
99
- return True
87
+ raise StopRun(
88
+ f"ConvergenceStopping: smoothed loss {loss_smooth:.6g} has been below "
89
+ f"target {self.target} for {self._patience_counter} steps."
90
+ )
@@ -12,43 +12,43 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
-
16
15
  import numpy as np
17
16
 
18
17
  from netket.utils import struct
19
18
 
19
+ from netket._src.callbacks.base import AbstractCallback, StopRun
20
+
20
21
 
21
- class EarlyStopping(struct.Pytree, mutable=True):
22
+ class EarlyStopping(AbstractCallback, mutable=True):
22
23
  """A simple callback to stop NetKet if there are no more improvements in the training.
23
24
  based on `driver._loss_name`.
24
25
  """
25
26
 
26
- min_delta: float
27
+ min_delta: float = struct.field(pytree_node=False)
27
28
  """Minimum change in the monitored quantity to qualify as an improvement."""
28
- min_reldelta: float
29
+ min_reldelta: float = struct.field(pytree_node=False)
29
30
  """Minimum relative change in the monitored quantity to qualify as an improvement.
30
31
 
31
32
  This behaves similarly to `min_delta` but is more useful for intensive quantities that
32
33
  converge to 0, where absolute tolerances might not be effective.
33
34
  """
34
- patience: int | float
35
+ patience: int | float = struct.field(pytree_node=False)
35
36
  """Number of epochs with no improvement after which training will be stopped."""
36
- baseline: float | None
37
+ baseline: float | None = struct.field(pytree_node=False)
37
38
  """Baseline value for the monitored quantity. Training will stop if the driver is above the baseline."""
38
- monitor: str
39
+ monitor: str = struct.field(pytree_node=False)
39
40
  """Loss statistic to monitor. Should be one of 'mean', 'variance', 'error_of_mean'."""
40
- start_from_step: int
41
+ start_from_step: int = struct.field(pytree_node=False)
41
42
  """Number of steps to wait before the callback has any effect."""
42
43
 
43
- # The quantities below are internal and should not be edited directly
44
- # by the user
45
-
46
- _best_val: float = np.inf
47
- """Best value of the loss observed up to this iteration. """
48
- _best_iter: int
44
+ _best_val: float = struct.field(pytree_node=False, serialize=False, default=np.inf)
45
+ """Best value of the loss observed up to this iteration."""
46
+ _best_iter: int = struct.field(pytree_node=False, serialize=False, default=0)
49
47
  """Iteration at which the `_best_val` was observed."""
50
- _best_patience_counter: int
51
- """Stores the iteration at which we've seen the best loss so far"""
48
+ _best_patience_counter: int = struct.field(
49
+ pytree_node=False, serialize=False, default=0
50
+ )
51
+ """Stores how many steps have elapsed without an improvement."""
52
52
 
53
53
  def __init__(
54
54
  self,
@@ -87,21 +87,9 @@ class EarlyStopping(struct.Pytree, mutable=True):
87
87
  self._best_iter = 0
88
88
  self._best_patience_counter = 0
89
89
 
90
- def __call__(self, step, log_data, driver):
91
- """
92
- A boolean function that determines whether or not to stop training.
93
-
94
- Args:
95
- step: An integer corresponding to the step (iteration or epoch) in training.
96
- log_data: A dictionary containing log data for training.
97
- driver: A NetKet variational driver.
98
-
99
- Returns:
100
- A boolean. If True, training continues, else, it does not.
101
- """
102
-
90
+ def on_step_end(self, step, log_data, driver):
103
91
  if step < self.start_from_step:
104
- return True
92
+ return
105
93
 
106
94
  loss = np.real(getattr(log_data[driver._loss_name], self.monitor))
107
95
 
@@ -113,19 +101,16 @@ class EarlyStopping(struct.Pytree, mutable=True):
113
101
  if self.baseline is None:
114
102
  self._best_patience_counter = 0
115
103
  elif self._is_improvement(loss, self.baseline):
116
- # If using baseline, update patience only if we are better than baseline
117
104
  self._best_patience_counter = 0
118
105
 
119
106
  if self._best_patience_counter > self.patience:
120
- return False
121
-
122
- return True
107
+ raise StopRun(
108
+ f"EarlyStopping: no improvement detected after {self._best_patience_counter} steps "
109
+ f"(best value {self._best_val} at step {self._best_iter})."
110
+ )
123
111
 
124
112
  def _is_improvement(self, loss, target):
125
- # minimal value for absolute and relative improvement
126
113
  abs_minval = target - self.min_delta
127
114
  rel_minval = target * (1 - self.min_reldelta)
128
- # minimval value that qualify as an improvement
129
115
  minval = min(abs_minval, rel_minval)
130
-
131
116
  return loss < minval
@@ -16,21 +16,21 @@ import numpy as np
16
16
 
17
17
  from netket.utils import struct
18
18
 
19
+ from netket._src.callbacks.base import AbstractCallback, StopRun
19
20
 
20
- # Mark this class a NetKet dataclass so that it can automatically be serialized by Flax.
21
- class InvalidLossStopping(struct.Pytree, mutable=True):
21
+
22
+ class InvalidLossStopping(AbstractCallback, mutable=True):
22
23
  """A simple callback to stop the optimisation when the monitored quantity becomes
23
24
  invalid for at least `patience` steps.
24
25
  """
25
26
 
26
- monitor: str
27
+ monitor: str = struct.field(pytree_node=False)
27
28
  """Loss statistic to monitor. Should be one of 'mean', 'variance', 'error_of_mean'."""
28
- patience: int | float
29
+ patience: int | float = struct.field(pytree_node=False)
29
30
  """Number of epochs with invalid loss after which training will be stopped."""
30
31
 
31
- # caches
32
- _last_valid_iter: int
33
- """Last valid iteration, to check against patience"""
32
+ _last_valid_iter: int = struct.field(pytree_node=False, serialize=False, default=0)
33
+ """Last valid iteration, to check against patience."""
34
34
 
35
35
  def __init__(self, monitor: str = "mean", patience: int | float = 0):
36
36
  """
@@ -48,23 +48,10 @@ class InvalidLossStopping(struct.Pytree, mutable=True):
48
48
  """
49
49
  self.monitor = monitor
50
50
  self.patience = patience
51
-
52
- # caches
53
51
  self._last_valid_iter = 0
54
52
 
55
- def __call__(self, step, log_data, driver):
56
- """
57
- A boolean function that determines whether or not to stop training.
58
-
59
- Args:
60
- step: An integer corresponding to the step (iteration or epoch) in training.
61
- log_data: A dictionary containing log data for training.
62
- driver: A NetKet variational driver.
63
-
64
- Returns:
65
- A boolean. If True, training continues, else, it does not.
66
- """
67
- # clears the _last_valid_iter in case the driver was reset
53
+ def on_step_end(self, step, log_data, driver):
54
+ # reset if the driver was restarted
68
55
  if driver.step_count < self._last_valid_iter:
69
56
  self._last_valid_iter = 0
70
57
 
@@ -73,7 +60,9 @@ class InvalidLossStopping(struct.Pytree, mutable=True):
73
60
 
74
61
  if not np.isfinite(loss):
75
62
  if driver.step_count - self._last_valid_iter >= self.patience:
76
- return False
63
+ raise StopRun(
64
+ f"InvalidLossStopping: loss is not finite ({loss}) "
65
+ f"for {driver.step_count - self._last_valid_iter} steps."
66
+ )
77
67
  else:
78
68
  self._last_valid_iter = driver.step_count
79
- return True
@@ -16,27 +16,27 @@ import time
16
16
 
17
17
  from netket.utils import struct
18
18
 
19
+ from netket._src.callbacks.base import AbstractCallback, StopRun
19
20
 
20
- class Timeout(struct.Pytree, mutable=True):
21
+
22
+ class Timeout(AbstractCallback, mutable=True):
21
23
  """A simple callback to stop NetKet after some time has passed.
22
24
 
23
25
  This callback monitors whether a driver has been training for more
24
26
  than a given timeout in order to hard stop training.
25
27
  """
26
28
 
27
- timeout: float
29
+ timeout: float = struct.field(pytree_node=False)
28
30
  """Number of seconds to wait before the training will be stopped."""
29
31
 
30
- # caches
31
- _init_time: float | None = struct.field(serialize=False)
32
- """
33
- Internal field storing the time at which the first iteration has been
34
- performed.
35
- """
32
+ _init_time: float | None = struct.field(
33
+ pytree_node=False, serialize=False, default=None
34
+ )
35
+ """Internal field storing the time at which the run started."""
36
36
 
37
37
  def __init__(self, timeout: float):
38
38
  """
39
- Stops the optimisation after a certain time itnerval.
39
+ Stops the optimisation after a certain time interval.
40
40
 
41
41
  Args:
42
42
  timeout: number of seconds after which the optimisation will
@@ -45,28 +45,13 @@ class Timeout(struct.Pytree, mutable=True):
45
45
  if not timeout > 0:
46
46
  raise ValueError("`timeout` must be larger than 0.")
47
47
  self.timeout = timeout
48
-
49
48
  self._init_time = None
50
49
 
51
- def __call__(self, step, log_data, driver):
52
- """
53
- A boolean function that determines whether or not to stop training.
54
-
55
- Args:
56
- step: An integer corresponding to the step (iteration or epoch) in training.
57
- log_data: A dictionary containing log data for training.
58
- driver: A NetKet variational driver.
59
-
60
- Returns:
61
- A boolean. If True, training continues, else, it does not.
62
-
63
- Note:
64
- This callback does not make use of `step`, `log_data` nor `driver`.
65
- """
66
- if self._init_time is None:
67
- self._init_time = time.time()
50
+ def on_run_start(self, step, driver):
51
+ self._init_time = time.time()
68
52
 
53
+ def on_step_end(self, step, log_data, driver):
69
54
  if time.time() - self._init_time >= self.timeout:
70
- return False
71
- else:
72
- return True
55
+ raise StopRun(
56
+ f"Timeout: training stopped after {self.timeout:.1f} seconds."
57
+ )
@@ -31,8 +31,9 @@ class AbstractOptimizationDriver(AbstractDriver):
31
31
  Adds an `optax <https://optax.readthedocs.io/en/latest/>`_ optimizer and
32
32
  implements :meth:`update_parameters` via :func:`apply_gradient`.
33
33
 
34
- Subclass this (not :class:`AbstractVariationalDriver` directly) when
35
- implementing a new optimization driver.
34
+ Subclass this when implementing a new optimization driver. The public
35
+ name :class:`AbstractVariationalDriver` is currently kept as a compatibility
36
+ alias for this class.
36
37
  """
37
38
 
38
39
  _optimizer: Optimizer = struct.field(pytree_node=False, serialize=False)
@@ -313,7 +313,7 @@ class AbstractDriver(struct.Pytree, mutable=True):
313
313
  Example of subclassing:
314
314
 
315
315
  .. code:: python
316
- class MyDriver(AbstractVariationalDriver):
316
+ class MyDriver(AbstractDriver):
317
317
  ...
318
318
  def _default_callbacks(self, *args, **kwargs):
319
319
  callbacks = super()._default_callbacks(*args, **kwargs)
@@ -197,7 +197,7 @@ class AbstractVariationalDriver(abc.ABC):
197
197
  self._optimizer = optimizer
198
198
  if optimizer is not None:
199
199
  self._optimizer_state = optimizer.init(self.state.parameters)
200
- if config.netket_experimental_sharding:
200
+ if config.netket_sharding:
201
201
  self._optimizer_state = jax.lax.with_sharding_constraint(
202
202
  self._optimizer_state,
203
203
  NamedSharding(jax.sharding.get_abstract_mesh(), P()),
@@ -433,7 +433,7 @@ def apply_gradient(optimizer_fun, optimizer_state, dp, params):
433
433
 
434
434
  new_params = optax.apply_updates(params, updates)
435
435
 
436
- if config.netket_experimental_sharding:
436
+ if config.netket_sharding:
437
437
  sharding = NamedSharding(jax.sharding.get_abstract_mesh(), P())
438
438
  new_optimizer_state = jax.lax.with_sharding_constraint(
439
439
  new_optimizer_state, sharding
@@ -24,8 +24,8 @@ from netket._src.ngd.sr_srt_common import sr, srt, get_samples_and_pdf
24
24
  from netket._src.ngd.srt_onthefly import srt_onthefly
25
25
  from netket._src.nn.apply_operator.functional import make_logpsi_op_afun
26
26
  from netket._src.callbacks.auto_chunk_size import get_forward_operator
27
- from netket.experimental.observable.infidelity.expect import get_local_estimator
28
- from netket.experimental.observable.infidelity import InfidelityOperator
27
+ from netket._src.observable.infidelity.expect import get_local_estimator
28
+ from netket._src.observable.infidelity import InfidelityOperator
29
29
 
30
30
 
31
31
  ApplyFun = Callable[[PyTree, Array], Array]
@@ -344,7 +344,7 @@ class Infidelity_SR(AbstractOptimizationDriver):
344
344
  @timing.timed
345
345
  def _log_additional_data(self, log_dict: dict):
346
346
  """
347
- Method to be implemented in sub-classes of AbstractVariationalDriver to
347
+ Method to be implemented in sub-classes of AbstractDriver to
348
348
  log additional data at every step.
349
349
  This method is called at every iteration when executing with `run`.
350
350
 
@@ -512,14 +512,13 @@ class VMC_SR(AbstractOptimizationDriver):
512
512
  @timing.timed
513
513
  def _log_additional_data(self, log_dict: dict):
514
514
  """
515
- Method to be implemented in sub-classes of AbstractVariationalDriver to
515
+ Method to be implemented in sub-classes of AbstractDriver to
516
516
  log additional data at every step.
517
517
  This method is called at every iteration when executing with `run`.
518
518
 
519
519
  Args:
520
520
  log_dict: The dictionary containing all logged data. It must be
521
521
  **modified in-place** adding new keys.
522
- step: the current step number.
523
522
  """
524
523
  super()._log_additional_data(log_dict)
525
524
 
@@ -18,8 +18,6 @@ from typing import Any, TYPE_CHECKING
18
18
 
19
19
  import jax
20
20
 
21
- from netket.vqs import VariationalState
22
-
23
21
  if TYPE_CHECKING:
24
22
  from netket.vqs import VariationalState
25
23