nx_nxa_hierarchy_dq_gate_t332.nx source
↩ module page · 66 lines · 5530 B
1import "nx_nxa_hierarchy_correction_candidate_t332.nx"
2import "nx_nxa_hierarchy_dq_fixture_t332.nx"
3import "nx_gate_verdict.nx"
4import "nx_nxa_hierarchy_dq_target_t332.nx"
5func hd_fill(p:*i64,n:i64,v:i64)->i64{var i:i64=0;while i<n{p[i]=v;i=i+1};return 0}
6func hd_same(a:*i64,b:*i64,n:i64)->i64{var i:i64=0;while i<n{if a[i]!=b[i]{return 0};i=i+1};return 1}
7func main()->i64{
8 let ctr:*i64=sys_mmap(24) as *i64
9 let witnessfd:i64=sys_openat_wr("knowledge/gates/resident-hierarchy-dq-derived-output-t332.bin" as *u8,384)
10 let target:*i64=sys_mmap(6656) as *i64;let derived:*i64=sys_mmap(112) as *i64;let derivework:*i64=sys_mmap(320) as *i64
11 let parents:*i64=sys_mmap(832) as *i64;let rows:*i64=sys_mmap(6656) as *i64;let c:*i64=sys_mmap(112) as *i64;let expected:*i64=sys_mmap(6656) as *i64
12 let out:*i64=sys_mmap(6656) as *i64;let next:*i64=sys_mmap(6656) as *i64;let scratch:*i64=sys_mmap(6784) as *i64
13 hd_fixture(0,parents,rows,c,expected)
14 hd_fill(c,14,0);c[3]=FQ_ONE
15 var rc:i64=hc_dq_apply(parents,104,rows,HC_RIGID,8,c,out,832,scratch,848)
16 gv_check("identity retains original nonunit source rows exactly",rc==0&&hd_same(rows,out,832)==1,ctr)
17 hd_fill(out,832,717);hd_fill(next,832,717)
18 var saved:i64=parents[8];parents[8]=9
19 gv_check("DQ cycle refuses unchanged output",hc_dq_apply(parents,104,rows,1,8,c,out,832,scratch,848)==HC_BAD_GRAPH&&hd_same(out,next,832)==1,ctr);parents[8]=saved
20 c[3]=0
21 gv_check("zero correction quaternion refuses",hc_dq_apply(parents,104,rows,1,8,c,out,832,scratch,848)==HC_BAD_DOMAIN,ctr);c[3]=FQ_ONE
22 c[4]=HC_DQ_DUAL_MAX
23 gv_check("correction translation domain endpoint refuses",hc_dq_apply(parents,104,rows,1,8,c,out,832,scratch,848)==HC_BAD_DOMAIN,ctr);c[4]=0
24 var prior:i64=rows[416];rows[416]=0-HC_DQ_DUAL_MAX
25 gv_check("negative dual domain endpoint refuses",hc_dq_apply(parents,104,rows,1,8,c,out,832,scratch,848)==HC_BAD_DOMAIN,ctr);rows[416]=prior
26 gv_check("affine source contract is not converted to DQ",hc_dq_apply(parents,104,rows,2,8,c,out,832,scratch,848)==HC_NONRIGID,ctr)
27 gv_check("DQ alias refuses",hc_dq_apply(parents,104,rows,1,8,c,out,832,out,848)==HC_STORAGE,ctr)
28 gv_check("DQ short scratch refuses",hc_dq_apply(parents,104,rows,1,8,c,out,832,scratch,847)==HC_BAD_DOMAIN,ctr)
29 gv_check("all DQ refusal output unchanged",hd_same(out,next,832)==1,ctr)
30 hd_fill(rows,40,0);rows[3]=FQ_ONE;rows[7]=FQ_ONE;rows[11]=FQ_ONE;rows[15]=FQ_ONE;rows[19]=FQ_ONE
31 parents[0]=3;parents[1]=0-1;parents[2]=0;parents[3]=0-1;parents[4]=1
32 hd_fill(c,7,0);c[2]=FQ_ONE;c[4]=2*FQ_ONE
33 rc=hc_dq_apply(parents,5,rows,1,0,c,out,40,scratch,56)
34 gv_check("DQ permuted graph and multiple roots admitted",rc==0,ctr)
35 gv_check("DQ rotation reaches only true subtree",out[2]==FQ_ONE&&out[10]==FQ_ONE&&out[7]==FQ_ONE&&out[15]==FQ_ONE&&out[19]==FQ_ONE,ctr)
36 gv_check("DQ translation composes with rotation",out[21]==0-FQ_ONE&&out[29]==0-FQ_ONE&&out[25]==0&&out[33]==0,ctr)
37 var fixture:i64=0;while fixture<2{
38 hd_fixture(fixture,parents,rows,c,expected)
39 hd_target(fixture,target)
40 let dr0:i64=hc_dq_anchor_correction(rows,target,104,8,derived,derivework,40)
41 let dr1:i64=hc_dq_anchor_correction(rows,target,104,24,((derived as i64)+56) as *i64,derivework,40)
42 gv_check("captured anchor correction derived natively",dr0==0&&dr1==0,ctr)
43 var derivemax:i64=0;var dk:i64=0;while dk<14{let dd:i64=fq_abs(derived[dk]-c[dk]);if dd>derivemax{derivemax=dd};dk=dk+1}
44 gv_check("derived correction agrees with independent Float64 oracle",derivemax<=4096,ctr)
45 gv_puts("DQ_DERIVE max_q30=" as *u8);gv_num(derivemax);gv_puts("\n" as *u8)
46 rc=hc_dq_apply(parents,104,rows,1,8,derived,out,832,scratch,848)
47 var rc2:i64=0-1;if rc==0{rc2=hc_dq_apply(parents,104,out,1,24,((derived as i64)+56) as *i64,next,832,scratch,848)}
48 gv_check("captured DQ two-subtree composition admitted",rc==0&&rc2==0,ctr)
49 var real_delta:i64=0;var dual_delta:i64=0;var maxdual:i64=0;var i:i64=0
50 while i<832{let delta:i64=fq_abs(next[i]-expected[i]);if i<416{if delta>real_delta{real_delta=delta}}else{if delta>dual_delta{dual_delta=delta};if fq_abs(rows[i])>maxdual{maxdual=fq_abs(rows[i])}};i=i+1}
51 var maxt:i64=0;i=0;while i<14{if i%7>=4{if fq_abs(c[i])>maxt{maxt=fq_abs(c[i])}};i=i+1}
52 let error_bound:i64=128*(maxdual/FQ_ONE+maxt/FQ_ONE+2)
53 gv_check("captured DQ real components match independent oracle",rc2==0&&real_delta<=32,ctr)
54 gv_check("captured DQ dual components fit propagated rounding bound",rc2==0&&dual_delta<=error_bound,ctr)
55 gv_puts("DQ_METRICS fixture=" as *u8);gv_num(fixture);gv_puts(" real=" as *u8);gv_num(real_delta);gv_puts(" dual=" as *u8);gv_num(dual_delta);gv_puts(" bound=" as *u8);gv_num(error_bound);gv_puts("\n" as *u8)
56 gv_check("captured output retained without protocol truncation",witnessfd>=0&&sys_write(witnessfd,next as *u8,6656)==6656,ctr)
57 fixture=fixture+1
58 }
59 hd_fill(derived,14,717);hd_fill(c,14,717)
60 gv_check("derive aliased output refuses unchanged",hc_dq_anchor_correction(rows,target,104,8,derived,derived,40)==HC_STORAGE&&hd_same(derived,c,14)==1,ctr)
61 gv_check("derive short workspace refuses unchanged",hc_dq_anchor_correction(rows,target,104,8,derived,derivework,39)==HC_BAD_DOMAIN&&hd_same(derived,c,14)==1,ctr)
62 target[416+8*4]=0-LA_AFFINE_I64_MAX-1
63 gv_check("derive i64minimum dual refuses unchanged",hc_dq_anchor_correction(rows,target,104,8,derived,derivework,40)==HC_BAD_DOMAIN&&hd_same(derived,c,14)==1,ctr)
64 sys_close(witnessfd)
65 return gv_verdict("NX-HIERARCHY-DQ" as *u8,ctr,"DQ composition only; source contact policy remains unqualified" as *u8)
66}