2013-07-11 9 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 является NaN, результатом является NaN.
  • Если x меньше 0, результатом является NaN.
  • Если x равно +0, результат равен +0.
  • Если x равно -0, результат равен -0.
  • Если x is + Infinity, результат равен + Infinity.
Смежные вопросы