_a2a_subst.nx source
↩ module page · 30 lines · 657 B
1import "syscalls.nx"
2import "sketch_hll.nx"
3
4func write_b(buf: *u8, value: i64) -> i64 {
5 var i: i64 = 0
6 var v: i64 = value
7 while i < 8 {
8 buf[i] = (v & 0xFF) as u8
9 v = v >> 8
10 i = i + 1
11 }
12 return 0
13}
14
15func main() -> i64 {
16 let hll: *Hll = nx_hll_alloc(12, 42)
17 if hll == (0 as *Hll) { return 1 }
18 let key_raw: *u8 = sys_mmap(8)
19 let key: *u8 = key_raw
20 var i: i64 = 0
21 while i < 100000 {
22 write_b(key, i + 9000000)
23 nx_hll_add(hll, key, 8)
24 i = i + 1
25 }
26 let est: i64 = nx_hll_estimate(hll)
27 if est < 95000 { return 2 }
28 if est > 105000 { return 3 }
29 return 0
30}