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