1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//! 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`](https://docs.rs/num-traits/latest/num_traits/ops/overflowing) arithmetic.
//! Tested with builtin integers and [`num-bigint`](https://crates.io/crates/num-bigint), [`crypto-bigint`](https://crates.io/crates/crypto-bigint), [`bnum`](https://crates.io/crates/bnum), [`ibig`](https://crates.io/crates/ibig)
//! and [`fixed-bigint`](https://crates.io/crates/fixed-bigint) crates. `basic` versions of functions
//! wont work with `num-bigint` and `ibig` as both require heap
//! allocation.
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;