2015-05-21 21 views
1

一般來說,log和exp函數應該大致相同的速度。我期望numpy和scipy的實現是相對簡單的包裝。 numpy.log()scipy.log()具有與預期相似的速度。但是,我發現numpy.log()比這些exp()函數慢約60%,scipy.log()慢100%。有誰知道這個的原因嗎?爲什麼numpy和scipy的exp()比log()更快?

+0

在我的簡單測試中,'np.log'快了60%。是的,使用'math.log'和'math.exp'的列表解析給出了相同的時間。但是numpy代碼不是(必然)使用'math'等價物的簡單編譯循環。 – hpaulj

+1

你爲什麼認爲log和exp應該是「大致相同的速度」? – tmyklebu

回答

2

不知道爲什麼你認爲兩者應該「大致相同的速度」。這是真的,這兩個可以使用泰勒級數(其中,甚至本身就意味着小而不分析誤差項)來計算,但隨後的數值招數一命嗚呼。

例如,an algebraic identity可用於改造原有進出口。泰勒系列變爲更高效的2跳功率系列。但是,對於power系列,請參閱here關於個案優化的討論,其中一些涉及查找表。


你給了哪個參數的功能 - 相同?每個最差的一個?

結果的準確性是什麼?你如何衡量每個人的準確性:絕對的,相對的?


編輯應當指出的是,這些庫也可以有different backends

相關問題