Conv kernel matrix - #35
Merged
Merged
Conversation
Convolve via a quadrature-weighted time-difference matrix (conv_matrix_operator / conv_matrix_apply) on both the mcp and GIR paths, replacing my_conv + per-theta kernel supports. - exact on non-uniform time axes (the old sample-index convolution deviated by up to ~7% of trace max on example 21's stepped axis) - exterior kernel mass computed analytically per kernel via edge-mass companions (CONV_EDGE_MASS, cancellation-safe erfc/exp/clip forms): edge-value padding with no support truncation at any width - theta-independent operator precomputed per axis with deduplicated dt values: static shapes remove the JAX jit blocker and cut example 01's GIR benchmark from 8.4 to 2.95 ms/call - remove voigtCONV and lorentzCONV (no physical basis as time-domain IRFs; Voigt's missing closed-form CDF blocked analytic edges) along with conv_kernel_support, Component.create_t_kernel, and the *_kernel_width helpers; retires wofz from functions/time.py - validate kernel parameters at model load (strictly positive, varying ones need an explicit positive lower bound); companions re-validate at evaluation as the backstop for expression-driven parameters - restrict function discovery to module-defined functions so imported helpers (erf, erfc, wofz, Callable) no longer leak into the registry - reject non-monotonic time axes; sub-step kernels degrade to identity - bump version to 0.11.0 (breaking: kernel removals, conv semantics)
- give conv kernel widths strictly positive lower bounds (0 -> 1.0E-6) and bound the previously unbounded truth-model widths, as now required at model load - regenerate example 21's data through the new operator (the old 1D-kernel convolution's artifact was baked into the CSVs)
…N.md Durable decisions (kernel-drop rationale, masses-not-CDFs companion contract, trapezoid-weight and layering choices, dispatch/serialization constraints, three-layer validation split, 0.11.0 release call) now live in docs/design/archive/kernel-matrix-convolution.md; PLAN.md is back to the empty template.
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.
No description provided.