Mercurial > hg > may
diff yetilab/matrix/matrix.yeti @ 229:ac1373067054
Add vector max/min, matrix difference/abs, update audiofile ref tests
author | Chris Cannam |
---|---|
date | Sun, 12 May 2013 18:04:48 +0100 |
parents | 1b02d903aa79 |
children | 51c5ce72832e |
line wrap: on
line diff
--- a/yetilab/matrix/matrix.yeti Sun May 12 14:56:40 2013 +0100 +++ b/yetilab/matrix/matrix.yeti Sun May 12 18:04:48 2013 +0100 @@ -176,6 +176,16 @@ generate do row col: getAt row col m1 + getAt row col m2 done (size m1); fi; +difference m1 m2 = //!!! doc: m1 - m2, not m2 - m1 + if (size m1) != (size m2) + then failWith "Matrices are not the same size: \(size m1), \(size m2)"; + else + generate do row col: getAt row col m1 - getAt row col m2 done (size m1); + fi; + +abs' m = + generate do row col: abs (getAt row col m) done (size m); + product m1 m2 = if (size m1).columns != (size m2).rows then failWith "Matrix dimensions incompatible: \(size m1), \(size m2) (\((size m1).columns != (size m2).rows)"; @@ -307,6 +317,8 @@ asRows, asColumns, sum = sum', + difference, + abs = abs', product, concat, rowSlice, @@ -345,6 +357,8 @@ asRows is matrix -> list<vector>, asColumns is matrix -> list<vector>, sum is matrix -> matrix -> matrix, + difference is matrix -> matrix -> matrix, + abs is matrix -> matrix, product is matrix -> matrix -> matrix, concat is (Horizontal () | Vertical ()) -> list<matrix> -> matrix, rowSlice is number -> number -> matrix -> matrix,