我有这个 C 函数:
double f(int x)
{
if (x <= 0)
return 0.0;
else
return x * log(x);
}
我在一个紧密的循环中调用它,并且想摆脱分支以查看它是否可以提高性能。
我不能使用这个:
double f(int x)
{
return x * log(x);
}
因为它返回NaN
时x == 0
(大约 25% 的时间是正确的。)
有没有另一种方法来实现它,以便它在0
何时返回x == 0
,但仍然摆脱分支?
(我不太关心负输入,因为这些是错误,而零则不是。)