Skip to content

test/jax: seven slowrot_fs_lib callers silently inherit a 4x finer rholm sampling #197

Description

@oshaughnessy-junior

Tracking only — filed so this is recorded rather than remembered. Not claiming a bug; claiming an unowned behaviour change.

What changed underneath them

slowrot_fs_lib.build_finite_size_data (in RIFT_roboto_paper, analyses/slowrot_finite-size/) used to set deltaT = 1/(2*fmax), tying the rholm sample rate to the analysis band limit. It now sets deltaT = 1/(2*oversample*fmax) with OVERSAMPLE = 4 by default, and fmax means the band limit only.

Every script in MonteCarloMarginalizeCode/Code/test/jax/ that builds fslib.Source(..., fmax=1024.0) and does not pass oversample therefore moves from rholm srate 2048 → 8192 the moment a user's paper-repo checkout picks that change up. That is ~4x more samples: more accurate, and ~4x slower to build the data.

The seven

  • debug_fs_consistency.py
  • debug_jax_vs_cupy_inj.py
  • debug_orientation_degeneracy.py
  • demo_slowrot_flowmc.py
  • demo_slowrot_highsnr_nuts.py
  • demo_slowrot_reparam.py
  • test_.../other callers, if any are added later

(make_3g_figdata.py and debug_timeshift.py are already handled — #194 and #195.)

Why this is worth recording

None of these scripts makes a false statement about its sampling, so there was nothing to correct under a comment-only change. But:

  1. Nobody opted in. Anyone comparing a result from one of these scripts across the library update will see numbers move, with no local diff to explain it.
  2. At least one script's meaning depends on it. debug_timeshift.py turned out to be measuring something different at the new default — its scan is defined relative to deltaT, so a finer deltaT silently shrank the physical range it probes. It has been pinned to oversample=1 in test/jax: identify the fslib version by its behaviour, not by a commit id #195. The other seven have not been audited for the same property, and that audit is the actual work here.
  3. fmax is no longer a sufficient configuration label. At equal srate 8192, (fmax 1024, oversample 4) and (fmax 2048, oversample 2) are measurably different analyses. Any of these scripts whose output is quoted anywhere should record both.

Suggested disposition

For each of the seven, decide one of:

  • inherit the new default (fine for anything that just wants the best available sampling), or
  • pin oversample=1 (for anything whose measurement is defined relative to deltaT, as debug_timeshift.py was), or
  • expose SLOWROT_OVERSAMPLE with an explicit default, as make_3g_figdata.py and debug_timeshift.py now do — including the inspect.signature guard, so an explicit request an older library cannot satisfy is refused rather than silently downgraded.

Context

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions