Struct nalgebra::Complex [−][src]
#[repr(C)]pub struct Complex<T> { pub re: T, pub im: T, }
Expand description
A complex number in Cartesian form.
Representation and Foreign Function Interface Compatibility
Complex<T>
is memory layout compatible with an array [T; 2]
.
Note that Complex<F>
where F is a floating point type is only memory
layout compatible with C’s complex types, not necessarily calling
convention compatible. This means that for FFI you can only pass
Complex<F>
behind a pointer, not as a value.
Examples
Example of extern function declaration.
use num_complex::Complex; use std::os::raw::c_int; extern "C" { fn zaxpy_(n: *const c_int, alpha: *const Complex<f64>, x: *const Complex<f64>, incx: *const c_int, y: *mut Complex<f64>, incy: *const c_int); }
Fields
re: T
Real portion of the complex number
im: T
Imaginary portion of the complex number
Implementations
Returns the square of the norm (since T
doesn’t necessarily
have a sqrt function), i.e. re^2 + im^2
.
Returns the L1 norm |re| + |im|
– the Manhattan distance from the origin.
Checks if the given complex number is infinite
Trait Implementations
Performs the +=
operation. Read more
Performs the +=
operation. Read more
Performs the +=
operation. Read more
Performs the +=
operation. Read more
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 RealField = N
Builds a pure-real complex number from the given value.
The real part of this complex number.
The imaginary part of this complex number.
The argument of this complex number.
The modulus of this complex number.
The squared modulus of this complex number.
The sum of the absolute value of this complex number’s real and imaginary part.
Multiplies this complex number by factor
.
Divides this complex number by factor
.
The absolute value of this complex number: self / self.signum()
. Read more
Computes (self.conjugate() * self + other.conjugate() * other).sqrt()
The polar form of this complex number: (modulus, arg)
The exponential form of this complex number: (modulus, e^{i arg})
Performs the /=
operation. Read more
Performs the /=
operation. Read more
Performs the /=
operation. Read more
Performs the /=
operation. Read more
Converts a usize
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read more
Converts an isize
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read more
Converts an u8
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read more
Converts an u16
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read more
Converts an u32
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read more
Converts an u64
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read more
Converts an i8
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read more
Converts an i16
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read more
Converts an i32
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read more
Converts an i64
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read more
Converts an u128
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read more
Converts an i128
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read more
Converts a f32
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read more
impl<'a, 'b, T> MulAddAssign<&'a Complex<T>, &'b Complex<T>> for Complex<T> where
T: Clone + NumAssign + MulAddAssign<T, T>,
impl<'a, 'b, T> MulAddAssign<&'a Complex<T>, &'b Complex<T>> for Complex<T> where
T: Clone + NumAssign + MulAddAssign<T, T>,
Performs the fused multiply-add operation.
impl<T> MulAddAssign<Complex<T>, Complex<T>> for Complex<T> where
T: Clone + NumAssign + MulAddAssign<T, T>,
impl<T> MulAddAssign<Complex<T>, Complex<T>> for Complex<T> where
T: Clone + NumAssign + MulAddAssign<T, T>,
Performs the fused multiply-add operation.
Performs the *=
operation. Read more
Performs the *=
operation. Read more
Performs the *=
operation. Read more
Performs the *=
operation. Read more
type Norm = N::SimdRealField
type Norm = N::SimdRealField
The type of the norm.
Computes the norm.
Computes the squared norm.
Divides self
by n.
pub fn from_str_radix(
s: &str,
radix: u32
) -> Result<Complex<T>, <Complex<T> as Num>::FromStrRadixErr>
pub fn from_str_radix(
s: &str,
radix: u32
) -> Result<Complex<T>, <Complex<T> as Num>::FromStrRadixErr>
Parses a +/- bi
; ai +/- b
; a
; or bi
where a
and b
are of type T
type FromStrRadixErr = ParseComplexError<<T as Num>::FromStrRadixErr>
Performs the %=
operation. Read more
Performs the %=
operation. Read more
Performs the %=
operation. Read more
Performs the %=
operation. Read more
Computes e^(self)
, where e
is the base of the natural logarithm.
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.
Raises self
to a complex power.
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]>
type SimdRealField = AutoSimd<[f32; 16]>
Type of the coefficients of a complex number.
Computes the sum of all the lanes of self
.
Computes the product of all the lanes of self
.
pub fn from_simd_real(
re: <Complex<AutoSimd<[f32; 16]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f32; 16]>>
pub fn from_simd_real(
re: <Complex<AutoSimd<[f32; 16]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f32; 16]>>
Builds a pure-real complex number from the given value.
The real part of this complex number.
pub fn simd_imaginary(
self
) -> <Complex<AutoSimd<[f32; 16]>> as SimdComplexField>::SimdRealField
pub fn simd_imaginary(
self
) -> <Complex<AutoSimd<[f32; 16]>> as SimdComplexField>::SimdRealField
The imaginary part of this complex number.
pub fn simd_argument(
self
) -> <Complex<AutoSimd<[f32; 16]>> as SimdComplexField>::SimdRealField
pub fn simd_argument(
self
) -> <Complex<AutoSimd<[f32; 16]>> as SimdComplexField>::SimdRealField
The argument of this complex number.
pub fn simd_modulus(
self
) -> <Complex<AutoSimd<[f32; 16]>> as SimdComplexField>::SimdRealField
pub fn simd_modulus(
self
) -> <Complex<AutoSimd<[f32; 16]>> as SimdComplexField>::SimdRealField
The modulus of this complex number.
pub fn simd_modulus_squared(
self
) -> <Complex<AutoSimd<[f32; 16]>> as SimdComplexField>::SimdRealField
pub fn simd_modulus_squared(
self
) -> <Complex<AutoSimd<[f32; 16]>> as SimdComplexField>::SimdRealField
The squared modulus of this complex number.
The sum of the absolute value of this complex number’s real and imaginary part.
pub fn simd_scale(
self,
factor: <Complex<AutoSimd<[f32; 16]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f32; 16]>>
pub fn simd_scale(
self,
factor: <Complex<AutoSimd<[f32; 16]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f32; 16]>>
Multiplies this complex number by factor
.
pub fn simd_unscale(
self,
factor: <Complex<AutoSimd<[f32; 16]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f32; 16]>>
pub fn simd_unscale(
self,
factor: <Complex<AutoSimd<[f32; 16]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f32; 16]>>
Divides this complex number by factor
.
pub fn simd_mul_add(
self,
a: Complex<AutoSimd<[f32; 16]>>,
b: Complex<AutoSimd<[f32; 16]>>
) -> Complex<AutoSimd<[f32; 16]>>
The absolute value of this complex number: self / self.signum()
. Read more
pub fn simd_hypot(
self,
b: Complex<AutoSimd<[f32; 16]>>
) -> <Complex<AutoSimd<[f32; 16]>> as SimdComplexField>::SimdRealField
pub fn simd_hypot(
self,
b: Complex<AutoSimd<[f32; 16]>>
) -> <Complex<AutoSimd<[f32; 16]>> as SimdComplexField>::SimdRealField
Computes (self.conjugate() * self + other.conjugate() * other).sqrt()
The polar form of this complex number: (modulus, arg)
The exponential form of this complex number: (modulus, e^{i arg})
The exponential part of this complex number: self / self.modulus()
Computes e^(self)
, where e
is the base of the natural logarithm.
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.
Raises self
to a complex power.
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; 8]>
type SimdRealField = AutoSimd<[f64; 8]>
Type of the coefficients of a complex number.
Computes the sum of all the lanes of self
.
Computes the product of all the lanes of self
.
pub fn from_simd_real(
re: <Complex<AutoSimd<[f64; 8]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f64; 8]>>
pub fn from_simd_real(
re: <Complex<AutoSimd<[f64; 8]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f64; 8]>>
Builds a pure-real complex number from the given value.
The real part of this complex number.
pub fn simd_imaginary(
self
) -> <Complex<AutoSimd<[f64; 8]>> as SimdComplexField>::SimdRealField
pub fn simd_imaginary(
self
) -> <Complex<AutoSimd<[f64; 8]>> as SimdComplexField>::SimdRealField
The imaginary part of this complex number.
pub fn simd_argument(
self
) -> <Complex<AutoSimd<[f64; 8]>> as SimdComplexField>::SimdRealField
pub fn simd_argument(
self
) -> <Complex<AutoSimd<[f64; 8]>> as SimdComplexField>::SimdRealField
The argument of this complex number.
The modulus of this complex number.
pub fn simd_modulus_squared(
self
) -> <Complex<AutoSimd<[f64; 8]>> as SimdComplexField>::SimdRealField
pub fn simd_modulus_squared(
self
) -> <Complex<AutoSimd<[f64; 8]>> as SimdComplexField>::SimdRealField
The squared modulus of this complex number.
The sum of the absolute value of this complex number’s real and imaginary part.
pub fn simd_scale(
self,
factor: <Complex<AutoSimd<[f64; 8]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f64; 8]>>
pub fn simd_scale(
self,
factor: <Complex<AutoSimd<[f64; 8]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f64; 8]>>
Multiplies this complex number by factor
.
pub fn simd_unscale(
self,
factor: <Complex<AutoSimd<[f64; 8]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f64; 8]>>
pub fn simd_unscale(
self,
factor: <Complex<AutoSimd<[f64; 8]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f64; 8]>>
Divides this complex number by factor
.
pub fn simd_mul_add(
self,
a: Complex<AutoSimd<[f64; 8]>>,
b: Complex<AutoSimd<[f64; 8]>>
) -> Complex<AutoSimd<[f64; 8]>>
The absolute value of this complex number: self / self.signum()
. Read more
pub fn simd_hypot(
self,
b: Complex<AutoSimd<[f64; 8]>>
) -> <Complex<AutoSimd<[f64; 8]>> as SimdComplexField>::SimdRealField
pub fn simd_hypot(
self,
b: Complex<AutoSimd<[f64; 8]>>
) -> <Complex<AutoSimd<[f64; 8]>> as SimdComplexField>::SimdRealField
Computes (self.conjugate() * self + other.conjugate() * other).sqrt()
The polar form of this complex number: (modulus, arg)
The exponential form of this complex number: (modulus, e^{i arg})
The exponential part of this complex number: self / self.modulus()
Computes e^(self)
, where e
is the base of the natural logarithm.
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.
Raises self
to a complex power.
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]>
type SimdRealField = AutoSimd<[f32; 4]>
Type of the coefficients of a complex number.
Computes the sum of all the lanes of self
.
Computes the product of all the lanes of self
.
pub fn from_simd_real(
re: <Complex<AutoSimd<[f32; 4]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f32; 4]>>
pub fn from_simd_real(
re: <Complex<AutoSimd<[f32; 4]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f32; 4]>>
Builds a pure-real complex number from the given value.
The real part of this complex number.
pub fn simd_imaginary(
self
) -> <Complex<AutoSimd<[f32; 4]>> as SimdComplexField>::SimdRealField
pub fn simd_imaginary(
self
) -> <Complex<AutoSimd<[f32; 4]>> as SimdComplexField>::SimdRealField
The imaginary part of this complex number.
pub fn simd_argument(
self
) -> <Complex<AutoSimd<[f32; 4]>> as SimdComplexField>::SimdRealField
pub fn simd_argument(
self
) -> <Complex<AutoSimd<[f32; 4]>> as SimdComplexField>::SimdRealField
The argument of this complex number.
The modulus of this complex number.
pub fn simd_modulus_squared(
self
) -> <Complex<AutoSimd<[f32; 4]>> as SimdComplexField>::SimdRealField
pub fn simd_modulus_squared(
self
) -> <Complex<AutoSimd<[f32; 4]>> as SimdComplexField>::SimdRealField
The squared modulus of this complex number.
The sum of the absolute value of this complex number’s real and imaginary part.
pub fn simd_scale(
self,
factor: <Complex<AutoSimd<[f32; 4]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f32; 4]>>
pub fn simd_scale(
self,
factor: <Complex<AutoSimd<[f32; 4]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f32; 4]>>
Multiplies this complex number by factor
.
pub fn simd_unscale(
self,
factor: <Complex<AutoSimd<[f32; 4]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f32; 4]>>
pub fn simd_unscale(
self,
factor: <Complex<AutoSimd<[f32; 4]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f32; 4]>>
Divides this complex number by factor
.
pub fn simd_mul_add(
self,
a: Complex<AutoSimd<[f32; 4]>>,
b: Complex<AutoSimd<[f32; 4]>>
) -> Complex<AutoSimd<[f32; 4]>>
The absolute value of this complex number: self / self.signum()
. Read more
pub fn simd_hypot(
self,
b: Complex<AutoSimd<[f32; 4]>>
) -> <Complex<AutoSimd<[f32; 4]>> as SimdComplexField>::SimdRealField
pub fn simd_hypot(
self,
b: Complex<AutoSimd<[f32; 4]>>
) -> <Complex<AutoSimd<[f32; 4]>> as SimdComplexField>::SimdRealField
Computes (self.conjugate() * self + other.conjugate() * other).sqrt()
The polar form of this complex number: (modulus, arg)
The exponential form of this complex number: (modulus, e^{i arg})
The exponential part of this complex number: self / self.modulus()
Computes e^(self)
, where e
is the base of the natural logarithm.
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.
Raises self
to a complex power.
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]>
type SimdRealField = AutoSimd<[f32; 8]>
Type of the coefficients of a complex number.
Computes the sum of all the lanes of self
.
Computes the product of all the lanes of self
.
pub fn from_simd_real(
re: <Complex<AutoSimd<[f32; 8]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f32; 8]>>
pub fn from_simd_real(
re: <Complex<AutoSimd<[f32; 8]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f32; 8]>>
Builds a pure-real complex number from the given value.
The real part of this complex number.
pub fn simd_imaginary(
self
) -> <Complex<AutoSimd<[f32; 8]>> as SimdComplexField>::SimdRealField
pub fn simd_imaginary(
self
) -> <Complex<AutoSimd<[f32; 8]>> as SimdComplexField>::SimdRealField
The imaginary part of this complex number.
pub fn simd_argument(
self
) -> <Complex<AutoSimd<[f32; 8]>> as SimdComplexField>::SimdRealField
pub fn simd_argument(
self
) -> <Complex<AutoSimd<[f32; 8]>> as SimdComplexField>::SimdRealField
The argument of this complex number.
The modulus of this complex number.
pub fn simd_modulus_squared(
self
) -> <Complex<AutoSimd<[f32; 8]>> as SimdComplexField>::SimdRealField
pub fn simd_modulus_squared(
self
) -> <Complex<AutoSimd<[f32; 8]>> as SimdComplexField>::SimdRealField
The squared modulus of this complex number.
The sum of the absolute value of this complex number’s real and imaginary part.
pub fn simd_scale(
self,
factor: <Complex<AutoSimd<[f32; 8]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f32; 8]>>
pub fn simd_scale(
self,
factor: <Complex<AutoSimd<[f32; 8]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f32; 8]>>
Multiplies this complex number by factor
.
pub fn simd_unscale(
self,
factor: <Complex<AutoSimd<[f32; 8]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f32; 8]>>
pub fn simd_unscale(
self,
factor: <Complex<AutoSimd<[f32; 8]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f32; 8]>>
Divides this complex number by factor
.
pub fn simd_mul_add(
self,
a: Complex<AutoSimd<[f32; 8]>>,
b: Complex<AutoSimd<[f32; 8]>>
) -> Complex<AutoSimd<[f32; 8]>>
The absolute value of this complex number: self / self.signum()
. Read more
pub fn simd_hypot(
self,
b: Complex<AutoSimd<[f32; 8]>>
) -> <Complex<AutoSimd<[f32; 8]>> as SimdComplexField>::SimdRealField
pub fn simd_hypot(
self,
b: Complex<AutoSimd<[f32; 8]>>
) -> <Complex<AutoSimd<[f32; 8]>> as SimdComplexField>::SimdRealField
Computes (self.conjugate() * self + other.conjugate() * other).sqrt()
The polar form of this complex number: (modulus, arg)
The exponential form of this complex number: (modulus, e^{i arg})
The exponential part of this complex number: self / self.modulus()
Computes e^(self)
, where e
is the base of the natural logarithm.
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.
Raises self
to a complex power.
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]>
type SimdRealField = AutoSimd<[f64; 4]>
Type of the coefficients of a complex number.
Computes the sum of all the lanes of self
.
Computes the product of all the lanes of self
.
pub fn from_simd_real(
re: <Complex<AutoSimd<[f64; 4]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f64; 4]>>
pub fn from_simd_real(
re: <Complex<AutoSimd<[f64; 4]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f64; 4]>>
Builds a pure-real complex number from the given value.
The real part of this complex number.
pub fn simd_imaginary(
self
) -> <Complex<AutoSimd<[f64; 4]>> as SimdComplexField>::SimdRealField
pub fn simd_imaginary(
self
) -> <Complex<AutoSimd<[f64; 4]>> as SimdComplexField>::SimdRealField
The imaginary part of this complex number.
pub fn simd_argument(
self
) -> <Complex<AutoSimd<[f64; 4]>> as SimdComplexField>::SimdRealField
pub fn simd_argument(
self
) -> <Complex<AutoSimd<[f64; 4]>> as SimdComplexField>::SimdRealField
The argument of this complex number.
The modulus of this complex number.
pub fn simd_modulus_squared(
self
) -> <Complex<AutoSimd<[f64; 4]>> as SimdComplexField>::SimdRealField
pub fn simd_modulus_squared(
self
) -> <Complex<AutoSimd<[f64; 4]>> as SimdComplexField>::SimdRealField
The squared modulus of this complex number.
The sum of the absolute value of this complex number’s real and imaginary part.
pub fn simd_scale(
self,
factor: <Complex<AutoSimd<[f64; 4]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f64; 4]>>
pub fn simd_scale(
self,
factor: <Complex<AutoSimd<[f64; 4]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f64; 4]>>
Multiplies this complex number by factor
.
pub fn simd_unscale(
self,
factor: <Complex<AutoSimd<[f64; 4]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f64; 4]>>
pub fn simd_unscale(
self,
factor: <Complex<AutoSimd<[f64; 4]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f64; 4]>>
Divides this complex number by factor
.
pub fn simd_mul_add(
self,
a: Complex<AutoSimd<[f64; 4]>>,
b: Complex<AutoSimd<[f64; 4]>>
) -> Complex<AutoSimd<[f64; 4]>>
The absolute value of this complex number: self / self.signum()
. Read more
pub fn simd_hypot(
self,
b: Complex<AutoSimd<[f64; 4]>>
) -> <Complex<AutoSimd<[f64; 4]>> as SimdComplexField>::SimdRealField
pub fn simd_hypot(
self,
b: Complex<AutoSimd<[f64; 4]>>
) -> <Complex<AutoSimd<[f64; 4]>> as SimdComplexField>::SimdRealField
Computes (self.conjugate() * self + other.conjugate() * other).sqrt()
The polar form of this complex number: (modulus, arg)
The exponential form of this complex number: (modulus, e^{i arg})
The exponential part of this complex number: self / self.modulus()
Computes e^(self)
, where e
is the base of the natural logarithm.
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.
Raises self
to a complex power.
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]>
type SimdRealField = AutoSimd<[f32; 2]>
Type of the coefficients of a complex number.
Computes the sum of all the lanes of self
.
Computes the product of all the lanes of self
.
pub fn from_simd_real(
re: <Complex<AutoSimd<[f32; 2]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f32; 2]>>
pub fn from_simd_real(
re: <Complex<AutoSimd<[f32; 2]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f32; 2]>>
Builds a pure-real complex number from the given value.
The real part of this complex number.
pub fn simd_imaginary(
self
) -> <Complex<AutoSimd<[f32; 2]>> as SimdComplexField>::SimdRealField
pub fn simd_imaginary(
self
) -> <Complex<AutoSimd<[f32; 2]>> as SimdComplexField>::SimdRealField
The imaginary part of this complex number.
pub fn simd_argument(
self
) -> <Complex<AutoSimd<[f32; 2]>> as SimdComplexField>::SimdRealField
pub fn simd_argument(
self
) -> <Complex<AutoSimd<[f32; 2]>> as SimdComplexField>::SimdRealField
The argument of this complex number.
The modulus of this complex number.
pub fn simd_modulus_squared(
self
) -> <Complex<AutoSimd<[f32; 2]>> as SimdComplexField>::SimdRealField
pub fn simd_modulus_squared(
self
) -> <Complex<AutoSimd<[f32; 2]>> as SimdComplexField>::SimdRealField
The squared modulus of this complex number.
The sum of the absolute value of this complex number’s real and imaginary part.
pub fn simd_scale(
self,
factor: <Complex<AutoSimd<[f32; 2]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f32; 2]>>
pub fn simd_scale(
self,
factor: <Complex<AutoSimd<[f32; 2]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f32; 2]>>
Multiplies this complex number by factor
.
pub fn simd_unscale(
self,
factor: <Complex<AutoSimd<[f32; 2]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f32; 2]>>
pub fn simd_unscale(
self,
factor: <Complex<AutoSimd<[f32; 2]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f32; 2]>>
Divides this complex number by factor
.
pub fn simd_mul_add(
self,
a: Complex<AutoSimd<[f32; 2]>>,
b: Complex<AutoSimd<[f32; 2]>>
) -> Complex<AutoSimd<[f32; 2]>>
The absolute value of this complex number: self / self.signum()
. Read more
pub fn simd_hypot(
self,
b: Complex<AutoSimd<[f32; 2]>>
) -> <Complex<AutoSimd<[f32; 2]>> as SimdComplexField>::SimdRealField
pub fn simd_hypot(
self,
b: Complex<AutoSimd<[f32; 2]>>
) -> <Complex<AutoSimd<[f32; 2]>> as SimdComplexField>::SimdRealField
Computes (self.conjugate() * self + other.conjugate() * other).sqrt()
The polar form of this complex number: (modulus, arg)
The exponential form of this complex number: (modulus, e^{i arg})
The exponential part of this complex number: self / self.modulus()
Computes e^(self)
, where e
is the base of the natural logarithm.
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.
Raises self
to a complex power.
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]>
type SimdRealField = AutoSimd<[f64; 2]>
Type of the coefficients of a complex number.
Computes the sum of all the lanes of self
.
Computes the product of all the lanes of self
.
pub fn from_simd_real(
re: <Complex<AutoSimd<[f64; 2]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f64; 2]>>
pub fn from_simd_real(
re: <Complex<AutoSimd<[f64; 2]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f64; 2]>>
Builds a pure-real complex number from the given value.
The real part of this complex number.
pub fn simd_imaginary(
self
) -> <Complex<AutoSimd<[f64; 2]>> as SimdComplexField>::SimdRealField
pub fn simd_imaginary(
self
) -> <Complex<AutoSimd<[f64; 2]>> as SimdComplexField>::SimdRealField
The imaginary part of this complex number.
pub fn simd_argument(
self
) -> <Complex<AutoSimd<[f64; 2]>> as SimdComplexField>::SimdRealField
pub fn simd_argument(
self
) -> <Complex<AutoSimd<[f64; 2]>> as SimdComplexField>::SimdRealField
The argument of this complex number.
The modulus of this complex number.
pub fn simd_modulus_squared(
self
) -> <Complex<AutoSimd<[f64; 2]>> as SimdComplexField>::SimdRealField
pub fn simd_modulus_squared(
self
) -> <Complex<AutoSimd<[f64; 2]>> as SimdComplexField>::SimdRealField
The squared modulus of this complex number.
The sum of the absolute value of this complex number’s real and imaginary part.
pub fn simd_scale(
self,
factor: <Complex<AutoSimd<[f64; 2]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f64; 2]>>
pub fn simd_scale(
self,
factor: <Complex<AutoSimd<[f64; 2]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f64; 2]>>
Multiplies this complex number by factor
.
pub fn simd_unscale(
self,
factor: <Complex<AutoSimd<[f64; 2]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f64; 2]>>
pub fn simd_unscale(
self,
factor: <Complex<AutoSimd<[f64; 2]>> as SimdComplexField>::SimdRealField
) -> Complex<AutoSimd<[f64; 2]>>
Divides this complex number by factor
.
pub fn simd_mul_add(
self,
a: Complex<AutoSimd<[f64; 2]>>,
b: Complex<AutoSimd<[f64; 2]>>
) -> Complex<AutoSimd<[f64; 2]>>
The absolute value of this complex number: self / self.signum()
. Read more
pub fn simd_hypot(
self,
b: Complex<AutoSimd<[f64; 2]>>
) -> <Complex<AutoSimd<[f64; 2]>> as SimdComplexField>::SimdRealField
pub fn simd_hypot(
self,
b: Complex<AutoSimd<[f64; 2]>>
) -> <Complex<AutoSimd<[f64; 2]>> as SimdComplexField>::SimdRealField
Computes (self.conjugate() * self + other.conjugate() * other).sqrt()
The polar form of this complex number: (modulus, arg)
The exponential form of this complex number: (modulus, e^{i arg})
The exponential part of this complex number: self / self.modulus()
The type of the elements of each lane of this SIMD value.
Type of the result of comparing two SIMD values like self
.
Initializes an SIMD value with each lanes set to val
.
Extracts the i-th lane of self
. Read more
Extracts the i-th lane of self
without bound-checking.
Replaces the i-th lane of self
by val
. Read more
Replaces the i-th lane of self
by val
without bound-checking.
Merges self
and other
depending on the lanes of cond
. Read more
Applies a function to each lane of self
. Read more
Performs the -=
operation. Read more
Performs the -=
operation. Read more
Performs the -=
operation. Read more
Performs the -=
operation. Read more
The inclusion map: converts self
to the equivalent element of its superset.
Use with care! Same as self.to_superset
but without any property checks. Always succeeds.
Checks if element
is actually part of the subset Self
(and can be converted to it).
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
Converts the value of self
to a usize
. If the value cannot be
represented by a usize
, then None
is returned. Read more
Converts the value of self
to an isize
. If the value cannot be
represented by an isize
, then None
is returned. Read more
Converts the value of self
to a u8
. If the value cannot be
represented by a u8
, then None
is returned. Read more
Converts the value of self
to a u16
. If the value cannot be
represented by a u16
, then None
is returned. Read more
Converts the value of self
to a u32
. If the value cannot be
represented by a u32
, then None
is returned. Read more
Converts the value of self
to a u64
. If the value cannot be
represented by a u64
, then None
is returned. Read more
Converts the value of self
to an i8
. If the value cannot be
represented by an i8
, then None
is returned. Read more
Converts the value of self
to an i16
. If the value cannot be
represented by an i16
, then None
is returned. Read more
Converts the value of self
to an i32
. If the value cannot be
represented by an i32
, then None
is returned. Read more
Converts the value of self
to an i64
. If the value cannot be
represented by an i64
, then None
is returned. Read more
Converts the value of self
to a u128
. If the value cannot be
represented by a u128
(u64
under the default implementation), then
None
is returned. Read more
Converts the value of self
to an i128
. If the value cannot be
represented by an i128
(i64
under the default implementation), then
None
is returned. Read more
Converts the value of self
to an f32
. Overflows may map to positive
or negative inifinity, otherwise None
is returned if the value cannot
be represented by an f32
. Read more
Auto Trait Implementations
impl<T> RefUnwindSafe for Complex<T> where
T: RefUnwindSafe,
impl<T> UnwindSafe for Complex<T> where
T: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more
type SimdRealField = <T as ComplexField>::RealField
type SimdRealField = <T as ComplexField>::RealField
Type of the coefficients of a complex number.
Builds a pure-real complex number from the given value.
The real part of this complex number.
The imaginary part of this complex number.
The modulus of this complex number.
The squared modulus of this complex number.
The argument of this complex number.
The sum of the absolute value of this complex number’s real and imaginary part.
Multiplies this complex number by factor
.
Divides this complex number by factor
.
pub fn simd_to_polar(
self
) -> (<T as SimdComplexField>::SimdRealField, <T as SimdComplexField>::SimdRealField)
pub fn simd_to_polar(
self
) -> (<T as SimdComplexField>::SimdRealField, <T as SimdComplexField>::SimdRealField)
The polar form of this complex number: (modulus, arg)
The exponential form of this complex number: (modulus, e^{i arg})
The exponential part of this complex number: self / self.modulus()
The absolute value of this complex number: self / self.signum()
. Read more
Computes (self.conjugate() * self + other.conjugate() * other).sqrt()
Computes the sum of all the lanes of self
.
Computes the product of all the lanes of self
.
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
Checks if self
is actually part of its subset T
(and can be converted to it).
Use with care! Same as self.to_subset
but without any property checks. Always succeeds.
The inclusion map: converts self
to the equivalent element of its superset.