pub trait SimdComplexField:
SubsetOf<Self>
+ SupersetOf<f32>
+ SupersetOf<f64>
+ Field<Output = Self>
+ Clone
+ Neg
+ Send
+ Sync
+ Any
+ 'static
+ Debug
+ NumAssignOps
+ NumOps
+ PartialEq {
type SimdRealField: SimdRealField<SimdBool = Self::SimdBool>;
Show 55 methods
// Required methods
fn from_simd_real(re: Self::SimdRealField) -> Self;
fn simd_real(self) -> Self::SimdRealField;
fn simd_imaginary(self) -> Self::SimdRealField;
fn simd_modulus(self) -> Self::SimdRealField;
fn simd_modulus_squared(self) -> Self::SimdRealField;
fn simd_argument(self) -> Self::SimdRealField;
fn simd_norm1(self) -> Self::SimdRealField;
fn simd_scale(self, factor: Self::SimdRealField) -> Self;
fn simd_unscale(self, factor: Self::SimdRealField) -> Self;
fn simd_floor(self) -> Self;
fn simd_ceil(self) -> Self;
fn simd_round(self) -> Self;
fn simd_trunc(self) -> Self;
fn simd_fract(self) -> Self;
fn simd_mul_add(self, a: Self, b: Self) -> Self;
fn simd_abs(self) -> Self::SimdRealField;
fn simd_hypot(self, other: Self) -> Self::SimdRealField;
fn simd_recip(self) -> Self;
fn simd_conjugate(self) -> Self;
fn simd_sin(self) -> Self;
fn simd_cos(self) -> Self;
fn simd_sin_cos(self) -> (Self, Self);
fn simd_tan(self) -> Self;
fn simd_asin(self) -> Self;
fn simd_acos(self) -> Self;
fn simd_atan(self) -> Self;
fn simd_sinh(self) -> Self;
fn simd_cosh(self) -> Self;
fn simd_tanh(self) -> Self;
fn simd_asinh(self) -> Self;
fn simd_acosh(self) -> Self;
fn simd_atanh(self) -> Self;
fn simd_log(self, base: Self::SimdRealField) -> Self;
fn simd_log2(self) -> Self;
fn simd_log10(self) -> Self;
fn simd_ln(self) -> Self;
fn simd_ln_1p(self) -> Self;
fn simd_sqrt(self) -> Self;
fn simd_exp(self) -> Self;
fn simd_exp2(self) -> Self;
fn simd_exp_m1(self) -> Self;
fn simd_powi(self, n: i32) -> Self;
fn simd_powf(self, n: Self::SimdRealField) -> Self;
fn simd_powc(self, n: Self) -> Self;
fn simd_cbrt(self) -> Self;
fn simd_horizontal_sum(self) -> Self::Element;
fn simd_horizontal_product(self) -> Self::Element;
// Provided methods
fn simd_to_polar(self) -> (Self::SimdRealField, Self::SimdRealField) { ... }
fn simd_to_exp(self) -> (Self::SimdRealField, Self) { ... }
fn simd_signum(self) -> Self { ... }
fn simd_sinh_cosh(self) -> (Self, Self) { ... }
fn simd_sinc(self) -> Self { ... }
fn simd_sinhc(self) -> Self { ... }
fn simd_cosc(self) -> Self { ... }
fn simd_coshc(self) -> Self { ... }
}Expand description
Lane-wise generalisation of ComplexField for SIMD complex fields.
Each lane of an SIMD complex field should contain one complex field.
Required Associated Types§
Sourcetype SimdRealField: SimdRealField<SimdBool = Self::SimdBool>
type SimdRealField: SimdRealField<SimdBool = Self::SimdBool>
Type of the coefficients of a complex number.
Required Methods§
Sourcefn from_simd_real(re: Self::SimdRealField) -> Self
fn from_simd_real(re: Self::SimdRealField) -> Self
Builds a pure-real complex number from the given value.
Sourcefn simd_real(self) -> Self::SimdRealField
fn simd_real(self) -> Self::SimdRealField
The real part of this complex number.
Sourcefn simd_imaginary(self) -> Self::SimdRealField
fn simd_imaginary(self) -> Self::SimdRealField
The imaginary part of this complex number.
Sourcefn simd_modulus(self) -> Self::SimdRealField
fn simd_modulus(self) -> Self::SimdRealField
The modulus of this complex number.
Sourcefn simd_modulus_squared(self) -> Self::SimdRealField
fn simd_modulus_squared(self) -> Self::SimdRealField
The squared modulus of this complex number.
Sourcefn simd_argument(self) -> Self::SimdRealField
fn simd_argument(self) -> Self::SimdRealField
The argument of this complex number.
Sourcefn simd_norm1(self) -> Self::SimdRealField
fn simd_norm1(self) -> Self::SimdRealField
The sum of the absolute value of this complex number’s real and imaginary part.
Sourcefn simd_scale(self, factor: Self::SimdRealField) -> Self
fn simd_scale(self, factor: Self::SimdRealField) -> Self
Multiplies this complex number by factor.
Sourcefn simd_unscale(self, factor: Self::SimdRealField) -> Self
fn simd_unscale(self, factor: Self::SimdRealField) -> Self
Divides this complex number by factor.
fn simd_floor(self) -> Self
fn simd_ceil(self) -> Self
fn simd_round(self) -> Self
fn simd_trunc(self) -> Self
fn simd_fract(self) -> Self
fn simd_mul_add(self, a: Self, b: Self) -> Self
Sourcefn simd_abs(self) -> Self::SimdRealField
fn simd_abs(self) -> Self::SimdRealField
The absolute value of this complex number: self / self.signum().
This is equivalent to self.modulus().
Sourcefn simd_hypot(self, other: Self) -> Self::SimdRealField
fn simd_hypot(self, other: Self) -> Self::SimdRealField
Computes (self.conjugate() * self + other.conjugate() * other).sqrt()
fn simd_recip(self) -> Self
fn simd_conjugate(self) -> Self
fn simd_sin(self) -> Self
fn simd_cos(self) -> Self
fn simd_sin_cos(self) -> (Self, Self)
fn simd_tan(self) -> Self
fn simd_asin(self) -> Self
fn simd_acos(self) -> Self
fn simd_atan(self) -> Self
fn simd_sinh(self) -> Self
fn simd_cosh(self) -> Self
fn simd_tanh(self) -> Self
fn simd_asinh(self) -> Self
fn simd_acosh(self) -> Self
fn simd_atanh(self) -> Self
fn simd_log(self, base: Self::SimdRealField) -> Self
fn simd_log2(self) -> Self
fn simd_log10(self) -> Self
fn simd_ln(self) -> Self
fn simd_ln_1p(self) -> Self
fn simd_sqrt(self) -> Self
fn simd_exp(self) -> Self
fn simd_exp2(self) -> Self
fn simd_exp_m1(self) -> Self
fn simd_powi(self, n: i32) -> Self
fn simd_powf(self, n: Self::SimdRealField) -> Self
fn simd_powc(self, n: Self) -> Self
fn simd_cbrt(self) -> Self
Sourcefn simd_horizontal_sum(self) -> Self::Element
fn simd_horizontal_sum(self) -> Self::Element
Computes the sum of all the lanes of self.
Sourcefn simd_horizontal_product(self) -> Self::Element
fn simd_horizontal_product(self) -> Self::Element
Computes the product of all the lanes of self.
Provided Methods§
Sourcefn simd_to_polar(self) -> (Self::SimdRealField, Self::SimdRealField)
fn simd_to_polar(self) -> (Self::SimdRealField, Self::SimdRealField)
The polar form of this complex number: (modulus, arg)
Sourcefn simd_to_exp(self) -> (Self::SimdRealField, Self)
fn simd_to_exp(self) -> (Self::SimdRealField, Self)
The exponential form of this complex number: (modulus, e^{i arg})
Sourcefn simd_signum(self) -> Self
fn simd_signum(self) -> Self
The exponential part of this complex number: self / self.modulus()
fn simd_sinh_cosh(self) -> (Self, Self)
fn simd_sinhc(self) -> Self
fn simd_coshc(self) -> Self
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementors§
Source§impl SimdComplexField for AutoSimd<[f32; 2]>
Available on crate features std or libm or libm_force only.
impl SimdComplexField for AutoSimd<[f32; 2]>
std or libm or libm_force only.Source§impl SimdComplexField for AutoSimd<[f32; 4]>
Available on crate features std or libm or libm_force only.
impl SimdComplexField for AutoSimd<[f32; 4]>
std or libm or libm_force only.Source§impl SimdComplexField for AutoSimd<[f32; 8]>
Available on crate features std or libm or libm_force only.
impl SimdComplexField for AutoSimd<[f32; 8]>
std or libm or libm_force only.Source§impl SimdComplexField for AutoSimd<[f32; 16]>
Available on crate features std or libm or libm_force only.
impl SimdComplexField for AutoSimd<[f32; 16]>
std or libm or libm_force only.Source§impl SimdComplexField for AutoSimd<[f64; 2]>
Available on crate features std or libm or libm_force only.
impl SimdComplexField for AutoSimd<[f64; 2]>
std or libm or libm_force only.Source§impl SimdComplexField for AutoSimd<[f64; 4]>
Available on crate features std or libm or libm_force only.
impl SimdComplexField for AutoSimd<[f64; 4]>
std or libm or libm_force only.Source§impl SimdComplexField for AutoSimd<[f64; 8]>
Available on crate features std or libm or libm_force only.
impl SimdComplexField for AutoSimd<[f64; 8]>
std or libm or libm_force only.Source§impl SimdComplexField for WideF32x4
impl SimdComplexField for WideF32x4
type SimdRealField = WideF32x4
Source§impl SimdComplexField for WideF32x8
impl SimdComplexField for WideF32x8
type SimdRealField = WideF32x8
Source§impl SimdComplexField for WideF64x4
impl SimdComplexField for WideF64x4
type SimdRealField = WideF64x4
Source§impl SimdComplexField for Complex<AutoSimd<[f32; 2]>>
Available on crate features std or libm or libm_force only.
impl SimdComplexField for Complex<AutoSimd<[f32; 2]>>
std or libm or libm_force only.Source§impl SimdComplexField for Complex<AutoSimd<[f32; 4]>>
Available on crate features std or libm or libm_force only.
impl SimdComplexField for Complex<AutoSimd<[f32; 4]>>
std or libm or libm_force only.Source§impl SimdComplexField for Complex<AutoSimd<[f32; 8]>>
Available on crate features std or libm or libm_force only.
impl SimdComplexField for Complex<AutoSimd<[f32; 8]>>
std or libm or libm_force only.Source§impl SimdComplexField for Complex<AutoSimd<[f32; 16]>>
Available on crate features std or libm or libm_force only.
impl SimdComplexField for Complex<AutoSimd<[f32; 16]>>
std or libm or libm_force only.Source§impl SimdComplexField for Complex<AutoSimd<[f64; 2]>>
Available on crate features std or libm or libm_force only.
impl SimdComplexField for Complex<AutoSimd<[f64; 2]>>
std or libm or libm_force only.Source§impl SimdComplexField for Complex<AutoSimd<[f64; 4]>>
Available on crate features std or libm or libm_force only.
impl SimdComplexField for Complex<AutoSimd<[f64; 4]>>
std or libm or libm_force only.Source§impl SimdComplexField for Complex<AutoSimd<[f64; 8]>>
Available on crate features std or libm or libm_force only.
impl SimdComplexField for Complex<AutoSimd<[f64; 8]>>
std or libm or libm_force only.