summaryrefslogtreecommitdiff
path: root/benchmark/so_sieve.yml
blob: ae90f8f6fbc42325309815c32311ba7196c5a203 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
prelude: |
  # from http://www.bagley.org/~doug/shootout/bench/sieve/sieve.ruby
benchmark:
  so_sieve: |
    num = 500
    count = i = j = 0
    flags0 = Array.new(8192,1)
    k = 0
    while k < num
      k += 1
      count = 0
      flags = flags0.dup
      i = 2
      while i<8192
        i += 1
        if flags[i]
          # remove all multiples of prime: i
          j = i*i
          while j < 8192
            j += i
            flags[j] = nil
          end
          count += 1
        end
      end
    end
    count
loop_count: 1