code wiki / _hdl_build / nx_pattern_emit_rankfuse.nx
nx_pattern_emit_rankfuse.nx source
↩ module page · 62 lines · 4120 B
1// nx_pattern_emit_rankfuse.nx -- PATTERN EMITTER: RANK_FUSE (shape 21). Authors a K-way RRF FUSION core that
2// composes the TEAM-OWNED nx_rrf (Cormack-Clarke-Buettcher 2009) over K source-rankings -> one fused top item.
3// This is the researcher's internal+external fusion shape (the first of the session's 5-emitter autonomy backlog),
4// now TEAM-AUTHORABLE hands-off: the Builder runs this emitter on a DATA spec and gets a working module + test,
5// with NO Claude logic in the core (author=emitter). Composing an already-green team organ is exactly the LOG_SCAN/
6// PERMIL_VERDICT (emit14) precedent.
7// spec[0]=k (2..8 rankings to fuse) spec[1]=n (>0 items)
8// Authored fn (K rrf_add calls BAKED, rule 22 -- no runtime loop over rankings):
9// <name>_fuse(orders: *i64, scores: *i64) -> i64 (orders = K rankings flat, ranking r at orders[r*n]; returns fused argmax)
10// EMIT-TIME RAILS: k outside 2..8 or n<1 -> spec REFUSED, nothing written. license_tier: ORIGINAL
11import "nx_syscalls.nx"
12
13func prf_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 }
14func prf_wn(fd: i64, v: i64) -> i64 { let bb: *u8=sys_mmap(28); var m: i64=v; if m<0{m=0-m; sys_write(fd,"-" 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(fd,bb,k); return 0 }
15
16// refusal rail: a malformed spec is REFUSED, never authored
17func prf_spec_ok(spec: *i64) -> i64 {
18 let k: i64=spec[0]; let n: i64=spec[1]
19 if k < 2 { return 0 }
20 if k > 8 { return 0 }
21 if n < 1 { return 0 }
22 return 1
23}
24
25// author the core: K rrf_add calls BAKED (highest autonomy = the team owns nx_rrf; this just wires it K times)
26func pe_rankfuse_emit_core(fd: i64, name: *u8, spec: *i64) -> i64 {
27 let k: i64=spec[0]; let n: i64=spec[1]
28 prf_w(fd, "// AUTHORED BY THE NISHI BUILDER (pattern: RANK_FUSE) -- K-way RRF over team-owned nx_rrf, no Claude logic\n" as *u8)
29 prf_w(fd, "import \"nx_rrf.nx\"\n" as *u8)
30 prf_w(fd, "func " as *u8); prf_w(fd, name); prf_w(fd, "_fuse(orders: *i64, scores: *i64) -> i64 {\n" as *u8)
31 prf_w(fd, " var i: i64=0; while i<" as *u8); prf_wn(fd, n); prf_w(fd, " { scores[i]=0; i=i+1 }\n" as *u8)
32 var r: i64=0
33 while r < k {
34 prf_w(fd, " nx_rrf_add(((orders as i64)+" as *u8); prf_wn(fd, r*n*8); prf_w(fd, ") as *i64, " as *u8); prf_wn(fd, n); prf_w(fd, ", scores)\n" as *u8)
35 r = r + 1
36 }
37 prf_w(fd, " return nx_rrf_argmax(scores, " as *u8); prf_wn(fd, n); prf_w(fd, ")\n}\n" as *u8)
38 return 1
39}
40
41// author the test: a KAT computed at emit time -- K identical identity rankings (item 0 first in all) -> fused top = 0
42func pe_rankfuse_emit_test(fd: i64, name: *u8, spec: *i64) -> i64 {
43 let k: i64=spec[0]; let n: i64=spec[1]
44 prf_w(fd, "import \"" as *u8); prf_w(fd, name); prf_w(fd, ".nx\"\nimport \"nx_syscalls.nx\"\n" as *u8)
45 prf_w(fd, "func main() -> i64 {\n" as *u8)
46 prf_w(fd, " let orders: *i64=sys_mmap(" as *u8); prf_wn(fd, 8*k*n); prf_w(fd, ") as *i64\n" as *u8)
47 prf_w(fd, " let scores: *i64=sys_mmap(" as *u8); prf_wn(fd, 8*n); prf_w(fd, ") as *i64\n" as *u8)
48 prf_w(fd, " var r: i64=0\n while r<" as *u8); prf_wn(fd, k); prf_w(fd, " { var j: i64=0; while j<" as *u8); prf_wn(fd, n); prf_w(fd, " { orders[r*" as *u8); prf_wn(fd, n); prf_w(fd, "+j]=j; j=j+1 } r=r+1 }\n" as *u8)
49 prf_w(fd, " if " as *u8); prf_w(fd, name); prf_w(fd, "_fuse(orders, scores) == 0 { sys_exit(0) }\n" as *u8)
50 prf_w(fd, " sys_exit(1)\n return 1\n}\n" as *u8)
51 return 1
52}
53
54// author module + test to disk; REFUSES a bad spec (returns 0, writes nothing)
55func pe_rankfuse_author(name: *u8, modpath: *u8, testpath: *u8, spec: *i64) -> i64 {
56 if prf_spec_ok(spec) != 1 { return 0 }
57 let mf: i64=sys_openat_wr(modpath, 0x1a4); if mf < 0 { return 0 }
58 pe_rankfuse_emit_core(mf, name, spec); sys_close(mf)
59 let tf: i64=sys_openat_wr(testpath, 0x1a4); if tf < 0 { return 0 }
60 pe_rankfuse_emit_test(tf, name, spec); sys_close(tf)
61 return 1
62}