code wiki / (root) / nx_h264_hadamard_gate.nx

nx_h264_hadamard_gate.nx source

↩ module page · 88 lines · 3370 B

1// nx_h264_hadamard_gate.nx -- REFEREE for the Intra_16x16 luma DC Hadamard. 2// Hand-computed (f = H c H): 3// DC only c[0]=16 -> all 16 samples = 16 4// AC c[1]=4 -> every row = [4,4,-4,-4] 5// zero -> all 0 6// involution-scale: applying Hadamard twice scales by 16 (H^2 = 4I -> (HcH then HcH) = 16c) 7// so hadamard(hadamard(c)) == 16*c (a strong self-check, no external ref). 8// Every value PRINTED. stdout + knowledge/status/h264_hadamard_gate.log. Exit 0/1. 9// Sovereign: nx_syscalls + nx_h264_hadamard. license_tier: ORIGINAL 10import "nx_syscalls.nx" 11import "nx_h264_hadamard.nx" 12 13func gp(logfd: i64, s: *u8) -> i64 { 14 var n: i64 = 0 15 while s[n] != (0 as u8) { n = n + 1 } 16 sys_write(1, s, n) 17 if logfd > 0 { sys_write(logfd, s, n) } 18 return 0 19} 20func gn(logfd: i64, v: i64) -> i64 { 21 let bb: *u8 = sys_mmap(28) 22 var m: i64 = v 23 if m < 0 { sys_write(1, "-\x00" as *u8, 1); if logfd > 0 { sys_write(logfd, "-\x00" as *u8, 1) } m = 0 - m } 24 let t: *u8 = sys_mmap(28) 25 var k: i64 = 0 26 if m == 0 { t[0] = 48 as u8; k = 1 } 27 while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 } 28 var i: i64 = 0 29 while i < k { bb[i] = t[k - 1 - i]; i = i + 1 } 30 sys_write(1, bb, k) 31 if logfd > 0 { sys_write(logfd, bb, k) } 32 return 0 33} 34func zero16(d: *i64) -> i64 { var i: i64 = 0; while i < 16 { d[i] = 0; i = i + 1 } return 0 } 35 36func main() -> i64 { 37 let logfd: i64 = sys_openat_append("knowledge/status/h264_hadamard_gate.log\x00" as *u8, 0x1a4) 38 gp(logfd, "H264-HADAMARD-GATE (Intra16x16 luma DC)\n\x00" as *u8) 39 var ok: i64 = 1 40 let d: *i64 = sys_mmap(16 * 8) as *i64 41 42 // DC 43 zero16(d); d[0] = 16 44 nx_h264_hadamard4x4(d) 45 gp(logfd, " DC16 ->\x00" as *u8) 46 var i: i64 = 0 47 while i < 16 { gp(logfd, " \x00" as *u8); gn(logfd, d[i]); if d[i] != 16 { ok = 0 } i = i + 1 } 48 gp(logfd, "\n\x00" as *u8) 49 50 // AC c[1]=4 -> rows [4,4,-4,-4] 51 zero16(d); d[1] = 4 52 nx_h264_hadamard4x4(d) 53 var r: i64 = 0 54 while r < 4 { 55 if d[r * 4 + 0] != 4 { ok = 0 } 56 if d[r * 4 + 1] != 4 { ok = 0 } 57 if d[r * 4 + 2] != 0 - 4 { ok = 0 } 58 if d[r * 4 + 3] != 0 - 4 { ok = 0 } 59 r = r + 1 60 } 61 gp(logfd, " AC4 row0 -> \x00" as *u8); gn(logfd, d[0]); gp(logfd, " \x00" as *u8); gn(logfd, d[1]); gp(logfd, " \x00" as *u8); gn(logfd, d[2]); gp(logfd, " \x00" as *u8); gn(logfd, d[3]); gp(logfd, " (expect 4 4 -4 -4)\n\x00" as *u8) 62 63 // involution-scale self-check: H(H(c)) == 16*c 64 let c: *i64 = sys_mmap(16 * 8) as *i64 65 i = 0 66 while i < 16 { c[i] = (i * 3) - 20; i = i + 1 } // arbitrary signed pattern 67 let c2: *i64 = sys_mmap(16 * 8) as *i64 68 i = 0 69 while i < 16 { c2[i] = c[i]; i = i + 1 } 70 nx_h264_hadamard4x4(c2) 71 nx_h264_hadamard4x4(c2) 72 var inv_ok: i64 = 1 73 i = 0 74 while i < 16 { if c2[i] != 16 * c[i] { inv_ok = 0 } i = i + 1 } 75 gp(logfd, " involution H(H(c))==16c: \x00" as *u8); gn(logfd, inv_ok); gp(logfd, " (expect 1)\n\x00" as *u8) 76 if inv_ok != 1 { ok = 0 } 77 78 if ok == 1 { 79 gp(logfd, "H264-HADAMARD-GATE result=ALL-PASS verdict=GREEN\n\x00" as *u8) 80 if logfd > 0 { sys_close(logfd) } 81 sys_exit(0) 82 return 0 83 } 84 gp(logfd, "H264-HADAMARD-GATE result=FAIL verdict=RED\n\x00" as *u8) 85 if logfd > 0 { sys_close(logfd) } 86 sys_exit(1) 87 return 1 88}