Skip to main content

Module numeric

Module numeric 

Source
Expand description

The numeric bodies the node library and the native lowerings share. A node in polydat-nodes is a thin wrapper over a function here, and the JIT helper for that node calls the same function, so the interpreter and native code compute the same bits by construction (compiled_handles.md §6, the corner suite).

Modules§

hash
The SplitMix64 mixer: the body of hash and the mix every hashing lowering inlines.
n_of_m
The n-of-m selection: within each window of m inputs, the n whose position hashes lowest are selected; the body of n_of and of its native lowering.
noise
Coherent noise: the permutation table and the Perlin, simplex, and fractal Brownian motion algorithms, the bodies of the noise nodes and of their native lowerings.
pcg
The PCG-RXS-M-XS generator, its O(log N) seek, and the Feistel cycle walk: the bodies of pcg, pcg_stream, and cycle_walk, which the native lowerings and the comprehension strategies call.
permute
The Galois LFSR permutation: one body for the shuffle node and for jit_shuffle, the helper native code calls.
register
The register-lane bodies: the bounds-checked gathers, lane reads, and lane writes the reg_* nodes and their native lowerings share, on the word as the slots hold it, so both produce the same bits and the same message on a bad lane or window.
round_numbers
The round-number families: the powers, Fibonacci steps, and nearest-pick the floor_*, ceiling_*, and closest_* nodes and their native lowerings compute with.
special
Special functions behind the inverse-CDF samplers: the standard normal quantile and CDF, ln Γ, and the regularized incomplete beta and gamma functions with their inverses. The node library’s distribution tables (polydat-nodes, sampling::icd) and the comprehension runtime’s named-measure sampling (comprehension_forms.md §10.2 R2) compute from the same bodies, so a normal node and a normal comprehension source agree bit for bit on the same quantile.
vector
The f32 vector bodies: the scalar references, the SIMD dispatch, and the element-wise and reducing operations the vec_* nodes and their native lowerings share, so both produce the same bytes.