Closed DavidEichmann closed 6 months ago
After a little digging my guess is that you use a pinned version of libm (rust port) and hope that this provides determinism, which is not entirely unreasonable. I assume rapier has some mechanism to ensure libm functions are used rather that std functions (I'm not sure how to achieve that other than wrapping all float types in a libm-float type).
...Indeed it seems the ComplexField trait is used to force libm usage e.g. here
The docs assert that cross platform determinism is supported. Great! But looking into this I wonder if that's really true. How is floating point (FP) determinism achieved? Consider the following: