Crate modmath

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