Maul2D v1.3.0
Maul2D 1.3.0: the simd release
x64 baseline moves to AVX2+FMA (Haswell 2013+); arm64 is NEON.
src/simd.h: eight-lane vectors with a bit law: every operation is a
single-rounding IEEE op with identical semantics on AVX2, NEON and
the scalar fmaf fallback. min/max are compare+select (SSE and NEON
disagree about NaN and signed zero), fused multiply-add is explicit
and correctly rounded everywhere, implicit contraction stays
forbidden. The contact warm-start and solve kernels are written once
against that API.
The law is a hard gate, not a promise: CI's sanitize cell builds
with -DMAUL2D_SIMD=scalar and its 15 gate hashes join the
cross-platform comparison as a ninth cell; AVX2 cells, NEON cells
and the scalar cell must produce identical bits or the build is red.
They did, on first contact.
Need the old baseline? -DMAUL2D_SIMD=scalar builds a portable
fallback with bit-identical results.