1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| // 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 (value) {
| if (isNaN(value)) return NaN;
| value = Number(value);
| if (value === 0) return value;
| if (!isFinite(value)) return value;
| if (abs(value) < 1) return (expm1(value) - expm1(-value)) / 2;
| return ((exp(value - 1) - exp(-value - 1)) * e) / 2;
| };
|
|