Tier 0 — stochastic-method inventory (authoritative)¶
Derived from source: the set of C-kernel files that contain a file-local
splitmix64 generator (grep -rln splitmix64 cpp/src/core/) is the true
stochastic surface. Everything else is deterministic or a Python composite that
bypasses the C kernel.
The 14 splitmix64-using core files¶
12 stochastic selectors (RNG-parity scope):
cars_selection, emcuve_selection, ga_selection, iriv_selection,
irf_selection, pso_selection, random_frog_selection,
randomization_selection, scars_selection, stability_selection,
uve_selection, vissa_selection.
2 infrastructure (also RNG, but not selector parity):
model.cpp (randomized-SVD component sampling — context-seed + component
offset), validation.cpp (CV fold assignment).
Dashboard parity policy (2026-05-30)¶
The dashboard now separates three selector outcomes instead of collapsing all feature-mask differences into a red failure:
selection_exact→ exact selector parity (Jaccard = 1.00).selection_divergence_allowed→cross_checkwith the recorded reason (for examplet2_select, where the statistic matches but the loading-weight convention differs).documented
selection_mismatchmethods →cross_checkwith an amberBD Jbadge and a tooltip explaining why exact feature-mask parity is not expected.
Unmapped selection_mismatch rows still render as real divergent failures.
This keeps the matrix strict by default while making the known RNG/noise/model
exceptions explicit.
Post-investigation selector verdicts (2026-05-30)¶
method |
canonical default |
reference + its RNG |
verdict |
|---|---|---|---|
|
R |
R-MT |
canonical dashboard path exact; legacy C++ path remains a documented |
|
R |
R-MT |
exact in the current matrix |
|
R |
R-MT |
|
|
R |
R-MT |
|
|
R |
R-MT |
|
|
R GA selector |
R-MT |
cross_check — GA is highly RNG/impl-sensitive |
|
NumPy IRIV port |
numpy PCG64/default_rng |
|
|
auswahl |
numpy RandomState-MT |
|
|
auswahl |
numpy RandomState-MT |
|
|
auswahl |
numpy RandomState-MT |
|
|
R randomization ( |
R-MT |
exact in the current dashboard through the canonical base-R adapter; native R-MT C++ path remains an optional future parity hardening |
|
R |
R-MT |
|
|
R shaving |
R-MT |
|
|
R |
R-MT |
|
|
R |
R-MT |
|
|
R |
R-MT |
|
|
Python |
NumPy/Python PSO RNG |
|
|
NumPy SCARS port |
NumPy RNG |
|
|
R WVC |
deterministic/current R path |
exact in the current matrix |
|
R WVC threshold |
deterministic/current R path |
|
|
R |
loading-weight convention, not RNG |
documented |
Notes:
The numpy/sklearn composites (
bagging_pls,boosting_pls,random_subspace_pls,n_pls,pls_qda,pls_glm,pls_cox,pls_logistic,group_sparse_pls) BYPASS the C kernel —not_availablefor C-kernel bindings, never an RNG fix.iriv_selectuses PCG64/default_rng in the NumPy reference path.The auswahl trio (
random_frog,vissa,irf) uses numpy RandomState MT19937 through sklearncheck_random_state.
RNG engines required (and status)¶
engine |
reproduces |
status |
|---|---|---|
splitmix64 |
n4m’s own legacy streams |
exists; legacy selector streams are intentionally preserved |
PCG64 |
|
DONE ( |
R-MT + Inversion |
base R |
DONE ( |
numpy RandomState-MT |
legacy |
DONE ( |
Completed rollout¶
Tier 0 inventory — done.
RNG engines — splitmix64 preservation plus PCG64, R-MT, and numpy-RandomState-MT engines are available behind the additive
n4m_rng_kind_tABI.UVE pilot — R-exact MCUVE path is available through
rng_kind=MT_Rwhile the legacy splitmix path remains byte-compatible.Dashboard contract — known RNG/noise/model selector mismatches are rendered as documented
cross_check/BD Jcells; unmapped mismatches remain red failures.
Further hardening would mean porting entire external selector algorithms into
C++ (for example R bve_pls, R spa_pls, auswahl VISSA/RandomFrog). That is a
method implementation project, not an RNG-engine swap.