diff yetilab/vector/vector.yeti @ 226:c00d8f7e2708

Add equalUnder to compare vectors or matrices using a particular number comparator
author Chris Cannam
date Sun, 12 May 2013 14:50:03 +0100
parents 77c6a81c577f
children ccca84efa36a
line wrap: on
line diff
--- a/yetilab/vector/vector.yeti	Sun May 12 13:31:49 2013 +0100
+++ b/yetilab/vector/vector.yeti	Sun May 12 14:50:03 2013 +0100
@@ -62,6 +62,10 @@
 equal v1 v2 =
     list' v1 == list' v2;
 
+equalUnder comparator v1 v2 =
+    length' v1 == length' v2 and
+        all id (map2 comparator (list' v1) (list' v2));
+
 copyOf v is ~double[] -> ~double[] =
     Arrays#copyOf(v, list' v |> length);
 
@@ -97,6 +101,7 @@
     empty? = empty?',
     at = at',
     equal,
+    equalUnder,
     rangeOf,
     resizedTo,
     concat,
@@ -115,6 +120,7 @@
     empty? is vector -> boolean,
     at is number -> vector -> number,
     equal is vector -> vector -> boolean,
+    equalUnder is (number -> number -> boolean) -> vector -> vector -> boolean,
     rangeOf is number -> number -> vector -> vector, //!!! not well-named now vector arg is at the end
     resizedTo is number -> vector -> vector,
     concat is list?<vector> -> vector,