PauliBlockEncoding function

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.Simulation

Package: Microsoft.Quantum.Standard

Creates a block-encoding unitary for a Hamiltonian.

The Hamiltonian $H=\sum_{j}\alpha_j P_j$ is described by a sum of Pauli terms $P_j$, each with real coefficient $\alpha_j$.

function PauliBlockEncoding (generatorSystem : Microsoft.Quantum.Simulation.GeneratorSystem) : (Double, Microsoft.Quantum.Simulation.BlockEncodingReflection)

Input

generatorSystem : GeneratorSystem

A GeneratorSystem that describes $H$ as a sum of Pauli terms

Output : (Double,BlockEncodingReflection)

First parameter

The one-norm of coefficients $\alpha=\sum_{j}|\alpha_j|$.

Second parameter

A BlockEncodingReflection unitary $U$ of the Hamiltonian $H$. As this unitary satisfies $U^2 = I$, it is also a reflection.

Remarks

This is obtained by preparing and unpreparing the state $\sum_{j}\sqrt{\alpha_j/\alpha}\ket{j}$, and constructing a multiply-controlled unitary PrepareArbitraryStateD operation and MultiplexOperationsFromGenerator operation.