qfall_math/integer.rs
1// Copyright © 2023 Marcel Luca Schmidt, Marvin Beckmann
2//
3// This file is part of qFALL-math.
4//
5// qFALL-math is free software: you can redistribute it and/or modify it under
6// the terms of the Mozilla Public License Version 2.0 as published by the
7// Mozilla Foundation. See <https://mozilla.org/en-US/MPL/2.0/>.
8
9//! Integer-based types with arbitrary length based on [`Z`].
10//!
11//! This module contains the type [`Z`] for integers with arbitrary length and
12//! constructions over it.
13//! Each struct provides examples regarding usage.
14//! In general you can mix [`Z`]'s with any type of rust integer, whenever the
15//! corresponding method takes as input integers of type [`Into<Z>`],
16//! e.g. the standard rust integers.
17
18mod mat_poly_over_z;
19mod mat_z;
20mod poly_over_z;
21mod z;
22
23pub use mat_poly_over_z::MatPolyOverZ;
24pub use mat_z::MatZ;
25pub use poly_over_z::PolyOverZ;
26pub use z::Z;
27pub(crate) use z::fmpz_helpers;