Mercurial > hg > may
view fvector.yeti @ 89:ef650ce77237
Start trying to adapt grids
author | Chris Cannam |
---|---|
date | Mon, 18 Mar 2013 21:24:04 +0000 |
parents | 771ae8178180 |
children | cf88733911fd |
line wrap: on
line source
module fvector; import java.util: Arrays; zeros n = new double[n]; consts m n = (a = zeros n; for [0..n-1] do i: a[i] := m; done; a); ones = consts 1.0; 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'; floats a is ~double[] -> ~float[] = (len = length' a; f = new float[len]; for [0..len-1] do i: f[i] := a[i]; done; f); 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 vv is list?<~double[]> -> ~double[] = (len = sum (map length' vv); vout = zeros len; var base = 0; for vv do v: vlen = length' v; for [0..vlen-1] do i: vout[base + i] := v[i] done; base := base + vlen; done; vout); { zeros, consts, ones, vector, length = length', list = list', floats, equal, copyOf, rangeOf, resizedTo, concat, }