public boolean equals(Object obj) { if (content instanceof DiagonalDoubleMatrix2D && obj instanceof DiagonalDoubleMatrix2D) { double epsilon = cern.colt.matrix.tdouble.algo.DoubleProperty.DEFAULT.tolerance(); if (this == obj) return true; if (!(this != null && obj != null)) return false; DiagonalDoubleMatrix2D A = (DiagonalDoubleMatrix2D) content; DiagonalDoubleMatrix2D B = (DiagonalDoubleMatrix2D) obj; if (A.columns() != B.columns() || A.rows() != B.rows() || A.diagonalIndex() != B.diagonalIndex() || A.diagonalLength() != B.diagonalLength()) return false; double[] AElements = A.elements(); double[] BElements = B.elements(); for (int r = 0; r < AElements.length; r++) { double x = AElements[r]; double value = BElements[r]; double diff = Math.abs(value - x); if ((diff != diff) && ((value != value && x != x) || value == x)) diff = 0; if (!(diff <= epsilon)) { return false; } } return true; } else { return super.equals(obj); } }
public boolean equals(Object obj) { if (content instanceof DiagonalDoubleMatrix2D && obj instanceof DiagonalDoubleMatrix2D) { double epsilon = cern.colt.matrix.tdouble.algo.DoubleProperty.DEFAULT.tolerance(); if (this == obj) return true; if (!(this != null && obj != null)) return false; DiagonalDoubleMatrix2D A = (DiagonalDoubleMatrix2D) content; DiagonalDoubleMatrix2D B = (DiagonalDoubleMatrix2D) obj; if (A.columns() != B.columns() || A.rows() != B.rows() || A.diagonalIndex() != B.diagonalIndex() || A.diagonalLength() != B.diagonalLength()) return false; double[] AElements = A.elements(); double[] BElements = B.elements(); for (int r = 0; r < AElements.length; r++) { double x = AElements[r]; double value = BElements[r]; double diff = Math.abs(value - x); if ((diff != diff) && ((value != value && x != x) || value == x)) diff = 0; if (!(diff <= epsilon)) { return false; } } return true; } else { return super.equals(obj); } }