code wiki / _hdl_build / nx_neuro.nx

nx_neuro.nx

buildroot/runtime/_hdl_build/nx_neuro.nx

25020 B495 linesdepth 3pulls 3 transitivereach 0 importersview sourcekind tool
docsdependenciesstructsconstsfunctions

about

nx_neuro.nx -- ★THE INNERVATION PLANE: the nervous system as a MAPPED TOPOLOGY, and autonomic responses (arousal among them) COMPUTED FROM IT rather than painted on top. ★THE GAP THIS CLOSES, measured 2026-07-27 by nx_bodyatlas_gate: the atlas carries NERVOUS as system 7 with SEVEN ellipsoid proxy parts against 12 cranial + 31 spinal nerve PAIRS = 86 nerves before a single branch (~8 percent), and -- the part that actually matters -- NOTHING ANYWHERE SAYS WHAT ANY NERVE CONNECTS TO. A nerve drawn as a blob is scenery. A nerve is a ROUTE: a root level, a division, and a target it drives. Until the route exists, no response can be caused by anatomy. ★★AND IT CLOSES THE SAME CLASS ONE LEVEL OUT. This lane's standing finding is 'our face is PAINTED, not sculpted' -- colour where geometry belonged. The physiological equivalent is a response that is a GLOBAL SCALAR with a suggestive name. Flush, tumescence, sweat and pupil are not one knob: they are separate effectors on separate outflows, and the proof is that they DISSOCIATE under a lesion. So the discriminating tooth in this organ is a LESION: cut S2-S4 and genital vasocongestion must fall to EXACTLY ZERO while cutaneous flush is UNCHANGED. ★A single arousal scalar cannot pass that tooth. ★★★THE MODEL CANNOT EXPRESS AN IMPOSSIBLE NERVOUS SYSTEM, BY CONSTRUCTION. Two structural laws are checked on every row rather than trusted: THORACOLUMBAR OUTFLOW -- a SYMPATHETIC fibre leaves the cord only between T1 and L2. CRANIOSACRAL OUTFLOW -- a PARASYMPATHETIC fibre leaves only via a cranial nerve or S2-S4. These are not conventions, they are where the preganglionic cell columns physically are. Encoding them as containment means a sacral sympathetic or a thoracic parasympathetic is REFUSED at the gate, the way nx_skelgen's joint constraints make a hyperextended knee unrequestable. ★COMPOSES, DOES NOT DUPLICATE (the audit ran FIRST, as it now does every round): nx_myoattach owns muscle ATTACHMENT; nx_bodyatlas owns the peelable systems; nx_fascia owns soft-tissue transmission. NONE of them owns INNERVATION. Muscle indices below are nx_myoattach's own 0..20, READ from that table before a row was written, not assumed. nx_neuro selftest license_tier: ORIGINAL expect_exit: 0 No hw writes (Rule 26).

dependencies 1 imports · 0 importers

nx_gate_verdict.nx nx_neuro.nx

imports: nx_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_ctr sys_mmap gv_head gv_puts sys_write nr_pxtable nr_ntable nr_etable nr_check_row nr_root_ok gv_check gv_puts ↻ nr_nlo nr_nok nr_nkind nr_nok ↻ nr_ebase nr_eok nr_out nr_eok ↻ nr_drive nr_root_ok ↻ nr_root_ok ↻ nr_arousal nr_drive ↻ nr_out ↻ gv_puts ↻ nr_name gv_num sys_mmap ↻ sys_write ↻ sys_munmap nr_ncount nr_root_count nr_ecount gv_verdict gv_puts ↻ gv_num ↻ gv_journal

structs

none

consts

38const NR_CN0: i64 = 0
39const NR_C0: i64 = 20
40const NR_T0: i64 = 40
41const NR_L0: i64 = 60
42const NR_S0: i64 = 80
43const NR_CO: i64 = 91
44const NR_MAXLVL: i64 = 96
45const NR_BAD: i64 = 0 - 1
46const NR_ROOTS: i64 = 43
48const NR_MOTOR: i64 = 1
49const NR_SENS: i64 = 2
50const NR_MIXED: i64 = 3
51const NR_SYMP: i64 = 4
52const NR_PARA: i64 = 5
54const NR_TMUSCLE: i64 = 1
55const NR_TEFF: i64 = 2
56const NR_TTERR: i64 = 3
58const NR_NPX: i64 = 10
59const NR_PS: i64 = 2
110const NR_NN: i64 = 37
111const NR_NS: i64 = 8
154const NR_NE: i64 = 9
155const NR_ES: i64 = 8
228const NR_SYMFRAC: i64 = 3

functions

60func nr_pxtable(P: *i64) -> i64
called by 1: main
75func nr_root_ok(l: i64) -> i64
84func nr_root_count() -> i64 { return NR_ROOTS }
called by 1: main
89func nr_check_row(px: i64, lo: i64, hi: i64, kind: i64, P: *i64) -> i64
called by 1: main calls 1: nr_root_ok
112func nr_ntable(N: *i64) -> i64
called by 1: main
156func nr_etable(E: *i64) -> i64
called by 1: main
170func nr_ncount() -> i64 { return NR_NN }
called by 1: main
171func nr_ecount() -> i64 { return NR_NE }
called by 1: main
172func nr_nok(n: i64) -> i64 { if n < 0 { return 0 } if n >= NR_NN { return 0 } return 1 }
called by 2: nr_nlonr_nkind
173func nr_eok(e: i64) -> i64 { if e < 0 { return 0 } if e >= NR_NE { return 0 } return 1 }
called by 2: nr_ebasenr_out
174func nr_nlo(N: *i64, n: i64) -> i64 { if nr_nok(n)==0 { return NR_BAD } return N[n*NR_NS+1] }
called by 1: main calls 1: nr_nok
175func nr_nkind(N: *i64, n: i64) -> i64 { if nr_nok(n)==0 { return NR_BAD } return N[n*NR_NS+3] }
called by 1: main calls 1: nr_nok
176func nr_ebase(E: *i64, e: i64) -> i64 { if nr_eok(e)==0 { return NR_BAD } return E[e*NR_ES] }
called by 1: main calls 1: nr_eok
181func nr_drive(lo: i64, hi: i64, L: *i64) -> i64
called by 2: nr_outnr_arousal calls 1: nr_root_ok
205func nr_out(E: *i64, e: i64, sym: i64, pcr: i64, psa: i64, L: *i64) -> i64
called by 2: nr_arousalmain calls 2: nr_eoknr_drive
229func nr_arousal(E: *i64, stim: i64, L: *i64, out: *i64) -> i64
called by 1: main calls 2: nr_drivenr_out
250func nr_name(id: i64) -> *u8
called by 1: main
297func main(argc: i64, argv: *i64) -> i64