code wiki / (root) / nx_nxa_hierarchy_dq_gate_t332.nx

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}