C++ Exp 与 Log:哪个更快?

2024-05-20

我有一个 C++ 应用程序,需要比较两个值并决定哪个值更大。唯一的复杂之处是一个数字在对数空间中表示,而另一个则不是。例如:

double log_num_1 = log(1.23);
double num_2 = 1.24;

如果我想比较num_1 and num_2,我必须使用log() or exp(),我想知道一个是否比另一个更容易计算(即通常运行时间更短)。你可以假设我正在使用标准cmath图书馆。

换句话说,以下内容在语义上是等效的,因此哪个更快:

if(exp(log_num_1) > num_2)) cout << "num_1 is greater";

or

if(log_num_1 > log(num_2)) cout << "num_1 is greater";

据我所知,算法的复杂性是相同的,差异应该只是一个(希望可以忽略不计的)常数。 因此,我会使用exp(a) > b,只是因为它不会因无效输入而中断。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ Exp 与 Log:哪个更快? 的相关文章