Skip to main content

add_mod_512

Function add_mod_512 

Source
pub unsafe fn add_mod_512(a: __m512i, b: __m512i, mod_vec: __m512i) -> __m512i
Examples found in repository?
crates/competitive/src/num/mint/montgomery.rs (line 365)
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 405)
393    unsafe fn add_vec_avx512<M>(
394        a: __m512i,
395        b: __m512i,
396        mod_vec: __m512i,
397        mod2_vec: __m512i,
398    ) -> __m512i
399    where
400        M: Montgomery32NttModulus,
401    {
402        if M::MOD < LAZY_THRESHOLD {
403            simd32::montgomery_add_512(a, b, mod2_vec)
404        } else {
405            simd32::add_mod_512(a, b, mod_vec)
406        }
407    }