code wiki / (root) / nx_linalg_affine_t34.nx

nx_linalg_affine_t34.nx

buildroot/runtime/nx_linalg_affine_t34.nx

12082 B197 linesdepth 7pulls 10 transitivereach 36 importersview sourcekind librarytopic linalg
docsdependenciesstructsconstsfunctions

about

Private additive linear-algebra extension for scale-preserving affine skinning. Uses existing Q30 arithmetic; no new persistent asset format.

dependencies 1 imports · 9 importers

nx_linalg.nx nx_linalg_affine_t34.nx nx_linalg_affine_domain_gate_t342. nx_linalg_affine_factor_baseline_t nx_linalg_affine_factor_canonical_ nx_nxa_affine_palette_t34.nx nx_nxa_hierarchy_correction_candid nx_static_affine_gate_20260910.nx nx_wasm_craft_body_t137.nx nx_wasm_craft_imported_body_t49.nx nx_wasm_craft_imported_t262.nx

imports: nx_linalg.nx

imported by: nx_linalg_affine_domain_gate_t342.nxnx_linalg_affine_factor_baseline_t361.nxnx_linalg_affine_factor_canonical_gate_t361.nxnx_nxa_affine_palette_t34.nxnx_nxa_hierarchy_correction_candidate_t332.nxnx_static_affine_gate_20260910.nxnx_wasm_craft_body_t137.nxnx_wasm_craft_imported_body_t49.nxnx_wasm_craft_imported_t262.nx

structs

none

consts

4const LA_AFFINE_RANGE:i64=0-60
5const LA_AFFINE_SINGULAR:i64=0-61
6const LA_AFFINE_RESIDUAL:i64=0-62
7const LA_AFFINE_MAX:i64=70368744177664
8const LA_AFFINE_I64_MAX:i64=9223372036854775807
57const LA_STATIC_INPUT_WORDS:i64=13
58const LA_STATIC_OUTPUT_WORDS:i64=6
59const LA_STATIC_SCRATCH_WORDS:i64=48
60const LA_BINARY32_FRACTION_BITS:i64=23
61const LA_BINARY32_ULP_DEN:i64=8388608
62const LA_STATIC_SOURCE_SHIFT:i64=10
63const LA_STATIC_PATH_ROUNDS:i64=5
64const LA_STATIC_GAMMA_FACTOR:i64=2*LA_STATIC_PATH_ROUNDS
65const LA_STATIC_Q8_SHIFT:i64=FQ_SHIFT-8
111const LA_BINARY32_MIN_NORMAL_POWER:i64=0-126
112const LA_BINARY32_FINITE_POWER:i64=128
113const LA_STATIC_EXPANDED_MONOMIALS:i64=2
114const LA_STATIC_FACTORS_PER_MONOMIAL:i64=4
115const LA_STATIC_EXPANDED_LEAVES:i64=LA_STATIC_EXPANDED_MONOMIALS*LA_STATIC_FACTORS_PER_MONOMIAL+1
116const LA_STATIC_EXPANDED_OPS:i64=LA_STATIC_EXPANDED_LEAVES-1
117const LA_STATIC_ROUND_GAIN:i64=2
118const LA_STATIC_FTZ_COEFFICIENT:i64=(LA_STATIC_EXPANDED_LEAVES+LA_STATIC_EXPANDED_OPS)*LA_STATIC_EXPANDED_MONOMIALS*LA_STATIC_ROUND_GAIN

functions

9func la_affine_domain(v:i64)->i64{if v<=0-LA_AFFINE_MAX||v>=LA_AFFINE_MAX{return LA_AFFINE_RANGE};return 0}
11func la_inverse3_q30(a:*Mat,out:*Mat,residual_budget:i64,report:*i64)->i64
41func la_affine_compose_q30(a:*i64,b:*i64,out:*i64)->i64
66func la_iv(p:*i64,index:i64)->*i64{return ((p as i64)+index*16) as *i64}
67func la_iv_abs(p:*i64)->i64{let a:i64=fq_abs(p[0]);let b:i64=fq_abs(p[1]);if a>b{return a};return b}
called by 1: la_static_yaw_bounds_f32 calls 1: fq_abs
68func la_f32_ordered(a:i64,b:i64)->i64
74func la_iv_f32(bits:i64,power:i64,out:*i64)->i64
89func la_iv_mul(a:*i64,b:*i64,out:*i64)->i64
99func la_static_storage_disjoint(a:*i64,aw:i64,b:*i64,bw:i64)->i64
121func la_static_sum_headroom()->i64{var n:i64=(LA_STATIC_EXPANDED_MONOMIALS+1)*LA_STATIC_ROUND_GAIN;var p:i64=0;var ceiling:i64=1;while ceiling<n{ceiling=ceiling<<1;p=p+1};return p}
122func la_f32_abs_ge_one_power(bits:i64)->i64
128func la_static_product_subset_power(input:*i64)->i64
139func la_static_ftz_error_q30(power:i64)->i64
145func la_static_yaw_bounds_f32(input:*i64,input_words:i64,out:*i64,out_words:i64,scratch:*i64,scratch_words:i64)->i64