# Struct num::complex::Complex
[−]
[src]

pub struct Complex<T> { pub re: T, pub im: T, }

A complex number in Cartesian form.

## Fields

`re` | Real portion of the complex number |

`im` | Imaginary portion of the complex number |

## Methods

`impl<T> Complex<T> where T: Clone + Num`

`fn new(re: T, im: T) -> Complex<T>`

Create a new Complex

`fn i() -> Complex<T>`

Returns imaginary unit

`fn norm_sqr(&self) -> T`

Returns the square of the norm (since `T`

doesn't necessarily
have a sqrt function), i.e. `re^2 + im^2`

.

`fn scale(&self, t: T) -> Complex<T>`

Multiplies `self`

by the scalar `t`

.

`fn unscale(&self, t: T) -> Complex<T>`

Divides `self`

by the scalar `t`

.

`impl<T> Complex<T> where T: Neg<Output=T> + Clone + Num`

`fn conj(&self) -> Complex<T>`

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

`fn inv(&self) -> Complex<T>`

Returns `1/self`

`impl<T> Complex<T> where T: Clone + Float`

`fn norm(&self) -> T`

Calculate |self|

`fn arg(&self) -> T`

Calculate the principal Arg of self.

`fn to_polar(&self) -> (T, T)`

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

`fn from_polar(r: &T, theta: &T) -> Complex<T>`

Convert a polar representation into a complex number.

`fn exp(&self) -> Complex<T>`

Computes `e^(self)`

, where `e`

is the base of the natural logarithm.

`fn ln(&self) -> Complex<T>`

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

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 sin(&self) -> Complex<T>`

Computes the sine of `self`

.

`fn cos(&self) -> Complex<T>`

Computes the cosine of `self`

.

`fn tan(&self) -> Complex<T>`

Computes the tangent of `self`

.

`fn asin(&self) -> Complex<T>`

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

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

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

Computes the hyperbolic sine of `self`

.

`fn cosh(&self) -> Complex<T>`

Computes the hyperbolic cosine of `self`

.

`fn tanh(&self) -> Complex<T>`

Computes the hyperbolic tangent of `self`

.

`fn asinh(&self) -> Complex<T>`

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

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

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`

.

`fn is_nan(self) -> bool`

Checks if the given complex number is NaN

`fn is_infinite(self) -> bool`

Checks if the given complex number is infinite

`fn is_finite(self) -> bool`

Checks if the given complex number is finite

`fn is_normal(self) -> bool`

Checks if the given complex number is normal