[−][src]Struct nalgebra::Complex
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
Methods
impl<T> Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
pub fn new(re: T, im: T) -> Complex<T>
[src]
Create a new Complex
pub fn i() -> Complex<T>
[src]
Returns imaginary unit
pub fn norm_sqr(&self) -> T
[src]
Returns the square of the norm (since T
doesn't necessarily
have a sqrt function), i.e. re^2 + im^2
.
pub fn scale(&self, t: T) -> Complex<T>
[src]
Multiplies self
by the scalar t
.
pub fn unscale(&self, t: T) -> Complex<T>
[src]
Divides self
by the scalar t
.
pub fn powu(&self, exp: u32) -> Complex<T>
[src]
Raises self
to an unsigned integer power.
impl<T> Complex<T> where
T: Neg<Output = T> + Clone + Num,
[src]
T: Neg<Output = T> + Clone + Num,
pub fn conj(&self) -> Complex<T>
[src]
Returns the complex conjugate. i.e. re - i im
pub fn inv(&self) -> Complex<T>
[src]
Returns 1/self
pub fn powi(&self, exp: i32) -> Complex<T>
[src]
Raises self
to a signed integer power.
impl<T> Complex<T> where
T: Clone + Signed,
[src]
T: Clone + Signed,
pub fn l1_norm(&self) -> T
[src]
Returns the L1 norm |re| + |im|
-- the Manhattan distance from the origin.
impl<T> Complex<T> where
T: Clone + Float,
[src]
T: Clone + Float,
pub fn norm(&self) -> T
[src]
Calculate |self|
pub fn arg(&self) -> T
[src]
Calculate the principal Arg of self.
pub fn to_polar(&self) -> (T, T)
[src]
Convert to polar form (r, theta), such that
self = r * exp(i * theta)
pub fn from_polar(r: &T, theta: &T) -> Complex<T>
[src]
Convert a polar representation into a complex number.
pub fn exp(&self) -> Complex<T>
[src]
Computes e^(self)
, where e
is the base of the natural logarithm.
pub fn ln(&self) -> Complex<T>
[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)) ≤ π
.
pub fn sqrt(&self) -> Complex<T>
[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
.
pub fn cbrt(&self) -> Complex<T>
[src]
Computes the principal value of the cube root of self
.
This function has one branch cut:
(-∞, 0)
, continuous from above.
The branch satisfies -π/3 ≤ arg(cbrt(z)) ≤ π/3
.
Note that this does not match the usual result for the cube root of
negative real numbers. For example, the real cube root of -8
is -2
,
but the principal complex cube root of -8
is 1 + i√3
.
pub fn powf(&self, exp: T) -> Complex<T>
[src]
Raises self
to a floating point power.
pub fn log(&self, base: T) -> Complex<T>
[src]
Returns the logarithm of self
with respect to an arbitrary base.
pub fn powc(&self, exp: Complex<T>) -> Complex<T>
[src]
Raises self
to a complex power.
pub fn expf(&self, base: T) -> Complex<T>
[src]
Raises a floating point number to the complex power self
.
pub fn sin(&self) -> Complex<T>
[src]
Computes the sine of self
.
pub fn cos(&self) -> Complex<T>
[src]
Computes the cosine of self
.
pub fn tan(&self) -> Complex<T>
[src]
Computes the tangent of self
.
pub fn asin(&self) -> Complex<T>
[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
.
pub fn acos(&self) -> Complex<T>
[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)) ≤ π
.
pub fn atan(&self) -> Complex<T>
[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
.
pub fn sinh(&self) -> Complex<T>
[src]
Computes the hyperbolic sine of self
.
pub fn cosh(&self) -> Complex<T>
[src]
Computes the hyperbolic cosine of self
.
pub fn tanh(&self) -> Complex<T>
[src]
Computes the hyperbolic tangent of self
.
pub fn asinh(&self) -> Complex<T>
[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
.
pub fn acosh(&self) -> Complex<T>
[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)) < ∞
.
pub fn atanh(&self) -> Complex<T>
[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
.
pub fn finv(&self) -> Complex<T>
[src]
Returns 1/self
using floating-point operations.
This may be more accurate than the generic self.inv()
in cases
where self.norm_sqr()
would overflow to ∞ or underflow to 0.
Examples
use num_complex::Complex64; let c = Complex64::new(1e300, 1e300); // The generic `inv()` will overflow. assert!(!c.inv().is_normal()); // But we can do better for `Float` types. let inv = c.finv(); assert!(inv.is_normal()); println!("{:e}", inv); let expected = Complex64::new(5e-301, -5e-301); assert!((inv - expected).norm() < 1e-315);
pub fn fdiv(&self, other: Complex<T>) -> Complex<T>
[src]
Returns self/other
using floating-point operations.
This may be more accurate than the generic Div
implementation in cases
where other.norm_sqr()
would overflow to ∞ or underflow to 0.
Examples
use num_complex::Complex64; let a = Complex64::new(2.0, 3.0); let b = Complex64::new(1e300, 1e300); // Generic division will overflow. assert!(!(a / b).is_normal()); // But we can do better for `Float` types. let quotient = a.fdiv(b); assert!(quotient.is_normal()); println!("{:e}", quotient); let expected = Complex64::new(2.5e-300, 5e-301); assert!((quotient - expected).norm() < 1e-315);
impl<T> Complex<T> where
T: Clone + FloatCore,
[src]
T: Clone + FloatCore,
pub fn is_nan(self) -> bool
[src]
Checks if the given complex number is NaN
pub fn is_infinite(self) -> bool
[src]
Checks if the given complex number is infinite
pub fn is_finite(self) -> bool
[src]
Checks if the given complex number is finite
pub fn is_normal(self) -> bool
[src]
Checks if the given complex number is normal
Trait Implementations
impl<T> Rem<Complex<T>> for Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the %
operator.
fn rem(self, modulus: Complex<T>) -> <Complex<T> as Rem<Complex<T>>>::Output
[src]
impl<'a, T> Rem<Complex<T>> for &'a Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the %
operator.
fn rem(self, other: Complex<T>) -> <&'a Complex<T> as Rem<Complex<T>>>::Output
[src]
impl<'a, 'b, T> Rem<&'b Complex<T>> for &'a Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the %
operator.
fn rem(
self,
other: &Complex<T>
) -> <&'a Complex<T> as Rem<&'b Complex<T>>>::Output
[src]
self,
other: &Complex<T>
) -> <&'a Complex<T> as Rem<&'b Complex<T>>>::Output
impl<'a, T> Rem<T> for &'a Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the %
operator.
fn rem(self, other: T) -> <&'a Complex<T> as Rem<T>>::Output
[src]
impl<'a, T> Rem<&'a Complex<T>> for Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the %
operator.
fn rem(self, other: &Complex<T>) -> <Complex<T> as Rem<&'a Complex<T>>>::Output
[src]
impl<'a, 'b, T> Rem<&'a T> for &'b Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the %
operator.
fn rem(self, other: &T) -> <&'b Complex<T> as Rem<&'a T>>::Output
[src]
impl<'a, T> Rem<&'a T> for Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the %
operator.
fn rem(self, other: &T) -> <Complex<T> as Rem<&'a T>>::Output
[src]
impl<T> Rem<T> for Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the %
operator.
fn rem(self, other: T) -> <Complex<T> as Rem<T>>::Output
[src]
impl<T> Display for Complex<T> where
T: Display + Num + PartialOrd<T> + Clone,
[src]
T: Display + Num + PartialOrd<T> + Clone,
impl<T> One for Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
impl<T> PartialEq<Complex<T>> for Complex<T> where
T: PartialEq<T>,
[src]
T: PartialEq<T>,
impl<T> DivAssign<T> for Complex<T> where
T: Clone + NumAssign,
[src]
T: Clone + NumAssign,
fn div_assign(&mut self, other: T)
[src]
impl<'a, T> DivAssign<&'a Complex<T>> for Complex<T> where
T: Clone + NumAssign,
[src]
T: Clone + NumAssign,
fn div_assign(&mut self, other: &Complex<T>)
[src]
impl<T> DivAssign<Complex<T>> for Complex<T> where
T: Clone + NumAssign,
[src]
T: Clone + NumAssign,
fn div_assign(&mut self, other: Complex<T>)
[src]
impl<'a, T> DivAssign<&'a T> for Complex<T> where
T: Clone + NumAssign,
[src]
T: Clone + NumAssign,
fn div_assign(&mut self, other: &T)
[src]
impl<T> Serialize for Complex<T> where
T: Serialize,
[src]
T: Serialize,
fn serialize<S>(
&self,
serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error> where
S: Serializer,
[src]
&self,
serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error> where
S: Serializer,
impl<T> MulAddAssign<Complex<T>, Complex<T>> for Complex<T> where
T: Clone + MulAddAssign<T, T> + NumAssign,
[src]
T: Clone + MulAddAssign<T, T> + NumAssign,
fn mul_add_assign(&mut self, other: Complex<T>, add: Complex<T>)
[src]
impl<'a, 'b, T> MulAddAssign<&'a Complex<T>, &'b Complex<T>> for Complex<T> where
T: Clone + MulAddAssign<T, T> + NumAssign,
[src]
T: Clone + MulAddAssign<T, T> + NumAssign,
fn mul_add_assign(&mut self, other: &Complex<T>, add: &Complex<T>)
[src]
impl<T> Clone for Complex<T> where
T: Clone,
[src]
T: Clone,
fn clone(&self) -> Complex<T>
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl<'a, T> AddAssign<&'a Complex<T>> for Complex<T> where
T: Clone + NumAssign,
[src]
T: Clone + NumAssign,
fn add_assign(&mut self, other: &Complex<T>)
[src]
impl<'a, T> AddAssign<&'a T> for Complex<T> where
T: Clone + NumAssign,
[src]
T: Clone + NumAssign,
fn add_assign(&mut self, other: &T)
[src]
impl<T> AddAssign<Complex<T>> for Complex<T> where
T: Clone + NumAssign,
[src]
T: Clone + NumAssign,
fn add_assign(&mut self, other: Complex<T>)
[src]
impl<T> AddAssign<T> for Complex<T> where
T: Clone + NumAssign,
[src]
T: Clone + NumAssign,
fn add_assign(&mut self, other: T)
[src]
impl<'de, T> Deserialize<'de> for Complex<T> where
T: Deserialize<'de> + Num + Clone,
[src]
T: Deserialize<'de> + Num + Clone,
fn deserialize<D>(
deserializer: D
) -> Result<Complex<T>, <D as Deserializer<'de>>::Error> where
D: Deserializer<'de>,
[src]
deserializer: D
) -> Result<Complex<T>, <D as Deserializer<'de>>::Error> where
D: Deserializer<'de>,
impl<T> Zero for Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
impl<T> FromPrimitive for Complex<T> where
T: FromPrimitive + Num,
[src]
T: FromPrimitive + Num,
fn from_usize(n: usize) -> Option<Complex<T>>
[src]
fn from_isize(n: isize) -> Option<Complex<T>>
[src]
fn from_u8(n: u8) -> Option<Complex<T>>
[src]
fn from_u16(n: u16) -> Option<Complex<T>>
[src]
fn from_u32(n: u32) -> Option<Complex<T>>
[src]
fn from_u64(n: u64) -> Option<Complex<T>>
[src]
fn from_i8(n: i8) -> Option<Complex<T>>
[src]
fn from_i16(n: i16) -> Option<Complex<T>>
[src]
fn from_i32(n: i32) -> Option<Complex<T>>
[src]
fn from_i64(n: i64) -> Option<Complex<T>>
[src]
fn from_u128(n: u128) -> Option<Complex<T>>
[src]
fn from_i128(n: i128) -> Option<Complex<T>>
[src]
fn from_f32(n: f32) -> Option<Complex<T>>
[src]
fn from_f64(n: f64) -> Option<Complex<T>>
[src]
impl<T> SubAssign<T> for Complex<T> where
T: Clone + NumAssign,
[src]
T: Clone + NumAssign,
fn sub_assign(&mut self, other: T)
[src]
impl<'a, T> SubAssign<&'a Complex<T>> for Complex<T> where
T: Clone + NumAssign,
[src]
T: Clone + NumAssign,
fn sub_assign(&mut self, other: &Complex<T>)
[src]
impl<'a, T> SubAssign<&'a T> for Complex<T> where
T: Clone + NumAssign,
[src]
T: Clone + NumAssign,
fn sub_assign(&mut self, other: &T)
[src]
impl<T> SubAssign<Complex<T>> for Complex<T> where
T: Clone + NumAssign,
[src]
T: Clone + NumAssign,
fn sub_assign(&mut self, other: Complex<T>)
[src]
impl<T> LowerExp for Complex<T> where
T: LowerExp + Num + PartialOrd<T> + Clone,
[src]
T: LowerExp + Num + PartialOrd<T> + Clone,
impl<T> Default for Complex<T> where
T: Default,
[src]
T: Default,
impl<T> Binary for Complex<T> where
T: Binary + Num + PartialOrd<T> + Clone,
[src]
T: Binary + Num + PartialOrd<T> + Clone,
impl<T> Eq for Complex<T> where
T: Eq,
[src]
T: Eq,
impl<T> Hash for Complex<T> where
T: Hash,
[src]
T: Hash,
fn hash<__HT>(&self, state: &mut __HT) where
__HT: Hasher,
[src]
__HT: Hasher,
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
Feeds a slice of this type into the given [Hasher
]. Read more
impl<'a, T> Inv for &'a Complex<T> where
T: Neg<Output = T> + Clone + Num,
[src]
T: Neg<Output = T> + Clone + Num,
type Output = Complex<T>
The result after applying the operator.
fn inv(self) -> <&'a Complex<T> as Inv>::Output
[src]
impl<T> Inv for Complex<T> where
T: Neg<Output = T> + Clone + Num,
[src]
T: Neg<Output = T> + Clone + Num,
type Output = Complex<T>
The result after applying the operator.
fn inv(self) -> <Complex<T> as Inv>::Output
[src]
impl<T> Mul<T> for Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the *
operator.
fn mul(self, other: T) -> <Complex<T> as Mul<T>>::Output
[src]
impl<'a, 'b, T> Mul<&'b Complex<T>> for &'a Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the *
operator.
fn mul(
self,
other: &Complex<T>
) -> <&'a Complex<T> as Mul<&'b Complex<T>>>::Output
[src]
self,
other: &Complex<T>
) -> <&'a Complex<T> as Mul<&'b Complex<T>>>::Output
impl<'a, T> Mul<&'a T> for Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the *
operator.
fn mul(self, other: &T) -> <Complex<T> as Mul<&'a T>>::Output
[src]
impl<'a, T> Mul<T> for &'a Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the *
operator.
fn mul(self, other: T) -> <&'a Complex<T> as Mul<T>>::Output
[src]
impl<'a, T> Mul<Complex<T>> for &'a Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the *
operator.
fn mul(self, other: Complex<T>) -> <&'a Complex<T> as Mul<Complex<T>>>::Output
[src]
impl<T> Mul<Complex<T>> for Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the *
operator.
fn mul(self, other: Complex<T>) -> <Complex<T> as Mul<Complex<T>>>::Output
[src]
impl<'a, T> Mul<&'a Complex<T>> for Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the *
operator.
fn mul(self, other: &Complex<T>) -> <Complex<T> as Mul<&'a Complex<T>>>::Output
[src]
impl<'a, 'b, T> Mul<&'a T> for &'b Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the *
operator.
fn mul(self, other: &T) -> <&'b Complex<T> as Mul<&'a T>>::Output
[src]
impl<'a, T> RemAssign<&'a Complex<T>> for Complex<T> where
T: Clone + NumAssign,
[src]
T: Clone + NumAssign,
fn rem_assign(&mut self, other: &Complex<T>)
[src]
impl<T> RemAssign<Complex<T>> for Complex<T> where
T: Clone + NumAssign,
[src]
T: Clone + NumAssign,
fn rem_assign(&mut self, other: Complex<T>)
[src]
impl<'a, T> RemAssign<&'a T> for Complex<T> where
T: Clone + NumAssign,
[src]
T: Clone + NumAssign,
fn rem_assign(&mut self, other: &T)
[src]
impl<T> RemAssign<T> for Complex<T> where
T: Clone + NumAssign,
[src]
T: Clone + NumAssign,
fn rem_assign(&mut self, other: T)
[src]
impl<T> FromStr for Complex<T> where
T: FromStr + Num + Clone,
[src]
T: FromStr + Num + Clone,
type Err = ParseComplexError<<T as FromStr>::Err>
The associated error which can be returned from parsing.
fn from_str(s: &str) -> Result<Complex<T>, <Complex<T> as FromStr>::Err>
[src]
Parses a +/- bi
; ai +/- b
; a
; or bi
where a
and b
are of type T
impl<'a, 'b, T> Pow<&'b isize> for &'a Complex<T> where
T: Neg<Output = T> + Clone + Num,
[src]
T: Neg<Output = T> + Clone + Num,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: &isize) -> <&'a Complex<T> as Pow<&'b isize>>::Output
[src]
impl<'b, T> Pow<&'b f32> for Complex<T> where
T: Float,
f32: Into<T>,
[src]
T: Float,
f32: Into<T>,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, &f32) -> <Complex<T> as Pow<&'b f32>>::Output
[src]
impl<T> Pow<f32> for Complex<T> where
T: Float,
f32: Into<T>,
[src]
T: Float,
f32: Into<T>,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: f32) -> <Complex<T> as Pow<f32>>::Output
[src]
impl<'a, T> Pow<isize> for &'a Complex<T> where
T: Neg<Output = T> + Clone + Num,
[src]
T: Neg<Output = T> + Clone + Num,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: isize) -> <&'a Complex<T> as Pow<isize>>::Output
[src]
impl<'a, 'b, T> Pow<&'b f64> for &'a Complex<T> where
T: Float,
f64: Into<T>,
[src]
T: Float,
f64: Into<T>,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, &f64) -> <&'a Complex<T> as Pow<&'b f64>>::Output
[src]
impl<'a, 'b, T> Pow<&'b u16> for &'a Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: &u16) -> <&'a Complex<T> as Pow<&'b u16>>::Output
[src]
impl<'a, 'b, T> Pow<&'b u32> for &'a Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: &u32) -> <&'a Complex<T> as Pow<&'b u32>>::Output
[src]
impl<'a, 'b, T> Pow<&'b i8> for &'a Complex<T> where
T: Neg<Output = T> + Clone + Num,
[src]
T: Neg<Output = T> + Clone + Num,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: &i8) -> <&'a Complex<T> as Pow<&'b i8>>::Output
[src]
impl<'a, 'b, T> Pow<&'b i16> for &'a Complex<T> where
T: Neg<Output = T> + Clone + Num,
[src]
T: Neg<Output = T> + Clone + Num,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: &i16) -> <&'a Complex<T> as Pow<&'b i16>>::Output
[src]
impl<'a, 'b, T> Pow<&'b u64> for &'a Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: &u64) -> <&'a Complex<T> as Pow<&'b u64>>::Output
[src]
impl<'a, 'b, T> Pow<&'b i64> for &'a Complex<T> where
T: Neg<Output = T> + Clone + Num,
[src]
T: Neg<Output = T> + Clone + Num,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: &i64) -> <&'a Complex<T> as Pow<&'b i64>>::Output
[src]
impl<'a, T> Pow<u64> for &'a Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: u64) -> <&'a Complex<T> as Pow<u64>>::Output
[src]
impl<'a, T> Pow<f32> for &'a Complex<T> where
T: Float,
f32: Into<T>,
[src]
T: Float,
f32: Into<T>,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: f32) -> <&'a Complex<T> as Pow<f32>>::Output
[src]
impl<'a, 'b, T> Pow<&'b i128> for &'a Complex<T> where
T: Neg<Output = T> + Clone + Num,
[src]
T: Neg<Output = T> + Clone + Num,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: &i128) -> <&'a Complex<T> as Pow<&'b i128>>::Output
[src]
impl<'a, T> Pow<u32> for &'a Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: u32) -> <&'a Complex<T> as Pow<u32>>::Output
[src]
impl<'a, 'b, T> Pow<&'b usize> for &'a Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: &usize) -> <&'a Complex<T> as Pow<&'b usize>>::Output
[src]
impl<'a, 'b, T> Pow<&'b f32> for &'a Complex<T> where
T: Float,
f32: Into<T>,
[src]
T: Float,
f32: Into<T>,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, &f32) -> <&'a Complex<T> as Pow<&'b f32>>::Output
[src]
impl<'a, T> Pow<Complex<T>> for &'a Complex<T> where
T: Float,
[src]
T: Float,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: Complex<T>) -> <&'a Complex<T> as Pow<Complex<T>>>::Output
[src]
impl<'a, T> Pow<usize> for &'a Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: usize) -> <&'a Complex<T> as Pow<usize>>::Output
[src]
impl<'b, T> Pow<&'b Complex<T>> for Complex<T> where
T: Float,
[src]
T: Float,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, &'b Complex<T>) -> <Complex<T> as Pow<&'b Complex<T>>>::Output
[src]
impl<'a, T> Pow<u16> for &'a Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: u16) -> <&'a Complex<T> as Pow<u16>>::Output
[src]
impl<'a, T> Pow<i32> for &'a Complex<T> where
T: Neg<Output = T> + Clone + Num,
[src]
T: Neg<Output = T> + Clone + Num,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: i32) -> <&'a Complex<T> as Pow<i32>>::Output
[src]
impl<'a, T> Pow<i16> for &'a Complex<T> where
T: Neg<Output = T> + Clone + Num,
[src]
T: Neg<Output = T> + Clone + Num,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: i16) -> <&'a Complex<T> as Pow<i16>>::Output
[src]
impl<'a, T> Pow<u8> for &'a Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: u8) -> <&'a Complex<T> as Pow<u8>>::Output
[src]
impl<T> Pow<Complex<T>> for Complex<T> where
T: Float,
[src]
T: Float,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: Complex<T>) -> <Complex<T> as Pow<Complex<T>>>::Output
[src]
impl<T> Pow<f64> for Complex<T> where
T: Float,
f64: Into<T>,
[src]
T: Float,
f64: Into<T>,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: f64) -> <Complex<T> as Pow<f64>>::Output
[src]
impl<'a, T> Pow<i8> for &'a Complex<T> where
T: Neg<Output = T> + Clone + Num,
[src]
T: Neg<Output = T> + Clone + Num,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: i8) -> <&'a Complex<T> as Pow<i8>>::Output
[src]
impl<'a, T> Pow<u128> for &'a Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: u128) -> <&'a Complex<T> as Pow<u128>>::Output
[src]
impl<'a, 'b, T> Pow<&'b Complex<T>> for &'a Complex<T> where
T: Float,
[src]
T: Float,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, &'b Complex<T>) -> <&'a Complex<T> as Pow<&'b Complex<T>>>::Output
[src]
impl<'a, 'b, T> Pow<&'b i32> for &'a Complex<T> where
T: Neg<Output = T> + Clone + Num,
[src]
T: Neg<Output = T> + Clone + Num,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: &i32) -> <&'a Complex<T> as Pow<&'b i32>>::Output
[src]
impl<'a, 'b, T> Pow<&'b u8> for &'a Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: &u8) -> <&'a Complex<T> as Pow<&'b u8>>::Output
[src]
impl<'a, 'b, T> Pow<&'b u128> for &'a Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: &u128) -> <&'a Complex<T> as Pow<&'b u128>>::Output
[src]
impl<'a, T> Pow<i64> for &'a Complex<T> where
T: Neg<Output = T> + Clone + Num,
[src]
T: Neg<Output = T> + Clone + Num,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: i64) -> <&'a Complex<T> as Pow<i64>>::Output
[src]
impl<'a, T> Pow<f64> for &'a Complex<T> where
T: Float,
f64: Into<T>,
[src]
T: Float,
f64: Into<T>,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: f64) -> <&'a Complex<T> as Pow<f64>>::Output
[src]
impl<'b, T> Pow<&'b f64> for Complex<T> where
T: Float,
f64: Into<T>,
[src]
T: Float,
f64: Into<T>,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, &f64) -> <Complex<T> as Pow<&'b f64>>::Output
[src]
impl<'a, T> Pow<i128> for &'a Complex<T> where
T: Neg<Output = T> + Clone + Num,
[src]
T: Neg<Output = T> + Clone + Num,
type Output = Complex<T>
The result after applying the operator.
fn pow(self, exp: i128) -> <&'a Complex<T> as Pow<i128>>::Output
[src]
impl<T> LowerHex for Complex<T> where
T: LowerHex + Num + PartialOrd<T> + Clone,
[src]
T: LowerHex + Num + PartialOrd<T> + Clone,
impl<T> Neg for Complex<T> where
T: Neg<Output = T> + Clone + Num,
[src]
T: Neg<Output = T> + Clone + Num,
type Output = Complex<T>
The resulting type after applying the -
operator.
fn neg(self) -> <Complex<T> as Neg>::Output
[src]
impl<'a, T> Neg for &'a Complex<T> where
T: Neg<Output = T> + Clone + Num,
[src]
T: Neg<Output = T> + Clone + Num,
type Output = Complex<T>
The resulting type after applying the -
operator.
fn neg(self) -> <&'a Complex<T> as Neg>::Output
[src]
impl<T> From<T> for Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
impl<'a, T> From<&'a T> for Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
impl<T> MulAssign<Complex<T>> for Complex<T> where
T: Clone + NumAssign,
[src]
T: Clone + NumAssign,
fn mul_assign(&mut self, other: Complex<T>)
[src]
impl<T> MulAssign<T> for Complex<T> where
T: Clone + NumAssign,
[src]
T: Clone + NumAssign,
fn mul_assign(&mut self, other: T)
[src]
impl<'a, T> MulAssign<&'a T> for Complex<T> where
T: Clone + NumAssign,
[src]
T: Clone + NumAssign,
fn mul_assign(&mut self, other: &T)
[src]
impl<'a, T> MulAssign<&'a Complex<T>> for Complex<T> where
T: Clone + NumAssign,
[src]
T: Clone + NumAssign,
fn mul_assign(&mut self, other: &Complex<T>)
[src]
impl<'a, T> Div<&'a T> for Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the /
operator.
fn div(self, other: &T) -> <Complex<T> as Div<&'a T>>::Output
[src]
impl<'a, 'b, T> Div<&'b Complex<T>> for &'a Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the /
operator.
fn div(
self,
other: &Complex<T>
) -> <&'a Complex<T> as Div<&'b Complex<T>>>::Output
[src]
self,
other: &Complex<T>
) -> <&'a Complex<T> as Div<&'b Complex<T>>>::Output
impl<'a, T> Div<Complex<T>> for &'a Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the /
operator.
fn div(self, other: Complex<T>) -> <&'a Complex<T> as Div<Complex<T>>>::Output
[src]
impl<'a, T> Div<T> for &'a Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the /
operator.
fn div(self, other: T) -> <&'a Complex<T> as Div<T>>::Output
[src]
impl<'a, 'b, T> Div<&'a T> for &'b Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the /
operator.
fn div(self, other: &T) -> <&'b Complex<T> as Div<&'a T>>::Output
[src]
impl<'a, T> Div<&'a Complex<T>> for Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the /
operator.
fn div(self, other: &Complex<T>) -> <Complex<T> as Div<&'a Complex<T>>>::Output
[src]
impl<T> Div<T> for Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the /
operator.
fn div(self, other: T) -> <Complex<T> as Div<T>>::Output
[src]
impl<T> Div<Complex<T>> for Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the /
operator.
fn div(self, other: Complex<T>) -> <Complex<T> as Div<Complex<T>>>::Output
[src]
impl<T> NumCast for Complex<T> where
T: NumCast + Num,
[src]
T: NumCast + Num,
fn from<U>(n: U) -> Option<Complex<T>> where
U: ToPrimitive,
[src]
U: ToPrimitive,
impl<T> Num for Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type FromStrRadixErr = ParseComplexError<<T as Num>::FromStrRadixErr>
fn from_str_radix(
s: &str,
radix: u32
) -> Result<Complex<T>, <Complex<T> as Num>::FromStrRadixErr>
[src]
s: &str,
radix: u32
) -> Result<Complex<T>, <Complex<T> as Num>::FromStrRadixErr>
Parses a +/- bi
; ai +/- b
; a
; or bi
where a
and b
are of type T
impl<'a, T> Sum<&'a Complex<T>> for Complex<T> where
T: 'a + Clone + Num,
[src]
T: 'a + Clone + Num,
impl<T> Sum<Complex<T>> for Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
impl<T> Debug for Complex<T> where
T: Debug,
[src]
T: Debug,
impl<T> ToPrimitive for Complex<T> where
T: ToPrimitive + Num,
[src]
T: ToPrimitive + Num,
fn to_usize(&self) -> Option<usize>
[src]
fn to_isize(&self) -> Option<isize>
[src]
fn to_u8(&self) -> Option<u8>
[src]
fn to_u16(&self) -> Option<u16>
[src]
fn to_u32(&self) -> Option<u32>
[src]
fn to_u64(&self) -> Option<u64>
[src]
fn to_i8(&self) -> Option<i8>
[src]
fn to_i16(&self) -> Option<i16>
[src]
fn to_i32(&self) -> Option<i32>
[src]
fn to_i64(&self) -> Option<i64>
[src]
fn to_u128(&self) -> Option<u128>
[src]
fn to_i128(&self) -> Option<i128>
[src]
fn to_f32(&self) -> Option<f32>
[src]
fn to_f64(&self) -> Option<f64>
[src]
impl<'a, 'b, T> Add<&'b Complex<T>> for &'a Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the +
operator.
fn add(
self,
other: &Complex<T>
) -> <&'a Complex<T> as Add<&'b Complex<T>>>::Output
[src]
self,
other: &Complex<T>
) -> <&'a Complex<T> as Add<&'b Complex<T>>>::Output
impl<T> Add<Complex<T>> for Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the +
operator.
fn add(self, other: Complex<T>) -> <Complex<T> as Add<Complex<T>>>::Output
[src]
impl<'a, T> Add<&'a Complex<T>> for Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the +
operator.
fn add(self, other: &Complex<T>) -> <Complex<T> as Add<&'a Complex<T>>>::Output
[src]
impl<'a, T> Add<T> for &'a Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the +
operator.
fn add(self, other: T) -> <&'a Complex<T> as Add<T>>::Output
[src]
impl<'a, T> Add<&'a T> for Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the +
operator.
fn add(self, other: &T) -> <Complex<T> as Add<&'a T>>::Output
[src]
impl<'a, T> Add<Complex<T>> for &'a Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the +
operator.
fn add(self, other: Complex<T>) -> <&'a Complex<T> as Add<Complex<T>>>::Output
[src]
impl<'a, 'b, T> Add<&'a T> for &'b Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the +
operator.
fn add(self, other: &T) -> <&'b Complex<T> as Add<&'a T>>::Output
[src]
impl<T> Add<T> for Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the +
operator.
fn add(self, other: T) -> <Complex<T> as Add<T>>::Output
[src]
impl<T> Product<Complex<T>> for Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
impl<'a, T> Product<&'a Complex<T>> for Complex<T> where
T: 'a + Clone + Num,
[src]
T: 'a + Clone + Num,
impl<'a, T> Sub<&'a T> for Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the -
operator.
fn sub(self, other: &T) -> <Complex<T> as Sub<&'a T>>::Output
[src]
impl<'a, T> Sub<T> for &'a Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the -
operator.
fn sub(self, other: T) -> <&'a Complex<T> as Sub<T>>::Output
[src]
impl<'a, T> Sub<Complex<T>> for &'a Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the -
operator.
fn sub(self, other: Complex<T>) -> <&'a Complex<T> as Sub<Complex<T>>>::Output
[src]
impl<'a, 'b, T> Sub<&'a T> for &'b Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the -
operator.
fn sub(self, other: &T) -> <&'b Complex<T> as Sub<&'a T>>::Output
[src]
impl<'a, 'b, T> Sub<&'b Complex<T>> for &'a Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the -
operator.
fn sub(
self,
other: &Complex<T>
) -> <&'a Complex<T> as Sub<&'b Complex<T>>>::Output
[src]
self,
other: &Complex<T>
) -> <&'a Complex<T> as Sub<&'b Complex<T>>>::Output
impl<T> Sub<Complex<T>> for Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the -
operator.
fn sub(self, other: Complex<T>) -> <Complex<T> as Sub<Complex<T>>>::Output
[src]
impl<'a, T> Sub<&'a Complex<T>> for Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the -
operator.
fn sub(self, other: &Complex<T>) -> <Complex<T> as Sub<&'a Complex<T>>>::Output
[src]
impl<T> Sub<T> for Complex<T> where
T: Clone + Num,
[src]
T: Clone + Num,
type Output = Complex<T>
The resulting type after applying the -
operator.
fn sub(self, other: T) -> <Complex<T> as Sub<T>>::Output
[src]
impl<'a, 'b, T> MulAdd<&'b Complex<T>, &'a Complex<T>> for &'a Complex<T> where
T: Clone + MulAdd<T, T, Output = T> + Num,
[src]
T: Clone + MulAdd<T, T, Output = T> + Num,
type Output = Complex<T>
The resulting type after applying the fused multiply-add.
fn mul_add(self, other: &Complex<T>, add: &Complex<T>) -> Complex<T>
[src]
impl<T> MulAdd<Complex<T>, Complex<T>> for Complex<T> where
T: Clone + MulAdd<T, T, Output = T> + Num,
[src]
T: Clone + MulAdd<T, T, Output = T> + Num,
type Output = Complex<T>
The resulting type after applying the fused multiply-add.
fn mul_add(self, other: Complex<T>, add: Complex<T>) -> Complex<T>
[src]
impl<T> UpperHex for Complex<T> where
T: UpperHex + Num + PartialOrd<T> + Clone,
[src]
T: UpperHex + Num + PartialOrd<T> + Clone,
impl<T> UpperExp for Complex<T> where
T: UpperExp + Num + PartialOrd<T> + Clone,
[src]
T: UpperExp + Num + PartialOrd<T> + Clone,
impl<T> Copy for Complex<T> where
T: Copy,
[src]
T: Copy,
impl<T> Octal for Complex<T> where
T: Octal + Num + PartialOrd<T> + Clone,
[src]
T: Octal + Num + PartialOrd<T> + Clone,
impl<T, U> AsPrimitive<U> for Complex<T> where
T: AsPrimitive<U>,
U: 'static + Copy,
[src]
T: AsPrimitive<U>,
U: 'static + Copy,
impl<N> NormedSpace for Complex<N> where
N: RealField,
[src]
N: RealField,
type RealField = N
The result of the norm (not necessarily the same same as the field used by this vector space).
type ComplexField = N
The field of this space must be this complex number.
fn norm_squared(&self) -> <Complex<N> as NormedSpace>::RealField
[src]
fn norm(&self) -> <Complex<N> as NormedSpace>::RealField
[src]
fn normalize(&self) -> Complex<N>
[src]
fn normalize_mut(&mut self) -> <Complex<N> as NormedSpace>::RealField
[src]
fn try_normalize(
&self,
eps: <Complex<N> as NormedSpace>::RealField
) -> Option<Complex<N>>
[src]
&self,
eps: <Complex<N> as NormedSpace>::RealField
) -> Option<Complex<N>>
fn try_normalize_mut(
&mut self,
eps: <Complex<N> as NormedSpace>::RealField
) -> Option<<Complex<N> as NormedSpace>::RealField>
[src]
&mut self,
eps: <Complex<N> as NormedSpace>::RealField
) -> Option<<Complex<N> as NormedSpace>::RealField>
impl<N> Module for Complex<N> where
N: RingCommutative + NumAssign,
[src]
N: RingCommutative + NumAssign,
type Ring = N
The underlying scalar field.
impl<N> AbstractMonoid<Multiplicative> for Complex<N> where
N: Num + Clone + ClosedNeg,
[src]
N: Num + Clone + ClosedNeg,
fn prop_operating_identity_element_is_noop_approx(args: (Self,)) -> bool where
Self: RelativeEq<Self>,
[src]
Self: RelativeEq<Self>,
Checks whether operating with the identity element is a no-op for the given argument. Approximate equality is used for verifications. Read more
fn prop_operating_identity_element_is_noop(args: (Self,)) -> bool where
Self: Eq,
[src]
Self: Eq,
Checks whether operating with the identity element is a no-op for the given argument. Read more
impl<N> AbstractMonoid<Additive> for Complex<N> where
N: AbstractGroupAbelian<Additive>,
[src]
N: AbstractGroupAbelian<Additive>,
fn prop_operating_identity_element_is_noop_approx(args: (Self,)) -> bool where
Self: RelativeEq<Self>,
[src]
Self: RelativeEq<Self>,
Checks whether operating with the identity element is a no-op for the given argument. Approximate equality is used for verifications. Read more
fn prop_operating_identity_element_is_noop(args: (Self,)) -> bool where
Self: Eq,
[src]
Self: Eq,
Checks whether operating with the identity element is a no-op for the given argument. Read more
impl<N> ComplexField for Complex<N> where
N: RealField,
[src]
N: RealField,
type RealField = N
Type of the coefficients of a complex number.
fn from_real(re: <Complex<N> as ComplexField>::RealField) -> Complex<N>
[src]
fn real(self) -> <Complex<N> as ComplexField>::RealField
[src]
fn imaginary(self) -> <Complex<N> as ComplexField>::RealField
[src]
fn argument(self) -> <Complex<N> as ComplexField>::RealField
[src]
fn modulus(self) -> <Complex<N> as ComplexField>::RealField
[src]
fn modulus_squared(self) -> <Complex<N> as ComplexField>::RealField
[src]
fn norm1(self) -> <Complex<N> as ComplexField>::RealField
[src]
fn recip(self) -> Complex<N>
[src]
fn conjugate(self) -> Complex<N>
[src]
fn scale(self, factor: <Complex<N> as ComplexField>::RealField) -> Complex<N>
[src]
fn unscale(self, factor: <Complex<N> as ComplexField>::RealField) -> Complex<N>
[src]
fn floor(self) -> Complex<N>
[src]
fn ceil(self) -> Complex<N>
[src]
fn round(self) -> Complex<N>
[src]
fn trunc(self) -> Complex<N>
[src]
fn fract(self) -> Complex<N>
[src]
fn mul_add(self, a: Complex<N>, b: Complex<N>) -> Complex<N>
[src]
fn abs(self) -> <Complex<N> as ComplexField>::RealField
[src]
fn exp2(self) -> Complex<N>
[src]
fn exp_m1(self) -> Complex<N>
[src]
fn ln_1p(self) -> Complex<N>
[src]
fn log2(self) -> Complex<N>
[src]
fn log10(self) -> Complex<N>
[src]
fn cbrt(self) -> Complex<N>
[src]
fn powi(self, n: i32) -> Complex<N>
[src]
fn is_finite(&self) -> bool
[src]
fn exp(self) -> Complex<N>
[src]
Computes e^(self)
, where e
is the base of the natural logarithm.
fn ln(self) -> Complex<N>
[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)) ≤ π
.
fn sqrt(self) -> Complex<N>
[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
.
fn try_sqrt(self) -> Option<Complex<N>>
[src]
fn hypot(self, b: Complex<N>) -> <Complex<N> as ComplexField>::RealField
[src]
fn powf(self, exp: <Complex<N> as ComplexField>::RealField) -> Complex<N>
[src]
Raises self
to a floating point power.
fn log(self, base: N) -> Complex<N>
[src]
Returns the logarithm of self
with respect to an arbitrary base.
fn powc(self, exp: Complex<N>) -> Complex<N>
[src]
Raises self
to a complex power.
fn sin(self) -> Complex<N>
[src]
Computes the sine of self
.
fn cos(self) -> Complex<N>
[src]
Computes the cosine of self
.
fn sin_cos(self) -> (Complex<N>, Complex<N>)
[src]
fn tan(self) -> Complex<N>
[src]
Computes the tangent of self
.
fn asin(self) -> Complex<N>
[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
.
fn acos(self) -> Complex<N>
[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)) ≤ π
.
fn atan(self) -> Complex<N>
[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
.
fn sinh(self) -> Complex<N>
[src]
Computes the hyperbolic sine of self
.
fn cosh(self) -> Complex<N>
[src]
Computes the hyperbolic cosine of self
.
fn sinh_cosh(self) -> (Complex<N>, Complex<N>)
[src]
fn tanh(self) -> Complex<N>
[src]
Computes the hyperbolic tangent of self
.
fn asinh(self) -> Complex<N>
[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
.
fn acosh(self) -> Complex<N>
[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)) < ∞
.
fn atanh(self) -> Complex<N>
[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
.
fn to_polar(self) -> (Self::RealField, Self::RealField)
[src]
The polar form of this complex number: (modulus, arg)
fn to_exp(self) -> (Self::RealField, Self)
[src]
The exponential form of this complex number: (modulus, e^{i arg})
fn signum(self) -> Self
[src]
The exponential part of this complex number: self / self.modulus()
fn sinc(self) -> Self
[src]
Cardinal sine
fn sinhc(self) -> Self
[src]
fn cosc(self) -> Self
[src]
Cardinal cos
fn coshc(self) -> Self
[src]
impl<N> TwoSidedInverse<Multiplicative> for Complex<N> where
N: ClosedNeg + Clone + Num,
[src]
N: ClosedNeg + Clone + Num,
fn two_sided_inverse(&self) -> Complex<N>
[src]
fn two_sided_inverse_mut(&mut self)
[src]
In-place inversion of self
, relative to the operator O
. Read more
impl<N> TwoSidedInverse<Additive> for Complex<N> where
N: TwoSidedInverse<Additive>,
[src]
N: TwoSidedInverse<Additive>,
fn two_sided_inverse(&self) -> Complex<N>
[src]
fn two_sided_inverse_mut(&mut self)
[src]
In-place inversion of self
, relative to the operator O
. Read more
impl<N> AbstractMagma<Multiplicative> for Complex<N> where
N: Clone + Num,
[src]
N: Clone + Num,
fn operate(&self, lhs: &Complex<N>) -> Complex<N>
[src]
fn op(&self, O, lhs: &Self) -> Self
[src]
Performs specific operation.
impl<N> AbstractMagma<Additive> for Complex<N> where
N: AbstractMagma<Additive>,
[src]
N: AbstractMagma<Additive>,
fn operate(&self, lhs: &Complex<N>) -> Complex<N>
[src]
fn op(&self, O, lhs: &Self) -> Self
[src]
Performs specific operation.
impl<N> MeetSemilattice for Complex<N> where
N: MeetSemilattice,
[src]
N: MeetSemilattice,
impl<N> AbstractGroupAbelian<Additive> for Complex<N> where
N: AbstractGroupAbelian<Additive>,
[src]
N: AbstractGroupAbelian<Additive>,
fn prop_is_commutative_approx(args: (Self, Self)) -> bool where
Self: RelativeEq<Self>,
[src]
Self: RelativeEq<Self>,
Returns true
if the operator is commutative for the given argument tuple. Approximate equality is used for verifications. Read more
fn prop_is_commutative(args: (Self, Self)) -> bool where
Self: Eq,
[src]
Self: Eq,
Returns true
if the operator is commutative for the given argument tuple.
impl<N> AbstractGroupAbelian<Multiplicative> for Complex<N> where
N: Num + Clone + ClosedNeg,
[src]
N: Num + Clone + ClosedNeg,
fn prop_is_commutative_approx(args: (Self, Self)) -> bool where
Self: RelativeEq<Self>,
[src]
Self: RelativeEq<Self>,
Returns true
if the operator is commutative for the given argument tuple. Approximate equality is used for verifications. Read more
fn prop_is_commutative(args: (Self, Self)) -> bool where
Self: Eq,
[src]
Self: Eq,
Returns true
if the operator is commutative for the given argument tuple.
impl<N1, N2> SubsetOf<Complex<N2>> for Complex<N1> where
N2: SupersetOf<N1>,
[src]
N2: SupersetOf<N1>,
fn to_superset(&self) -> Complex<N2>
[src]
unsafe fn from_superset_unchecked(element: &Complex<N2>) -> Complex<N1>
[src]
fn is_in_subset(c: &Complex<N2>) -> bool
[src]
fn from_superset(element: &T) -> Option<Self>
[src]
The inverse inclusion map: attempts to construct self
from the equivalent element of its superset. Read more
impl<N> AbstractField<Additive, Multiplicative> for Complex<N> where
N: ClosedNeg + AbstractField<Additive, Multiplicative> + Clone + Num,
[src]
N: ClosedNeg + AbstractField<Additive, Multiplicative> + Clone + Num,
impl<N> Identity<Additive> for Complex<N> where
N: Identity<Additive>,
[src]
N: Identity<Additive>,
impl<N> Identity<Multiplicative> for Complex<N> where
N: Clone + Num,
[src]
N: Clone + Num,
impl<N> AbstractLoop<Multiplicative> for Complex<N> where
N: Num + Clone + ClosedNeg,
[src]
N: Num + Clone + ClosedNeg,
impl<N> AbstractLoop<Additive> for Complex<N> where
N: AbstractGroupAbelian<Additive>,
[src]
N: AbstractGroupAbelian<Additive>,
impl<N> JoinSemilattice for Complex<N> where
N: JoinSemilattice,
[src]
N: JoinSemilattice,
impl<N> VectorSpace for Complex<N> where
N: Field + NumAssign,
[src]
N: Field + NumAssign,
type Field = N
The underlying scalar field.
impl<N> AbstractRingCommutative<Additive, Multiplicative> for Complex<N> where
N: ClosedNeg + AbstractRingCommutative<Additive, Multiplicative> + Clone + Num,
[src]
N: ClosedNeg + AbstractRingCommutative<Additive, Multiplicative> + Clone + Num,
fn prop_mul_is_commutative_approx(args: (Self, Self)) -> bool where
Self: RelativeEq<Self>,
[src]
Self: RelativeEq<Self>,
Returns true
if the multiplication operator is commutative for the given argument tuple. Approximate equality is used for verifications. Read more
fn prop_mul_is_commutative(args: (Self, Self)) -> bool where
Self: Eq,
[src]
Self: Eq,
Returns true
if the multiplication operator is commutative for the given argument tuple.
impl<N> AbstractSemigroup<Multiplicative> for Complex<N> where
N: Num + Clone + ClosedNeg,
[src]
N: Num + Clone + ClosedNeg,
fn prop_is_associative_approx(args: (Self, Self, Self)) -> bool where
Self: RelativeEq<Self>,
[src]
Self: RelativeEq<Self>,
Returns true
if associativity holds for the given arguments. Approximate equality is used for verifications. Read more
fn prop_is_associative(args: (Self, Self, Self)) -> bool where
Self: Eq,
[src]
Self: Eq,
Returns true
if associativity holds for the given arguments.
impl<N> AbstractSemigroup<Additive> for Complex<N> where
N: AbstractGroupAbelian<Additive>,
[src]
N: AbstractGroupAbelian<Additive>,
fn prop_is_associative_approx(args: (Self, Self, Self)) -> bool where
Self: RelativeEq<Self>,
[src]
Self: RelativeEq<Self>,
Returns true
if associativity holds for the given arguments. Approximate equality is used for verifications. Read more
fn prop_is_associative(args: (Self, Self, Self)) -> bool where
Self: Eq,
[src]
Self: Eq,
Returns true
if associativity holds for the given arguments.
impl<N> AbstractRing<Additive, Multiplicative> for Complex<N> where
N: ClosedNeg + AbstractRing<Additive, Multiplicative> + Clone + Num,
[src]
N: ClosedNeg + AbstractRing<Additive, Multiplicative> + Clone + Num,
fn prop_mul_and_add_are_distributive_approx(args: (Self, Self, Self)) -> bool where
Self: RelativeEq<Self>,
[src]
Self: RelativeEq<Self>,
Returns true
if the multiplication and addition operators are distributive for the given argument tuple. Approximate equality is used for verifications. Read more
fn prop_mul_and_add_are_distributive(args: (Self, Self, Self)) -> bool where
Self: Eq,
[src]
Self: Eq,
Returns true
if the multiplication and addition operators are distributive for the given argument tuple. Read more
impl<N> AbstractGroup<Additive> for Complex<N> where
N: AbstractGroupAbelian<Additive>,
[src]
N: AbstractGroupAbelian<Additive>,
impl<N> AbstractGroup<Multiplicative> for Complex<N> where
N: Num + Clone + ClosedNeg,
[src]
N: Num + Clone + ClosedNeg,
impl<N> AbstractModule<Additive, Additive, Multiplicative> for Complex<N> where
N: ClosedNeg + AbstractRingCommutative<Additive, Multiplicative> + Num,
[src]
N: ClosedNeg + AbstractRingCommutative<Additive, Multiplicative> + Num,
impl<N> AbstractQuasigroup<Multiplicative> for Complex<N> where
N: Num + Clone + ClosedNeg,
[src]
N: Num + Clone + ClosedNeg,
fn prop_inv_is_latin_square_approx(args: (Self, Self)) -> bool where
Self: RelativeEq<Self>,
[src]
Self: RelativeEq<Self>,
Returns true
if latin squareness holds for the given arguments. Approximate equality is used for verifications. Read more
fn prop_inv_is_latin_square(args: (Self, Self)) -> bool where
Self: Eq,
[src]
Self: Eq,
Returns true
if latin squareness holds for the given arguments. Read more
impl<N> AbstractQuasigroup<Additive> for Complex<N> where
N: AbstractGroupAbelian<Additive>,
[src]
N: AbstractGroupAbelian<Additive>,
fn prop_inv_is_latin_square_approx(args: (Self, Self)) -> bool where
Self: RelativeEq<Self>,
[src]
Self: RelativeEq<Self>,
Returns true
if latin squareness holds for the given arguments. Approximate equality is used for verifications. Read more
fn prop_inv_is_latin_square(args: (Self, Self)) -> bool where
Self: Eq,
[src]
Self: Eq,
Returns true
if latin squareness holds for the given arguments. Read more
Auto Trait Implementations
impl<T> Unpin for Complex<T> where
T: Unpin,
T: Unpin,
impl<T> Sync for Complex<T> where
T: Sync,
T: Sync,
impl<T> Send for Complex<T> where
T: Send,
T: Send,
impl<T> UnwindSafe for Complex<T> where
T: UnwindSafe,
T: UnwindSafe,
impl<T> RefUnwindSafe for Complex<T> where
T: RefUnwindSafe,
T: RefUnwindSafe,
Blanket Implementations
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> DeserializeOwned for T where
T: Deserialize<'de>,
[src]
T: Deserialize<'de>,
impl<T, Rhs, Output> NumOps<Rhs, Output> 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]
T: Sub<Rhs, Output = Output> + Mul<Rhs, Output = Output> + Div<Rhs, Output = Output> + Add<Rhs, Output = Output> + Rem<Rhs, Output = Output>,
impl<T> NumRef for T where
T: Num + NumOps<&'r T, T>,
[src]
T: Num + NumOps<&'r T, T>,
impl<T, Base> RefNum<Base> for T where
T: NumOps<Base, Base> + NumOps<&'r Base, Base>,
[src]
T: NumOps<Base, Base> + NumOps<&'r Base, Base>,
impl<T, Rhs> NumAssignOps<Rhs> for T where
T: AddAssign<Rhs> + SubAssign<Rhs> + MulAssign<Rhs> + DivAssign<Rhs> + RemAssign<Rhs>,
[src]
T: AddAssign<Rhs> + SubAssign<Rhs> + MulAssign<Rhs> + DivAssign<Rhs> + RemAssign<Rhs>,
impl<T> NumAssign for T where
T: Num + NumAssignOps<T>,
[src]
T: Num + NumAssignOps<T>,
impl<T> NumAssignRef for T where
T: NumAssign + NumAssignOps<&'r T>,
[src]
T: NumAssign + NumAssignOps<&'r T>,
impl<T> Same<T> for T
[src]
type Output = T
Should always be Self
impl<T> ClosedNeg for T where
T: Neg<Output = T>,
[src]
T: Neg<Output = T>,
impl<T> Field for T where
T: AbstractField<Additive, Multiplicative> + MultiplicativeGroupAbelian + RingCommutative,
[src]
T: AbstractField<Additive, Multiplicative> + MultiplicativeGroupAbelian + RingCommutative,
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
[src]
SS: SubsetOf<SP>,
fn to_subset(&self) -> Option<SS>
[src]
fn is_in_subset(&self) -> bool
[src]
unsafe fn to_subset_unchecked(&self) -> SS
[src]
fn from_subset(element: &SS) -> SP
[src]
impl<T, Right> ClosedAdd<Right> for T where
T: Add<Right, Output = T> + AddAssign<Right>,
[src]
T: Add<Right, Output = T> + AddAssign<Right>,
impl<T, Right> ClosedSub<Right> for T where
T: Sub<Right, Output = T> + SubAssign<Right>,
[src]
T: Sub<Right, Output = T> + SubAssign<Right>,
impl<T, Right> ClosedMul<Right> for T where
T: Mul<Right, Output = T> + MulAssign<Right>,
[src]
T: Mul<Right, Output = T> + MulAssign<Right>,
impl<T, Right> ClosedDiv<Right> for T where
T: Div<Right, Output = T> + DivAssign<Right>,
[src]
T: Div<Right, Output = T> + DivAssign<Right>,
impl<T> AdditiveMagma for T where
T: AbstractMagma<Additive>,
[src]
T: AbstractMagma<Additive>,
impl<T> AdditiveQuasigroup for T where
T: AbstractQuasigroup<Additive> + ClosedSub<T> + AdditiveMagma,
[src]
T: AbstractQuasigroup<Additive> + ClosedSub<T> + AdditiveMagma,
impl<T> AdditiveLoop for T where
T: AbstractLoop<Additive> + ClosedNeg + AdditiveQuasigroup + Zero,
[src]
T: AbstractLoop<Additive> + ClosedNeg + AdditiveQuasigroup + Zero,
impl<T> AdditiveSemigroup for T where
T: AbstractSemigroup<Additive> + ClosedAdd<T> + AdditiveMagma,
[src]
T: AbstractSemigroup<Additive> + ClosedAdd<T> + AdditiveMagma,
impl<T> AdditiveMonoid for T where
T: AbstractMonoid<Additive> + AdditiveSemigroup + Zero,
[src]
T: AbstractMonoid<Additive> + AdditiveSemigroup + Zero,
impl<T> AdditiveGroup for T where
T: AbstractGroup<Additive> + AdditiveLoop + AdditiveMonoid,
[src]
T: AbstractGroup<Additive> + AdditiveLoop + AdditiveMonoid,
impl<T> AdditiveGroupAbelian for T where
T: AbstractGroupAbelian<Additive> + AdditiveGroup,
[src]
T: AbstractGroupAbelian<Additive> + AdditiveGroup,
impl<T> MultiplicativeMagma for T where
T: AbstractMagma<Multiplicative>,
[src]
T: AbstractMagma<Multiplicative>,
impl<T> MultiplicativeQuasigroup for T where
T: AbstractQuasigroup<Multiplicative> + ClosedDiv<T> + MultiplicativeMagma,
[src]
T: AbstractQuasigroup<Multiplicative> + ClosedDiv<T> + MultiplicativeMagma,
impl<T> MultiplicativeLoop for T where
T: AbstractLoop<Multiplicative> + MultiplicativeQuasigroup + One,
[src]
T: AbstractLoop<Multiplicative> + MultiplicativeQuasigroup + One,
impl<T> MultiplicativeSemigroup for T where
T: AbstractSemigroup<Multiplicative> + ClosedMul<T> + MultiplicativeMagma,
[src]
T: AbstractSemigroup<Multiplicative> + ClosedMul<T> + MultiplicativeMagma,
impl<T> MultiplicativeMonoid for T where
T: AbstractMonoid<Multiplicative> + MultiplicativeSemigroup + One,
[src]
T: AbstractMonoid<Multiplicative> + MultiplicativeSemigroup + One,
impl<T> MultiplicativeGroup for T where
T: AbstractGroup<Multiplicative> + MultiplicativeLoop + MultiplicativeMonoid,
[src]
T: AbstractGroup<Multiplicative> + MultiplicativeLoop + MultiplicativeMonoid,
impl<T> MultiplicativeGroupAbelian for T where
T: AbstractGroupAbelian<Multiplicative> + MultiplicativeGroup,
[src]
T: AbstractGroupAbelian<Multiplicative> + MultiplicativeGroup,
impl<T> Ring for T where
T: AbstractRing<Additive, Multiplicative> + AdditiveGroupAbelian + MultiplicativeMonoid,
[src]
T: AbstractRing<Additive, Multiplicative> + AdditiveGroupAbelian + MultiplicativeMonoid,
impl<T> RingCommutative for T where
T: AbstractRingCommutative<Additive, Multiplicative> + Ring,
[src]
T: AbstractRingCommutative<Additive, Multiplicative> + Ring,