[−][src]Struct generic_simd::shim::Shim2
Shim that doubles the width of a vector.
Trait Implementations
impl<Underlying, Scalar> Add<Scalar> for Shim2<Underlying, Scalar> where
Underlying: Copy + Add<Scalar, Output = Underlying>,
Scalar: Copy,
[src]
Underlying: Copy + Add<Scalar, Output = Underlying>,
Scalar: Copy,
type Output = Self
The resulting type after applying the +
operator.
fn add(self, rhs: Scalar) -> Self
[src]
impl<Underlying, Scalar> Add<Shim2<Underlying, Scalar>> for Shim2<Underlying, Scalar> where
Underlying: Copy + Add<Underlying, Output = Underlying>,
[src]
Underlying: Copy + Add<Underlying, Output = Underlying>,
type Output = Self
The resulting type after applying the +
operator.
fn add(self, rhs: Self) -> Self
[src]
impl<Underlying, Scalar> AddAssign<Scalar> for Shim2<Underlying, Scalar> where
Underlying: Copy + AddAssign<Scalar>,
Scalar: Copy,
[src]
Underlying: Copy + AddAssign<Scalar>,
Scalar: Copy,
fn add_assign(&mut self, rhs: Scalar)
[src]
impl<Underlying, Scalar> AddAssign<Shim2<Underlying, Scalar>> for Shim2<Underlying, Scalar> where
Underlying: Copy + AddAssign<Underlying>,
Scalar: Copy,
[src]
Underlying: Copy + AddAssign<Underlying>,
Scalar: Copy,
fn add_assign(&mut self, rhs: Self)
[src]
impl<Underlying, Scalar> AsMut<[Scalar]> for Shim2<Underlying, Scalar> where
Underlying: Vector<Scalar = Scalar>,
Underlying::Width: Double,
Scalar: Copy,
[src]
Underlying: Vector<Scalar = Scalar>,
Underlying::Width: Double,
Scalar: Copy,
fn as_mut(&mut self) -> &mut [Scalar]
[src]
impl<Underlying, Scalar> AsRef<[Scalar]> for Shim2<Underlying, Scalar> where
Underlying: Vector<Scalar = Scalar>,
Underlying::Width: Double,
Scalar: Copy,
[src]
Underlying: Vector<Scalar = Scalar>,
Underlying::Width: Double,
Scalar: Copy,
impl<Underlying: Clone, Scalar: Clone> Clone for Shim2<Underlying, Scalar>
[src]
impl<Underlying, Real> Complex for Shim2<Underlying, Complex<Real>> where
Underlying: Vector<Scalar = Complex<Real>> + Complex<RealScalar = Real>,
Underlying::Width: Double,
Real: Copy,
[src]
Underlying: Vector<Scalar = Complex<Real>> + Complex<RealScalar = Real>,
Underlying::Width: Double,
Real: Copy,
type RealScalar = Real
The real scalar type.
fn conj(self) -> Self
[src]
fn mul_i(self) -> Self
[src]
fn mul_neg_i(self) -> Self
[src]
impl<Underlying: Copy, Scalar: Copy> Copy for Shim2<Underlying, Scalar>
[src]
impl<Underlying: Debug, Scalar: Debug> Debug for Shim2<Underlying, Scalar>
[src]
impl<Underlying, Scalar> Deref for Shim2<Underlying, Scalar> where
Underlying: Vector<Scalar = Scalar>,
Underlying::Width: Double,
Scalar: Copy,
[src]
Underlying: Vector<Scalar = Scalar>,
Underlying::Width: Double,
Scalar: Copy,
impl<Underlying, Scalar> DerefMut for Shim2<Underlying, Scalar> where
Underlying: Vector<Scalar = Scalar>,
Underlying::Width: Double,
Scalar: Copy,
[src]
Underlying: Vector<Scalar = Scalar>,
Underlying::Width: Double,
Scalar: Copy,
impl<Underlying, Scalar> Div<Scalar> for Shim2<Underlying, Scalar> where
Underlying: Copy + Div<Scalar, Output = Underlying>,
Scalar: Copy,
[src]
Underlying: Copy + Div<Scalar, Output = Underlying>,
Scalar: Copy,
type Output = Self
The resulting type after applying the /
operator.
fn div(self, rhs: Scalar) -> Self
[src]
impl<Underlying, Scalar> Div<Shim2<Underlying, Scalar>> for Shim2<Underlying, Scalar> where
Underlying: Copy + Div<Underlying, Output = Underlying>,
[src]
Underlying: Copy + Div<Underlying, Output = Underlying>,
type Output = Self
The resulting type after applying the /
operator.
fn div(self, rhs: Self) -> Self
[src]
impl<Underlying, Scalar> DivAssign<Scalar> for Shim2<Underlying, Scalar> where
Underlying: Copy + DivAssign<Scalar>,
Scalar: Copy,
[src]
Underlying: Copy + DivAssign<Scalar>,
Scalar: Copy,
fn div_assign(&mut self, rhs: Scalar)
[src]
impl<Underlying, Scalar> DivAssign<Shim2<Underlying, Scalar>> for Shim2<Underlying, Scalar> where
Underlying: Copy + DivAssign<Underlying>,
Scalar: Copy,
[src]
Underlying: Copy + DivAssign<Underlying>,
Scalar: Copy,
fn div_assign(&mut self, rhs: Self)
[src]
impl<Underlying, Scalar> Mul<Scalar> for Shim2<Underlying, Scalar> where
Underlying: Copy + Mul<Scalar, Output = Underlying>,
Scalar: Copy,
[src]
Underlying: Copy + Mul<Scalar, Output = Underlying>,
Scalar: Copy,
type Output = Self
The resulting type after applying the *
operator.
fn mul(self, rhs: Scalar) -> Self
[src]
impl<Underlying, Scalar> Mul<Shim2<Underlying, Scalar>> for Shim2<Underlying, Scalar> where
Underlying: Copy + Mul<Underlying, Output = Underlying>,
[src]
Underlying: Copy + Mul<Underlying, Output = Underlying>,
type Output = Self
The resulting type after applying the *
operator.
fn mul(self, rhs: Self) -> Self
[src]
impl<Underlying, Scalar> MulAssign<Scalar> for Shim2<Underlying, Scalar> where
Underlying: Copy + MulAssign<Scalar>,
Scalar: Copy,
[src]
Underlying: Copy + MulAssign<Scalar>,
Scalar: Copy,
fn mul_assign(&mut self, rhs: Scalar)
[src]
impl<Underlying, Scalar> MulAssign<Shim2<Underlying, Scalar>> for Shim2<Underlying, Scalar> where
Underlying: Copy + MulAssign<Underlying>,
Scalar: Copy,
[src]
Underlying: Copy + MulAssign<Underlying>,
Scalar: Copy,
fn mul_assign(&mut self, rhs: Self)
[src]
impl<Underlying, Scalar> Neg for Shim2<Underlying, Scalar> where
Underlying: Copy + Neg<Output = Underlying>,
[src]
Underlying: Copy + Neg<Output = Underlying>,
impl<Underlying, Scalar> Product<Shim2<Underlying, Scalar>> for Option<Shim2<Underlying, Scalar>> where
Shim2<Underlying, Scalar>: MulAssign,
Underlying: Copy,
[src]
Shim2<Underlying, Scalar>: MulAssign,
Underlying: Copy,
impl<Underlying, Scalar> Product<Shim2<Underlying, Scalar>> for <Shim2<Underlying, Scalar> as Vector>::Scalar where
Option<Shim2<Underlying, Scalar>>: Product<Shim2<Underlying, Scalar>>,
Underlying: Vector<Scalar = Scalar>,
Underlying::Width: Double,
Scalar: Copy + Mul<Self, Output = Self> + Default,
[src]
Option<Shim2<Underlying, Scalar>>: Product<Shim2<Underlying, Scalar>>,
Underlying: Vector<Scalar = Scalar>,
Underlying::Width: Double,
Scalar: Copy + Mul<Self, Output = Self> + Default,
impl<Underlying, Scalar> Sub<Scalar> for Shim2<Underlying, Scalar> where
Underlying: Copy + Sub<Scalar, Output = Underlying>,
Scalar: Copy,
[src]
Underlying: Copy + Sub<Scalar, Output = Underlying>,
Scalar: Copy,
type Output = Self
The resulting type after applying the -
operator.
fn sub(self, rhs: Scalar) -> Self
[src]
impl<Underlying, Scalar> Sub<Shim2<Underlying, Scalar>> for Shim2<Underlying, Scalar> where
Underlying: Copy + Sub<Underlying, Output = Underlying>,
[src]
Underlying: Copy + Sub<Underlying, Output = Underlying>,
type Output = Self
The resulting type after applying the -
operator.
fn sub(self, rhs: Self) -> Self
[src]
impl<Underlying, Scalar> SubAssign<Scalar> for Shim2<Underlying, Scalar> where
Underlying: Copy + SubAssign<Scalar>,
Scalar: Copy,
[src]
Underlying: Copy + SubAssign<Scalar>,
Scalar: Copy,
fn sub_assign(&mut self, rhs: Scalar)
[src]
impl<Underlying, Scalar> SubAssign<Shim2<Underlying, Scalar>> for Shim2<Underlying, Scalar> where
Underlying: Copy + SubAssign<Underlying>,
Scalar: Copy,
[src]
Underlying: Copy + SubAssign<Underlying>,
Scalar: Copy,
fn sub_assign(&mut self, rhs: Self)
[src]
impl<Underlying, Scalar> Sum<Shim2<Underlying, Scalar>> for Option<Shim2<Underlying, Scalar>> where
Shim2<Underlying, Scalar>: AddAssign,
Underlying: Copy,
[src]
Shim2<Underlying, Scalar>: AddAssign,
Underlying: Copy,
impl<Underlying, Scalar> Sum<Shim2<Underlying, Scalar>> for <Shim2<Underlying, Scalar> as Vector>::Scalar where
Option<Shim2<Underlying, Scalar>>: Sum<Shim2<Underlying, Scalar>>,
Underlying: Vector<Scalar = Scalar>,
Underlying::Width: Double,
Scalar: Copy + Add<Self, Output = Self> + Default,
[src]
Option<Shim2<Underlying, Scalar>>: Sum<Shim2<Underlying, Scalar>>,
Underlying: Vector<Scalar = Scalar>,
Underlying::Width: Double,
Scalar: Copy + Add<Self, Output = Self> + Default,
impl<Underlying, Scalar> Vector for Shim2<Underlying, Scalar> where
Underlying: Vector<Scalar = Scalar>,
Underlying::Width: Double,
Scalar: Copy,
[src]
Underlying: Vector<Scalar = Scalar>,
Underlying::Width: Double,
Scalar: Copy,
type Scalar = Scalar
The type of elements in the vector.
type Token = <Underlying as Vector>::Token
The token that proves support for this vector on the CPU.
type Width = <Underlying::Width as Double>::Doubled
The number of elements in the vector.
type Underlying = [<Underlying as Vector>::Underlying; 2]
The underlying type
fn zeroed(token: Self::Token) -> Self
[src]
fn splat(token: Self::Token, from: Self::Scalar) -> Self
[src]
fn width() -> usize
[src]
fn to_token(self) -> Self::Token
[src]
fn as_slice(&self) -> &[Self::Scalar]
[src]
fn as_slice_mut(&mut self) -> &mut [Self::Scalar]
[src]
fn to_underlying(self) -> Self::Underlying
[src]
fn from_underlying(token: Self::Token, underlying: Self::Underlying) -> Self
[src]
unsafe fn read_ptr(token: Self::Token, from: *const Self::Scalar) -> Self
[src]
unsafe fn read_aligned_ptr(
token: Self::Token,
from: *const Self::Scalar
) -> Self
[src]
token: Self::Token,
from: *const Self::Scalar
) -> Self
unsafe fn read_unchecked(token: Self::Token, from: &[Self::Scalar]) -> Self
[src]
fn read(token: Self::Token, from: &[Self::Scalar]) -> Self
[src]
unsafe fn write_ptr(self, to: *mut Self::Scalar)
[src]
unsafe fn write_aligned_ptr(self, to: *mut Self::Scalar)
[src]
unsafe fn write_unchecked(self, to: &mut [Self::Scalar])
[src]
fn write(self, to: &mut [Self::Scalar])
[src]
Auto Trait Implementations
impl<Underlying, Scalar> RefUnwindSafe for Shim2<Underlying, Scalar> where
Scalar: RefUnwindSafe,
Underlying: RefUnwindSafe,
Scalar: RefUnwindSafe,
Underlying: RefUnwindSafe,
impl<Underlying, Scalar> Send for Shim2<Underlying, Scalar> where
Scalar: Send,
Underlying: Send,
Scalar: Send,
Underlying: Send,
impl<Underlying, Scalar> Sync for Shim2<Underlying, Scalar> where
Scalar: Sync,
Underlying: Sync,
Scalar: Sync,
Underlying: Sync,
impl<Underlying, Scalar> Unpin for Shim2<Underlying, Scalar> where
Scalar: Unpin,
Underlying: Unpin,
Scalar: Unpin,
Underlying: Unpin,
impl<Underlying, Scalar> UnwindSafe for Shim2<Underlying, Scalar> where
Scalar: UnwindSafe,
Underlying: UnwindSafe,
Scalar: UnwindSafe,
Underlying: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<V> Ops for V where
V: Add<<V as Vector>::Scalar, Output = V, Output = V> + AsRef<[<V as Vector>::Scalar]> + AddAssign<V> + AddAssign<<V as Vector>::Scalar> + Sub<V, Output = V, Output = V> + AsMut<[<V as Vector>::Scalar]> + Sub<<V as Vector>::Scalar> + Deref<Target = [<V as Vector>::Scalar]> + SubAssign<V> + SubAssign<<V as Vector>::Scalar> + Mul<V, Output = V, Output = V> + Mul<<V as Vector>::Scalar> + DerefMut + MulAssign<V> + MulAssign<<V as Vector>::Scalar> + Div<V, Output = V, Output = V> + Add<V> + Div<<V as Vector>::Scalar> + Vector + DivAssign<V> + DivAssign<<V as Vector>::Scalar>,
[src]
V: Add<<V as Vector>::Scalar, Output = V, Output = V> + AsRef<[<V as Vector>::Scalar]> + AddAssign<V> + AddAssign<<V as Vector>::Scalar> + Sub<V, Output = V, Output = V> + AsMut<[<V as Vector>::Scalar]> + Sub<<V as Vector>::Scalar> + Deref<Target = [<V as Vector>::Scalar]> + SubAssign<V> + SubAssign<<V as Vector>::Scalar> + Mul<V, Output = V, Output = V> + Mul<<V as Vector>::Scalar> + DerefMut + MulAssign<V> + MulAssign<<V as Vector>::Scalar> + Div<V, Output = V, Output = V> + Add<V> + Div<<V as Vector>::Scalar> + Vector + DivAssign<V> + DivAssign<<V as Vector>::Scalar>,
impl<V> Signed for V where
V: Ops + Neg<Output = V>,
[src]
V: Ops + Neg<Output = V>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,