Repository
Current version released
4 years ago
modulo
modulo implements the mathematical modulo operation in TypeScript for Deno.
Motivation
JavaScript has no native support for true modulo. The % operator works as
modulo for positive numbers, but not negative ones. For example, -1 % 3 = -1
compared to -1 mod 3 = 2. If you need the latter, you can either use this
module, or memorize this modulo formula for JavaScript:
x mod n = ((x % n) + n) % nUsage
The modulo function calculates m = x mod n:
import { modulo } from "https://deno.land/x/modulo/mod.ts";
const x = -1;
const n = 3;
const m = modulo(x, n);
console.assert(m === 2);The quotient function calculates q = floor(x / n).
import { quotient } from "https://deno.land/x/modulo/mod.ts";
const x = -1;
const n = 3;
const q = quotient(x, n);
console.assert(q === -1);The decompose function calculates (q, m). q, m, and n together define
the original value x = q * n + m:
import { decompose } from "https://deno.land/x/modulo/mod.ts";
const x = -1;
const n = 3;
const [q, m] = decompose(x, n);
console.assert(x == q * n + m);