ComplexField in simba::scalar - Rust
Description: Trait shared by all complex fields and its subfields (like real numbers).
Keywords: rust, rustlang, rust-lang, ComplexField

# Trait simba::scalar::ComplexField

source ·

    pub trait ComplexField: SubsetOf<Self> + SupersetOf<f64> + FromPrimitive + Field<Element = Self, SimdBool = bool> + Neg<Output = Self> + Clone + Send + Sync + Any + 'static + Debug + Display {
        type RealField: RealField;

    Show 55 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>;

        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§

source

#### type RealField: RealField

## Required Methods§

source

#### fn from_real(re: Self::RealField) -> Self

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

source

#### fn real(self) -> Self::RealField

The real part of this complex number.

source

#### fn imaginary(self) -> Self::RealField

The imaginary part of this complex number.

source

#### fn modulus(self) -> Self::RealField

The modulus of this complex number.

source

#### fn modulus_squared(self) -> Self::RealField

The squared modulus of this complex number.

source

#### fn argument(self) -> Self::RealField

The argument of this complex number.

source

#### fn norm1(self) -> Self::RealField

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

source

#### fn scale(self, factor: Self::RealField) -> Self

Multiplies this complex number by `factor`.

source

#### fn unscale(self, factor: Self::RealField) -> Self

Divides this complex number by `factor`.

source

#### fn floor(self) -> Self

source

#### fn ceil(self) -> Self

source

#### fn round(self) -> Self

source

#### fn trunc(self) -> Self

source

#### fn fract(self) -> Self

source

#### fn mul_add(self, a: Self, b: Self) -> Self

source

#### fn abs(self) -> Self::RealField

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

This is equivalent to `self.modulus()`.

source

#### fn hypot(self, other: Self) -> Self::RealField

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

source

#### fn recip(self) -> Self

source

#### fn conjugate(self) -> Self

source

#### fn sin(self) -> Self

source

#### fn cos(self) -> Self

source

#### fn sin_cos(self) -> (Self, Self)

source

#### fn tan(self) -> Self

source

#### fn asin(self) -> Self

source

#### fn acos(self) -> Self

source

#### fn atan(self) -> Self

source

#### fn sinh(self) -> Self

source

#### fn cosh(self) -> Self

source

#### fn tanh(self) -> Self

source

#### fn asinh(self) -> Self

source

#### fn acosh(self) -> Self

source

#### fn atanh(self) -> Self

source

#### fn log(self, base: Self::RealField) -> Self

source

#### fn log2(self) -> Self

source

#### fn log10(self) -> Self

source

#### fn ln(self) -> Self

source

#### fn ln_1p(self) -> Self

source

#### fn sqrt(self) -> Self

source

#### fn exp(self) -> Self

source

#### fn exp2(self) -> Self

source

#### fn exp_m1(self) -> Self

source

#### fn powi(self, n: i32) -> Self

source

#### fn powf(self, n: Self::RealField) -> Self

source

#### fn powc(self, n: Self) -> Self

source

#### fn cbrt(self) -> Self

source

#### fn is_finite(&self) -> bool

source

#### fn try_sqrt(self) -> Option<Self>

## Provided Methods§

source

#### fn to_polar(self) -> (Self::RealField, Self::RealField)

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

source

#### fn to_exp(self) -> (Self::RealField, Self)

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

source

#### fn signum(self) -> Self

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

source

#### fn sinh_cosh(self) -> (Self, Self)

source

#### fn sinc(self) -> Self

Cardinal sine

source

#### fn sinhc(self) -> Self

source

#### fn cosc(self) -> Self

Cardinal cos

source

#### fn coshc(self) -> Self

## Implementations on Foreign Types§

source§

### impl ComplexField for f32

§

#### type RealField = f32

source§

#### fn from_real(re: Self::RealField) -> Self

source§

#### fn real(self) -> Self::RealField

source§

#### fn imaginary(self) -> Self::RealField

source§

#### fn norm1(self) -> Self::RealField

source§

#### fn modulus(self) -> Self::RealField

source§

#### fn modulus_squared(self) -> Self::RealField

source§

#### fn argument(self) -> Self::RealField

source§

#### fn to_exp(self) -> (Self, Self)

source§

#### fn recip(self) -> Self

source§

#### fn conjugate(self) -> Self

source§

#### fn scale(self, factor: Self::RealField) -> Self

source§

#### fn unscale(self, factor: Self::RealField) -> Self

source§

#### fn floor(self) -> Self

source§

#### fn ceil(self) -> Self

source§

#### fn round(self) -> Self

source§

#### fn trunc(self) -> Self

source§

#### fn fract(self) -> Self

source§

#### fn abs(self) -> Self

source§

#### fn signum(self) -> Self

source§

#### fn mul_add(self, a: Self, b: Self) -> Self

source§

#### fn powi(self, n: i32) -> Self

source§

#### fn powf(self, n: Self) -> Self

source§

#### fn powc(self, n: Self) -> Self

source§

#### fn sqrt(self) -> Self

source§

#### fn try_sqrt(self) -> Option<Self>

source§

#### fn exp(self) -> Self

source§

#### fn exp2(self) -> Self

source§

#### fn exp_m1(self) -> Self

source§

#### fn ln_1p(self) -> Self

source§

#### fn ln(self) -> Self

source§

#### fn log(self, base: Self) -> Self

source§

#### fn log2(self) -> Self

source§

#### fn log10(self) -> Self

source§

#### fn cbrt(self) -> Self

source§

#### fn hypot(self, other: Self) -> Self::RealField

source§

#### fn sin(self) -> Self

source§

#### fn cos(self) -> Self

source§

#### fn tan(self) -> Self

source§

#### fn asin(self) -> Self

source§

#### fn acos(self) -> Self

source§

#### fn atan(self) -> Self

source§

#### fn sin_cos(self) -> (Self, Self)

source§

#### fn sinh(self) -> Self

source§

#### fn cosh(self) -> Self

source§

#### fn tanh(self) -> Self

source§

#### fn asinh(self) -> Self

source§

#### fn acosh(self) -> Self

source§

#### fn atanh(self) -> Self

source§

#### fn is_finite(&self) -> bool

source§

### impl ComplexField for f64

§

#### type RealField = f64

source§

#### fn from_real(re: Self::RealField) -> Self

source§

#### fn real(self) -> Self::RealField

source§

#### fn imaginary(self) -> Self::RealField

source§

#### fn norm1(self) -> Self::RealField

source§

#### fn modulus(self) -> Self::RealField

source§

#### fn modulus_squared(self) -> Self::RealField

source§

#### fn argument(self) -> Self::RealField

source§

#### fn to_exp(self) -> (Self, Self)

source§

#### fn recip(self) -> Self

source§

#### fn conjugate(self) -> Self

source§

#### fn scale(self, factor: Self::RealField) -> Self

source§

#### fn unscale(self, factor: Self::RealField) -> Self

source§

#### fn floor(self) -> Self

source§

#### fn ceil(self) -> Self

source§

#### fn round(self) -> Self

source§

#### fn trunc(self) -> Self

source§

#### fn fract(self) -> Self

source§

#### fn abs(self) -> Self

source§

#### fn signum(self) -> Self

source§

#### fn mul_add(self, a: Self, b: Self) -> Self

source§

#### fn powi(self, n: i32) -> Self

source§

#### fn powf(self, n: Self) -> Self

source§

#### fn powc(self, n: Self) -> Self

source§

#### fn sqrt(self) -> Self

source§

#### fn try_sqrt(self) -> Option<Self>

source§

#### fn exp(self) -> Self

source§

#### fn exp2(self) -> Self

source§

#### fn exp_m1(self) -> Self

source§

#### fn ln_1p(self) -> Self

source§

#### fn ln(self) -> Self

source§

#### fn log(self, base: Self) -> Self

source§

#### fn log2(self) -> Self

source§

#### fn log10(self) -> Self

source§

#### fn cbrt(self) -> Self

source§

#### fn hypot(self, other: Self) -> Self::RealField

source§

#### fn sin(self) -> Self

source§

#### fn cos(self) -> Self

source§

#### fn tan(self) -> Self

source§

#### fn asin(self) -> Self

source§

#### fn acos(self) -> Self

source§

#### fn atan(self) -> Self

source§

#### fn sin_cos(self) -> (Self, Self)

source§

#### fn sinh(self) -> Self

source§

#### fn cosh(self) -> Self

source§

#### fn tanh(self) -> Self

source§

#### fn asinh(self) -> Self

source§

#### fn acosh(self) -> Self

source§

#### fn atanh(self) -> Self

source§

#### fn is_finite(&self) -> bool

source§

### impl<N: RealField + PartialOrd> ComplexField for Complex<N>

source§

#### fn exp(self) -> Self

Computes `e^(self)`, where `e` is the base of the natural logarithm.

source§

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

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 powf(self, exp: Self::RealField) -> Self

Raises `self` to a floating point power.

source§

#### fn log(self, base: N) -> Self

Returns the logarithm of `self` with respect to an arbitrary base.

source§

#### fn powc(self, exp: Self) -> Self

Raises `self` to a complex power.

source§

#### fn sin(self) -> Self

Computes the sine of `self`.

source§

#### fn cos(self) -> Self

Computes the cosine of `self`.

source§

#### fn tan(self) -> Self

Computes the tangent of `self`.

source§

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

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

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 sinh(self) -> Self

Computes the hyperbolic sine of `self`.

source§

#### fn cosh(self) -> Self

Computes the hyperbolic cosine of `self`.

source§

#### fn tanh(self) -> Self

Computes the hyperbolic tangent of `self`.

source§

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

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

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

source§

#### fn from_real(re: Self::RealField) -> Self

source§

#### fn real(self) -> Self::RealField

source§

#### fn imaginary(self) -> Self::RealField

source§

#### fn argument(self) -> Self::RealField

source§

#### fn modulus(self) -> Self::RealField

source§

#### fn modulus_squared(self) -> Self::RealField

source§

#### fn norm1(self) -> Self::RealField

source§

#### fn recip(self) -> Self

source§

#### fn conjugate(self) -> Self

source§

#### fn scale(self, factor: Self::RealField) -> Self

source§

#### fn unscale(self, factor: Self::RealField) -> Self

source§

#### fn floor(self) -> Self

source§

#### fn ceil(self) -> Self

source§

#### fn round(self) -> Self

source§

#### fn trunc(self) -> Self

source§

#### fn fract(self) -> Self

source§

#### fn mul_add(self, a: Self, b: Self) -> Self

source§

#### fn abs(self) -> Self::RealField

source§

#### fn exp2(self) -> Self

source§

#### fn exp_m1(self) -> Self

source§

#### fn ln_1p(self) -> Self

source§

#### fn log2(self) -> Self

source§

#### fn log10(self) -> Self

source§

#### fn cbrt(self) -> Self

source§

#### fn powi(self, n: i32) -> Self

source§

#### fn is_finite(&self) -> bool

source§

#### fn try_sqrt(self) -> Option<Self>

source§

#### fn hypot(self, b: Self) -> Self::RealField

source§

#### fn sin_cos(self) -> (Self, Self)

source§

#### fn sinh_cosh(self) -> (Self, Self)

## Implementors§