一般来说,(安静的)NAN乘以零应该得到给予NAN --它确实如此。然而,在我的代码的一个特定的性能关键部分,我希望零乘以 * 任何 * 为零。在C++中有什么快速的方法可以做到这一点?
lx0bsm1f1#
double mymult(double a, double b){ double result[]={a*b,0.}; return result[(a==0.)|(b==0.)]; }
字符串应该避免分支:仔细检查生成的程序集。并非所有bool计算都隐含分支。
bool
s5a0g9ez2#
你不能用算术来做。你必须测试零。
2条答案
按热度按时间lx0bsm1f1#
字符串
应该避免分支:仔细检查生成的程序集。
并非所有
bool
计算都隐含分支。s5a0g9ez2#
你不能用算术来做。你必须测试零。