Mercurial > hg > may
annotate fmatrix.yeti @ 43:27c6525fa5db
Add windowedFrames
author | Chris Cannam |
---|---|
date | Mon, 24 Dec 2012 09:20:58 +0000 |
parents | 0b04bc5d2e53 |
children |
rev | line source |
---|---|
Chris@10 | 1 module fmatrix; |
Chris@5 | 2 |
Chris@18 | 3 // Basic matrices using primitive array of double as each row |
Chris@18 | 4 |
Chris@10 | 5 vec = load fvector; |
Chris@9 | 6 |
Chris@10 | 7 zeroMatrix rows cols = array (map \(vec.zeros cols) [1..rows]); |
Chris@5 | 8 |
Chris@20 | 9 generate f rows cols = |
Chris@5 | 10 (m = zeroMatrix rows cols; |
Chris@5 | 11 for [0..rows-1] do row: |
Chris@5 | 12 for [0..cols-1] do col: |
Chris@9 | 13 m[row][col] := f row col; |
Chris@5 | 14 done; |
Chris@5 | 15 done; |
Chris@5 | 16 m); |
Chris@5 | 17 |
Chris@20 | 18 constMatrix n = generate do row col: n done; |
Chris@20 | 19 randomMatrix = generate do row col: Math#random() done; |
Chris@5 | 20 identityMatrix = constMatrix 1; |
Chris@5 | 21 |
Chris@20 | 22 width m = if length m > 0 then vec.length m[0] else 0 fi; |
Chris@6 | 23 cols = width; |
Chris@6 | 24 |
Chris@5 | 25 height m = length m; |
Chris@6 | 26 rows = height; |
Chris@6 | 27 |
Chris@5 | 28 dimensions m = { cols = width m, rows = height m }; |
Chris@5 | 29 |
Chris@20 | 30 copyOf m = array (map vec.copyOf m); |
Chris@9 | 31 |
Chris@6 | 32 transposed m is array<~double[]> -> array<~double[]> = |
Chris@20 | 33 generate do row col: m[col][row] done (cols m) (rows m); |
Chris@8 | 34 |
Chris@5 | 35 { |
Chris@20 | 36 generate, constMatrix, randomMatrix, zeroMatrix, identityMatrix, |
Chris@6 | 37 width, cols, height, rows, dimensions, |
Chris@20 | 38 copyOf, |
Chris@15 | 39 transposed, |
Chris@5 | 40 } |
Chris@5 | 41 |