Skip to content

Commit

Permalink
issue #198 add another test for sieve - but using while loop
Browse files Browse the repository at this point in the history
  • Loading branch information
dibyendumajumdar committed Nov 1, 2020
1 parent ea6c408 commit a3bf9dc
Showing 1 changed file with 38 additions and 0 deletions.
38 changes: 38 additions & 0 deletions tests/comptests/17_iarray_sieve.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
local sieve = compiler.load([[
local i: integer, k: integer, prime: integer, count: integer
local flags: integer[] = table.intarray(8190)
local iter: integer = 0
while iter <= 100000 do
count = 0
i = 0
while i <= 8190 do
flags[i] = 1
i = i + 1
end
i = 0
while i <= 8190 do
if flags[i] == 1 then
prime = i + i + 3;
k = i + prime
while k <= 8190 do
flags[k] = 0
k = k + prime
end
count = count + 1
end
i = i + 1
end
iter = iter + 1
end
return count
]]
)
assert(sieve and type(sieve) == 'function')

local t1 = os.clock()
local count = sieve()
local t2 = os.clock()
print("time taken ", t2-t1)
print(count)
assert(count == 1899)

0 comments on commit a3bf9dc

Please sign in to comment.