Mercurial > hg > may
diff fvector.yeti @ 35:1f80673af4c7
Make concat take a list of arbitrary length; test it, and improve test output
author | Chris Cannam |
---|---|
date | Sat, 22 Dec 2012 10:08:06 +0000 |
parents | 22880f531e5a |
children | fa49869bda51 |
line wrap: on
line diff
--- a/fvector.yeti Fri Dec 21 22:56:45 2012 +0000 +++ b/fvector.yeti Sat Dec 22 10:08:06 2012 +0000 @@ -39,12 +39,16 @@ resizedTo n v is number -> ~double[] -> ~double[] = Arrays#copyOf(v, n); -concat v1 v2 is ~double[] -> ~double[] -> ~double[] = - (v1len = length' v1; - v2len = length' v2; - v = resizedTo (v1len + v2len) v1; - for [0..v2len-1] do i: v[v1len + i] := v2[i] done; - v); +concat vv is list?<~double[]> -> ~double[] = + (len = sum (map length' vv); + vout = zeros len; + var base = 0; + for vv do v: + vlen = length' v; + for [0..vlen-1] do i: vout[base + i] := v[i] done; + base := base + vlen; + done; + vout); { zeros, ones,