Enum pauli::Pauli [−][src]
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
Implementations
impl Pauli
[src]
impl Pauli
[src]pub fn anticommutes_with(self, other: Self) -> bool
[src]
pub fn anticommutes_with(self, other: Self) -> bool
[src]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));
pub fn commutes_with(self, other: Self) -> bool
[src]
pub fn commutes_with(self, other: Self) -> bool
[src]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));
pub fn is_non_trivial(self) -> bool
[src]
pub fn is_non_trivial(self) -> bool
[src]Checks if the operator is not the identity.
pub fn is_trivial(self) -> bool
[src]
pub fn is_trivial(self) -> bool
[src]Checks if the operator is the identity.
Trait Implementations
impl<'de> Deserialize<'de> for Pauli
[src]
impl<'de> Deserialize<'de> for Pauli
[src]fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]Deserialize this value from the given Serde deserializer. Read more
impl Copy for Pauli
[src]
impl Eq for Pauli
[src]
impl StructuralEq for Pauli
[src]
impl StructuralPartialEq for Pauli
[src]
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
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]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>,
pub fn to_subset(&self) -> Option<SS>
pub fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
pub fn is_in_subset(&self) -> bool
pub fn is_in_subset(&self) -> bool
Checks if self
is actually part of its subset T
(and can be converted to it).
pub unsafe fn to_subset_unchecked(&self) -> SS
pub unsafe fn to_subset_unchecked(&self) -> SS
Use with care! Same as self.to_subset
but without any property checks. Always succeeds.
pub fn from_subset(element: &SS) -> SP
pub fn from_subset(element: &SS) -> SP
The inclusion map: converts self
to the equivalent element of its superset.
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,