UNPKG

extra-math

Version:

**Mathematics** is the classification and study of all possible patterns [(1)].

52 lines • 6.61 kB
//#region RE-EXPORTS export { // Round floor, ceil, round, // Rounded division floorDiv, ceilDiv, roundDiv, // Modulo rem, mod, modp, // Range control constrain, constrain as clamp, normalize, normalize as norm, lerp, remap, remap as map, // Arithmetic isPow, prevPow, nextPow, root, log, // Divisors properDivisors, properDivisors as aliquotParts, aliquotSum, minPrimeFactor, minPrimeFactor as leastPrimeFactor, maxPrimeFactor, maxPrimeFactor as greatestPrimeFactor, primeFactors, primeExponentials, isPrime, gcd, gcd as hcf, lcm, // Arrangements factorial, binomial, multinomial, // Geometry degrees, radians, // Statistics sum, product, median, modes, range, variance, // Mean (statistics) arithmeticMean, arithmeticMean as mean, geometricMean, harmonicMean, quadriaticMean, quadriaticMean as rootMeanSquare, cubicMean } from "@nodef/extra-number"; //#endregion //#region GEOMETRY /** * Calculate the magnitude (length) of a vector. * @param xs vector ([x, y, z, ...]) * @returns √(x² + y² + z²) * @example * ```javascript * xmath.magnitude([5, 9]); * // → 10.295630140987 * * xmath.magnitude([10, 2, -1]); * // → 10.246950765959598 * ``` */ export function magnitude(xs) { let a = 0; for(let i = 0, I = xs.length; i < I; i++)a += xs[i] ** 2; return Math.sqrt(a); } // https://processing.org/reference/mag_.html /** * Calculate the distance between two points. * @param xs first point ([x, y, z, ...]) * @param ys second point ([x, y, z, ...]) * @returns √(Δx² + Δy² + Δz²) * @example * ```javascript * xmath.distance([2, -6], [7, 3]); * // → 10.295630140987 * * xmath.distance([7, 4, 3], [17, 6, 2]); * // → 10.246950765959598 * ``` */ export function distance(xs, ys) { let a = 0; for(let i = 0, I = xs.length; i < I; i++)a += (xs[i] - ys[i]) ** 2; return Math.sqrt(a); } // https://processing.org/reference/dist_.html //#endregion //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vaG9tZS9ydW5uZXIvd29yay9leHRyYS1tYXRoL2V4dHJhLW1hdGgvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIFJFLUVYUE9SVFNcbmV4cG9ydCB7XG4gIC8vIFJvdW5kXG4gIGZsb29yLFxuICBjZWlsLFxuICByb3VuZCxcbiAgLy8gUm91bmRlZCBkaXZpc2lvblxuICBmbG9vckRpdixcbiAgY2VpbERpdixcbiAgcm91bmREaXYsXG4gIC8vIE1vZHVsb1xuICByZW0sXG4gIG1vZCxcbiAgbW9kcCxcbiAgLy8gUmFuZ2UgY29udHJvbFxuICBjb25zdHJhaW4sXG4gIGNvbnN0cmFpbiBhcyBjbGFtcCxcbiAgbm9ybWFsaXplLFxuICBub3JtYWxpemUgYXMgbm9ybSxcbiAgbGVycCxcbiAgcmVtYXAsXG4gIHJlbWFwIGFzIG1hcCxcbiAgLy8gQXJpdGhtZXRpY1xuICBpc1BvdyxcbiAgcHJldlBvdyxcbiAgbmV4dFBvdyxcbiAgcm9vdCxcbiAgbG9nLFxuICAvLyBEaXZpc29yc1xuICBwcm9wZXJEaXZpc29ycyxcbiAgcHJvcGVyRGl2aXNvcnMgYXMgYWxpcXVvdFBhcnRzLFxuICBhbGlxdW90U3VtLFxuICBtaW5QcmltZUZhY3RvcixcbiAgbWluUHJpbWVGYWN0b3IgYXMgbGVhc3RQcmltZUZhY3RvcixcbiAgbWF4UHJpbWVGYWN0b3IsXG4gIG1heFByaW1lRmFjdG9yIGFzIGdyZWF0ZXN0UHJpbWVGYWN0b3IsXG4gIHByaW1lRmFjdG9ycyxcbiAgcHJpbWVFeHBvbmVudGlhbHMsXG4gIGlzUHJpbWUsXG4gIGdjZCxcbiAgZ2NkIGFzIGhjZixcbiAgbGNtLFxuICAvLyBBcnJhbmdlbWVudHNcbiAgZmFjdG9yaWFsLFxuICBiaW5vbWlhbCxcbiAgbXVsdGlub21pYWwsXG4gIC8vIEdlb21ldHJ5XG4gIGRlZ3JlZXMsXG4gIHJhZGlhbnMsXG4gIC8vIFN0YXRpc3RpY3NcbiAgc3VtLFxuICBwcm9kdWN0LFxuICBtZWRpYW4sXG4gIG1vZGVzLFxuICByYW5nZSxcbiAgdmFyaWFuY2UsXG4gIC8vIE1lYW4gKHN0YXRpc3RpY3MpXG4gIGFyaXRobWV0aWNNZWFuLFxuICBhcml0aG1ldGljTWVhbiBhcyBtZWFuLFxuICBnZW9tZXRyaWNNZWFuLFxuICBoYXJtb25pY01lYW4sXG4gIHF1YWRyaWF0aWNNZWFuLFxuICBxdWFkcmlhdGljTWVhbiBhcyByb290TWVhblNxdWFyZSxcbiAgY3ViaWNNZWFuLFxufSBmcm9tIFwiQG5vZGVmL2V4dHJhLW51bWJlclwiO1xuLy8jZW5kcmVnaW9uXG5cblxuXG5cbi8vI3JlZ2lvbiBHRU9NRVRSWVxuLyoqXG4gKiBDYWxjdWxhdGUgdGhlIG1hZ25pdHVkZSAobGVuZ3RoKSBvZiBhIHZlY3Rvci5cbiAqIEBwYXJhbSB4cyB2ZWN0b3IgKFt4LCB5LCB6LCAuLi5dKVxuICogQHJldHVybnMg4oiaKHjCsiArIHnCsiArIHrCsilcbiAqIEBleGFtcGxlXG4gKiBgYGBqYXZhc2NyaXB0XG4gKiB4bWF0aC5tYWduaXR1ZGUoWzUsIDldKTtcbiAqIC8vIOKGkiAxMC4yOTU2MzAxNDA5ODdcbiAqXG4gKiB4bWF0aC5tYWduaXR1ZGUoWzEwLCAyLCAtMV0pO1xuICogLy8g4oaSIDEwLjI0Njk1MDc2NTk1OTU5OFxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYWduaXR1ZGUoeHM6IG51bWJlcltdKTogbnVtYmVyIHtcbiAgbGV0IGEgPSAwO1xuICBmb3IgKGxldCBpPTAsIEk9eHMubGVuZ3RoOyBpPEk7IGkrKylcbiAgICBhICs9IHhzW2ldKioyO1xuICByZXR1cm4gTWF0aC5zcXJ0KGEpO1xufVxuLy8gaHR0cHM6Ly9wcm9jZXNzaW5nLm9yZy9yZWZlcmVuY2UvbWFnXy5odG1sXG5cblxuLyoqXG4gKiBDYWxjdWxhdGUgdGhlIGRpc3RhbmNlIGJldHdlZW4gdHdvIHBvaW50cy5cbiAqIEBwYXJhbSB4cyBmaXJzdCBwb2ludCAoW3gsIHksIHosIC4uLl0pXG4gKiBAcGFyYW0geXMgc2Vjb25kIHBvaW50IChbeCwgeSwgeiwgLi4uXSlcbiAqIEByZXR1cm5zIOKImijOlHjCsiArIM6UecKyICsgzpR6wrIpXG4gKiBAZXhhbXBsZVxuICogYGBgamF2YXNjcmlwdFxuICogeG1hdGguZGlzdGFuY2UoWzIsIC02XSwgWzcsIDNdKTtcbiAqIC8vIOKGkiAxMC4yOTU2MzAxNDA5ODdcbiAqXG4gKiB4bWF0aC5kaXN0YW5jZShbNywgNCwgM10sIFsxNywgNiwgMl0pO1xuICogLy8g4oaSIDEwLjI0Njk1MDc2NTk1OTU5OFxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaXN0YW5jZSh4czogbnVtYmVyW10sIHlzOiBudW1iZXJbXSk6IG51bWJlciB7XG4gIGxldCBhID0gMDtcbiAgZm9yIChsZXQgaT0wLCBJPXhzLmxlbmd0aDsgaTxJOyBpKyspXG4gICAgYSArPSAoeHNbaV0gLSB5c1tpXSkqKjI7XG4gIHJldHVybiBNYXRoLnNxcnQoYSk7XG59XG4vLyBodHRwczovL3Byb2Nlc3Npbmcub3JnL3JlZmVyZW5jZS9kaXN0Xy5odG1sXG4vLyNlbmRyZWdpb25cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFDcEIsU0FDRSxRQUFRO0FBQ1IsS0FBSyxFQUNMLElBQUksRUFDSixLQUFLLEVBQ0wsbUJBQW1CO0FBQ25CLFFBQVEsRUFDUixPQUFPLEVBQ1AsUUFBUSxFQUNSLFNBQVM7QUFDVCxHQUFHLEVBQ0gsR0FBRyxFQUNILElBQUksRUFDSixnQkFBZ0I7QUFDaEIsU0FBUyxFQUNULGFBQWEsS0FBSyxFQUNsQixTQUFTLEVBQ1QsYUFBYSxJQUFJLEVBQ2pCLElBQUksRUFDSixLQUFLLEVBQ0wsU0FBUyxHQUFHLEVBQ1osYUFBYTtBQUNiLEtBQUssRUFDTCxPQUFPLEVBQ1AsT0FBTyxFQUNQLElBQUksRUFDSixHQUFHLEVBQ0gsV0FBVztBQUNYLGNBQWMsRUFDZCxrQkFBa0IsWUFBWSxFQUM5QixVQUFVLEVBQ1YsY0FBYyxFQUNkLGtCQUFrQixnQkFBZ0IsRUFDbEMsY0FBYyxFQUNkLGtCQUFrQixtQkFBbUIsRUFDckMsWUFBWSxFQUNaLGlCQUFpQixFQUNqQixPQUFPLEVBQ1AsR0FBRyxFQUNILE9BQU8sR0FBRyxFQUNWLEdBQUcsRUFDSCxlQUFlO0FBQ2YsU0FBUyxFQUNULFFBQVEsRUFDUixXQUFXLEVBQ1gsV0FBVztBQUNYLE9BQU8sRUFDUCxPQUFPLEVBQ1AsYUFBYTtBQUNiLEdBQUcsRUFDSCxPQUFPLEVBQ1AsTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsUUFBUSxFQUNSLG9CQUFvQjtBQUNwQixjQUFjLEVBQ2Qsa0JBQWtCLElBQUksRUFDdEIsYUFBYSxFQUNiLFlBQVksRUFDWixjQUFjLEVBQ2Qsa0JBQWtCLGNBQWMsRUFDaEMsU0FBUyxRQUNKLHNCQUFzQjtBQUM3QixZQUFZO0FBS1osa0JBQWtCO0FBQ2xCOzs7Ozs7Ozs7Ozs7Q0FZQyxHQUNELE9BQU8sU0FBUyxVQUFVLEVBQVk7RUFDcEMsSUFBSSxJQUFJO0VBQ1IsSUFBSyxJQUFJLElBQUUsR0FBRyxJQUFFLEdBQUcsTUFBTSxFQUFFLElBQUUsR0FBRyxJQUM5QixLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUU7RUFDZCxPQUFPLEtBQUssSUFBSSxDQUFDO0FBQ25CO0FBQ0EsNkNBQTZDO0FBRzdDOzs7Ozs7Ozs7Ozs7O0NBYUMsR0FDRCxPQUFPLFNBQVMsU0FBUyxFQUFZLEVBQUUsRUFBWTtFQUNqRCxJQUFJLElBQUk7RUFDUixJQUFLLElBQUksSUFBRSxHQUFHLElBQUUsR0FBRyxNQUFNLEVBQUUsSUFBRSxHQUFHLElBQzlCLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUc7RUFDeEIsT0FBTyxLQUFLLElBQUksQ0FBQztBQUNuQixFQUNBLDhDQUE4QztDQUM5QyxZQUFZIn0=