mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-11-12 11:21:11 -05:00
System.Math's Sin, Cos and Atan2 call the C runtime, and Windows' UCRT and Linux's glibc differ in the last bit at many angles that are not quarter turns. Nesting turns those bits into different tie and tolerance decisions, so the same job nests differently on the desktop and on Linux (Project Memory 518f3b58). PortableMath ports fdlibm's Sin, Cos, Atan and Atan2, which use only IEEE exact operations, and builds Tan, Asin and Acos on them with Sqrt. Results stay within one ulp of the runtime (a few for the derived functions) and hash to the same digest on Linux and on Windows (DesktopPC). Nothing calls it yet.