qrunch.quantum.estimators.third_party_estimators.cuquantum_state_vector_estimator.cuquantum_state_vector_estimator
Module with implementations of cuquantum cuStateVec estimator.
Classes
Estimator using NVIDIA cuQuantum's cuStateVec library. |
- class CuQuantumStatevectorEstimator
Bases:
EstimatorEstimator using NVIDIA cuQuantum’s cuStateVec library.
- Requirements:
Qrunch install requirements: qrunch[cuda] (or qrunch[all]).
A working cuda (cupy) installation.
- __init__() None
Initialize estimator.
- Return type:
None
- cleanup() None
Cleanup cuStateVec handle.
- Return type:
None
- clear_cache() None
Clear the measurement cache.
- Return type:
None
- has_spin_particle_conservation() bool
Return True, if the estimator is set to use spin particle conservation.
- Return type:
bool
- has_total_particle_conservation() bool
Return True, if the estimator is set to use total particle conservation.
- Return type:
bool
- run(observables: Sequence[int | float | complex | Expression[PauliOperators]] | int | float | complex | Expression[PauliOperators] | Sequence[HermitianPauliSum] | HermitianPauliSum, circuits: Sequence[Circuit], shots: int | ShotsPerGroup | None) EstimatorResults
- run(observables: int | float | complex | Expression[PauliOperators] | HermitianPauliSum, circuits: Circuit, shots: int | ShotsPerGroup | None) ExpectationValue
- run(observables: Sequence[int | float | complex | Expression[PauliOperators]] | Sequence[HermitianPauliSum], circuits: Circuit, shots: int | ShotsPerGroup | None) list[ExpectationValue]
Run the estimator.
- Parameters:
observables (Sequence[int | float | complex | Expression[PauliOperators]] | int | float | complex | Expression[PauliOperators] | Sequence[HermitianPauliSum] | HermitianPauliSum) – Observable(s) to be estimated.
circuits (Sequence[Circuit] | Circuit) – States to make estimation from.
shots (int | ShotsPerGroup | None) – number of shots or
Noneif using a full state vector calculation.
- Return type:
ExpectationValue | list[ExpectationValue] | EstimatorResults
- run_sequence_observables_single_circuit(observables: Sequence[HermitianPauliSum], circuit: Circuit, _shots: int | ShotsPerGroup | None) list[ExpectationValue]
Run estimation for multiple observables on single circuit.
- Parameters:
observables (Sequence[HermitianPauliSum]) – A sequence of HermitianPauliSum observables to estimate.
circuit (Circuit) – The Circuit whose state to estimate the observables on.
_shots (int | ShotsPerGroup | None) – Unused - included for interface consistency but ignored since
simulation. (this estimator only supports state vector)
- Return type:
list[ExpectationValue]
- run_single_observable_sequence_circuits(observable: HermitianPauliSum, circuits: Sequence[Circuit], _shots: int | ShotsPerGroup | None) EstimatorResults
Run estimation for single observable on multiple circuits.
- Parameters:
observable (HermitianPauliSum) – The HermitianPauliSum observable to estimate.
circuits (Sequence[Circuit]) – A sequence of Circuits whose states to estimate the observable on.
_shots (int | ShotsPerGroup | None) – Unused - included for interface consistency but ignored since
simulation. (this estimator only supports state vector)
- Return type:
- run_single_observable_single_circuit(observable: HermitianPauliSum, circuit: Circuit, _shots: int | ShotsPerGroup | None) ExpectationValue
Run estimation for single observable and single circuit.
- Parameters:
observable (HermitianPauliSum) – The HermitianPauliSum observable to estimate.
circuit (Circuit) – The Circuit whose state to estimate the observable on.
_shots (int | ShotsPerGroup | None) – Unused - included for interface consistency but ignored since this estimator
simulation. (only supports state vector)
- Return type:
- validate_shots_type(shots_type: Type[int | ShotsPerGroup | None]) list[str]
Validate that the sampler supports the given shots type. Return a list of error messages if not supported.
- Parameters:
shots_type (Type[int | ShotsPerGroup | None])
- Return type:
list[str]