NetKet 3.22.1__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 (437) hide show
  1. {netket-3.22.1 → netket-3.22.2}/PKG-INFO +1 -1
  2. {netket-3.22.1 → netket-3.22.2}/netket/_src/observable/vscore.py +62 -13
  3. {netket-3.22.1 → netket-3.22.2}/netket/_version.py +2 -2
  4. {netket-3.22.1 → netket-3.22.2}/.gitignore +0 -0
  5. {netket-3.22.1 → netket-3.22.2}/LICENSE +0 -0
  6. {netket-3.22.1 → netket-3.22.2}/README.md +0 -0
  7. {netket-3.22.1 → netket-3.22.2}/docs/sphinx_extensions/netket_citations.py +0 -0
  8. {netket-3.22.1 → netket-3.22.2}/netket/__init__.py +0 -0
  9. {netket-3.22.1 → netket-3.22.2}/netket/_src/callbacks/auto_chunk_size.py +0 -0
  10. {netket-3.22.1 → netket-3.22.2}/netket/_src/callbacks/auto_slurm_requeue.py +0 -0
  11. {netket-3.22.1 → netket-3.22.2}/netket/_src/callbacks/base.py +0 -0
  12. {netket-3.22.1 → netket-3.22.2}/netket/_src/callbacks/callback_list.py +0 -0
  13. {netket-3.22.1 → netket-3.22.2}/netket/_src/callbacks/convergence_stopping.py +0 -0
  14. {netket-3.22.1 → netket-3.22.2}/netket/_src/callbacks/early_stopping.py +0 -0
  15. {netket-3.22.1 → netket-3.22.2}/netket/_src/callbacks/invalid_loss_stopping.py +0 -0
  16. {netket-3.22.1 → netket-3.22.2}/netket/_src/callbacks/legacy_wrappers.py +0 -0
  17. {netket-3.22.1 → netket-3.22.2}/netket/_src/callbacks/observables.py +0 -0
  18. {netket-3.22.1 → netket-3.22.2}/netket/_src/callbacks/progressbar.py +0 -0
  19. {netket-3.22.1 → netket-3.22.2}/netket/_src/callbacks/save_state.py +0 -0
  20. {netket-3.22.1 → netket-3.22.2}/netket/_src/callbacks/stop_at_time.py +0 -0
  21. {netket-3.22.1 → netket-3.22.2}/netket/_src/callbacks/timeout.py +0 -0
  22. {netket-3.22.1 → netket-3.22.2}/netket/_src/driver/abstract_dynamics_driver.py +0 -0
  23. {netket-3.22.1 → netket-3.22.2}/netket/_src/driver/abstract_optimization_driver.py +0 -0
  24. {netket-3.22.1 → netket-3.22.2}/netket/_src/driver/abstract_variational_driver.py +0 -0
  25. {netket-3.22.1 → netket-3.22.2}/netket/_src/driver/abstract_variational_driver_old.py +0 -0
  26. {netket-3.22.1 → netket-3.22.2}/netket/_src/driver/infidelity_sr.py +0 -0
  27. {netket-3.22.1 → netket-3.22.2}/netket/_src/driver/vmc_sr.py +0 -0
  28. {netket-3.22.1 → netket-3.22.2}/netket/_src/logging/base.py +0 -0
  29. {netket-3.22.1 → netket-3.22.2}/netket/_src/logging/hdf5_log.py +0 -0
  30. {netket-3.22.1 → netket-3.22.2}/netket/_src/logging/json_log.py +0 -0
  31. {netket-3.22.1 → netket-3.22.2}/netket/_src/logging/mlflow_log.py +0 -0
  32. {netket-3.22.1 → netket-3.22.2}/netket/_src/logging/runtime_log.py +0 -0
  33. {netket-3.22.1 → netket-3.22.2}/netket/_src/logging/state_log.py +0 -0
  34. {netket-3.22.1 → netket-3.22.2}/netket/_src/logging/tensorboard.py +0 -0
  35. {netket-3.22.1 → netket-3.22.2}/netket/_src/ngd/kwargs.py +0 -0
  36. {netket-3.22.1 → netket-3.22.2}/netket/_src/ngd/sr.py +0 -0
  37. {netket-3.22.1 → netket-3.22.2}/netket/_src/ngd/sr_srt_common.py +0 -0
  38. {netket-3.22.1 → netket-3.22.2}/netket/_src/ngd/srt.py +0 -0
  39. {netket-3.22.1 → netket-3.22.2}/netket/_src/ngd/srt_onthefly.py +0 -0
  40. {netket-3.22.1 → netket-3.22.2}/netket/_src/nn/apply_operator/functional.py +0 -0
  41. {netket-3.22.1 → netket-3.22.2}/netket/_src/nn/apply_operator/linen.py +0 -0
  42. {netket-3.22.1 → netket-3.22.2}/netket/_src/nn/apply_operator/nnx.py +0 -0
  43. {netket-3.22.1 → netket-3.22.2}/netket/_src/nn/freeze/api.py +0 -0
  44. {netket-3.22.1 → netket-3.22.2}/netket/_src/nn/freeze/common.py +0 -0
  45. {netket-3.22.1 → netket-3.22.2}/netket/_src/nn/freeze/functional.py +0 -0
  46. {netket-3.22.1 → netket-3.22.2}/netket/_src/nn/freeze/linen.py +0 -0
  47. {netket-3.22.1 → netket-3.22.2}/netket/_src/nn/freeze/nnx.py +0 -0
  48. {netket-3.22.1 → netket-3.22.2}/netket/_src/observable/correlator/__init__.py +0 -0
  49. {netket-3.22.1 → netket-3.22.2}/netket/_src/observable/correlator/correlator.py +0 -0
  50. {netket-3.22.1 → netket-3.22.2}/netket/_src/observable/correlator/expect.py +0 -0
  51. {netket-3.22.1 → netket-3.22.2}/netket/_src/observable/infidelity/__init__.py +0 -0
  52. {netket-3.22.1 → netket-3.22.2}/netket/_src/observable/infidelity/exact.py +0 -0
  53. {netket-3.22.1 → netket-3.22.2}/netket/_src/observable/infidelity/expect.py +0 -0
  54. {netket-3.22.1 → netket-3.22.2}/netket/_src/observable/infidelity/infidelity_operator.py +0 -0
  55. {netket-3.22.1 → netket-3.22.2}/netket/_src/observable/renyi2/S2_operator.py +0 -0
  56. {netket-3.22.1 → netket-3.22.2}/netket/_src/observable/renyi2/__init__.py +0 -0
  57. {netket-3.22.1 → netket-3.22.2}/netket/_src/observable/renyi2/exact.py +0 -0
  58. {netket-3.22.1 → netket-3.22.2}/netket/_src/observable/renyi2/expect.py +0 -0
  59. {netket-3.22.1 → netket-3.22.2}/netket/_src/observable/variance/__init__.py +0 -0
  60. {netket-3.22.1 → netket-3.22.2}/netket/_src/observable/variance/exact.py +0 -0
  61. {netket-3.22.1 → netket-3.22.2}/netket/_src/observable/variance/expect.py +0 -0
  62. {netket-3.22.1 → netket-3.22.2}/netket/_src/observable/variance/variance_operator.py +0 -0
  63. {netket-3.22.1 → netket-3.22.2}/netket/_src/operator/normal_order_utils.py +0 -0
  64. {netket-3.22.1 → netket-3.22.2}/netket/_src/operator/particle_number_conserving_fermionic/conversion.py +0 -0
  65. {netket-3.22.1 → netket-3.22.2}/netket/_src/operator/particle_number_conserving_fermionic/fermihubbard.py +0 -0
  66. {netket-3.22.1 → netket-3.22.2}/netket/_src/operator/particle_number_conserving_fermionic/kernels.py +0 -0
  67. {netket-3.22.1 → netket-3.22.2}/netket/_src/operator/particle_number_conserving_fermionic/operator_data.py +0 -0
  68. {netket-3.22.1 → netket-3.22.2}/netket/_src/operator/particle_number_conserving_fermionic/operators.py +0 -0
  69. {netket-3.22.1 → netket-3.22.2}/netket/_src/operator/permutation/base.py +0 -0
  70. {netket-3.22.1 → netket-3.22.2}/netket/_src/operator/permutation/construct.py +0 -0
  71. {netket-3.22.1 → netket-3.22.2}/netket/_src/operator/permutation/fermion.py +0 -0
  72. {netket-3.22.1 → netket-3.22.2}/netket/_src/operator/permutation/spin.py +0 -0
  73. {netket-3.22.1 → netket-3.22.2}/netket/_src/operator/permutation/trace_utils.py +0 -0
  74. {netket-3.22.1 → netket-3.22.2}/netket/_src/operator/pyscf_api.py +0 -0
  75. {netket-3.22.1 → netket-3.22.2}/netket/_src/operator/pyscf_utils.py +0 -0
  76. {netket-3.22.1 → netket-3.22.2}/netket/_src/operator/spin_flip.py +0 -0
  77. {netket-3.22.1 → netket-3.22.2}/netket/_src/solvers/nan_fallback.py +0 -0
  78. {netket-3.22.1 → netket-3.22.2}/netket/_src/stats/local_estimators.py +0 -0
  79. {netket-3.22.1 → netket-3.22.2}/netket/_src/stats/online_stats/__init__.py +0 -0
  80. {netket-3.22.1 → netket-3.22.2}/netket/_src/stats/online_stats/accumulator.py +0 -0
  81. {netket-3.22.1 → netket-3.22.2}/netket/_src/stats/online_stats/accumulator_batch.py +0 -0
  82. {netket-3.22.1 → netket-3.22.2}/netket/_src/stats/online_stats/kernels.py +0 -0
  83. {netket-3.22.1 → netket-3.22.2}/netket/_src/stats/online_stats/operations.py +0 -0
  84. {netket-3.22.1 → netket-3.22.2}/netket/_src/symmetry/canonical_representation.py +0 -0
  85. {netket-3.22.1 → netket-3.22.2}/netket/_src/symmetry/labeled_representation.py +0 -0
  86. {netket-3.22.1 → netket-3.22.2}/netket/_src/symmetry/labeled_representation_coset_filter.py +0 -0
  87. {netket-3.22.1 → netket-3.22.2}/netket/_src/symmetry/representation.py +0 -0
  88. {netket-3.22.1 → netket-3.22.2}/netket/_src/symmetry/representation_construction.py +0 -0
  89. {netket-3.22.1 → netket-3.22.2}/netket/_src/symmetry/spin_flip_representation.py +0 -0
  90. {netket-3.22.1 → netket-3.22.2}/netket/_src/symmetry/translation_coset_filter.py +0 -0
  91. {netket-3.22.1 → netket-3.22.2}/netket/_src/symmetry/translation_representation.py +0 -0
  92. {netket-3.22.1 → netket-3.22.2}/netket/_src/vqs/check_mc_convergence.py +0 -0
  93. {netket-3.22.1 → netket-3.22.2}/netket/_src/vqs/expect_to_precision.py +0 -0
  94. {netket-3.22.1 → netket-3.22.2}/netket/_src/vqs/fermion_mf/__init__.py +0 -0
  95. {netket-3.22.1 → netket-3.22.2}/netket/_src/vqs/fermion_mf/expectation.py +0 -0
  96. {netket-3.22.1 → netket-3.22.2}/netket/_src/vqs/fermion_mf/qgt.py +0 -0
  97. {netket-3.22.1 → netket-3.22.2}/netket/_src/vqs/fermion_mf/state.py +0 -0
  98. {netket-3.22.1 → netket-3.22.2}/netket/_src/vqs/freeze_vstate.py +0 -0
  99. {netket-3.22.1 → netket-3.22.2}/netket/_src/vqs/plot_mc_convergence.py +0 -0
  100. {netket-3.22.1 → netket-3.22.2}/netket/_src/vqs/transformed_vstate.py +0 -0
  101. {netket-3.22.1 → netket-3.22.2}/netket/callbacks.py +0 -0
  102. {netket-3.22.1 → netket-3.22.2}/netket/driver/__init__.py +0 -0
  103. {netket-3.22.1 → netket-3.22.2}/netket/driver/steady_state.py +0 -0
  104. {netket-3.22.1 → netket-3.22.2}/netket/driver/vmc.py +0 -0
  105. {netket-3.22.1 → netket-3.22.2}/netket/errors.py +0 -0
  106. {netket-3.22.1 → netket-3.22.2}/netket/exact.py +0 -0
  107. {netket-3.22.1 → netket-3.22.2}/netket/experimental/__init__.py +0 -0
  108. {netket-3.22.1 → netket-3.22.2}/netket/experimental/driver/__init__.py +0 -0
  109. {netket-3.22.1 → netket-3.22.2}/netket/experimental/driver/tdvp.py +0 -0
  110. {netket-3.22.1 → netket-3.22.2}/netket/experimental/driver/tdvp_common.py +0 -0
  111. {netket-3.22.1 → netket-3.22.2}/netket/experimental/driver/tdvp_schmitt.py +0 -0
  112. {netket-3.22.1 → netket-3.22.2}/netket/experimental/dynamics/__init__.py +0 -0
  113. {netket-3.22.1 → netket-3.22.2}/netket/experimental/dynamics/_integrator.py +0 -0
  114. {netket-3.22.1 → netket-3.22.2}/netket/experimental/dynamics/_integrator_params.py +0 -0
  115. {netket-3.22.1 → netket-3.22.2}/netket/experimental/dynamics/_integrator_state.py +0 -0
  116. {netket-3.22.1 → netket-3.22.2}/netket/experimental/dynamics/_rk/__init__.py +0 -0
  117. {netket-3.22.1 → netket-3.22.2}/netket/experimental/dynamics/_rk/_solver.py +0 -0
  118. {netket-3.22.1 → netket-3.22.2}/netket/experimental/dynamics/_rk/_tableau.py +0 -0
  119. {netket-3.22.1 → netket-3.22.2}/netket/experimental/dynamics/_solver.py +0 -0
  120. {netket-3.22.1 → netket-3.22.2}/netket/experimental/dynamics/_utils.py +0 -0
  121. {netket-3.22.1 → netket-3.22.2}/netket/experimental/geometry/__init__.py +0 -0
  122. {netket-3.22.1 → netket-3.22.2}/netket/experimental/geometry/cell.py +0 -0
  123. {netket-3.22.1 → netket-3.22.2}/netket/experimental/hilbert/__init__.py +0 -0
  124. {netket-3.22.1 → netket-3.22.2}/netket/experimental/hilbert/continuous_hilbert.py +0 -0
  125. {netket-3.22.1 → netket-3.22.2}/netket/experimental/hilbert/particle.py +0 -0
  126. {netket-3.22.1 → netket-3.22.2}/netket/experimental/hilbert/random/__init__.py +0 -0
  127. {netket-3.22.1 → netket-3.22.2}/netket/experimental/hilbert/random/particle.py +0 -0
  128. {netket-3.22.1 → netket-3.22.2}/netket/experimental/logging/__init__.py +0 -0
  129. {netket-3.22.1 → netket-3.22.2}/netket/experimental/models/__init__.py +0 -0
  130. {netket-3.22.1 → netket-3.22.2}/netket/experimental/models/fast_rnn.py +0 -0
  131. {netket-3.22.1 → netket-3.22.2}/netket/experimental/models/rnn.py +0 -0
  132. {netket-3.22.1 → netket-3.22.2}/netket/experimental/nn/__init__.py +0 -0
  133. {netket-3.22.1 → netket-3.22.2}/netket/experimental/nn/rnn/__init__.py +0 -0
  134. {netket-3.22.1 → netket-3.22.2}/netket/experimental/nn/rnn/cells.py +0 -0
  135. {netket-3.22.1 → netket-3.22.2}/netket/experimental/nn/rnn/layers.py +0 -0
  136. {netket-3.22.1 → netket-3.22.2}/netket/experimental/nn/rnn/layers_fast.py +0 -0
  137. {netket-3.22.1 → netket-3.22.2}/netket/experimental/nn/rnn/ordering.py +0 -0
  138. {netket-3.22.1 → netket-3.22.2}/netket/experimental/observable/__init__.py +0 -0
  139. {netket-3.22.1 → netket-3.22.2}/netket/experimental/operator/__init__.py +0 -0
  140. {netket-3.22.1 → netket-3.22.2}/netket/experimental/operator/pyscf.py +0 -0
  141. {netket-3.22.1 → netket-3.22.2}/netket/experimental/qsr/__init__.py +0 -0
  142. {netket-3.22.1 → netket-3.22.2}/netket/experimental/qsr/dataset.py +0 -0
  143. {netket-3.22.1 → netket-3.22.2}/netket/experimental/qsr/driver.py +0 -0
  144. {netket-3.22.1 → netket-3.22.2}/netket/experimental/qsr/logic_helpers.py +0 -0
  145. {netket-3.22.1 → netket-3.22.2}/netket/experimental/vqs/__init__.py +0 -0
  146. {netket-3.22.1 → netket-3.22.2}/netket/experimental/vqs/io.py +0 -0
  147. {netket-3.22.1 → netket-3.22.2}/netket/graph/__init__.py +0 -0
  148. {netket-3.22.1 → netket-3.22.2}/netket/graph/_lattice_draw.py +0 -0
  149. {netket-3.22.1 → netket-3.22.2}/netket/graph/_lattice_edge_logic.py +0 -0
  150. {netket-3.22.1 → netket-3.22.2}/netket/graph/abstract_graph.py +0 -0
  151. {netket-3.22.1 → netket-3.22.2}/netket/graph/common_lattices.py +0 -0
  152. {netket-3.22.1 → netket-3.22.2}/netket/graph/graph.py +0 -0
  153. {netket-3.22.1 → netket-3.22.2}/netket/graph/lattice.py +0 -0
  154. {netket-3.22.1 → netket-3.22.2}/netket/graph/space_group.py +0 -0
  155. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/__init__.py +0 -0
  156. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/abstract_hilbert.py +0 -0
  157. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/constraint/__init__.py +0 -0
  158. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/constraint/base.py +0 -0
  159. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/constraint/multiple.py +0 -0
  160. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/constraint/sum.py +0 -0
  161. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/constraint/sum_partition.py +0 -0
  162. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/discrete_hilbert.py +0 -0
  163. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/doubled_hilbert.py +0 -0
  164. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/fock.py +0 -0
  165. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/homogeneous.py +0 -0
  166. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/index/__init__.py +0 -0
  167. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/index/base.py +0 -0
  168. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/index/constrained_generic.py +0 -0
  169. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/index/constrained_sum.py +0 -0
  170. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/index/constrained_sum_partitions.py +0 -0
  171. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/index/unconstrained.py +0 -0
  172. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/index/uniform_tensor.py +0 -0
  173. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/qubit.py +0 -0
  174. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/random/__init__.py +0 -0
  175. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/random/base.py +0 -0
  176. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/random/doubled.py +0 -0
  177. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/random/fock.py +0 -0
  178. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/random/homogeneous.py +0 -0
  179. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/random/qubit.py +0 -0
  180. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/random/tensor_hilbert.py +0 -0
  181. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/spin.py +0 -0
  182. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/spin_orbital_fermions.py +0 -0
  183. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/tensor_hilbert.py +0 -0
  184. {netket-3.22.1 → netket-3.22.2}/netket/hilbert/tensor_hilbert_discrete.py +0 -0
  185. {netket-3.22.1 → netket-3.22.2}/netket/jax/__init__.py +0 -0
  186. {netket-3.22.1 → netket-3.22.2}/netket/jax/_chunk_utils.py +0 -0
  187. {netket-3.22.1 → netket-3.22.2}/netket/jax/_compat.py +0 -0
  188. {netket-3.22.1 → netket-3.22.2}/netket/jax/_expect.py +0 -0
  189. {netket-3.22.1 → netket-3.22.2}/netket/jax/_grad.py +0 -0
  190. {netket-3.22.1 → netket-3.22.2}/netket/jax/_jacobian/__init__.py +0 -0
  191. {netket-3.22.1 → netket-3.22.2}/netket/jax/_jacobian/default_mode.py +0 -0
  192. {netket-3.22.1 → netket-3.22.2}/netket/jax/_jacobian/jacobian_dense.py +0 -0
  193. {netket-3.22.1 → netket-3.22.2}/netket/jax/_jacobian/jacobian_pytree.py +0 -0
  194. {netket-3.22.1 → netket-3.22.2}/netket/jax/_jacobian/logic.py +0 -0
  195. {netket-3.22.1 → netket-3.22.2}/netket/jax/_math.py +0 -0
  196. {netket-3.22.1 → netket-3.22.2}/netket/jax/_ntk/__init__.py +0 -0
  197. {netket-3.22.1 → netket-3.22.2}/netket/jax/_ntk/logic.py +0 -0
  198. {netket-3.22.1 → netket-3.22.2}/netket/jax/_ntk/utils.py +0 -0
  199. {netket-3.22.1 → netket-3.22.2}/netket/jax/_scanmap.py +0 -0
  200. {netket-3.22.1 → netket-3.22.2}/netket/jax/_sort.py +0 -0
  201. {netket-3.22.1 → netket-3.22.2}/netket/jax/_sparse.py +0 -0
  202. {netket-3.22.1 → netket-3.22.2}/netket/jax/_utils_dtype.py +0 -0
  203. {netket-3.22.1 → netket-3.22.2}/netket/jax/_utils_random.py +0 -0
  204. {netket-3.22.1 → netket-3.22.2}/netket/jax/_utils_tree.py +0 -0
  205. {netket-3.22.1 → netket-3.22.2}/netket/jax/_vjp.py +0 -0
  206. {netket-3.22.1 → netket-3.22.2}/netket/jax/_vjp_chunked.py +0 -0
  207. {netket-3.22.1 → netket-3.22.2}/netket/jax/_vmap_chunked.py +0 -0
  208. {netket-3.22.1 → netket-3.22.2}/netket/jax/lax.py +0 -0
  209. {netket-3.22.1 → netket-3.22.2}/netket/jax/sharding/__init__.py +0 -0
  210. {netket-3.22.1 → netket-3.22.2}/netket/jax/sharding/debug.py +0 -0
  211. {netket-3.22.1 → netket-3.22.2}/netket/jax/sharding/fixed_sharding_decorator.py +0 -0
  212. {netket-3.22.1 → netket-3.22.2}/netket/jax/sharding/fixed_sharding_utils.py +0 -0
  213. {netket-3.22.1 → netket-3.22.2}/netket/jax/sharding/flexible_sharding.py +0 -0
  214. {netket-3.22.1 → netket-3.22.2}/netket/logging.py +0 -0
  215. {netket-3.22.1 → netket-3.22.2}/netket/models/README.md +0 -0
  216. {netket-3.22.1 → netket-3.22.2}/netket/models/__init__.py +0 -0
  217. {netket-3.22.1 → netket-3.22.2}/netket/models/autoreg.py +0 -0
  218. {netket-3.22.1 → netket-3.22.2}/netket/models/deepset.py +0 -0
  219. {netket-3.22.1 → netket-3.22.2}/netket/models/equivariant.py +0 -0
  220. {netket-3.22.1 → netket-3.22.2}/netket/models/fast_autoreg.py +0 -0
  221. {netket-3.22.1 → netket-3.22.2}/netket/models/full_space.py +0 -0
  222. {netket-3.22.1 → netket-3.22.2}/netket/models/gaussian.py +0 -0
  223. {netket-3.22.1 → netket-3.22.2}/netket/models/jastrow.py +0 -0
  224. {netket-3.22.1 → netket-3.22.2}/netket/models/mlp.py +0 -0
  225. {netket-3.22.1 → netket-3.22.2}/netket/models/ndm.py +0 -0
  226. {netket-3.22.1 → netket-3.22.2}/netket/models/rbm.py +0 -0
  227. {netket-3.22.1 → netket-3.22.2}/netket/models/slater.py +0 -0
  228. {netket-3.22.1 → netket-3.22.2}/netket/models/tensor_networks/__init__.py +0 -0
  229. {netket-3.22.1 → netket-3.22.2}/netket/models/tensor_networks/mpdo.py +0 -0
  230. {netket-3.22.1 → netket-3.22.2}/netket/models/tensor_networks/mps.py +0 -0
  231. {netket-3.22.1 → netket-3.22.2}/netket/models/utils.py +0 -0
  232. {netket-3.22.1 → netket-3.22.2}/netket/nn/__init__.py +0 -0
  233. {netket-3.22.1 → netket-3.22.2}/netket/nn/activation.py +0 -0
  234. {netket-3.22.1 → netket-3.22.2}/netket/nn/apply_operator.py +0 -0
  235. {netket-3.22.1 → netket-3.22.2}/netket/nn/blocks/__init__.py +0 -0
  236. {netket-3.22.1 → netket-3.22.2}/netket/nn/blocks/deepset.py +0 -0
  237. {netket-3.22.1 → netket-3.22.2}/netket/nn/blocks/mlp.py +0 -0
  238. {netket-3.22.1 → netket-3.22.2}/netket/nn/blocks/symmetry_sum.py +0 -0
  239. {netket-3.22.1 → netket-3.22.2}/netket/nn/fast_masked_linear.py +0 -0
  240. {netket-3.22.1 → netket-3.22.2}/netket/nn/masked_linear.py +0 -0
  241. {netket-3.22.1 → netket-3.22.2}/netket/nn/symmetric_linear.py +0 -0
  242. {netket-3.22.1 → netket-3.22.2}/netket/nn/utils.py +0 -0
  243. {netket-3.22.1 → netket-3.22.2}/netket/observable.py +0 -0
  244. {netket-3.22.1 → netket-3.22.2}/netket/operator/__init__.py +0 -0
  245. {netket-3.22.1 → netket-3.22.2}/netket/operator/_abstract_observable.py +0 -0
  246. {netket-3.22.1 → netket-3.22.2}/netket/operator/_abstract_operator.py +0 -0
  247. {netket-3.22.1 → netket-3.22.2}/netket/operator/_abstract_super_operator.py +0 -0
  248. {netket-3.22.1 → netket-3.22.2}/netket/operator/_bose_hubbard/__init__.py +0 -0
  249. {netket-3.22.1 → netket-3.22.2}/netket/operator/_bose_hubbard/base.py +0 -0
  250. {netket-3.22.1 → netket-3.22.2}/netket/operator/_bose_hubbard/jax.py +0 -0
  251. {netket-3.22.1 → netket-3.22.2}/netket/operator/_bose_hubbard/numba.py +0 -0
  252. {netket-3.22.1 → netket-3.22.2}/netket/operator/_continuous_operator.py +0 -0
  253. {netket-3.22.1 → netket-3.22.2}/netket/operator/_discrete_operator.py +0 -0
  254. {netket-3.22.1 → netket-3.22.2}/netket/operator/_discrete_operator_jax.py +0 -0
  255. {netket-3.22.1 → netket-3.22.2}/netket/operator/_embed/__init__.py +0 -0
  256. {netket-3.22.1 → netket-3.22.2}/netket/operator/_embed/base.py +0 -0
  257. {netket-3.22.1 → netket-3.22.2}/netket/operator/_embed/discrete_jax_operator.py +0 -0
  258. {netket-3.22.1 → netket-3.22.2}/netket/operator/_embed/discrete_operator.py +0 -0
  259. {netket-3.22.1 → netket-3.22.2}/netket/operator/_embed/operator.py +0 -0
  260. {netket-3.22.1 → netket-3.22.2}/netket/operator/_fermion2nd/__init__.py +0 -0
  261. {netket-3.22.1 → netket-3.22.2}/netket/operator/_fermion2nd/base.py +0 -0
  262. {netket-3.22.1 → netket-3.22.2}/netket/operator/_fermion2nd/jax.py +0 -0
  263. {netket-3.22.1 → netket-3.22.2}/netket/operator/_fermion2nd/numba.py +0 -0
  264. {netket-3.22.1 → netket-3.22.2}/netket/operator/_fermion2nd/utils.py +0 -0
  265. {netket-3.22.1 → netket-3.22.2}/netket/operator/_graph_operator.py +0 -0
  266. {netket-3.22.1 → netket-3.22.2}/netket/operator/_hamiltonian.py +0 -0
  267. {netket-3.22.1 → netket-3.22.2}/netket/operator/_heisenberg.py +0 -0
  268. {netket-3.22.1 → netket-3.22.2}/netket/operator/_ising/__init__.py +0 -0
  269. {netket-3.22.1 → netket-3.22.2}/netket/operator/_ising/base.py +0 -0
  270. {netket-3.22.1 → netket-3.22.2}/netket/operator/_ising/jax.py +0 -0
  271. {netket-3.22.1 → netket-3.22.2}/netket/operator/_ising/numba.py +0 -0
  272. {netket-3.22.1 → netket-3.22.2}/netket/operator/_kinetic.py +0 -0
  273. {netket-3.22.1 → netket-3.22.2}/netket/operator/_lazy.py +0 -0
  274. {netket-3.22.1 → netket-3.22.2}/netket/operator/_local_liouvillian.py +0 -0
  275. {netket-3.22.1 → netket-3.22.2}/netket/operator/_local_operator/__init__.py +0 -0
  276. {netket-3.22.1 → netket-3.22.2}/netket/operator/_local_operator/base.py +0 -0
  277. {netket-3.22.1 → netket-3.22.2}/netket/operator/_local_operator/compile_helpers.py +0 -0
  278. {netket-3.22.1 → netket-3.22.2}/netket/operator/_local_operator/convert.py +0 -0
  279. {netket-3.22.1 → netket-3.22.2}/netket/operator/_local_operator/helpers.py +0 -0
  280. {netket-3.22.1 → netket-3.22.2}/netket/operator/_local_operator/jax.py +0 -0
  281. {netket-3.22.1 → netket-3.22.2}/netket/operator/_local_operator/numba.py +0 -0
  282. {netket-3.22.1 → netket-3.22.2}/netket/operator/_pauli_strings/__init__.py +0 -0
  283. {netket-3.22.1 → netket-3.22.2}/netket/operator/_pauli_strings/base.py +0 -0
  284. {netket-3.22.1 → netket-3.22.2}/netket/operator/_pauli_strings/jax.py +0 -0
  285. {netket-3.22.1 → netket-3.22.2}/netket/operator/_pauli_strings/numba.py +0 -0
  286. {netket-3.22.1 → netket-3.22.2}/netket/operator/_potential.py +0 -0
  287. {netket-3.22.1 → netket-3.22.2}/netket/operator/_prod/__init__.py +0 -0
  288. {netket-3.22.1 → netket-3.22.2}/netket/operator/_prod/base.py +0 -0
  289. {netket-3.22.1 → netket-3.22.2}/netket/operator/_prod/discrete_jax_operator.py +0 -0
  290. {netket-3.22.1 → netket-3.22.2}/netket/operator/_prod/discrete_operator.py +0 -0
  291. {netket-3.22.1 → netket-3.22.2}/netket/operator/_prod/operator.py +0 -0
  292. {netket-3.22.1 → netket-3.22.2}/netket/operator/_sum/__init__.py +0 -0
  293. {netket-3.22.1 → netket-3.22.2}/netket/operator/_sum/base.py +0 -0
  294. {netket-3.22.1 → netket-3.22.2}/netket/operator/_sum/continuous.py +0 -0
  295. {netket-3.22.1 → netket-3.22.2}/netket/operator/_sum/discrete_jax_operator.py +0 -0
  296. {netket-3.22.1 → netket-3.22.2}/netket/operator/_sum/discrete_operator.py +0 -0
  297. {netket-3.22.1 → netket-3.22.2}/netket/operator/_sum/operator.py +0 -0
  298. {netket-3.22.1 → netket-3.22.2}/netket/operator/boson.py +0 -0
  299. {netket-3.22.1 → netket-3.22.2}/netket/operator/fermion.py +0 -0
  300. {netket-3.22.1 → netket-3.22.2}/netket/operator/permutation.py +0 -0
  301. {netket-3.22.1 → netket-3.22.2}/netket/operator/spin.py +0 -0
  302. {netket-3.22.1 → netket-3.22.2}/netket/optimizer/__init__.py +0 -0
  303. {netket-3.22.1 → netket-3.22.2}/netket/optimizer/linear_operator.py +0 -0
  304. {netket-3.22.1 → netket-3.22.2}/netket/optimizer/preconditioner.py +0 -0
  305. {netket-3.22.1 → netket-3.22.2}/netket/optimizer/qgt/__init__.py +0 -0
  306. {netket-3.22.1 → netket-3.22.2}/netket/optimizer/qgt/common.py +0 -0
  307. {netket-3.22.1 → netket-3.22.2}/netket/optimizer/qgt/default.py +0 -0
  308. {netket-3.22.1 → netket-3.22.2}/netket/optimizer/qgt/qgt_jacobian.py +0 -0
  309. {netket-3.22.1 → netket-3.22.2}/netket/optimizer/qgt/qgt_jacobian_common.py +0 -0
  310. {netket-3.22.1 → netket-3.22.2}/netket/optimizer/qgt/qgt_jacobian_dense.py +0 -0
  311. {netket-3.22.1 → netket-3.22.2}/netket/optimizer/qgt/qgt_jacobian_pytree.py +0 -0
  312. {netket-3.22.1 → netket-3.22.2}/netket/optimizer/qgt/qgt_onthefly.py +0 -0
  313. {netket-3.22.1 → netket-3.22.2}/netket/optimizer/qgt/qgt_onthefly_logic.py +0 -0
  314. {netket-3.22.1 → netket-3.22.2}/netket/optimizer/solver/__init__.py +0 -0
  315. {netket-3.22.1 → netket-3.22.2}/netket/optimizer/solver/solvers.py +0 -0
  316. {netket-3.22.1 → netket-3.22.2}/netket/optimizer/sr.py +0 -0
  317. {netket-3.22.1 → netket-3.22.2}/netket/sampler/__init__.py +0 -0
  318. {netket-3.22.1 → netket-3.22.2}/netket/sampler/autoreg.py +0 -0
  319. {netket-3.22.1 → netket-3.22.2}/netket/sampler/base.py +0 -0
  320. {netket-3.22.1 → netket-3.22.2}/netket/sampler/exact.py +0 -0
  321. {netket-3.22.1 → netket-3.22.2}/netket/sampler/metropolis.py +0 -0
  322. {netket-3.22.1 → netket-3.22.2}/netket/sampler/metropolis_numpy.py +0 -0
  323. {netket-3.22.1 → netket-3.22.2}/netket/sampler/parallel_tempering.py +0 -0
  324. {netket-3.22.1 → netket-3.22.2}/netket/sampler/rules/__init__.py +0 -0
  325. {netket-3.22.1 → netket-3.22.2}/netket/sampler/rules/base.py +0 -0
  326. {netket-3.22.1 → netket-3.22.2}/netket/sampler/rules/continuous_gaussian.py +0 -0
  327. {netket-3.22.1 → netket-3.22.2}/netket/sampler/rules/custom_numpy.py +0 -0
  328. {netket-3.22.1 → netket-3.22.2}/netket/sampler/rules/exchange.py +0 -0
  329. {netket-3.22.1 → netket-3.22.2}/netket/sampler/rules/fermion_2nd.py +0 -0
  330. {netket-3.22.1 → netket-3.22.2}/netket/sampler/rules/fixed.py +0 -0
  331. {netket-3.22.1 → netket-3.22.2}/netket/sampler/rules/global_flip_rule.py +0 -0
  332. {netket-3.22.1 → netket-3.22.2}/netket/sampler/rules/hamiltonian.py +0 -0
  333. {netket-3.22.1 → netket-3.22.2}/netket/sampler/rules/hamiltonian_numpy.py +0 -0
  334. {netket-3.22.1 → netket-3.22.2}/netket/sampler/rules/langevin.py +0 -0
  335. {netket-3.22.1 → netket-3.22.2}/netket/sampler/rules/local.py +0 -0
  336. {netket-3.22.1 → netket-3.22.2}/netket/sampler/rules/local_numpy.py +0 -0
  337. {netket-3.22.1 → netket-3.22.2}/netket/sampler/rules/multiple.py +0 -0
  338. {netket-3.22.1 → netket-3.22.2}/netket/sampler/rules/tensor.py +0 -0
  339. {netket-3.22.1 → netket-3.22.2}/netket/stats/__init__.py +0 -0
  340. {netket-3.22.1 → netket-3.22.2}/netket/stats/_autocorr.py +0 -0
  341. {netket-3.22.1 → netket-3.22.2}/netket/stats/mc_stats.py +0 -0
  342. {netket-3.22.1 → netket-3.22.2}/netket/stats/mc_stats_old.py +0 -0
  343. {netket-3.22.1 → netket-3.22.2}/netket/stats/mpi_stats.py +0 -0
  344. {netket-3.22.1 → netket-3.22.2}/netket/symmetry/__init__.py +0 -0
  345. {netket-3.22.1 → netket-3.22.2}/netket/symmetry/group/__init__.py +0 -0
  346. {netket-3.22.1 → netket-3.22.2}/netket/tools/__init__.py +0 -0
  347. {netket-3.22.1 → netket-3.22.2}/netket/tools/_common.py +0 -0
  348. {netket-3.22.1 → netket-3.22.2}/netket/tools/_cpu_info.py +0 -0
  349. {netket-3.22.1 → netket-3.22.2}/netket/tools/check_mpi.py +0 -0
  350. {netket-3.22.1 → netket-3.22.2}/netket/tools/djaxrun.py +0 -0
  351. {netket-3.22.1 → netket-3.22.2}/netket/tools/info.py +0 -0
  352. {netket-3.22.1 → netket-3.22.2}/netket/utils/__init__.py +0 -0
  353. {netket-3.22.1 → netket-3.22.2}/netket/utils/_dependencies_check.py +0 -0
  354. {netket-3.22.1 → netket-3.22.2}/netket/utils/_serialization.py +0 -0
  355. {netket-3.22.1 → netket-3.22.2}/netket/utils/_tips.py +0 -0
  356. {netket-3.22.1 → netket-3.22.2}/netket/utils/api_utils.py +0 -0
  357. {netket-3.22.1 → netket-3.22.2}/netket/utils/array.py +0 -0
  358. {netket-3.22.1 → netket-3.22.2}/netket/utils/citations/__init__.py +0 -0
  359. {netket-3.22.1 → netket-3.22.2}/netket/utils/citations/cli.py +0 -0
  360. {netket-3.22.1 → netket-3.22.2}/netket/utils/citations/core.py +0 -0
  361. {netket-3.22.1 → netket-3.22.2}/netket/utils/citations/docs.py +0 -0
  362. {netket-3.22.1 → netket-3.22.2}/netket/utils/citations/internal_citations.bib +0 -0
  363. {netket-3.22.1 → netket-3.22.2}/netket/utils/config_flags.py +0 -0
  364. {netket-3.22.1 → netket-3.22.2}/netket/utils/deprecation.py +0 -0
  365. {netket-3.22.1 → netket-3.22.2}/netket/utils/dispatch.py +0 -0
  366. {netket-3.22.1 → netket-3.22.2}/netket/utils/display/__init__.py +0 -0
  367. {netket-3.22.1 → netket-3.22.2}/netket/utils/display/repr.py +0 -0
  368. {netket-3.22.1 → netket-3.22.2}/netket/utils/float.py +0 -0
  369. {netket-3.22.1 → netket-3.22.2}/netket/utils/group/__init__.py +0 -0
  370. {netket-3.22.1 → netket-3.22.2}/netket/utils/group/_group.py +0 -0
  371. {netket-3.22.1 → netket-3.22.2}/netket/utils/group/_permutation_group.py +0 -0
  372. {netket-3.22.1 → netket-3.22.2}/netket/utils/group/_point_group.py +0 -0
  373. {netket-3.22.1 → netket-3.22.2}/netket/utils/group/_semigroup.py +0 -0
  374. {netket-3.22.1 → netket-3.22.2}/netket/utils/group/axial.py +0 -0
  375. {netket-3.22.1 → netket-3.22.2}/netket/utils/group/cubic.py +0 -0
  376. {netket-3.22.1 → netket-3.22.2}/netket/utils/group/icosa.py +0 -0
  377. {netket-3.22.1 → netket-3.22.2}/netket/utils/group/planar.py +0 -0
  378. {netket-3.22.1 → netket-3.22.2}/netket/utils/history/__init__.py +0 -0
  379. {netket-3.22.1 → netket-3.22.2}/netket/utils/history/accum.py +0 -0
  380. {netket-3.22.1 → netket-3.22.2}/netket/utils/history/history.py +0 -0
  381. {netket-3.22.1 → netket-3.22.2}/netket/utils/history/history_dict.py +0 -0
  382. {netket-3.22.1 → netket-3.22.2}/netket/utils/holomorphic.py +0 -0
  383. {netket-3.22.1 → netket-3.22.2}/netket/utils/iterators.py +0 -0
  384. {netket-3.22.1 → netket-3.22.2}/netket/utils/jax.py +0 -0
  385. {netket-3.22.1 → netket-3.22.2}/netket/utils/model_frameworks/__init__.py +0 -0
  386. {netket-3.22.1 → netket-3.22.2}/netket/utils/model_frameworks/base.py +0 -0
  387. {netket-3.22.1 → netket-3.22.2}/netket/utils/model_frameworks/equinox.py +0 -0
  388. {netket-3.22.1 → netket-3.22.2}/netket/utils/model_frameworks/flax.py +0 -0
  389. {netket-3.22.1 → netket-3.22.2}/netket/utils/model_frameworks/flax_bound.py +0 -0
  390. {netket-3.22.1 → netket-3.22.2}/netket/utils/model_frameworks/haiku.py +0 -0
  391. {netket-3.22.1 → netket-3.22.2}/netket/utils/model_frameworks/jax.py +0 -0
  392. {netket-3.22.1 → netket-3.22.2}/netket/utils/model_frameworks/nnx.py +0 -0
  393. {netket-3.22.1 → netket-3.22.2}/netket/utils/model_frameworks/nnx_wrapped.py +0 -0
  394. {netket-3.22.1 → netket-3.22.2}/netket/utils/moduletools.py +0 -0
  395. {netket-3.22.1 → netket-3.22.2}/netket/utils/mpi/__init__.py +0 -0
  396. {netket-3.22.1 → netket-3.22.2}/netket/utils/mpi/mpi.py +0 -0
  397. {netket-3.22.1 → netket-3.22.2}/netket/utils/mpi/primitives.py +0 -0
  398. {netket-3.22.1 → netket-3.22.2}/netket/utils/numbers.py +0 -0
  399. {netket-3.22.1 → netket-3.22.2}/netket/utils/optional_deps.py +0 -0
  400. {netket-3.22.1 → netket-3.22.2}/netket/utils/partial.py +0 -0
  401. {netket-3.22.1 → netket-3.22.2}/netket/utils/seed.py +0 -0
  402. {netket-3.22.1 → netket-3.22.2}/netket/utils/static_number.py +0 -0
  403. {netket-3.22.1 → netket-3.22.2}/netket/utils/static_range.py +0 -0
  404. {netket-3.22.1 → netket-3.22.2}/netket/utils/struct/__init__.py +0 -0
  405. {netket-3.22.1 → netket-3.22.2}/netket/utils/struct/dataclass.py +0 -0
  406. {netket-3.22.1 → netket-3.22.2}/netket/utils/struct/fields.py +0 -0
  407. {netket-3.22.1 → netket-3.22.2}/netket/utils/struct/pytree.py +0 -0
  408. {netket-3.22.1 → netket-3.22.2}/netket/utils/struct/pytree_serialization_sharding.py +0 -0
  409. {netket-3.22.1 → netket-3.22.2}/netket/utils/struct/utils.py +0 -0
  410. {netket-3.22.1 → netket-3.22.2}/netket/utils/summation.py +0 -0
  411. {netket-3.22.1 → netket-3.22.2}/netket/utils/timing.py +0 -0
  412. {netket-3.22.1 → netket-3.22.2}/netket/utils/tree_walk.py +0 -0
  413. {netket-3.22.1 → netket-3.22.2}/netket/utils/types.py +0 -0
  414. {netket-3.22.1 → netket-3.22.2}/netket/utils/version_check.py +0 -0
  415. {netket-3.22.1 → netket-3.22.2}/netket/vqs/__init__.py +0 -0
  416. {netket-3.22.1 → netket-3.22.2}/netket/vqs/base.py +0 -0
  417. {netket-3.22.1 → netket-3.22.2}/netket/vqs/full_summ/__init__.py +0 -0
  418. {netket-3.22.1 → netket-3.22.2}/netket/vqs/full_summ/expect.py +0 -0
  419. {netket-3.22.1 → netket-3.22.2}/netket/vqs/full_summ/state.py +0 -0
  420. {netket-3.22.1 → netket-3.22.2}/netket/vqs/mc/__init__.py +0 -0
  421. {netket-3.22.1 → netket-3.22.2}/netket/vqs/mc/common.py +0 -0
  422. {netket-3.22.1 → netket-3.22.2}/netket/vqs/mc/kernels.py +0 -0
  423. {netket-3.22.1 → netket-3.22.2}/netket/vqs/mc/mc_mixed_state/__init__.py +0 -0
  424. {netket-3.22.1 → netket-3.22.2}/netket/vqs/mc/mc_mixed_state/expect.py +0 -0
  425. {netket-3.22.1 → netket-3.22.2}/netket/vqs/mc/mc_mixed_state/expect_chunked.py +0 -0
  426. {netket-3.22.1 → netket-3.22.2}/netket/vqs/mc/mc_mixed_state/expect_grad.py +0 -0
  427. {netket-3.22.1 → netket-3.22.2}/netket/vqs/mc/mc_mixed_state/state.py +0 -0
  428. {netket-3.22.1 → netket-3.22.2}/netket/vqs/mc/mc_state/__init__.py +0 -0
  429. {netket-3.22.1 → netket-3.22.2}/netket/vqs/mc/mc_state/expect.py +0 -0
  430. {netket-3.22.1 → netket-3.22.2}/netket/vqs/mc/mc_state/expect_chunked.py +0 -0
  431. {netket-3.22.1 → netket-3.22.2}/netket/vqs/mc/mc_state/expect_forces.py +0 -0
  432. {netket-3.22.1 → netket-3.22.2}/netket/vqs/mc/mc_state/expect_forces_chunked.py +0 -0
  433. {netket-3.22.1 → netket-3.22.2}/netket/vqs/mc/mc_state/expect_grad.py +0 -0
  434. {netket-3.22.1 → netket-3.22.2}/netket/vqs/mc/mc_state/expect_grad_chunked.py +0 -0
  435. {netket-3.22.1 → netket-3.22.2}/netket/vqs/mc/mc_state/local_estimators.py +0 -0
  436. {netket-3.22.1 → netket-3.22.2}/netket/vqs/mc/mc_state/state.py +0 -0
  437. {netket-3.22.1 → netket-3.22.2}/pyproject.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: NetKet
3
- Version: 3.22.1
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/#
@@ -20,6 +20,7 @@ import jax
20
20
  import jax.numpy as jnp
21
21
 
22
22
  from netket._src.stats.local_estimators import LocalEstimatorsBatch
23
+ from netket.jax import HashablePartial
23
24
  from netket.operator import AbstractOperator
24
25
  from netket.operator._abstract_observable import AbstractObservable
25
26
  from netket.stats import Stats
@@ -34,27 +35,61 @@ from netket.vqs import (
34
35
  from netket.vqs.mc.common import local_estimators
35
36
 
36
37
 
37
- def _vscore_combinator(trace_diagonal: float):
38
- def combinator(mu):
39
- return (mu[1] - mu[0] ** 2) / (mu[0] - trace_diagonal) ** 2
38
+ def _vscore_combinator(trace_diagonal: float, N: int, mu):
39
+ return N * (mu[1] - mu[0] ** 2) / (mu[0] - trace_diagonal) ** 2
40
40
 
41
- return combinator
41
+
42
+ def _vscore_n_dof(hilbert) -> int:
43
+ r"""Estimate the V-score normalisation :math:`N` (number of degrees of
44
+ freedom) for a given Hilbert space, following arXiv:2302.04919.
45
+
46
+ For spin, qubit and bosonic lattice models this is the number of sites/modes
47
+ (``hilbert.size``). For fermionic systems the V-score is normalised by the
48
+ total particle number, so we use ``SpinOrbitalFermions.n_fermions`` instead
49
+ of ``hilbert.size`` (which counts spin-orbitals).
50
+ """
51
+ from netket.hilbert import SpinOrbitalFermions
52
+
53
+ if isinstance(hilbert, SpinOrbitalFermions):
54
+ if hilbert.n_fermions is None:
55
+ raise ValueError(
56
+ "Cannot infer the V-score normalisation `N` for a "
57
+ "SpinOrbitalFermions space with unfixed particle number. "
58
+ "Pass `N=...` explicitly to VScore: the V-score is normalised by "
59
+ "the total particle number (see arXiv:2302.04919)."
60
+ )
61
+ return hilbert.n_fermions
62
+ return hilbert.size
42
63
 
43
64
 
44
65
  class VScore(AbstractObservable):
45
66
  r"""
46
- Observable computing the V-score of a quantum operator :math:`H`:
67
+ Observable computing the V-score of a quantum operator :math:`H`, as defined
68
+ in `Wu et al., arXiv:2302.04919 <https://arxiv.org/abs/2302.04919>`_:
47
69
 
48
70
  .. math::
49
71
 
50
72
  V_{\mathrm{score}} =
51
- \frac{\mathrm{Var}(H)}{(\langle H \rangle - \mathrm{trace\_diagonal})^2}
73
+ \frac{N\,\mathrm{Var}(H)}{(\langle H \rangle - E_\infty)^2}
52
74
  =
53
- \frac{\langle H^2 \rangle - \langle H \rangle^2}
54
- {(\langle H \rangle - \mathrm{trace\_diagonal})^2}.
75
+ \frac{N\,(\langle H^2 \rangle - \langle H \rangle^2)}
76
+ {(\langle H \rangle - E_\infty)^2}.
77
+
78
+ The ``trace_diagonal`` parameter is the infinite-temperature reference energy
79
+ :math:`E_\infty := \mathrm{Tr}(H) / \dim(\mathcal{H})` entering the denominator
80
+ (it is :math:`0` for traceless Hamiltonians, e.g. spin models built from Pauli
81
+ operators).
55
82
 
56
- The ``trace_diagonal`` parameter is a mandatory diagonal-energy shift used in
57
- the denominator.
83
+ The prefactor :math:`N` is the number of degrees of freedom. By default it is
84
+ inferred from the Hilbert space:
85
+
86
+ * for spin, qubit and bosonic lattice models, ``N = hilbert.size`` (number of
87
+ sites/modes);
88
+ * for fermionic systems (:class:`~netket.hilbert.SpinOrbitalFermions`),
89
+ ``N`` is the total particle number ``hilbert.n_fermions``.
90
+
91
+ For composite or exotic Hilbert spaces, or to use a different convention, pass
92
+ ``N`` explicitly.
58
93
  """
59
94
 
60
95
  def __init__(
@@ -62,6 +97,7 @@ class VScore(AbstractObservable):
62
97
  operator: AbstractOperator,
63
98
  *,
64
99
  trace_diagonal: float,
100
+ N: int | None = None,
65
101
  ):
66
102
  super().__init__(operator.hilbert)
67
103
 
@@ -72,6 +108,7 @@ class VScore(AbstractObservable):
72
108
  self._operator = operator
73
109
  self._operator_squared = operator @ operator
74
110
  self._trace_diagonal = float(trace_diagonal)
111
+ self._N = int(N) if N is not None else _vscore_n_dof(operator.hilbert)
75
112
 
76
113
  @property
77
114
  def operator(self) -> AbstractOperator:
@@ -85,8 +122,16 @@ class VScore(AbstractObservable):
85
122
  def trace_diagonal(self) -> float:
86
123
  return self._trace_diagonal
87
124
 
125
+ @property
126
+ def N(self) -> int:
127
+ """The number of degrees of freedom normalising the V-score."""
128
+ return self._N
129
+
88
130
  def __repr__(self):
89
- return f"VScore(op={self.operator}, trace_diagonal={self.trace_diagonal})"
131
+ return (
132
+ f"VScore(op={self.operator}, trace_diagonal={self.trace_diagonal}, "
133
+ f"N={self.N})"
134
+ )
90
135
 
91
136
 
92
137
  @local_estimators.dispatch
@@ -119,7 +164,9 @@ def vscore_local_estimators(
119
164
  data = jnp.stack([O_loc, O2_loc], axis=-1).reshape(n_chains, -1, 2)
120
165
  return LocalEstimatorsBatch(
121
166
  data=data,
122
- combinator=_vscore_combinator(vscore_op.trace_diagonal),
167
+ combinator=HashablePartial(
168
+ _vscore_combinator, vscore_op.trace_diagonal, vscore_op.N
169
+ ),
123
170
  )
124
171
 
125
172
 
@@ -144,6 +191,7 @@ def expect(vstate: FullSumState, vscore_op: VScore): # noqa: F811
144
191
  operator_mtrx,
145
192
  operator_squared_mtrx,
146
193
  vscore_op.trace_diagonal,
194
+ vscore_op.N,
147
195
  )
148
196
 
149
197
 
@@ -156,6 +204,7 @@ def _expect_vscore_fs(
156
204
  operator_mtrx,
157
205
  operator_squared_mtrx,
158
206
  trace_diagonal,
207
+ N,
159
208
  ):
160
209
  W = {"params": params, **model_state}
161
210
 
@@ -164,6 +213,6 @@ def _expect_vscore_fs(
164
213
 
165
214
  E_mean = (state.conj() @ (operator_mtrx @ state)).real
166
215
  E2_mean = (state.conj() @ (operator_squared_mtrx @ state)).real
167
- vscore = (E2_mean - E_mean**2) / (E_mean - trace_diagonal) ** 2
216
+ vscore = N * (E2_mean - E_mean**2) / (E_mean - trace_diagonal) ** 2
168
217
 
169
218
  return Stats(mean=vscore, error_of_mean=0.0, variance=0.0)
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '3.22.1'
22
- __version_tuple__ = version_tuple = (3, 22, 1)
21
+ __version__ = version = '3.22.2'
22
+ __version_tuple__ = version_tuple = (3, 22, 2)
23
23
 
24
24
  __commit_id__ = commit_id = None
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes