From 75ef3217ac12d380d3622bf1b9fcf2c1d627ebea Mon Sep 17 00:00:00 2001 From: Denny Sheirer Date: Tue, 29 Dec 2020 03:50:24 -0500 Subject: [PATCH] #1021 Corrects previous implementation of dot-product filtering using Math.fma() (#1025) Co-authored-by: Denny --- .../io/github/dsheirer/dsp/filter/fir/real/RealFIRFilter2.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/io/github/dsheirer/dsp/filter/fir/real/RealFIRFilter2.java b/src/main/java/io/github/dsheirer/dsp/filter/fir/real/RealFIRFilter2.java index 87e86734..ee866c96 100644 --- a/src/main/java/io/github/dsheirer/dsp/filter/fir/real/RealFIRFilter2.java +++ b/src/main/java/io/github/dsheirer/dsp/filter/fir/real/RealFIRFilter2.java @@ -85,8 +85,7 @@ public class RealFIRFilter2 extends FIRFilter //Use vector dot product to leverage SIMD intrinsics for(int x = 0; x < mCoefficients.length; x++) { - //Note: Math.fma() is 2.5x faster than explicit multiply then accumulate - Math.fma(mData[x], mCoefficients[x], mAccumulator); + mAccumulator = Math.fma(mData[x], mCoefficients[x], mAccumulator); } /* Apply gain and return the filtered value */