You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
New gsua_noisefloor: replaces the scale-dependent res < 1.5*res(1) multistart-acceptance idiom with a parametric-bootstrap noise floor. Simulates the best fit, estimates an observation-noise model (Poisson, quasi-Poisson [default], or global negative-binomial) from its residuals, bootstraps synthetic datasets under that noise, and scores the true model against each with the same cost function gsua_pe minimized — giving a data-calibrated acceptance threshold instead of a fit-quality-dependent one. Handles cumulative outputs via incident-series differencing, and requires the margin/alpha a gsua_pe run scored with (now auto-recovered — see below).
gsua_pe now records the Margin/Alpha it scored a fit with as table CustomProperties, so gsua_noisefloor can recover them automatically without the caller re-specifying (and risking a mismatch).
Fixed gsua_likelihood: Taux was preallocated to the size of the profiled parameter subset but indexed by each parameter's absolute row in the full table — profiling a strict, non-empty subset of parameters could error or silently corrupt every unprofiled row's range to [0,0]. Taux is now seeded from T.Range directly, fixing both the misalignment and the corruption; full-parameter-set profiling (the common case) is unaffected.
New regression test suite in tests/ (15 new tests: NB2 parameterization, quasi-Poisson degeneracy fallback, cumulative-output handling, seed reproducibility, the fit-exceeds-floor warning, and the gsua_likelihood subset fix).
Mirrored to the Python port (gsua_csb.noise_floor) as part of the same pass; see the Python changelog for details. Porting surfaced that Python's costf/rcostf were not yet NaN-tolerant (the v1.9 MATLAB fix had no Python equivalent) — that retrofit is included as a prerequisite.