Skip to content

HMF — hmf

Cumulative halo mass function n(>M): the comoving number density of haloes above each mass threshold.

n = reg.predict("hmf", "LCDM", 0.25, [0.31, 0.677, 0.967, 0.83])   # (1, 23)
art = reg.load("hmf", "LCDM", 0.25)
art.coord                                                          # log10M left edges
  • Output: (1, 23), units (Mpc/h)⁻³.
  • Coordinate: 23 log₁₀M left edges.
  • Representation: weighted-PCA + per-component GP on n(>M), n_components = 4.

Accuracy (z = 0.25)

  • ΛCDM interior leave-one-out 0.49 % RMS (median at the SEM floor), max 6.1 %.
  • f(R) composed boost: F5n1 fiducial 0.49 % RMS, F6n1 median 0.15 %, tail max 0.67 % — accurate to <1 % across the full grid to log₁₀M ≈ 14.7.

Redshift

Registered at z = 0.25 and z = 0.00 for both gravities.

f(R)

The f(R) hmf is a multiplicative seed-paired boost composed with the pinned ΛCDM artifact (MGBoostEmulator). The screened-tail accuracy depended critically on optimizer convergence:

The screened-tail story

The boost used to ring below the measured n(>M) at the chameleon screening transition (log₁₀M > 14 at F6n1: down to −24 %, χ ≈ 95), long blamed on design sampling. It was actually optimizer under-convergence at n_restarts = 3. Raising to n_restarts = 10 fixed it (F6n1 median 0.15 %, tail max 0.67 %) with zero new simulations. Only the hmf boost was restart-sensitive — its ratio carries the sharp screened-tail structure.

A linear mean for the boost was tested and rejected (it trades F5n1 for F6n1); restarts is the real fix.

Evidence harnesses

hmf_validation.py, improve_hmf_gate.py, restarts_sweep.py, fRn1_fiducial_oos.py --imodel {0,-1}.