guppyalgos.algorithms.block_encoding.qsvt

Quantum singular value transformation algorithms module.

Classes

QSVT()

Guppy struct representing the QSVT algorithm.

class guppyalgos.algorithms.block_encoding.qsvt.QSVT

Guppy struct representing the QSVT algorithm.

This function implements the QSVT algorithm as described in https://journals.aps.org/prxquantum/abstract/10.1103/PRXQuantum.2.040203, following the convention used in Appendix A2 of the paper. Given a function for the desired LCU it composes it with QSP phases. the LCU is projected on to the signal register and polynomial transform is performed on the LCU block encoded matrix.

The tranfromed matrix is then obtained by postselecting on the ancilla signal qubit and the prepare qubits.

Variables:
  • lcu – Guppy struct performing the LCU.

  • lcu_dagger – Guppy struct performing the LCU dagger.

  • phases – List of QSP phases in the reflection convention.

compose(signal, prep_qreg, select_qreg)

Apply the QSVT.

Parameters:
  • signal – The signal qubit for QSP phases.

  • prep_qreg – The PREPARE register.

  • select_qreg – The SELECT register.

lcu
lcu_dagger
phases