diff options
Diffstat (limited to 'bench/rule110.bad')
-rw-r--r-- | bench/rule110.bad | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/bench/rule110.bad b/bench/rule110.bad new file mode 100644 index 0000000..b4a2a71 --- /dev/null +++ b/bench/rule110.bad | |||
@@ -0,0 +1,39 @@ | |||
1 | ; Parameters. | ||
2 | let line = 0b00000000000000000000000000000001 | ||
3 | let max_iter = 30 | ||
4 | |||
5 | ; Print current line. | ||
6 | fun print_line(line: int): nil { | ||
7 | for let i = 0 , i < 64 , set i += 1 { | ||
8 | let val = line >> 63 - i & 0b1 | ||
9 | if val == 0b1 { | ||
10 | print("■ ") | ||
11 | } else { | ||
12 | print("· ") | ||
13 | } | ||
14 | } | ||
15 | println("") | ||
16 | } | ||
17 | |||
18 | ; Get the next line. | ||
19 | fun next_line(line: int): int { | ||
20 | let next = 0 | ||
21 | for let j = 0 , j < 61 , set j += 1 { | ||
22 | let val = line >> 60 - j & 0b111 | ||
23 | set val = cond { | ||
24 | val == 1 = 1 | ||
25 | val == 2 = 1 | ||
26 | val == 3 = 1 | ||
27 | val == 5 = 1 | ||
28 | val == 6 = 1 | ||
29 | else = 0 | ||
30 | } | ||
31 | set next |= val << 61 - j | ||
32 | } | ||
33 | next | 1 | ||
34 | } | ||
35 | |||
36 | for let iter = 0 , iter < max_iter , set iter += 1 { | ||
37 | print_line(line) | ||
38 | set line = next_line(line) | ||
39 | } | ||