neuralqx.operators.computational.qr.numba.euclidean_constraint module¶
- class EuclideanConstraint(H, *, lapse=1.0, power=0.25, immirzi=1.0)¶
Bases:
ComputationalOperatorQuantum-Reduced LQG Euclidean constraint on a Single-Vertex-Graph with 3 edges. The convention here is (x = 0, y = 1, z = 2).
Definition reproduced in Discrete form:
C_E = -lapse * (t1 + t2 + t3)
with, for (a,b,z) being a permutation of (0,1,2),
t(a,b|z) = F(a,b|z) * s(a) * s(b) * F(a,b|z),
- where
s(e) = (1/2) * (C_e - A_e), non-cyclic single-step raise/lower
F(a,b|z) = E(a)^(1/4) * E(b)^(1/4) * [E(z)]^(-1/4) (E_inv on z)
C_e tries to add +step, A_e tries to add -step, invalid moves give zero contrib
- Action:
- For each input configuration σ, this operator emits up to 12 connected configurations:
- 4 from each pair (a,b) ∈ {(0,1), (0,2), (1,2)} with weights:
(1/4) * sign * lapse * F(σ’) * F(σ),
where sign ∈ {+1,-1,-1,+1} corresponds to (+,+), (+,-), (-,+), (-,-).
Notes
Hermitian (weights are real scalars, left/right diagonal prefactors applied).
dtype: float64
Non-cyclic: attempts to step outside [state_min, state_max] are discarded (weight 0).
- property is_hermitian: bool¶
This function must return either
TrueorFalsebased on whether your operator is Hermitian or not. Note that unlike for the case ofLocalOperatortypes, you must specify by-hand whether this operator is Hermitian or not, there is no implementation to deduce that information for you as there is no matrices stored in this operator type.This property plays a role in determining the computational path to be taken when computing gradients. If you specify that the operator is Hermitian while in reality it is not, the computed gradients will be incorrect.
- Returns:
Trueif this operator is Hermitian,Falseotherwise
- property dtype¶
Specify a JAX NumPy or NumPy dtype for this operator (that is, what is the dtype of the matrix elements returned by this operator)