Mercurial > hg > may
annotate fvector.yeti @ 43:27c6525fa5db
Add windowedFrames
author | Chris Cannam |
---|---|
date | Mon, 24 Dec 2012 09:20:58 +0000 |
parents | fa49869bda51 |
children | 771ae8178180 |
rev | line source |
---|---|
Chris@10 | 1 module fvector; |
Chris@5 | 2 |
Chris@9 | 3 import java.util: Arrays; |
Chris@9 | 4 |
Chris@20 | 5 zeros n = |
Chris@20 | 6 new double[n]; |
Chris@20 | 7 |
Chris@36 | 8 consts m n = |
Chris@20 | 9 (a = zeros n; |
Chris@20 | 10 for [0..n-1] do i: |
Chris@36 | 11 a[i] := m; |
Chris@20 | 12 done; |
Chris@20 | 13 a); |
Chris@5 | 14 |
Chris@36 | 15 ones = consts 1.0; |
Chris@36 | 16 |
Chris@8 | 17 vector l is list?<number> -> ~double[] = |
Chris@8 | 18 (arr = array(l); |
Chris@8 | 19 len = length arr; |
Chris@10 | 20 v = zeros len; |
Chris@20 | 21 for [0..len-1] do i: |
Chris@20 | 22 v[i] := arr[i]; |
Chris@20 | 23 done; |
Chris@8 | 24 v); |
Chris@8 | 25 |
Chris@20 | 26 list' a is ~double[] -> list<number> = |
Chris@20 | 27 list a; |
Chris@5 | 28 |
Chris@20 | 29 length' = |
Chris@20 | 30 length . list'; |
Chris@5 | 31 |
Chris@23 | 32 equal v1 v2 = |
Chris@23 | 33 list' v1 == list' v2; |
Chris@23 | 34 |
Chris@20 | 35 copyOf v is ~double[] -> ~double[] = |
Chris@20 | 36 Arrays#copyOf(v, list' v |> length); |
Chris@9 | 37 |
Chris@26 | 38 rangeOf v start len is ~double[] -> number -> number -> ~double[] = |
Chris@20 | 39 Arrays#copyOfRange(v, start, start + len); |
Chris@12 | 40 |
Chris@24 | 41 resizedTo n v is number -> ~double[] -> ~double[] = |
Chris@24 | 42 Arrays#copyOf(v, n); |
Chris@24 | 43 |
Chris@35 | 44 concat vv is list?<~double[]> -> ~double[] = |
Chris@35 | 45 (len = sum (map length' vv); |
Chris@35 | 46 vout = zeros len; |
Chris@35 | 47 var base = 0; |
Chris@35 | 48 for vv do v: |
Chris@35 | 49 vlen = length' v; |
Chris@35 | 50 for [0..vlen-1] do i: vout[base + i] := v[i] done; |
Chris@35 | 51 base := base + vlen; |
Chris@35 | 52 done; |
Chris@35 | 53 vout); |
Chris@26 | 54 |
Chris@5 | 55 { |
Chris@36 | 56 zeros, consts, ones, |
Chris@20 | 57 vector, |
Chris@20 | 58 length = length', |
Chris@20 | 59 list = list', |
Chris@23 | 60 equal, |
Chris@26 | 61 copyOf, rangeOf, resizedTo, |
Chris@27 | 62 concat, |
Chris@5 | 63 } |
Chris@5 | 64 |