tandem rng tandem-hs GitHub

Tests

cabal test

Suite

Fixtures

tools/gen_fixtures.py converts the specification's vectors.json into tests/Fixtures.hs. tests/conformance/*.json are byte copies of tandem-spec 2a4bd08 conformance/*.json. tools/gen_zig_tables.py writes the ziggurat tables from the spec's JSON. cabal run -f tools tandem-dump -- normals writes the bytes of tandem-c's tools/dump_normals.c, with SHA-256 700ec4d2f4d6b82aaa56c6eff18a4e5919585fdbd093988773383d580ea610d1.

CI

CI checks the vendored C, the dumps, the fixtures, the conformance files and the ziggurat tables against the commits pinned in .github/workflows/ci.yml. The tests run with GHC 9.14 on Ubuntu and macOS and with GHC 9.12 on Ubuntu. CI also checks that the dumps hash as tandem-c's, that fused multiply-adds lower to instructions, the tests with -mfma, and the tests in pure Haskell with -f -cbits. A second job runs the tests with GHC 9.14 and -f llvm on LLVM 21, on Ubuntu and macOS.