code wiki / _hdl_build / nx_viz_array.nx

nx_viz_array.nx source

↩ module page · 32 lines · 1076 B

1// nx_viz_array.nx -- the DATA-ARRAY layer of the sovereign Nishi viz library (the d3-array core, bits-up). 2// Stats every real chart needs to AUTO-SCALE: min / max / sum / mean / extent. Pure integer. Closes data-array. 3// license_tier: ORIGINAL 4import "nx_syscalls.nx" 5 6func vd_min(a: *i64, n: i64) -> i64 { 7 if n <= 0 { return 0 } 8 var m: i64 = a[0]; var i: i64 = 1 9 while i < n { if a[i] < m { m = a[i] } i = i + 1 } 10 return m 11} 12func vd_max(a: *i64, n: i64) -> i64 { 13 if n <= 0 { return 0 } 14 var m: i64 = a[0]; var i: i64 = 1 15 while i < n { if a[i] > m { m = a[i] } i = i + 1 } 16 return m 17} 18func vd_sum(a: *i64, n: i64) -> i64 { 19 var s: i64 = 0; var i: i64 = 0 20 while i < n { s = s + a[i]; i = i + 1 } 21 return s 22} 23func vd_mean(a: *i64, n: i64) -> i64 { 24 if n <= 0 { return 0 } 25 return vd_sum(a, n) / n 26} 27// extent -> out[0]=min, out[1]=max (the d3.extent pair scales consume directly). 28func vd_extent(a: *i64, n: i64, out: *i64) -> i64 { 29 out[0] = vd_min(a, n); out[1] = vd_max(a, n) 30 return n 31} 32func main() -> i64 { return 0 }