code wiki / (root) / nx_av1_adst_gate.nx

nx_av1_adst_gate.nx

buildroot/runtime/nx_av1_adst_gate.nx

8503 B202 linesdepth 4pulls 5 transitivereach 0 importersview sourcekind gate/prooftopic av1
docsdependenciesstructsconstsfunctions

about

nx_av1_adst_gate.nx -- proves the inverse ADST and its distinctness from DCT. T1 is exact and needs no reference vectors: a basis-0 impulse of 4096 must return the four SINPI constants themselves, in order -- [1321, 2482, 3344, 3803]. Any wrong constant, any mis-wired term, any wrong rounding shift moves at least one of them. T2 is the property that says WHY the ADST exists: its basis-0 output is a RISING RAMP, where the DCT's is FLAT. The gate runs the same impulse through both transforms and asserts the DCT gives four equal values while the ADST gives four strictly increasing ones. Substituting one for the other decodes without error and produces wrong gradients at block edges -- banding, not corruption -- so proving they DISAGREE is the point. T4 pins the per-axis transform-type selector. AV1 picks independently for rows and columns; swapping the axes yields a transposed-looking error that survives on square symmetric content and breaks everything else. license_tier: ORIGINAL

dependencies 4 imports · 0 importers

nx_syscalls.nx nx_av1_txfm.nx nx_av1_dct.nx nx_av1_adst.nx nx_av1_adst_gate.nx

imports: nx_syscalls.nxnx_av1_txfm.nxnx_av1_dct.nxnx_av1_adst.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main sys_mmap nx_av1_iadst4 nx_av1_round2 nx_av1_cos_table nx_av1_idct4 nx_av1_cos128 nx_av1_round2 ↻ absv nx_av1_txt_row_is_adst nx_av1_txt_col_is_adst g_puts sys_write sys_exit g_putn sys_mmap ↻ g_puts ↻ sys_write ↻

structs

none

consts

none

functions

25func g_puts(s: *u8) -> i64
called by 2: g_putnmain calls 1: sys_write
32func g_putn(v: i64) -> i64
called by 1: main calls 3: sys_mmapg_putssys_write
46func absv(x: i64) -> i64 { if x < 0 { return 0 - x } return x }
called by 1: main
48func main() -> i64