code wiki / _hdl_build / nx_fluid_gate.nx

nx_fluid_gate.nx

buildroot/runtime/_hdl_build/nx_fluid_gate.nx

5590 B113 linesdepth 4pulls 6 transitivereach 0 importersview sourcekind gate/prooftopic fluid
docsdependenciesstructsconstsfunctions

about

nx_fluid_gate.nx -- ★R6: the height-field FLUID SIMULATION, proven by physics (not "pixels moved"): T1 PROPAGATION: a drop's wavefront radius GROWS over steps (waves travel at finite speed; not static, not instant) T2 ★CONSERVATION: total volume sum(h) is invariant across the sim (mass conservation = the correct-integrator test) T3 REFLECTION + DAMPING: the wave reaches a far boundary (propagation across the domain) AND peak |h| decays over long time (energy dissipates) -- and it stays BOUNDED (no blow-up = numerically stable) T4 determinism + animation strip knowledge/nx_fluid.png (a drop rippling + reflecting across 5 frames) license_tier: ORIGINAL expect_exit: 0

dependencies 3 imports · 0 importers

nx_syscalls.nx nx_png.nx nx_fluid.nx nx_fluid_gate.nx

imports: nx_syscalls.nxnx_png.nxnx_fluid.nx

imported by: nobody (leaf or entry point)

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

main hw sys_write fl_n fl_init sys_mmap fl_drop fl_volume fl_maxabs fl_iabs fl_step fl_front fl_iabs ↻ fl_isqrt iabs fl_h pn sys_mmap ↻ sys_write ↻ sys_mmap ↻ fl_render fl_isqrt ↻ fl_clampi write_png sys_mmap ↻ png_g png_paeth png_sabs dfe_compress sys_mmap ↻ dfe_fill_tables dfe_deflate sys_mmap ↻ dfe_bits dfe_hash dfe_matchlen dfe_sym dfe_bits ↻ dfe_rev dfe_rev ↻

structs

none

consts

none

functions

12func hw(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 }
called by 1: main calls 1: sys_write
13func pn(v: i64) -> i64 { let b: *u8=sys_mmap(32) as *u8; var x: i64=v; var ng: i64=0; if x<0{ng=1;x=0-x} var i: i64=31; if x==0{b[i]=48 as u8;i=i-1} while x>0{b[i]=(48+x%10) as u8;x=x/10;i=i-1} if ng==1{b[i]=45 as u8;i=i-1} sys_write(1,(b as i64+i+1) as *u8,31-i); return 0 }
called by 1: main calls 2: sys_mmapsys_write
14func iabs(v: i64) -> i64 { if v<0 {return 0-v} return v }
called by 1: main
16func main() -> i64