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 75e209b0..87e86734 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,7 +85,8 @@ public class RealFIRFilter2 extends FIRFilter //Use vector dot product to leverage SIMD intrinsics for(int x = 0; x < mCoefficients.length; x++) { - mAccumulator += mData[x] * mCoefficients[x]; + //Note: Math.fma() is 2.5x faster than explicit multiply then accumulate + Math.fma(mData[x], mCoefficients[x], mAccumulator); } /* Apply gain and return the filtered value */