pub struct MixedPrecisionSimulator { /* private fields */ }Expand description
Mixed-precision quantum simulator
Implementations§
Source§impl MixedPrecisionSimulator
impl MixedPrecisionSimulator
Sourcepub fn new(num_qubits: usize, config: MixedPrecisionConfig) -> Result<Self>
pub fn new(num_qubits: usize, config: MixedPrecisionConfig) -> Result<Self>
Create a new mixed-precision simulator
Sourcepub fn apply_gate(&mut self, gate: &QuantumGate) -> Result<()>
pub fn apply_gate(&mut self, gate: &QuantumGate) -> Result<()>
Apply a quantum gate with automatic precision selection
Sourcepub fn apply_fused_block(&mut self, block: &FusedGateBlock) -> Result<()>
pub fn apply_fused_block(&mut self, block: &FusedGateBlock) -> Result<()>
Apply multiple gates as a fused block
Sourcepub fn measure_qubit(&mut self, qubit: usize) -> Result<bool>
pub fn measure_qubit(&mut self, qubit: usize) -> Result<bool>
Measure a qubit and return the result
Sourcepub fn measure_all(&mut self) -> Result<Vec<bool>>
pub fn measure_all(&mut self) -> Result<Vec<bool>>
Measure all qubits and return the bit string
Sourcepub const fn get_state(&self) -> Option<&MixedPrecisionStateVector>
pub const fn get_state(&self) -> Option<&MixedPrecisionStateVector>
Get the current state vector
Sourcepub fn expectation_value(&self, pauli_string: &str) -> Result<f64>
pub fn expectation_value(&self, pauli_string: &str) -> Result<f64>
Calculate expectation value of a Pauli operator
Sourcepub fn analyze_precision(&mut self) -> Result<PrecisionAnalysis>
pub fn analyze_precision(&mut self) -> Result<PrecisionAnalysis>
Run precision analysis
Sourcepub const fn get_stats(&self) -> &MixedPrecisionStats
pub const fn get_stats(&self) -> &MixedPrecisionStats
Get performance statistics
Auto Trait Implementations§
impl Freeze for MixedPrecisionSimulator
impl RefUnwindSafe for MixedPrecisionSimulator
impl Send for MixedPrecisionSimulator
impl Sync for MixedPrecisionSimulator
impl Unpin for MixedPrecisionSimulator
impl UnwindSafe for MixedPrecisionSimulator
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> 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.