code wiki / (root) / nx_f32_hw.nx

nx_f32_hw.nx

buildroot/runtime/nx_f32_hw.nx

3594 B97 linesdepth 0pulls 0 transitivereach 265 importersview sourcekind librarytopic f32
docsdependenciesstructsconstsfunctions

about

nx_f32_hw.nx -- HARDWARE IEEE-754 f32 for NishiLang via the __f32_* compiler intrinsics (R1b -> SSE scalar-single on the CPU FPU). Distinct from nx_f32.nx, which is the i64 SOFT-FLOAT emulation of the same binary32 -- IDENTICAL bit layout (binary32 in the low 32 of an i64), so the two are bit-for-bit cross-checkable (see nx_f32_vec_gate differential). This is the FAST reusable MATH PART the sovereign renderer composes: scalar + vec3 now, mat4 next. negate = x * -1.0f (subss deferred to a perf rung). license_tier: ORIGINAL

dependencies 0 imports · 75 importers

nx_f32_hw.nx nishi_export_lib.nx nx_aco_gate.nx nx_compute_ladder.nx nx_compute_mt.nx nx_compute_opt2.nx nx_d3d_shade_gate.nx nx_decision_tree_gate.nx nx_differential_evolution_gate.nx nx_dxbc_exec.nx nx_expr_evolve_gate.nx

diagram shows first 10 each side; +0 more imports, +65 more importers in the complete lists below.

imports: none

imported by: nishi_export_lib.nxnx_aco_gate.nxnx_compute_ladder.nxnx_compute_mt.nxnx_compute_opt2.nxnx_d3d_shade_gate.nxnx_decision_tree_gate.nxnx_differential_evolution_gate.nxnx_dxbc_exec.nxnx_expr_evolve_gate.nxnx_expr_tree_gate.nxnx_f32_adam_gate.nxnx_f32_autograd_gate.nxnx_f32_block_gate.nxnx_f32_charlm_train_gate.nxnx_f32_crossentropy_gate.nxnx_f32_embed_lmhead_gate.nxnx_f32_gqa_gate.nxnx_f32_hw_matmul.nxnx_f32_layernorm_gate.nxnx_f32_lm_train_gate.nxnx_f32_matmul.nxnx_f32_moe_train_gate.nxnx_f32_raster_gate.nxnx_f32_rmsnorm_rope_gate.nxnx_f32_softmax_gate.nxnx_f32_swiglu_gate.nxnx_f32_train_ckpt_gate.nxnx_f32_transformer_train_gate.nxnx_f32_vec_gate.nxnx_f32_voxel_gate.nxnx_fd_f32.nxnx_fpsworld_gate.nxnx_gguf_write_gate.nxnx_gradient_boost_gate.nxnx_gradient_ml_gate.nxnx_kmeans_gate.nxnx_llm_ppl_bench_gate.nxnx_llm_wired_expand_gate.nxnx_lowrank_attn.nxnx_lowrank_kv_real.nxnx_lowrank_weight_spectrum.nxnx_machine_scientist_gate.nxnx_machine_scientist_unified_gate.nxnx_mdl_overfit_gate.nxnx_mech_engines_lib.nxnx_mesh3.nxnx_mesh_terrain_gate.nxnx_mineworld_autotest.nxnx_mineworld_wasm_vet.nxnx_mw_f32_probe.nxnx_mw_spawn_probe.nxnx_neurosym_complete_gate.nxnx_neurosym_full_gate.nxnx_par_matmul.nxnx_par_pool.nxnx_pareto_symreg_gate.nxnx_sim_repro_h2h_gate.nxnx_simulated_annealing_gate.nxnx_sphere_gate.nxnx_tool_dispatch_gate.nxnx_transformer_multilayer_gate.nxnx_voxel_world.nxnx_wasm_mineworld.nxnx_wasm_mineworld_gate.nxnx_wasm_mineworld_mod_gate.nxnx_wasm_mineworld_mp_gate.nxnx_wasm_mineworld_tick_gate.nxnx_wasm_vm.nxnx_wasmcube.nxnx_wasmfps.nxnx_wasmfps_gate.nxnx_wasmvox3d.nxnx_wasmvox3d_gate.nxnx_wasmvoxel.nx

structs

none

consts

none

functions

9func f32_of(n: i64) -> i64 { return __f32_from_i64(n) } // int -> binary32 bits (cvtsi2ss)
10func f32_int(x: i64) -> i64 { return __f32_to_i64(x) } // binary32 -> int, truncate (cvttss2si)
called by 104: to_unorm8gmto_unormgmmaingm+98
11func f32_add(a: i64, b: i64) -> i64 { return __f32_add(a, b) } // addss
12func f32_mul(a: i64, b: i64) -> i64 { return __f32_mul(a, b) } // mulss
13func f32_div(a: i64, b: i64) -> i64 { return __f32_div(a, b) } // divss
14func f32_neg(a: i64) -> i64 { return __f32_mul(a, __f32_from_i64(0 - 1)) }
15func f32_sub(a: i64, b: i64) -> i64 { return __f32_add(a, f32_neg(b)) }
called by 133: f32_lemainf32_leginif32_lesphere+127 calls 1: f32_neg
18func v3_dot(ax: i64, ay: i64, az: i64, bx: i64, by: i64, bz: i64) -> i64
21func v3_lensq(ax: i64, ay: i64, az: i64) -> i64 { return v3_dot(ax, ay, az, ax, ay, az) }
called by 1: main calls 1: v3_dot
22func v3_cross(ax: i64, ay: i64, az: i64, bx: i64, by: i64, bz: i64, out: *i64) -> i64
called by 1: main calls 2: f32_subf32_mul
28func v3_scale(ax: i64, ay: i64, az: i64, s: i64, out: *i64) -> i64
calls 1: f32_mul
36func m4_identity(out: *i64) -> i64
46func m4_vec4(m: *i64, v: *i64, out: *i64) -> i64
58func m4_mul(a: *i64, b: *i64, out: *i64) -> i64
74func m4_translation(tx: i64, ty: i64, tz: i64, out: *i64) -> i64
calls 1: m4_identity
82func m4_roty(c: i64, s: i64, out: *i64) -> i64
90func m4_rotx(c: i64, s: i64, out: *i64) -> i64