Skip to content

Conv kernel matrix - #35

Merged
InfinityMonkeyAtWork merged 3 commits into
mainfrom
conv-kernel-matrix
Jul 12, 2026
Merged

Conv kernel matrix#35
InfinityMonkeyAtWork merged 3 commits into
mainfrom
conv-kernel-matrix

Conversation

@InfinityMonkeyAtWork

Copy link
Copy Markdown
Owner

No description provided.

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.
@InfinityMonkeyAtWork
InfinityMonkeyAtWork merged commit c490b39 into main Jul 12, 2026
4 checks passed
@InfinityMonkeyAtWork
InfinityMonkeyAtWork deleted the conv-kernel-matrix branch July 12, 2026 00:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant