mirror of
https://github.com/wren-lang/wren.git
synced 2026-01-12 06:38:45 +01:00
Wren is actually doing well in it: wren mean: 1.9441 median: 1.9428 std_dev: 0.0260 lua mean: 3.5992 median: 3.6033 std_dev: 0.0156 python mean: 3.6667 median: 3.7097 std_dev: 0.1340 ruby mean: 1.3941 median: 1.3914 std_dev: 0.0091
40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
# The Computer Language Benchmarks Game
|
|
# http://shootout.alioth.debian.org/
|
|
#
|
|
# contributed by Antoine Pitrou
|
|
# modified by Dominique Wahli
|
|
# modified by Heinrich Acker
|
|
|
|
import time
|
|
|
|
def make_tree(item, depth):
|
|
if not depth: return item, None, None
|
|
item2 = item + item
|
|
depth -= 1
|
|
return item, make_tree(item2 - 1, depth), make_tree(item2, depth)
|
|
|
|
def check_tree((item, left, right)):
|
|
if not left: return item
|
|
return item + check_tree(left) - check_tree(right)
|
|
|
|
min_depth = 4
|
|
max_depth = max(min_depth + 2, 14)
|
|
stretch_depth = max_depth + 1
|
|
|
|
start = time.clock()
|
|
print "stretch tree of depth %d\t check:" % stretch_depth, check_tree(make_tree(0, stretch_depth))
|
|
|
|
long_lived_tree = make_tree(0, max_depth)
|
|
|
|
iterations = 2**max_depth
|
|
for depth in xrange(min_depth, stretch_depth, 2):
|
|
|
|
check = 0
|
|
for i in xrange(1, iterations + 1):
|
|
check += check_tree(make_tree(i, depth)) + check_tree(make_tree(-i, depth))
|
|
|
|
print "%d\t trees of depth %d\t check:" % (iterations * 2, depth), check
|
|
iterations /= 4
|
|
|
|
print "long lived tree of depth %d\t check:" % max_depth, check_tree(long_lived_tree)
|
|
print("elapsed: " + str(time.clock() - start)) |