math
math copied to clipboard
Floating-Point Comparison Performance
From this write up float distance could be several times better. I can poke around when implementing constexpr std::nexttoward
as that is the last outlier in ccmath from this proposal.
Yeah, I think getting it to work quickly with multiprecision is the tricky part.
Yeah, I think getting it to work quickly with multiprecision is the tricky part.
We would need the existing implementation for all non-builtin non-IEEE floats IMO.
But it's not just those, I suspect it's much harder than that blog post suggests once you handle all the corner cases correctly. I do remember that that code was a bitch to get correct.
We should have fairly good tests though, so if Matt wants to take a shot at the faster version by all means go for it :)
Oh don't forget the has_denorm
! The trick doesn't work if the floating point unit doesn't support denorms.
Oh don't forget the has_denorm! The trick doesn't work if the floating point unit doesn't support denorms.
It's worse, behaviour can vary at runtime: https://www.intel.com/content/www/us/en/develop/documentation/cpp-compiler-developer-guide-and-reference/top/compiler-reference/floating-point-operations/understanding-floating-point-operations/setting-the-ftz-and-daz-flags.html
eww; wouldn't that require query of the cpuid instruction on every call?