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.
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.
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.