QuantumPhaseEstimation operation

Warning

This documentation refers to the Classic QDK, which has been replaced by the Modern QDK.

Please see https://aka.ms/qdk.api for the API documentation for the Modern QDK.

Namespace: Microsoft.Quantum.Characterization

Package: Microsoft.Quantum.Standard

Performs the quantum phase estimation algorithm for a given oracle U and targetState, reading the phase into a big-endian quantum register.

operation QuantumPhaseEstimation (oracle : Microsoft.Quantum.Oracles.DiscreteOracle, targetState : Qubit[], controlRegister : Microsoft.Quantum.Arithmetic.BigEndian) : Unit is Adj + Ctl

Input

oracle : DiscreteOracle

An operation implementing $U^m$ for given integer powers m.

targetState : Qubit[]

A quantum register representing the state $\ket{\phi}$ acted on by $U$. If $\ket{\phi}$ is an eigenstate of $U$, $U\ket{\phi} = e^{i\phi} \ket{\phi}$ for $\phi \in [0, 2\pi)$ an unknown phase.

controlRegister : BigEndian

A big-endian representation integer register that can be used to control the provided oracle, and that will contain the a representation of $\phi$ following the application of this operation. The controlRegister is assumed to start in the initial state $\ket{00\cdots 0}$, where the length of the register indicates the desired precision.

Output : Unit