A collection of functions for working with BigInts.

A BigInt can represent whole numbers larger than 2⁵³ - 1 (1). *ES2020*
introduced it as a built-in object. `BigInt`

enables us to represent integers
with arbitrary precision, allowing us to perform mathematical operations on
large integers (2). This package includes common bigint functions related to
querying **about** numbers, **comparing** 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**.

This package is available in *Node.js* and *Web* formats. The web format
is exposed as `extra_bigint`

standalone variable and can be loaded from
jsDelivr CDN.

Stability: Experimental.

```
const bigint = require('extra-bigint');
// import * as bigint from "extra-bigint";
// import * as bigint from "https://unpkg.com/extra-bigint/index.mjs"; (deno)
bigint.isPrime(113n);
// → true
bigint.floorDiv(7n, 3n);
// → 2n
bigint.sqrt(81n);
// → 9n
bigint.lcm(2n, 3n, 4n);
// → 12n
bigint.log2(8n);
// → 3n
bigint.sum(1n, 2n, 3n, 4n);
// → 10n
bigint.mean(1n, 7n, 8n);
// → 5n
```

## Index

Property | Description |
---|---|

is | Check if value is a bigint. |

compare | Compare two bigints. |

abs | Get the absolute of a bigint. |

sign | Get the sign of a bigint. |

floorDiv | Perform floor-divison of two bigints (\). |

ceilDiv | Perform ceiling-divison of two bigints. |

roundDiv | Perform rounded-divison of two bigints. |

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 bigint within a minimum and a maximum value. |

remap | Re-map a bigint from one range to another. |

lerp | Linearly interpolate a bigint between two bigints. |

isPow2 | Check if bigint is a power-of-2. |

isPow10 | Check if bigint is a power-of-10. |

prevPow2 | Find previous power-of-2 of a bigint. |

prevPow10 | Find previous power-of-10 of a bigint. |

nextPow2 | Find next power-of-2 of a bigint. |

nextPow10 | Find next power-of-10 of a bigint. |

log2 | Find the base-2 logarithm of a bigint. |

log10 | Find the base-10 logarithm of a bigint. |

sqrt | Find the square root of a bigint. |

cbrt | Find the cube root of a bigint. |

root | Find the nth root of a bigint. |

properDivisors | List all divisors of a bigint, except itself. |

aliquotSum | Sum all proper divisors of a bigint. |

isPrime | Check if bigint is prime. |

gcd | Find the greatest common divisor of bigints. |

lcm | Find the least common multiple of bigints. |

factorial | Find the factorial of a bigint. |

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ᵢ)). |

hypot | Find the length of hypotenuse. |

sum | Find the sum of bigints (Σ). |

product | Find the product of bigints (∏). |

median | Find the value separating the higher and lower halves of bigints. |

modes | Find the values that appear most often. |

min | Find the smallest bigint. |

max | Find the largest bigint. |

range | Find the minimum and maximum bigint. |

variance | Find the mean of squared deviation of bigints from its mean. |

arithmeticMean | Find the arithmetic mean of bigints (µ). |

geometricMean | Find the geometric mean of bigints. |

harmonicMean | Find the harmonic mean of bigints. |

quadriaticMean | Find the quadriatic mean of bigints. |

cubicMean | Find the cubic mean of bigints. |