在我的一個模塊中,我必須處理無限的概念。迄今爲止,我一直在使用9**9**9
作爲正無窮,並且這似乎運行良好,速度很快,並且似乎是perl內部使用的無窮大。在Perl模塊中檢查無窮大的最佳方法是什麼?
然而,事情變得有點冒險,如果我的模塊的用戶決定使用大數模塊之一(如use bigint;
),然後他們使用inf
或Math::BigInt->binf()
表示無窮。
在一些地方,它似乎工作正常,但在其他地方,應該是真實的或應該是錯誤的比較最終會導致錯誤追蹤錯誤。
我想支持各種其他的無限概念,用普通perl數字和任意精度數字都可以工作。
但我也擔心表現,因爲我的一些比較無限發生在緊密的內部循環中。顯然inf
從Math::BigInt
將會比9**9**9
慢(由於每個訪問調用綁定或重載方法)。有沒有人在過去處理過這個問題?如果是這樣,你的解決方案是什麼?
我想過用自己的常數無窮,定義是這樣的:
,然後加入告誡我的模塊,任何BIGNUM模塊應先送入。這聽起來合理嗎?在那裏有可靠的if_any_bignum...
實施嗎,還是我應該推出自己的?
可能的重複[如何在Perl中創建或測試NaN或無窮大?](http://stackoverflow.com/questions/1185822/how-do-i-create-or-test-for-nan- or-infinity-in-perl) – Ether 2010-10-04 16:20:21
@其他=>請在投票結束前閱讀問題,否則這個問題的答案都不會涵蓋這個問題...... – 2010-10-04 16:25:41
好吧,那不是很清楚,因爲問題是相同的。 – Ether 2010-10-04 16:29:39