pub trait ComplexField:
SubsetOf<Self>
+ SupersetOf<f32>
+ SupersetOf<f64>
+ FromPrimitive
+ Field<Element = Self, SimdBool = bool>
+ Neg<Output = Self>
+ Clone
+ Send
+ Sync
+ Any
+ 'static
+ Debug
+ Display {
type RealField: RealField;
Show 55 methods
// Required methods
fn from_real(re: Self::RealField) -> Self;
fn real(self) -> Self::RealField;
fn imaginary(self) -> Self::RealField;
fn modulus(self) -> Self::RealField;
fn modulus_squared(self) -> Self::RealField;
fn argument(self) -> Self::RealField;
fn norm1(self) -> Self::RealField;
fn scale(self, factor: Self::RealField) -> Self;
fn unscale(self, factor: Self::RealField) -> Self;
fn floor(self) -> Self;
fn ceil(self) -> Self;
fn round(self) -> Self;
fn trunc(self) -> Self;
fn fract(self) -> Self;
fn mul_add(self, a: Self, b: Self) -> Self;
fn abs(self) -> Self::RealField;
fn hypot(self, other: Self) -> Self::RealField;
fn recip(self) -> Self;
fn conjugate(self) -> Self;
fn sin(self) -> Self;
fn cos(self) -> Self;
fn sin_cos(self) -> (Self, Self);
fn tan(self) -> Self;
fn asin(self) -> Self;
fn acos(self) -> Self;
fn atan(self) -> Self;
fn sinh(self) -> Self;
fn cosh(self) -> Self;
fn tanh(self) -> Self;
fn asinh(self) -> Self;
fn acosh(self) -> Self;
fn atanh(self) -> Self;
fn log(self, base: Self::RealField) -> Self;
fn log2(self) -> Self;
fn log10(self) -> Self;
fn ln(self) -> Self;
fn ln_1p(self) -> Self;
fn sqrt(self) -> Self;
fn exp(self) -> Self;
fn exp2(self) -> Self;
fn exp_m1(self) -> Self;
fn powi(self, n: i32) -> Self;
fn powf(self, n: Self::RealField) -> Self;
fn powc(self, n: Self) -> Self;
fn cbrt(self) -> Self;
fn is_finite(&self) -> bool;
fn try_sqrt(self) -> Option<Self>;
// Provided methods
fn to_polar(self) -> (Self::RealField, Self::RealField) { ... }
fn to_exp(self) -> (Self::RealField, Self) { ... }
fn signum(self) -> Self { ... }
fn sinh_cosh(self) -> (Self, Self) { ... }
fn sinc(self) -> Self { ... }
fn sinhc(self) -> Self { ... }
fn cosc(self) -> Self { ... }
fn coshc(self) -> Self { ... }
}
Expand description
Trait shared by all complex fields and its subfields (like real numbers).
Complex numbers are equipped with functions that are commonly used on complex numbers and reals. The results of those functions only have to be approximately equal to the actual theoretical values.
Required Associated Types§
Required Methods§
Sourcefn from_real(re: Self::RealField) -> Self
fn from_real(re: Self::RealField) -> Self
Builds a pure-real complex number from the given value.
Sourcefn modulus_squared(self) -> Self::RealField
fn modulus_squared(self) -> Self::RealField
The squared modulus of this complex number.
Sourcefn norm1(self) -> Self::RealField
fn norm1(self) -> Self::RealField
The sum of the absolute value of this complex number’s real and imaginary part.
fn floor(self) -> Self
fn ceil(self) -> Self
fn round(self) -> Self
fn trunc(self) -> Self
fn fract(self) -> Self
fn mul_add(self, a: Self, b: Self) -> Self
Sourcefn abs(self) -> Self::RealField
fn abs(self) -> Self::RealField
The absolute value of this complex number: self / self.signum()
.
This is equivalent to self.modulus()
.
Sourcefn hypot(self, other: Self) -> Self::RealField
fn hypot(self, other: Self) -> Self::RealField
Computes (self.conjugate() * self + other.conjugate() * other).sqrt()
fn recip(self) -> Self
fn conjugate(self) -> Self
fn sin(self) -> Self
fn cos(self) -> Self
fn sin_cos(self) -> (Self, Self)
fn tan(self) -> Self
fn asin(self) -> Self
fn acos(self) -> Self
fn atan(self) -> Self
fn sinh(self) -> Self
fn cosh(self) -> Self
fn tanh(self) -> Self
fn asinh(self) -> Self
fn acosh(self) -> Self
fn atanh(self) -> Self
fn log(self, base: Self::RealField) -> Self
fn log2(self) -> Self
fn log10(self) -> Self
fn ln(self) -> Self
fn ln_1p(self) -> Self
fn sqrt(self) -> Self
fn exp(self) -> Self
fn exp2(self) -> Self
fn exp_m1(self) -> Self
fn powi(self, n: i32) -> Self
fn powf(self, n: Self::RealField) -> Self
fn powc(self, n: Self) -> Self
fn cbrt(self) -> Self
fn is_finite(&self) -> bool
fn try_sqrt(self) -> Option<Self>
Provided Methods§
Sourcefn to_polar(self) -> (Self::RealField, Self::RealField)
fn to_polar(self) -> (Self::RealField, Self::RealField)
The polar form of this complex number: (modulus, arg)
Sourcefn to_exp(self) -> (Self::RealField, Self)
fn to_exp(self) -> (Self::RealField, Self)
The exponential form of this complex number: (modulus, e^{i arg})
fn sinh_cosh(self) -> (Self, Self)
fn sinhc(self) -> Self
fn 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.
Implementations on Foreign Types§
Source§impl ComplexField for f32
impl ComplexField for f32
type RealField = f32
fn from_real(re: Self::RealField) -> Self
fn real(self) -> Self::RealField
fn imaginary(self) -> Self::RealField
fn norm1(self) -> Self::RealField
fn modulus(self) -> Self::RealField
fn modulus_squared(self) -> Self::RealField
fn argument(self) -> Self::RealField
fn to_exp(self) -> (Self, Self)
fn recip(self) -> Self
fn conjugate(self) -> Self
fn scale(self, factor: Self::RealField) -> Self
fn unscale(self, factor: Self::RealField) -> Self
fn floor(self) -> Self
fn ceil(self) -> Self
fn round(self) -> Self
fn trunc(self) -> Self
fn fract(self) -> Self
fn abs(self) -> Self
fn signum(self) -> Self
fn mul_add(self, a: Self, b: Self) -> Self
fn powi(self, n: i32) -> Self
fn powf(self, n: Self) -> Self
fn powc(self, n: Self) -> Self
fn sqrt(self) -> Self
fn try_sqrt(self) -> Option<Self>
fn exp(self) -> Self
fn exp2(self) -> Self
fn exp_m1(self) -> Self
fn ln_1p(self) -> Self
fn ln(self) -> Self
fn log(self, base: Self) -> Self
fn log2(self) -> Self
fn log10(self) -> Self
fn cbrt(self) -> Self
fn hypot(self, other: Self) -> Self::RealField
fn sin(self) -> Self
fn cos(self) -> Self
fn tan(self) -> Self
fn asin(self) -> Self
fn acos(self) -> Self
fn atan(self) -> Self
fn sin_cos(self) -> (Self, Self)
fn sinh(self) -> Self
fn cosh(self) -> Self
fn tanh(self) -> Self
fn asinh(self) -> Self
fn acosh(self) -> Self
fn atanh(self) -> Self
fn is_finite(&self) -> bool
Source§impl ComplexField for f64
impl ComplexField for f64
type RealField = f64
fn from_real(re: Self::RealField) -> Self
fn real(self) -> Self::RealField
fn imaginary(self) -> Self::RealField
fn norm1(self) -> Self::RealField
fn modulus(self) -> Self::RealField
fn modulus_squared(self) -> Self::RealField
fn argument(self) -> Self::RealField
fn to_exp(self) -> (Self, Self)
fn recip(self) -> Self
fn conjugate(self) -> Self
fn scale(self, factor: Self::RealField) -> Self
fn unscale(self, factor: Self::RealField) -> Self
fn floor(self) -> Self
fn ceil(self) -> Self
fn round(self) -> Self
fn trunc(self) -> Self
fn fract(self) -> Self
fn abs(self) -> Self
fn signum(self) -> Self
fn mul_add(self, a: Self, b: Self) -> Self
fn powi(self, n: i32) -> Self
fn powf(self, n: Self) -> Self
fn powc(self, n: Self) -> Self
fn sqrt(self) -> Self
fn try_sqrt(self) -> Option<Self>
fn exp(self) -> Self
fn exp2(self) -> Self
fn exp_m1(self) -> Self
fn ln_1p(self) -> Self
fn ln(self) -> Self
fn log(self, base: Self) -> Self
fn log2(self) -> Self
fn log10(self) -> Self
fn cbrt(self) -> Self
fn hypot(self, other: Self) -> Self::RealField
fn sin(self) -> Self
fn cos(self) -> Self
fn tan(self) -> Self
fn asin(self) -> Self
fn acos(self) -> Self
fn atan(self) -> Self
fn sin_cos(self) -> (Self, Self)
fn sinh(self) -> Self
fn cosh(self) -> Self
fn tanh(self) -> Self
fn asinh(self) -> Self
fn acosh(self) -> Self
fn atanh(self) -> Self
fn is_finite(&self) -> bool
Source§impl<N: RealField + PartialOrd> ComplexField for Complex<N>
impl<N: RealField + PartialOrd> ComplexField for Complex<N>
Source§fn ln(self) -> Self
fn ln(self) -> Self
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)) ≤ π
.
Source§fn sqrt(self) -> Self
fn sqrt(self) -> Self
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
.
Source§fn log(self, base: N) -> Self
fn log(self, base: N) -> Self
Returns the logarithm of self
with respect to an arbitrary base.
Source§fn asin(self) -> Self
fn asin(self) -> Self
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
.
Source§fn acos(self) -> Self
fn acos(self) -> Self
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)) ≤ π
.
Source§fn atan(self) -> Self
fn atan(self) -> Self
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
.
Source§fn asinh(self) -> Self
fn asinh(self) -> Self
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
.
Source§fn acosh(self) -> Self
fn acosh(self) -> Self
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)) < ∞
.
Source§fn atanh(self) -> Self
fn atanh(self) -> Self
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
.