hdr: run Cascade on ndarray's rolling floor and σ-lattice - #1278
Conversation
hdr::Cascade's adaptive half (running statistics, reservoir, shape
evaluation, sigma/empirical floor switch, drift, recalibration) now
delegates to ndarray::hpc::rolling_floor::RollingFloor, which was
harvested from this file with its constants, cadence, drift rule and
reset semantics unchanged. The approximate integer Welford is replaced by
ndarray's exact MomentsU32; no floor decision changed in the reference
tests, and ndarray pins the checkpoint (mu, sigma) against the legacy
Welford as an oracle.
Kept here: Band and its classification, RankedHit, the three-stage
sampled query, stage levels, cascade_at, and the public API
(isqrt, ReservoirSample, ShiftAlert, Cascade::{for_width, calibrate,
observe, recalibrate, ...}). isqrt, ReservoirSample and ShiftAlert now
re-export the ndarray items. New: Cascade::observe_batch and
Cascade::floor.
The adaptive path still has no production caller; this file is the
integration/reference consumer for the upcoming popcount consumers
(Raumgewinn/influence, infight). Requires AdaWorldAPI/ndarray#328.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019HnekoM1EidTwQLS3oFVFm
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Essentials Run ID: 📒 Files selected for processing (1)
✨ Finishing Touches📝 Generate docstrings
Comment |
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_acf98731-9b8d-4fbd-8240-37dfbcafa812) |
|
CI builds against ndarray master, and No fix is needed on this branch. Once #328 is on ndarray master, a CI re-run here should pass. Generated by Claude Code |
Band (3σ/2σ/1σ/μ) and cascade (1σ…3σ in quarter-σ steps) thresholds are SigmaLevel points answered on demand by the rolling floor's current shape and coordinates. cascade_at(k) is the same lookup. Nothing is cached; the public band/cascade API is unchanged. Empirical band ranks now use the Gaussian tail of each σ level (1587/228/13 per 10000) instead of the coarse 0.159/0.023/0.001. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019HnekoM1EidTwQLS3oFVFm
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_b2ab1720-f414-4c87-acb1-dbaf73dd4cd4) |
What changes
graph/blasgraph/hdr.rsnow consumesndarray::hpc::rolling_floor(AdaWorldAPI/ndarray#328):MomentsU32moments, the reservoir and drift detection come from ndarray.ShiftAlertandReservoirSampleare re-exports.SigmaLevelpoints. The floor's current shape and running coordinates answer them per call, and nothing is cached.band,expose,thresholds,cascade_thresholds,cascade_at,query,observe,observe_batchandrecalibrate.Semantic deltas
cascade_at(k): now uses the same shape-aware lookup. Before, it applied the anchor's σ arithmetic even when the empirical shape was active.Tests
All 191 blasgraph tests pass with no re-pins. Clippy
-D warningsand fmt are clean.CI stays red until ndarray#328 merges, because CI builds against ndarray master.
Scope fence
The diff contains 0 matches for ZGamma, zspace, Fisher, hyperbolic, Palette256, FisherZTable, bgz or Mexican.
🤖 Generated with Claude Code
https://claude.ai/code/session_019HnekoM1EidTwQLS3oFVFm