PySparQ.pysparq.algorithms.block_encoding

Matrix block encoding algorithms (tridiagonal and QRAM-based).

Classes

BlockEncodingTridiagonal

Block encoding of the tridiagonal matrix alpha*I + beta*T.

BlockEncodingViaQRAM

Block encoding of an arbitrary matrix via QRAM.

PlusOneAndOverflow

Add 1 to a register and track overflow.

UL

Left-multiplication operator based on QRAM block encoding.

UR

Right-multiplication operator based on QRAM block encoding.

Functions

create_block_encoding_demo(→ str)

Return a demo script string showing block encoding usage.

get_tridiagonal_matrix(→ numpy.ndarray)

Return the dim x dim tridiagonal matrix alpha*I + beta*T.

get_u_minus(→ numpy.ndarray)

Return the size x size up-shift (superdiagonal) matrix.

get_u_plus(→ numpy.ndarray)

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)[源代码]

Block encoding of the tridiagonal matrix alpha*I + beta*T.

clear_conditions() → None[源代码]
conditioned_by_all_ones(conds: str | list[str]) → BlockEncodingTridiagonal[源代码]
conditioned_by_bit(reg: str | int, pos: int) → BlockEncodingTridiagonal[源代码]
conditioned_by_nonzeros(conds: str | list[str]) → BlockEncodingTridiagonal[源代码]
dag(state: SparseState) → None[源代码]
alpha: float[源代码]
anc_UA: str[源代码]
beta: float[源代码]
main_reg: str[源代码]
prep_state: list[complex][源代码]
class PySparQ.pysparq.algorithms.block_encoding.BlockEncodingViaQRAM(qram: QRAMCircuit_qutrit, column_index: str, row_index: str, data_size: int, rational_size: int)[源代码]

Block encoding of an arbitrary matrix via QRAM.

clear_conditions() → None[源代码]
conditioned_by_all_ones(conds: str | list[str]) → BlockEncodingViaQRAM[源代码]
conditioned_by_bit(reg: str | int, pos: int) → BlockEncodingViaQRAM[源代码]
conditioned_by_nonzeros(conds: str | list[str]) → BlockEncodingViaQRAM[源代码]
dag(state: SparseState) → None[源代码]
column_index: str[源代码]
data_size: int[源代码]
qram: QRAMCircuit_qutrit[源代码]
rational_size: int[源代码]
row_index: str[源代码]
class PySparQ.pysparq.algorithms.block_encoding.PlusOneAndOverflow(main_reg: str, overflow: str)[源代码]

Add 1 to a register and track overflow.

clear_conditions() → None[源代码]
conditioned_by_all_ones(conds: str | list[str]) → PlusOneAndOverflow[源代码]
conditioned_by_bit(reg: str | int, pos: int) → PlusOneAndOverflow[源代码]
conditioned_by_nonzeros(conds: str | list[str]) → PlusOneAndOverflow[源代码]
conditioned_by_value(reg: str | int, value: int) → PlusOneAndOverflow[源代码]
dag(state: SparseState) → None[源代码]
main_reg: str[源代码]
overflow: str[源代码]
class PySparQ.pysparq.algorithms.block_encoding.UL(qram: QRAMCircuit_qutrit, row_index: str, column_index: str, data_size: int, rational_size: int)[源代码]

Left-multiplication operator based on QRAM block encoding.

clear_conditions() → None[源代码]
conditioned_by_all_ones(conds: str | list[str]) → UL[源代码]
conditioned_by_bit(reg: str | int, pos: int) → UL[源代码]
conditioned_by_nonzeros(conds: str | list[str]) → UL[源代码]
dag(state: SparseState) → None[源代码]
addr_size: int[源代码]
column_index: str[源代码]
data_size: int[源代码]
qram: QRAMCircuit_qutrit[源代码]
rational_size: int[源代码]
row_index: str[源代码]
class PySparQ.pysparq.algorithms.block_encoding.UR(qram: QRAMCircuit_qutrit, column_index: str, data_size: int, rational_size: int)[源代码]

Right-multiplication operator based on QRAM block encoding.

clear_conditions() → None[源代码]
conditioned_by_all_ones(conds: str | list[str]) → UR[源代码]
conditioned_by_bit(reg: str | int, pos: int) → UR[源代码]
conditioned_by_nonzeros(conds: str | list[str]) → UR[源代码]
dag(state: SparseState) → None[源代码]
addr_size: int[源代码]
column_index: str[源代码]
data_size: int[源代码]
qram: QRAMCircuit_qutrit[源代码]
rational_size: int[源代码]
PySparQ.pysparq.algorithms.block_encoding.create_block_encoding_demo() → str[源代码]

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[源代码]

Return the dim x dim tridiagonal matrix alpha*I + beta*T.

PySparQ.pysparq.algorithms.block_encoding.get_u_minus(size: int) → numpy.ndarray[源代码]

Return the size x size up-shift (superdiagonal) matrix.

PySparQ.pysparq.algorithms.block_encoding.get_u_plus(size: int) → numpy.ndarray[源代码]

Return the size x size down-shift (subdiagonal) matrix.