2016-10-10 03:43:44 +02:00
|
|
|
// 20.2.2.30 Math.sinh(x)
|
2017-08-14 05:01:11 +02:00
|
|
|
var $export = require('./_export');
|
|
|
|
var expm1 = require('./_math-expm1');
|
|
|
|
var exp = Math.exp;
|
2016-10-10 03:43:44 +02:00
|
|
|
|
|
|
|
// V8 near Chromium 38 has a problem with very small numbers
|
2017-08-14 05:01:11 +02:00
|
|
|
$export($export.S + $export.F * require('./_fails')(function () {
|
2016-10-10 03:43:44 +02:00
|
|
|
return !Math.sinh(-2e-17) != -2e-17;
|
|
|
|
}), 'Math', {
|
2017-08-14 05:01:11 +02:00
|
|
|
sinh: function sinh(x) {
|
2016-10-10 03:43:44 +02:00
|
|
|
return Math.abs(x = +x) < 1
|
|
|
|
? (expm1(x) - expm1(-x)) / 2
|
|
|
|
: (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);
|
|
|
|
}
|
2017-08-14 05:01:11 +02:00
|
|
|
});
|