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/// Linear algebra with degree-256 polynomials over a prime-order field, vectors of such
10/// polynomials, and NTT polynomials / vectors
11mod algebra;
12
13/// Packing of polynomials into coefficients with a specified number of bits.
14mod encoding;
15
16/// Utility functions such as truncating integers, flattening arrays of arrays, and unflattening
17/// arrays into arrays of arrays.
18mod truncate;
19
20pub use algebra::{
21    Elem, Field, MultiplyNtt, NttMatrix, NttPolynomial, NttVector, Polynomial, Vector,
22};
23pub use encoding::{
24    ArraySize, DecodedValue, Encode, EncodedPolynomial, EncodedPolynomialSize, EncodedVector,
25    EncodedVectorSize, EncodingSize, VectorEncodingSize, byte_decode, byte_encode,
26};
27pub use truncate::Truncate;