]> git.r.bdr.sh - rbdr/dotfiles/blob - atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sinh/shim.js
5b725bed656d959169308d035d68c999d4a795f3
[rbdr/dotfiles] / atom / packages / vim-mode / node_modules / grim / node_modules / emissary / node_modules / es6-weak-map / node_modules / es5-ext / math / sinh / shim.js
1 // Parts of implementation taken from es6-shim project
2 // See: https://github.com/paulmillr/es6-shim/blob/master/es6-shim.js
3
4 'use strict';
5
6 var expm1 = require('../expm1')
7
8 , abs = Math.abs, exp = Math.exp, e = Math.E;
9
10 module.exports = function (x) {
11 if (isNaN(x)) return NaN;
12 x = Number(x);
13 if (x === 0) return x;
14 if (!isFinite(x)) return x;
15 if (abs(x) < 1) return (expm1(x) - expm1(-x)) / 2;
16 return (exp(x - 1) - exp(-x - 1)) * e / 2;
17 };