Struct num_complex::Complex [] [src]

#[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);
}Run

Fields

Real portion of the complex number

Imaginary portion of the complex number

Methods

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

[src]

Create a new Complex

[src]

Returns imaginary unit

[src]

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

[src]

Multiplies self by the scalar t.

[src]

Divides self by the scalar t.

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

[src]

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

[src]

Returns 1/self

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

[src]

Calculate |self|

[src]

Calculate the principal Arg of self.

[src]

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

[src]

Convert a polar representation into a complex number.

[src]

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

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

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

[src]

Raises self to a floating point power.

[src]

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

[src]

Raises self to a complex power.

[src]

Raises a floating point number to the complex power self.

[src]

Computes the sine of self.

[src]

Computes the cosine of self.

[src]

Computes the tangent of self.

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

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

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

[src]

Computes the hyperbolic sine of self.

[src]

Computes the hyperbolic cosine of self.

[src]

Computes the hyperbolic tangent of self.

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

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

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

[src]

Checks if the given complex number is NaN

[src]

Checks if the given complex number is infinite

[src]

Checks if the given complex number is finite

[src]

Checks if the given complex number is normal

Trait Implementations

impl<T: Clone + NumAssign> AddAssign for Complex<T>
[src]

[src]

The method for the += operator

impl<T: Clone + NumAssign> SubAssign for Complex<T>
[src]

[src]

The method for the -= operator

impl<T: Clone + NumAssign> MulAssign for Complex<T>
[src]

[src]

The method for the *= operator

impl<T: Clone + NumAssign> DivAssign for Complex<T>
[src]

[src]

The method for the /= operator

impl<T: Clone + NumAssign> AddAssign<T> for Complex<T>
[src]

[src]

The method for the += operator

impl<T: Clone + NumAssign> SubAssign<T> for Complex<T>
[src]

[src]

The method for the -= operator

impl<T: Clone + NumAssign> MulAssign<T> for Complex<T>
[src]

[src]

The method for the *= operator

impl<T: Clone + NumAssign> DivAssign<T> for Complex<T>
[src]

[src]

The method for the /= operator

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

[src]

The method for the += operator

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

[src]

The method for the += operator

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

[src]

The method for the -= operator

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

[src]

The method for the -= operator

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

[src]

The method for the *= operator

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

[src]

The method for the *= operator

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

[src]

The method for the /= operator

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

[src]

The method for the /= operator

impl<T: PartialEq> PartialEq for Complex<T>
[src]

[src]

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

[src]

This method tests for !=.

impl<T: Eq> Eq for Complex<T>
[src]

impl<T: Copy> Copy for Complex<T>
[src]

impl<T: Clone> Clone for Complex<T>
[src]

[src]

Returns a copy of the value. Read more

1.0.0
[src]

Performs copy-assignment from source. Read more

impl<T: Hash> Hash for Complex<T>
[src]

[src]

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

1.3.0
[src]

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

impl<T: Debug> Debug for Complex<T>
[src]

[src]

Formats the value using the given formatter.

impl<T: Default> Default for Complex<T>
[src]

[src]

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

impl<T: Encodable> Encodable for Complex<T>
[src]

[src]

Serialize a value using an Encoder.

impl<T: Decodable> Decodable for Complex<T>
[src]

[src]

Deserialize a value using a Decoder.

impl<T: Clone + Num> From<T> for Complex<T>
[src]

[src]

Performs the conversion.

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

[src]

Performs the conversion.

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

The resulting type after applying the + operator

[src]

The method for the + operator

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

The resulting type after applying the + operator

[src]

The method for the + operator

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

The resulting type after applying the + operator

[src]

The method for the + operator

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

The resulting type after applying the + operator

[src]

The method for the + operator

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

The resulting type after applying the - operator

[src]

The method for the - operator

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

The resulting type after applying the - operator

[src]

The method for the - operator

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

The resulting type after applying the - operator

[src]

The method for the - operator

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

The resulting type after applying the - operator

[src]

The method for the - operator

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

The resulting type after applying the * operator

[src]

The method for the * operator

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

The resulting type after applying the * operator

[src]

The method for the * operator

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

The resulting type after applying the * operator

[src]

The method for the * operator

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

The resulting type after applying the * operator

[src]

The method for the * operator

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

The resulting type after applying the / operator

[src]

The method for the / operator

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

The resulting type after applying the / operator

[src]

The method for the / operator

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

The resulting type after applying the / operator

[src]

The method for the / operator

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

The resulting type after applying the / operator

[src]

The method for the / operator

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

The resulting type after applying the - operator

[src]

The method for the unary - operator

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

The resulting type after applying the - operator

[src]

The method for the unary - operator

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

The resulting type after applying the + operator

[src]

The method for the + operator

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

The resulting type after applying the - operator

[src]

The method for the - operator

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

The resulting type after applying the * operator

[src]

The method for the * operator

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

The resulting type after applying the / operator

[src]

The method for the / operator

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

The resulting type after applying the + operator

[src]

The method for the + operator

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

The resulting type after applying the + operator

[src]

The method for the + operator

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

The resulting type after applying the + operator

[src]

The method for the + operator

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

The resulting type after applying the - operator

[src]

The method for the - operator

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

The resulting type after applying the - operator

[src]

The method for the - operator

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

The resulting type after applying the - operator

[src]

The method for the - operator

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

The resulting type after applying the * operator

[src]

The method for the * operator

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

The resulting type after applying the * operator

[src]

The method for the * operator

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

The resulting type after applying the * operator

[src]

The method for the * operator

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

The resulting type after applying the / operator

[src]

The method for the / operator

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

The resulting type after applying the / operator

[src]

The method for the / operator

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

The resulting type after applying the / operator

[src]

The method for the / operator

impl<T: Clone + Num> Zero for Complex<T>
[src]

[src]

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

[src]

Returns true if self is equal to the additive identity.

impl<T: Clone + Num> One for Complex<T>
[src]

[src]

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

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

[src]

Formats the value using the given formatter. Read more

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

[src]

Formats the value using the given formatter.

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

[src]

Formats the value using the given formatter.

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

[src]

Formats the value using the given formatter.

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

[src]

Formats the value using the given formatter.

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

[src]

Formats the value using the given formatter.

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

[src]

Formats the value using the given formatter.

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

The associated error which can be returned from parsing.

[src]

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