Updated release image date.
[cslatevm.git] / tests / benchmark / spectralnorm.slate
blob7ad48dd5e4c77056eec2e07e195046d679849905
2 i1@(Integer traits) matrixA: i2@(Integer traits)
4   1.0 / (i1 + i2 * (i1 + i2 + 1) / 2 + i1 + 1)
5 ].
7 a@(Array traits) multiplyAv
8 [| n av |
9   n := a size.
10   av := (Array new &capacity: n) atAllPut: 0.0.
11   0 below: n do: [| :i |
12     0 below: n do: [| :j |
13       av at: i put: (av at: i) + ((i matrixA: j) * (a at: j))]].
14   av
17 a@(Array traits) multiplyAtv
18 [| n atv |
19   n := a size.
20   atv := ((Array new &capacity: n) atAllPut: 0.0).
21   0 below: n do: [| :i |
22     0 below: n do: [| :j |
23       atv at: i put: (atv at: i) + ((j matrixA: i) * (a at: j))]].
24   atv
27 a@(Array traits) multiplyAtAv
29   a multiplyAv multiplyAtv
32 n@(Integer traits) spectralnorm
33 [| n u v vBv vv |
34   u := (Array new &capacity: n) atAllPut: 1.0.
35   v := (Array new &capacity: n) atAllPut: 0.0.
36   1 upTo: 10 do:
37     [| :i |
38      v := u multiplyAtAv.
39      u := v multiplyAtAv].
40   vBv := 0.0.
41   vv := 0.0.
42   0 below: n do:
43     [| :i |
44      vBv += (u at: i) * (v at: i).
45      vv += (v at: i) * (v at: i)].
46   (vBv / vv) sqrt printString &precision: 9