Accord.Math.Matrix.IsEqual C# (CSharp) Method

IsEqual() private method

private IsEqual ( this a, Byte b, Byte atol, Double rtol ) : bool
a this
b Byte
atol Byte
rtol Double
return bool
        public static bool IsEqual(this Byte[] a, Byte[] b, Byte atol = 0, Double rtol = 0)
        {
    if (a == b)
        return true;
    if (a == null && b == null)
        return true;
    if (a == null ^ b == null)
        return false;
    int[] la = a.GetLength(true);
    int[] lb = b.GetLength(true);
    if (la.Length != lb.Length)
        return false;
    for (int i = 0; i < la.Length; i++)
        if (la[i] != lb[i])
            return false;

            if (rtol > 0)
            {
                for (int i = 0; i < a.Length; i++)
{
    var A = a[i];
    var B = b[i];
    if (A == B)
        continue;
    var C = A;
    var D = B;
    var delta = Math.Abs(C - D);
    if (C == 0)
    {
        if (delta <= rtol)
            continue;
    }
    else if (D == 0)
    {
        if (delta <= rtol)
            continue;
    }

    if (delta <= Math.Abs(C) * rtol)
        continue;
    return false;
}

            }
            else if (atol > 0)
            {
                for (int i = 0; i < a.Length; i++)
{
    var A = a[i];
    var B = b[i];
    if (A == B)
        continue;
    var C = A;
    var D = B;
    if (Math.Abs(C - D) <= atol)
        continue;
    return false;
}

            }
            else
            {
                for (int i = 0; i < a.Length; i++)
{
    var A = a[i];
    var B = b[i];
    if (A != B)
        return false;
}

            }

            return true;
        }

Same methods

Matrix::IsEqual ( this a, Byte b, Decimal atol, Decimal rtol ) : bool
Matrix::IsEqual ( this a, Byte b, Double atol, Double rtol ) : bool
Matrix::IsEqual ( this a, Byte b, Int16 atol, Double rtol ) : bool
Matrix::IsEqual ( this a, Byte b, Int32 atol, Double rtol ) : bool
Matrix::IsEqual ( this a, Byte b, System.Int64 atol, Double rtol ) : bool
Matrix::IsEqual ( this a, Byte b, System.Single atol, Double rtol ) : bool
Matrix::IsEqual ( this a, Decimal b, Decimal atol, Decimal rtol ) : bool
Matrix::IsEqual ( this a, Double b, Decimal atol, Decimal rtol ) : bool
Matrix::IsEqual ( this a, Double b, Double atol, Double rtol ) : bool
Matrix::IsEqual ( this a, Int16 b, Decimal atol, Decimal rtol ) : bool
Matrix::IsEqual ( this a, Int16 b, Double atol, Double rtol ) : bool
Matrix::IsEqual ( this a, Int16 b, Int16 atol, Double rtol ) : bool
Matrix::IsEqual ( this a, Int16 b, Int32 atol, Double rtol ) : bool
Matrix::IsEqual ( this a, Int16 b, System.Int64 atol, Double rtol ) : bool
Matrix::IsEqual ( this a, Int16 b, System.Single atol, Double rtol ) : bool
Matrix::IsEqual ( this a, Int32 b, Decimal atol, Decimal rtol ) : bool
Matrix::IsEqual ( this a, Int32 b, Double atol, Double rtol ) : bool
Matrix::IsEqual ( this a, Int32 b, Int32 atol, Double rtol ) : bool
Matrix::IsEqual ( this a, Int32 b, System.Int64 atol, Double rtol ) : bool
Matrix::IsEqual ( this a, Int32 b, System.Single atol, Double rtol ) : bool
Matrix::IsEqual ( this a, System.Int64 b, Decimal atol, Decimal rtol ) : bool
Matrix::IsEqual ( this a, System.Int64 b, Double atol, Double rtol ) : bool
Matrix::IsEqual ( this a, System.Int64 b, System.Int64 atol, Double rtol ) : bool
Matrix::IsEqual ( this a, System.Int64 b, System.Single atol, Double rtol ) : bool
Matrix::IsEqual ( this a, System.Single b, Decimal atol, Decimal rtol ) : bool
Matrix::IsEqual ( this a, System.Single b, Double atol, Double rtol ) : bool
Matrix::IsEqual ( this a, System.Single b, System.Single atol, Double rtol ) : bool
Matrix::IsEqual ( this a, sbyte b, Byte atol, Double rtol ) : bool
Matrix::IsEqual ( this a, sbyte b, Decimal atol, Decimal rtol ) : bool
Matrix::IsEqual ( this a, sbyte b, Double atol, Double rtol ) : bool
Matrix::IsEqual ( this a, sbyte b, Int16 atol, Double rtol ) : bool
Matrix::IsEqual ( this a, sbyte b, Int32 atol, Double rtol ) : bool
Matrix::IsEqual ( this a, sbyte b, System.Int64 atol, Double rtol ) : bool
Matrix::IsEqual ( this a, sbyte b, System.Single atol, Double rtol ) : bool
Matrix::IsEqual ( this a, sbyte b, byte atol, Double rtol ) : bool