Sync: the lab merge's regressions fixed and pinned in the corpus - #15
Merged
Merged
Conversation
…inned in the corpus - A character parameter is its text: the fold check has no width to refuse - The constant shapes the CESM-family trees carry, as an engine test with gfortran's values - corpus/elm_leaf: the ELM shapes that failed, as a shipped tree both recipes run in CI Signed-off-by: lewisychen <yueqichen.0x0@gmail.com> Carried-From: fb5c51f0dea04d70279a52c247142b5de27283c9
…s generated draws only, corpus/clubb_solve pins CLUBB's solver shapes The JAX port follows the lab merge's anchor spellings, the gate bounds generated draws only, and corpus/clubb_solve pins the shapes CLUBB's variance step hands its solver - corpus/clubb_solve: the shapes CLUBB's variance step hands its solver, as a shipped tree both recipes run in CI - The JAX port reads the ravelled spelling of a reshaped actual, lays the copy-out on the array's own cells, and refuses what it cannot call - The copy-out lands on a section too, the anchor spells a section's copy-out through the runtime, and the plain frontend takes CLUBB's buffer convention - A recorded sample is compared however long the candidate takes; corpus/clubb_solve holds its loop bounds the way CLUBB's does Signed-off-by: lewisychen <yueqichen.0x0@gmail.com> Carried-From: 1f7fdb8850e036ee6d497146e7deed6e27eeeb81
The lab merge (b9e3baf) handed every caller-buffer OUT array to the reference, where the gate had handed those with an axis of no declared extent (_passed_buffer, the f2py wrapper's own rule: those it spells inout, every other OUT array it sizes and returns). Under CLUBB's convention every OUT array is the caller's buffer, so each explicit-shape output was one keyword argument more than the wrapper took -- advance_helper_module's calc_ri_zm and calc_stability_correction at tier1, bit-exact at 1555d42, "takes at most 6 keyword arguments (7 given)" from d7b97c5 on. Found by the full CLUBB re-verification on 1f7fdb8. _reference_takes is the wrapper's rule (no declared extent, or allocatable), for the f2py convention; a reference emitted the way the candidate was (a NumPy anchor) takes every buffer, as the candidate does. corpus/clubb_solve's driver now hands back the step's tendency, an explicit-shape OUT array under the all-buffers convention: the exact TypeError on the merged gate, 425 points bit-exact with this. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Eu1peBeXAR3j6Z8oVMZaur Signed-off-by: lewisychen <yueqichen.0x0@gmail.com> Carried-From: f735a553b0b053b29e0c36b018f83fcb3a0456fd
…he way Python does; corpus/clubb_solve carries CLUBB's tridiagonal solver Two more of the lab merge's (b9e3baf), found by the full CLUBB re-verification on 1f7fdb8, bit-exact at 1555d42: - _guarded_shapes started every axis at its upper bound alone, where _extent beside it reads ub - lb + 1. CLUBB's tridiagonal, pentadiagonal and BiCGSTAB solvers take lhs(-1:1, ...) / lhs(-2:2, ...): handed one row for three, every draw subscripted past it (tier0 tridiag_lu_solvers, penta_lu_solvers, bicgstab_solvers). Every axis now draws at its declared extent. - The subscript guard on a drawn array (a negative index is a value outside the source's domain, not Python's last element) reached the operator's recast_inputs.py, which reads the draw the way Python does: CLUBB's interpolation profile takes the last altitude as xlist[-1], was refused, and the run died with no verdict (tier0 interpolation). The profile sees plain arrays; what it hands back is guarded again before the candidate sees it. corpus/clubb_solve gains tridiag_lu_solver.f90, CLUBB's single-rhs LU solve with its band at lhs(-1:1, ndim), and a recast_inputs.py that makes the band diagonally dominant reading its last row as lhs[-1]. On the merged gate the profile dies on a one-row band; with this, 140 points bit-exact and within 14 ULP under JAX. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Eu1peBeXAR3j6Z8oVMZaur Signed-off-by: lewisychen <yueqichen.0x0@gmail.com> Carried-From: a877d83288efea586f5c1012cb4fec3239596f4b
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Carried by tools/export sync; each commit names its origin in a Carried-From trailer. Replaces #14, whose two hand-carried commits were credited to the merge's author rather than the change's, and whose CI ran corpus trees this edition cannot translate.
🤖 Generated with Claude Code