(I feel like this should be a duplicate question, but I couldn't find the right search terms when searching.)
In general, (quiet) NAN times zero should give NAN -- and it does.
However, in one particular performance-critical part of my code, I want zero times anything to be zero.
What's a fast way to do this in C++?
double mymult(double a, double b){
double result[]={a*b,0.};
return result[(a==0.)|(b==0.)];
}
should avoid branches: double check the generated assembly.
Not all bool
calculations imply a branch.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With