diff floatrix.yeti @ 7:c5dc45708e74

Finish initial set of functions in primitive-array backed matrix; use in audiofile
author Chris Cannam
date Wed, 12 Dec 2012 17:12:34 +0000
parents 0718b9253e59
children dc72a1d15901
line wrap: on
line diff
--- a/floatrix.yeti	Wed Dec 12 15:55:08 2012 +0000
+++ b/floatrix.yeti	Wed Dec 12 17:12:34 2012 +0000
@@ -36,25 +36,25 @@
 transposed m is array<~double[]> -> array<~double[]> = 
     generateMatrix do row col: m[col][row] done (cols m) (rows m);
         
+interleaved m = 
+   ({ cols, rows } = dimensions m;
+    v = zeros (cols * rows);
+    for [0..rows-1] do row:
+        for [0..cols-1] do col:
+            v[col * rows + row] := m[row][col];
+        done;
+    done;
+    v);
 
-
-/*
-
-interleaved m = array(concat(transposed m));
-
-deinterleaved rows v =
+deinterleaved rows v is number -> ~double[] -> 'a =
     generateMatrix do row col:
         v[rows * col + row]
-    done rows (length v / rows);
-*/
+    done rows (length (arrayWrap v) / rows);
 
 {
 zeros, ones,
 generateMatrix, constMatrix, randomMatrix, zeroMatrix, identityMatrix,
 width, cols, height, rows, dimensions,
-transposed,
-/*
-interleaved, deinterleaved,
-*/
+transposed, interleaved, deinterleaved,
 }