Mercurial > hg > may
changeset 461:338ef3a95d8e
Use zipped and unzipped in channels
author | Chris Cannam |
---|---|
date | Fri, 25 Oct 2013 11:50:59 +0100 |
parents | b3106795bbbf |
children | bf457f62033d |
files | src/may/stream/channels.yeti |
diffstat | 1 files changed, 3 insertions(+), 26 deletions(-) [+] |
line wrap: on
line diff
--- a/src/may/stream/channels.yeti Fri Oct 25 11:50:35 2013 +0100 +++ b/src/may/stream/channels.yeti Fri Oct 25 11:50:59 2013 +0100 @@ -14,34 +14,11 @@ (raw' v is ~double[] -> ~double[] = v; raw' as vector -> ~double[]); -interleaved m = - ({ columns, rows } = (mat.size m); - if rows == 1 then - mat.getRow 0 m - else - v = new double[columns * rows]; - for [0..rows-1] do row: - for [0..columns-1] do col: - v[col * rows + row] := mat.at m row col; - done; - done; - vec.vector v; - fi); +interleaved m = + bf.zipped (mat.asRows m); deinterleaved channels b = - if channels == 1 then - mat.newRowVector b - else - rows = (vec.length b) / channels; - vv = array (map \(new double[rows]) [0..channels-1]); - v = raw b; - for [0..rows-1] do row: - for [0..channels-1] do col: - vv[col][row] := v[channels * row + col]; - done - done; - mat.newMatrix (RowMajor ()) (map vec.vector vv); - fi; + mat.newMatrix (RowMajor ()) (list (bf.unzipped channels b)); mixedDown m = //!!!doc: average, not sum ({ columns, rows } = (mat.size m);