pub enum QuantumState {
Pure(Array1<Complex64>),
Mixed(Array2<Complex64>),
}Expand description
Quantum state representation (pure or mixed)
Variants§
Pure(Array1<Complex64>)
Pure state represented as state vector |ψ⟩
Mixed(Array2<Complex64>)
Mixed state represented as density matrix ρ
Implementations§
Source§impl QuantumState
impl QuantumState
Sourcepub fn mixed(density_matrix: Array2<Complex64>) -> Self
pub fn mixed(density_matrix: Array2<Complex64>) -> Self
Create a mixed state from a density matrix
Sourcepub fn computational_basis(dim: usize, index: usize) -> Self
pub fn computational_basis(dim: usize, index: usize) -> Self
Create a computational basis state |i⟩
Sourcepub fn maximally_mixed(dim: usize) -> Self
pub fn maximally_mixed(dim: usize) -> Self
Create a maximally mixed state I/d
Sourcepub fn bell_state(index: usize) -> Self
pub fn bell_state(index: usize) -> Self
Create a Bell state
Sourcepub fn to_density_matrix(&self) -> Result<Array2<Complex64>, QuantumInfoError>
pub fn to_density_matrix(&self) -> Result<Array2<Complex64>, QuantumInfoError>
Convert to density matrix representation
Trait Implementations§
Source§impl Clone for QuantumState
impl Clone for QuantumState
Source§fn clone(&self) -> QuantumState
fn clone(&self) -> QuantumState
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for QuantumState
impl RefUnwindSafe for QuantumState
impl Send for QuantumState
impl Sync for QuantumState
impl Unpin for QuantumState
impl UnwindSafe for QuantumState
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.