quantumlib / Qualtran

Qᴜᴀʟᴛʀᴀɴ is a Python library for expressing and analyzing Fault Tolerant Quantum algorithms.
https://qualtran.readthedocs.io/en/latest/
Apache License 2.0
173 stars 40 forks source link

Add `Unitary` and `TensorProduct` block encodings #1094

Closed charlesyuan314 closed 3 months ago

charlesyuan314 commented 3 months ago

Add instances of BlockEncoding that implement 1) a trivial block encoding of a unitary operator and 2) a tensor product of block encodings.

Extend the BlockEncoding interface to expose the properties alpha, ancilla_bitsize, and epsilon of block encodings.

With the newly designed block encoding interface, the selection_registers, junk_registers, and target_registers methods should now be considered deprecated and will be removed in a future PR.