2013-07-11 122 views
0

我和我的合作伙伴正在研究一種確定性物理引擎,這種引擎在各種平臺上的運行方式完全相同。爲了做出這樣的事情,我們正在使用定點或截斷浮點數學(我們將在後面解釋)。但是,爲了將引擎移植到Javascript,我們必須確保我們將使用的Javascript中的雙精度浮點操作與我們將在桌面端口中使用的任何操作一致。在Javascript中實現平方根方法

考慮到這一點,我的問題是:Math.sqrt()如何在Javascript中實現?如果跨瀏覽器有不同的實現,那麼這些實現是什麼?或者,如果前面的問題沒有特定的答案,Math.sqrt()可以產生的最大錯誤數量是多少?

我們不喜歡寫自己的平方根函數,因爲原生實現的Math.sqrt()總是會勝過我們在Javascript中編寫的任何東西。

回答

1

ECMA-262(ECMAScript的5.1規範)不需要用於Math.sqrt一個具體實施方式中,只需要爲不尋常數量的值(NaN-0等)特定的結果:

15.8.2.17的sqrt(x)的

返回x的平方根的實現相關近似值。

  • 如果x是NaN,結果是NaN。
  • 如果x小於0,結果是NaN。
  • 如果x是+0,結果是+0。
  • 如果x爲-0,則結果爲-0。
  • 如果x是+無窮大,結果是+無窮大。