mirror of https://github.com/lukechilds/node.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
18 lines
450 B
18 lines
450 B
10 years ago
|
// Parts of implementation taken from es6-shim project
|
||
|
// See: https://github.com/paulmillr/es6-shim/blob/master/es6-shim.js
|
||
|
|
||
|
'use strict';
|
||
|
|
||
|
var expm1 = require('../expm1')
|
||
|
|
||
|
, abs = Math.abs, exp = Math.exp, e = Math.E;
|
||
|
|
||
|
module.exports = function (x) {
|
||
|
if (isNaN(x)) return NaN;
|
||
|
x = Number(x);
|
||
|
if (x === 0) return x;
|
||
|
if (!isFinite(x)) return x;
|
||
|
if (abs(x) < 1) return (expm1(x) - expm1(-x)) / 2;
|
||
|
return (exp(x - 1) - exp(-x - 1)) * e / 2;
|
||
|
};
|