
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
extra-math
Advanced tools
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
| 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. |
FAQs
Mathematics is the classification and study of all possible patterns.
We found that extra-math demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.