3 ms·
There are fast float intrinsics: https://doc.rust-lang.org/std/intrinsics/fn.fadd_fast.html https://doc.rust-lang.org/std/intrinsics/fn.fadd_fast.html but bett
by pornel 5y ago
There are fast float intrinsics: https://doc.rust-lang.org/std/intrinsics/fn.fadd_fast.html https://doc.rust-lang.org/std/intrinsics/fn.fadd_fast.html
but better support dies in endless bikeshed of:
• People imagine enabling fast float by "scope", but there's no coherent way to specify that when it can mix with closures (even across crates) and math operators expand to std functions defined in a different scope.
• Type-based float config could work, but any proposal of just "fastfloat32" grows into a HomerMobile of "Float<NaN=false, Inf=Maybe, NegZeroEqualsZero=OnFullMoonOnly, etc.>"
• Rust doesn't want to allow UB in safe code, and LLVM will cry UB if it sees Inf or Nan, but nobody wants compiler inserting div != 0 checks.
• You could wrap existing fast intrinsics in a newtype, except newtypes don't support literals, and <insert user-defined literals bikeshed here>