[−][src]Struct nalgebra::Complex

```#[repr(C)]
pub struct Complex<T> {
pub re: T,
pub im: T,
}```

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

Methods

`impl<T> Complex<T> where    T: Clone + Num, `[src]

`pub fn new(re: T, im: T) -> Complex<T>`[src]

Create a new Complex

`pub fn i() -> Complex<T>`[src]

Returns imaginary unit

`pub fn norm_sqr(&self) -> T`[src]

Returns the square of the norm (since `T` doesn't necessarily have a sqrt function), i.e. `re^2 + im^2`.

`pub fn scale(&self, t: T) -> Complex<T>`[src]

Multiplies `self` by the scalar `t`.

`pub fn unscale(&self, t: T) -> Complex<T>`[src]

Divides `self` by the scalar `t`.

`impl<T> Complex<T> where    T: Neg<Output = T> + Clone + Num, `[src]

`pub fn conj(&self) -> Complex<T>`[src]

Returns the complex conjugate. i.e. `re - i im`

`pub fn inv(&self) -> Complex<T>`[src]

Returns `1/self`

`impl<T> Complex<T> where    T: Clone + Float, `[src]

Calculate |self|

`pub fn arg(&self) -> T`[src]

Calculate the principal Arg of self.

`pub fn to_polar(&self) -> (T, T)`[src]

Convert to polar form (r, theta), such that `self = r * exp(i * theta)`

`pub fn from_polar(r: &T, theta: &T) -> Complex<T>`[src]

Convert a polar representation into a complex number.

`pub fn exp(&self) -> Complex<T>`[src]

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

`pub fn ln(&self) -> Complex<T>`[src]

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)) ≤ π`.

`pub fn sqrt(&self) -> Complex<T>`[src]

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`.

`pub fn powf(&self, exp: T) -> Complex<T>`[src]

Raises `self` to a floating point power.

`pub fn log(&self, base: T) -> Complex<T>`[src]

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

`pub fn powc(&self, exp: Complex<T>) -> Complex<T>`[src]

Raises `self` to a complex power.

`pub fn expf(&self, base: T) -> Complex<T>`[src]

Raises a floating point number to the complex power `self`.

`pub fn sin(&self) -> Complex<T>`[src]

Computes the sine of `self`.

`pub fn cos(&self) -> Complex<T>`[src]

Computes the cosine of `self`.

`pub fn tan(&self) -> Complex<T>`[src]

Computes the tangent of `self`.

`pub fn asin(&self) -> Complex<T>`[src]

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`.

`pub fn acos(&self) -> Complex<T>`[src]

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)) ≤ π`.

`pub fn atan(&self) -> Complex<T>`[src]

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`.

`pub fn sinh(&self) -> Complex<T>`[src]

Computes the hyperbolic sine of `self`.

`pub fn cosh(&self) -> Complex<T>`[src]

Computes the hyperbolic cosine of `self`.

`pub fn tanh(&self) -> Complex<T>`[src]

Computes the hyperbolic tangent of `self`.

`pub fn asinh(&self) -> Complex<T>`[src]

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`.

`pub fn acosh(&self) -> Complex<T>`[src]

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)) < ∞`.

`pub fn atanh(&self) -> Complex<T>`[src]

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`.

`impl<T> Complex<T> where    T: Clone + FloatCore, `[src]

`pub fn is_nan(self) -> bool`[src]

Checks if the given complex number is NaN

`pub fn is_infinite(self) -> bool`[src]

Checks if the given complex number is infinite

`pub fn is_finite(self) -> bool`[src]

Checks if the given complex number is finite

`pub fn is_normal(self) -> bool`[src]

Checks if the given complex number is normal

Trait Implementations

`impl<T> AbsDiffEq<Complex<T>> for Complex<T> where    T: AbsDiffEq<T>,    <T as AbsDiffEq<T>>::Epsilon: Clone, `

`type Epsilon = <T as AbsDiffEq<T>>::Epsilon`

Used for specifying relative comparisons.

`default fn abs_diff_ne(&self, other: &Rhs, epsilon: Self::Epsilon) -> bool`

The inverse of `ApproxEq::abs_diff_eq`.

`impl<T> RelativeEq<Complex<T>> for Complex<T> where    T: RelativeEq<T>,    <T as AbsDiffEq<T>>::Epsilon: Clone, `

`default fn relative_ne(    &self,     other: &Rhs,     epsilon: Self::Epsilon,     max_relative: Self::Epsilon) -> bool`

The inverse of `ApproxEq::relative_eq`.

`impl<T> UlpsEq<Complex<T>> for Complex<T> where    T: UlpsEq<T>,    <T as AbsDiffEq<T>>::Epsilon: Clone, `

`default fn ulps_ne(    &self,     other: &Rhs,     epsilon: Self::Epsilon,     max_ulps: u32) -> bool`

The inverse of `ApproxEq::ulps_eq`.

`impl<'a, 'b, T> Rem<&'a T> for &'b Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `%` operator.

`impl<'a, 'b, T> Rem<&'b Complex<T>> for &'a Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `%` operator.

`impl<T> Rem<T> for Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `%` operator.

`impl<'a, T> Rem<T> for &'a Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `%` operator.

`impl<'a, T> Rem<&'a T> for Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `%` operator.

`impl<'a, T> Rem<&'a Complex<T>> for Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `%` operator.

`impl<'a, T> Rem<Complex<T>> for &'a Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `%` operator.

`impl<T> Rem<Complex<T>> for Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `%` operator.

`impl<T> FromStr for Complex<T> where    T: FromStr + Num + Clone, `[src]

`type Err = ParseComplexError<<T as FromStr>::Err>`

The associated error which can be returned from parsing.

`fn from_str(s: &str) -> Result<Complex<T>, <Complex<T> as FromStr>::Err>`[src]

Parses `a +/- bi`; `ai +/- b`; `a`; or `bi` where `a` and `b` are of type `T`

`impl<T> Num for Complex<T> where    T: Clone + Num, `[src]

`fn from_str_radix(    s: &str,     radix: u32) -> Result<Complex<T>, <Complex<T> as Num>::FromStrRadixErr>`[src]

Parses `a +/- bi`; `ai +/- b`; `a`; or `bi` where `a` and `b` are of type `T`

`impl<T> Inv for Complex<T> where    T: Neg<Output = T> + Clone + Num, `[src]

`type Output = Complex<T>`

The result after applying the operator.

`impl<'a, T> Inv for &'a Complex<T> where    T: Neg<Output = T> + Clone + Num, `[src]

`type Output = Complex<T>`

The result after applying the operator.

`impl<'a, T> Sub<Complex<T>> for &'a Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `-` operator.

`impl<'a, T> Sub<&'a T> for Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `-` operator.

`impl<'a, T> Sub<&'a Complex<T>> for Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `-` operator.

`impl<T> Sub<T> for Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `-` operator.

`impl<'a, 'b, T> Sub<&'a T> for &'b Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `-` operator.

`impl<T> Sub<Complex<T>> for Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `-` operator.

`impl<'a, 'b, T> Sub<&'b Complex<T>> for &'a Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `-` operator.

`impl<'a, T> Sub<T> for &'a Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `-` operator.

`impl<T> Clone for Complex<T> where    T: Clone, `[src]

`default fn clone_from(&mut self, source: &Self)`1.0.0[src]

Performs copy-assignment from `source`. Read more

`impl<T> Add<T> for Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `+` operator.

`impl<'a, T> Add<Complex<T>> for &'a Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `+` operator.

`impl<'a, 'b, T> Add<&'b Complex<T>> for &'a Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `+` operator.

`impl<'a, 'b, T> Add<&'a T> for &'b Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `+` operator.

`impl<T> Add<Complex<T>> for Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `+` operator.

`impl<'a, T> Add<T> for &'a Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `+` operator.

`impl<'a, T> Add<&'a T> for Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `+` operator.

`impl<'a, T> Add<&'a Complex<T>> for Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `+` operator.

`impl<'a, T> Div<T> for &'a Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `/` operator.

`impl<T> Div<T> for Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `/` operator.

`impl<T> Div<Complex<T>> for Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `/` operator.

`impl<'a, T> Div<Complex<T>> for &'a Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `/` operator.

`impl<'a, T> Div<&'a T> for Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `/` operator.

`impl<'a, T> Div<&'a Complex<T>> for Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `/` operator.

`impl<'a, 'b, T> Div<&'a T> for &'b Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `/` operator.

`impl<'a, 'b, T> Div<&'b Complex<T>> for &'a Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `/` operator.

`impl<'a, T> Mul<&'a T> for Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `*` operator.

`impl<'a, T> Mul<T> for &'a Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `*` operator.

`impl<'a, T> Mul<&'a Complex<T>> for Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `*` operator.

`impl<'a, T> Mul<Complex<T>> for &'a Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `*` operator.

`impl<'a, 'b, T> Mul<&'b Complex<T>> for &'a Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `*` operator.

`impl<'a, 'b, T> Mul<&'a T> for &'b Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `*` operator.

`impl<T> Mul<T> for Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `*` operator.

`impl<T> Mul<Complex<T>> for Complex<T> where    T: Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `*` operator.

`impl<T> Hash for Complex<T> where    T: Hash, `[src]

`default fn hash_slice<H>(data: &[Self], state: &mut H) where    H: Hasher, `1.3.0[src]

Feeds a slice of this type into the given [`Hasher`]. Read more

`impl<T> Neg for Complex<T> where    T: Neg<Output = T> + Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `-` operator.

`impl<'a, T> Neg for &'a Complex<T> where    T: Neg<Output = T> + Clone + Num, `[src]

`type Output = Complex<T>`

The resulting type after applying the `-` operator.

`impl<N> AbstractRingCommutative<Additive, Multiplicative> for Complex<N> where    N: AbstractRingCommutative<Additive, Multiplicative> + ClosedNeg + Clone + Num, `

`default fn prop_mul_is_commutative_approx(args: (Self, Self)) -> bool where    Self: RelativeEq<Self>, `

Returns `true` if the multiplication operator is commutative for the given argument tuple. Approximate equality is used for verifications. Read more

`default fn prop_mul_is_commutative(args: (Self, Self)) -> bool where    Self: Eq, `

Returns `true` if the multiplication operator is commutative for the given argument tuple.

`impl<N> Module for Complex<N> where    N: RingCommutative + NumAssign, `

`type Ring = N`

The underlying scalar field.

`impl<N> TwoSidedInverse<Multiplicative> for Complex<N> where    N: ClosedNeg + Clone + Num, `

`default fn two_sided_inverse_mut(&mut self)`

In-place inversion of `self`, relative to the operator `O`. Read more

`impl<N> TwoSidedInverse<Additive> for Complex<N> where    N: TwoSidedInverse<Additive>, `

`default fn two_sided_inverse_mut(&mut self)`

In-place inversion of `self`, relative to the operator `O`. Read more

`impl<N> NormedSpace for Complex<N> where    N: RealField, `

`type RealField = N`

The result of the norm (not necessarily the same same as the field used by this vector space).

`type ComplexField = N`

The field of this space must be this complex number.

`impl<N> AbstractModule<Additive, Additive, Multiplicative> for Complex<N> where    N: AbstractRingCommutative<Additive, Multiplicative> + ClosedNeg + Num, `

`type AbstractRing = N`

The underlying scalar field.

`impl<N1, N2> SubsetOf<Complex<N2>> for Complex<N1> where    N2: SupersetOf<N1>, `

`default fn from_superset(element: &T) -> Option<Self>`

The inverse inclusion map: attempts to construct `self` from the equivalent element of its superset. Read more

`impl<N> ComplexField for Complex<N> where    N: RealField, `

`type RealField = N`

Type of the coefficients of a complex number.

`fn exp(self) -> Complex<N>`

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

`fn ln(self) -> Complex<N>`

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)) ≤ π`.

`fn sqrt(self) -> Complex<N>`

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`.

`fn powf(self, exp: <Complex<N> as ComplexField>::RealField) -> Complex<N>`

Raises `self` to a floating point power.

`fn log(self, base: N) -> Complex<N>`

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

`fn powc(self, exp: Complex<N>) -> Complex<N>`

Raises `self` to a complex power.

`fn sin(self) -> Complex<N>`

Computes the sine of `self`.

`fn cos(self) -> Complex<N>`

Computes the cosine of `self`.

`fn tan(self) -> Complex<N>`

Computes the tangent of `self`.

`fn asin(self) -> Complex<N>`

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`.

`fn acos(self) -> Complex<N>`

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)) ≤ π`.

`fn atan(self) -> Complex<N>`

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`.

`fn sinh(self) -> Complex<N>`

Computes the hyperbolic sine of `self`.

`fn cosh(self) -> Complex<N>`

Computes the hyperbolic cosine of `self`.

`fn tanh(self) -> Complex<N>`

Computes the hyperbolic tangent of `self`.

`fn asinh(self) -> Complex<N>`

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`.

`fn acosh(self) -> Complex<N>`

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)) < ∞`.

`fn atanh(self) -> Complex<N>`

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`.

`default fn to_polar(self) -> (Self::RealField, Self::RealField)`

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

`default fn to_exp(self) -> (Self::RealField, Self)`

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

`default fn signum(self) -> Self`

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

Cardinal sine

Cardinal cos

`impl<N> AbstractQuasigroup<Additive> for Complex<N> where    N: AbstractGroupAbelian<Additive>, `

`default fn prop_inv_is_latin_square_approx(args: (Self, Self)) -> bool where    Self: RelativeEq<Self>, `

Returns `true` if latin squareness holds for the given arguments. Approximate equality is used for verifications. Read more

`default fn prop_inv_is_latin_square(args: (Self, Self)) -> bool where    Self: Eq, `

Returns `true` if latin squareness holds for the given arguments. Read more

`impl<N> AbstractQuasigroup<Multiplicative> for Complex<N> where    N: Num + Clone + ClosedNeg, `

`default fn prop_inv_is_latin_square_approx(args: (Self, Self)) -> bool where    Self: RelativeEq<Self>, `

Returns `true` if latin squareness holds for the given arguments. Approximate equality is used for verifications. Read more

`default fn prop_inv_is_latin_square(args: (Self, Self)) -> bool where    Self: Eq, `

Returns `true` if latin squareness holds for the given arguments. Read more

`impl<N> AbstractMagma<Multiplicative> for Complex<N> where    N: Clone + Num, `

`default fn op(&self, O, lhs: &Self) -> Self`

Performs specific operation.

`impl<N> AbstractMagma<Additive> for Complex<N> where    N: AbstractMagma<Additive>, `

`default fn op(&self, O, lhs: &Self) -> Self`

Performs specific operation.

`impl<N> VectorSpace for Complex<N> where    N: Field + NumAssign, `

`type Field = N`

The underlying scalar field.

`impl<N> AbstractRing<Additive, Multiplicative> for Complex<N> where    N: AbstractRing<Additive, Multiplicative> + ClosedNeg + Clone + Num, `

`default fn prop_mul_and_add_are_distributive_approx(    args: (Self, Self, Self)) -> bool where    Self: RelativeEq<Self>, `

Returns `true` if the multiplication and addition operators are distributive for the given argument tuple. Approximate equality is used for verifications. Read more

`default fn prop_mul_and_add_are_distributive(args: (Self, Self, Self)) -> bool where    Self: Eq, `

Returns `true` if the multiplication and addition operators are distributive for the given argument tuple. Read more

`impl<N> Identity<Additive> for Complex<N> where    N: Identity<Additive>, `

`default fn id(O) -> Self`

Specific identity.

`impl<N> Identity<Multiplicative> for Complex<N> where    N: Clone + Num, `

`default fn id(O) -> Self`

Specific identity.

`impl<N> AbstractGroupAbelian<Additive> for Complex<N> where    N: AbstractGroupAbelian<Additive>, `

`default fn prop_is_commutative_approx(args: (Self, Self)) -> bool where    Self: RelativeEq<Self>, `

Returns `true` if the operator is commutative for the given argument tuple. Approximate equality is used for verifications. Read more

`default fn prop_is_commutative(args: (Self, Self)) -> bool where    Self: Eq, `

Returns `true` if the operator is commutative for the given argument tuple.

`impl<N> AbstractGroupAbelian<Multiplicative> for Complex<N> where    N: Num + Clone + ClosedNeg, `

`default fn prop_is_commutative_approx(args: (Self, Self)) -> bool where    Self: RelativeEq<Self>, `

Returns `true` if the operator is commutative for the given argument tuple. Approximate equality is used for verifications. Read more

`default fn prop_is_commutative(args: (Self, Self)) -> bool where    Self: Eq, `

Returns `true` if the operator is commutative for the given argument tuple.

`impl<N> AbstractMonoid<Additive> for Complex<N> where    N: AbstractGroupAbelian<Additive>, `

`default fn prop_operating_identity_element_is_noop_approx(args: (Self,)) -> bool where    Self: RelativeEq<Self>, `

Checks whether operating with the identity element is a no-op for the given argument. Approximate equality is used for verifications. Read more

`default fn prop_operating_identity_element_is_noop(args: (Self,)) -> bool where    Self: Eq, `

Checks whether operating with the identity element is a no-op for the given argument. Read more

`impl<N> AbstractMonoid<Multiplicative> for Complex<N> where    N: Num + Clone + ClosedNeg, `

`default fn prop_operating_identity_element_is_noop_approx(args: (Self,)) -> bool where    Self: RelativeEq<Self>, `

Checks whether operating with the identity element is a no-op for the given argument. Approximate equality is used for verifications. Read more

`default fn prop_operating_identity_element_is_noop(args: (Self,)) -> bool where    Self: Eq, `

Checks whether operating with the identity element is a no-op for the given argument. Read more

`impl<N> AbstractSemigroup<Multiplicative> for Complex<N> where    N: Num + Clone + ClosedNeg, `

`default fn prop_is_associative_approx(args: (Self, Self, Self)) -> bool where    Self: RelativeEq<Self>, `

Returns `true` if associativity holds for the given arguments. Approximate equality is used for verifications. Read more

`default fn prop_is_associative(args: (Self, Self, Self)) -> bool where    Self: Eq, `

Returns `true` if associativity holds for the given arguments.

`impl<N> AbstractSemigroup<Additive> for Complex<N> where    N: AbstractGroupAbelian<Additive>, `

`default fn prop_is_associative_approx(args: (Self, Self, Self)) -> bool where    Self: RelativeEq<Self>, `

Returns `true` if associativity holds for the given arguments. Approximate equality is used for verifications. Read more

`default fn prop_is_associative(args: (Self, Self, Self)) -> bool where    Self: Eq, `

Returns `true` if associativity holds for the given arguments.

Blanket Implementations

`impl<T, U> TryFrom for T where    U: Into<T>, `[src]

`type Error = Infallible`

The type returned in the event of a conversion error.

`impl<T, U> TryInto for T where    U: TryFrom<T>, `[src]

`type Error = <U as TryFrom<T>>::Error`

The type returned in the event of a conversion error.

`impl<T> Same for T`

`type Output = T`

Should always be `Self`