Every published energy
Grouped by what the number is. The exact energy comes first where there is one; in every other group the lowest unflagged energy is its best value, and each row's distance is to that best (rules §6).
Numerically exact (1)
Exact diagonalization, an exact solution, or sign-problem-free QMC where that is established. An exact energy is shown first, before the best of each other class. QMC is exact only within its error bar, which it must state, and reads exact (stochastic); an exact diagonalization outranks it. For a diagonalization resolved by symmetry sector only the ground state's sector is listed; the lowest energies of the other sectors are the instance's spectrum, in its JSON, and are not shown as the exact energy.
Strict variational upper bounds (4)
Energies that a variational state reached (VMC, DMRG and MPS at finite bond dimension, PEPS, NQS, VQE). Each is an upper bound on the ground-state energy.
How these numbers were read
Where each number below was read, and how it was checked.
-0.4341237, ED
Checked 2026-09-29 · QMBL ED cost run checks/cost/ed/results/Heisenberg--chain_20_O.json (checks/cost/ed/run_ed.py: NetKet 3.22.4 operator, sparse CSR built in blocks, SciPy eigsh/ARPACK k=1 SA; commit 716e043); results file read locally, no rerun
Reported as. energy -34.729893337595904 (stored_exact -34.72989333759587, relative_difference 1.02e-15, reproduces_stored true)
|reproduced - stored| = 3.55e-14 (relative 1.02e-15); within 1e-9 relative. Sector total Sz = 0, dimension 184756, 111 Lanczos steps (the file states no residual). The stored value is the source's own ED (varbench@2024-10-22), so two codes agree; a third code, E1's node Lanczos (qmbl-runs/qmbl-verify/out/E1-exact-recompute/results/Heisenberg__chain_20_O.json), gives -34.72989333759506 (8.46e-13 from the cost run). Also read by VB3-varbench-code-heisenberg#7 (scope config: vendor/varbench/Heisenberg/chain_20_O.md (snapshot 390a21e), row 'Exact diagonalization'; linked scripts/Heisenberg/chain_20_O/ed_netket.sh).
-0.4341237, DMRG
Checked 2026-09-29 · VarBench snapshot 390a21e (vendor/varbench) and full upstream history (varbench-history, git log --follow on the file, every version); varbench/methods ed31bb0 run script and program read as text; no output log or result file exists in the methods repo for any Heisenberg row
Reported as. | -34.7298933375 | | 6.3E-10 | 20 | 0 | DMRG (max truncation error ~ 1.0E-12) | [code](https://github.com/varbench/methods/blob/main/programs/dmrg_itensors_heisenberg/chain_20_O.jl) |
Program chain_20_O.jl: N = 20, periodic = false, Pauli form, Sz = 0, maxdim up to 1000 (exact MPS for 20 sites needs 1024). Best variational bound on the solved instance: 9.6e-11 above the exact -34.72989333759587 (Bethe ansatz and ED agree), i.e. equal at its 10 printed decimals. M6 (V-score 1.0e-11 outlier): genuine. History: entered d3f0688 (2021-12-05, J. M. Silvester) as -34.7298933375 with sigma 0 and variance 0, labels '~1.0E-13' -> '~1.0E-12' (febb6a9, 7764424); variance blank (c9a3134), sigma 0 -> 0.0000126 (3a788a0) -> blank with variance 0.0000251 (e8dd21b) -> 0.0000252 -> 6.3E-10 (e78283b, 2022-03-10); the energy never changed; nothing restored. Program linked 2024-08-08 (d944d80).
-0.4341229(2), VMC (RNN)
Checked 2026-09-29 · VarBench snapshot 390a21e (vendor/varbench) and full upstream history (varbench-history, git log --follow on the file, every version); varbench/methods ed31bb0 run script and program read as text; no output log or result file exists in the methods repo for any Heisenberg row
Reported as. | -34.729829 | 0.000014 | 0.000506 | 20 | 0 | RNN | [code](https://github.com/varbench/methods/blob/main/scripts/Heisenberg/chain_20_O/vmc_rnn.sh) |
vmc_rnn.sh: open 20-site chain, NetKet Heisenberg J = 1 Pauli with Marshall sign rule (a sublattice rotation on the bipartite chain), full Hilbert space (no --zero_mag; exact autoregressive sampling, ARDirectSampler), FastLSTMNet 2 layers x 16 features, Adam, 10^5 steps. RNN is the method named. The stored (sigma, Var) imply 2.6e6 independent samples (sigma/sqrt(Var/2^20) = 0.637), not the script's 2^20: the numbers come from the 2021 run (c12e2c8, 2021-10-14, Dian Wu), the script (d54f7c0, 2024-07-30) documents the settings afterwards. 6.4e-5 above the exact energy (4.6 sigma): a valid bound.
-0.434089(3), VMC (RBM)
Checked 2026-09-29 · VarBench snapshot 390a21e (vendor/varbench) and full upstream history (varbench-history, git log --follow on the file, every version); varbench/methods ed31bb0 run script and program read as text; no output log or result file exists in the methods repo for any Heisenberg row
Reported as. | -34.72711 | 0.00021 | 0.04559541 | 20 | 0 | RBM (alpha = 1) | [code](https://github.com/varbench/methods/blob/main/scripts/Heisenberg/chain_20_O/vmc_rbm.sh) |
scripts/Heisenberg/chain_20_O/vmc_rbm.sh: 'python3 vmc.py --ham heis --boundary open --sign mars --ham_dim 1 --L 20 --zero_mag --net rbm --seed 123 --show_progress' -> 20-site open chain (nk.graph.Grid, vmc.py line 51); NetKet Heisenberg J = 1 in Pauli form with Marshall sign rule (a sublattice rotation on a bipartite lattice, spectrum unchanged); Sz = 0 (total_sz=0, MetropolisExchange); real float32 RBM, alpha = 1 (nk.models.RBM, log_cosh); 10^4 SR steps; final estimate over 2^20 samples (vmc.py lines 268-269). sigma/sqrt(Var/2^20) = 1.007: the stored sigma is the error of that final estimate. 0.0028 above the exact -34.72989333759587. History: entered 10f5c12 (2022-07-11, Dian Wu) as -34.7271 | 0.00021 | 0.0455955 | RBM (alpha = 1); af1d48f (2022-09-01, 'Add Jastrow baseline'): energy -34.7271 -> -34.72711; variance 0.0455955 -> 0.04559541; linked 5047bfd (2024-07-30). Program files postdate the value (scripts added to varbench/methods 2024-07-30); they document the settings after the run.
-0.433638(4), VMC (Jastrow)
Checked 2026-09-29 · VarBench snapshot 390a21e (vendor/varbench) and full upstream history (varbench-history, git log --follow on the file, every version); varbench/methods ed31bb0 run script and program read as text; no output log or result file exists in the methods repo for any Heisenberg row
Reported as. | -34.69100 | 0.00031 | 0.1008130 | 20 | 0 | Jastrow baseline | [code](https://github.com/varbench/methods/blob/main/scripts/Heisenberg/chain_20_O/vmc_jastrow.sh) |
scripts/Heisenberg/chain_20_O/vmc_jastrow.sh: 'python3 vmc.py --ham heis --boundary open --sign mars --ham_dim 1 --L 20 --zero_mag --net jas --seed 123 --show_progress' -> 20-site open chain (nk.graph.Grid, vmc.py line 51); NetKet Heisenberg J = 1 in Pauli form with Marshall sign rule (a sublattice rotation on a bipartite lattice, spectrum unchanged); Sz = 0 (total_sz=0, MetropolisExchange); real float32 Jastrow (nk.models.Jastrow); 10^4 SR steps; final estimate over 2^20 samples (vmc.py lines 268-269). sigma/sqrt(Var/2^20) = 1.000: the stored sigma is the error of that final estimate. 0.0389 above the exact -34.72989333759587. History: entered af1d48f (2022-09-01, Dian Wu) as -34.69100 | 0.00031 | 0.1008130 | Jastrow baseline; linked fdb4bfb (2024-07-30). Program files postdate the value (scripts added to varbench/methods 2024-07-30); they document the settings after the run.