Skip to content

Ecc/meanPerAno when converting grid with inference2ile - #186

Open
jlange2010 wants to merge 1 commit into
oshaughn:rift_O4cfrom
jlange2010:rift_O4c
Open

jlange2010 wants to merge 1 commit into
oshaughn:rift_O4cfrom
jlange2010:rift_O4c

Conversation

@jlange2010

Copy link
Copy Markdown
Collaborator

Added options to include ecc/meanPerAno when converting from ascii to xml for grids/samples. Previously, would just zero out eccentricity and meanPerAno even if samples included them.

oshaughn pushed a commit that referenced this pull request Sep 4, 2026
…ubic)

#180 has landed, so this PR now targets rift_O4d directly rather than stacking.

Three conflicts:

  * --interp cubic.  #190 shipped the same fix independently, with a help string
    explaining that linear undershoots the rholm peak and biases the recovered
    arrival time.  Took THEIRS wholesale -- it is a strict superset of the bare
    `choices` widening this branch carried -- and dropped mine.
  * The gate's per-file ledger.  Both entries are needed (this branch's chooser
    file, #190's test_interp_choices.py); kept both.
  * EXPECTED_TESTS.  Resolved to 95 by RUNNING collection on the merged FILES
    list.  64 (rift_O4d) + 31 (chooser) = 95 confirms nothing else shifted.

TWO STALE CLAIMS OF MY OWN, found by reading what landed rather than only the
conflict hunks:

  * The gate ledger entry for test_jax_tempering_chooser.py still said the
    chooser is "actually assigned to opts.adapt_weight_exponent" -- the contract
    REMOVED in cf02b9d when that write turned out to make event 1 of a batch
    read event 0's choice.  Corrected to the return-value contract.
  * The --smc-puffball branch comment said smc_puffball_sample "returns
    post_weight uniform with temper=1.0".  #180 changed that: it now reports the
    inv_T its ladder actually reached and a matching L^(1-inv_T) weight, and its
    export weights are uniform only because analyze_one REFUSES the event unless
    the ladder finishes at inv_T=1.  Skipping the guard is still correct -- the
    signature still swallows `temper` in **_ignore, so the exponent is genuinely
    inert -- but the comment now says why, and warns against re-deriving "its
    weights are always uniform" from that branch.

Checked the driver's automerge kept both sides rather than trusting it: #180's
2-arg fairdraw_size and both length-mismatch guards are present alongside this
branch's resolve_tempering_exponent, the resolved_beta wiring at both sampler
call sites, and a single _USABLE_EXPORT_ESS shared with fairdraw_indices.

65 tests pass across the two interacting files (31 chooser + 34 export).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
oshaughn pushed a commit that referenced this pull request Sep 4, 2026
Caught reading PR #186's own diff after the rift_O4d merge.  I wrote "79" when
79 was current; merging #180 (64) plus this branch's chooser took the floor to
95 and left my own note stale -- the same failure the note itself documents,
one revision later.

Also records where the count came from (27 -> 48 -> 64 via #180 -> 95 here,
with #190's test_interp_choices.py along the way) and re-measures the wall time
on the host it was actually run on (859 s, ldas-pcdev11, 16 cores), so the
60-minute timeout is justified against a current number rather than a stale one.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
oshaughn pushed a commit that referenced this pull request Sep 4, 2026
…han assumed)

No conflicts this time.  A clean automerge is not evidence the semantics
survived, though -- both sides had touched .travis/test-jax.sh and ci.yml -- so
checked explicitly:

  * this branch: resolve_tempering_exponent, the resolved_beta wiring at both
    sampler call sites, and the --smc-puffball no-op notice are all present.
  * upstream: #180's 2-arg fairdraw_size and length-mismatch guard, and
    TIME_INTERP_CHOICES from the stencil-validation work, are all present.
  * manifest: 12 gated files + 2 explicitly excluded, every test_*.py in
    test/jax accounted for, and collection returns exactly 95 -- so
    EXPECTED_TESTS=95 and the ci.yml cost note both remain correct rather than
    silently becoming a floor that no longer describes the suite.

Nothing to change; recording the checks because "the merge was clean" has not
been a sufficient answer at any point in this branch's history.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
oshaughn pushed a commit that referenced this pull request Sep 4, 2026
CI failed with "test_jax_stencil_parity.py is neither gated nor explicitly
excluded".  That file is NOT from this PR: PR #193 (the JAX sinc stencil) landed
it on rift_O4d minutes ago WITHOUT a manifest entry, so rift_O4d currently fails
its own jax-ile-check -- verified by walking every test_*.py on the base against
its FILES and EXCLUDED lists, where it is the only unlisted one.  This PR merely
inherited it.

Fixed here rather than waited on, since this branch already owns that manifest:
added to FILES with a ledger entry recording what it covers and that it arrived
unlisted.  If #193 lands the same fix the conflict is one line.

WHY MY LOCAL GATE WAS GREEN AT 109 AND CI RED.  The local run tested this branch
alone; CI tests the branch MERGED WITH THE BASE, and the file only exists on the
base.  A green local gate is evidence about a combination that will never ship --
which is exactly the failure mode the manifest check exists to catch, working as
intended, just not on the PR that caused it.

Checked the automerge kept both sides rather than trusting it: this branch's
export_ess_estimate, _ADAPT_ADAPT_MODES, the _match_long_opt canonicalisation and
the EXPERIMENTAL labelling are all present, as is #193's sinc gatherer.

EXPECTED_TESTS 109 -> 133 and both ci.yml cost notes, by collection.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
oshaughn pushed a commit that referenced this pull request Sep 4, 2026
…eight_chooser

Merging on RO's direction ("For 186, merge"), after the final review pass.

State at merge:
  jax-ile-check   PASS -- 139 collected, 0 skipped, 0 failures, 0 errors
  all other checks PASS

The one red check, "Dispatch exact RIFT PR generation", is the private
review coordinator returning HTTP 503.  The tailnet leg connects and the
service answers; it is simply unavailable.  It is a review side-channel,
not a correctness gate, and it is unrelated to this branch's code.

What this ships, and its limits.  The chooser sets the JAX tempering
exponent from the EXPORT budget, not from the SNR: the historical
non-JAX rule beta = min(0.1, 25.31/lnLmax) does NOT transfer, because on
the flowMC path beta is the exponent of the SAMPLED target, so the export
must be reweighted by L^(1-beta) and the surviving fraction goes as
[beta(2-beta)]^(dim/2) -- set by dimension, with no lnLmax term
(measured flat to +/-10% over SNR 15->67).  Applying the historical
value collapses an export from 4800 rows to 278.

--auto is EXPERIMENTAL and labelled as such.  The calibrated law is an
ESTIMATE, not a bound: the SNR ladder measures 0.00823 where the
calibration predicts 0.0285.  The degenerate case warns rather than
refuses, precisely because the estimate cannot support a hard floor.
Evidence and the counterexample are in DESIGN_jax_tempering.md 4a.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant