code wiki / (root) / nx_nxa_anim_gate.nx

nx_nxa_anim_gate.nx

buildroot/runtime/nx_nxa_anim_gate.nx

8760 B126 linesdepth 3pulls 6 transitivereach 0 importersview sourcekind gate/prooftopic nxa
docsdependenciesstructsconstsfunctions

about

nx_nxa_anim_gate.nx -- GATE for the one NXA clip evaluator (nx_nxa_anim_lib), driven IN-PROCESS on PLANTED keys whose answers are known by arithmetic: lane sign-extension, track indexing that skips legacy channels and refuses a truncated section by name, the bracketing-key nlerp at a known midpoint, the shortest-path flip on a pair whose unflipped blend has the opposite sign, the root rule, the linear drift fit, the walk cadence default, drift-removed rows that read zero on the root, an untracked joint's identity rows, and a full idle hold that reproduces the pose. Every fixture asserts its own condition before its outcome. license_tier: ORIGINAL No hw writes (Rule 26).

dependencies 3 imports · 0 importers

nx_syscalls.nx nx_nxa_anim_lib.nx nx_gate_verdict.nx nx_nxa_anim_gate.nx

imports: nx_syscalls.nxnx_nxa_anim_lib.nxnx_gate_verdict.nx

imported by: nobody (leaf or entry point)

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

main gv_head gv_puts sys_write gv_ctr sys_mmap nxa_die sys_write ↻ sys_exit nxa_lock_take nxa_lock_addr sys_write ↻ nxa_lock_give nxa_lock_addr ↻ nxa_report_overrun sys_write ↻ nxa_dump_printable sys_write ↻ nxa_dump_sizes sys_write ↻ gv_check_eq gv_check gv_puts ↻ gv_puts ↻ gv_num sys_mmap ↻ sys_write ↻ sys_munmap na_i16 g_lane sys_mmap ↻ g_key g_lane ↻ na_index na_eval_track na_eval_key na_key_t na_key_q na_i16 ↻ nf_qnorm

structs

none

consts

12const G_I64: i64 = 8
13const G_NJ: i64 = 3
14const G_ANIM_W: i64 = 24
15const G_SKEL_W: i64 = 24
16const G_SCR_W: i64 = 64
17const G_ROOT_J: i64 = 2
18const G_HEAD_Z: i64 = 150000
19const G_MID_Z: i64 = 50000
20const G_DUR: i64 = 1000
21const G_TMID: i64 = 500
22const G_Q45: i64 = 2896 // the q12 half-root of two: nlerp of identity and a half-turn, normalised
23const G_Q_TOL: i64 = 2
24const G_MM_END: i64 = 300 // joint 0 dt lane at the last key, mm -> 30000 model units
25const G_ROOT_MM: i64 = 100 // root dt lane at the last key, mm -> 10000 model units over 1000 ms
26const G_ROOT_VX16: i64 = 655360 // 10000 units / 1000 ms x 65536
27const G_DUAL_X_J0: i64 = 14480000 // ((15000 - 5000) x 2896)/2: joint 0's midpoint dt 15000 MINUS the root's fitted drift
32const G_A_QZ: i64 = 2896
33const G_A_QW: i64 = 2896
34const G_B_QZ: i64 = 0 - 3547
35const G_B_QW: i64 = 2048

functions

37func g_lane(v: i64) -> i64 { return v & NA_LANE_MASK }
called by 2: g_keymain
38func g_key(a: *i64, o: i64, t: i64, qx: i64, qy: i64, qz: i64, qw: i64, dx: i64, dy: i64, dz: i64) -> i64
called by 1: main calls 1: g_lane
44func main() -> i64