Skip to content
/ modulo Public

The mathematical modulo operation in TypeScript for Deno.

License

Notifications You must be signed in to change notification settings

eibens/modulo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

modulo

modulo implements the mathematical modulo operation in TypeScript for Deno.

License deno.land/x Repository ci codecov

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) % n

Usage

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);

About

The mathematical modulo operation in TypeScript for Deno.

Topics

Resources

License

Stars

Watchers

Forks