Struct num_complex::Complex
source · [−]#[repr(C)]pub struct Complex<T> {
pub re: T,
pub im: T,
}
Expand description
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
Implementations
sourceimpl<T: Clone + Num> Complex<T>
impl<T: Clone + Num> Complex<T>
sourceimpl<T: Clone + Signed> Complex<T>
impl<T: Clone + Signed> Complex<T>
sourcepub fn l1_norm(&self) -> T
pub fn l1_norm(&self) -> T
Returns the L1 norm |re| + |im|
– the Manhattan distance from the origin.
sourceimpl<T: FloatCore> Complex<T>
impl<T: FloatCore> Complex<T>
sourcepub fn is_infinite(self) -> bool
pub fn is_infinite(self) -> bool
Checks if the given complex number is infinite
Trait Implementations
sourceimpl<'a, T: Clone + NumAssign> AddAssign<&'a Complex<T>> for Complex<T>
impl<'a, T: Clone + NumAssign> AddAssign<&'a Complex<T>> for Complex<T>
sourcefn add_assign(&mut self, other: &Self)
fn add_assign(&mut self, other: &Self)
Performs the +=
operation. Read more
sourceimpl<'a, T: Clone + NumAssign> AddAssign<&'a T> for Complex<T>
impl<'a, T: Clone + NumAssign> AddAssign<&'a T> for Complex<T>
sourcefn add_assign(&mut self, other: &T)
fn add_assign(&mut self, other: &T)
Performs the +=
operation. Read more
sourceimpl<T: Clone + NumAssign> AddAssign<Complex<T>> for Complex<T>
impl<T: Clone + NumAssign> AddAssign<Complex<T>> for Complex<T>
sourcefn add_assign(&mut self, other: Self)
fn add_assign(&mut self, other: Self)
Performs the +=
operation. Read more
sourceimpl<T: Clone + NumAssign> AddAssign<T> for Complex<T>
impl<T: Clone + NumAssign> AddAssign<T> for Complex<T>
sourcefn add_assign(&mut self, other: T)
fn add_assign(&mut self, other: T)
Performs the +=
operation. Read more
sourceimpl<T, U> AsPrimitive<U> for Complex<T> where
T: AsPrimitive<U>,
U: 'static + Copy,
impl<T, U> AsPrimitive<U> for Complex<T> where
T: AsPrimitive<U>,
U: 'static + Copy,
sourceimpl<'a, T: Clone + NumAssign> DivAssign<&'a Complex<T>> for Complex<T>
impl<'a, T: Clone + NumAssign> DivAssign<&'a Complex<T>> for Complex<T>
sourcefn div_assign(&mut self, other: &Self)
fn div_assign(&mut self, other: &Self)
Performs the /=
operation. Read more
sourceimpl<'a, T: Clone + NumAssign> DivAssign<&'a T> for Complex<T>
impl<'a, T: Clone + NumAssign> DivAssign<&'a T> for Complex<T>
sourcefn div_assign(&mut self, other: &T)
fn div_assign(&mut self, other: &T)
Performs the /=
operation. Read more
sourceimpl<T: Clone + NumAssign> DivAssign<Complex<T>> for Complex<T>
impl<T: Clone + NumAssign> DivAssign<Complex<T>> for Complex<T>
sourcefn div_assign(&mut self, other: Self)
fn div_assign(&mut self, other: Self)
Performs the /=
operation. Read more
sourceimpl<T: Clone + NumAssign> DivAssign<T> for Complex<T>
impl<T: Clone + NumAssign> DivAssign<T> for Complex<T>
sourcefn div_assign(&mut self, other: T)
fn div_assign(&mut self, other: T)
Performs the /=
operation. Read more
sourceimpl<T: FromPrimitive + Num> FromPrimitive for Complex<T>
impl<T: FromPrimitive + Num> FromPrimitive for Complex<T>
sourcefn from_usize(n: usize) -> Option<Self>
fn from_usize(n: usize) -> Option<Self>
Converts a usize
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read more
sourcefn from_isize(n: isize) -> Option<Self>
fn from_isize(n: isize) -> Option<Self>
Converts an isize
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read more
sourcefn from_u8(n: u8) -> Option<Self>
fn from_u8(n: u8) -> Option<Self>
Converts an u8
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read more
sourcefn from_u16(n: u16) -> Option<Self>
fn from_u16(n: u16) -> Option<Self>
Converts an u16
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read more
sourcefn from_u32(n: u32) -> Option<Self>
fn from_u32(n: u32) -> Option<Self>
Converts an u32
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read more
sourcefn from_u64(n: u64) -> Option<Self>
fn from_u64(n: u64) -> Option<Self>
Converts an u64
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read more
sourcefn from_i8(n: i8) -> Option<Self>
fn from_i8(n: i8) -> Option<Self>
Converts an i8
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read more
sourcefn from_i16(n: i16) -> Option<Self>
fn from_i16(n: i16) -> Option<Self>
Converts an i16
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read more
sourcefn from_i32(n: i32) -> Option<Self>
fn from_i32(n: i32) -> Option<Self>
Converts an i32
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read more
sourcefn from_i64(n: i64) -> Option<Self>
fn from_i64(n: i64) -> Option<Self>
Converts an i64
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read more
sourcefn from_u128(n: u128) -> Option<Self>
fn from_u128(n: u128) -> Option<Self>
Converts an u128
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read more
sourcefn from_i128(n: i128) -> Option<Self>
fn from_i128(n: i128) -> Option<Self>
Converts an i128
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read more
sourceimpl<'a, 'b, T: Clone + Num + MulAdd<Output = T>> MulAdd<&'b Complex<T>, &'a Complex<T>> for &'a Complex<T>
impl<'a, 'b, T: Clone + Num + MulAdd<Output = T>> MulAdd<&'b Complex<T>, &'a Complex<T>> for &'a Complex<T>
sourceimpl<'a, 'b, T: Clone + NumAssign + MulAddAssign> MulAddAssign<&'a Complex<T>, &'b Complex<T>> for Complex<T>
impl<'a, 'b, T: Clone + NumAssign + MulAddAssign> MulAddAssign<&'a Complex<T>, &'b Complex<T>> for Complex<T>
sourcefn mul_add_assign(&mut self, other: &Complex<T>, add: &Complex<T>)
fn mul_add_assign(&mut self, other: &Complex<T>, add: &Complex<T>)
Performs the fused multiply-add operation.
sourceimpl<T: Clone + NumAssign + MulAddAssign> MulAddAssign<Complex<T>, Complex<T>> for Complex<T>
impl<T: Clone + NumAssign + MulAddAssign> MulAddAssign<Complex<T>, Complex<T>> for Complex<T>
sourcefn mul_add_assign(&mut self, other: Complex<T>, add: Complex<T>)
fn mul_add_assign(&mut self, other: Complex<T>, add: Complex<T>)
Performs the fused multiply-add operation.
sourceimpl<'a, T: Clone + NumAssign> MulAssign<&'a Complex<T>> for Complex<T>
impl<'a, T: Clone + NumAssign> MulAssign<&'a Complex<T>> for Complex<T>
sourcefn mul_assign(&mut self, other: &Self)
fn mul_assign(&mut self, other: &Self)
Performs the *=
operation. Read more
sourceimpl<'a, T: Clone + NumAssign> MulAssign<&'a T> for Complex<T>
impl<'a, T: Clone + NumAssign> MulAssign<&'a T> for Complex<T>
sourcefn mul_assign(&mut self, other: &T)
fn mul_assign(&mut self, other: &T)
Performs the *=
operation. Read more
sourceimpl<T: Clone + NumAssign> MulAssign<Complex<T>> for Complex<T>
impl<T: Clone + NumAssign> MulAssign<Complex<T>> for Complex<T>
sourcefn mul_assign(&mut self, other: Self)
fn mul_assign(&mut self, other: Self)
Performs the *=
operation. Read more
sourceimpl<T: Clone + NumAssign> MulAssign<T> for Complex<T>
impl<T: Clone + NumAssign> MulAssign<T> for Complex<T>
sourcefn mul_assign(&mut self, other: T)
fn mul_assign(&mut self, other: T)
Performs the *=
operation. Read more
sourceimpl<T: Num + Clone> Num for Complex<T>
impl<T: Num + Clone> Num for Complex<T>
sourcefn from_str_radix(s: &str, radix: u32) -> Result<Self, Self::FromStrRadixErr>
fn from_str_radix(s: &str, radix: u32) -> Result<Self, Self::FromStrRadixErr>
Parses a +/- bi
; ai +/- b
; a
; or bi
where a
and b
are of type T
type FromStrRadixErr = ParseComplexError<T::FromStrRadixErr>
sourceimpl<T: NumCast + Num> NumCast for Complex<T>
impl<T: NumCast + Num> NumCast for Complex<T>
sourcefn from<U: ToPrimitive>(n: U) -> Option<Self>
fn from<U: ToPrimitive>(n: U) -> Option<Self>
Creates a number from another value that can be converted into
a primitive via the ToPrimitive
trait. If the source value cannot be
represented by the target type, then None
is returned. Read more
sourceimpl<'a, T: Clone + NumAssign> RemAssign<&'a Complex<T>> for Complex<T>
impl<'a, T: Clone + NumAssign> RemAssign<&'a Complex<T>> for Complex<T>
sourcefn rem_assign(&mut self, other: &Self)
fn rem_assign(&mut self, other: &Self)
Performs the %=
operation. Read more
sourceimpl<'a, T: Clone + NumAssign> RemAssign<&'a T> for Complex<T>
impl<'a, T: Clone + NumAssign> RemAssign<&'a T> for Complex<T>
sourcefn rem_assign(&mut self, other: &T)
fn rem_assign(&mut self, other: &T)
Performs the %=
operation. Read more
sourceimpl<T: Clone + NumAssign> RemAssign<Complex<T>> for Complex<T>
impl<T: Clone + NumAssign> RemAssign<Complex<T>> for Complex<T>
sourcefn rem_assign(&mut self, modulus: Self)
fn rem_assign(&mut self, modulus: Self)
Performs the %=
operation. Read more
sourceimpl<T: Clone + NumAssign> RemAssign<T> for Complex<T>
impl<T: Clone + NumAssign> RemAssign<T> for Complex<T>
sourcefn rem_assign(&mut self, other: T)
fn rem_assign(&mut self, other: T)
Performs the %=
operation. Read more
sourceimpl<'a, T: Clone + NumAssign> SubAssign<&'a Complex<T>> for Complex<T>
impl<'a, T: Clone + NumAssign> SubAssign<&'a Complex<T>> for Complex<T>
sourcefn sub_assign(&mut self, other: &Self)
fn sub_assign(&mut self, other: &Self)
Performs the -=
operation. Read more
sourceimpl<'a, T: Clone + NumAssign> SubAssign<&'a T> for Complex<T>
impl<'a, T: Clone + NumAssign> SubAssign<&'a T> for Complex<T>
sourcefn sub_assign(&mut self, other: &T)
fn sub_assign(&mut self, other: &T)
Performs the -=
operation. Read more
sourceimpl<T: Clone + NumAssign> SubAssign<Complex<T>> for Complex<T>
impl<T: Clone + NumAssign> SubAssign<Complex<T>> for Complex<T>
sourcefn sub_assign(&mut self, other: Self)
fn sub_assign(&mut self, other: Self)
Performs the -=
operation. Read more
sourceimpl<T: Clone + NumAssign> SubAssign<T> for Complex<T>
impl<T: Clone + NumAssign> SubAssign<T> for Complex<T>
sourcefn sub_assign(&mut self, other: T)
fn sub_assign(&mut self, other: T)
Performs the -=
operation. Read more
sourceimpl<T: ToPrimitive + Num> ToPrimitive for Complex<T>
impl<T: ToPrimitive + Num> ToPrimitive for Complex<T>
sourcefn to_usize(&self) -> Option<usize>
fn to_usize(&self) -> Option<usize>
Converts the value of self
to a usize
. If the value cannot be
represented by a usize
, then None
is returned. Read more
sourcefn to_isize(&self) -> Option<isize>
fn to_isize(&self) -> Option<isize>
Converts the value of self
to an isize
. If the value cannot be
represented by an isize
, then None
is returned. Read more
sourcefn to_u8(&self) -> Option<u8>
fn to_u8(&self) -> Option<u8>
Converts the value of self
to a u8
. If the value cannot be
represented by a u8
, then None
is returned. Read more
sourcefn to_u16(&self) -> Option<u16>
fn to_u16(&self) -> Option<u16>
Converts the value of self
to a u16
. If the value cannot be
represented by a u16
, then None
is returned. Read more
sourcefn to_u32(&self) -> Option<u32>
fn to_u32(&self) -> Option<u32>
Converts the value of self
to a u32
. If the value cannot be
represented by a u32
, then None
is returned. Read more
sourcefn to_u64(&self) -> Option<u64>
fn to_u64(&self) -> Option<u64>
Converts the value of self
to a u64
. If the value cannot be
represented by a u64
, then None
is returned. Read more
sourcefn to_i8(&self) -> Option<i8>
fn to_i8(&self) -> Option<i8>
Converts the value of self
to an i8
. If the value cannot be
represented by an i8
, then None
is returned. Read more
sourcefn to_i16(&self) -> Option<i16>
fn to_i16(&self) -> Option<i16>
Converts the value of self
to an i16
. If the value cannot be
represented by an i16
, then None
is returned. Read more
sourcefn to_i32(&self) -> Option<i32>
fn to_i32(&self) -> Option<i32>
Converts the value of self
to an i32
. If the value cannot be
represented by an i32
, then None
is returned. Read more
sourcefn to_i64(&self) -> Option<i64>
fn to_i64(&self) -> Option<i64>
Converts the value of self
to an i64
. If the value cannot be
represented by an i64
, then None
is returned. Read more
sourcefn to_u128(&self) -> Option<u128>
fn to_u128(&self) -> Option<u128>
Converts the value of self
to a u128
. If the value cannot be
represented by a u128
(u64
under the default implementation), then
None
is returned. Read more
sourcefn to_i128(&self) -> Option<i128>
fn to_i128(&self) -> Option<i128>
Converts the value of self
to an i128
. If the value cannot be
represented by an i128
(i64
under the default implementation), then
None
is returned. Read more
impl<T: Copy> Copy for Complex<T>
impl<T: Eq> Eq for Complex<T>
impl<T> StructuralEq for Complex<T>
impl<T> StructuralPartialEq for Complex<T>
Auto Trait Implementations
impl<T> RefUnwindSafe for Complex<T> where
T: RefUnwindSafe,
impl<T> Send for Complex<T> where
T: Send,
impl<T> Sync for Complex<T> where
T: Sync,
impl<T> Unpin for Complex<T> where
T: Unpin,
impl<T> UnwindSafe for Complex<T> where
T: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more