es6.math.acosh.js 571 B

123456789101112131415161718
  1. // 20.2.2.3 Math.acosh(x)
  2. var $export = require('./_export');
  3. var log1p = require('./_math-log1p');
  4. var sqrt = Math.sqrt;
  5. var $acosh = Math.acosh;
  6. $export($export.S + $export.F * !($acosh
  7. // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509
  8. && Math.floor($acosh(Number.MAX_VALUE)) == 710
  9. // Tor Browser bug: Math.acosh(Infinity) -> NaN
  10. && $acosh(Infinity) == Infinity
  11. ), 'Math', {
  12. acosh: function acosh(x) {
  13. return (x = +x) < 1 ? NaN : x > 94906265.62425156
  14. ? Math.log(x) + Math.LN2
  15. : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));
  16. }
  17. });