Skip to content

v0.7.1

@jaehyukchoi jaehyukchoi tagged this 29 May 16:08
v0.7.0's cibuildwheel run failed on macos-14 (Apple Silicon, Clang) because
Clang aggressively contracts 'a*b + c' into a single FMA instruction (one
rounding) while the Python _pyref implementation evaluates separate multiply
+ add (two roundings).  The resulting 1-ulp differences across Horner
sequences were rejected by tests/test_pyref_consistency, so no wheels were
ever uploaded to PyPI under 0.7.0.

This release adds platform-conditional compile flags that disable FMA
contraction in the C++ Mills-ratio kernel:
  - POSIX (Clang / GCC): -ffp-contract=off
  - Windows (MSVC): /fp:precise (already the default; explicit for clarity)

Both flags keep mul + add as separate operations, restoring strict bit-
equality between the compiled binding and _pyref on every platform.  Local
Windows MSVC build is unchanged (the flag was already the default there);
the meaningful fix lands on the macos-14 build.  (PR #11.)

Also in this release: pyproject.toml's Homepage URL updated to
https://github.com/quants-net/MathPF following the post-v0.7.0 org transfer
from PyFE/MathPF.  PyPI trusted publishing was reconfigured against the new
org/repo path separately on PyPI's project settings page.

Functional content vs v0.7.0: identical math, identical algorithms, identical
test results.  Only difference is the compile flags ensure portable bit-
equality.  Users who never saw v0.7.0 on PyPI (because it didn't publish)
see this as the first release after v0.6.1 with the C++ kernel and the
_pyref / tools/ consolidation from PRs #8 + #9 + #10.
Assets 2
Loading