private static void MatrixCheckerAndExceptionHandler(GenericMatrix <T> firstMatrix, GenericMatrix <T> secondMatrix)
        {
            if (firstMatrix.Rows != secondMatrix.Rows)
            {
                throw new ArgumentException("The Matrices have different rows!");
            }
            if (firstMatrix.Columns != secondMatrix.Columns)
            {
                throw new ArgumentException("The Matrices have different columns!");
            }

            if (firstMatrix.GetType() != secondMatrix.GetType())
            {
                throw new ArgumentException("The Matrices have different types of values! No kind if action can be performed of different type of matrices!");
            }

            //Check type of matrix values. Currently allowed value types of GenericMatrix are: (see below)
            if (firstMatrix.GetType() == typeof(GenericMatrix <int>))
            {
            }
            else if (firstMatrix.GetType() == typeof(GenericMatrix <long>))
            {
            }
            else if (firstMatrix.GetType() == typeof(GenericMatrix <float>))
            {
            }
            else if (firstMatrix.GetType() == typeof(GenericMatrix <double>))
            {
            }
            else if (firstMatrix.GetType() == typeof(GenericMatrix <decimal>))
            {
            }
            else
            {
                throw new ArgumentException("The GenericMatrix need to have some ValueType as used type! Strings, chars and so on are not allowed!");
            }
        }