use super::ModulusPolynomialRingZq;
use crate::{integer::Z, integer_mod_q::PolyOverZq};
impl ModulusPolynomialRingZq {
pub fn norm_eucl_sqrd(&self) -> Z {
PolyOverZq::from(self).norm_eucl_sqrd()
}
pub fn norm_infty(&self) -> Z {
PolyOverZq::from(self).norm_infty()
}
}
#[cfg(test)]
mod test_norms {
use super::Z;
use crate::integer_mod_q::ModulusPolynomialRingZq;
use std::str::FromStr;
#[test]
fn availability() {
let poly = ModulusPolynomialRingZq::from_str("3 3 2 1 mod 11").unwrap();
let norm_es = poly.norm_eucl_sqrd();
let norm_i = poly.norm_infty();
assert_eq!(Z::from(14), norm_es);
assert_eq!(Z::from(3), norm_i);
}
}