Trait simba::simd::SimdComplexField [−][src]
pub trait SimdComplexField: SubsetOf<Self> + SupersetOf<f64> + Field + Copy + Neg<Output = Self> + Send + Sync + Any + 'static + Debug + NumAssignOps + NumOps + PartialEq { type SimdRealField: SimdRealField<SimdBool = <Self as SimdValue>::SimdBool>;}Show 55 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; 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.
Associated Types
type SimdRealField: SimdRealField<SimdBool = <Self as SimdValue>::SimdBool>
type SimdRealField: SimdRealField<SimdBool = <Self as SimdValue>::SimdBool>
Type of the coefficients of a complex number.
Required methods
fn 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.
fn simd_real(self) -> Self::SimdRealField
fn simd_real(self) -> Self::SimdRealField
The real part of this complex number.
fn simd_imaginary(self) -> Self::SimdRealField
fn simd_imaginary(self) -> Self::SimdRealField
The imaginary part of this complex number.
fn simd_modulus(self) -> Self::SimdRealField
fn simd_modulus(self) -> Self::SimdRealField
The modulus of this complex number.
fn simd_modulus_squared(self) -> Self::SimdRealField
fn simd_modulus_squared(self) -> Self::SimdRealField
The squared modulus of this complex number.
fn simd_argument(self) -> Self::SimdRealField
fn simd_argument(self) -> Self::SimdRealField
The argument of this complex number.
fn 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.
fn simd_scale(self, factor: Self::SimdRealField) -> Self
fn simd_scale(self, factor: Self::SimdRealField) -> Self
Multiplies this complex number by factor
.
fn 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_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_abs(self) -> Self::SimdRealField
The absolute value of this complex number: self / self.signum()
.
This is equivalent to self.modulus()
.
fn 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_cos(self) -> (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_log10(self) -> Self
fn simd_ln_1p(self) -> Self
fn simd_exp_m1(self) -> Self
fn simd_powf(self, n: Self::SimdRealField) -> Self
fn simd_horizontal_sum(self) -> Self::Element
fn simd_horizontal_sum(self) -> Self::Element
Computes the sum of all the lanes of self
.
fn simd_horizontal_product(self) -> Self::Element
fn simd_horizontal_product(self) -> Self::Element
Computes the product of all the lanes of self
.
Provided methods
fn 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)
fn 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})
fn 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
Implementations on Foreign Types
Computes the principal value of natural logarithm of self
.
This function has one branch cut:
(-∞, 0]
, continuous from above.
The branch satisfies -π ≤ arg(ln(z)) ≤ π
.
Computes the principal value of the square root of self
.
This function has one branch cut:
(-∞, 0)
, continuous from above.
The branch satisfies -π/2 ≤ arg(sqrt(z)) ≤ π/2
.
Raises self
to a floating point power.
Returns the logarithm of self
with respect to an arbitrary base.
Computes the principal value of the inverse sine of self
.
This function has two branch cuts:
(-∞, -1)
, continuous from above.(1, ∞)
, continuous from below.
The branch satisfies -π/2 ≤ Re(asin(z)) ≤ π/2
.
Computes the principal value of the inverse cosine of self
.
This function has two branch cuts:
(-∞, -1)
, continuous from above.(1, ∞)
, continuous from below.
The branch satisfies 0 ≤ Re(acos(z)) ≤ π
.
Computes the principal value of the inverse tangent of self
.
This function has two branch cuts:
(-∞i, -i]
, continuous from the left.[i, ∞i)
, continuous from the right.
The branch satisfies -π/2 ≤ Re(atan(z)) ≤ π/2
.
Computes the principal value of inverse hyperbolic sine of self
.
This function has two branch cuts:
(-∞i, -i)
, continuous from the left.(i, ∞i)
, continuous from the right.
The branch satisfies -π/2 ≤ Im(asinh(z)) ≤ π/2
.
Computes the principal value of inverse hyperbolic cosine of self
.
This function has one branch cut:
(-∞, 1)
, continuous from above.
The branch satisfies -π ≤ Im(acosh(z)) ≤ π
and 0 ≤ Re(acosh(z)) < ∞
.
Computes the principal value of inverse hyperbolic tangent of self
.
This function has two branch cuts:
(-∞, -1]
, continuous from above.[1, ∞)
, continuous from below.
The branch satisfies -π/2 ≤ Im(atanh(z)) ≤ π/2
.
type SimdRealField = AutoSimd<[f32; 2]>
Computes the principal value of natural logarithm of self
.
This function has one branch cut:
(-∞, 0]
, continuous from above.
The branch satisfies -π ≤ arg(ln(z)) ≤ π
.
Computes the principal value of the square root of self
.
This function has one branch cut:
(-∞, 0)
, continuous from above.
The branch satisfies -π/2 ≤ arg(sqrt(z)) ≤ π/2
.
Raises self
to a floating point power.
Returns the logarithm of self
with respect to an arbitrary base.
Computes the principal value of the inverse sine of self
.
This function has two branch cuts:
(-∞, -1)
, continuous from above.(1, ∞)
, continuous from below.
The branch satisfies -π/2 ≤ Re(asin(z)) ≤ π/2
.
Computes the principal value of the inverse cosine of self
.
This function has two branch cuts:
(-∞, -1)
, continuous from above.(1, ∞)
, continuous from below.
The branch satisfies 0 ≤ Re(acos(z)) ≤ π
.
Computes the principal value of the inverse tangent of self
.
This function has two branch cuts:
(-∞i, -i]
, continuous from the left.[i, ∞i)
, continuous from the right.
The branch satisfies -π/2 ≤ Re(atan(z)) ≤ π/2
.
Computes the principal value of inverse hyperbolic sine of self
.
This function has two branch cuts:
(-∞i, -i)
, continuous from the left.(i, ∞i)
, continuous from the right.
The branch satisfies -π/2 ≤ Im(asinh(z)) ≤ π/2
.
Computes the principal value of inverse hyperbolic cosine of self
.
This function has one branch cut:
(-∞, 1)
, continuous from above.
The branch satisfies -π ≤ Im(acosh(z)) ≤ π
and 0 ≤ Re(acosh(z)) < ∞
.
Computes the principal value of inverse hyperbolic tangent of self
.
This function has two branch cuts:
(-∞, -1]
, continuous from above.[1, ∞)
, continuous from below.
The branch satisfies -π/2 ≤ Im(atanh(z)) ≤ π/2
.
type SimdRealField = AutoSimd<[f32; 4]>
Computes the principal value of natural logarithm of self
.
This function has one branch cut:
(-∞, 0]
, continuous from above.
The branch satisfies -π ≤ arg(ln(z)) ≤ π
.
Computes the principal value of the square root of self
.
This function has one branch cut:
(-∞, 0)
, continuous from above.
The branch satisfies -π/2 ≤ arg(sqrt(z)) ≤ π/2
.
Raises self
to a floating point power.
Returns the logarithm of self
with respect to an arbitrary base.
Computes the principal value of the inverse sine of self
.
This function has two branch cuts:
(-∞, -1)
, continuous from above.(1, ∞)
, continuous from below.
The branch satisfies -π/2 ≤ Re(asin(z)) ≤ π/2
.
Computes the principal value of the inverse cosine of self
.
This function has two branch cuts:
(-∞, -1)
, continuous from above.(1, ∞)
, continuous from below.
The branch satisfies 0 ≤ Re(acos(z)) ≤ π
.
Computes the principal value of the inverse tangent of self
.
This function has two branch cuts:
(-∞i, -i]
, continuous from the left.[i, ∞i)
, continuous from the right.
The branch satisfies -π/2 ≤ Re(atan(z)) ≤ π/2
.
Computes the principal value of inverse hyperbolic sine of self
.
This function has two branch cuts:
(-∞i, -i)
, continuous from the left.(i, ∞i)
, continuous from the right.
The branch satisfies -π/2 ≤ Im(asinh(z)) ≤ π/2
.
Computes the principal value of inverse hyperbolic cosine of self
.
This function has one branch cut:
(-∞, 1)
, continuous from above.
The branch satisfies -π ≤ Im(acosh(z)) ≤ π
and 0 ≤ Re(acosh(z)) < ∞
.
Computes the principal value of inverse hyperbolic tangent of self
.
This function has two branch cuts:
(-∞, -1]
, continuous from above.[1, ∞)
, continuous from below.
The branch satisfies -π/2 ≤ Im(atanh(z)) ≤ π/2
.
type SimdRealField = AutoSimd<[f32; 8]>
Computes the principal value of natural logarithm of self
.
This function has one branch cut:
(-∞, 0]
, continuous from above.
The branch satisfies -π ≤ arg(ln(z)) ≤ π
.
Computes the principal value of the square root of self
.
This function has one branch cut:
(-∞, 0)
, continuous from above.
The branch satisfies -π/2 ≤ arg(sqrt(z)) ≤ π/2
.
Raises self
to a floating point power.
Returns the logarithm of self
with respect to an arbitrary base.
Computes the principal value of the inverse sine of self
.
This function has two branch cuts:
(-∞, -1)
, continuous from above.(1, ∞)
, continuous from below.
The branch satisfies -π/2 ≤ Re(asin(z)) ≤ π/2
.
Computes the principal value of the inverse cosine of self
.
This function has two branch cuts:
(-∞, -1)
, continuous from above.(1, ∞)
, continuous from below.
The branch satisfies 0 ≤ Re(acos(z)) ≤ π
.
Computes the principal value of the inverse tangent of self
.
This function has two branch cuts:
(-∞i, -i]
, continuous from the left.[i, ∞i)
, continuous from the right.
The branch satisfies -π/2 ≤ Re(atan(z)) ≤ π/2
.
Computes the principal value of inverse hyperbolic sine of self
.
This function has two branch cuts:
(-∞i, -i)
, continuous from the left.(i, ∞i)
, continuous from the right.
The branch satisfies -π/2 ≤ Im(asinh(z)) ≤ π/2
.
Computes the principal value of inverse hyperbolic cosine of self
.
This function has one branch cut:
(-∞, 1)
, continuous from above.
The branch satisfies -π ≤ Im(acosh(z)) ≤ π
and 0 ≤ Re(acosh(z)) < ∞
.
Computes the principal value of inverse hyperbolic tangent of self
.
This function has two branch cuts:
(-∞, -1]
, continuous from above.[1, ∞)
, continuous from below.
The branch satisfies -π/2 ≤ Im(atanh(z)) ≤ π/2
.
type SimdRealField = AutoSimd<[f32; 16]>
Computes the principal value of natural logarithm of self
.
This function has one branch cut:
(-∞, 0]
, continuous from above.
The branch satisfies -π ≤ arg(ln(z)) ≤ π
.
Computes the principal value of the square root of self
.
This function has one branch cut:
(-∞, 0)
, continuous from above.
The branch satisfies -π/2 ≤ arg(sqrt(z)) ≤ π/2
.
Raises self
to a floating point power.
Returns the logarithm of self
with respect to an arbitrary base.
Computes the principal value of the inverse sine of self
.
This function has two branch cuts:
(-∞, -1)
, continuous from above.(1, ∞)
, continuous from below.
The branch satisfies -π/2 ≤ Re(asin(z)) ≤ π/2
.
Computes the principal value of the inverse cosine of self
.
This function has two branch cuts:
(-∞, -1)
, continuous from above.(1, ∞)
, continuous from below.
The branch satisfies 0 ≤ Re(acos(z)) ≤ π
.
Computes the principal value of the inverse tangent of self
.
This function has two branch cuts:
(-∞i, -i]
, continuous from the left.[i, ∞i)
, continuous from the right.
The branch satisfies -π/2 ≤ Re(atan(z)) ≤ π/2
.
Computes the principal value of inverse hyperbolic sine of self
.
This function has two branch cuts:
(-∞i, -i)
, continuous from the left.(i, ∞i)
, continuous from the right.
The branch satisfies -π/2 ≤ Im(asinh(z)) ≤ π/2
.
Computes the principal value of inverse hyperbolic cosine of self
.
This function has one branch cut:
(-∞, 1)
, continuous from above.
The branch satisfies -π ≤ Im(acosh(z)) ≤ π
and 0 ≤ Re(acosh(z)) < ∞
.
Computes the principal value of inverse hyperbolic tangent of self
.
This function has two branch cuts:
(-∞, -1]
, continuous from above.[1, ∞)
, continuous from below.
The branch satisfies -π/2 ≤ Im(atanh(z)) ≤ π/2
.
type SimdRealField = AutoSimd<[f64; 2]>
Computes the principal value of natural logarithm of self
.
This function has one branch cut:
(-∞, 0]
, continuous from above.
The branch satisfies -π ≤ arg(ln(z)) ≤ π
.
Computes the principal value of the square root of self
.
This function has one branch cut:
(-∞, 0)
, continuous from above.
The branch satisfies -π/2 ≤ arg(sqrt(z)) ≤ π/2
.
Raises self
to a floating point power.
Returns the logarithm of self
with respect to an arbitrary base.
Computes the principal value of the inverse sine of self
.
This function has two branch cuts:
(-∞, -1)
, continuous from above.(1, ∞)
, continuous from below.
The branch satisfies -π/2 ≤ Re(asin(z)) ≤ π/2
.
Computes the principal value of the inverse cosine of self
.
This function has two branch cuts:
(-∞, -1)
, continuous from above.(1, ∞)
, continuous from below.
The branch satisfies 0 ≤ Re(acos(z)) ≤ π
.
Computes the principal value of the inverse tangent of self
.
This function has two branch cuts:
(-∞i, -i]
, continuous from the left.[i, ∞i)
, continuous from the right.
The branch satisfies -π/2 ≤ Re(atan(z)) ≤ π/2
.
Computes the principal value of inverse hyperbolic sine of self
.
This function has two branch cuts:
(-∞i, -i)
, continuous from the left.(i, ∞i)
, continuous from the right.
The branch satisfies -π/2 ≤ Im(asinh(z)) ≤ π/2
.
Computes the principal value of inverse hyperbolic cosine of self
.
This function has one branch cut:
(-∞, 1)
, continuous from above.
The branch satisfies -π ≤ Im(acosh(z)) ≤ π
and 0 ≤ Re(acosh(z)) < ∞
.
Computes the principal value of inverse hyperbolic tangent of self
.
This function has two branch cuts:
(-∞, -1]
, continuous from above.[1, ∞)
, continuous from below.
The branch satisfies -π/2 ≤ Im(atanh(z)) ≤ π/2
.
type SimdRealField = AutoSimd<[f64; 4]>
Computes the principal value of natural logarithm of self
.
This function has one branch cut:
(-∞, 0]
, continuous from above.
The branch satisfies -π ≤ arg(ln(z)) ≤ π
.
Computes the principal value of the square root of self
.
This function has one branch cut:
(-∞, 0)
, continuous from above.
The branch satisfies -π/2 ≤ arg(sqrt(z)) ≤ π/2
.
Raises self
to a floating point power.
Returns the logarithm of self
with respect to an arbitrary base.
Computes the principal value of the inverse sine of self
.
This function has two branch cuts:
(-∞, -1)
, continuous from above.(1, ∞)
, continuous from below.
The branch satisfies -π/2 ≤ Re(asin(z)) ≤ π/2
.
Computes the principal value of the inverse cosine of self
.
This function has two branch cuts:
(-∞, -1)
, continuous from above.(1, ∞)
, continuous from below.
The branch satisfies 0 ≤ Re(acos(z)) ≤ π
.
Computes the principal value of the inverse tangent of self
.
This function has two branch cuts:
(-∞i, -i]
, continuous from the left.[i, ∞i)
, continuous from the right.
The branch satisfies -π/2 ≤ Re(atan(z)) ≤ π/2
.
Computes the principal value of inverse hyperbolic sine of self
.
This function has two branch cuts:
(-∞i, -i)
, continuous from the left.(i, ∞i)
, continuous from the right.
The branch satisfies -π/2 ≤ Im(asinh(z)) ≤ π/2
.
Computes the principal value of inverse hyperbolic cosine of self
.
This function has one branch cut:
(-∞, 1)
, continuous from above.
The branch satisfies -π ≤ Im(acosh(z)) ≤ π
and 0 ≤ Re(acosh(z)) < ∞
.
Computes the principal value of inverse hyperbolic tangent of self
.
This function has two branch cuts:
(-∞, -1]
, continuous from above.[1, ∞)
, continuous from below.
The branch satisfies -π/2 ≤ Im(atanh(z)) ≤ π/2
.