Skip to content

propaq.hybrid

Hybrid Schrödinger–Heisenberg expectation values: contract an already back-propagated observable against a matrix product state.

Requires the hybrid extra (pip install "propaq[hybrid]"). See Hybrid simulation.

hybrid

Hybrid Schrodinger-Heisenberg expectation values.

For a circuit C = C1 . C2, splits into a Heisenberg half and a Schrodinger half (|Psi> = C2|Psi_0>, as an MPS via quimb). hybrid_expectation_value contracts every term of theta against |Psi> in one native call.

Requires the quimb optional dependency (pip install propaq[hybrid]).

Functions:

Name Description
hybrid_expectation_value

Computes <Psi|theta|Psi> for an already Heisenberg-propagated

hybrid_expectation_value

hybrid_expectation_value(propagated_observable: AbstractTermSum, circuit2: QuantumCircuit | MatrixProductState, initial_state: int = 0) -> float

Computes <Psi|theta|Psi> for an already Heisenberg-propagated observable theta and |Psi> = C2|Psi_0>.

Parameters:

Name Type Description Default
propagated_observable AbstractTermSum

theta = C1^dagger O C1, already propagated

required
circuit2 QuantumCircuit | MatrixProductState

The Schrodinger half. Either a plain Qiskit QuantumCircuit, or an already-built quimb MatrixProductState representing |Psi> = C2|Psi_0> directly

required
initial_state int

Computational basis reference state as a bitstring integer (bit q = qubit q), matching AbstractPropagator.expectation_value's convention. Only used when circuit2 is a QuantumCircuit.

0

Returns:

Type Description
float

The real expectation value.