Mercurial > hg > may
changeset 228:1b02d903aa79
This should be quicker
author | Chris Cannam |
---|---|
date | Sun, 12 May 2013 14:56:40 +0100 |
parents | 055a0a5500d7 |
children | ac1373067054 |
files | yetilab/matrix/matrix.yeti |
diffstat | 1 files changed, 11 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/yetilab/matrix/matrix.yeti Sun May 12 14:50:35 2013 +0100 +++ b/yetilab/matrix/matrix.yeti Sun May 12 14:56:40 2013 +0100 @@ -122,23 +122,27 @@ toColumnMajor m = if not isRowMajor? m then m else flipped m fi; -// Compare matrices using the given comparator for individual cells. -// Note that matrices with different storage order but the same -// contents are equal, although comparing them is slow. -equalUnder comparator m1 m2 = +equal' vecComparator m1 m2 = if size m1 != size m2 then false elif isRowMajor? m1 != isRowMajor? m2 then - equalUnder comparator (flipped m1) m2; + equal' vecComparator (flipped m1) m2; else - compare d1 d2 = all id (map2 (vec.equalUnder comparator) d1 d2); + compare d1 d2 = all id (map2 vecComparator d1 d2); case m1 of RowM d1: case m2 of RowM d2: compare d1 d2; _: false; esac; ColM d1: case m2 of ColM d2: compare d1 d2; _: false; esac; esac fi; -equal = equalUnder (==); +// Compare matrices using the given comparator for individual cells. +// Note that matrices with different storage order but the same +// contents are equal, although comparing them is slow. +equalUnder comparator = + equal' (vec.equalUnder comparator); + +equal = + equal' vec.equal; /*!!! not needed now it's immutable? copyOf m =