Skip to content

Commit 9e1de93

Browse files
make the reduction sparse and fix all subsequent tests after requiring monic polynomials
1 parent 63f61d8 commit 9e1de93

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+425
-458
lines changed

src/integer/mat_poly_over_z/arithmetic/mul_scalar.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -470,7 +470,7 @@ mod test_mul_poly_ring_zq {
470470
/// Checks if scalar multiplication reduction works.
471471
#[test]
472472
fn reduction_correct() {
473-
let modulus = ModulusPolynomialRingZq::from_str("4 2 0 0 2 mod 17").unwrap();
473+
let modulus = ModulusPolynomialRingZq::from_str("4 1 0 0 1 mod 17").unwrap();
474474
let poly_mat1 = MatPolyOverZ::from_str("[[0, 1 10],[0, 2 1 2]]").unwrap();
475475
let poly = PolyOverZ::from(2);
476476
let poly_ring = PolynomialRingZq::from((&poly, &modulus));

src/integer/poly_over_z/arithmetic/sub.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -344,10 +344,10 @@ mod test_sub_poly_ring_zq {
344344
#[test]
345345
fn borrowed_correctness() {
346346
let poly_1 =
347-
PolynomialRingZq::from_str(&format!("2 2 {} / 4 1 2 3 4 mod {}", i64::MAX, u64::MAX))
347+
PolynomialRingZq::from_str(&format!("2 2 {} / 4 1 2 3 1 mod {}", i64::MAX, u64::MAX))
348348
.unwrap();
349349
let poly_2 = PolynomialRingZq::from_str(&format!(
350-
"2 -1 -{} / 4 1 2 3 4 mod {}",
350+
"2 -1 -{} / 4 1 2 3 1 mod {}",
351351
i64::MAX as u64 - 2,
352352
u64::MAX
353353
))
@@ -362,7 +362,7 @@ mod test_sub_poly_ring_zq {
362362
/// Checks if subtraction works fine for different types
363363
#[test]
364364
fn availability() {
365-
let poly = PolynomialRingZq::from_str("3 1 2 3 / 4 1 2 3 4 mod 17").unwrap();
365+
let poly = PolynomialRingZq::from_str("3 1 2 3 / 4 1 2 3 1 mod 17").unwrap();
366366
let z = PolyOverZ::from(2);
367367

368368
_ = z.clone() - poly.clone();

src/integer_mod_q/mat_ntt_polynomial_ring_zq.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ impl fmt::Debug for MatNTTPolynomialRingZq {
8181
pub(crate) fn print_vec_z(vector: &Vec<Z>) -> String {
8282
let mut out = String::new();
8383
for v in vector {
84-
out.push_str(&format!("{}, ", v));
84+
out.push_str(&format!("{v}, "));
8585
}
8686
// Remove last whitespace and comma
8787
out.pop().unwrap();

src/integer_mod_q/mat_polynomial_ring_zq/arithmetic/add.rs

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -468,11 +468,8 @@ mod test_add {
468468
/// Testing addition for large [`MatPolynomialRingZq`]
469469
#[test]
470470
fn add_large_numbers() {
471-
let modulus = ModulusPolynomialRingZq::from_str(&format!(
472-
"5 1 1 0 0 {} mod {LARGE_PRIME}",
473-
i64::MAX
474-
))
475-
.unwrap();
471+
let modulus =
472+
ModulusPolynomialRingZq::from_str(&format!("5 1 1 0 0 1 mod {LARGE_PRIME}")).unwrap();
476473
let poly_mat_1 = MatPolyOverZ::from_str(&format!(
477474
"[[4 1 {} 1 1, 1 42],[0, 2 {} 2]]",
478475
i64::MAX,
@@ -513,7 +510,7 @@ mod test_add {
513510
#[test]
514511
#[should_panic]
515512
fn add_mismatching_modulus_polynomial() {
516-
let modulus_1 = ModulusPolynomialRingZq::from_str("4 1 0 0 2 mod 17").unwrap();
513+
let modulus_1 = ModulusPolynomialRingZq::from_str("4 2 0 0 1 mod 17").unwrap();
517514
let poly_mat_1 = MatPolyOverZ::from_str("[[4 -1 0 1 1, 1 42],[0, 2 1 2]]").unwrap();
518515
let poly_ring_mat_1 = MatPolynomialRingZq::from((&poly_mat_1, &modulus_1));
519516
let modulus_2 = ModulusPolynomialRingZq::from_str("4 1 0 0 1 mod 17").unwrap();
@@ -527,7 +524,7 @@ mod test_add {
527524
#[test]
528525
#[should_panic]
529526
fn add_mismatching_dim() {
530-
let modulus_1 = ModulusPolynomialRingZq::from_str("4 1 0 0 2 mod 17").unwrap();
527+
let modulus_1 = ModulusPolynomialRingZq::from_str("4 1 0 0 1 mod 17").unwrap();
531528
let poly_mat_1 = MatPolyOverZ::from_str("[[1 42],[2 1 2]]").unwrap();
532529
let poly_ring_mat_1 = MatPolynomialRingZq::from((&poly_mat_1, &modulus_1));
533530
let modulus_2 = ModulusPolynomialRingZq::from_str("4 1 0 0 1 mod 17").unwrap();
@@ -540,10 +537,10 @@ mod test_add {
540537
/// Testing whether add_safe throws an error for mismatching moduli
541538
#[test]
542539
fn add_safe_is_err_moduli() {
543-
let modulus_1 = ModulusPolynomialRingZq::from_str("4 1 0 0 2 mod 17").unwrap();
540+
let modulus_1 = ModulusPolynomialRingZq::from_str("4 1 0 0 1 mod 17").unwrap();
544541
let poly_mat_1 = MatPolyOverZ::from_str("[[4 -1 0 1 1, 1 42],[0, 2 1 2]]").unwrap();
545542
let poly_ring_mat_1 = MatPolynomialRingZq::from((&poly_mat_1, &modulus_1));
546-
let modulus_2 = ModulusPolynomialRingZq::from_str("4 1 0 0 1 mod 17").unwrap();
543+
let modulus_2 = ModulusPolynomialRingZq::from_str("4 2 0 0 1 mod 17").unwrap();
547544
let poly_mat_2 = MatPolyOverZ::from_str("[[3 3 0 1, 1 42],[0, 1 17]]").unwrap();
548545
let poly_ring_mat_2 = MatPolynomialRingZq::from((&poly_mat_2, &modulus_2));
549546

@@ -553,7 +550,7 @@ mod test_add {
553550
/// Testing whether add_safe throws an error for different dimensions
554551
#[test]
555552
fn add_safe_is_err_dim() {
556-
let modulus_1 = ModulusPolynomialRingZq::from_str("4 1 0 0 2 mod 17").unwrap();
553+
let modulus_1 = ModulusPolynomialRingZq::from_str("4 1 0 0 1 mod 17").unwrap();
557554
let poly_mat_1 = MatPolyOverZ::from_str("[[4 -1 0 1 1],[2 1 2]]").unwrap();
558555
let poly_ring_mat_1 = MatPolynomialRingZq::from((&poly_mat_1, &modulus_1));
559556
let modulus_2 = ModulusPolynomialRingZq::from_str("4 1 0 0 1 mod 17").unwrap();

src/integer_mod_q/mat_polynomial_ring_zq/arithmetic/mul.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ impl Mul<&MatPolyOverZ> for &MatPolynomialRingZq {
8686
/// use qfall_math::integer::MatPolyOverZ;
8787
/// use std::str::FromStr;
8888
///
89-
/// let mat_1 = MatPolynomialRingZq::from_str("[[2 1 42, 1 17],[1 8, 2 5 6]] / 3 1 2 3 mod 17").unwrap();
89+
/// let mat_1 = MatPolynomialRingZq::from_str("[[2 1 42, 1 17],[1 8, 2 5 6]] / 3 1 2 1 mod 17").unwrap();
9090
/// let mat_2 = MatPolyOverZ::from_str("[[2 1 42, 1 17],[1 8, 2 5 6]]").unwrap();
9191
///
9292
/// let mat_3 = &mat_1 * &mat_2;
@@ -176,7 +176,7 @@ impl MatPolynomialRingZq {
176176
/// use qfall_math::integer::MatPolyOverZ;
177177
/// use std::str::FromStr;
178178
///
179-
/// let mat_1 = MatPolynomialRingZq::from_str("[[2 1 42, 1 17],[1 8, 2 5 6]] / 3 1 2 3 mod 17").unwrap();
179+
/// let mat_1 = MatPolynomialRingZq::from_str("[[2 1 42, 1 17],[1 8, 2 5 6]] / 3 1 2 1 mod 17").unwrap();
180180
/// let mat_2 = MatPolyOverZ::from_str("[[2 1 42, 1 17],[1 8, 2 5 6]]").unwrap();
181181
///
182182
/// let mat_3 = &mat_1.mul_mat_poly_over_z_safe(&mat_2).unwrap();
@@ -269,7 +269,7 @@ mod test_mul {
269269
#[test]
270270
fn errors() {
271271
let modulus_1 = ModulusPolynomialRingZq::from_str("4 1 0 0 1 mod 17").unwrap();
272-
let modulus_2 = ModulusPolynomialRingZq::from_str("4 1 0 0 2 mod 17").unwrap();
272+
let modulus_2 = ModulusPolynomialRingZq::from_str("4 1 0 2 1 mod 17").unwrap();
273273

274274
let poly_mat_1 = MatPolyOverZ::from_str("[[4 -1 0 1 1, 1 42],[0, 2 1 2]]").unwrap();
275275
let poly_ring_mat_1 = MatPolynomialRingZq::from((&poly_mat_1, &modulus_1));

src/integer_mod_q/mat_polynomial_ring_zq/arithmetic/mul_scalar.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@ impl MatPolynomialRingZq {
332332
/// use qfall_math::integer_mod_q::{MatPolynomialRingZq, Zq};
333333
/// use std::str::FromStr;
334334
///
335-
/// let mat_1 = MatPolynomialRingZq::from_str("[[1 42, 1 17],[2 1 8, 1 6]] / 3 1 2 3 mod 61").unwrap();
335+
/// let mat_1 = MatPolynomialRingZq::from_str("[[1 42, 1 17],[2 1 8, 1 6]] / 3 1 2 1 mod 61").unwrap();
336336
/// let integer = Zq::from((2, 61));
337337
///
338338
/// let mat_2 = &mat_1.mul_scalar_zq_safe(&integer).unwrap();
@@ -745,7 +745,7 @@ mod test_mul_zq {
745745
#[test]
746746
#[should_panic]
747747
fn different_moduli_error() {
748-
let mat_1 = MatPolynomialRingZq::from_str("[[1 42],[0],[1 2]] / 2 1 2 mod 61").unwrap();
748+
let mat_1 = MatPolynomialRingZq::from_str("[[1 42],[0],[1 2]] / 2 1 1 mod 61").unwrap();
749749
let integer = Zq::from((2, 3));
750750

751751
_ = &integer * mat_1;
@@ -754,7 +754,7 @@ mod test_mul_zq {
754754
/// Checks if scalar multiplication returns an error if the moduli mismatch
755755
#[test]
756756
fn different_moduli_error_safe() {
757-
let mat_1 = MatPolynomialRingZq::from_str("[[1 42],[0],[1 2]] / 2 1 2 mod 61").unwrap();
757+
let mat_1 = MatPolynomialRingZq::from_str("[[1 42],[0],[1 2]] / 2 1 1 mod 61").unwrap();
758758
let integer = Zq::from((2, 3));
759759

760760
let mat_2 = &mat_1.mul_scalar_zq_safe(&integer);
@@ -914,7 +914,7 @@ mod test_mul_poly_over_zq {
914914
/// Checks if scalar multiplication reduction works.
915915
#[test]
916916
fn reduction_correct() {
917-
let modulus = ModulusPolynomialRingZq::from_str("4 2 0 0 2 mod 17").unwrap();
917+
let modulus = ModulusPolynomialRingZq::from_str("4 2 0 0 1 mod 17").unwrap();
918918
let poly_mat1 = MatPolyOverZ::from_str("[[0, 1 10],[0, 2 1 2]]").unwrap();
919919
let poly_ring_mat1 = MatPolynomialRingZq::from((&poly_mat1, &modulus));
920920
let poly = PolyOverZq::from((2, 17));
@@ -1045,7 +1045,7 @@ mod test_mul_poly_ring_zq {
10451045
/// Checks if scalar multiplication reduction works.
10461046
#[test]
10471047
fn reduction_correct() {
1048-
let modulus = ModulusPolynomialRingZq::from_str("4 2 0 0 2 mod 17").unwrap();
1048+
let modulus = ModulusPolynomialRingZq::from_str("4 2 0 0 1 mod 17").unwrap();
10491049
let poly_mat1 = MatPolyOverZ::from_str("[[0, 1 10],[0, 2 1 2]]").unwrap();
10501050
let poly_ring_mat1 = MatPolynomialRingZq::from((&poly_mat1, &modulus));
10511051
let poly = PolyOverZ::from(2);

src/integer_mod_q/mat_polynomial_ring_zq/arithmetic/sub.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ impl Sub<&MatPolyOverZ> for &MatPolynomialRingZq {
150150
/// use qfall_math::integer::MatPolyOverZ;
151151
/// use std::str::FromStr;
152152
///
153-
/// let mat_1 = MatPolynomialRingZq::from_str("[[2 1 42, 1 17],[1 8, 2 5 6]] / 3 1 2 3 mod 17").unwrap();
153+
/// let mat_1 = MatPolynomialRingZq::from_str("[[2 1 42, 1 17],[1 8, 2 5 6]] / 3 1 2 1 mod 17").unwrap();
154154
/// let mat_2 = MatPolyOverZ::from_str("[[2 1 42, 1 17],[1 8, 2 5 6]]").unwrap();
155155
///
156156
/// let mat_3 = &mat_1 - &mat_2;
@@ -230,7 +230,7 @@ impl MatPolynomialRingZq {
230230
/// use qfall_math::integer::MatPolyOverZ;
231231
/// use std::str::FromStr;
232232
///
233-
/// let mat_1 = MatPolynomialRingZq::from_str("[[2 1 42, 1 17],[1 8, 2 5 6]] / 3 1 2 3 mod 17").unwrap();
233+
/// let mat_1 = MatPolynomialRingZq::from_str("[[2 1 42, 1 17],[1 8, 2 5 6]] / 3 1 2 1 mod 17").unwrap();
234234
/// let mat_2 = MatPolyOverZ::from_str("[[2 1 42, 1 17],[1 8, 2 5 6]]").unwrap();
235235
///
236236
/// let mat_3 = &mat_1.sub_mat_poly_over_z_safe(&mat_2).unwrap();

src/integer_mod_q/mat_polynomial_ring_zq/cmp.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,8 @@ mod test_compare_base {
9191
assert!(!one_1.compare_base(&MatPolynomialRingZq::identity(10, 7, &modulus_other)));
9292
assert!(one_1.compare_base(&Zq::from((3, 17))));
9393
assert!(!one_1.compare_base(&Zq::from((3, 18))));
94-
assert!(one_1.compare_base(&PolyOverZq::from_str("1 3 mod 17").unwrap()));
95-
assert!(!one_1.compare_base(&PolyOverZq::from_str("1 3 mod 18").unwrap()));
94+
assert!(one_1.compare_base(&PolyOverZq::from_str("1 1 mod 17").unwrap()));
95+
assert!(!one_1.compare_base(&PolyOverZq::from_str("1 1 mod 18").unwrap()));
9696
assert!(one_1.compare_base(&MatZq::new(1, 1, 17)));
9797
assert!(!one_1.compare_base(&MatZq::new(1, 1, 18)));
9898
assert!(one_1.compare_base(&PolynomialRingZq::from(&modulus)));
@@ -106,7 +106,7 @@ mod test_compare_base {
106106
assert!(one_1.call_compare_base_error(&Zq::from((3, 18))).is_some());
107107
assert!(
108108
one_1
109-
.call_compare_base_error(&PolyOverZq::from_str("1 3 mod 18").unwrap())
109+
.call_compare_base_error(&PolyOverZq::from_str("1 1 mod 18").unwrap())
110110
.is_some()
111111
);
112112
assert!(

src/integer_mod_q/mat_polynomial_ring_zq/coefficient_embedding.rs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ impl IntoCoefficientEmbedding<(MatZq, ModulusPolynomialRingZq)> for &MatPolynomi
4444
/// traits::IntoCoefficientEmbedding,
4545
/// };
4646
///
47-
/// let poly = MatPolynomialRingZq::from_str("[[1 1, 2 1 2],[1 -1, 2 -1 -2]] / 3 1 2 3 mod 17").unwrap();
47+
/// let poly = MatPolynomialRingZq::from_str("[[1 1, 2 1 2],[1 -1, 2 -1 -2]] / 3 1 2 1 mod 17").unwrap();
4848
/// let embedding = poly.into_coefficient_embedding(2);
4949
/// let cmp_mat = MatZq::from_str("[[1, 1],[0, 2],[-1, -1],[0, -2]] mod 17").unwrap();
5050
/// assert_eq!((cmp_mat, poly.get_mod()), embedding);
@@ -105,9 +105,9 @@ impl FromCoefficientEmbedding<(&MatZq, &ModulusPolynomialRingZq, i64)> for MatPo
105105
/// };
106106
///
107107
/// let matrix = MatZq::from_str("[[17, 1],[3, 2],[-5, 3],[1, 2]] mod 19").unwrap();
108-
/// let modulus = ModulusPolynomialRingZq::from_str("4 1 2 3 4 mod 19").unwrap();
108+
/// let modulus = ModulusPolynomialRingZq::from_str("4 1 2 3 1 mod 19").unwrap();
109109
/// let mat = MatPolynomialRingZq::from_coefficient_embedding((&matrix, &modulus, 1));
110-
/// let cmp_mat = MatPolynomialRingZq::from_str("[[2 17 3, 2 1 2],[2 -5 1, 2 3 2]] / 4 1 2 3 4 mod 19").unwrap();
110+
/// let cmp_mat = MatPolynomialRingZq::from_str("[[2 17 3, 2 1 2],[2 -5 1, 2 3 2]] / 4 1 2 3 1 mod 19").unwrap();
111111
/// assert_eq!(cmp_mat, mat);
112112
/// ```
113113
///
@@ -164,7 +164,7 @@ mod test_into_coefficient_embedding {
164164
#[test]
165165
fn standard_basis() {
166166
let standard_basis = MatPolynomialRingZq::from_str(
167-
"[[1 1, 2 0 1, 3 0 0 1],[1 1, 2 0 1, 3 0 0 1]] / 4 1 2 3 4 mod 17",
167+
"[[1 1, 2 0 1, 3 0 0 1],[1 1, 2 0 1, 3 0 0 1]] / 4 1 2 3 1 mod 17",
168168
)
169169
.unwrap();
170170

@@ -184,7 +184,7 @@ mod test_into_coefficient_embedding {
184184
#[test]
185185
fn standard_basis_vector() {
186186
let standard_basis =
187-
MatPolynomialRingZq::from_str("[[1 1, 2 0 1]] / 3 1 2 3 mod 17").unwrap();
187+
MatPolynomialRingZq::from_str("[[1 1, 2 0 1]] / 3 1 2 1 mod 17").unwrap();
188188

189189
let basis = standard_basis.into_coefficient_embedding(3);
190190

@@ -195,7 +195,7 @@ mod test_into_coefficient_embedding {
195195
#[test]
196196
fn large_entries() {
197197
let poly = MatPolynomialRingZq::from_str(&format!(
198-
"[[3 17 {} {}, 1 1],[1 1, 2 0 1]] / 4 1 2 3 4 mod {}",
198+
"[[3 17 {} {}, 1 1],[1 1, 2 0 1]] / 4 1 2 3 1 mod {}",
199199
i64::MAX,
200200
i64::MIN,
201201
u64::MAX
@@ -220,7 +220,7 @@ mod test_into_coefficient_embedding {
220220
#[test]
221221
fn large_entries_vector() {
222222
let poly = MatPolynomialRingZq::from_str(&format!(
223-
"[[3 17 {} {}, 1 1]] / 4 1 2 3 4 mod {}",
223+
"[[3 17 {} {}, 1 1]] / 4 1 2 3 1 mod {}",
224224
i64::MAX,
225225
i64::MIN,
226226
u64::MAX
@@ -244,7 +244,7 @@ mod test_into_coefficient_embedding {
244244
#[should_panic]
245245
fn size_too_small() {
246246
let poly =
247-
MatPolynomialRingZq::from_str("[[3 17 5 7, 2 0 1],[1 1, 1 1]] / 4 1 2 3 4 mod 19")
247+
MatPolynomialRingZq::from_str("[[3 17 5 7, 2 0 1],[1 1, 1 1]] / 4 1 2 3 1 mod 19")
248248
.unwrap();
249249

250250
let _ = poly.into_coefficient_embedding(2);
@@ -255,7 +255,7 @@ mod test_into_coefficient_embedding {
255255
#[should_panic]
256256
fn size_too_small_vector() {
257257
let poly =
258-
MatPolynomialRingZq::from_str("[[3 17 5 7, 2 0 1]] / 4 1 2 3 4 mod 19").unwrap();
258+
MatPolynomialRingZq::from_str("[[3 17 5 7, 2 0 1]] / 4 1 2 3 1 mod 19").unwrap();
259259

260260
let _ = poly.into_coefficient_embedding(2);
261261
}
@@ -278,12 +278,12 @@ mod test_from_coefficient_embedding {
278278
))
279279
.unwrap();
280280
let modulus =
281-
ModulusPolynomialRingZq::from_str(&format!("4 1 2 3 4 mod {}", u64::MAX)).unwrap();
281+
ModulusPolynomialRingZq::from_str(&format!("4 1 2 3 1 mod {}", u64::MAX)).unwrap();
282282

283283
let poly = MatPolynomialRingZq::from_coefficient_embedding((&matrix, &modulus, 0));
284284

285285
let cmp_poly = MatPolynomialRingZq::from_str(&format!(
286-
"[[1 17, 0],[1 {}, 1 -1],[1 {}, 0]] / 4 1 2 3 4 mod {}",
286+
"[[1 17, 0],[1 {}, 1 -1],[1 {}, 0]] / 4 1 2 3 1 mod {}",
287287
i64::MAX,
288288
i64::MIN,
289289
u64::MAX
@@ -303,12 +303,12 @@ mod test_from_coefficient_embedding {
303303
))
304304
.unwrap();
305305
let modulus =
306-
ModulusPolynomialRingZq::from_str(&format!("4 1 2 3 4 mod {}", u64::MAX)).unwrap();
306+
ModulusPolynomialRingZq::from_str(&format!("4 1 2 3 1 mod {}", u64::MAX)).unwrap();
307307

308308
let poly = MatPolynomialRingZq::from_coefficient_embedding((&matrix, &modulus, 2));
309309

310310
let cmp_poly = MatPolynomialRingZq::from_str(&format!(
311-
"[[3 17 {} {}, 2 0 -1]] / 4 1 2 3 4 mod {}",
311+
"[[3 17 {} {}, 2 0 -1]] / 4 1 2 3 1 mod {}",
312312
i64::MAX,
313313
i64::MIN,
314314
u64::MAX
@@ -330,7 +330,7 @@ mod test_from_coefficient_embedding {
330330
))
331331
.unwrap();
332332
let modulus =
333-
ModulusPolynomialRingZq::from_str(&format!("4 1 2 3 4 mod {}", u64::MAX)).unwrap();
333+
ModulusPolynomialRingZq::from_str(&format!("4 1 2 3 1 mod {}", u64::MAX)).unwrap();
334334

335335
let _ = MatPolynomialRingZq::from_coefficient_embedding((&matrix, &modulus, 1));
336336
}
@@ -346,7 +346,7 @@ mod test_from_coefficient_embedding {
346346
))
347347
.unwrap();
348348
let modulus =
349-
ModulusPolynomialRingZq::from_str(&format!("4 1 2 3 4 mod {}", u64::MAX)).unwrap();
349+
ModulusPolynomialRingZq::from_str(&format!("4 1 2 3 1 mod {}", u64::MAX)).unwrap();
350350

351351
let _ = MatPolynomialRingZq::from_coefficient_embedding((&matrix, &modulus, 3));
352352
}

src/integer_mod_q/mat_polynomial_ring_zq/from.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ impl FromStr for MatPolynomialRingZq {
5757
/// string `"4 0 1 2 3"` is the same as `"4 0 1 2 3 4 5 6 7"`.
5858
///
5959
/// Parameters:
60-
/// - `string`: the matrix of form: `"[[poly_1, poly_2, poly_3],[poly_4, poly_5, poly_6]] / poly_7 mod 11"`
60+
/// - `string`: the matrix of form: `"[[poly_1, poly_2, poly_3],[poly_4, poly_5, poly_6]] / poly_1 mod 11"`
6161
/// for a 2x3 matrix where the first three polynomials are in the first row,
6262
/// the second three are in the second row, and the seventh polynomial and 11 form the modulus.
6363
///
@@ -73,22 +73,22 @@ impl FromStr for MatPolynomialRingZq {
7373
/// use qfall_math::integer_mod_q::MatPolynomialRingZq;
7474
/// use std::str::FromStr;
7575
///
76-
/// let matrix = MatPolynomialRingZq::from_str("[[2 2 2, 1 2],[0, 1 3]] / 2 3 3 mod 24").unwrap();
76+
/// let matrix = MatPolynomialRingZq::from_str("[[2 2 2, 1 2],[0, 1 3]] / 2 3 1 mod 24").unwrap();
7777
/// ```
7878
///
7979
/// ```
8080
/// use qfall_math::integer_mod_q::MatPolynomialRingZq;
8181
/// use std::str::FromStr;
8282
///
83-
/// let str_1 = "[[2 2 2, 1 2],[0, 1 3]] / 2 3 3 mod 24";
83+
/// let str_1 = "[[2 2 2, 1 2],[0, 1 3]] / 2 3 1 mod 24";
8484
/// let matrix = MatPolynomialRingZq::from_str(str_1).unwrap();
8585
/// ```
8686
///
8787
/// ```
8888
/// use qfall_math::integer_mod_q::MatPolynomialRingZq;
8989
/// use std::str::FromStr;
9090
///
91-
/// let string = String::from("[[2 2 2, 1 2],[0, 1 3]] / 2 3 3 mod 24");
91+
/// let string = String::from("[[2 2 2, 1 2],[0, 1 3]] / 2 3 1 mod 24");
9292
/// let matrix = MatPolynomialRingZq::from_str(&string).unwrap();
9393
/// ```
9494
///
@@ -336,7 +336,7 @@ mod test_from {
336336
#[test]
337337
fn different_dimensions() {
338338
let modulus =
339-
ModulusPolynomialRingZq::from_str(&format!("3 1 9 12 mod {LARGE_PRIME}")).unwrap();
339+
ModulusPolynomialRingZq::from_str(&format!("3 1 9 1 mod {LARGE_PRIME}")).unwrap();
340340
let poly_mat_1 = MatPolyOverZ::from_str("[[2 1 8],[2 1 2]]").unwrap();
341341
let poly_mat_2 = MatPolyOverZ::from_str("[[2 1 8, 1 42, 0],[0, 2 1 2, 1 17]]").unwrap();
342342
let poly_mat_3 = MatPolyOverZ::from_str("[[2 1 8]]").unwrap();

0 commit comments

Comments
 (0)