Mercurial > hg > may
view fvector.yeti @ 29:3b237a05e785
Simplify framer
author | Chris Cannam |
---|---|
date | Thu, 20 Dec 2012 23:17:08 +0000 |
parents | 22880f531e5a |
children | 1f80673af4c7 |
line wrap: on
line source
module fvector; import java.util: Arrays; zeros n = new double[n]; ones n = (a = zeros n; for [0..n-1] do i: a[i] := 1.0; done; a); vector l is list?<number> -> ~double[] = (arr = array(l); len = length arr; v = zeros len; for [0..len-1] do i: v[i] := arr[i]; done; v); list' a is ~double[] -> list<number> = list a; length' = length . list'; equal v1 v2 = list' v1 == list' v2; copyOf v is ~double[] -> ~double[] = Arrays#copyOf(v, list' v |> length); rangeOf v start len is ~double[] -> number -> number -> ~double[] = Arrays#copyOfRange(v, start, start + len); 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); { zeros, ones, vector, length = length', list = list', equal, copyOf, rangeOf, resizedTo, concat, }