code wiki / _hdl_build / nx_hairdyn_gate.nx

nx_hairdyn_gate.nx

buildroot/runtime/_hdl_build/nx_hairdyn_gate.nx

12803 B258 linesdepth 5pulls 9 transitivereach 0 importersview sourcekind gate/prooftopic hairdyn
docsdependenciesstructsconstsfunctions

about

nx_hairdyn_gate.nx -- GATE: prove the hair chain is a CHAIN, that its plant is DERIVED rather than tuned, and that the measurement which says so cannot pass on hair that does not move. WHAT THIS GATE IS FOR. knowledge/gamefeel_oracle.conf's hair_k_q10 row has never had a plant behind it; the shipping hair was two hand-picked integers driving one point. The teeth below do not assert that hair is right, they MEASURE it: ask the derivation for a frequency, run a free decay, and read the frequency back out with the estate's one ringdown analyser. NO TOLERANCE IS CHOSEN ANYWHERE IN THIS FILE. The frequency teeth compare against the DAMPED prediction (a ringdown cannot measure an undamped frequency) inside the ANALYSER'S OWN resolution, both derived below. The damping teeth assert MONOTONICITY, which needs no tolerance at all -- a stronger property than an equality with a number picked to make it hold. license_tier: ORIGINAL No hw writes (Rule 26).

dependencies 3 imports · 0 importers

nx_syscalls.nx nx_gate_verdict.nx nx_hairdyn_lib.nx nx_hairdyn_gate.nx

imports: nx_syscalls.nxnx_gate_verdict.nxnx_hairdyn_lib.nx

imported by: nobody (leaf or entry point)

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

main 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_head gv_puts sys_write ↻ sys_mmap ↻ gv_puts ↻ gv_num sys_mmap ↻ sys_write ↻ sys_munmap hd_ticks_per_s sd_isqrt vm_isqrt hd_dt_us hd_ticks_per_s ↻ hd_amp_q8 hd_ringdown hd_ringdown_t hd_k sb_k_sym hd_ringdown_kc_t hd_alloc sd_alloc sys_mmap ↻

structs

none

consts

19const HG_NSEG: i64 = 6
20const HG_NSEG_SHORT: i64 = 2
21const HG_NSEG_LONG: i64 = 12
24const HG_SEGLEN_A: i64 = 256
25const HG_SEGLEN_B: i64 = 512
32const HG_ZETA_LO: i64 = 100
33const HG_ZETA_HI: i64 = 300

functions

40func hg_fn_damped(fn_mhz: i64, zeta_permil: i64) -> i64
called by 1: main calls 1: rd_isqrt
50func hg_res_mhz(fn_mhz: i64) -> i64
called by 1: main calls 1: hd_ticks_per_s
56func hg_report(tag: *u8, rc: i64, out: *i64) -> i64
called by 1: main calls 3: gv_putsgv_numrd_reason
79func main() -> i64