pub enum Pauli {
I,
X,
Y,
Z,
}
Expand description
A single qubit Pauli operator without a phase.
These operators form a multiplicative group and follow the usual commutation and anti-commutation relations.
Example
use pauli::{I, X, Y, Z};
assert_eq!(X * Y, Z);
assert!(X.commutes_with(I));
assert!(Y.anticommutes_with(Z));
Variants
I
X
Y
Z
Implementations
sourceimpl Pauli
impl Pauli
sourcepub fn anticommutes_with(self, other: Self) -> bool
pub fn anticommutes_with(self, other: Self) -> bool
Checks if the operator anti-commutes with the other operator.
Example
use pauli::{I, X, Y, Z};
assert!(X.anticommutes_with(Y));
assert!(Y.anticommutes_with(Z));
assert!(Z.anticommutes_with(X));
sourcepub fn commutes_with(self, other: Self) -> bool
pub fn commutes_with(self, other: Self) -> bool
Checks if the operator commutes with the other operator.
Example
use pauli::{I, X, Y, Z};
assert!(I.commutes_with(X));
assert!(Y.commutes_with(Y));
assert!(Z.commutes_with(I));
sourcepub fn is_non_trivial(self) -> bool
pub fn is_non_trivial(self) -> bool
Checks if the operator is not the identity.
sourcepub fn is_trivial(self) -> bool
pub fn is_trivial(self) -> bool
Checks if the operator is the identity.
Trait Implementations
sourceimpl<'de> Deserialize<'de> for Pauli
impl<'de> Deserialize<'de> for Pauli
sourcefn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Copy for Pauli
impl Eq for Pauli
impl StructuralEq for Pauli
impl StructuralPartialEq for Pauli
Auto Trait Implementations
impl RefUnwindSafe for Pauli
impl Send for Pauli
impl Sync for Pauli
impl Unpin for Pauli
impl UnwindSafe for Pauli
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Pointable for T
impl<T> Pointable for T
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
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 more
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).
unsafe fn to_subset_unchecked(&self) -> SS
unsafe fn to_subset_unchecked(&self) -> SS
Use with care! Same as self.to_subset
but without any property checks. Always succeeds.
fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts self
to the equivalent element of its superset.
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.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more