make tests\benchmarks programs compile again

This commit is contained in:
Araq 2018-10-28 13:16:55 +01:00
commit c804b606f9
2 changed files with 34 additions and 34 deletions

View file

@ -1,31 +1,31 @@
import os import os
import strutils import strutils
proc fannkuch (n: int): int = proc fannkuch(n: int): int =
var var
count: seq[int] count: seq[int]
maxFlips = 0 maxFlips = 0
m = n-1 m = n-1
r = n r = n
check = 0 check = 0
perm1: seq[int] perm1: seq[int]
perm: seq[int] perm: seq[int]
newSeq (count, n+1) newSeq(count, n+1)
newSeq (perm1, n) newSeq(perm1, n)
newSeq (perm, n) newSeq(perm, n)
for i in 0 .. n-1: for i in 0 .. n-1:
count[i] = i+1 count[i] = i+1
perm1[i] = i perm1[i] = i
perm[i] = i perm[i] = i
count[n] = n+1 count[n] = n+1
while True: while true:
if check < 30: if check < 30:
for i in items (perm1): for i in items(perm1):
write (stdout, $(i+1)) write(stdout, $(i+1))
echo ("") echo("")
inc (check) inc(check)
while r != 1: while r != 1:
count[r-1] = r count[r-1] = r
@ -40,8 +40,8 @@ proc fannkuch (n: int): int =
var k = perm[0] var k = perm[0]
while k != 0: while k != 0:
for i in 0 .. (k div 2): for i in 0 .. (k div 2):
swap (perm[i], perm[k-i]) swap(perm[i], perm[k-i])
inc (flipsCount) inc(flipsCount)
k = perm[0] k = perm[0]
if flipsCount > maxFlips: if flipsCount > maxFlips:
@ -59,11 +59,11 @@ proc fannkuch (n: int): int =
perm1[i] = perm1[i+1] perm1[i] = perm1[i+1]
perm1[r] = tmp perm1[r] = tmp
dec (count[r]) dec(count[r])
if count[r] > 0: if count[r] > 0:
break makePerm break makePerm
inc (r) inc(r)
return maxFlips return maxFlips
var n = 10 var n = 10
echo ("Pfannkuchen(" & $n & ") = " & $fannkuch (n)) echo("Pfannkuchen(" & $n & ") = " & $fannkuch(n))

View file

@ -21,34 +21,34 @@ proc random(): int32 =
var n = 9999999 var n = 9999999
var data: seq[int32] var data: seq[int32]
newSeq (data, n) newSeq(data, n)
for i in 0 .. data.high(): for i in 0 .. data.high():
data[i] = random() data[i] = random()
proc `$` (d: seq[int32]): string = proc `$`(d: seq[int32]): string =
result = "[ " result = "[ "
for i in items (d): for i in items(d):
result.addSep (", ", 2) result.addSep(", ", 2)
result.add ($(i and 0xFFFF_FFFF'i64)) result.add($(i and 0xFFFF_FFFF'i64))
result.add (" ]") result.add(" ]")
# Sort the data # Sort the data
proc sort (start, stop: int) = proc sort(start, stop: int) =
if stop <= start+1: if stop <= start+1:
return return
var j = start var j = start
for i in start..stop-2: for i in start..stop-2:
if data[i] <% data[stop-1]: if data[i] <% data[stop-1]:
swap (data[i], data[j]) swap(data[i], data[j])
inc (j) inc(j)
swap (data[j], data[stop-1]) swap(data[j], data[stop-1])
sort (start, j) sort(start, j)
sort (j+1, stop) sort(j+1, stop)
sort (0, data.len) sort(0, data.len)
echo (data[n div 2 - 1] and 0xFFFF_FFFF'i64, ", ", echo(data[n div 2 - 1] and 0xFFFF_FFFF'i64, ", ",
data[n div 2] and 0xFFFF_FFFF'i64, ", ", data[n div 2] and 0xFFFF_FFFF'i64, ", ",
data[n div 2 + 1] and 0xFFFF_FFFF'i64) data[n div 2 + 1] and 0xFFFF_FFFF'i64)