NetKet 3.19.0__tar.gz → 3.19.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 (352) hide show
  1. {netket-3.19.0 → netket-3.19.2}/PKG-INFO +1 -1
  2. {netket-3.19.0 → netket-3.19.2}/netket/_version.py +16 -3
  3. {netket-3.19.0 → netket-3.19.2}/netket/graph/graph.py +5 -2
  4. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/index/constrained_sum.py +2 -1
  5. {netket-3.19.0 → netket-3.19.2}/netket/optimizer/qgt/qgt_onthefly_logic.py +47 -31
  6. {netket-3.19.0 → netket-3.19.2}/netket/sampler/parallel_tempering.py +26 -6
  7. {netket-3.19.0 → netket-3.19.2}/netket/vqs/mc/mc_state/expect_forces_chunked.py +4 -3
  8. {netket-3.19.0 → netket-3.19.2}/.gitignore +0 -0
  9. {netket-3.19.0 → netket-3.19.2}/LICENSE +0 -0
  10. {netket-3.19.0 → netket-3.19.2}/README.md +0 -0
  11. {netket-3.19.0 → netket-3.19.2}/netket/__init__.py +0 -0
  12. {netket-3.19.0 → netket-3.19.2}/netket/_src/ngd/kwargs.py +0 -0
  13. {netket-3.19.0 → netket-3.19.2}/netket/_src/ngd/sr.py +0 -0
  14. {netket-3.19.0 → netket-3.19.2}/netket/_src/ngd/sr_srt_common.py +0 -0
  15. {netket-3.19.0 → netket-3.19.2}/netket/_src/ngd/srt.py +0 -0
  16. {netket-3.19.0 → netket-3.19.2}/netket/_src/ngd/srt_onthefly.py +0 -0
  17. {netket-3.19.0 → netket-3.19.2}/netket/_src/operator/hpsi_utils.py +0 -0
  18. {netket-3.19.0 → netket-3.19.2}/netket/callbacks/__init__.py +0 -0
  19. {netket-3.19.0 → netket-3.19.2}/netket/callbacks/convergence_stopping.py +0 -0
  20. {netket-3.19.0 → netket-3.19.2}/netket/callbacks/early_stopping.py +0 -0
  21. {netket-3.19.0 → netket-3.19.2}/netket/callbacks/invalid_loss_stopping.py +0 -0
  22. {netket-3.19.0 → netket-3.19.2}/netket/callbacks/timeout.py +0 -0
  23. {netket-3.19.0 → netket-3.19.2}/netket/driver/__init__.py +0 -0
  24. {netket-3.19.0 → netket-3.19.2}/netket/driver/abstract_variational_driver.py +0 -0
  25. {netket-3.19.0 → netket-3.19.2}/netket/driver/steady_state.py +0 -0
  26. {netket-3.19.0 → netket-3.19.2}/netket/driver/vmc.py +0 -0
  27. {netket-3.19.0 → netket-3.19.2}/netket/errors.py +0 -0
  28. {netket-3.19.0 → netket-3.19.2}/netket/exact.py +0 -0
  29. {netket-3.19.0 → netket-3.19.2}/netket/experimental/__init__.py +0 -0
  30. {netket-3.19.0 → netket-3.19.2}/netket/experimental/driver/__init__.py +0 -0
  31. {netket-3.19.0 → netket-3.19.2}/netket/experimental/driver/infidelity_sr.py +0 -0
  32. {netket-3.19.0 → netket-3.19.2}/netket/experimental/driver/tdvp.py +0 -0
  33. {netket-3.19.0 → netket-3.19.2}/netket/experimental/driver/tdvp_common.py +0 -0
  34. {netket-3.19.0 → netket-3.19.2}/netket/experimental/driver/tdvp_schmitt.py +0 -0
  35. {netket-3.19.0 → netket-3.19.2}/netket/experimental/driver/vmc_sr.py +0 -0
  36. {netket-3.19.0 → netket-3.19.2}/netket/experimental/dynamics/__init__.py +0 -0
  37. {netket-3.19.0 → netket-3.19.2}/netket/experimental/dynamics/_integrator.py +0 -0
  38. {netket-3.19.0 → netket-3.19.2}/netket/experimental/dynamics/_integrator_params.py +0 -0
  39. {netket-3.19.0 → netket-3.19.2}/netket/experimental/dynamics/_integrator_state.py +0 -0
  40. {netket-3.19.0 → netket-3.19.2}/netket/experimental/dynamics/_rk/__init__.py +0 -0
  41. {netket-3.19.0 → netket-3.19.2}/netket/experimental/dynamics/_rk/_solver.py +0 -0
  42. {netket-3.19.0 → netket-3.19.2}/netket/experimental/dynamics/_rk/_tableau.py +0 -0
  43. {netket-3.19.0 → netket-3.19.2}/netket/experimental/dynamics/_solver.py +0 -0
  44. {netket-3.19.0 → netket-3.19.2}/netket/experimental/dynamics/_utils.py +0 -0
  45. {netket-3.19.0 → netket-3.19.2}/netket/experimental/geometry/__init__.py +0 -0
  46. {netket-3.19.0 → netket-3.19.2}/netket/experimental/geometry/cell.py +0 -0
  47. {netket-3.19.0 → netket-3.19.2}/netket/experimental/hilbert/__init__.py +0 -0
  48. {netket-3.19.0 → netket-3.19.2}/netket/experimental/hilbert/continuous_hilbert.py +0 -0
  49. {netket-3.19.0 → netket-3.19.2}/netket/experimental/hilbert/particle.py +0 -0
  50. {netket-3.19.0 → netket-3.19.2}/netket/experimental/hilbert/random/__init__.py +0 -0
  51. {netket-3.19.0 → netket-3.19.2}/netket/experimental/hilbert/random/particle.py +0 -0
  52. {netket-3.19.0 → netket-3.19.2}/netket/experimental/logging/__init__.py +0 -0
  53. {netket-3.19.0 → netket-3.19.2}/netket/experimental/logging/hdf5_log.py +0 -0
  54. {netket-3.19.0 → netket-3.19.2}/netket/experimental/models/__init__.py +0 -0
  55. {netket-3.19.0 → netket-3.19.2}/netket/experimental/models/fast_rnn.py +0 -0
  56. {netket-3.19.0 → netket-3.19.2}/netket/experimental/models/rnn.py +0 -0
  57. {netket-3.19.0 → netket-3.19.2}/netket/experimental/nn/__init__.py +0 -0
  58. {netket-3.19.0 → netket-3.19.2}/netket/experimental/nn/rnn/__init__.py +0 -0
  59. {netket-3.19.0 → netket-3.19.2}/netket/experimental/nn/rnn/cells.py +0 -0
  60. {netket-3.19.0 → netket-3.19.2}/netket/experimental/nn/rnn/layers.py +0 -0
  61. {netket-3.19.0 → netket-3.19.2}/netket/experimental/nn/rnn/layers_fast.py +0 -0
  62. {netket-3.19.0 → netket-3.19.2}/netket/experimental/nn/rnn/ordering.py +0 -0
  63. {netket-3.19.0 → netket-3.19.2}/netket/experimental/observable/__init__.py +0 -0
  64. {netket-3.19.0 → netket-3.19.2}/netket/experimental/observable/infidelity/__init__.py +0 -0
  65. {netket-3.19.0 → netket-3.19.2}/netket/experimental/observable/infidelity/exact.py +0 -0
  66. {netket-3.19.0 → netket-3.19.2}/netket/experimental/observable/infidelity/expect.py +0 -0
  67. {netket-3.19.0 → netket-3.19.2}/netket/experimental/observable/infidelity/infidelity_operator.py +0 -0
  68. {netket-3.19.0 → netket-3.19.2}/netket/experimental/observable/renyi2/S2_operator.py +0 -0
  69. {netket-3.19.0 → netket-3.19.2}/netket/experimental/observable/renyi2/__init__.py +0 -0
  70. {netket-3.19.0 → netket-3.19.2}/netket/experimental/observable/renyi2/exact.py +0 -0
  71. {netket-3.19.0 → netket-3.19.2}/netket/experimental/observable/renyi2/expect.py +0 -0
  72. {netket-3.19.0 → netket-3.19.2}/netket/experimental/observable/variance/__init__.py +0 -0
  73. {netket-3.19.0 → netket-3.19.2}/netket/experimental/observable/variance/exact.py +0 -0
  74. {netket-3.19.0 → netket-3.19.2}/netket/experimental/observable/variance/expect.py +0 -0
  75. {netket-3.19.0 → netket-3.19.2}/netket/experimental/observable/variance/variance_operator.py +0 -0
  76. {netket-3.19.0 → netket-3.19.2}/netket/experimental/operator/__init__.py +0 -0
  77. {netket-3.19.0 → netket-3.19.2}/netket/experimental/operator/_normal_order_utils.py +0 -0
  78. {netket-3.19.0 → netket-3.19.2}/netket/experimental/operator/_particle_number_conserving_fermionic/__init__.py +0 -0
  79. {netket-3.19.0 → netket-3.19.2}/netket/experimental/operator/_particle_number_conserving_fermionic/_conversion.py +0 -0
  80. {netket-3.19.0 → netket-3.19.2}/netket/experimental/operator/_particle_number_conserving_fermionic/_fermihubbard.py +0 -0
  81. {netket-3.19.0 → netket-3.19.2}/netket/experimental/operator/_particle_number_conserving_fermionic/_kernels.py +0 -0
  82. {netket-3.19.0 → netket-3.19.2}/netket/experimental/operator/_particle_number_conserving_fermionic/_operator_data.py +0 -0
  83. {netket-3.19.0 → netket-3.19.2}/netket/experimental/operator/_particle_number_conserving_fermionic/_operators.py +0 -0
  84. {netket-3.19.0 → netket-3.19.2}/netket/experimental/operator/_pyscf_utils.py +0 -0
  85. {netket-3.19.0 → netket-3.19.2}/netket/experimental/operator/fermion.py +0 -0
  86. {netket-3.19.0 → netket-3.19.2}/netket/experimental/operator/pyscf.py +0 -0
  87. {netket-3.19.0 → netket-3.19.2}/netket/experimental/qsr/__init__.py +0 -0
  88. {netket-3.19.0 → netket-3.19.2}/netket/experimental/qsr/dataset.py +0 -0
  89. {netket-3.19.0 → netket-3.19.2}/netket/experimental/qsr/driver.py +0 -0
  90. {netket-3.19.0 → netket-3.19.2}/netket/experimental/qsr/logic_helpers.py +0 -0
  91. {netket-3.19.0 → netket-3.19.2}/netket/experimental/sampler/__init__.py +0 -0
  92. {netket-3.19.0 → netket-3.19.2}/netket/experimental/sampler/rules/__init__.py +0 -0
  93. {netket-3.19.0 → netket-3.19.2}/netket/experimental/vqs/__init__.py +0 -0
  94. {netket-3.19.0 → netket-3.19.2}/netket/experimental/vqs/io.py +0 -0
  95. {netket-3.19.0 → netket-3.19.2}/netket/graph/__init__.py +0 -0
  96. {netket-3.19.0 → netket-3.19.2}/netket/graph/_lattice_draw.py +0 -0
  97. {netket-3.19.0 → netket-3.19.2}/netket/graph/_lattice_edge_logic.py +0 -0
  98. {netket-3.19.0 → netket-3.19.2}/netket/graph/abstract_graph.py +0 -0
  99. {netket-3.19.0 → netket-3.19.2}/netket/graph/common_lattices.py +0 -0
  100. {netket-3.19.0 → netket-3.19.2}/netket/graph/lattice.py +0 -0
  101. {netket-3.19.0 → netket-3.19.2}/netket/graph/space_group.py +0 -0
  102. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/__init__.py +0 -0
  103. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/abstract_hilbert.py +0 -0
  104. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/constraint/__init__.py +0 -0
  105. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/constraint/base.py +0 -0
  106. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/constraint/multiple.py +0 -0
  107. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/constraint/sum.py +0 -0
  108. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/constraint/sum_partition.py +0 -0
  109. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/discrete_hilbert.py +0 -0
  110. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/doubled_hilbert.py +0 -0
  111. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/fock.py +0 -0
  112. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/homogeneous.py +0 -0
  113. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/index/__init__.py +0 -0
  114. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/index/base.py +0 -0
  115. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/index/constrained_generic.py +0 -0
  116. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/index/constrained_sum_partitions.py +0 -0
  117. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/index/unconstrained.py +0 -0
  118. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/index/uniform_tensor.py +0 -0
  119. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/qubit.py +0 -0
  120. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/random/__init__.py +0 -0
  121. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/random/base.py +0 -0
  122. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/random/doubled.py +0 -0
  123. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/random/fock.py +0 -0
  124. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/random/homogeneous.py +0 -0
  125. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/random/qubit.py +0 -0
  126. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/random/tensor_hilbert.py +0 -0
  127. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/spin.py +0 -0
  128. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/spin_orbital_fermions.py +0 -0
  129. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/tensor_hilbert.py +0 -0
  130. {netket-3.19.0 → netket-3.19.2}/netket/hilbert/tensor_hilbert_discrete.py +0 -0
  131. {netket-3.19.0 → netket-3.19.2}/netket/jax/__init__.py +0 -0
  132. {netket-3.19.0 → netket-3.19.2}/netket/jax/_chunk_utils.py +0 -0
  133. {netket-3.19.0 → netket-3.19.2}/netket/jax/_expect.py +0 -0
  134. {netket-3.19.0 → netket-3.19.2}/netket/jax/_grad.py +0 -0
  135. {netket-3.19.0 → netket-3.19.2}/netket/jax/_jacobian/__init__.py +0 -0
  136. {netket-3.19.0 → netket-3.19.2}/netket/jax/_jacobian/default_mode.py +0 -0
  137. {netket-3.19.0 → netket-3.19.2}/netket/jax/_jacobian/jacobian_dense.py +0 -0
  138. {netket-3.19.0 → netket-3.19.2}/netket/jax/_jacobian/jacobian_pytree.py +0 -0
  139. {netket-3.19.0 → netket-3.19.2}/netket/jax/_jacobian/logic.py +0 -0
  140. {netket-3.19.0 → netket-3.19.2}/netket/jax/_math.py +0 -0
  141. {netket-3.19.0 → netket-3.19.2}/netket/jax/_ntk/__init__.py +0 -0
  142. {netket-3.19.0 → netket-3.19.2}/netket/jax/_ntk/logic.py +0 -0
  143. {netket-3.19.0 → netket-3.19.2}/netket/jax/_ntk/utils.py +0 -0
  144. {netket-3.19.0 → netket-3.19.2}/netket/jax/_scanmap.py +0 -0
  145. {netket-3.19.0 → netket-3.19.2}/netket/jax/_sort.py +0 -0
  146. {netket-3.19.0 → netket-3.19.2}/netket/jax/_sparse.py +0 -0
  147. {netket-3.19.0 → netket-3.19.2}/netket/jax/_utils_dtype.py +0 -0
  148. {netket-3.19.0 → netket-3.19.2}/netket/jax/_utils_random.py +0 -0
  149. {netket-3.19.0 → netket-3.19.2}/netket/jax/_utils_tree.py +0 -0
  150. {netket-3.19.0 → netket-3.19.2}/netket/jax/_vjp.py +0 -0
  151. {netket-3.19.0 → netket-3.19.2}/netket/jax/_vjp_chunked.py +0 -0
  152. {netket-3.19.0 → netket-3.19.2}/netket/jax/_vmap_chunked.py +0 -0
  153. {netket-3.19.0 → netket-3.19.2}/netket/jax/sharding.py +0 -0
  154. {netket-3.19.0 → netket-3.19.2}/netket/logging/__init__.py +0 -0
  155. {netket-3.19.0 → netket-3.19.2}/netket/logging/base.py +0 -0
  156. {netket-3.19.0 → netket-3.19.2}/netket/logging/json_log.py +0 -0
  157. {netket-3.19.0 → netket-3.19.2}/netket/logging/runtime_log.py +0 -0
  158. {netket-3.19.0 → netket-3.19.2}/netket/logging/state_log.py +0 -0
  159. {netket-3.19.0 → netket-3.19.2}/netket/logging/tensorboard.py +0 -0
  160. {netket-3.19.0 → netket-3.19.2}/netket/models/README.md +0 -0
  161. {netket-3.19.0 → netket-3.19.2}/netket/models/__init__.py +0 -0
  162. {netket-3.19.0 → netket-3.19.2}/netket/models/autoreg.py +0 -0
  163. {netket-3.19.0 → netket-3.19.2}/netket/models/deepset.py +0 -0
  164. {netket-3.19.0 → netket-3.19.2}/netket/models/equivariant.py +0 -0
  165. {netket-3.19.0 → netket-3.19.2}/netket/models/fast_autoreg.py +0 -0
  166. {netket-3.19.0 → netket-3.19.2}/netket/models/full_space.py +0 -0
  167. {netket-3.19.0 → netket-3.19.2}/netket/models/gaussian.py +0 -0
  168. {netket-3.19.0 → netket-3.19.2}/netket/models/jastrow.py +0 -0
  169. {netket-3.19.0 → netket-3.19.2}/netket/models/mlp.py +0 -0
  170. {netket-3.19.0 → netket-3.19.2}/netket/models/ndm.py +0 -0
  171. {netket-3.19.0 → netket-3.19.2}/netket/models/rbm.py +0 -0
  172. {netket-3.19.0 → netket-3.19.2}/netket/models/slater.py +0 -0
  173. {netket-3.19.0 → netket-3.19.2}/netket/models/tensor_networks/__init__.py +0 -0
  174. {netket-3.19.0 → netket-3.19.2}/netket/models/tensor_networks/mpdo.py +0 -0
  175. {netket-3.19.0 → netket-3.19.2}/netket/models/tensor_networks/mps.py +0 -0
  176. {netket-3.19.0 → netket-3.19.2}/netket/models/utils.py +0 -0
  177. {netket-3.19.0 → netket-3.19.2}/netket/nn/__init__.py +0 -0
  178. {netket-3.19.0 → netket-3.19.2}/netket/nn/activation.py +0 -0
  179. {netket-3.19.0 → netket-3.19.2}/netket/nn/blocks/__init__.py +0 -0
  180. {netket-3.19.0 → netket-3.19.2}/netket/nn/blocks/deepset.py +0 -0
  181. {netket-3.19.0 → netket-3.19.2}/netket/nn/blocks/mlp.py +0 -0
  182. {netket-3.19.0 → netket-3.19.2}/netket/nn/blocks/symmetry_sum.py +0 -0
  183. {netket-3.19.0 → netket-3.19.2}/netket/nn/fast_masked_linear.py +0 -0
  184. {netket-3.19.0 → netket-3.19.2}/netket/nn/masked_linear.py +0 -0
  185. {netket-3.19.0 → netket-3.19.2}/netket/nn/symmetric_linear.py +0 -0
  186. {netket-3.19.0 → netket-3.19.2}/netket/nn/utils.py +0 -0
  187. {netket-3.19.0 → netket-3.19.2}/netket/operator/__init__.py +0 -0
  188. {netket-3.19.0 → netket-3.19.2}/netket/operator/_abstract_observable.py +0 -0
  189. {netket-3.19.0 → netket-3.19.2}/netket/operator/_abstract_operator.py +0 -0
  190. {netket-3.19.0 → netket-3.19.2}/netket/operator/_abstract_super_operator.py +0 -0
  191. {netket-3.19.0 → netket-3.19.2}/netket/operator/_bose_hubbard/__init__.py +0 -0
  192. {netket-3.19.0 → netket-3.19.2}/netket/operator/_bose_hubbard/base.py +0 -0
  193. {netket-3.19.0 → netket-3.19.2}/netket/operator/_bose_hubbard/jax.py +0 -0
  194. {netket-3.19.0 → netket-3.19.2}/netket/operator/_bose_hubbard/numba.py +0 -0
  195. {netket-3.19.0 → netket-3.19.2}/netket/operator/_continuous_operator.py +0 -0
  196. {netket-3.19.0 → netket-3.19.2}/netket/operator/_discrete_operator.py +0 -0
  197. {netket-3.19.0 → netket-3.19.2}/netket/operator/_discrete_operator_jax.py +0 -0
  198. {netket-3.19.0 → netket-3.19.2}/netket/operator/_fermion2nd/__init__.py +0 -0
  199. {netket-3.19.0 → netket-3.19.2}/netket/operator/_fermion2nd/base.py +0 -0
  200. {netket-3.19.0 → netket-3.19.2}/netket/operator/_fermion2nd/jax.py +0 -0
  201. {netket-3.19.0 → netket-3.19.2}/netket/operator/_fermion2nd/numba.py +0 -0
  202. {netket-3.19.0 → netket-3.19.2}/netket/operator/_fermion2nd/utils.py +0 -0
  203. {netket-3.19.0 → netket-3.19.2}/netket/operator/_graph_operator.py +0 -0
  204. {netket-3.19.0 → netket-3.19.2}/netket/operator/_hamiltonian.py +0 -0
  205. {netket-3.19.0 → netket-3.19.2}/netket/operator/_heisenberg.py +0 -0
  206. {netket-3.19.0 → netket-3.19.2}/netket/operator/_ising/__init__.py +0 -0
  207. {netket-3.19.0 → netket-3.19.2}/netket/operator/_ising/base.py +0 -0
  208. {netket-3.19.0 → netket-3.19.2}/netket/operator/_ising/jax.py +0 -0
  209. {netket-3.19.0 → netket-3.19.2}/netket/operator/_ising/numba.py +0 -0
  210. {netket-3.19.0 → netket-3.19.2}/netket/operator/_kinetic.py +0 -0
  211. {netket-3.19.0 → netket-3.19.2}/netket/operator/_lazy.py +0 -0
  212. {netket-3.19.0 → netket-3.19.2}/netket/operator/_local_liouvillian.py +0 -0
  213. {netket-3.19.0 → netket-3.19.2}/netket/operator/_local_operator/__init__.py +0 -0
  214. {netket-3.19.0 → netket-3.19.2}/netket/operator/_local_operator/base.py +0 -0
  215. {netket-3.19.0 → netket-3.19.2}/netket/operator/_local_operator/compile_helpers.py +0 -0
  216. {netket-3.19.0 → netket-3.19.2}/netket/operator/_local_operator/convert.py +0 -0
  217. {netket-3.19.0 → netket-3.19.2}/netket/operator/_local_operator/helpers.py +0 -0
  218. {netket-3.19.0 → netket-3.19.2}/netket/operator/_local_operator/jax.py +0 -0
  219. {netket-3.19.0 → netket-3.19.2}/netket/operator/_local_operator/numba.py +0 -0
  220. {netket-3.19.0 → netket-3.19.2}/netket/operator/_pauli_strings/__init__.py +0 -0
  221. {netket-3.19.0 → netket-3.19.2}/netket/operator/_pauli_strings/base.py +0 -0
  222. {netket-3.19.0 → netket-3.19.2}/netket/operator/_pauli_strings/jax.py +0 -0
  223. {netket-3.19.0 → netket-3.19.2}/netket/operator/_pauli_strings/numba.py +0 -0
  224. {netket-3.19.0 → netket-3.19.2}/netket/operator/_potential.py +0 -0
  225. {netket-3.19.0 → netket-3.19.2}/netket/operator/_sum/__init__.py +0 -0
  226. {netket-3.19.0 → netket-3.19.2}/netket/operator/_sum/base.py +0 -0
  227. {netket-3.19.0 → netket-3.19.2}/netket/operator/_sum/continuous.py +0 -0
  228. {netket-3.19.0 → netket-3.19.2}/netket/operator/_sum/discrete_jax_operator.py +0 -0
  229. {netket-3.19.0 → netket-3.19.2}/netket/operator/_sum/discrete_operator.py +0 -0
  230. {netket-3.19.0 → netket-3.19.2}/netket/operator/_sum/operator.py +0 -0
  231. {netket-3.19.0 → netket-3.19.2}/netket/operator/boson.py +0 -0
  232. {netket-3.19.0 → netket-3.19.2}/netket/operator/fermion.py +0 -0
  233. {netket-3.19.0 → netket-3.19.2}/netket/operator/spin.py +0 -0
  234. {netket-3.19.0 → netket-3.19.2}/netket/optimizer/__init__.py +0 -0
  235. {netket-3.19.0 → netket-3.19.2}/netket/optimizer/linear_operator.py +0 -0
  236. {netket-3.19.0 → netket-3.19.2}/netket/optimizer/preconditioner.py +0 -0
  237. {netket-3.19.0 → netket-3.19.2}/netket/optimizer/qgt/__init__.py +0 -0
  238. {netket-3.19.0 → netket-3.19.2}/netket/optimizer/qgt/common.py +0 -0
  239. {netket-3.19.0 → netket-3.19.2}/netket/optimizer/qgt/default.py +0 -0
  240. {netket-3.19.0 → netket-3.19.2}/netket/optimizer/qgt/qgt_jacobian.py +0 -0
  241. {netket-3.19.0 → netket-3.19.2}/netket/optimizer/qgt/qgt_jacobian_common.py +0 -0
  242. {netket-3.19.0 → netket-3.19.2}/netket/optimizer/qgt/qgt_jacobian_dense.py +0 -0
  243. {netket-3.19.0 → netket-3.19.2}/netket/optimizer/qgt/qgt_jacobian_pytree.py +0 -0
  244. {netket-3.19.0 → netket-3.19.2}/netket/optimizer/qgt/qgt_onthefly.py +0 -0
  245. {netket-3.19.0 → netket-3.19.2}/netket/optimizer/solver/__init__.py +0 -0
  246. {netket-3.19.0 → netket-3.19.2}/netket/optimizer/solver/solvers.py +0 -0
  247. {netket-3.19.0 → netket-3.19.2}/netket/optimizer/sr.py +0 -0
  248. {netket-3.19.0 → netket-3.19.2}/netket/sampler/__init__.py +0 -0
  249. {netket-3.19.0 → netket-3.19.2}/netket/sampler/autoreg.py +0 -0
  250. {netket-3.19.0 → netket-3.19.2}/netket/sampler/base.py +0 -0
  251. {netket-3.19.0 → netket-3.19.2}/netket/sampler/exact.py +0 -0
  252. {netket-3.19.0 → netket-3.19.2}/netket/sampler/metropolis.py +0 -0
  253. {netket-3.19.0 → netket-3.19.2}/netket/sampler/metropolis_numpy.py +0 -0
  254. {netket-3.19.0 → netket-3.19.2}/netket/sampler/rules/__init__.py +0 -0
  255. {netket-3.19.0 → netket-3.19.2}/netket/sampler/rules/base.py +0 -0
  256. {netket-3.19.0 → netket-3.19.2}/netket/sampler/rules/continuous_gaussian.py +0 -0
  257. {netket-3.19.0 → netket-3.19.2}/netket/sampler/rules/custom_numpy.py +0 -0
  258. {netket-3.19.0 → netket-3.19.2}/netket/sampler/rules/exchange.py +0 -0
  259. {netket-3.19.0 → netket-3.19.2}/netket/sampler/rules/fermion_2nd.py +0 -0
  260. {netket-3.19.0 → netket-3.19.2}/netket/sampler/rules/fixed.py +0 -0
  261. {netket-3.19.0 → netket-3.19.2}/netket/sampler/rules/hamiltonian.py +0 -0
  262. {netket-3.19.0 → netket-3.19.2}/netket/sampler/rules/hamiltonian_numpy.py +0 -0
  263. {netket-3.19.0 → netket-3.19.2}/netket/sampler/rules/langevin.py +0 -0
  264. {netket-3.19.0 → netket-3.19.2}/netket/sampler/rules/local.py +0 -0
  265. {netket-3.19.0 → netket-3.19.2}/netket/sampler/rules/local_numpy.py +0 -0
  266. {netket-3.19.0 → netket-3.19.2}/netket/sampler/rules/multiple.py +0 -0
  267. {netket-3.19.0 → netket-3.19.2}/netket/sampler/rules/tensor.py +0 -0
  268. {netket-3.19.0 → netket-3.19.2}/netket/stats/__init__.py +0 -0
  269. {netket-3.19.0 → netket-3.19.2}/netket/stats/_autocorr.py +0 -0
  270. {netket-3.19.0 → netket-3.19.2}/netket/stats/mc_stats.py +0 -0
  271. {netket-3.19.0 → netket-3.19.2}/netket/stats/mc_stats_old.py +0 -0
  272. {netket-3.19.0 → netket-3.19.2}/netket/stats/mpi_stats.py +0 -0
  273. {netket-3.19.0 → netket-3.19.2}/netket/tools/__init__.py +0 -0
  274. {netket-3.19.0 → netket-3.19.2}/netket/tools/_common.py +0 -0
  275. {netket-3.19.0 → netket-3.19.2}/netket/tools/_cpu_info.py +0 -0
  276. {netket-3.19.0 → netket-3.19.2}/netket/tools/check_mpi.py +0 -0
  277. {netket-3.19.0 → netket-3.19.2}/netket/tools/djaxrun.py +0 -0
  278. {netket-3.19.0 → netket-3.19.2}/netket/tools/info.py +0 -0
  279. {netket-3.19.0 → netket-3.19.2}/netket/utils/__init__.py +0 -0
  280. {netket-3.19.0 → netket-3.19.2}/netket/utils/_dependencies_check.py +0 -0
  281. {netket-3.19.0 → netket-3.19.2}/netket/utils/_serialization.py +0 -0
  282. {netket-3.19.0 → netket-3.19.2}/netket/utils/api_utils.py +0 -0
  283. {netket-3.19.0 → netket-3.19.2}/netket/utils/array.py +0 -0
  284. {netket-3.19.0 → netket-3.19.2}/netket/utils/config_flags.py +0 -0
  285. {netket-3.19.0 → netket-3.19.2}/netket/utils/deprecation.py +0 -0
  286. {netket-3.19.0 → netket-3.19.2}/netket/utils/dispatch.py +0 -0
  287. {netket-3.19.0 → netket-3.19.2}/netket/utils/display/__init__.py +0 -0
  288. {netket-3.19.0 → netket-3.19.2}/netket/utils/display/repr.py +0 -0
  289. {netket-3.19.0 → netket-3.19.2}/netket/utils/float.py +0 -0
  290. {netket-3.19.0 → netket-3.19.2}/netket/utils/group/__init__.py +0 -0
  291. {netket-3.19.0 → netket-3.19.2}/netket/utils/group/_group.py +0 -0
  292. {netket-3.19.0 → netket-3.19.2}/netket/utils/group/_permutation_group.py +0 -0
  293. {netket-3.19.0 → netket-3.19.2}/netket/utils/group/_point_group.py +0 -0
  294. {netket-3.19.0 → netket-3.19.2}/netket/utils/group/_semigroup.py +0 -0
  295. {netket-3.19.0 → netket-3.19.2}/netket/utils/group/axial.py +0 -0
  296. {netket-3.19.0 → netket-3.19.2}/netket/utils/group/cubic.py +0 -0
  297. {netket-3.19.0 → netket-3.19.2}/netket/utils/group/icosa.py +0 -0
  298. {netket-3.19.0 → netket-3.19.2}/netket/utils/group/planar.py +0 -0
  299. {netket-3.19.0 → netket-3.19.2}/netket/utils/history/__init__.py +0 -0
  300. {netket-3.19.0 → netket-3.19.2}/netket/utils/history/accum.py +0 -0
  301. {netket-3.19.0 → netket-3.19.2}/netket/utils/history/history.py +0 -0
  302. {netket-3.19.0 → netket-3.19.2}/netket/utils/history/history_dict.py +0 -0
  303. {netket-3.19.0 → netket-3.19.2}/netket/utils/holomorphic.py +0 -0
  304. {netket-3.19.0 → netket-3.19.2}/netket/utils/jax.py +0 -0
  305. {netket-3.19.0 → netket-3.19.2}/netket/utils/model_frameworks/__init__.py +0 -0
  306. {netket-3.19.0 → netket-3.19.2}/netket/utils/model_frameworks/base.py +0 -0
  307. {netket-3.19.0 → netket-3.19.2}/netket/utils/model_frameworks/equinox.py +0 -0
  308. {netket-3.19.0 → netket-3.19.2}/netket/utils/model_frameworks/flax.py +0 -0
  309. {netket-3.19.0 → netket-3.19.2}/netket/utils/model_frameworks/haiku.py +0 -0
  310. {netket-3.19.0 → netket-3.19.2}/netket/utils/model_frameworks/jax.py +0 -0
  311. {netket-3.19.0 → netket-3.19.2}/netket/utils/model_frameworks/nnx.py +0 -0
  312. {netket-3.19.0 → netket-3.19.2}/netket/utils/model_frameworks/nnx_wrapped.py +0 -0
  313. {netket-3.19.0 → netket-3.19.2}/netket/utils/moduletools.py +0 -0
  314. {netket-3.19.0 → netket-3.19.2}/netket/utils/mpi/__init__.py +0 -0
  315. {netket-3.19.0 → netket-3.19.2}/netket/utils/mpi/mpi.py +0 -0
  316. {netket-3.19.0 → netket-3.19.2}/netket/utils/mpi/primitives.py +0 -0
  317. {netket-3.19.0 → netket-3.19.2}/netket/utils/numbers.py +0 -0
  318. {netket-3.19.0 → netket-3.19.2}/netket/utils/optional_deps.py +0 -0
  319. {netket-3.19.0 → netket-3.19.2}/netket/utils/partial.py +0 -0
  320. {netket-3.19.0 → netket-3.19.2}/netket/utils/seed.py +0 -0
  321. {netket-3.19.0 → netket-3.19.2}/netket/utils/static_number.py +0 -0
  322. {netket-3.19.0 → netket-3.19.2}/netket/utils/static_range.py +0 -0
  323. {netket-3.19.0 → netket-3.19.2}/netket/utils/struct/__init__.py +0 -0
  324. {netket-3.19.0 → netket-3.19.2}/netket/utils/struct/dataclass.py +0 -0
  325. {netket-3.19.0 → netket-3.19.2}/netket/utils/struct/fields.py +0 -0
  326. {netket-3.19.0 → netket-3.19.2}/netket/utils/struct/pytree.py +0 -0
  327. {netket-3.19.0 → netket-3.19.2}/netket/utils/struct/pytree_serialization_sharding.py +0 -0
  328. {netket-3.19.0 → netket-3.19.2}/netket/utils/struct/utils.py +0 -0
  329. {netket-3.19.0 → netket-3.19.2}/netket/utils/summation.py +0 -0
  330. {netket-3.19.0 → netket-3.19.2}/netket/utils/timing.py +0 -0
  331. {netket-3.19.0 → netket-3.19.2}/netket/utils/types.py +0 -0
  332. {netket-3.19.0 → netket-3.19.2}/netket/utils/version_check.py +0 -0
  333. {netket-3.19.0 → netket-3.19.2}/netket/vqs/__init__.py +0 -0
  334. {netket-3.19.0 → netket-3.19.2}/netket/vqs/base.py +0 -0
  335. {netket-3.19.0 → netket-3.19.2}/netket/vqs/full_summ/__init__.py +0 -0
  336. {netket-3.19.0 → netket-3.19.2}/netket/vqs/full_summ/expect.py +0 -0
  337. {netket-3.19.0 → netket-3.19.2}/netket/vqs/full_summ/state.py +0 -0
  338. {netket-3.19.0 → netket-3.19.2}/netket/vqs/mc/__init__.py +0 -0
  339. {netket-3.19.0 → netket-3.19.2}/netket/vqs/mc/common.py +0 -0
  340. {netket-3.19.0 → netket-3.19.2}/netket/vqs/mc/kernels.py +0 -0
  341. {netket-3.19.0 → netket-3.19.2}/netket/vqs/mc/mc_mixed_state/__init__.py +0 -0
  342. {netket-3.19.0 → netket-3.19.2}/netket/vqs/mc/mc_mixed_state/expect.py +0 -0
  343. {netket-3.19.0 → netket-3.19.2}/netket/vqs/mc/mc_mixed_state/expect_chunked.py +0 -0
  344. {netket-3.19.0 → netket-3.19.2}/netket/vqs/mc/mc_mixed_state/state.py +0 -0
  345. {netket-3.19.0 → netket-3.19.2}/netket/vqs/mc/mc_state/__init__.py +0 -0
  346. {netket-3.19.0 → netket-3.19.2}/netket/vqs/mc/mc_state/expect.py +0 -0
  347. {netket-3.19.0 → netket-3.19.2}/netket/vqs/mc/mc_state/expect_chunked.py +0 -0
  348. {netket-3.19.0 → netket-3.19.2}/netket/vqs/mc/mc_state/expect_forces.py +0 -0
  349. {netket-3.19.0 → netket-3.19.2}/netket/vqs/mc/mc_state/expect_grad.py +0 -0
  350. {netket-3.19.0 → netket-3.19.2}/netket/vqs/mc/mc_state/expect_grad_chunked.py +0 -0
  351. {netket-3.19.0 → netket-3.19.2}/netket/vqs/mc/mc_state/state.py +0 -0
  352. {netket-3.19.0 → netket-3.19.2}/pyproject.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: NetKet
3
- Version: 3.19.0
3
+ Version: 3.19.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/#
@@ -1,7 +1,14 @@
1
1
  # file generated by setuptools-scm
2
2
  # don't change, don't track in version control
3
3
 
4
- __all__ = ["__version__", "__version_tuple__", "version", "version_tuple"]
4
+ __all__ = [
5
+ "__version__",
6
+ "__version_tuple__",
7
+ "version",
8
+ "version_tuple",
9
+ "__commit_id__",
10
+ "commit_id",
11
+ ]
5
12
 
6
13
  TYPE_CHECKING = False
7
14
  if TYPE_CHECKING:
@@ -9,13 +16,19 @@ if TYPE_CHECKING:
9
16
  from typing import Union
10
17
 
11
18
  VERSION_TUPLE = Tuple[Union[int, str], ...]
19
+ COMMIT_ID = Union[str, None]
12
20
  else:
13
21
  VERSION_TUPLE = object
22
+ COMMIT_ID = object
14
23
 
15
24
  version: str
16
25
  __version__: str
17
26
  __version_tuple__: VERSION_TUPLE
18
27
  version_tuple: VERSION_TUPLE
28
+ commit_id: COMMIT_ID
29
+ __commit_id__: COMMIT_ID
19
30
 
20
- __version__ = version = '3.19.0'
21
- __version_tuple__ = version_tuple = (3, 19, 0)
31
+ __version__ = version = '3.19.2'
32
+ __version_tuple__ = version_tuple = (3, 19, 2)
33
+
34
+ __commit_id__ = commit_id = None
@@ -181,7 +181,7 @@ class Graph(AbstractGraph):
181
181
 
182
182
  def _compute_automorphisms(self):
183
183
  """
184
- Compute the graph autmorphisms of this graph.
184
+ Compute the graph automorphisms of this graph.
185
185
  """
186
186
  colors = self.edge_colors
187
187
  result = self._igraph.get_isomorphisms_vf2(
@@ -190,7 +190,10 @@ class Graph(AbstractGraph):
190
190
 
191
191
  # sort them s.t. the identity comes first
192
192
  result = np.unique(result, axis=0).tolist()
193
- result = PermutationGroup([Permutation(i) for i in result], self.n_nodes)
193
+ result = PermutationGroup(
194
+ [Permutation(inverse_permutation_array=perm) for perm in result],
195
+ self.n_nodes,
196
+ )
194
197
  return result
195
198
 
196
199
  # TODO turn into a struct.property_cached?
@@ -78,7 +78,8 @@ class SumConstrainedHilbertIndex(HilbertIndex):
78
78
  @jax.jit
79
79
  def _compute_all_states(self):
80
80
  if self.n_particles == 0:
81
- return jnp.zeros((1, self.size), dtype=self.range.dtype)
81
+ all_states_fock = jnp.zeros((1, self.size), dtype=self.range.dtype)
82
+ return self.range.numbers_to_states(all_states_fock, dtype=self.range.dtype)
82
83
  with jax.ensure_compile_time_eval():
83
84
  c = jnp.repeat(
84
85
  jnp.eye(self.size, dtype=self.range.dtype),
@@ -90,77 +90,93 @@ def mat_vec_factory(forward_fn, params, model_state, samples, pdf=None):
90
90
  # Methods below are needed for the chunked version of QGTOnTheFly
91
91
 
92
92
 
93
- @partial(sharding_decorator, sharded_args_tree=(False, False, True, False, False))
94
- def _O_jvp(forward_fn, params, samples, v, chunk_size):
95
- @partial(scanmap, scan_fun=scan_append, argnums=2)
96
- def __O_jvp(forward_fn, params, samples, v):
93
+ @partial(
94
+ sharding_decorator, sharded_args_tree=(False, False, False, True, False, False)
95
+ )
96
+ def _O_jvp(forward_fn, params, model_state, samples, v, chunk_size):
97
+ @partial(scanmap, scan_fun=scan_append, argnums=3)
98
+ def __O_jvp(forward_fn, params, model_state, samples, v):
97
99
  # TODO apply the transpose of sum_inplace (allreduce) to the arg v here
98
100
  # in order to get correct transposition with JAX sharding
99
- _, res = jax.jvp(lambda p: forward_fn(p, samples), (params,), (v,))
101
+ _, res = jax.jvp(lambda p: forward_fn(p, model_state, samples), (params,), (v,))
100
102
  return res
101
103
 
102
104
  samples, unchunk_fn = chunk(samples, chunk_size)
103
- res = __O_jvp(forward_fn, params, samples, v)
105
+ res = __O_jvp(forward_fn, params, model_state, samples, v)
104
106
  return unchunk_fn(res)
105
107
 
106
108
 
107
109
  @partial(
108
110
  sharding_decorator,
109
- sharded_args_tree=(False, False, True, True, False),
111
+ sharded_args_tree=(False, False, False, True, True, False),
110
112
  reduction_op_tree=jax.lax.psum,
111
113
  )
112
- def _O_vjp(forward_fn, params, samples, w, chunk_size):
113
- @partial(scanmap, scan_fun=scan_reduce, argnums=(2, 3))
114
- def __O_vjp(forward_fn, params, samples, w):
115
- _, vjp_fun = jax.vjp(forward_fn, params, samples)
116
- res, _ = vjp_fun(w)
117
- return res
114
+ def _O_vjp(forward_fn, params, model_state, samples, w, chunk_size):
115
+ @partial(scanmap, scan_fun=scan_reduce, argnums=(3, 4))
116
+ def __O_vjp(forward_fn, params, model_state, samples, w):
117
+ _, vjp_fun = jax.vjp(forward_fn, params, model_state, samples)
118
+ vjp_pars, _, _ = vjp_fun(w)
119
+ return vjp_pars
118
120
 
119
121
  samples, _ = chunk(samples, chunk_size)
120
122
  w, _ = chunk(w, chunk_size)
121
- res = __O_vjp(forward_fn, params, samples, w)
123
+ res = __O_vjp(forward_fn, params, model_state, samples, w)
122
124
  return res
123
125
 
124
126
 
125
- def _OH_w(forward_fn, params, samples, w, chunk_size):
126
- return tree_conj(_O_vjp(forward_fn, params, samples, w.conjugate(), chunk_size))
127
+ def _OH_w(forward_fn, params, model_state, samples, w, chunk_size):
128
+ return tree_conj(
129
+ _O_vjp(forward_fn, params, model_state, samples, w.conjugate(), chunk_size)
130
+ )
127
131
 
128
132
 
129
- def _Odagger_DeltaO_v(forward_fn, params, samples, v, chunk_size, pdf=None):
130
- w = _O_jvp(forward_fn, params, samples, v, chunk_size)
133
+ def _Odagger_DeltaO_v(
134
+ forward_fn, params, model_state, samples, v, chunk_size, pdf=None
135
+ ):
136
+ w = _O_jvp(forward_fn, params, model_state, samples, v, chunk_size)
131
137
  if pdf is None:
132
138
  w = w * (1.0 / samples.shape[0])
133
139
  w = subtract_mean(w) # w/ JAX sharding
134
140
  else:
135
141
  w = pdf * (w - pdf @ w)
136
- res = _OH_w(forward_fn, params, samples, w, chunk_size)
142
+ res = _OH_w(forward_fn, params, model_state, samples, w, chunk_size)
137
143
  return res
138
144
 
139
145
 
140
- # @partial(jax.jit, static_argnums=1)
141
- def _mat_vec_chunked(forward_fn, params, samples, v, diag_shift, chunk_size, pdf=None):
146
+ def _mat_vec_chunked(
147
+ forward_fn, params, model_state, samples, v, diag_shift, chunk_size, pdf=None
148
+ ):
142
149
  assert samples.ndim == 2 # require flat samples, axis 0 can be sharded
143
- res = _Odagger_DeltaO_v(forward_fn, params, samples, v, chunk_size, pdf)
150
+ res = _Odagger_DeltaO_v(
151
+ forward_fn, params, model_state, samples, v, chunk_size, pdf
152
+ )
144
153
  return tree_axpy(diag_shift, v, res)
145
154
 
146
155
 
147
156
  def _mat_vec_chunked_transposable(
148
- forward_fn, params, samples, v, diag_shift, chunk_size, pdf=None
157
+ forward_fn, params, model_state, samples, v, diag_shift, chunk_size, pdf=None
149
158
  ):
150
- extra_args = (params, samples, diag_shift, pdf)
159
+ extra_args = (params, model_state, samples, diag_shift, pdf)
151
160
 
152
161
  def _mv(extra_args, x):
153
- params, samples, diag_shift, pdf = extra_args
162
+ params, model_state, samples, diag_shift, pdf = extra_args
154
163
  return _mat_vec_chunked(
155
- forward_fn, params, samples, x, diag_shift, chunk_size, pdf
164
+ forward_fn, params, model_state, samples, x, diag_shift, chunk_size, pdf
156
165
  )
157
166
 
158
167
  def _mv_trans(extra_args, y):
159
168
  # the linear operator is hermitian
160
- params, samples, diag_shift, pdf = extra_args
169
+ params, model_state, samples, diag_shift, pdf = extra_args
161
170
  return tree_conj(
162
171
  _mat_vec_chunked(
163
- forward_fn, params, samples, tree_conj(y), diag_shift, chunk_size, pdf
172
+ forward_fn,
173
+ params,
174
+ model_state,
175
+ samples,
176
+ tree_conj(y),
177
+ diag_shift,
178
+ chunk_size,
179
+ pdf,
164
180
  )
165
181
  )
166
182
 
@@ -198,13 +214,13 @@ def mat_vec_chunked_factory(
198
214
  lambda v,δ : (S + δ I) v
199
215
  """
200
216
 
201
- def fun(W, samples):
202
- return forward_fn({"params": W, **model_state}, samples)
217
+ def fun(W, ms, samples):
218
+ return forward_fn({"params": W, **ms}, samples)
203
219
 
204
220
  return Partial(
205
221
  partial(_mat_vec_chunked_transposable, fun, chunk_size=chunk_size),
206
222
  params,
223
+ model_state,
207
224
  samples,
208
225
  pdf=pdf,
209
226
  )
210
- # return Partial(lambda f, *args: jax.jit(f)(*args), Partial(partial(_mat_vec_chunked, fun), params, samples))
@@ -42,18 +42,38 @@ class ParallelTemperingSamplerState(MetropolisSamplerState):
42
42
  Contains the usual quantities, as well as statistics about the paralel tempering.
43
43
  """
44
44
 
45
- beta: jnp.ndarray = None
45
+ beta: jnp.ndarray = struct.field(
46
+ sharded=struct.ShardedFieldSpec(
47
+ sharded=True, deserialization_function="relaxed-ignore-errors"
48
+ )
49
+ )
46
50
  """The inverse temperatures of the different chains."""
47
51
 
48
- n_accepted_per_beta: jnp.ndarray = None
52
+ n_accepted_per_beta: jnp.ndarray = struct.field(
53
+ sharded=struct.ShardedFieldSpec(
54
+ sharded=True, deserialization_function="relaxed-ignore-errors"
55
+ )
56
+ )
49
57
  """Total number of moves accepted per beta across all JAX processes since the last reset."""
50
- beta_0_index: jnp.ndarray = None
58
+ beta_0_index: jnp.ndarray = struct.field(
59
+ sharded=struct.ShardedFieldSpec(
60
+ sharded=True, deserialization_function="relaxed-ignore-errors"
61
+ )
62
+ )
51
63
  r"""Index of the position of the chain with :math:`\\beta=1`."""
52
- beta_position: jnp.ndarray = None
64
+ beta_position: jnp.ndarray = struct.field(
65
+ sharded=struct.ShardedFieldSpec(
66
+ sharded=True, deserialization_function="relaxed-ignore-errors"
67
+ )
68
+ )
53
69
  r"""Averaged position of :math:`\\beta=1`."""
54
- beta_diffusion: jnp.ndarray = None
70
+ beta_diffusion: jnp.ndarray = struct.field(
71
+ sharded=struct.ShardedFieldSpec(
72
+ sharded=True, deserialization_function="relaxed-ignore-errors"
73
+ )
74
+ )
55
75
  """Average variance of the position of :math:`\\beta = 1`."""
56
- exchange_steps: int = 0
76
+ exchange_steps: int = struct.field(default_factory=lambda: jnp.zeros((), dtype=int))
57
77
  """Number of exchanges between the different temperatures."""
58
78
 
59
79
  def __init__(
@@ -128,13 +128,14 @@ def forces_expect_hermitian_chunked(
128
128
  # mutable state (if it's there)
129
129
  if mutable is False:
130
130
  vjp_fun_chunked = nkjax.vjp_chunked(
131
- lambda w, σ: model_apply_fun({"params": w, **model_state}, σ),
131
+ lambda w, ms, σ: model_apply_fun({"params": w, **ms}, σ),
132
132
  parameters,
133
+ model_state,
133
134
  σ,
134
135
  conjugate=True,
135
136
  chunk_size=chunk_size,
136
- chunk_argnums=1,
137
- nondiff_argnums=1,
137
+ chunk_argnums=2,
138
+ nondiff_argnums=(1, 2),
138
139
  )
139
140
  new_model_state = None
140
141
  else:
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
File without changes
File without changes