|View source on GitHub|
Prepares the circuits to perform VPE at a fixed time
openfermion.circuits.vpe_circuits_single_timestep( qubits: Sequence[cirq.Qid], prep: cirq.Circuit, evolve: cirq.Circuit, target_qubit: cirq.Qid, rotation_set: Optional[Sequence] = None ) -> Sequence[cirq.Circuit]
Puts together the set of pre- and post-rotations to implement VPE at for a given state preparation and time evolution.
prep [cirq.Circuit] -- The circuit to prepare the target state
(|psi_s>+|psi_r>) from |0>+|1>
evolve [cirq.Circuit] -- The circuit to evolve for time t
target_qubit [cirq.Qid] -- The qubit on which the phase
function is encoded
rotation_set [Sequence] -- A set of initial and final rotations for the
target qubit. We average the phase function estimation over multiple
such rotations to cancel out readout noise, final T1 decay, etc.
The standard rotation set is typically sufficient for these
purposes. The first element of each gate is the multiplier to get
the phase function; we do not need this for this function.
If rotation_set is set to None, the 'standard rotation set' of all possible X and Y rotations before and after the circuit is used.