Skip to main content

module_lattice/
lib.rs

1#![no_std]
2#![cfg_attr(docsrs, feature(doc_cfg))]
3#![doc = include_str!("../README.md")]
4#![doc(
5    html_logo_url = "https://raw.githubusercontent.com/RustCrypto/meta/master/logo.svg",
6    html_favicon_url = "https://raw.githubusercontent.com/RustCrypto/meta/master/logo.svg"
7)]
8
9#[cfg(feature = "alloc")]
10extern crate alloc;
11
12/// Linear algebra with degree-256 polynomials over a prime-order field, vectors of such
13/// polynomials, and NTT polynomials / vectors.
14mod algebra;
15
16/// Packing of polynomials into coefficients with a specified number of bits.
17mod encoding;
18
19/// Support for optional heap offload gated on the `alloc` feature.
20mod maybe_box;
21
22/// Integer truncation support.
23mod truncate;
24
25pub use algebra::{
26    Elem, Field, MultiplyNtt, NttMatrix, NttPolynomial, NttVector, Polynomial, Vector,
27};
28pub use encoding::{
29    ArraySize, DecodedValue, Encode, EncodedPolynomial, EncodedPolynomialSize, EncodedVector,
30    EncodedVectorSize, EncodingSize, VectorEncodingSize, byte_decode, byte_encode,
31};
32pub use maybe_box::MaybeBox;
33pub use truncate::Truncate;
34
35#[cfg(feature = "ctutils")]
36pub use ctutils;