# mathutils

0.0.1 • Public • Published

# MathUtils

a collection of math-related functions

``````npm install mathutils
``````

### Currently available functions

##### isEven(n) / isOdd(n)

Check if the bit for `2^0` is set. If it is, `n must be odd.

##### powermod(a, b, c)

powermod is a way of computing `(a ^ b) mod c` without having to deal with giant numbers that would loose their precision.

##### slowIsPrime(n)

Returns if `n` is a prime. Extremely slow, but absolutely accurate.

##### fastIsPrime(n)

Retuns if a `n` is a prime. Based upon Fermat's little theorem.

Note: Doesn't take care of carmichael primes, so you probably want to use this in combination with slowIsPrime.

##### isPrime(n)

Runs both `fastIsPrime` and `slowIsPrime`. This way, it manages to be both (relatively) fast and accurate.

##### randomPrime(length)

Returns a pseudo-random prime number (based on `Math.random`). `length` defaults to 3.

##### gcd(a, b)

Returns the greatest common divisor of `a` and `b`. Based on Euclids algorithm

##### egcd(a, b)

Computes the extended Euclidean algorithm. Returns an array `[d, s, t]`.

``````gcd(a, b) = d = s * a + t * b
``````
##### modularInverse(a, b)

Returns the modular multiplicative inverse of `a` and `b`.

### TODO

• write tests
• learn how to breakdance

none

## Package Sidebar

### Install

`npm i mathutils`

### Repository

github.com/fb55/MathUtils

3

0.0.1