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

Real portion of the complex number

Imaginary portion of the complex number

Methods

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

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

Returns 1/self

impl<T> Complex<T> where
    T: Clone + Float
[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.

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

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> Zero for Complex<T> where
    T: Clone + Num
[src]

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

Returns true if self is equal to the additive identity.

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

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

Method which takes an iterator and generates Self from the elements by "summing up" the items. Read more

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

Method which takes an iterator and generates Self from the elements by "summing up" the items. Read more

impl<T> UpperExp for Complex<T> where
    T: UpperExp + Num + PartialOrd<T> + 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

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

Converts the value of self to a usize.

Converts the value of self to an isize.

Converts the value of self to an u8.

Converts the value of self to an u16.

Converts the value of self to an u32.

Converts the value of self to an u64.

Converts the value of self to an i8.

Converts the value of self to an i16.

Converts the value of self to an i32.

Converts the value of self to an i64.

Converts the value of self to an u128. Read more

Converts the value of self to an i128. Read more

Converts the value of self to an f32.

Converts the value of self to an f64.

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

Convert a usize to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

Convert an isize to return an optional value of this type. If the value cannot be represented by this value, then None is returned. Read more

Convert an u8 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

Convert an u16 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

Convert an u32 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

Convert an u64 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

Convert an i8 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

Convert an i16 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

Convert an i32 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

Convert an i64 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

Convert an u128 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

Convert an i128 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

Convert a f32 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

Convert a f64 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

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

The resulting type after applying the + operator.

Performs the + operation.

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

The resulting type after applying the + operator.

Performs the + operation.

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

The resulting type after applying the + operator.

Performs the + operation.

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

The resulting type after applying the + operator.

Performs the + operation.

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

The resulting type after applying the + operator.

Performs the + operation.

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

The resulting type after applying the + operator.

Performs the + operation.

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

The resulting type after applying the + operator.

Performs the + operation.

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

The resulting type after applying the + operator.

Performs the + operation.

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

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

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

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

Performs the *= operation.

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

Performs the *= operation.

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

Performs the *= operation.

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

Performs the *= operation.

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

Performs the += operation.

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

Performs the += operation.

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

Performs the += operation.

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

Performs the += operation.

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

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

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

The resulting type after applying the % operator.

Performs the % operation.

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

The resulting type after applying the % operator.

Performs the % operation.

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

The resulting type after applying the % operator.

Performs the % operation.

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

The resulting type after applying the % operator.

Performs the % operation.

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

The resulting type after applying the % operator.

Performs the % operation.

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

The resulting type after applying the % operator.

Performs the % operation.

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

The resulting type after applying the % operator.

Performs the % operation.

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

The resulting type after applying the % operator.

Performs the % operation.

impl<T> PartialEq<Complex<T>> for Complex<T> where
    T: PartialEq<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> Mul<T> for Complex<T> where
    T: Clone + Num
[src]

The resulting type after applying the * operator.

Performs the * operation.

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

The resulting type after applying the * operator.

Performs the * operation.

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

The resulting type after applying the * operator.

Performs the * operation.

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

The resulting type after applying the * operator.

Performs the * operation.

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

The resulting type after applying the * operator.

Performs the * operation.

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

The resulting type after applying the * operator.

Performs the * operation.

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

The resulting type after applying the * operator.

Performs the * operation.

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

The resulting type after applying the * operator.

Performs the * operation.

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

Performs the %= operation.

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

Performs the %= operation.

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

Performs the %= operation.

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

Performs the %= operation.

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

Performs the conversion.

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

Performs the conversion.

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

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

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

Formats the value using the given formatter.

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

The result after applying the operator.

Returns the multiplicative inverse of self. Read more

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

The result after applying the operator.

Returns the multiplicative inverse of self. Read more

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

The resulting type after applying the - operator.

Performs the - operation.

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

The resulting type after applying the - operator.

Performs the - operation.

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

The resulting type after applying the - operator.

Performs the - operation.

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

The resulting type after applying the - operator.

Performs the - operation.

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

The resulting type after applying the - operator.

Performs the - operation.

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

The resulting type after applying the - operator.

Performs the - operation.

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

The resulting type after applying the - operator.

Performs the - operation.

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

The resulting type after applying the - operator.

Performs the - operation.

impl<T, U> AsPrimitive<U> for Complex<T> where
    T: AsPrimitive<U>,
    U: 'static + Copy
[src]

Convert a value to another, using the as operator.

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

Formats the value using the given formatter. Read more

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

Method which takes an iterator and generates Self from the elements by multiplying the items. Read more

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

Method which takes an iterator and generates Self from the elements by multiplying the items. Read more

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

The resulting type after applying the - operator.

Performs the unary - operation.

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

The resulting type after applying the - operator.

Performs the unary - operation.

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

Formats the value using the given formatter. Read more

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

Performs the /= operation.

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

Performs the /= operation.

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

Performs the /= operation.

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

Performs the /= operation.

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

Formats the value using the given formatter.

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

The resulting type after applying the / operator.

Performs the / operation.

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

The resulting type after applying the / operator.

Performs the / operation.

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

The resulting type after applying the / operator.

Performs the / operation.

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

The resulting type after applying the / operator.

Performs the / operation.

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

The resulting type after applying the / operator.

Performs the / operation.

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

The resulting type after applying the / operator.

Performs the / operation.

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

The resulting type after applying the / operator.

Performs the / operation.

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

The resulting type after applying the / operator.

Performs the / operation.

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

Performs the -= operation.

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

Performs the -= operation.

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

Performs the -= operation.

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

Performs the -= operation.

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

Formats the value using the given formatter.

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

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

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

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

Formats the value using the given formatter.

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

Creates a number from another value that can be converted into a primitive via the ToPrimitive trait. Read more

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

Formats the value using the given formatter.

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

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

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

Auto Trait Implementations

impl<T> Send for Complex<T> where
    T: Send

impl<T> Sync for Complex<T> where
    T: Sync

Blanket Implementations

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

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

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T> From for T
[src]

Performs the conversion.

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

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

The type returned in the event of a conversion error.

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

Performs the conversion.

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

Performs the conversion.

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

Immutably borrows from an owned value. Read more

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

Mutably borrows from an owned value. Read more

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

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

this method will likely be replaced by an associated static

Gets the TypeId of self. Read more

impl<T, Rhs, Output> NumOps 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 for T where
    T: NumOps<Base, Base> + NumOps<&'r Base, Base>, 
[src]

impl<T, Rhs> NumAssignOps 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]

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

Converts the given value to a String. Read more

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

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

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

recently added

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