mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-24 09:46:59 -06:00
every_pathfinder_operation_is_pinned built its stars with shapes::star, which calls the platform's cos and sin. At the star angle 2.204350845268838, cos on macOS x86_64 (measured under Rosetta on macOS 27.0.1) returns 0xbfe2f1c59f37cbf4, where the correctly rounded value, which macOS aarch64 returns, is 0xbfe2f1c59f37cbf5. In the set of five shapes with seed 7, this moves one star vertex by one ulp, and the set's Unite hashes to 60181664961792917, where PINNED has 9388160212451732406. Under Rosetta, 21 of the 40 hashes differ. The test now builds each star from a table of the correctly rounded cosine and sine of the star's ten angles, written as f64 bit patterns, with the arithmetic of shapes::star. PINNED is unchanged. With these inputs, all 40 hashes equal PINNED on aarch64 and under Rosetta.