Expand description
Modular math implemented with traits.
This crate provides modular arithmetic implemented not for
any particular type, but for any type that implements minimal
set of core::ops::
and num_traits::
traits.
All provided functions are simply free functions.
There are three verions of each: basic
that has least amount
of constraints, but requires Copy
to be implemented for the type.
constrained
requires Clone
.
strict
requires neither, but has most other constaints to be able to
operate with references and Overflowing
arithmetic.
Tested with builtin integers and num-bigint
, crypto-bigint
, bnum
, ibig
and fixed-bigint
crates. basic
versions of functions
wont work with num-bigint
and ibig
as both require heap
allocation.
Functionsยง
- basic_
mod_ add - Modular Addition (Basic)
- basic_
mod_ exp - Modular Exponentiation (Basic)
- basic_
mod_ inv - Modular Inverse (Basic)
- basic_
mod_ mul - Modular Multiplication (Basic)
- basic_
mod_ sub - Modular Subtraction (Basic)
- constrained_
mod_ add - Modular Addition (Constrained)
- constrained_
mod_ exp - Modular Exponentiation (Constrained)
- constrained_
mod_ inv - Modular Inverse (Constrained)
- constrained_
mod_ mul - Modular Multiplication (Constrained)
- constrained_
mod_ sub - Modular Subtraction (Constrained)
- strict_
mod_ add - Modular Addition (Strict)
- strict_
mod_ exp - Modular Exponentiation (Strict)
- strict_
mod_ inv - Modular Inverse (Strict)
- strict_
mod_ mul - Modular Multiplication (Strict)
- strict_
mod_ sub - Modular Subtraction (Strict)