Mercurial > hg > may
annotate fvector.yeti @ 29:3b237a05e785
Simplify framer
author | Chris Cannam |
---|---|
date | Thu, 20 Dec 2012 23:17:08 +0000 |
parents | 22880f531e5a |
children | 1f80673af4c7 |
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@20 | 8 ones n = |
Chris@20 | 9 (a = zeros n; |
Chris@20 | 10 for [0..n-1] do i: |
Chris@20 | 11 a[i] := 1.0; |
Chris@20 | 12 done; |
Chris@20 | 13 a); |
Chris@5 | 14 |
Chris@8 | 15 vector l is list?<number> -> ~double[] = |
Chris@8 | 16 (arr = array(l); |
Chris@8 | 17 len = length arr; |
Chris@10 | 18 v = zeros len; |
Chris@20 | 19 for [0..len-1] do i: |
Chris@20 | 20 v[i] := arr[i]; |
Chris@20 | 21 done; |
Chris@8 | 22 v); |
Chris@8 | 23 |
Chris@20 | 24 list' a is ~double[] -> list<number> = |
Chris@20 | 25 list a; |
Chris@5 | 26 |
Chris@20 | 27 length' = |
Chris@20 | 28 length . list'; |
Chris@5 | 29 |
Chris@23 | 30 equal v1 v2 = |
Chris@23 | 31 list' v1 == list' v2; |
Chris@23 | 32 |
Chris@20 | 33 copyOf v is ~double[] -> ~double[] = |
Chris@20 | 34 Arrays#copyOf(v, list' v |> length); |
Chris@9 | 35 |
Chris@26 | 36 rangeOf v start len is ~double[] -> number -> number -> ~double[] = |
Chris@20 | 37 Arrays#copyOfRange(v, start, start + len); |
Chris@12 | 38 |
Chris@24 | 39 resizedTo n v is number -> ~double[] -> ~double[] = |
Chris@24 | 40 Arrays#copyOf(v, n); |
Chris@24 | 41 |
Chris@26 | 42 concat v1 v2 is ~double[] -> ~double[] -> ~double[] = |
Chris@26 | 43 (v1len = length' v1; |
Chris@26 | 44 v2len = length' v2; |
Chris@26 | 45 v = resizedTo (v1len + v2len) v1; |
Chris@26 | 46 for [0..v2len-1] do i: v[v1len + i] := v2[i] done; |
Chris@26 | 47 v); |
Chris@26 | 48 |
Chris@5 | 49 { |
Chris@20 | 50 zeros, ones, |
Chris@20 | 51 vector, |
Chris@20 | 52 length = length', |
Chris@20 | 53 list = list', |
Chris@23 | 54 equal, |
Chris@26 | 55 copyOf, rangeOf, resizedTo, |
Chris@27 | 56 concat, |
Chris@5 | 57 } |
Chris@5 | 58 |