pub struct ProcessMatrix {
pub chi_matrix: Array2<Complex64>,
pub num_qubits: usize,
pub basis_labels: Vec<String>,
}Expand description
Reconstructed process matrix from QPT
Fields§
§chi_matrix: Array2<Complex64>Chi matrix in Pauli basis
num_qubits: usizeNumber of qubits
basis_labels: Vec<String>Basis labels
Implementations§
Source§impl ProcessMatrix
impl ProcessMatrix
Sourcepub fn get_element(
&self,
prep_pauli: &str,
meas_pauli: &str,
) -> Option<Complex64>
pub fn get_element( &self, prep_pauli: &str, meas_pauli: &str, ) -> Option<Complex64>
Get the process matrix element for specific Pauli operators
Sourcepub fn is_trace_preserving(&self, tolerance: f64) -> bool
pub fn is_trace_preserving(&self, tolerance: f64) -> bool
Check if the process is trace-preserving
Sourcepub fn is_completely_positive(&self, tolerance: f64) -> bool
pub fn is_completely_positive(&self, tolerance: f64) -> bool
Check if the process is completely positive
Sourcepub fn diamond_distance(&self, other: &ProcessMatrix) -> QuantRS2Result<f64>
pub fn diamond_distance(&self, other: &ProcessMatrix) -> QuantRS2Result<f64>
Compute the diamond norm distance to another process
Trait Implementations§
Source§impl Clone for ProcessMatrix
impl Clone for ProcessMatrix
Source§fn clone(&self) -> ProcessMatrix
fn clone(&self) -> ProcessMatrix
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 ProcessMatrix
impl RefUnwindSafe for ProcessMatrix
impl Send for ProcessMatrix
impl Sync for ProcessMatrix
impl Unpin for ProcessMatrix
impl UnwindSafe for ProcessMatrix
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.