Our great sponsors
-
Bullet
Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
Nobody uses fixed point numbers. What this means is that integrating libraries and other things is 100x more painful. This was mostly apparent when we realized we'd basically have to make sweeping changes to the physics engine we were using (Bullet) to accomodate that.
This is interesting, thanks! I think 1 can probably be solved with some "reasonable" slowdown compared to float. E.g. I use Taylor expansion to implement `sin` which isn't toooo slow. I do some `mod`ing and a few comparisons to express the problem in terms of `sin(x)` s.t. `-pi / 2 <= x <= -pi / 2`. Then use the Taylor expansion about 0 which takes about 4 (+ and -), 5 (*), and 4 (/). I need to properly benchmark this, Though. I do wonder if a floating point representation rather than a fixed precision representation would be practical. I'm also using https://hackage.haskell.org/package/integer-roots for `sqrt` though I'm not 100% sure this is deterministic, and I'm sure that a specialized implementation would be much faster.