arnaucube
arnaucube/poulpyPublic Self-hosted repository
added a_mul_b_montgomery_add_c_into_c
Jean-Philippe Bossuat jeanphilippe.bossuat@gmail.com
Tue, 21 Jan 2025 13:56:39 +0100
commit

a50fbc1c74e1639a5bba71c2a7cdc9505706e1f5

parent

c2d47a6af987a3610689ba4f1ca8a7fe39e2886a

1 files changed, 14 insertions(+), 0 deletions(-)

jump to
M math/src/ring/impl_u64/ring.rs → math/src/ring/impl_u64/ring.rs

@@ -224,6 +224,20 @@ .va_mul_vb_montgomery_into_vc::<CHUNK, REDUCE>(&a.0, &b.0, &mut c.0);

} #[inline(always)] + pub fn a_mul_b_montgomery_add_c_into_c<const REDUCE1: REDUCEMOD, const REDUCE2: REDUCEMOD>( + &self, + a: &Poly<Montgomery<u64>>, + b: &Poly<u64>, + c: &mut Poly<u64>, + ) { + debug_assert!(a.n() == self.n(), "a.n()={} != n={}", a.n(), self.n()); + debug_assert!(b.n() == self.n(), "b.n()={} != n={}", b.n(), self.n()); + debug_assert!(c.n() == self.n(), "c.n()={} != n={}", c.n(), self.n()); + self.modulus + .va_mul_vb_montgomery_add_vc_into_vc::<CHUNK, REDUCE1, REDUCE2>(&a.0, &b.0, &mut c.0); + } + + #[inline(always)] pub fn a_mul_b_montgomery_into_a<const REDUCE: REDUCEMOD>( &self, b: &Poly<Montgomery<u64>>,