Skip to main content

montgomery_mul_512

Function montgomery_mul_512 

Source
pub unsafe fn montgomery_mul_512(
    a: __m512i,
    b: __m512i,
    r_vec: __m512i,
    mod_vec: __m512i,
) -> __m512i
Examples found in repository?
crates/competitive/src/num/mint/montgomery.rs (line 364)
358    pub unsafe fn montgomery_mul_512_canon(
359        a: __m512i,
360        b: __m512i,
361        r_vec: __m512i,
362        mod_vec: __m512i,
363    ) -> __m512i {
364        let x = montgomery_mul_512(a, b, r_vec, mod_vec);
365        add_mod_512(x, _mm512_setzero_si512(), mod_vec)
366    }
More examples
Hide additional examples
crates/competitive/src/math/number_theoretic_transform.rs (line 430)
425    unsafe fn mul_vec_avx512<M>(a: __m512i, b: __m512i, r_vec: __m512i, mod_vec: __m512i) -> __m512i
426    where
427        M: Montgomery32NttModulus,
428    {
429        if M::MOD < LAZY_THRESHOLD {
430            simd32::montgomery_mul_512(a, b, r_vec, mod_vec)
431        } else {
432            simd32::montgomery_mul_512_canon(a, b, r_vec, mod_vec)
433        }
434    }