Trait nalgebra::SimdComplexField

source ·
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§

source

type SimdRealField: SimdRealField<SimdBool = Self::SimdBool>

Type of the coefficients of a complex number.

Required Methods§

source

fn from_simd_real(re: Self::SimdRealField) -> Self

Builds a pure-real complex number from the given value.

source

fn simd_real(self) -> Self::SimdRealField

The real part of this complex number.

source

fn simd_imaginary(self) -> Self::SimdRealField

The imaginary part of this complex number.

source

fn simd_modulus(self) -> Self::SimdRealField

The modulus of this complex number.

source

fn simd_modulus_squared(self) -> Self::SimdRealField

The squared modulus of this complex number.

source

fn simd_argument(self) -> Self::SimdRealField

The argument of this complex number.

source

fn simd_norm1(self) -> Self::SimdRealField

The sum of the absolute value of this complex number’s real and imaginary part.

source

fn simd_scale(self, factor: Self::SimdRealField) -> Self

Multiplies this complex number by factor.

source

fn simd_unscale(self, factor: Self::SimdRealField) -> Self

Divides this complex number by factor.

source

fn simd_floor(self) -> Self

source

fn simd_ceil(self) -> Self

source

fn simd_round(self) -> Self

source

fn simd_trunc(self) -> Self

source

fn simd_fract(self) -> Self

source

fn simd_mul_add(self, a: Self, b: Self) -> Self

source

fn simd_abs(self) -> Self::SimdRealField

The absolute value of this complex number: self / self.signum().

This is equivalent to self.modulus().

source

fn simd_hypot(self, other: Self) -> Self::SimdRealField

Computes (self.conjugate() * self + other.conjugate() * other).sqrt()

source

fn simd_recip(self) -> Self

source

fn simd_conjugate(self) -> Self

source

fn simd_sin(self) -> Self

source

fn simd_cos(self) -> Self

source

fn simd_sin_cos(self) -> (Self, Self)

source

fn simd_tan(self) -> Self

source

fn simd_asin(self) -> Self

source

fn simd_acos(self) -> Self

source

fn simd_atan(self) -> Self

source

fn simd_sinh(self) -> Self

source

fn simd_cosh(self) -> Self

source

fn simd_tanh(self) -> Self

source

fn simd_asinh(self) -> Self

source

fn simd_acosh(self) -> Self

source

fn simd_atanh(self) -> Self

source

fn simd_log(self, base: Self::SimdRealField) -> Self

source

fn simd_log2(self) -> Self

source

fn simd_log10(self) -> Self

source

fn simd_ln(self) -> Self

source

fn simd_ln_1p(self) -> Self

source

fn simd_sqrt(self) -> Self

source

fn simd_exp(self) -> Self

source

fn simd_exp2(self) -> Self

source

fn simd_exp_m1(self) -> Self

source

fn simd_powi(self, n: i32) -> Self

source

fn simd_powf(self, n: Self::SimdRealField) -> Self

source

fn simd_powc(self, n: Self) -> Self

source

fn simd_cbrt(self) -> Self

source

fn simd_horizontal_sum(self) -> Self::Element

Computes the sum of all the lanes of self.

source

fn simd_horizontal_product(self) -> Self::Element

Computes the product of all the lanes of self.

Provided Methods§

source

fn simd_to_polar(self) -> (Self::SimdRealField, Self::SimdRealField)

The polar form of this complex number: (modulus, arg)

source

fn simd_to_exp(self) -> (Self::SimdRealField, Self)

The exponential form of this complex number: (modulus, e^{i arg})

source

fn simd_signum(self) -> Self

The exponential part of this complex number: self / self.modulus()

source

fn simd_sinh_cosh(self) -> (Self, Self)

source

fn simd_sinc(self) -> Self

Cardinal sine

source

fn simd_sinhc(self) -> Self

source

fn simd_cosc(self) -> Self

Cardinal cos

source

fn simd_coshc(self) -> Self

Object Safety§

This trait is not object safe.

Implementors§

source§

impl SimdComplexField for AutoSimd<[f32; 2]>

source§

impl SimdComplexField for AutoSimd<[f32; 4]>

source§

impl SimdComplexField for AutoSimd<[f32; 8]>

source§

impl SimdComplexField for AutoSimd<[f32; 16]>

source§

impl SimdComplexField for AutoSimd<[f64; 2]>

source§

impl SimdComplexField for AutoSimd<[f64; 4]>

source§

impl SimdComplexField for AutoSimd<[f64; 8]>

source§

impl SimdComplexField for WideF32x4

source§

impl SimdComplexField for WideF32x8

source§

impl SimdComplexField for WideF64x4

source§

impl SimdComplexField for Complex<AutoSimd<[f32; 2]>>

source§

impl SimdComplexField for Complex<AutoSimd<[f32; 4]>>

source§

impl SimdComplexField for Complex<AutoSimd<[f32; 8]>>

source§

impl SimdComplexField for Complex<AutoSimd<[f32; 16]>>

source§

impl SimdComplexField for Complex<AutoSimd<[f64; 2]>>

source§

impl SimdComplexField for Complex<AutoSimd<[f64; 4]>>

source§

impl SimdComplexField for Complex<AutoSimd<[f64; 8]>>

source§

impl SimdComplexField for Complex<WideF32x4>

source§

impl SimdComplexField for Complex<WideF32x8>

source§

impl SimdComplexField for Complex<WideF64x4>

source§

impl<T> SimdComplexField for T
where T: ComplexField,