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

log10RmsErr() private static method

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

            double err = 0;
            for (int i = 0; i < xreal.Length; i++)
                err += (xreal[i] - yreal[i]) * (xreal[i] - yreal[i]) + (ximag[i] - yimag[i]) * (ximag[i] - yimag[i]);

            err = Math.Sqrt(err / Math.Max(xreal.Length, 1));  // Now this is a root mean square (RMS) error
            err = Math.Log10(err);

            if (err < maxLogError)
                maxLogError = err;

            return err;
        }