modular-arithmetic: A type for integers modulo some constant.

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

A convenient type for working with integers modulo some constant. It saves you from manually wrapping numeric operations all over the place and prevents a range of simple mistakes. Integer Mod 7 is the type of integers (mod 7) backed by Integer. We also have some cute syntax for these types like ℤ/7 for integers modulo 7.


[Skip to Readme]

Properties

Versions 1.0.0.0, 1.0.0.1, 1.0.1.0, 1.0.1.1, 1.1.0.0, 1.2.0.0, 1.2.1.0, 1.2.1.1, 1.2.1.2, 1.2.1.3, 1.2.1.4, 1.2.1.5, 2.0.0.0, 2.0.0.0, 2.0.0.1, 2.0.0.2, 2.0.0.3
Change log CHANGELOG.md
Dependencies base (>4.9 && <5), typelits-witnesses (<0.5) [details]
License BSD-3-Clause
Author Tikhon Jelvis <tikhon@jelv.is>
Maintainer Tikhon Jelvis <tikhon@jelv.is>
Category Math
Home page https://github.com/TikhonJelvis/modular-arithmetic
Bug tracker https://github.com/TikhonJelvis/modular-arithmetic/issues
Source repo head: git clone git://github.com/TikhonJelvis/modular-arithmetic.git
Uploaded by TikhonJelvis at 2020-08-16T23:31:55Z

Modules

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for modular-arithmetic-2.0.0.0

[back to package description]

Modular Arithmetic

Hackage package Build Status

This package provides a type for integers modulo some constant, usually written as ℤ/n.

Here is a quick example:

>>> 10 * 11 :: ℤ/7
5

It also works correctly with negative numeric literals:

>>> (-10) * 11 :: ℤ/7
2

Modular division is an inverse of modular multiplication. It is defined when divisor is coprime to modulus:

>>> 7 `div` 3 :: ℤ/16
13
>>> 3 * 13 :: ℤ/16
7