File: allocs.fut

package info (click to toggle)
haskell-futhark 0.25.32-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 18,236 kB
  • sloc: haskell: 100,484; ansic: 12,100; python: 3,440; yacc: 785; sh: 561; javascript: 558; lisp: 399; makefile: 272
file content (15 lines) | stat: -rw-r--r-- 443 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-- Nasty program that tries to leak memory.  If we can run this
-- without leaking, then we're doing well.
-- ==
-- compiled input { [0, 1000, 42, 1001, 50000] }
-- output { 1300103225i64 }

def main [n] (a: [n]i32): i64 =
  let b = loop b = iota(10) for i < n do
    (let m = i64.i32 a[i]
     in if m < length b
        then b
        else map (\j  ->
                   j + b[j % length b]) (
                 iota(m)))
  in reduce (+) 0 b