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 fn get_state(&self) -> Option<&MixedPrecisionStateVector>
pub 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 fn get_stats(&self) -> &MixedPrecisionStats
pub 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.