pub struct Complex<T: RealField> {
pub re: T,
pub im: T,
}Expand description
Represents a complex number with real and imaginary parts.
A complex number is a number that can be expressed in the form a + bi,
where a and b are real numbers, and i is the imaginary unit,
satisfying the equation i^2 = -1.
The Complex struct is generic over a type T that implements RealField,
allowing it to work with different floating-point precisions (e.g., f32 or f64).
§Fields
re: The real part of the complex number.im: The imaginary part of the complex number.
§Examples
use deep_causality_num::Complex;
let c1 = Complex::new(1.0, 2.0); // Represents 1.0 + 2.0i
let c2 = Complex { re: 3.0, im: -1.0 }; // Represents 3.0 - 1.0i
assert_eq!(c1.re, 1.0);
assert_eq!(c2.im, -1.0);Fields§
§re: T§im: TImplementations§
Trait Implementations§
Source§impl<T: RealField> AddAssign<T> for Complex<T>
impl<T: RealField> AddAssign<T> for Complex<T>
Source§fn add_assign(&mut self, rhs: T)
fn add_assign(&mut self, rhs: T)
Performs the
+= operation. Read moreSource§impl<T: RealField> AddAssign for Complex<T>
impl<T: RealField> AddAssign for Complex<T>
Source§fn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
Performs the
+= operation. Read moreSource§impl<T, U> AsPrimitive<U> for Complex<T>
impl<T, U> AsPrimitive<U> for Complex<T>
Source§impl<T: RealField> ComplexField<T> for Complex<T>
impl<T: RealField> ComplexField<T> for Complex<T>
Source§fn from_re_im(re: T, im: T) -> Self
fn from_re_im(re: T, im: T) -> Self
Constructs a complex number from real and imaginary parts. Read more
Source§fn from_polar(r: T, theta: T) -> Self
fn from_polar(r: T, theta: T) -> Self
Constructs a complex number from polar form. Read more
Source§fn is_imaginary(&self) -> bool
fn is_imaginary(&self) -> bool
Returns
true if the real part is zero.Source§impl<T: RealField> DivAssign<T> for Complex<T>
impl<T: RealField> DivAssign<T> for Complex<T>
Source§fn div_assign(&mut self, rhs: T)
fn div_assign(&mut self, rhs: T)
Performs the
/= operation. Read moreSource§impl<T: RealField> DivAssign for Complex<T>
impl<T: RealField> DivAssign for Complex<T>
Source§fn div_assign(&mut self, rhs: Self)
fn div_assign(&mut self, rhs: Self)
Performs the
/= operation. Read moreSource§impl<T: RealField> DivisionAlgebra<T> for Complex<T>
impl<T: RealField> DivisionAlgebra<T> for Complex<T>
Source§impl<T: RealField + FromPrimitive> FromPrimitive for Complex<T>
impl<T: RealField + FromPrimitive> FromPrimitive for Complex<T>
Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§impl<T: RealField> MulAssign<T> for Complex<T>
impl<T: RealField> MulAssign<T> for Complex<T>
Source§fn mul_assign(&mut self, rhs: T)
fn mul_assign(&mut self, rhs: T)
Performs the
*= operation. Read moreSource§impl<T: RealField> MulAssign for Complex<T>
impl<T: RealField> MulAssign for Complex<T>
Source§fn mul_assign(&mut self, rhs: Self)
fn mul_assign(&mut self, rhs: Self)
Performs the
*= operation. Read moreSource§impl<T: RealField + Ord> Ord for Complex<T>
impl<T: RealField + Ord> Ord for Complex<T>
Source§impl<T: RealField> PartialOrd for Complex<T>
impl<T: RealField> PartialOrd for Complex<T>
Source§impl<T: RealField> Rotation<T> for Complex<T>
impl<T: RealField> Rotation<T> for Complex<T>
Source§fn rotate_x(&self, _angle: T) -> Self
fn rotate_x(&self, _angle: T) -> Self
Rotation around the X-axis.
Quaternions: Axis
i. Quantum: Pauli X.Source§fn rotate_y(&self, _angle: T) -> Self
fn rotate_y(&self, _angle: T) -> Self
Rotation around the Y-axis.
Quaternions: Axis
j. Quantum: Pauli Y.Source§fn rotate_z(&self, angle: T) -> Self
fn rotate_z(&self, angle: T) -> Self
Rotation around the Z-axis (Phase).
Quaternions: Axis
k. Quantum: Pauli Z.Source§fn global_phase(&self, angle: T) -> Self
fn global_phase(&self, angle: T) -> Self
Global Phase Shift.
$P(\phi) = e^{i\phi}$.
Source§impl<T: RealField> SubAssign<T> for Complex<T>
impl<T: RealField> SubAssign<T> for Complex<T>
Source§fn sub_assign(&mut self, rhs: T)
fn sub_assign(&mut self, rhs: T)
Performs the
-= operation. Read moreSource§impl<T: RealField> SubAssign for Complex<T>
impl<T: RealField> SubAssign for Complex<T>
Source§fn sub_assign(&mut self, rhs: Self)
fn sub_assign(&mut self, rhs: Self)
Performs the
-= operation. Read moreSource§impl<T: RealField + ToPrimitive> ToPrimitive for Complex<T>
impl<T: RealField + ToPrimitive> ToPrimitive for Complex<T>
Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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 moreSource§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.impl<T: RealField> AbelianGroup for Complex<T>
impl<T: RealField> Associative for Complex<T>
impl<T: RealField> Commutative for Complex<T>
impl<T: Copy + RealField> Copy for Complex<T>
impl<T: RealField> Distributive for Complex<T>
impl<T: RealField> Eq for Complex<T>
impl<T: RealField> StructuralPartialEq for Complex<T>
Auto Trait Implementations§
impl<T> Freeze for Complex<T>where
T: Freeze,
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§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more