nx_static_affine_gate_20260910.nx source
↩ module page · 28 lines · 3390 B
1import "nx_linalg_affine_t34.nx"
2import "nx_gate_verdict.nx"
3func main()->i64{
4let ctr:*i64=gv_ctr();gv_head("STATIC-F32-AFFINE-ENCLOSURE")
5let input:*i64=sys_mmap(104) as *i64;let output:*i64=sys_mmap(48) as *i64;let scratch:*i64=sys_mmap(384) as *i64
6input[0]=3368583808;input[1]=3369967584;input[2]=3284336640;input[3]=1221100160;input[4]=1197423872;input[5]=1231684256;input[6]=0;input[7]=1065353216;input[8]=925768117;input[9]=1043803405;input[10]=1056964608;input[11]=1111229202;input[12]=1123876864
7let rc0:i64=la_static_yaw_bounds_f32(input,13,output,6,scratch,48)
8gv_check("actual converted VERT enclosure case 0",rc0==0&&output[0] <= -68&&output[1] <= 12032&&output[2] <= 32356&&output[3] >= 324&&output[4] >= 12489&&output[5] >= 32600,ctr)
9gv_puts("BOUND 0 ");var k0:i64=0;while k0<6{gv_num(output[k0]);gv_puts(" ");k0=k0+1};gv_puts("\n")
10input[0]=3368583808;input[1]=3369967584;input[2]=3284336640;input[3]=1221100160;input[4]=1197423872;input[5]=1231684256;input[6]=1065213375;input[7]=3187929040;input[8]=925768117;input[9]=1043803405;input[10]=1115553792;input[11]=990486567;input[12]=1115553792
11let rc1:i64=la_static_yaw_bounds_f32(input,13,output,6,scratch,48)
12gv_check("actual converted VERT enclosure case 1",rc1==0&&output[0] <= 16018&&output[1] <= 0&&output[2] <= 16061&&output[3] >= 16283&&output[4] >= 457&&output[5] >= 16449,ctr)
13gv_puts("BOUND 1 ");var k1:i64=0;while k1<6{gv_num(output[k1]);gv_puts(" ");k1=k1+1};gv_puts("\n")
14input[0]=3368583808;input[1]=3369967584;input[2]=3284336640;input[3]=1221100160;input[4]=1197423872;input[5]=1231684256;input[6]=1065353216;input[7]=613232946;input[8]=925768117;input[9]=1043803405;input[10]=1123876864;input[11]=1073733435;input[12]=1056964608
15let rc2:i64=la_static_yaw_bounds_f32(input,13,output,6,scratch,48)
16gv_check("actual converted VERT enclosure case 2",rc2==0&&output[0] <= 32168&&output[1] <= 511&&output[2] <= -68&&output[3] >= 32412&&output[4] >= 968&&output[5] >= 324,ctr)
17gv_puts("BOUND 2 ");var k2:i64=0;while k2<6{gv_num(output[k2]);gv_puts(" ");k2=k2+1};gv_puts("\n")
18input[0]=3368583808;input[1]=3369967584;input[2]=3284336640;input[3]=1221100160;input[4]=1197423872;input[5]=1231684256;input[6]=3208570505;input[7]=3207237905;input[8]=925768117;input[9]=1043803405;input[10]=1123876864;input[11]=3136883052;input[12]=1123876864
19let rc3:i64=la_static_yaw_bounds_f32(input,13,output,6,scratch,48)
20gv_check("actual converted VERT enclosure case 3",rc3==0&&output[0] <= 32251&&output[1] <= -1&&output[2] <= 32102&&output[3] >= 32524&&output[4] >= 456&&output[5] >= 32526,ctr)
21gv_puts("BOUND 3 ");var k3:i64=0;while k3<6{gv_num(output[k3]);gv_puts(" ");k3=k3+1};gv_puts("\n")
22let saved:i64=output[0];input[6]=2143289344;gv_check("NaN refused without output mutation",la_static_yaw_bounds_f32(input,13,output,6,scratch,48)==LA_AFFINE_RANGE&&output[0]==saved,ctr)
23input[6]=0;input[8]=0;gv_check("zero scale refused",la_static_yaw_bounds_f32(input,13,output,6,scratch,48)==LA_AFFINE_RANGE,ctr)
24input[8]=925768117;
25gv_check("undersized scratch refused",la_static_yaw_bounds_f32(input,13,output,6,scratch,47)==LA_AFFINE_RANGE,ctr)
26gv_check("partial input output alias refused",la_static_yaw_bounds_f32(input,13,((input as i64)+8) as *i64,6,scratch,48)==LA_AFFINE_RANGE,ctr)
27return gv_verdict("STATIC-F32-AFFINE-ENCLOSURE",ctr,"Static scalar reference; GPU readback and real page collision remain unqualified")
28}