pub struct ComplexVector<T: Transcendental, V: Vector<T, 4>> { /* private fields */ }Expand description
Two complex numbers: [re0, im0, re1, im1] in one 4‑lane vector.
Implementations§
Source§impl<T: Transcendental, V: Vector<T, 4>> ComplexVector<T, V>
impl<T: Transcendental, V: Vector<T, 4>> ComplexVector<T, V>
Sourcepub fn from_raw(data: V) -> Self
pub fn from_raw(data: V) -> Self
Wrap a raw Vector<T,4> in [re0, im0, re1, im1] interleaved layout.
Sourcepub fn splat_pair(re: T, im: T) -> Self
pub fn splat_pair(re: T, im: T) -> Self
Duplicate a single (re, im) pair into both lane pairs.
Sourcepub fn from_pair(c: (T, T)) -> Self
pub fn from_pair(c: (T, T)) -> Self
Create from a single (re, im) pair, duplicated to both lane pairs.
Sourcepub fn from_two(c0: (T, T), c1: (T, T)) -> Self
pub fn from_two(c0: (T, T), c1: (T, T)) -> Self
Create from two possibly-different complex pairs. Pairs go to lanes (0,1) and (2,3) respectively.
Sourcepub fn norm_sqr(&self) -> (T, T)
pub fn norm_sqr(&self) -> (T, T)
Magnitude squared per complex element: re² + im² (lane‑pair summed).
Sourcepub fn scale_real(&self, scalar: T) -> Self
pub fn scale_real(&self, scalar: T) -> Self
Multiply both real and imaginary parts by a real scalar.
Sourcepub fn to_complex0(&self) -> (T, T)
pub fn to_complex0(&self) -> (T, T)
Extract the first complex value as (re, im).
Sourcepub fn to_complex1(&self) -> (T, T)
pub fn to_complex1(&self) -> (T, T)
Extract the second complex value as (re, im).
Sourcepub fn map_complex<F>(&self, f: F) -> Self
pub fn map_complex<F>(&self, f: F) -> Self
Apply a closure to each of the two complex elements.
Sourcepub fn iter_complex(&self) -> impl Iterator<Item = (T, T)>
pub fn iter_complex(&self) -> impl Iterator<Item = (T, T)>
Iterate over the two complex elements as (re, im) pairs.
Trait Implementations§
Source§impl<T: Transcendental, V: Vector<T, 4>> Add for ComplexVector<T, V>
impl<T: Transcendental, V: Vector<T, 4>> Add for ComplexVector<T, V>
Source§impl<T: Transcendental, V: Vector<T, 4>> AddAssign for ComplexVector<T, V>
impl<T: Transcendental, V: Vector<T, 4>> AddAssign for ComplexVector<T, V>
Source§fn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
+= operation. Read moreSource§impl<T: Clone + Transcendental, V: Clone + Vector<T, 4>> Clone for ComplexVector<T, V>
impl<T: Clone + Transcendental, V: Clone + Vector<T, 4>> Clone for ComplexVector<T, V>
Source§fn clone(&self) -> ComplexVector<T, V>
fn clone(&self) -> ComplexVector<T, V>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl<T: Copy + Transcendental, V: Copy + Vector<T, 4>> Copy for ComplexVector<T, V>
Source§impl<T: Debug + Transcendental, V: Debug + Vector<T, 4>> Debug for ComplexVector<T, V>
impl<T: Debug + Transcendental, V: Debug + Vector<T, 4>> Debug for ComplexVector<T, V>
Source§impl<T: Transcendental, V: Vector<T, 4>> Div for ComplexVector<T, V>
Complex division: (a+bi)/(c+di) = (ac+bd)/(c²+d²) + i*(bc-ad)/(c²+d²).
impl<T: Transcendental, V: Vector<T, 4>> Div for ComplexVector<T, V>
Complex division: (a+bi)/(c+di) = (ac+bd)/(c²+d²) + i*(bc-ad)/(c²+d²).
Source§impl<T: Transcendental, V: Vector<T, 4>> DivAssign for ComplexVector<T, V>
impl<T: Transcendental, V: Vector<T, 4>> DivAssign for ComplexVector<T, V>
Source§fn div_assign(&mut self, rhs: Self)
fn div_assign(&mut self, rhs: Self)
/= operation. Read moreSource§impl<T: Transcendental, V: Vector<T, 4>> Mul for ComplexVector<T, V>
impl<T: Transcendental, V: Vector<T, 4>> Mul for ComplexVector<T, V>
Source§impl<T: Transcendental, V: Vector<T, 4>> Mul<T> for ComplexVector<T, V>
cv * t — scale both complex elements by a real scalar.
impl<T: Transcendental, V: Vector<T, 4>> Mul<T> for ComplexVector<T, V>
cv * t — scale both complex elements by a real scalar.
Source§impl<T: Transcendental, V: Vector<T, 4>> MulAssign for ComplexVector<T, V>
impl<T: Transcendental, V: Vector<T, 4>> MulAssign for ComplexVector<T, V>
Source§fn mul_assign(&mut self, rhs: Self)
fn mul_assign(&mut self, rhs: Self)
*= operation. Read moreSource§impl<T: Transcendental, V: Vector<T, 4>> Neg for ComplexVector<T, V>
impl<T: Transcendental, V: Vector<T, 4>> Neg for ComplexVector<T, V>
Source§impl<T: PartialEq + Transcendental, V: PartialEq + Vector<T, 4>> PartialEq for ComplexVector<T, V>
impl<T: PartialEq + Transcendental, V: PartialEq + Vector<T, 4>> PartialEq for ComplexVector<T, V>
impl<T: PartialEq + Transcendental, V: PartialEq + Vector<T, 4>> StructuralPartialEq for ComplexVector<T, V>
Source§impl<T: Transcendental, V: Vector<T, 4>> Sub for ComplexVector<T, V>
impl<T: Transcendental, V: Vector<T, 4>> Sub for ComplexVector<T, V>
Source§impl<T: Transcendental, V: Vector<T, 4>> SubAssign for ComplexVector<T, V>
impl<T: Transcendental, V: Vector<T, 4>> SubAssign for ComplexVector<T, V>
Source§fn sub_assign(&mut self, rhs: Self)
fn sub_assign(&mut self, rhs: Self)
-= operation. Read more