annotate binary_trees.rhope @ 155:d59611dcec71

Small fix to binary trees benchmark
author Mike Pavone <pavone@retrodev.com>
date Tue, 21 Dec 2010 04:12:11 +0000
parents f4fd8962c385
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
93
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
1
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
2
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
3 Blueprint Tree
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
4 {
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
5 Left
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
6 Right
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
7 Item
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
8 }
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
9
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
10 Blueprint Empty
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
11 {
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
12
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
13 }
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
14
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
15 Make Tree[item,depth:out]
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
16 {
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
17 If[depth]
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
18 {
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
19 dbl <- [item]+[item]
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
20 ndepth <- [depth]-[1]
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
21 out <- [[[Build[Tree()]]Left <<[ Make Tree[[dbl]-[1], ndepth] ]]Right <<[ Make Tree[dbl, ndepth] ]]Item <<[item]
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
22 }{
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
23 out <- [[[Build[Tree()]]Left <<[Build[Empty()]]]Right <<[Build[Empty()]]]Item <<[item]
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
24 }
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
25 }
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
26
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
27 Check Tree@Tree[node:out]
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
28 {
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
29 out <- [[[node]Item >>]+[Check Tree[[node]Left >>]]] - [Check Tree[[node]Right >>]]
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
30 }
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
31
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
32 Check Tree@Empty[node:out]
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
33 {
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
34 out <- 0
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
35 }
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
36
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
37 Step[num, depth: out]
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
38 {
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
39 out <- [Check Tree[Make Tree[num, depth]]] + [Check Tree[Make Tree[[0]-[num], depth]]]
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
40 }
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
41
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
42 Test Size[sum, current,iterations,depth:out]
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
43 {
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
44 nsum <- [sum]+[Step[current, depth]]
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
45 If[[current]=[iterations]]
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
46 {
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
47 out <- Val[nsum]
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
48 }{
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
49 out <- Test Size[nsum, [current]+[1], iterations, depth]
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
50 }
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
51 }
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
52
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
53 Test Sizes[current,max,iterations:out]
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
54 {
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
55 sum <- Test Size[0, 1, iterations, current]
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
56 {
95
f4fd8962c385 Cleaned up binary trees benchmark, made memory allocator somewhat configurable at compile time
Mike Pavone <pavone@retrodev.com>
parents: 93
diff changeset
57 Print[
f4fd8962c385 Cleaned up binary trees benchmark, made memory allocator somewhat configurable at compile time
Mike Pavone <pavone@retrodev.com>
parents: 93
diff changeset
58 [[[[String[[iterations]*[2]]
f4fd8962c385 Cleaned up binary trees benchmark, made memory allocator somewhat configurable at compile time
Mike Pavone <pavone@retrodev.com>
parents: 93
diff changeset
59 ]Append["\t trees of depth "]
f4fd8962c385 Cleaned up binary trees benchmark, made memory allocator somewhat configurable at compile time
Mike Pavone <pavone@retrodev.com>
parents: 93
diff changeset
60 ]Append[String[current]]
f4fd8962c385 Cleaned up binary trees benchmark, made memory allocator somewhat configurable at compile time
Mike Pavone <pavone@retrodev.com>
parents: 93
diff changeset
61 ]Append["\t check: "]
f4fd8962c385 Cleaned up binary trees benchmark, made memory allocator somewhat configurable at compile time
Mike Pavone <pavone@retrodev.com>
parents: 93
diff changeset
62 ]Append[String[sum]]]
93
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
63 {
155
d59611dcec71 Small fix to binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents: 95
diff changeset
64 If[[[current]+[2]]>[max]]
93
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
65 {
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
66 out <- 1
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
67 }{
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
68 out <- Test Sizes[[current]+[2], max, [iterations]/[4]]
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
69 }
95
f4fd8962c385 Cleaned up binary trees benchmark, made memory allocator somewhat configurable at compile time
Mike Pavone <pavone@retrodev.com>
parents: 93
diff changeset
70 }
93
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
71 }
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
72 }
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
73
95
f4fd8962c385 Cleaned up binary trees benchmark, made memory allocator somewhat configurable at compile time
Mike Pavone <pavone@retrodev.com>
parents: 93
diff changeset
74 Main[args]
93
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
75 {
95
f4fd8962c385 Cleaned up binary trees benchmark, made memory allocator somewhat configurable at compile time
Mike Pavone <pavone@retrodev.com>
parents: 93
diff changeset
76 [args]Index[1]
f4fd8962c385 Cleaned up binary trees benchmark, made memory allocator somewhat configurable at compile time
Mike Pavone <pavone@retrodev.com>
parents: 93
diff changeset
77 {
f4fd8962c385 Cleaned up binary trees benchmark, made memory allocator somewhat configurable at compile time
Mike Pavone <pavone@retrodev.com>
parents: 93
diff changeset
78 min depth <- 4
f4fd8962c385 Cleaned up binary trees benchmark, made memory allocator somewhat configurable at compile time
Mike Pavone <pavone@retrodev.com>
parents: 93
diff changeset
79 max depth <- Max[[min depth]+[2], Int32[~]]
f4fd8962c385 Cleaned up binary trees benchmark, made memory allocator somewhat configurable at compile time
Mike Pavone <pavone@retrodev.com>
parents: 93
diff changeset
80 Print[
f4fd8962c385 Cleaned up binary trees benchmark, made memory allocator somewhat configurable at compile time
Mike Pavone <pavone@retrodev.com>
parents: 93
diff changeset
81 [[["stretch tree of depth "
f4fd8962c385 Cleaned up binary trees benchmark, made memory allocator somewhat configurable at compile time
Mike Pavone <pavone@retrodev.com>
parents: 93
diff changeset
82 ]Append[String[[max depth]+[1]]]
f4fd8962c385 Cleaned up binary trees benchmark, made memory allocator somewhat configurable at compile time
Mike Pavone <pavone@retrodev.com>
parents: 93
diff changeset
83 ]Append["\t check: "]
f4fd8962c385 Cleaned up binary trees benchmark, made memory allocator somewhat configurable at compile time
Mike Pavone <pavone@retrodev.com>
parents: 93
diff changeset
84 ]Append[String[Check Tree[Make Tree[0, [max depth]+[1]]]]]]
f4fd8962c385 Cleaned up binary trees benchmark, made memory allocator somewhat configurable at compile time
Mike Pavone <pavone@retrodev.com>
parents: 93
diff changeset
85 { long lived <- Make Tree[0, max depth]
f4fd8962c385 Cleaned up binary trees benchmark, made memory allocator somewhat configurable at compile time
Mike Pavone <pavone@retrodev.com>
parents: 93
diff changeset
86 { Test Sizes[min depth, max depth, [1]LShift[max depth]]
f4fd8962c385 Cleaned up binary trees benchmark, made memory allocator somewhat configurable at compile time
Mike Pavone <pavone@retrodev.com>
parents: 93
diff changeset
87 { Print[
f4fd8962c385 Cleaned up binary trees benchmark, made memory allocator somewhat configurable at compile time
Mike Pavone <pavone@retrodev.com>
parents: 93
diff changeset
88 [[["long lived tree of depth "
f4fd8962c385 Cleaned up binary trees benchmark, made memory allocator somewhat configurable at compile time
Mike Pavone <pavone@retrodev.com>
parents: 93
diff changeset
89 ]Append[String[max depth]]
f4fd8962c385 Cleaned up binary trees benchmark, made memory allocator somewhat configurable at compile time
Mike Pavone <pavone@retrodev.com>
parents: 93
diff changeset
90 ]Append["\t check: "]
f4fd8962c385 Cleaned up binary trees benchmark, made memory allocator somewhat configurable at compile time
Mike Pavone <pavone@retrodev.com>
parents: 93
diff changeset
91 ]Append[String[Check Tree[long lived]]]] }}}
f4fd8962c385 Cleaned up binary trees benchmark, made memory allocator somewhat configurable at compile time
Mike Pavone <pavone@retrodev.com>
parents: 93
diff changeset
92 }{
f4fd8962c385 Cleaned up binary trees benchmark, made memory allocator somewhat configurable at compile time
Mike Pavone <pavone@retrodev.com>
parents: 93
diff changeset
93 Print["you must provide a max depth param"]
f4fd8962c385 Cleaned up binary trees benchmark, made memory allocator somewhat configurable at compile time
Mike Pavone <pavone@retrodev.com>
parents: 93
diff changeset
94 }
93
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
95 }
09831a71a4bc Added binary trees benchmark
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
96