Rule proposing moves according to the terms in an operator.

In this case, the transition matrix is taken to be:

\[T( \mathbf{s} \rightarrow \mathbf{s}^\prime) = \frac{1}{\mathcal{N}(\mathbf{s})}\theta(|H_{\mathbf{s},\mathbf{s}^\prime}|),\]

This is a thin wrapper on top of the constructors of netket.sampler.rules.HamiltonianRuleJax and netket.sampler.rules.HamiltonianRuleNumba, which dispatches on one of the two implementations depending on whether the operator specified is jax-compatible (netket.operator.DiscreteJaxOperator) or not.