Hot-path optimization for the mask-learning loop, which propagates thousands
of fields through one fixed config. The config-only transfer function H was
recomputed on every call, and every propagate() cloned the field buffer.
- Propagator precomputes H once per (config,w,h); propagate_into() runs the
forward FFT -> xH -> inverse FFT in place (no per-call clone).
- Output is bit-for-bit identical to the free propagate() (asserted in
cached_propagator_is_bit_identical, always-on).
- Measured 1.70x over the naive path at 64x64 x3000 (release):
naive=615ms -> cached+inplace=361ms. Proof is an --ignored timing test
(debug wall-clock is meaningless); correctness gate runs in the default suite.
Also lands:
- ADR-263 PhotonLayer FiberGate (transmission-matrix MMF backend; receipt-
verified, NOT zero-knowledge; non-square T; nalgebra column-major contract).
- docs/research/photonlayer/APPLICATIONS.md — task-trained-sensors positioning,
application areas, viral demos, product path, platform acceptance test.
Co-Authored-By: claude-flow <ruv@ruv.net>