Skip to main content

montgomery_mul_256_canon

Function montgomery_mul_256_canon 

Source
pub unsafe fn montgomery_mul_256_canon(
    a: __m256i,
    b: __m256i,
    r_vec: __m256i,
    mod_vec: __m256i,
    sign: __m256i,
) -> __m256i
Examples found in repository?
crates/competitive/src/math/number_theoretic_transform.rs (line 389)
376    unsafe fn mul_vec_avx2<M>(
377        a: __m256i,
378        b: __m256i,
379        r_vec: __m256i,
380        mod_vec: __m256i,
381        sign: __m256i,
382    ) -> __m256i
383    where
384        M: Montgomery32NttModulus,
385    {
386        if M::MOD < LAZY_THRESHOLD {
387            simd32::montgomery_mul_256(a, b, r_vec, mod_vec)
388        } else {
389            simd32::montgomery_mul_256_canon(a, b, r_vec, mod_vec, sign)
390        }
391    }