Mercurial > hg > may
annotate fmatrix.yeti @ 16:e8d404787c35
Start on tests
author | Chris Cannam |
---|---|
date | Sat, 15 Dec 2012 23:50:58 +0000 |
parents | 0ddc2aa8885d |
children | 12c6f103ba8e |
rev | line source |
---|---|
Chris@10 | 1 module fmatrix; |
Chris@5 | 2 |
Chris@10 | 3 vec = load fvector; |
Chris@9 | 4 |
Chris@10 | 5 zeroMatrix rows cols = array (map \(vec.zeros cols) [1..rows]); |
Chris@5 | 6 |
Chris@5 | 7 generateMatrix f rows cols = |
Chris@5 | 8 (m = zeroMatrix rows cols; |
Chris@5 | 9 for [0..rows-1] do row: |
Chris@5 | 10 for [0..cols-1] do col: |
Chris@9 | 11 m[row][col] := f row col; |
Chris@5 | 12 done; |
Chris@5 | 13 done; |
Chris@5 | 14 m); |
Chris@5 | 15 |
Chris@5 | 16 constMatrix n = generateMatrix do row col: n done; |
Chris@5 | 17 randomMatrix = generateMatrix do row col: Math#random() done; |
Chris@5 | 18 identityMatrix = constMatrix 1; |
Chris@5 | 19 |
Chris@10 | 20 width m = if length m > 0 then vec.vectorLength m[0] else 0 fi; |
Chris@6 | 21 cols = width; |
Chris@6 | 22 |
Chris@5 | 23 height m = length m; |
Chris@6 | 24 rows = height; |
Chris@6 | 25 |
Chris@5 | 26 dimensions m = { cols = width m, rows = height m }; |
Chris@5 | 27 |
Chris@10 | 28 copyOfMatrix m = array (map vec.copyOfVector m); |
Chris@9 | 29 |
Chris@6 | 30 transposed m is array<~double[]> -> array<~double[]> = |
Chris@6 | 31 generateMatrix do row col: m[col][row] done (cols m) (rows m); |
Chris@8 | 32 |
Chris@5 | 33 { |
Chris@5 | 34 generateMatrix, constMatrix, randomMatrix, zeroMatrix, identityMatrix, |
Chris@6 | 35 width, cols, height, rows, dimensions, |
Chris@10 | 36 copyOfMatrix, |
Chris@15 | 37 transposed, |
Chris@5 | 38 } |
Chris@5 | 39 |