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]

Create a new Complex

Returns imaginary unit

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

Multiplies self by the scalar t.

Divides self by the scalar t.

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

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

Returns 1/self

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

Calculate |self|

Calculate the principal Arg of self.

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

  • theta)`

Convert a polar representation into a complex number.

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

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

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.

Raises self to a floating point power.

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

Raises self to a complex power.

Raises a floating point number to the complex power self.

Computes the sine of self.

Computes the cosine of self.

Computes the tangent of 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.

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

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.

Computes the hyperbolic sine of self.

Computes the hyperbolic cosine of self.

Computes the hyperbolic tangent of 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.

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

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.

Checks if the given complex number is NaN

Checks if the given complex number is infinite

Checks if the given complex number is finite

Checks if the given complex number is normal

Trait Implementations

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

The method for the += operator

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

The method for the -= operator

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

The method for the *= operator

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

The method for the /= operator

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

The method for the += operator

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

The method for the -= operator

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

The method for the *= operator

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

The method for the /= operator

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

The method for the += operator

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

The method for the += operator

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

The method for the -= operator

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

The method for the -= operator

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

The method for the *= operator

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

The method for the *= operator

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

The method for the /= operator

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

The method for the /= operator

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

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

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]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

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

Feeds this value into the state given, updating the hasher as necessary.

Feeds a slice of this type into the state provided.

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

Formats the value using the given formatter.

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

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

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

Serialize a value using an Encoder.

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

Deserialize a value using a Decoder.

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

Performs the conversion.

impl<'a, T: Clone + Num> From<&'a T> for Complex<T>
[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

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

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

The method for the + operator

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

The resulting type after applying the + operator

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

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

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

The method for the - operator

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

The resulting type after applying the - operator

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

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

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

The method for the * operator

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

The resulting type after applying the * operator

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

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

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

The method for the / operator

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

The resulting type after applying the / operator

The method for the / operator

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

The resulting type after applying the - operator

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

The method for the unary - operator

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

The resulting type after applying the + operator

The method for the + operator

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

The resulting type after applying the - operator

The method for the - operator

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

The resulting type after applying the * operator

The method for the * operator

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

The resulting type after applying the / operator

The method for the / operator

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

The resulting type after applying the + operator

The method for the + operator

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

The resulting type after applying the + operator

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

The method for the + operator

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

The resulting type after applying the - operator

The method for the - operator

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

The resulting type after applying the - operator

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

The method for the - operator

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

The resulting type after applying the * operator

The method for the * operator

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

The resulting type after applying the * operator

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

The method for the * operator

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

The resulting type after applying the / operator

The method for the / operator

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

The resulting type after applying the / operator

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

The method for the / operator

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

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

Returns true if self is equal to the additive identity.

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

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

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

Formats the value using the given formatter. Read more

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

Formats the value using the given formatter.

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

Formats the value using the given formatter.

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

Formats the value using the given formatter.

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

Formats the value using the given formatter.

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

Formats the value using the given formatter.

impl<T> Binary for Complex<T> where
    T: Binary + Num + PartialOrd + Clone
[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.

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