pub struct ObservableCalculator { /* private fields */ }Expand description
High-performance observable calculator with GPU support
Implementations§
Source§impl ObservableCalculator
impl ObservableCalculator
Sourcepub fn with_config(config: ObservableConfig) -> Self
pub fn with_config(config: ObservableConfig) -> Self
Create with custom configuration
Sourcepub fn expectation_value(
&self,
state: &Array1<Complex64>,
observable: &PauliObservable,
) -> Result<Complex64>
pub fn expectation_value( &self, state: &Array1<Complex64>, observable: &PauliObservable, ) -> Result<Complex64>
Compute expectation value ⟨ψ|O|ψ⟩ for a Pauli observable
Sourcepub fn hamiltonian_expectation_value(
&self,
state: &Array1<Complex64>,
hamiltonian: &PauliHamiltonian,
) -> Result<Complex64>
pub fn hamiltonian_expectation_value( &self, state: &Array1<Complex64>, hamiltonian: &PauliHamiltonian, ) -> Result<Complex64>
Compute expectation value for a Hamiltonian (sum of Pauli terms)
Sourcepub fn variance(
&self,
state: &Array1<Complex64>,
observable: &PauliObservable,
) -> Result<f64>
pub fn variance( &self, state: &Array1<Complex64>, observable: &PauliObservable, ) -> Result<f64>
Compute variance Var(O) = ⟨O²⟩ - ⟨O⟩²
Sourcepub fn batch_expectation_values(
&self,
state: &Array1<Complex64>,
observables: &[PauliObservable],
) -> Result<Vec<Complex64>>
pub fn batch_expectation_values( &self, state: &Array1<Complex64>, observables: &[PauliObservable], ) -> Result<Vec<Complex64>>
Batch compute multiple expectation values in parallel
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ObservableCalculator
impl RefUnwindSafe for ObservableCalculator
impl Send for ObservableCalculator
impl Sync for ObservableCalculator
impl Unpin for ObservableCalculator
impl UnwindSafe for ObservableCalculator
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.