Repository navigation
Release v0.4.0 (integration of #53–#57 + coverage) - #58
Merged
Merged
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #58 +/- ##
==========================================
+ Coverage 95.61% 98.57% +2.96%
==========================================
Files 11 11
Lines 2235 2181 -54
==========================================
+ Hits 2137 2150 +13
+ Misses 98 31 -67 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Bump version to 0.4.0 and record the feature-layout changes in the SO3onS2, DnonDn and SO2onDisk class docstrings (versionchanged notes). Breaking: output_size / layout changes for SO3onS2 (lmax >= 3), DnonDn (odd n >= 5) and the default SO2onDisk truncation.
…ph wiring Dead code removed (never reachable from the library): * _bessel: scalar _jn_scalar/_djn_scalar/_bisect_newton (only tests used them; the batch solver is the single root path) and the unreachable num_brackets <= 0 branch in compute_all_bessel_roots. * dn_on_dn: n2d == 0 / n3 == 0 branches (n >= 3 implies n2d >= 1). * so3_on_s2: empty-slice guard in the power loop of _ensure_precomputed_on_device (empty entries are never flagged power). Bug found by the new tests: _load_or_compute_reduced_cg did not catch pickle.UnpicklingError, so a corrupt reduced-CG cache file crashed module construction instead of being recomputed. New tests: package version fallback; _bessel_jn_multi(()) and order-0 batch roots; _save_cache write failure; triangle-violating sparse CG entries (empty tables, exact zeros in forward); SO3onS2 dense tables vs sparse forward (incl. CG power); reduced-CG disk cache compute/load/ corrupt/write-failure paths; lazy sparse gather-table construction; CUDA graph capture wiring with torch.cuda stream/graph APIs stubbed on CPU. Remaining uncovered lines are defensive numerical fallbacks in the D_n / octahedral CG constructions and the CUDA dispatch in SO3onS2.forward.
johmathe
force-pushed
the
johmathe/release-0.4.0
branch
from
October 14, 2026 16:48
8a469f4 to
f03227c
Compare
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.
Integration PR for v0.4.0. Merges the five fix branches, bumps the version, adds
versionchangednotes to the three affected class docstrings, and carries the coverage work.Status: #53–#57 are merged. This PR is now just the version bump, the
versionchangeddocstring notes, and the coverage commit, rebased ontomain.Stack
fix-bessel-j0-j1-accuracytorch.specialJ₀/J₁ were ~5e-7 accurate; Miller recurrence for all ordersfix-disk-basis-conditioning(on #53)SO2onDiskdefault basis cond ~1e16 → ≈2 (Nyquist band-limit)fix-dn-odd-n-foldDnonDndropped the fold block for odd n ≥ 5; invariant was incompletefix-so3-selective-rankSO3onS2selective map rank-deficient for L ≥ 8; CUDA-graph cache keyfix-minor-numericsCnonCn.invertpivots,OctaonOcta._lm_stepacceptanceBreaking changes (0.4.0)
output_size/ feature layout changes forSO3onS2(all lmax ≥ 3; L=16: 430 → 426),DnonDn(odd n ≥ 5; +16 entries) and the defaultSO2onDisktruncation (L=16: 105 → 76). Cached features and heads trained on the old layouts must be recomputed. The on-disk sparse CG cache self-invalidates.Coverage (
8a469f4)Local
pytest --cov=src/bispectrum: 95.6% → 98.6% (31/2181 statements missing), nopragma: no cover._bisect_newton/_jn_scalar/_djn_scalar, unreachablenum_brackets <= 0,n2d == 0/n3 == 0, and an empty-slice guard in the SO3 power loop._load_or_compute_reduced_cgdidn't catchpickle.UnpicklingError; a corrupt reduced-CG cache file crashedSO3onS2construction.torch.cudastubbed on CPU; triangle-violating CG triples; order-0 batch roots.f.is_cudadispatch.Verification
747 passed / 23 skipped,
pre-commit --all-filesclean,benchmarks/verify_linear_bootstrap.py --lmax 100ALL PASSED.Follow-ups (not in this stack)
benchmarks/figures/table_benchmarks.texandpaper_benchmarks.texhard-code the old counts (430 / 105).neurips-2026-rebuttaltext relying on "full rank after augmentation" for L ≥ 8 needs revising.SO3onS2/ odd-nDnonDn/ defaultSO2onDiskfeatures need recomputing.