mirror of
https://github.com/idanoo/GoScrobble.git
synced 2024-11-24 17:35:16 +00:00
19 lines
517 B
JavaScript
19 lines
517 B
JavaScript
|
// 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;
|
||
|
};
|