|
|
1
22
就算法而言,复杂性是相同的,差异应该只是一个常数(希望可以忽略不计)。
因此,我会使用
|
|
|
2
8
你 真的 需要知道吗?这会占用你大部分的跑步时间吗?你怎么知道? 更糟糕的是,它可能依赖于平台。然后呢? 当然,如果你在乎的话,可以测试一下,但花很多时间在微观优化上通常是个坏主意。 |
|
|
3
6
编辑:修改代码以避免exp()溢出。这导致这两个功能之间的差距大幅缩小。谢谢你,弗雷德里克。 代码:
(编译使用:)
结果似乎相当确凿:
有点令人惊讶的是,log似乎更快。 纯粹的猜测: taylor series 对数收敛得更快还是什么?在我看来,它实际上就像 natural logarithm 比计算更容易 exponential function :
|
|
|
4
5
因为你是在用价值观工作<<1,注意x-1>x的log(x)<1. 这意味着x-1<log(y)意味着log(x)<log(y),已经 无需使用log或exp即可处理1/e~37%的病例。 |
|
|
5
3
python中的一些快速测试(使用c进行数学):
编辑:C函数似乎被编译器优化了,所以循环占用了时间 有趣的是,在C中,它们的速度似乎是一样的(可能是因为马克在评论中提到的原因)
给出时间:
|
|
|
6
1
它可能取决于你的libm、平台和处理器。你最好写一些调用
两者在我的电脑(Windows)上花费的时间基本相同,所以我会使用
|
|
|
7
1
原木速度更快是有道理的。..Exp必须执行多次乘法才能得到答案,而log只需要将尾数和指数从2进制转换为e进制。 如果您使用的是日志,请务必进行边界检查(正如许多其他人所说)。 |
|
|
8
0
如果你确定这是热点——编译器instrinsics是你的朋友。虽然它依赖于平台(如果你在这样的地方追求性能——你不能与平台无关) 所以,真正的问题是——哪一个是目标架构上的asm指令——以及延迟+周期。没有这一点,这纯粹是猜测。 |
|
Sweepy Dodo · JSON lite的格式化 11 月前 |
|
|
giantjenga · 优化整数向量到二进制向量的转换 1 年前 |
|
Zegarek · Postgresql递归查询未提供预期结果 1 年前 |
|
|
Joe · 为什么这两个查询之间的性能存在如此大的差异? 1 年前 |
|
tic-toc-choc · 在`dplyr中高效使用列表进行过滤` 1 年前 |