nalgebra

Trait 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

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]>

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,