AOM / Moment Coverage Matrix

Date: 2026-06-06

This file tracks the requested end state: AOM portfolio methods, reusable winning linear/moment heads, and global preprocessing-selection methods in nirs4all-methods, with CPU and CUDA-build behavior separated.

Integrated Now

Surface

User-facing entry

Native ABI

CPU

CUDA build

Status

AOM logical Python facade

n4m.aom, n4m.aom.available_methods()

no new ABI

import tested

CUDA-device smoke tested

dedicated AOM import surface re-exporting campaign helpers, screen/refit pool helpers, native sklearn AOM presets and historical AOM portfolio classes while keeping the single libn4m runtime and existing top-level imports; inventory metadata identifies global screen/refit, screen/refit pool helpers, selected-winner reuse, chain-grid builders, candidate decode/evaluate helpers, audit/report IO helpers and diversity entries without adding a router, and now includes audit-only config_options for chain grids, refit/checkpoint controls, route policy, report serialization and supported CUDA PLS knobs; benchmarks/cross_binding/aom_moment_cuda_facade_smoke.py proves the facade aliases the shared runtime and that wide PLS1 AOM chain screens hit the CUDA device-CV route

Moment logical Python facade

n4m.moment, n4m.moment.available_methods()

no new ABI

import tested

CUDA-device smoke tested

dedicated moment import surface re-exporting sufficient-statistics helpers, sweep_run, pls_cross_validate, direct linear/component heads, direct native sklearn wrappers, NativeMomentSweepRegressor, native AOM preprocess/profile/chain sweep functions and wrappers, the AOM/moment fast screen-refit function, the mixed/PLS/Ridge NativeAOMMoment*ScreenRefitRegressor presets, the generic NativeAOMScreenRefitRegressor, staged winning presets, strict-linear AOM diversity/reuse wrappers (NativeAOMRidgeBlenderRegressor, superblocks, chain Ridge-PLS, operator PLS stack, robust HPO, AOM-PLS and POP-PLS), retained-pool/refit helpers, audit/report helpers and NativeAOMFixedCandidateRegressor winner reuse without shadowing the historical n4m.moments function; inventory metadata identifies sufficient-statistics, screen, PLS CV reference, direct-head, reusable-estimator, native AOM screen, AOM/moment preprocessing-selection, exact-refit, holdout audit, report IO, winner-reuse and backend-planning entries without adding a router, and now includes audit-only config_options for row subsets, CV grids, direct-head parameters, native AOM profile/chain controls, AOM chain/refit controls, holdout evaluation, report save/load, fixed-candidate reuse and supported CUDA PLS knobs; benchmarks/cross_binding/aom_moment_cuda_facade_smoke.py proves the facade aliases the shared runtime and that wide PLS1 moment screens hit the CUDA device-CV route

AOM strict global selector

n4m.aom_pls / n4m.aom_global_select / NativeAOMPLSRegressor (aom_pop.aom_pls)

yes

tested

smoke tested

existing catalog method now exposes input_coefficients + intercept and has ABI-close plus sklearn Python wrappers

AOM preprocessing

n4m.aom_preprocess / n4m.aom.aom_preprocess (aom_pop.aom_preprocessing)

yes

tested

existing build path

native operator-bank preprocessing primitive now has ABI-close Python binding, top-level alias, AOM facade inventory entry, catalog binding and CUDA smoke coverage for direct strict-linear identity, degree-1 detrend, Savitzky-Golay smooth/derivative, Norris-Williams, finite difference, Gaussian, Whittaker and FCK hard/soft gating; strict chains and model scoring remain covered by the sweep/campaign operator-moment paths

POP-PLS

n4m.pop_pls / n4m.aom_per_component_select / NativePOPPLSRegressor (aom_pop.pop_pls)

yes

tested

smoke tested

existing catalog method now exposes input_coefficients + intercept and has ABI-close plus sklearn Python wrappers

AOM robust-HPO strict screen

n4m.aom_robust_hpo / NativeAOMRobustHPORegressor

yes

tested

smoke tested

compact/wide product screen; compact has 12 chains and wide has 31 strict-linear chains including Gaussian, FCK and Whittaker variants; exports input_coefficients and sklearn replay wrapper; benchmarks/cross_binding/aom_robust_hpo_timing_cuda_smoke.csv covers both native_abi and native_sklearn wrapper replay rows on build/cuda-on across 3 shapes (6 rows), with prediction_replay_max_abs_error <= 1e-10 for all native_sklearn rows

AOM configurable strict sweep

n4m.aom_sweep_run

yes

tested

smoke tested

configurable compact/wide chain bank plus Ridge/PLS grids

AOM user-defined strict chain sweep

n4m.aom_chain_sweep_run

yes

tested

smoke tested

arbitrary caller-provided strict-linear chains plus Ridge/PLS grids

AOM fixed selected-chain final fit

n4m.aom_chain_fixed_fit_run, NativeAOMFixedCandidateRegressor(fit_mode="final_only") (aom_pop.aom_chain_fixed_fit)

yes

tested

smoke tested

catalogued individual winner reuse surface; fits one already-verified strict-linear chain/head/parameter on all rows without running CV, folds coefficients back to original input space, and is used by NativeAOMScreenRefitRegressor after exact-CV refit so reusable model construction no longer repays CV

AOM campaign chain descriptors

chain_offsets, op_kinds, param_offsets, chain_params, n4m.decode_aom_chains, n4m.aom_candidate_table

yes-backed

tested

build path tested

every AOM sweep candidate row can be mapped back to the exact strict-linear preprocessing chain without dataset-name routing

AOM candidate route provenance

candidate_routes, score_route_id, score_route, by_score_route summaries

yes-backed

tested

smoke tested

every AOM sweep/campaign candidate can be tied to materialized, dense, banded or structured moment scoring without changing the stable candidate score table shape

AOM chunked strict-linear campaign helper

n4m.build_aom_strict_chain_grid, n4m.aom_chain_score_campaign, n4m.aom_screen_refit_candidate_pool, n4m.aom_chain_screen_refit_campaign, n4m.aom_refit_candidates, n4m.aom_refit_execution_plan, n4m.aom_evaluate_candidates, n4m.aom_candidate_rank_diagnostics, n4m.aom_candidate_route_summary, n4m.aom_save_candidate_report, n4m.aom_load_candidate_report, n4m.aom_candidate_operator_summary (aom_pop.aom_chain_screen_refit)

Python-backed

tested

smoke tested

deterministic compact/wide/lab strict-linear chain grids, including SavGol, Norris-Williams, finite-difference, Gaussian, FCK and Whittaker variants, plus chunked score-only global, per-head and per-score-route top-k aggregation from full chunk score tables, prefix-aware chunk packing via chain_ordering="prefix" to increase native moment-prefix cache reuse without changing scores or original chain ids, optional split_head_scoring="auto" for mixed Ridge/PLS chunks so the PLS subcall is PLS-only and can hit the native batched exact/proxy PLS path while merged rows keep the same (chain_id, head, param) scores, optional cuda_pls_parallel_folds=True scheduling for bounded stream-parallel exact PLS1 moment fold jobs, cuda_pls_many_batched=True opt-in for the experimental tiled/strided-batched many-job CUDA path with precedence over parallel-fold scheduling unless N4M_CUDA_PLS_MANY_LEGACY=1, and cuda_pls_min_device_features=<positive int> threshold control on CUDA builds, checkpoint/resume and incremental max_chunks_per_run execution for long screens, source-free retained-pool audit via aom_screen_refit_candidate_pool, one-call screen -> exact-CV refit campaign reports for retained candidates after proxy/score-only screens, optional refit_per_head_top_k inclusion so mixed Ridge/PLS screens can exact-refit per-head winners in addition to the global top rows, grouped exact-CV refit scoring for rows sharing a chain/head, signature-batched exact-CV scoring for retained chains sharing a head/parameter set, explicit union-parameter batching with scored/extra candidate counters, plan-driven execution_mode="auto" with bounded extra-score budget, and refit execution planning without touching X/y, native batch exact-CV PLS score-only scoring across PLS-only operator-moment chains before the Python campaign top-k aggregation, normalized throughput/route metrics including moment-prefix cache hit fraction, split-head launch counters, CUDA-parallel fold counters and CUDA many-batched batch/job counters, source-free per-head CPU/CUDA backend recommendations from n_samples, n_features, head, CUDA availability and the explicit PLS CUDA threshold, operator/head/route candidate summaries plus explicit route-coverage summaries by head and chain, explicit CV-vs-holdout candidate evaluation/rank-recall diagnostics over aom_chain_sweep_run, and JSON/JSONL/CSV candidate report export/reload

Staged strict-chain cartesian campaign

n4m.aom_staged_chain_campaign, NativeAOMStagedChainCampaignRegressor, NativeAOMSavgolFocusRegressor, NativeAOMStrictFamilyLiteRegressor (aom_pop.aom_staged_chain_campaign)

Python-backed over native helpers

tested

CUDA-device smoke tested

catalogued global staged preprocessing-selection method over aom_pop.aom_chain_screen_refit; staged compact/wide/lab, focused savgol_focus / strict_family_focus or custom strict-linear score-only screens over Ridge/PLS/mixed heads; cross-stage deduplication keeps global + per-head retained candidates, exact-CV refits the retained union once, can train-CV-select model config scale_x_values such as [False, True], attaches preprocessing-impact and screen-vs-refit rank diagnostics, and can optionally run a held-out audit that is never used for production selection; reports expose selection_uses_test_set=False, selected model-config metadata, staged checkpoint/resume counters, n_remaining_stage_chunks_total, n_screen_split_head_chunks, n_screen_chunk_score_calls, Ridge screen counters and PLS CPU/CUDA route counters, all aggregated across model-config grids when present; the real-cohort runner and reusable sklearn estimators default mixed-head campaigns to score-preserving split_head_scoring="auto" while the low-level helper keeps off for explicit timing comparisons; the generic sklearn estimator omits X_audit / y_audit, selects by train refit_cv_rmse, then fits the chosen row through final-only fixed-candidate reuse with the selected model config; NativeAOMSavgolFocusRegressor is the winning fast SavGol-focused reusable preset, while NativeAOMStrictFamilyLiteRegressor is the cost-safe strict-family audit preset with a small retained refit budget; benchmarks/cross_binding/aom_staged_chain_campaign_timing_cuda_smoke.csv proves the staged PLS path can run through build/cuda-on with device exact-CV counters (n_pls_moment_cuda_device_cv_fits=9, host CV fits 0) on one visible GPU, benchmarks/cross_binding/aom_staged_real_cohort_diesel_pls_many_batched_cuda_smoke.csv proves the real held-out runner on ABI 1.22.0 can persist train-only PLS exact-CV many-batched routing (selection_uses_test_set=False, screen/refit CUDA device jobs 12/6, many-batched jobs 12/6, host and parallel-fold jobs 0), and benchmarks/cross_binding/aom_moment_cuda_facade_smoke.json proves the sklearn staged estimator, both staged presets and the PLS exact screen/refit preset alias both facades, reports CUDA device refit counters (savgol_focus_estimator=8, strict_family_lite_estimator=4, pls_exact_screen_refit_estimator screen/refit 8/4, host CV fits 0), and includes a mixed Ridge+PLS default-smoke proving split-head auto (1 split chunk, 2 score calls), PLS screen CUDA routing (8/0) and Ridge screen counters (8/1/8); per-dataset diagnostics JSON from --diagnostics-dir now includes a compact audit section (offline only, audit_only=True) with the production-selected candidate’s test-set rank/score (selected_cv), the test-rank oracle (oracle) and CV-vs-test Spearman correlation; benchmarks/cross_binding/summarize_aom_rank_audit.py reads a directory of such diagnostics and writes a CSV + Markdown comparing selected train-CV rank/score vs audit/test best rank/score; existing compact10 diagnostics artifacts pre-date this feature and lack the audit section — rerun campaign to populate

Native sklearn sweep/direct estimators

NativeRidgeRegressor, NativePLSRegressor, NativePCRRegressor, NativeCPPLSRegressor, NativeContinuumRegressionRegressor, NativeECRRegressor, NativeMomentSweepRegressor, NativeAOMSweepRegressor, NativeAOMChainSweepRegressor, NativeAOMScreenRefitRegressor, NativeAOMMomentScreenRefitRegressor, NativeAOMMomentPLSScreenRefitRegressor, NativeAOMMomentPLSExactScreenRefitRegressor, NativeAOMMomentRidgeScreenRefitRegressor, NativeAOMStagedChainCampaignRegressor, NativeAOMSavgolFocusRegressor, NativeAOMStrictFamilyLiteRegressor, NativeAOMFixedCandidateRegressor

yes/Python-backed

tested

build path tested

reusable sklearn-style wrappers over native direct heads, sweep MethodResults and campaign helpers; direct wrappers replay native Ridge/PLS/PCR/CPPLS/continuum/ECR predictions from input-space coefficients and reconstructed intercepts; AOM wrappers use exact input_coefficients folded into original feature space; preconfigured native AOM wrappers expose profile_name, expected compact/wide bank size and selected-head labels where applicable; screen-refit estimators run proxy/score-only campaign plus exact-CV verification before fitting the reusable candidate through final-only fixed fit and expose separate screen, refit, staged and final_* diagnostics; the mixed, PLS GCV, PLS exact-CV, Ridge, staged, SavGol-focused and strict-family-lite staged presets expose the common end-user workflows while keeping custom chain grids, checkpointing and exact-refit budgets configurable where appropriate; fixed candidates can be built from explicit rows or global/per-head/refit campaign winners

AOM route policy switch

moment_policy="auto", "materialized" or "force_moments" on n4m.aom_sweep_run / n4m.aom_chain_sweep_run

yes

tested

smoke tested

explicit route control; materialized forces the legacy strict-linear chain screen, while force_moments rejects any candidate-screen fallback outside operator moments

AOM score-only screen output

score_only=True on n4m.aom_sweep_run / n4m.aom_chain_sweep_run

yes

tested

build path tested

returns candidate scores, route counters, selected ids and fold ids without final selected-chain refit outputs; useful for large preprocessing ranking campaigns

AOM PLS1 GCV proxy screen

pls_score_mode="gcv_proxy" with score_only=True, n_pls_gcv_proxy_candidates, n_pls_gcv_proxy_fits, score_metric="pls_gcv_proxy_rmse"

yes

tested

smoke tested

explicit moment-only first-pass PLS screen that scores all-sample transformed moments with a deterministic PLS1 GCV RMSE proxy; PLS-only operator-moment campaigns batch eligible chains through one internal native proxy-scoring dispatch and skip held-out moment transforms; it is not exact fold CV and must be followed by exact-CV/holdout verification of retained rows

PLS/Ridge screen fit-cost audit

n_ridge_moment_candidates, n_ridge_dual_materialized_candidates, n_ridge_moment_cv_fits, n_ridge_dual_materialized_cv_fits, n_ridge_dual_cross_cv_fits, n_ridge_moment_score_batch_calls, n_ridge_moment_score_batch_jobs, n_ridge_moment_final_fits, n_ridge_dual_materialized_final_fits, n_pls_moment_cv_fits, n_pls_moment_host_cv_fits, n_pls_moment_cuda_device_cv_fits, n_pls_moment_cuda_parallel_fold_batches, n_pls_moment_cuda_parallel_fold_jobs, n_pls_materialized_cv_fits, n_pls_gcv_proxy_fits, n_pls_moment_final_fits, n_pls_moment_host_final_fits, n_pls_moment_cuda_device_final_fits, n_pls_materialized_final_fits, ridge_cv_fits_per_chain, ridge_cv_fits_per_candidate, pls_cv_fits_per_chain, pls_cv_fits_per_candidate, pls_gcv_proxy_fits_per_chain, pls_gcv_proxy_fits_per_candidate, chains_per_second, candidates_per_second, projected_200k_chains_seconds, n_refit_scored_candidates, n_refit_extra_scored_candidates, n_refit_global_candidates, n_refit_per_head_candidates, n_refit_per_head_extra_candidates, n_refit_union_candidates, bench_aom_screen_refit_scaling.py, bench_aom_sweep_timing.py, bench_moment_sweep_timing.py

yes-backed

tested

smoke tested

exposes how many fold-local/final Ridge and PLS fits and explicit proxy fits the current sweep/campaign actually pays, split by moment vs materialized/proxy route, by host vs CUDA-device PLS1 moment execution, and by bounded CUDA stream-parallel exact fold scheduling; score-only moment sweeps avoid full X/y copies and Ridge moment score-only uses held-out moments for SSE; exact AOM Ridge-only and PLS-only score-only screens batch all eligible operator-moment chains into one internal native scoring dispatch while preserving exact fold CV scores, and GCV proxy PLS-only screens batch eligible chains while skipping held-out moment transforms; the exact/proxy batch counters are covered by internal tests, Ridge batch scoring parallelizes flattened chain/fold/lambda jobs when N4M_WITH_OPENMP=ON, and exact PLS batch scoring parallelizes per-chain held-out SSE/result aggregation in OpenMP builds after shared prefix fits are computed; CUDA PLS1 moment component calls reuse a thread-local device workspace across successive default-path calls to remove repeated allocation churn before a true fused IKPLS grinder exists; cuda_pls_parallel_folds=True can run independent exact PLS1 moment jobs in bounded stream/cuBLAS batches on one GPU and reports batches/jobs without changing scores; cuda_pls_many_batched=True explicitly selects the existing experimental tiled/strided-batched CUDA many-job route while preserving scores and default-off behavior; cuda_pls_min_device_features keeps the default 1024-feature guard but lets benchmark runs explicitly test medium-width PLS device routing; the screen/refit scaling benchmark varies refit_top_k, supports PLS, Ridge and mixed Ridge/PLS (--head pls / --head ridge / --head mixed), emits per-head retention counters for --refit-per-head-top-k, --split-head-scoring, --cuda-pls-parallel-folds, --cuda-pls-many-batched, --cuda-pls-min-device-features, and emits throughput plus 200k-chain projections, individual vs grouped_score vs batched_score vs union_batched_score exact-CV refit timings, planned-vs-observed group/scored/extra counters, and reusable final-only fit timing/counters; the main AOM sweep timing CSVs expose --cuda-pls-parallel-folds, --cuda-pls-many-batched and --cuda-pls-min-device-features for one-GPU CUDA device-route smokes and include native_aom_chain_fixed_fit_pls, native_aom_chain_fixed_fit_ridge, and native_aom_chain_sweep_pls_exact_score_only and native_aom_chain_sweep_ridge_exact_score_only rows to isolate winner reuse and exact score-only grinder cost, so batched IKPLS/fused CUDA work and Ridge lambda regrouping have measurable baselines

AOM Ridge/PLS1 operator-moment scoring

n4m.aom_sweep_run, n4m.aom_chain_sweep_run with Ridge candidates and compatible single-target PLS1 candidates in dense, banded, or structured strict-linear regimes

no new ABI

tested

tested

exact chain operators applied to raw moments; dense transforms are guarded, identity/SavGol/Norris/finite/Gaussian/FCK use a banded descriptor up to p <= 256 for Ridge and p <= 1024 for single-target NIPALS PLS1, detrend_poly uses a structured low-rank projection route, and Whittaker uses a structured pentadiagonal solve route; repeated strict-linear prefixes are cached for bounded medium-width operator-moment grids and exposed via cache hit/miss counters; CPU auto uses materialized dual Ridge when p > n_train and materialized PLS when min_train < 4p, while CUDA auto keeps the moment route; selected chain materialized once for predictions

Live CPU/CUDA moment crossover

n4m.moment_screen_backend_recommendation, bench_moment_gpu_crossover.py, moment_gpu_crossover.csv, moment_gpu_crossover.md

benchmark/Python

tested

live timed

launches separate CPU and CUDA Python processes against the rebuilt libs, times score-only Ridge/PLS sweep_run on matched synthetic shapes, records route counters plus speedup_vs_cpu, speedup_vs_cuda_default, cuda_pls_profile and recommended_backend, and can render a compact Markdown decision table; Python helper exposes the measured crossover as a source-free launch-planning rule using only n_samples, n_features, head, CUDA availability and the explicit PLS CUDA knobs; for PLS it also reports whether the CUDA component loop, exact-CV fold workspace and optional many-batched route are expected to run under the requested threshold; --compare-cuda-pls-many-batched runs the default and many-batched CUDA profiles in one CSV for controlled one-GPU comparison; current one-GPU ABI 1.22.0 comparison keeps CPU recommended for the measured small/medium PLS shapes and recommends CUDA default for PLS at 256x1024, with PLS rows using device_cv=5 when the device threshold is forced low for timing

AOM robust-HPO fold-local Python

AOMRobustHPORegressor, AOMRobustHPOCompact, AOMRobustHPOWide

no

tested

Python CPU reference

stateful-chain reference/preset layer

AOM portfolio policy/gates

AOMStructuralPolicy, AOMTrueBankEndpointPortfolio, AOMMidPEndpointStack, AOMEndpointMarginStabilityGate, AOMFallbackBlendGate

no

tested

Python CPU reference

source-free reference layer

AOM-Ridge blender

n4m.aom_ridge_blender, NativeAOMRidgeBlenderRegressor, AOMRidgeBlender

yes for native function

tested

smoke tested for native function and native sklearn wrapper; flexible Python estimator is CPU reference

native compact/wide strict-linear Ridge OOF simplex blend now exports replayable input_coefficients; wide has 31 strict-linear chains including Gaussian, FCK and Whittaker variants; benchmarks/cross_binding/aom_ridge_blender_timing_cuda_smoke.csv now includes native_aom_ridge_blender_sklearn rows with prediction_replay_max_abs_error <= 1e-10; Python estimator remains flexible explicit-candidate reference

AOM-Ridge global

n4m.aom_ridge_global, NativeAOMRidgeGlobalRegressor (aom_pop.ridge_global)

Python-backed over native aom_chain_sweep_run

tested

CUDA-build smoke tested, not fused GPU yet

catalogued donor-style strict-linear AOM Ridge global selector; converts strict single operators into one-op chains, selects one operator plus one positive Ridge alpha by native CV, and returns folded input_coefficients plus intercept; intentionally excludes donor branch-global reference-dependent, MKL/kernel and nonlinear modes; benchmarks/cross_binding/aom_ridge_global_timing_cuda_smoke.csv includes function + sklearn rows on build/cuda-on with ridge_backend=native_aom_chain_sweep and replay error at numerical-noise level

AOM-Ridge superblock

n4m.aom_ridge_superblock, NativeAOMRidgeSuperblockRegressor (aom_pop.ridge_superblock)

Python-backed over native aom_preprocess + native ridge

tested

CUDA-build smoke tested, not fused GPU yet

catalogued donor-style strict-linear AOM Ridge superblock reference over the moment-compatible single-operator bank; concatenates strict operator views, selects/fits Ridge alpha by fold-local CV or fixed alpha through the native Ridge binding, applies train-fold centering/block RMS scaling to validation folds, and folds the final superblock coefficients back into input_coefficients plus intercept for exact replay; intentionally excludes branch/global reference-dependent, MKL/kernel and nonlinear AOM Ridge modes; benchmarks/cross_binding/aom_ridge_superblock_timing_cuda_smoke.csv includes function + sklearn rows on build/cuda-on with ridge_backend=native and replay error at numerical-noise level

AOM-Ridge active superblock

n4m.aom_ridge_active_superblock, NativeAOMRidgeActiveSuperblockRegressor (aom_pop.ridge_active_superblock)

Python-backed over native aom_preprocess + native ridge

tested

CUDA-build smoke tested, not fused GPU yet

catalogued donor-style strict-linear AOM Ridge active-superblock reference; screens a train-only active operator subset inside every alpha-CV fold using response signatures from the actual aom_preprocess outputs, screens once on full calibration rows for the final fit, then folds the active superblock coefficients back into input_coefficients plus intercept; intentionally excludes branch/global reference-dependent, MKL/kernel and nonlinear AOM Ridge modes; benchmarks/cross_binding/aom_ridge_active_superblock_timing_cuda_smoke.csv includes function + sklearn rows on build/cuda-on with ridge_backend=native and replay error at numerical-noise level

AOM-Ridge MKL-light superblock

n4m.aom_ridge_mkl_superblock, NativeAOMRidgeMKLSuperblockRegressor (aom_pop.ridge_mkl_superblock)

Python-backed over native aom_preprocess + native ridge

tested

CUDA-build smoke tested, not fused GPU yet

catalogued donor-style strict-linear AOM Ridge MKL-light reference; learns non-negative train-only KTA weights over strict operator blocks inside every alpha-CV fold, refits weights on full calibration rows, fits native Ridge on the equivalent weighted superblock, and folds final coefficients back into input_coefficients plus intercept; intentionally excludes branch/global reference-dependent preprocessing, row-reference-dependent preprocessing, nonlinear kernels and nonlinear AOM Ridge modes; benchmarks/cross_binding/aom_ridge_mkl_superblock_timing_cuda_smoke.csv includes function + sklearn rows on build/cuda-on with mkl_mode=alignment, ridge_backend=native and replay error at numerical-noise level

AOM-PLS superblock

n4m.aom_pls_superblock, NativeAOMPLSSuperblockRegressor (aom_pop.aom_pls_superblock)

Python-backed over native aom_preprocess + native pls

tested

CUDA-device smoke tested, not fused GPU yet

catalogued donor-style strict-linear AOM-PLS superblock reference; concatenates strict operator views, selects the PLS component count by train CV, fits through the native PLS binding and folds final superblock coefficients back into input_coefficients plus intercept; intentionally excludes row-reference-dependent preprocessing, MKL/kernel, nonlinear lifts and dataset/source routing; benchmarks/cross_binding/aom_pls_superblock_timing_cuda_smoke.csv includes function + sklearn rows on build/cuda-on with pls_backend=native, CUDA device PLS final-route counters and replay error at numerical-noise level

AOM Ridge-PLS superblock

n4m.aom_ridge_pls_superblock, NativeAOMRidgePLSSuperblockRegressor (aom_pop.aom_ridge_pls_superblock)

Python-backed over native aom_preprocess + native ridge_pls

tested

CUDA-build smoke tested, not fused GPU yet

catalogued donor-style strict-linear AOM Ridge-PLS superblock reference; concatenates strict operator views, selects the PLS component count and Ridge-PLS penalty by train CV, fits through the native ridge_pls binding, and folds final superblock coefficients back into input_coefficients plus intercept; intentionally excludes row-reference-dependent preprocessing, MKL/kernel, nonlinear lifts and dataset/source routing; benchmarks/cross_binding/aom_ridge_pls_superblock_timing_cuda_smoke.csv includes function + sklearn rows on build/cuda-on with ridge_pls_backend=native and replay error at numerical-noise level

AOM chain Ridge-PLS

n4m.aom_chain_ridge_pls, NativeAOMChainRidgePLSRegressor (aom_pop.aom_chain_ridge_pls)

Python-backed over native strict AOM operators + native ridge_pls

tested

CUDA-build smoke tested, not fused GPU yet

catalogued donor-style strict/raw-base single-chain Ridge-PLS selector; applies each strict-linear AOM chain sequentially, selects chain, PLS component count and Ridge-PLS penalty by train CV, fits through native ridge_pls, and folds the selected chain coefficients back into input_coefficients plus intercept; intentionally excludes SNV, MSC, EMSC, OSC, row-reference-dependent preprocessing, nonlinear lifts, kernels and dataset/source routing; benchmarks/cross_binding/aom_chain_ridge_pls_timing_cuda_smoke.csv includes function + sklearn rows on build/cuda-on with selection_mode=chain_ridge_pls, ridge_pls_backend=native and replay error at numerical-noise level

AOM operator PLS stack

n4m.aom_operator_pls_stack, NativeAOMOperatorPLSStackRegressor, AOMOperatorPLSStack

yes for native function

tested

smoke tested for native function and native sklearn wrapper; flexible Python estimator is CPU reference

native compact/wide strict-operator PLS1 score stack with Ridge head now exports folded input-space coefficients; wide has 31 strict-linear operators including Gaussian, FCK and Whittaker variants; benchmarks/cross_binding/aom_operator_pls_stack_timing_cuda_smoke.csv now includes native_aom_operator_pls_stack_sklearn rows with prediction_replay_max_abs_error <= 1e-10; Python estimator remains flexible custom-operator/gated reference

Row-additive moment substrate

n4m.moments, n4m.moments_train_from_heldout

yes

tested

tested

raw/centered X'X, X'Y, Y'Y plus fold subtraction

Moment Ridge/PLS sweep

n4m.sweep_run

yes

tested

tested

exact Ridge CV; p <= n_train via moments, p > n_train via reused dual kernels with optional cross-kernel scoring; wide dual Gram/cross/prediction/coefficient products now use linalg::gemm, which routes to cuBLAS in CUDA builds; compatible single-target NIPALS/regression PLS1 grids score from train/held-out moments, with CPU/BLAS linalg kernels, a scalar host loop in CUDA builds for medium widths, and a device-resident cuBLAS component loop plus reused fold workspace for very wide p >= 1024 PLS1 moment CV by default; cuda_pls_min_device_features can lower or raise that threshold for controlled timing campaigns; cuda_pls_parallel_folds=True optionally schedules independent exact PLS1 moment jobs in bounded CUDA stream batches and reports batches/jobs; cuda_pls_many_batched=True selects the experimental tiled/strided-batched many-design CUDA path before parallel-fold scheduling unless N4M_CUDA_PLS_MANY_LEGACY=1 forces the non-batched route; materialized prefix fallback remains for other PLS regimes

Direct Ridge head

n4m.ridge, NativeRidgeRegressor

yes

smoke tested

smoke tested

reusable linear/moment head with direct function and sklearn wrapper; bench_direct_moment_heads_timing.py records native vs wrapper fit+predict timing and replay error

Direct PLS head

n4m.pls, NativePLSRegressor

Python-backed over native sweep

smoke tested

CUDA-device smoke tested

reusable moment PLS head over n4m_sweep_run; fixed n_components or train-CV pls_components grid, replayable input-space coefficients/intercept, route diagnostics and CUDA PLS knobs shared with the sweep path; direct_moment_heads_timing_cuda_smoke.csv forces cuda_pls_min_device_features=1 and cuda_pls_parallel_folds=True and covers all 9 direct heads with function + sklearn replay rows across 3 shapes (54 rows total); PLS rows report device CV fits equal to total PLS moment CV fits and host CV fits at zero

Direct PCR head

n4m.pcr, NativePCRRegressor

yes

smoke tested

smoke tested

reusable PCR/SVD head with direct n4m_pcr_fit MethodResult ABI, original-input coefficients, predictions, centering/scaling metadata and sklearn replay wrapper

CPPLS head

n4m.cppls, NativeCPPLSRegressor

yes

smoke tested

smoke tested

reusable linear/moment head with direct function and sklearn wrapper; bench_direct_moment_heads_timing.py records native vs wrapper fit+predict timing and replay error

Continuum regression head

n4m.continuum_regression, NativeContinuumRegressionRegressor

yes

smoke tested

smoke tested

reusable linear/moment head with direct function and sklearn wrapper; bench_direct_moment_heads_timing.py records native vs wrapper fit+predict timing and replay error

ECR head

n4m.ecr, NativeECRRegressor

yes

smoke tested

smoke tested

reusable linear/moment head with direct function and sklearn wrapper; bench_direct_moment_heads_timing.py records native vs wrapper fit+predict timing and replay error

Weighted PLS head

n4m.weighted_pls, NativeWeightedPLSRegressor

yes

smoke tested

smoke tested

reusable direct head; sqrt(w)-prescaled weighted PLS route; exports replayable coefficients, predictions, x_mean and y_mean; sklearn wrapper reconstructs the intercept from the native means; bench_direct_moment_heads_timing.py records native and wrapper timing across three shapes

Robust PLS head

n4m.robust_pls, NativeRobustPLSRegressor

yes

smoke tested

smoke tested

reusable direct head; Huber IRLS over weighted PLS fits; Python helper default max_irls_iter=5; exports replayable coefficients, predictions, x_mean and y_mean; sklearn wrapper reconstructs the intercept from the native means; bench_direct_moment_heads_timing.py records native and wrapper timing across three shapes

Ridge-augmented PLS head

n4m.ridge_pls, NativeRidgePLSRegressor

yes

smoke tested

smoke tested

reusable direct head; ridge-regularised augmented SIMPLS route; exports replayable coefficients, predictions, x_mean and y_mean; sklearn wrapper reconstructs the intercept from the native means; bench_direct_moment_heads_timing.py records native and wrapper timing across three shapes

Moment-model OOF stack

NativeMomentStackRegressor (models.ensembles.moment_stack)

Python-backed over native heads

smoke tested

CUDA-device smoke tested for PLS base

train-only OOF Ridge meta-model over native Ridge/PLS/PCR/continuum/ECR/CPPLS predictions; the PLS base now reuses the direct NativePLSRegressor rather than a separate generic sweep wrapper; no transformed-spectrum stacking, nonlinear lift or dataset-name routing; fitted objects expose base_oof_diagnostics_, base_final_diagnostics_ and aggregate PLS route counters for OOF and final base fits, so CPU/GPU routing can be audited without retaining validation data; benchmarks/cross_binding/moment_stack_timing_cuda_smoke.csv proves a PLS-only stack on build/cuda-on used CUDA for both OOF and final PLS base sweeps (n_base_oof_pls_moment_cuda_device_cv_fits=16, host 0; final device CV fits 4, host 0)

Not Yet Integrated

Grid note: iter_aom_strict_chain_grid now exposes the same deterministic compact/wide/lab strict-linear bank as build_aom_strict_chain_grid, but with stable chain ids, start/stop slicing and optional chunks for incremental campaign launchers. It is an inventory/runtime helper only and does not change candidate scores.

Benchmark note: campaign timing scripts now expose --backend-min-cuda-product alongside the CUDA PLS knobs, so the source-free CPU/CUDA launch recommendation used in reports can be reproduced or overridden from scripted runs without changing candidate scores.

Timing artifact note: the strict AOM portfolio now has committed CPU build/dev-release timing pairs for the previously CUDA-only smoke artifacts: aom_preprocess_timing.csv, aom_ridge_superblock_timing.csv, aom_ridge_active_superblock_timing.csv, aom_ridge_mkl_superblock_timing.csv, aom_pls_superblock_timing.csv, aom_ridge_pls_superblock_timing.csv, aom_chain_ridge_pls_timing.csv, aom_ridge_global_timing.csv and aom_staged_chain_campaign_timing.csv. Release guards assert those CPU rows use the host/dev-release route while the existing CUDA smokes keep the one-GPU build/cuda-on route. The strict AOM portfolio timing artifacts for preprocess, selectors, diversity wrappers, superblocks, robust HPO and staged campaign are refreshed against ABI 1.22.0 for both CPU/dev-release and CUDA/cuda-on evidence. The moment sweep/stack timing artifacts, AOM sweep timing artifacts, and live moment_gpu_crossover.csv/.md CPU-vs-one-GPU evidence are also refreshed against ABI 1.22.0 and guarded by release tests for ABI, route counters and CPU/CUDA library paths.

CUDA many-batched artifact note: the optional exact PLS many-job route is now covered at multiple public surfaces. moment_sweep_timing_cuda_many_batched_smoke.csv pins the direct moment sweep route, aom_sweep_timing_cuda_many_batched_smoke.csv pins the AOM sweep route, aom_screen_refit_scaling_cuda_many_batched_smoke.csv pins exact-CV refit after a global screen, and aom_staged_real_cohort_diesel_pls_many_batched_cuda_smoke.csv proves the real held-out benchmark runner persists ABI 1.22.0, train-only selection and screen/refit many-batched route counters. These artifacts prove current route telemetry and exact-CV compatibility, not the deferred fused cartesian/IKPLS CUDA engine.

Surface

Required shape before completion

Reason it is still open

Fused/batched IKPLS mode for n4m_sweep_run

native batch/sweep ABI for device/host-fused free component CV over many PLS variants

ABI 1.22.0 exposes n4m_pls_cross_validate as an exact PLS-only reference surface and tests equivalence to the PLS branch of n4m_sweep_run; bench_pls_cross_validate_timing.py now pins CPU/CUDA smoke artifacts and route counters for that reference hook; current ABI v1 already scores compatible single-target PLS1 grids from moment cross-products, i.e. an IKPLS-style sufficient-statistics route, and falls back to one max-component materialized fit per fold for other PLS regimes, but it is still not fused across many chains/folds/candidates

full arbitrary-chain AOM moment screen

strict-linear operator descriptors applying A*S and A*C*A' across Ridge/PLS and wide regimes without materializing transformed X

Banded descriptors now cover local linear operators, structured low-rank projection covers detrend_poly, and structured pentadiagonal solves cover Whittaker; multi-target/non-NIPALS PLS, very wide Ridge solves and fused batched GPU execution still fall back or remain open

CUDA fused sweep

grouped GEMM/operator kernels and backend parity vs CPU fp64

CUDA build works; fused moment/sweep kernels are not shipped

WASM/WebGPU sweep

optional lite backends

design-only

Invariants

  • models.pls.kernel / kernel_pls (non-linear kernel PLS) is intentionally excluded from the AOM/moment porting scope. The moment substrate operates on linear operators applied to the raw feature matrix; non-linear kernel functions (K = XX') do not fit the strict-linear AOM/operator-moment architecture and would require a separate kernel-moment substrate. Kernel PLS remains in the catalog but outside this porting track.

  • Deployable selection must not route by dataset name, source name, database name, dataset id, or equivalent identity fields.

  • Python portfolio metadata is audit-only; tests assert metadata changes do not change selected route or predictions.

  • n4m.aom_ridge_blender uses outer-fold OOF predictions to solve a non-negative simplex blend and is now catalogued as aom_pop.ridge_blender. The native surface is restricted to compact/wide strict-linear AOM chains and positive Ridge lambdas. The native result folds the weighted candidate Ridge coefficients back into input_coefficients plus intercept, and NativeAOMRidgeBlenderRegressor predicts from that state. AOMRidgeBlender remains the Python reference layer for explicit custom estimators. Neither surface is a fused GPU blender yet.

  • n4m.aom_ridge_superblock is deliberately narrower than donor AOMRidgeRegressor: it ports the strict-linear superblock idea only. It does not include branch_global, MKL/kernel routing, row-reference-dependent preprocessing, nonlinear lifts or any dataset/source-name routing. It is a Python orchestration over native aom_preprocess and native ridge; it is catalogued and timed, but still not a fused GPU superblock grinder.

  • n4m.aom_ridge_active_superblock ports the donor strict active-superblock idea without donor-private covariance helpers: active scores are defined on native aom_preprocess outputs, screened fold-locally during alpha CV and then re-screened on full calibration data for the final fit. It is an active-pruning model, not a screen-recall guarantee for arbitrary 200k-chain preprocessing campaigns.

  • n4m.aom_ridge_global ports the donor strict global Ridge idea: select one strict operator and one Ridge alpha by train CV, then expose a reusable final model. It is intentionally narrower than the existing broad NativeAOMMomentRidgeScreenRefitRegressor campaign preset.

  • n4m.aom_pls_superblock ports the donor strict AOM-PLS superblock idea: concatenate fixed strict-linear operator views and fit a PLS head whose coefficients are folded back to raw input space. It is not soft operator weighting, active PLS pruning, MKL/kernel weighting, or a fused GPU many-operator grinder.

  • n4m.aom_chain_ridge_pls ports the donor strict/raw-base single-chain Ridge-PLS idea: each candidate is a sequential strict-linear chain, one PLS component count and one Ridge-PLS penalty scored by train CV. It deliberately excludes SNV, MSC, EMSC, OSC, row-reference-dependent preprocessing, nonlinear lifts, kernels and any dataset/source routing.

  • n4m.aom_operator_pls_stack is catalogued as aom_pop.operator_pls_stack. It is single-target PLS1, uses fixed strict-linear compact/wide operator banks, and exposes the final score stack plus Ridge head. It also folds the selected strict-linear stack into input_coefficients plus input_intercept, so NativeAOMOperatorPLSStackRegressor can predict on new spectra without rebuilding stack features. AOMOperatorPLSStack remains the Python reference layer for custom operator matrices and optional baseline admission gates.

  • The native aom_robust_hpo method is a compact/wide product screen. It now folds the selected strict-linear chain coefficients back into input_coefficients, so X @ input_coefficients + intercept exactly replays the native predictions and NativeAOMRobustHPORegressor can predict on new spectra. This is not a claim of 200k-chain fused GPU acceleration.

  • n4m.aom_sweep_run is the configurable native strict-linear AOM sweep over fixed compact/wide banks. It allows custom Ridge/PLS grids and explicit folds, while n4m.aom_chain_sweep_run accepts arbitrary caller-provided strict-linear chains through a flat descriptor. Both expose moment_policy="materialized" to force the legacy materialized route for timing comparisons or production route guarding, and moment_policy="force_moments" / "moments_only" to fail fast whenever a candidate screen would need a materialized fallback. The selected chain may still be materialized once after scoring to populate public predictions and folded coefficients. Both now export input_coefficients, folded into the original feature space, so the native sklearn wrappers can predict on new X without Python-side chain replay.

  • Both AOM sweep surfaces expose score_only=True for large ranking passes. It keeps the candidate table, selected ids, route counters and fold ids, but skips selected-model output buffers and final refits. The result also keeps the flat chain descriptor (chain_offsets, op_kinds, param_offsets, chain_params), so broad campaigns can decode the exact preprocessing chain behind each chain_id through n4m.decode_aom_chains or n4m.aom_candidate_table. This is an output/cost control, not a new scoring rule; materialized candidate-screen routes still pay their fold-local scoring fits because they are not batched IKPLS yet.

  • n4m.build_aom_strict_chain_grid and n4m.aom_chain_score_campaign are Python campaign helpers over the same native strict-linear ABI. They provide deterministic compact/wide/lab grids, custom cartesian family templates, chunked score_only=True execution, global top-k aggregation, per-head top-k aggregation for mixed Ridge/PLS audits, per-score-route top-k aggregation for materialized/dense/banded/structured route audits, and optional checkpoint/resume. pls_score_mode="gcv_proxy" is fingerprinted separately from exact-CV campaigns and keeps proxy rows labelled through score_metric. Checkpoints are guarded by a fingerprint of the chain grid, folds, hyperparameters and X/y contents, so an interrupted long screen can resume without mixing incompatible candidate scores. Loaded top-k rows are filtered to the chunks actually present in a checkpoint before new chunks are appended, which keeps manual partial checkpoints coherent for global, per-head and per-route top-k lists. The optional max_chunks_per_run budget lets schedulers advance a campaign in bounded increments; reports expose complete, n_remaining_chunks and processed_chunks_this_run. They do not add a new selection heuristic and do not route by dataset identity.

  • split_head_scoring controls how mixed Ridge/PLS chunks are scored. A single mixed native call uses none of the batched head-homogeneous fast paths, so "off" keeps n_ridge_moment_score_batch_calls, n_pls_moment_score_batch_calls and n_pls_gcv_proxy_batch_calls at 0. "auto" scores each mixed chunk as a Ridge-only call plus a PLS-only call and merges the rows, which turns on the Ridge moment batch (C*L*K jobs for C chains, L ridge lambdas, K folds) and the PLS exact moment batch (pls_score_mode="cv", C*K jobs) or GCV-proxy batch (pls_score_mode="gcv_proxy", C jobs). The merge is score-preserving: the retained (chain_id, head, param) candidate scores and the selected winner are identical to "off", so it changes launch shape and route counters only, never scores, ranking or predictions. The low-level campaign helpers (aom_chain_score_campaign, aom_chain_screen_refit_campaign) default to "off"; the sklearn screen/refit estimators (NativeAOMScreenRefitRegressor and the NativeAOMMomentScreenRefitRegressor mixed preset) default to "auto". For single-head screens "auto" is inert and n_split_head_chunks stays 0.

  • n4m.aom_moment_screen_refit_campaign is the functional fast-profile counterpart to NativeAOMMomentScreenRefitRegressor and is exposed from both n4m.aom and n4m.moment. It wraps aom_chain_screen_refit_campaign with strict moment routes, prefix chunk ordering, split-head mixed scoring, PLS GCV-proxy screening, exact-CV refit and refit_execution="auto". It adds campaign_preset="moment_fast_screen_refit" to the combined report but does not change the legacy defaults of the lower-level campaign helpers.

  • Campaign and chunk reports expose normalized performance and route metrics (candidates_per_second, ms_per_candidate, route fractions, etc.) derived from native counters. These fields are for CPU/GPU audit and run planning; they do not affect candidate scores or ranking.

  • NativeAOMFixedCandidateRegressor.from_candidate(row) is the reusable bridge from a decoded campaign row to a fitted model. from_campaign(report, head=None|"ridge"|"pls", rank=0) selects the global or per-head campaign winner directly before delegating to the same fixed-candidate path. It refits exactly that chain/head/parameter through aom_chain_sweep_run and predicts from folded input-space coefficients.

  • n4m.aom_evaluate_candidates refits decoded top-k rows on an explicit train split and scores them on a caller-provided eval split. It reports cv_rank, eval_rank and rank_delta for CV-vs-holdout analysis, but it does not change the native fit or route selection.

  • n4m.aom_candidate_rank_diagnostics summarizes screen-vs-holdout rank agreement from evaluated rows or reloaded reports. It reports rank correlation, rank drift and top-k overlap/recall. It is an audit tool for screen recall, not a selection rule.

  • n4m.aom_candidate_report_records and n4m.aom_save_candidate_report serialize campaign/eval candidate rows for offline comparison and replay. They preserve decoded chains, add a CSV-friendly chain_json, and drop prediction arrays by default. They do not introduce a ranking heuristic or any dataset-identity route.

  • n4m.aom_load_candidate_report reads JSON/JSONL/CSV candidate reports back into refittable rows. CSV rows restore chain from chain_json, so saved campaign winners can be passed directly to NativeAOMFixedCandidateRegressor.from_candidate.

  • n4m.aom_candidate_operator_summary groups scored candidate rows by head, preprocessing operator, operator/head pair and chain length. It is an inspection aid for pruning or expanding future grids; it does not alter scores, top-k ordering or route selection.

  • n4m.aom_candidate_preprocessing_impact adds stage/option/position impact summaries over the same scored rows, including improvement versus an identity baseline when such a row is present. It is an analysis surface only and does not introduce dataset-identity routing or a new selection rule.

  • AOM sweep route counters are split by scoring route and model head: n_ridge_operator_moment_candidates, n_pls_operator_moment_candidates, n_ridge_materialized_candidates, and n_pls_materialized_candidates. This makes broad campaigns auditable without inferring route provenance from candidate table rows.

  • AOM sweep result rows also include candidate_routes, with route codes 0=materialized, 1=dense_operator_moment, 2=banded_operator_moment, and 3=structured_operator_moment. Python decoded candidate rows expose score_route_id and score_route, and operator summaries include by_score_route. These fields are diagnostics only and do not change candidate scores or rank order.

  • PLS sweep fit counters are split by scoring route and by CV/final phase: n_pls_moment_cv_fits, n_pls_materialized_cv_fits, n_pls_moment_final_fits, and n_pls_materialized_final_fits. Campaign reports also expose pls_cv_fits_per_chain and pls_cv_fits_per_candidate. These fields are diagnostics only; they do not affect scores, ranking, route policy or dataset selection.

  • n4m_moments_* is now a reusable raw/centered sufficient-statistics layer; n4m_sweep_run uses moment fold subtraction where it is efficient, precomputed dual Ridge and optional held-out/train cross-kernel scoring when p > n_train, and train/held-out moment scoring for compatible single-target NIPALS/regression PLS1 component grids. The wide dual Ridge train Gram, held-out cross-kernel, held-out prediction and coefficient reconstruction products use the shared linalg::gemm dispatch, so CUDA builds execute those products through cuBLAS. Compatible PLS1 moment-prefix dense products use linalg in CPU/BLAS builds, but keep the scalar host-side path in CUDA builds because the current cuBLAS dispatch copies each micro-kernel host/device and benchmarked slower; this is an explicit guard until a device-resident batched IKPLS workspace exists. Other PLS regimes keep materialized prefix scoring with coefficient-prefix reuse across component counts.

  • The CUDA PLS many-job dispatcher has an experimental opt-in tiled path (N4M_CUDA_PLS_MANY_BATCHED=1) that uses strided-batched cuBLAS for the component products plus a native CUDA sign-normalization kernel, preserves exact scores, and falls back to the legacy sequential-many workspace path. Broader timings still do not justify making it the default. The production gap is now the remaining device-resident scalar glue and a fused IKPLS-style cartesian screen.

  • AOM Ridge candidate rows with p <= n_train transform strict-linear chain operators into moment space and score held-out SSE from moments, including inside mixed Ridge+PLS sweeps. Dense medium-wide Ridge grids use this exact path when all lambdas are strictly positive and p <= 48; local linear banded operators extend the route to p <= 256 for Ridge in normal routing, to p <= 512 for strict Ridge screens under moment_policy="force_moments", and to p <= 1024 for compatible single-target NIPALS PLS1. detrend_poly chains use an exact structured low-rank projection transform and Whittaker chains use the exact structured pentadiagonal solve for (I + lambda D2'D2)^-1; both can compose with the local banded operators. CPU auto routes Ridge p > n_train rows through the exact materialized dual-Ridge scorer and PLS rows with min_train < 4p through the exact materialized PLS prefix scorer; CUDA auto keeps the operator-moment route in those cells. Feature caps and backend route choices are compute-route guards, not scoring heuristics.

  • moment_policy="force_moments" is the strict native screen mode: it accepts only chains/heads whose candidate scores are computed through operator moments and returns UNSUPPORTED instead of silently leaving the moment substrate. This does not change the post-selection materialization used to expose predictions and input_coefficients.

  • The full moment-engine goal remains open until batched IKPLS, operator descriptors for the remaining regimes, and fused CUDA sweep/parity evidence exist.