BlockEncodingToReflection 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

Converts a BlockEncoding into an equivalent BLockEncodingReflection.

That is, given a BlockEncoding unitary $U$ that encodes some operator $H$ of interest, converts it into a BlockEncodingReflection $U'$ that encodes the same operator, but also satisfies $U'^\dagger = U'$. This increases the size of the auxiliary register of $U$ by one qubit.

function BlockEncodingToReflection (blockEncoding : Microsoft.Quantum.Simulation.BlockEncoding) : Microsoft.Quantum.Simulation.BlockEncodingReflection

Input

blockEncoding : BlockEncoding

An operation to be converted into a reflection, and that is represented by a unitary matrix $U$.

Output : BlockEncodingReflection

A operation represented by a unitary matrix $U'$ acting jointly on registers a and s that block-encodes $H$, and satisfies $U'^\dagger = U'$.

Remarks

This increases the size of the auxiliary register of $U$ by one qubit.

References

See Also