PySparQ.pysparq.algorithms.block_encoding¶
Matrix block encoding algorithms (tridiagonal and QRAM-based).
Classes¶
Block encoding of the tridiagonal matrix alpha*I + beta*T. |
|
Block encoding of an arbitrary matrix via QRAM. |
|
Add 1 to a register and track overflow. |
|
Left-multiplication operator based on QRAM block encoding. |
|
Right-multiplication operator based on QRAM block encoding. |
Functions¶
|
Return a demo script string showing block encoding usage. |
|
Return the dim x dim tridiagonal matrix alpha*I + beta*T. |
|
Return the size x size up-shift (superdiagonal) matrix. |
|
Return the size x size down-shift (subdiagonal) matrix. |
Module Contents¶
- class PySparQ.pysparq.algorithms.block_encoding.BlockEncodingTridiagonal(main_reg: str, anc_UA: str, alpha: float, beta: float)[source]¶
Block encoding of the tridiagonal matrix alpha*I + beta*T.
- dag(state: SparseState) None[source]¶
- class PySparQ.pysparq.algorithms.block_encoding.BlockEncodingViaQRAM(qram: QRAMCircuit_qutrit, column_index: str, row_index: str, data_size: int, rational_size: int)[source]¶
Block encoding of an arbitrary matrix via QRAM.
- dag(state: SparseState) None[source]¶
- class PySparQ.pysparq.algorithms.block_encoding.PlusOneAndOverflow(main_reg: str, overflow: str)[source]¶
Add 1 to a register and track overflow.
- dag(state: SparseState) None[source]¶
- class PySparQ.pysparq.algorithms.block_encoding.UL(qram: QRAMCircuit_qutrit, row_index: str, column_index: str, data_size: int, rational_size: int)[source]¶
Left-multiplication operator based on QRAM block encoding.
- dag(state: SparseState) None[source]¶
- class PySparQ.pysparq.algorithms.block_encoding.UR(qram: QRAMCircuit_qutrit, column_index: str, data_size: int, rational_size: int)[source]¶
Right-multiplication operator based on QRAM block encoding.
- dag(state: SparseState) None[source]¶
- PySparQ.pysparq.algorithms.block_encoding.create_block_encoding_demo() str[source]¶
Return a demo script string showing block encoding usage.
- PySparQ.pysparq.algorithms.block_encoding.get_tridiagonal_matrix(alpha: float, beta: float, dim: int) numpy.ndarray[source]¶
Return the dim x dim tridiagonal matrix alpha*I + beta*T.
- PySparQ.pysparq.algorithms.block_encoding.get_u_minus(size: int) numpy.ndarray[source]¶
Return the size x size up-shift (superdiagonal) matrix.
- PySparQ.pysparq.algorithms.block_encoding.get_u_plus(size: int) numpy.ndarray[source]¶
Return the size x size down-shift (subdiagonal) matrix.