quri_parts.core.measurement package¶
- PauliMeasurementCircuitGeneration¶
PauliMeasurementCircuitGeneration represents a function that generates a circuit (a gate list) for measuring mutually commuting Pauli operators.
alias of
Callable[[Set[PauliLabel]],Sequence[QuantumGate]]
- PauliReconstructor¶
PauliReconstructor represents a function that reconstructs a value of a Pauli operator from a measurement result of its measurement circuit.
alias of
Callable[[int],int]
- PauliReconstructorFactory¶
PauliReconstructorFactory represents a factory function that returns a
PauliReconstructorfor a given Pauli operator.alias of
Callable[[PauliLabel],Callable[[int],int]]
- class CommutablePauliSetMeasurement(*args, **kwargs)¶
Bases:
ProtocolRepresents a measurement scheme for a set of commutable Pauli operators.
- abstract property pauli_set: core.operator.pauli.CommutablePauliSet¶
A set of commutable Pauli operators subject to the measurement.
- abstract property measurement_circuit: Sequence[QuantumGate]¶
A circuit required to measure the given commutable Pauli operators at once.
- abstract property pauli_reconstructor_factory: core.measurement.interface.PauliReconstructorFactory¶
A factory of
PauliReconstructorthat reconstructs a value of a Pauli operator from a measurement result of the measurement circuit.
- class CommutablePauliSetMeasurementTuple(pauli_set, measurement_circuit, pauli_reconstructor_factory)¶
Bases:
NamedTuple- Parameters:
pauli_set (core.operator.pauli.CommutablePauliSet)
measurement_circuit (Sequence[QuantumGate])
pauli_reconstructor_factory (core.measurement.interface.PauliReconstructorFactory)
- pauli_set: CommutablePauliSet¶
Alias for field number 0
- measurement_circuit: Sequence[QuantumGate]¶
Alias for field number 1
- pauli_reconstructor_factory: PauliReconstructorFactory¶
Alias for field number 2
- CommutablePauliSetMeasurementFactory¶
Represents a function that performs grouping of Pauli operators into groups of commutable Pauli operators and returns measurement schemes for them.
alias of
Callable[[Operator|Iterable[PauliLabel]],Iterable[CommutablePauliSetMeasurement]]
- bitwise_commuting_pauli_measurement_circuit(pauli_set)¶
An implementation of
PauliMeasurementCircuitGeneration, which generates a circuit (a gate list) for a “trivial” measurement of bitwise- commuting Pauli strings.The “trivial” measurement of a Pauli string refers to a measurement in computational basis preceded by single qubit rotations to map each Pauli matrix on each qubit to \(Z\). For example, if the Pauli string contains \(X\) (\(Y\)) at a qubit index \(i\), then (an \(S^\dagger\) gate and) an Hadamard gate is applied on the qubit \(i\) before performing the \(Z\) measurements on all qubits.
- Parameters:
pauli_set (core.operator.pauli.CommutablePauliSet)
- Return type:
Sequence[QuantumGate]
- bitwise_pauli_reconstructor_factory(pauli)¶
A factory of a function that reconstructs a value of the given Pauli operator from a result of a “trivial” measurement of bitwise-commuting Pauli strings.
The “trivial” measurement of a Pauli string refers to a measurement in computational basis preceded by single qubit rotations to map each Pauli matrix on each qubit to \(Z\). For example, if the Pauli string contains \(X\) (\(Y\)) at a qubit index \(i\), then (an \(S^\dagger\) gate and) an Hadamard gate is applied on the qubit \(i\) before performing the \(Z\) measurements on all qubits.
- Parameters:
pauli (PauliLabel)
- Return type:
core.measurement.interface.PauliReconstructor
- bitwise_commuting_pauli_measurement(paulis)¶
Groups the given Pauli operators into sets of bitwise commuting Pauli operators and returns measurement schemes for them.
- Parameters:
paulis (Operator | Iterable[PauliLabel])
- Return type:
Collection[CommutablePauliSetMeasurement]
- individual_pauli_measurement(paulis)¶
Returns measurement schemes for Pauli operators where each operator is measured individually (i.e. no grouping).
- Parameters:
paulis (Operator | Iterable[PauliLabel])
- Return type:
Collection[CommutablePauliSetMeasurement]
- class CachedMeasurementFactory(measurement_factory)¶
Bases:
objectA class decorator that converts a
CommutablePauliSetMeasurementFactoryto a newCommutablePauliSetMeasurementFactoryruns the same grouping algorithm but caches grouping result for later usage.Example: >>> cached_measurement_factory = CachedMeasuremetFactory( … bitwise_commuting_pauli_measurement … ) >>> operator = Operator({ … pauli_label(“X0 Y1”): 1, … pauli_label(“X0 Z2”): 2, … pauli_label(“Y0 Z2”): 3, … PAULI_IDENTITY: 4 … }) >>> cached_measurement_factory(operator)
- Parameters:
measurement_factory (CommutablePauliSetMeasurementFactory)
- property cached_groups: dict[frozenset[tuple[PauliLabel, complex]], Iterable[CommutablePauliSetMeasurement]]¶