code wiki / (root) / nx_face_feature_gate_t367r4.nx

nx_face_feature_gate_t367r4.nx source

↩ module page · 55 lines · 2781 B

1// nx_face_feature_gate_t367r4.nx -- instrumented reusable face feature referee. 2// Emits each native stage result so qualification observes the complete contract. 3import "nx_syscalls.nx" 4import "nx_gatekit_lib.nx" 5import "nx_sdfrender.nx" 6import "nx_faceanat.nx" 7const R_EXIT_USAGE: i64 = 2 8const R_EXIT_REFUSE: i64 = 1 9const R_FACE_SIZE: i64 = 1 10const R_LEFT: i64 = 0 - 1 11const R_RIGHT: i64 = 1 12const R_ASCII0: i64 = 48 13const R_MINUS: i64 = 45 14const R_NL: i64 = 10 15func rnum(tag:*u8,v:i64)->i64 { 16 let b:*u8=sys_mmap(96); let d:*u8=sys_mmap(64); var n:i64=0; var x:i64=v 17 if x<0 { b[n]=R_MINUS; n=n+1; x=0-x }; var m:i64=0 18 if x==0 { d[m]=R_ASCII0; m=m+1 } 19 while x>0 { let q:i64=x/10; d[m]=R_ASCII0+(x-q*10); m=m+1; x=q } 20 while m>0 { m=m-1; b[n]=d[m]; n=n+1 }; b[n]=R_NL; n=n+1 21 sys_write(1,tag,gk_len(tag)); sys_write(1,b,n); return v 22} 23func main(argc:i64,argv:*i64)->i64 { 24 if argc!=R_FACE_SIZE { return R_EXIT_USAGE } 25 let arena:*u8=sys_mmap(sdf_bytes()) 26 if (arena as i64)==0 { return R_EXIT_REFUSE } 27 rnum("build=",faceanat_build(arena as i64)) 28 let left:*i64=sys_mmap(FA_PF_O_FIELDS*8+FA_LIP_SLACK) as *i64 29 let right:*i64=sys_mmap(FA_PF_O_FIELDS*8+FA_LIP_SLACK) as *i64 30 if (left as i64)==0 || (right as i64)==0 { return R_EXIT_REFUSE } 31 let left_result:i64=fa_palpebral_fissure(arena as i64,R_LEFT,left) 32 rnum("left=",left_result); rnum("left_reason=",left[FA_PF_O_REASON]) 33 let right_result:i64=fa_palpebral_fissure(arena as i64,R_RIGHT,right) 34 rnum("right=",right_result); rnum("right_reason=",right[FA_PF_O_REASON]) 35 let lip:*i64=sys_mmap(FA_LIP_O_FIELDS*8+FA_LIP_SLACK) as *i64 36 if (lip as i64)==0 { return R_EXIT_REFUSE } 37 let lip_result:i64=fa_lip_ratio(arena as i64,lip) 38 rnum("lip=",lip_result); rnum("lip_reason=",lip[FA_LIP_O_REASON]) 39 if left_result!=0 || right_result!=0 { return R_EXIT_REFUSE } 40 if lip_result==FA_LIP_UNMEASURED || lip[FA_LIP_O_REASON]!=FA_LIP_R_OK { return R_EXIT_REFUSE } 41 let genes:*i64=sys_mmap(6*8) as *i64 42 if (genes as i64)==0 { return R_EXIT_REFUSE } 43 genes[0]=50; genes[1]=100; genes[2]=100; genes[3]=581; genes[4]=0; genes[5]=0 44 rnum("genes=",faceanat_eye_genes(arena as i64,genes)) 45 rnum("rebuild=",faceanat_build(arena as i64)) 46 let left_after:i64=fa_palpebral_fissure(arena as i64,R_LEFT,left) 47 rnum("left_after=",left_after); rnum("left_after_reason=",left[FA_PF_O_REASON]) 48 let right_after:i64=fa_palpebral_fissure(arena as i64,R_RIGHT,right) 49 rnum("right_after=",right_after); rnum("right_after_reason=",right[FA_PF_O_REASON]) 50 let lip_after:i64=fa_lip_ratio(arena as i64,lip) 51 rnum("lip_after=",lip_after); rnum("lip_after_reason=",lip[FA_LIP_O_REASON]) 52 if left_after!=0 || right_after!=0 { return R_EXIT_REFUSE } 53 if lip_after==FA_LIP_UNMEASURED || lip[FA_LIP_O_REASON]!=FA_LIP_R_OK { return R_EXIT_REFUSE } 54 return 0 55}