# [−][src]Struct num::complex::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]

#### `pub fn norm(&self) -> T`[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`.

#### `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> One for Complex<T> where
T: Clone + Num,` [src]

#### `fn one() -> Complex<T>`[src]

Returns the multiplicative identity element of `Self`, `1`. Read more

#### `fn set_one(&mut self)`[src]

Sets `self` to the multiplicative identity element of `Self`, `1`.

#### `fn is_one(&self) -> bool where
Self: PartialEq<Self>,` [src]

Returns `true` if `self` is equal to the multiplicative identity. Read more

### `impl<T> SubAssign<Complex<T>> for Complex<T> where
T: Clone + NumAssign,` [src]

#### `fn sub_assign(&mut self, other: Complex<T>)`[src]

Performs the `-=` operation.

### `impl<T> SubAssign<T> for Complex<T> where
T: Clone + NumAssign,` [src]

#### `fn sub_assign(&mut self, other: T)`[src]

Performs the `-=` operation.

### `impl<'a, T> SubAssign<&'a T> for Complex<T> where
T: Clone + NumAssign,` [src]

#### `fn sub_assign(&mut self, other: &T)`[src]

Performs the `-=` operation.

### `impl<'a, T> SubAssign<&'a Complex<T>> for Complex<T> where
T: Clone + NumAssign,` [src]

#### `fn sub_assign(&mut self, other: &Complex<T>)`[src]

Performs the `-=` operation.

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

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

#### `fn fmt(&self, f: &mut Formatter) -> Result<(), Error>`[src]

Formats the value using the given formatter. Read more

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

#### `fn encode<__S>(&self, s: &mut __S) -> Result<(), <__S as Encoder>::Error> where
__S: Encoder,` [src]

Serialize a value using an `Encoder`.

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

#### `fn fmt(&self, f: &mut Formatter) -> Result<(), Error>`[src]

Formats the value using the given formatter.

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

#### `fn zero() -> Complex<T>`[src]

Returns the additive identity element of `Self`, `0`. # Purity Read more

#### `fn is_zero(&self) -> bool`[src]

Returns `true` if `self` is equal to the additive identity.

#### `fn set_zero(&mut self)`[src]

Sets `self` to the additive identity element of `Self`, `0`.

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

#### `fn fmt(&self, f: &mut Formatter) -> Result<(), Error>`[src]

Formats the value using the given formatter.

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

#### `fn fmt(&self, f: &mut Formatter) -> Result<(), Error>`[src]

Formats the value using the given formatter.

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

#### `type Output = Complex<T>`

The resulting type after applying the `%` operator.

#### `fn rem(self, other: T) -> Complex<T>`[src]

Performs the `%` operation.

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

#### `fn rem(self, other: Complex<T>) -> Complex<T>`[src]

Performs the `%` operation.

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

#### `fn rem(self, other: &Complex<T>) -> Complex<T>`[src]

Performs the `%` operation.

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

#### `type Output = Complex<T>`

The resulting type after applying the `%` operator.

#### `fn rem(self, modulus: Complex<T>) -> Complex<T>`[src]

Performs the `%` operation.

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

#### `fn rem(self, other: T) -> Complex<T>`[src]

Performs the `%` operation.

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

#### `fn rem(self, other: &T) -> Complex<T>`[src]

Performs the `%` operation.

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

#### `fn rem(self, other: &Complex<T>) -> Complex<T>`[src]

Performs the `%` operation.

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

#### `fn rem(self, other: &T) -> Complex<T>`[src]

Performs the `%` operation.

### `impl<'a, T> RemAssign<&'a T> for Complex<T> where
T: Clone + NumAssign,` [src]

#### `fn rem_assign(&mut self, other: &T)`[src]

Performs the `%=` operation.

### `impl<T> RemAssign<T> for Complex<T> where
T: Clone + NumAssign,` [src]

#### `fn rem_assign(&mut self, other: T)`[src]

Performs the `%=` operation.

### `impl<T> RemAssign<Complex<T>> for Complex<T> where
T: Clone + NumAssign,` [src]

#### `fn rem_assign(&mut self, other: Complex<T>)`[src]

Performs the `%=` operation.

### `impl<'a, T> RemAssign<&'a Complex<T>> for Complex<T> where
T: Clone + NumAssign,` [src]

#### `fn rem_assign(&mut self, other: &Complex<T>)`[src]

Performs the `%=` operation.

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

#### `fn add(self, other: &Complex<T>) -> Complex<T>`[src]

Performs the `+` operation.

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

#### `fn add(self, other: &Complex<T>) -> Complex<T>`[src]

Performs the `+` operation.

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

#### `fn add(self, other: T) -> Complex<T>`[src]

Performs the `+` operation.

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

#### `type Output = Complex<T>`

The resulting type after applying the `+` operator.

#### `fn add(self, other: T) -> Complex<T>`[src]

Performs the `+` operation.

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

#### `fn add(self, other: Complex<T>) -> Complex<T>`[src]

Performs the `+` operation.

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

#### `fn add(self, other: &T) -> Complex<T>`[src]

Performs the `+` operation.

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

#### `type Output = Complex<T>`

The resulting type after applying the `+` operator.

#### `fn add(self, other: Complex<T>) -> Complex<T>`[src]

Performs the `+` operation.

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

#### `fn add(self, other: &T) -> Complex<T>`[src]

Performs the `+` operation.

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

#### `fn eq(&self, other: &Complex<T>) -> bool`[src]

This method tests for `self` and `other` values to be equal, and is used by `==`. Read more

#### `fn ne(&self, other: &Complex<T>) -> bool`[src]

This method tests for `!=`.

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

#### `fn fmt(&self, f: &mut Formatter) -> Result<(), Error>`[src]

Formats the value using the given formatter. Read more

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

#### `fn clone(&self) -> Complex<T>`[src]

Returns a copy of the value. Read more

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

Performs copy-assignment from `source`. Read more

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

#### `fn sub(self, other: &T) -> Complex<T>`[src]

Performs the `-` operation.

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

#### `fn sub(self, other: &Complex<T>) -> Complex<T>`[src]

Performs the `-` operation.

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

#### `fn sub(self, other: &T) -> Complex<T>`[src]

Performs the `-` operation.

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

#### `fn sub(self, other: Complex<T>) -> Complex<T>`[src]

Performs the `-` operation.

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

#### `fn sub(self, other: T) -> Complex<T>`[src]

Performs the `-` operation.

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

#### `fn sub(self, other: &Complex<T>) -> Complex<T>`[src]

Performs the `-` operation.

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

#### `type Output = Complex<T>`

The resulting type after applying the `-` operator.

#### `fn sub(self, other: T) -> Complex<T>`[src]

Performs the `-` operation.

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

#### `type Output = Complex<T>`

The resulting type after applying the `-` operator.

#### `fn sub(self, other: Complex<T>) -> Complex<T>`[src]

Performs the `-` operation.

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

#### `fn fmt(&self, f: &mut Formatter) -> Result<(), Error>`[src]

Formats the value using the given formatter.

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

#### `fn mul(self, other: Complex<T>) -> Complex<T>`[src]

Performs the `*` operation.

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

#### `type Output = Complex<T>`

The resulting type after applying the `*` operator.

#### `fn mul(self, other: Complex<T>) -> Complex<T>`[src]

Performs the `*` operation.

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

#### `fn mul(self, other: &Complex<T>) -> Complex<T>`[src]

Performs the `*` operation.

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

#### `type Output = Complex<T>`

The resulting type after applying the `*` operator.

#### `fn mul(self, other: T) -> Complex<T>`[src]

Performs the `*` operation.

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

#### `fn mul(self, other: T) -> Complex<T>`[src]

Performs the `*` operation.

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

#### `fn mul(self, other: &Complex<T>) -> Complex<T>`[src]

Performs the `*` operation.

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

#### `fn mul(self, other: &T) -> Complex<T>`[src]

Performs the `*` operation.

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

#### `fn mul(self, other: &T) -> Complex<T>`[src]

Performs the `*` operation.

### `impl<'a, T> AddAssign<&'a Complex<T>> for Complex<T> where
T: Clone + NumAssign,` [src]

#### `fn add_assign(&mut self, other: &Complex<T>)`[src]

Performs the `+=` operation.

### `impl<T> AddAssign<T> for Complex<T> where
T: Clone + NumAssign,` [src]

#### `fn add_assign(&mut self, other: T)`[src]

Performs the `+=` operation.

### `impl<'a, T> AddAssign<&'a T> for Complex<T> where
T: Clone + NumAssign,` [src]

#### `fn add_assign(&mut self, other: &T)`[src]

Performs the `+=` operation.

### `impl<T> AddAssign<Complex<T>> for Complex<T> where
T: Clone + NumAssign,` [src]

#### `fn add_assign(&mut self, other: Complex<T>)`[src]

Performs the `+=` operation.

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

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

Feeds this value into the given [`Hasher`]. Read more

#### `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> Default for Complex<T> where
T: Default,` [src]

#### `fn default() -> Complex<T>`[src]

Returns the "default value" for a type. Read more

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

#### `type FromStrRadixErr = ParseComplexError<<T as Num>::FromStrRadixErr>`

#### `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> Neg for Complex<T> where
T: Neg<Output = T> + Clone + Num,` [src]

#### `type Output = Complex<T>`

The resulting type after applying the `-` operator.

#### `fn neg(self) -> Complex<T>`[src]

Performs the unary `-` operation.

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

#### `fn neg(self) -> Complex<T>`[src]

Performs the unary `-` operation.

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

#### `fn from(re: T) -> Complex<T>`[src]

Performs the conversion.

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

#### `fn from(re: &T) -> Complex<T>`[src]

Performs the conversion.

### `impl<'a, T> DivAssign<&'a Complex<T>> for Complex<T> where
T: Clone + NumAssign,` [src]

#### `fn div_assign(&mut self, other: &Complex<T>)`[src]

Performs the `/=` operation.

### `impl<'a, T> DivAssign<&'a T> for Complex<T> where
T: Clone + NumAssign,` [src]

#### `fn div_assign(&mut self, other: &T)`[src]

Performs the `/=` operation.

### `impl<T> DivAssign<Complex<T>> for Complex<T> where
T: Clone + NumAssign,` [src]

#### `fn div_assign(&mut self, other: Complex<T>)`[src]

Performs the `/=` operation.

### `impl<T> DivAssign<T> for Complex<T> where
T: Clone + NumAssign,` [src]

#### `fn div_assign(&mut self, other: T)`[src]

Performs the `/=` operation.

### `impl<'a, T> MulAssign<&'a T> for Complex<T> where
T: Clone + NumAssign,` [src]

#### `fn mul_assign(&mut self, other: &T)`[src]

Performs the `*=` operation.

### `impl<T> MulAssign<Complex<T>> for Complex<T> where
T: Clone + NumAssign,` [src]

#### `fn mul_assign(&mut self, other: Complex<T>)`[src]

Performs the `*=` operation.

### `impl<'a, T> MulAssign<&'a Complex<T>> for Complex<T> where
T: Clone + NumAssign,` [src]

#### `fn mul_assign(&mut self, other: &Complex<T>)`[src]

Performs the `*=` operation.

### `impl<T> MulAssign<T> for Complex<T> where
T: Clone + NumAssign,` [src]

#### `fn mul_assign(&mut self, other: T)`[src]

Performs the `*=` operation.

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

#### `fn fmt(&self, f: &mut Formatter) -> Result<(), Error>`[src]

Formats the value using the given formatter.

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

#### `fn decode<__D>(d: &mut __D) -> Result<Complex<T>, <__D as Decoder>::Error> where
__D: Decoder,` [src]

Deserialize a value using a `Decoder`.

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

#### `fn fmt(&self, f: &mut Formatter) -> Result<(), Error>`[src]

Formats the value using the given formatter.

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

#### `type Output = Complex<T>`

The resulting type after applying the `/` operator.

#### `fn div(self, other: T) -> Complex<T>`[src]

Performs the `/` operation.

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

#### `fn div(self, other: &T) -> Complex<T>`[src]

Performs the `/` operation.

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

#### `fn div(self, other: Complex<T>) -> Complex<T>`[src]

Performs the `/` operation.

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

#### `fn div(self, other: &Complex<T>) -> Complex<T>`[src]

Performs the `/` operation.

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

#### `type Output = Complex<T>`

The resulting type after applying the `/` operator.

#### `fn div(self, other: Complex<T>) -> Complex<T>`[src]

Performs the `/` operation.

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

#### `fn div(self, other: &Complex<T>) -> Complex<T>`[src]

Performs the `/` operation.

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

#### `fn div(self, other: T) -> Complex<T>`[src]

Performs the `/` operation.

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

#### `fn div(self, other: &T) -> Complex<T>`[src]

Performs the `/` operation.

### `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> Copy for Complex<T> where
T: Copy,` [src]

## Auto Trait Implementations

### `impl<T> Send for Complex<T> where
T: Send,`

### `impl<T> Unpin for Complex<T> where
T: Unpin,`

### `impl<T> Sync for Complex<T> where
T: Sync,`

### `impl<T> UnwindSafe for Complex<T> where
T: UnwindSafe,`

### `impl<T> RefUnwindSafe for Complex<T> where
T: RefUnwindSafe,`

## Blanket Implementations

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

#### `type Owned = T`

The resulting type after obtaining ownership.

#### `fn to_owned(&self) -> T`[src]

Creates owned data from borrowed data, usually by cloning. Read more

#### `fn clone_into(&self, target: &mut T)`[src]

🔬 This is a nightly-only experimental API. (`toowned_clone_into`)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

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

#### `fn into(self) -> U`[src]

Performs the conversion.

### `impl<T> From<T> for T`[src]

#### `fn from(t: T) -> T`[src]

Performs the conversion.

### `impl<T> ToString for T where
T: Display + ?Sized,` [src]

#### `default fn to_string(&self) -> String`[src]

Converts the given value to a `String`. Read more

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

#### `type Error = Infallible`

The type returned in the event of a conversion error.

#### `fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>`[src]

Performs the conversion.

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

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

The type returned in the event of a conversion error.

#### `fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>`[src]

Performs the conversion.

### `impl<T> BorrowMut<T> for T where
T: ?Sized,` [src]

#### `fn borrow_mut(&mut self) -> &mut T`[src]

Mutably borrows from an owned value. Read more

### `impl<T> Borrow<T> for T where
T: ?Sized,` [src]

#### `fn borrow(&self) -> &T`[src]

Immutably borrows from an owned value. Read more

### `impl<T> Any for T where
T: 'static + ?Sized,` [src]

#### `fn type_id(&self) -> TypeId`[src]

Gets the `TypeId` of `self`. Read more

### `impl<T, Rhs, Output> NumOps<Rhs, Output> for T where
T: Sub<Rhs, Output = Output> + Mul<Rhs, Output = Output> + Div<Rhs, Output = Output> + Add<Rhs, Output = Output> + Rem<Rhs, Output = Output>,` [src]

### `impl<T> NumRef for T where
T: Num + NumOps<&'r T, T>,` [src]

### `impl<T, Base> RefNum<Base> for T where
T: NumOps<Base, Base> + NumOps<&'r Base, Base>,` [src]

### `impl<T, Rhs> NumAssignOps<Rhs> for T where
T: AddAssign<Rhs> + SubAssign<Rhs> + MulAssign<Rhs> + DivAssign<Rhs> + RemAssign<Rhs>,` [src]

### `impl<T> NumAssign for T where
T: Num + NumAssignOps<T>,` [src]

### `impl<T> NumAssignRef for T where
T: NumAssign + NumAssignOps<&'r T>,` [src]

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g., `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g., `vec -> usize` or `* -> vec`)

Search multiple things at once by splitting your query with comma (e.g., `str,u8` or `String,struct:Vec,test`)