Trait faster::intrin::PackedMerge
[−]
[src]
pub trait PackedMerge { fn merge_halves(&self, other: Self) -> Self; fn merge_interleaved(&self, other: Self) -> Self; fn merge_partitioned(&self, other: Self, offset: usize) -> Self; }
Required Methods
fn merge_halves(&self, other: Self) -> Self
Return a vector with the first half populated by the first half of
self
, and the second half populated by the second half of other
.
extern crate faster; use faster::*; assert_eq!(u8s(2).merge_halves(u8s(3)), u8s::halfs(2, 3));
fn merge_interleaved(&self, other: Self) -> Self
Return a vector containing the even elements of self
interleaved with
the odd elements of other, starting with the first element of self
.
extern crate faster; use faster::*; assert_eq!(u8s(2).merge_interleaved(u8s(3)), u8s::interleave(2, 3));
fn merge_partitioned(&self, other: Self, offset: usize) -> Self
Return a vector containing the first offset
elements of self
, then
the last (Self::WIDTH - offset)
elements of other
.
extern crate faster; use faster::*; assert_eq!(u8s(2).merge_partitioned(u8s(3), 2), u8s::partition(2u8, 3u8, 2));
Implementors
impl PackedMerge for u8x16
impl PackedMerge for u8x32
impl PackedMerge for u8x64
impl PackedMerge for u16x8
impl PackedMerge for u16x16
impl PackedMerge for u16x32
impl PackedMerge for u32x4
impl PackedMerge for u32x8
impl PackedMerge for u32x16
impl PackedMerge for u64x2
impl PackedMerge for u64x4
impl PackedMerge for u64x8
impl PackedMerge for i8x16
impl PackedMerge for i8x32
impl PackedMerge for i8x64
impl PackedMerge for i16x8
impl PackedMerge for i16x16
impl PackedMerge for i16x32
impl PackedMerge for i32x4
impl PackedMerge for i32x8
impl PackedMerge for i32x16
impl PackedMerge for i64x2
impl PackedMerge for i64x4
impl PackedMerge for i64x8
impl PackedMerge for f32x4
impl PackedMerge for f32x8
impl PackedMerge for f32x16
impl PackedMerge for f64x2
impl PackedMerge for f64x4
impl PackedMerge for f64x8