annotate fvector.yeti @ 26:0d03455c105b
Pull out tests into subdir
author |
Chris Cannam |
date |
Thu, 20 Dec 2012 21:56:27 +0000 |
parents |
ad5149048604 |
children |
22880f531e5a |
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@26
|
56 concat
|
Chris@5
|
57 }
|
Chris@5
|
58
|