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}