# HG changeset patch # User Tuomo Valkonen # Date 1690874709 -10800 # Node ID 6105b5cd8d890de5c6fdf4ab1dc369267896eb61 # Parent acf57c45874030d309bfcc47a0f5509121bda54a Simplify and fix cut gaussian indicator convolution scaling diff -r acf57c458740 -r 6105b5cd8d89 src/kernels/gaussian.rs --- a/src/kernels/gaussian.rs Wed Mar 22 20:37:49 2023 +0200 +++ b/src/kernels/gaussian.rs Tue Aug 01 10:25:09 2023 +0300 @@ -188,12 +188,11 @@ let a = cut.r.value(); let b = ind.r.value(); let σ = gaussian.variance.value().sqrt(); - let π = F::PI; let t = F::SQRT_2 * σ; - let c = σ * (8.0/π).sqrt(); + let c = 0.5; // 1/(σ√(2π) * σ√(π/2) = 1/2 // This is just a product of one-dimensional versions - let unscaled = y.product_map(|x| { + y.product_map(|x| { let c1 = -(a.min(b + x)); //(-a).max(-x-b); let c2 = a.min(b - x); if c1 >= c2 { @@ -204,9 +203,7 @@ debug_assert!(e2 >= e1); c * (e2 - e1) } - }); - - unscaled / gaussian.scale() + }) } }