#[repr(C, align(32))]pub struct Lanes16Word16(pub [u16; 16]);Expand description
Sixteen lanes of Word16 (one 256-bit SIMD register) — the NTT coefficient lane vector. Carries
[u16; 16]; the multiply-high is the SIGNED _mm256_mulhi_epi16 (the Montgomery butterfly’s
mulhi). Ops have an AVX2 fast path proven byte-identical to the scalar lanes.
Tuple Fields§
§0: [u16; 16]Implementations§
Source§impl Lanes16Word16
impl Lanes16Word16
Sourcepub fn from_words(s: &[Word16]) -> Self
pub fn from_words(s: &[Word16]) -> Self
Pack the first sixteen Word16s of a slice into a lane vector (shorter slices zero-fill).
Sourcepub fn mullo(self, o: Self) -> Self
pub fn mullo(self, o: Self) -> Self
Lane-wise low 16 bits of the product (vpmullw) — interpretation-independent.
Sourcepub fn mulhi(self, o: Self) -> Self
pub fn mulhi(self, o: Self) -> Self
Lane-wise high 16 bits of the SIGNED product (vpmulhw) — the Montgomery butterfly’s mulhi.
Sourcepub fn ntt_bcast_lo(self, h: usize) -> Self
pub fn ntt_bcast_lo(self, h: usize) -> Self
Broadcast each 2h-block’s low h lanes into both of its halves — the within-vector NTT
butterfly’s source-low duplication, at stride h ∈ {8,4,2}. h=8→vperm2i128(v,v,0x00);
h=4→vpshufd(v,0x44); h=2→vpshufd(v,0xA0) (all per-128-bit-lane, so the multiple
blocks packed in one register are handled at once).
Sourcepub fn ntt_bcast_hi(self, h: usize) -> Self
pub fn ntt_bcast_hi(self, h: usize) -> Self
Broadcast each 2h-block’s high h lanes into both of its halves — the source-high
duplication. h=8→vperm2i128(v,v,0x11); h=4→vpshufd(v,0xEE); h=2→vpshufd(v,0xF5).
Trait Implementations§
Source§impl Add for Lanes16Word16
impl Add for Lanes16Word16
Source§impl Clone for Lanes16Word16
impl Clone for Lanes16Word16
Source§fn clone(&self) -> Lanes16Word16
fn clone(&self) -> Lanes16Word16
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for Lanes16Word16
impl Debug for Lanes16Word16
Source§impl Hash for Lanes16Word16
impl Hash for Lanes16Word16
Source§impl Mul for Lanes16Word16
impl Mul for Lanes16Word16
Source§impl PartialEq for Lanes16Word16
impl PartialEq for Lanes16Word16
Source§fn eq(&self, other: &Lanes16Word16) -> bool
fn eq(&self, other: &Lanes16Word16) -> bool
self and other values to be equal, and is used by ==.