Skip to main content

Modulus

Trait Modulus 

Source
pub trait Modulus {
    const Q: u32;
    const N: usize;
    const BARRETT_MU: u128 = 0;
    const BARRETT_K: u32 = 0;
}
Expand description

Basic trait defining the modulus and degree for a polynomial ring

Required Associated Constants§

Source

const Q: u32

The primary modulus Q for coefficient arithmetic

Source

const N: usize

The polynomial degree N (number of coefficients)

Provided Associated Constants§

Source

const BARRETT_MU: u128 = 0

Barrett reduction constant mu = floor(2^k / Q) Set to 0 for dynamic computation

Source

const BARRETT_K: u32 = 0

Barrett reduction shift amount k Set to 0 for dynamic computation

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl Modulus for MlDsa44Params

Source§

const Q: u32 = 8380417

Source§

const N: usize = 256

Source§

const BARRETT_MU: u128 = 4_299_165_187

Source§

const BARRETT_K: u32 = 55

Source§

impl Modulus for MlDsaParams

Source§

const Q: u32 = 8380417

Source§

const N: usize = 256

Source§

const BARRETT_MU: u128 = 4_299_165_187

Source§

const BARRETT_K: u32 = 55

Source§

impl Modulus for MlDsaParamsMont

Source§

const Q: u32 = 8380417

Source§

const N: usize = 256

Source§

const BARRETT_MU: u128 = 4_299_165_187

Source§

const BARRETT_K: u32 = 55