nx_posting_compress_gate.nx source
↩ module page · 56 lines · 3166 B
1// nx_posting_compress_gate.nx -- proves posting compression is LOSSLESS (roundtrip identity) + actually COMPRESSES.
2// license_tier: ORIGINAL
3import "nx_posting_compress.nx"
4import "nx_gate.nx"
5
6func pcg_eq(a: *i64, an: i64, b: *i64, bn: i64) -> i64 { if an!=bn { return 0 } var i: i64=0; while i<an { if a[i]!=b[i] { return 0 } i=i+1 } return 1 }
7
8func main() -> i64 {
9 gw("=== nx_posting_compress_gate: delta+bit-pack posting lists (lossless + smaller) ===\n" as *u8)
10 var pass: i64=0; var tot: i64=0
11
12 // T1 -- small list roundtrip.
13 let ids1: *i64 = sys_mmap(8*8) as *i64
14 ids1[0]=5; ids1[1]=8; ids1[2]=13; ids1[3]=20; ids1[4]=100
15 let buf1: *u8 = sys_mmap(4096)
16 let cb1: i64 = pc_compress(ids1, 5, buf1)
17 let out1: *i64 = sys_mmap(8*8) as *i64
18 let dc1: i64 = pc_decompress(buf1, cb1, out1)
19 tot=tot+1; if pcg_eq(ids1, 5, out1, dc1)==1 { pass=pass+1; gw(" [PASS] " as *u8) } else { gw(" [FAIL] " as *u8) }
20 gw("T1 small list roundtrip identical (n=5, compressed=" as *u8); gn(cb1); gw("B)\n" as *u8)
21
22 // T2 -- multi-block roundtrip (300 ascending ids, gap 3 -> spans 2 blocks of 256).
23 let N: i64 = 300
24 let ids2: *i64 = sys_mmap(8*N) as *i64
25 var i: i64=0; while i<N { ids2[i] = i*3 + 1; i=i+1 }
26 let buf2: *u8 = sys_mmap(65536)
27 let cb2: i64 = pc_compress(ids2, N, buf2)
28 let out2: *i64 = sys_mmap(8*N) as *i64
29 let dc2: i64 = pc_decompress(buf2, cb2, out2)
30 tot=tot+1; if pcg_eq(ids2, N, out2, dc2)==1 { pass=pass+1; gw(" [PASS] " as *u8) } else { gw(" [FAIL] " as *u8) }
31 gw("T2 multi-block roundtrip identical (n=300, 2 blocks)\n" as *u8)
32
33 // T3 -- actually COMPRESSES: gap-3 deltas need 2 bits -> compressed << raw u32 (300*4=1200B).
34 let raw2: i64 = N*4
35 tot=tot+1; if cb2 < raw2 { pass=pass+1; gw(" [PASS] " as *u8) } else { gw(" [FAIL] " as *u8) }
36 gw("T3 compresses: " as *u8); gn(cb2); gw("B vs raw-u32 " as *u8); gn(raw2); gw("B (" as *u8); gn((cb2*100)/raw2); gw("%)\n" as *u8)
37
38 // T4 -- single-element edge.
39 let ids3: *i64 = sys_mmap(8*2) as *i64; ids3[0]=42
40 let buf3: *u8 = sys_mmap(64)
41 let cb3: i64 = pc_compress(ids3, 1, buf3)
42 let out3: *i64 = sys_mmap(8*2) as *i64
43 let dc3: i64 = pc_decompress(buf3, cb3, out3)
44 tot=tot+1; if dc3==1 { if out3[0]==42 { pass=pass+1; gw(" [PASS] " as *u8) } else { gw(" [FAIL] " as *u8) } } else { gw(" [FAIL] " as *u8) }
45 gw("T4 single-element edge roundtrips (id=42)\n" as *u8)
46
47 gw("\n=== nx_posting_compress_gate " as *u8); gn(pass); gw("/" as *u8); gn(tot); gw(" ===\n" as *u8)
48 let lfd: i64 = sys_openat_append("knowledge/status/posting_compress_gate.log" as *u8, 420)
49 if pass==tot {
50 if lfd>=0 { sys_write(lfd, "POSTING-COMPRESS-GATE verdict=GREEN lossless delta-bitpack 256-block\n" as *u8, 66); sys_close(lfd) }
51 gw("POSTING-COMPRESS GREEN -- lossless delta+bit-pack; ~2 bits/posting on dense lists; the perf+size lever for the billion-posting index\n" as *u8)
52 sys_exit(0); return 0
53 }
54 if lfd>=0 { sys_write(lfd, "POSTING-COMPRESS-GATE verdict=RED\n" as *u8, 33); sys_close(lfd) }
55 gw("POSTING-COMPRESS RED\n" as *u8); sys_exit(1); return 1
56}