code wiki / _hdl_build / nx_vec_fuse_gate.nx
nx_vec_fuse_gate.nx source
↩ module page · 45 lines · 4385 B
1// nx_vec_fuse_gate.nx -- KAT for R-VEC-5 (nx_vec_fuse). Proves the defining RRF/hybrid behavior with two ranked
2// lists a human can verify by hand. expect_exit: 0 license_tier: ORIGINAL
3// Lexical(BM25) order: A B C D | Vector(cosine) order: C B E A
4// RRF (k=60,SCALE=1e6): A=16393+15625=32018 B=16129+16129=32258 C=15873+16393=32266 D=15625 E=15873
5// Fused: C > B > A > E > D -- B and C (only #2/#3 in each list, but in BOTH) BEAT A (#1 in lexical only).
6import "nx_syscalls.nx"
7import "nx_vec_fuse.nx"
8
9func vf_puts(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 }
10func vf_pn(v: i64) -> i64 { let bb: *u8=sys_mmap(28); var m: i64=v; if m<0{m=0-m;sys_write(1,"-" as *u8,1)}; let t: *u8=sys_mmap(28); var k: i64=0; if m==0{t[0]=(48 as u8);k=1}; while m>0{t[k]=((48+(m%10)) as u8);m=m/10;k=k+1}; var i: i64=0; while i<k{bb[i]=t[k-1-i];i=i+1}; sys_write(1,bb,k); return 0 }
11func vf_ch(id: i64) -> i64 { let c: *u8=sys_mmap(2); c[0]=(65+id) as u8; sys_write(1,c,1); return 0 } // 0->A 1->B ...
12func vf_w(fd: i64, s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(fd,s,n); return 0 }
13func vf_wn(fd: i64, v: i64) -> i64 { let bb: *u8=sys_mmap(28); var m: i64=v; if m<0{m=0-m}; let t: *u8=sys_mmap(28); var k: i64=0; if m==0{t[0]=(48 as u8);k=1}; while m>0{t[k]=((48+(m%10)) as u8);m=m/10;k=k+1}; var i: i64=0; while i<k{bb[i]=t[k-1-i];i=i+1}; sys_write(fd,bb,k); return 0 }
14
15func main() -> i64 {
16 vf_puts("=== R-VEC-5 RRF HYBRID FUSION -- KAT (fuse lexical + vector ranked lists) ===\n" as *u8)
17 let score: *i64=sys_mmap(8*8) as *i64
18 var z: i64=0; while z<8 { score[z]=0; z=z+1 }
19 let L: *i64=sys_mmap(8*8) as *i64; L[0]=0; L[1]=1; L[2]=2; L[3]=3 // BM25: A B C D
20 let V: *i64=sys_mmap(8*8) as *i64; V[0]=2; V[1]=1; V[2]=4; V[3]=0 // cosine: C B E A
21 vr_fuse_add(score, L, 4)
22 vr_fuse_add(score, V, 4)
23 let out: *i64=sys_mmap(8*8) as *i64
24 let m: i64=vr_fuse_rank(score, 5, out)
25
26 vf_puts(" scores: A=" as *u8); vf_pn(score[0]); vf_puts(" B=" as *u8); vf_pn(score[1]); vf_puts(" C=" as *u8); vf_pn(score[2]); vf_puts(" D=" as *u8); vf_pn(score[3]); vf_puts(" E=" as *u8); vf_pn(score[4]); vf_puts("\n" as *u8)
27 vf_puts(" fused order: " as *u8); var i: i64=0; while i<m { vf_ch(out[i]); vf_puts(" " as *u8); i=i+1 } vf_puts("\n" as *u8)
28
29 var pass: i64=0; var total: i64=0
30 total=total+1; vf_puts(" T1 fused #1 = C (top-vector + mid-lexical) " as *u8); if out[0]==2 { pass=pass+1; vf_puts("PASS\n" as *u8) } else { vf_puts("FAIL\n" as *u8) }
31 total=total+1; vf_puts(" T2 B (mid in BOTH) outranks A (#1 lexical only) " as *u8); if score[1]>score[0] { pass=pass+1; vf_puts("PASS\n" as *u8) } else { vf_puts("FAIL\n" as *u8) }
32 total=total+1; vf_puts(" T3 C (top in one,mid in other) outranks A " as *u8); if score[2]>score[0] { pass=pass+1; vf_puts("PASS\n" as *u8) } else { vf_puts("FAIL\n" as *u8) }
33 let dual_min: i64=score[0]; var dm: i64=dual_min; if score[1]<dm { dm=score[1] } if score[2]<dm { dm=score[2] }
34 var sm: i64=score[3]; if score[4]>sm { sm=score[4] }
35 total=total+1; vf_puts(" T4 all dual-list docs outrank single-list docs " as *u8); if dm>sm { pass=pass+1; vf_puts("PASS\n" as *u8) } else { vf_puts("FAIL\n" as *u8) }
36 total=total+1; vf_puts(" T5 top-2 are the both-list docs (B,C) " as *u8); if out[0]==2 { if out[1]==1 { pass=pass+1; vf_puts("PASS\n" as *u8) } else { vf_puts("FAIL\n" as *u8) } } else { vf_puts("FAIL\n" as *u8) }
37
38 vf_puts("----\nVEC-FUSE KAT " as *u8); vf_pn(pass); vf_puts("/" as *u8); vf_pn(total); vf_puts(" passed\n" as *u8)
39 vf_puts("HONEST: this PROVES the RRF mechanism (agreement across retrievers beats one strong signal). Wiring it\n" as *u8)
40 vf_puts(" into the live nx_onsite_search (BM25 list + real vector list) is the tracked integration step.\n" as *u8)
41 let lg: i64=sys_openat_append("knowledge/status/vec_fuse_gate.log" as *u8, 0x1a4)
42 if lg>=0 { vf_w(lg, "R-VEC-5 vec_fuse KAT pass=" as *u8); vf_wn(lg, pass); vf_w(lg, "/" as *u8); vf_wn(lg, total); if pass==total { vf_w(lg, " GREEN\n" as *u8) } else { vf_w(lg, " RED\n" as *u8) } sys_close(lg) }
43 if pass==total { vf_puts("R-VEC-5 GREEN (sovereign RRF hybrid fusion proven)\n" as *u8); sys_exit(0); return 0 }
44 vf_puts("R-VEC-5 RED\n" as *u8); sys_exit(1); return 1
45}