Skip to content

Halo bias — b_cum, b_diff

b_cum — cumulative effective bias b(>M)

Linear bias of a sample selected above a mass threshold.

b = reg.predict("b_cum", "LCDM", 0.25, [0.31, 0.677, 0.967, 0.83])   # (1, 30)
# fRn1 returns (1, 31)

art = reg.load("b_cum", "LCDM", 0.25)
b_at = art.predict_mass([0.31, 0.677, 0.967, 0.83],
                        np.array([13.2, 14.3]))   # arbitrary masses; Tinker above 14
  • Output: (1, 30) for ΛCDM, (1, 31) for f(R).
  • Coordinate: log₁₀M thresholds (art.coord / art.thresholds).
  • Representation: peak-height b(ν) polynomial baseline + residual GP, with Tinker-2010 high-mass extrapolation (shape frozen, normalisation anchored) above log₁₀M = 14.
  • f(R): a direct 5-parameter peak-height GP (the seed-paired boost was tested and is worse — fRn1_bD_boost_evidence.py).

Accuracy: ΛCDM interior-LOO ≈ 0.5 %.

b_diff — differential bias b(M) (derived)

A derived property: the cumulative→differential inversion of b_cum via the number-weighted-mean identity, with a Monte-Carlo replay covariance.

res = reg.predict("b_diff", "LCDM", 0.25, [0.31, 0.677, 0.967, 0.83])
res["x_grid"], res["b_diff"], res["b_err"], res["cov"]
res["checks"]          # b_le_bcum, monotonic, boundary_ok
res.get("r_ab_ok")     # validity guard (if r_ab is available)
  • It resolves b_cum (and optionally r_ab) through the registry and runs the inversion recipe; there is nothing to train.
  • The inversion needs (>M), which comes from the in-suite hmf emulator (resolved through the registry) — a gated swap off the former external freyja dependency, so b_diff predicts with no non-PyPI packages. freyja remains only as an optional cross-check.
  • A built-in r_ab validity guard flags where the differential bias is trustworthy.

Write the result to disk via the CLI:

micromamba run -n cosemu python3 -m haloemu.cli predict b_diff \
    --theta 0.31,0.677,0.967,0.83 --out b_diff.hdf5

Redshift

Both registered at z = 0.25 only.

Legacy shims

The standalone emulator_b_eff (b(>M) GP) and b_diff packages predate the registry and remain importable for backward compatibility; new work should use the registry keys b_cum / b_diff.