Accord.Tests.Math.FourierTransformTest.naiveConvolve C# (CSharp) Method

naiveConvolve() private static method

private static naiveConvolve ( double xreal, double ximag, double yreal, double yimag, double outreal, double outimag ) : void
xreal double
ximag double
yreal double
yimag double
outreal double
outimag double
return void
        private static void naiveConvolve(double[] xreal, double[] ximag, double[] yreal, double[] yimag, double[] outreal, double[] outimag)
        {
            if (xreal.Length != ximag.Length || xreal.Length != yreal.Length
                || yreal.Length != yimag.Length || xreal.Length != outreal.Length
                || outreal.Length != outimag.Length)
                throw new ArgumentException("Mismatched lengths");

            int n = xreal.Length;
            for (int i = 0; i < n; i++)
            {
                double sumreal = 0;
                double sumimag = 0;
                for (int j = 0; j < n; j++)
                {
                    int k = (i - j + n) % n;
                    sumreal += xreal[k] * yreal[j] - ximag[k] * yimag[j];
                    sumimag += xreal[k] * yimag[j] + ximag[k] * yreal[j];
                }
                outreal[i] = sumreal;
                outimag[i] = sumimag;
            }
        }