You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[RF] RooFFTConvPdf: cache norm. val to avoid bookkeeping during scan
`RooFFTConvPdf::scanPdf()` repeatedly evaluates the component pdfs with
`pdf.getVal(normSet)` while filling the FFT input buffers. For large
scans this incurs unnecessary overhead from `RooAbsPdf::getValV()`'s
normalization-set tracking and cache management, even though the
normalization set is fixed for a given FFTCacheElem.
This change caches the normalization integrals for both component pdf
clones (normVal1, normVal2) when the FFTCacheElem is constructed. During
scanning, the pdfs are then evaluated without passing a normalization
set and are normalized manually using the cached integral values.
To exactly reproduce `RooAbsPdf::getValV()` behaviour (including
NaN-packing semantics), the `RooAbsPdf::normalizeWithNaNPacking(rawVal,
normVal)` helper function was moved to an internal helper namespace.
This reduces evaluation overhead in FFT convolutions while preserving
bitwise-equivalent normalization behaviour.
0 commit comments