changeset 547:1200e1029ecb

Add repeatedHorizontal/Vertical
author Chris Cannam
date Mon, 24 Mar 2014 11:23:28 +0000
parents 17d5a8986f6f
children 712999a0ad66
files src/may/matrix.yeti src/may/matrix/test/test_matrix.yeti
diffstat 2 files changed, 44 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/may/matrix.yeti	Mon Mar 24 09:59:27 2014 +0000
+++ b/src/may/matrix.yeti	Mon Mar 24 11:23:28 2014 +0000
@@ -885,6 +885,14 @@
             fi
     fi);
 
+repeatedHorizontal n m =
+   (cols = asColumns m;
+    fromColumns (fold do acc _: acc ++ cols done [] [1..n]));
+
+repeatedVertical n m =
+   (rows = asRows m;
+    fromRows (fold do acc _: acc ++ rows done [] [1..n]));
+
 minValue m =
     if width m == 0 or height m == 0 then 0
     else 
@@ -959,7 +967,6 @@
     toSparse,
     toDense,
     scaled,
-    resizedTo,
     minValue,
     maxValue,
     asRows,
@@ -974,6 +981,9 @@
     product,
     entryWiseProduct,
     entryWiseDivide,
+    resizedTo,
+    repeatedHorizontal,
+    repeatedVertical,
     concatHorizontal,
     concatVertical,
     rowSlice,
@@ -1020,7 +1030,6 @@
     toSparse is matrix_t -> matrix_t,
     toDense is matrix_t -> matrix_t,
     scaled is number -> matrix_t -> matrix_t,
-    resizedTo is { rows is number, columns is number } -> matrix_t -> matrix_t,
     minValue is matrix_t -> number,
     maxValue is matrix_t -> number,
     asRows is matrix_t -> list<vec.vector_t>, 
@@ -1035,6 +1044,9 @@
     product is matrix_t -> matrix_t -> matrix_t,
     entryWiseProduct is matrix_t -> matrix_t -> matrix_t,
     entryWiseDivide is matrix_t -> matrix_t -> matrix_t,
+    resizedTo is { rows is number, columns is number } -> matrix_t -> matrix_t,
+    repeatedHorizontal is number -> matrix_t -> matrix_t,
+    repeatedVertical is number -> matrix_t -> matrix_t,
     concatHorizontal is list<matrix_t> -> matrix_t,
     concatVertical is list<matrix_t> -> matrix_t,
     rowSlice is matrix_t -> number -> number -> matrix_t, 
--- a/src/may/matrix/test/test_matrix.yeti	Mon Mar 24 09:59:27 2014 +0000
+++ b/src/may/matrix/test/test_matrix.yeti	Mon Mar 24 11:23:28 2014 +0000
@@ -445,6 +445,36 @@
         [[1,4],[0,5],[3,6]];
 ),
 
+"repeated-horiz-\(name)": \(
+    compareMatrices
+       (mat.repeatedHorizontal 2 (fromColumns [[1,4],[0,5]]))
+       (fromColumns [[1,4],[0,5],[1,4],[0,5]]) and
+    compareMatrices
+       (mat.repeatedHorizontal 2 (fromRows [[1,0],[4,5]]))
+       (fromColumns [[1,4],[0,5],[1,4],[0,5]]) and
+    compareMatrices
+       (mat.repeatedHorizontal 0 (fromColumns [[1,4],[0,5]]))
+       (fromColumns []) and
+    compareMatrices
+       (mat.repeatedHorizontal 4 (fromColumns [[]]))
+       (fromColumns [[],[],[],[]])
+),
+
+"repeated-vert-\(name)": \(
+    compareMatrices
+       (mat.repeatedVertical 2 (fromRows [[1,4],[0,5]]))
+       (fromRows [[1,4],[0,5],[1,4],[0,5]]) and
+    compareMatrices
+       (mat.repeatedVertical 2 (fromColumns [[1,0],[4,5]]))
+       (fromRows [[1,4],[0,5],[1,4],[0,5]]) and
+    compareMatrices
+       (mat.repeatedVertical 0 (fromRows [[1,4],[0,5]]))
+       (fromRows []) and
+    compareMatrices
+       (mat.repeatedVertical 4 (fromRows [[]]))
+       (fromRows [[],[],[],[]])
+),
+
 "concat-horiz-\(name)": \(
     compareMatrices
        (mat.concatHorizontal