Skip to content

nodef/extra-math

Repository files navigation

Mathematics is the classification and study of all possible patterns (1).
📦 Node.js, 🌐 Web, 📜 Files, 📰 JSDoc, 📘 Wiki.

This package includes common number functions related to querying about numbers, comparing numbers, rounding numbers, performing rounded division, performing modulo operations, controlling range of numbers, performing arithmetic operations, obtaining divisors of a number (and related operations), getting the number of possible arrangements of a set of objects, performing geometry-related calculations, performing basic statistical analysis, and finding various statistical means.

Natural numbers: There are 3 different ways of performing the modulo operation: rem, mod, and modp. gcd/HCF and lcm of a list of numbers can be obtained. To calculate the number of ways of ordering items, use factorial/P(n, k), binomial/C(n, k), or multinomial/n!/k₁!k₂!....

Real numbers: Range of a number can be controlled with constrain, normalize, or remap. Use lerp for linear interpolation (or extrapolation); root for calculating the n-th root of a number; and log to find the logarithm of a number with a given base.

Geometry: Perform conversion from degrees to radians and vice versa. Find the magnitude of a vector or distance between two points.

Statistics: For a list of numbers, we can calculate the sum, product, arithmeticMean. median gives the value lying in the middle when the numbers are sorted, and modes gives the values which are repeated most often. The difference between the largest and the smallest values is the range. variance is a measure of variability of numbers.

This package is available in Node.js and Web formats. To use it on the web, simply use the extra_math global variable after loading with a <script> tag from the jsDelivr CDN.

Stability: Experimental.


const xmath = require('extra-math');
// import * as xmath from "extra-math";
// import * as xmath from "https://unpkg.com/extra-math/index.mjs"; (deno)

xmath.sum(1, 2, 3, 4);
// → 10

xmath.median(1, 7, 8);
// → 7

xmath.variance(1, 2, 3, 4);
// → 1.25

xmath.lcm(2, 3, 4);
// → 12


Index

Property Description
floor Round down a number to specific precision.
ceil Round up a number to specific precision.
round Round a number to specific precision.
floorDiv Perform floor-divison of two numbers.
ceilDiv Perform ceiling-divison of two numbers.
roundDiv Perform rounded-divison of two numbers.
rem Find the remainder of x/y with sign of x (truncated division).
mod Find the remainder of x/y with sign of y (floored division).
modp Find the remainder of x/y with +ve sign (euclidean division).
constrain Constrain a number within a minimum and a maximum value.
normalize Normalize a number from its current range into a value between 0 and 1.
remap Re-map a number from one range to another.
lerp Linearly interpolate a number between two numbers.
isPow Check if a number is a power-of-n.
prevPow Find largest power-of-n less than or equal to given number.
nextPow Find smallest power-of-n greater than or equal to given number.
root Find the nth root of a number (ⁿ√).
log Find the logarithm of a number with a given base.
properDivisors List all divisors of a number, except itself.
aliquotSum Sum all proper divisors of a number.
minPrimeFactor Find the least prime number which divides a number.
maxPrimeFactor Find the greatest prime number which divides a number.
primeFactors Find the prime factors of a number.
primeExponentials Find the prime factors and respective exponents of a number.
isPrime Check if number is prime.
gcd Find the greatest common divisor of numbers.
lcm Find the least common multiple of numbers.
factorial Find the factorial of a number.
binomial Find the number of ways to choose k elements from a set of n elements.
multinomial Find the number of ways to put n objects in m bins (n=sum(kᵢ)).
degrees Convert radians to degrees.
radians Convert degrees to radians.
magnitude Calculate the magnitude (length) of a vector.
distance Calculate the distance between two points.
sum Find the sum of numbers (Σ).
product Find the product of numbers (∏).
median Find the value separating the higher and lower halves of numbers.
modes Find the values that appear most often.
range Find the smallest and largest values.
variance Find the mean of squared deviation of numbers from its mean.
arithmeticMean Find the average of numbers.
geometricMean Find the geometric mean of numbers.
harmonicMean Find the harmonic mean of numbers.
quadriaticMean Find the quadriatic mean of numbers.
cubicMean Find the cubic mean of numbers.


References




ORG DOI Coverage Status Test Coverage Maintainability