added whole system from ola4doc

This commit is contained in:
Bachir Soussi Chiadmi
2017-12-14 17:06:06 +01:00
parent 9646c74be1
commit 0611418f7a
8725 changed files with 817688 additions and 2 deletions
+6
View File
@@ -0,0 +1,6 @@
'use strict';
if (!require('./is-implemented')()) {
Object.defineProperty(Math, 'hypot', { value: require('./shim'),
configurable: true, enumerable: false, writable: true });
}
+5
View File
@@ -0,0 +1,5 @@
'use strict';
module.exports = require('./is-implemented')()
? Math.hypot
: require('./shim');
+7
View File
@@ -0,0 +1,7 @@
'use strict';
module.exports = function () {
var hypot = Math.hypot;
if (typeof hypot !== 'function') return false;
return hypot(3, 4) === 5;
};
+34
View File
@@ -0,0 +1,34 @@
// Thanks for hints: https://github.com/paulmillr/es6-shim
'use strict';
var some = Array.prototype.some, abs = Math.abs, sqrt = Math.sqrt
, compare = function (a, b) { return b - a; }
, divide = function (x) { return x / this; }
, add = function (sum, number) { return sum + number * number; };
module.exports = function (val1, val2/*, …valn*/) {
var result, numbers;
if (!arguments.length) return 0;
some.call(arguments, function (val) {
if (isNaN(val)) {
result = NaN;
return;
}
if (!isFinite(val)) {
result = Infinity;
return true;
}
if (result !== undefined) return;
val = Number(val);
if (val === 0) return;
if (!numbers) numbers = [abs(val)];
else numbers.push(abs(val));
});
if (result !== undefined) return result;
if (!numbers) return 0;
numbers.sort(compare);
return numbers[0] * sqrt(numbers.map(divide, numbers[0]).reduce(add, 0));
};