PySparQ.pysparq.algorithms.cks_solver

CKS (Childs-Kothari-Somma) Linear System Solver Implementation

Classes

ChebyshevPolynomialCoefficient

Computes Chebyshev polynomial coefficients for quantum walk.

CondRotQW

Conditional rotation for quantum walk.

LCUContainer

LCU (Linear Combination of Unitaries) container for CKS.

QuantumBinarySearch

Quantum binary search for sparse matrix access.

QuantumWalk

Quantum walk operator for CKS algorithm.

QuantumWalkNSteps

Multiple quantum walk steps for CKS algorithm.

SparseMatrix

Sparse matrix representation for CKS algorithm.

SparseMatrixData

Sparse matrix data for quantum simulation.

TOperator

T operator for CKS algorithm.

Functions

cks_solve(→ numpy.ndarray)

Solve Ax = b using CKS quantum linear solver.

create_cks_demo(→ str)

Generate a demo script for CKS solver.

get_coef_common(→ list[complex])

Get rotation matrix coefficients for general (signed) matrix elements.

get_coef_positive_only(→ list[complex])

Get rotation matrix coefficients for positive-only matrix elements.

make_walk_angle_func(→ Callable[[int, int, int], ...)

Create walk angle function for a matrix.

Module Contents

class PySparQ.pysparq.algorithms.cks_solver.ChebyshevPolynomialCoefficient(b: int)[源代码]

Computes Chebyshev polynomial coefficients for quantum walk.

C(Big: int, Small: int) float[源代码]
coef(j: int) float[源代码]
sign(j: int) bool[源代码]
step(j: int) int[源代码]
b: int[源代码]
class PySparQ.pysparq.algorithms.cks_solver.CondRotQW(j_reg: str, k_reg: str, data_reg: str, output_reg: str, mat: SparseMatrix)[源代码]

Conditional rotation for quantum walk.

clear_conditions() None[源代码]
conditioned_by_all_ones(conds: str | int | list[str | int]) CondRotQW[源代码]
conditioned_by_bit(reg: str | int, pos: int) CondRotQW[源代码]
conditioned_by_nonzeros(cond: str | int | list[str | int]) CondRotQW[源代码]
dag(state: pysparq.SparseState) None[源代码]
data_reg: str[源代码]
j_reg: str[源代码]
k_reg: str[源代码]
mat: SparseMatrix[源代码]
output_reg: str[源代码]
class PySparQ.pysparq.algorithms.cks_solver.LCUContainer(mat: SparseMatrix, kappa: float, eps: float, qram: pysparq.QRAMCircuit_qutrit | None = ...)[源代码]

LCU (Linear Combination of Unitaries) container for CKS.

clear_conditions() None[源代码]
conditioned_by_all_ones(conds: str | int | list[str | int]) LCUContainer[源代码]
conditioned_by_bit(reg: str | int, pos: int) LCUContainer[源代码]
conditioned_by_nonzeros(cond: str | int | list[str | int]) LCUContainer[源代码]
dag(state: pysparq.SparseState) None[源代码]
external_input(init_op: Callable[[pysparq.SparseState], None]) None[源代码]
get_input_reg() str[源代码]
initialize() None[源代码]
iterate() bool[源代码]
b: int[源代码]
chebyshev: ChebyshevPolynomialCoefficient[源代码]
current_state: pysparq.SparseState | None[源代码]
eps: float[源代码]
j0: int[源代码]
kappa: float[源代码]
step_state: pysparq.SparseState | None[源代码]
walk: QuantumWalkNSteps[源代码]
class PySparQ.pysparq.algorithms.cks_solver.QuantumBinarySearch(qram: pysparq.QRAMCircuit_qutrit, address_offset_reg: str, total_length: int, target_reg: str, result_reg: str)[源代码]

Quantum binary search for sparse matrix access.

clear_conditions() None[源代码]
conditioned_by_all_ones(conds: str | int | list[str | int]) QuantumBinarySearch[源代码]
conditioned_by_bit(reg: str | int, pos: int) QuantumBinarySearch[源代码]
conditioned_by_nonzeros(cond: str | int | list[str | int]) QuantumBinarySearch[源代码]
dag(state: pysparq.SparseState) None[源代码]
address_offset_reg: str[源代码]
max_step: int[源代码]
qram: pysparq.QRAMCircuit_qutrit[源代码]
result_reg: str[源代码]
target_reg: str[源代码]
total_length: int[源代码]
class PySparQ.pysparq.algorithms.cks_solver.QuantumWalk(qram: pysparq.QRAMCircuit_qutrit, j_reg: str, b1_reg: str, k_reg: str, b2_reg: str, j_comp_reg: str, k_comp_reg: str, data_offset_reg: str, sparse_offset_reg: str, mat: SparseMatrix)[源代码]

Quantum walk operator for CKS algorithm.

clear_conditions() None[源代码]
conditioned_by_all_ones(conds: str | int | list[str | int]) QuantumWalk[源代码]
conditioned_by_bit(reg: str | int, pos: int) QuantumWalk[源代码]
conditioned_by_nonzeros(cond: str | int | list[str | int]) QuantumWalk[源代码]
dag(state: pysparq.SparseState) None[源代码]
b1_reg: str[源代码]
b2_reg: str[源代码]
data_offset_reg: str[源代码]
j_comp_reg: str[源代码]
j_reg: str[源代码]
k_comp_reg: str[源代码]
k_reg: str[源代码]
mat: SparseMatrix[源代码]
qram: pysparq.QRAMCircuit_qutrit[源代码]
sparse_offset_reg: str[源代码]
class PySparQ.pysparq.algorithms.cks_solver.QuantumWalkNSteps(mat: SparseMatrix, qram: pysparq.QRAMCircuit_qutrit | None = ...)[源代码]

Multiple quantum walk steps for CKS algorithm.

clear_conditions() None[源代码]
conditioned_by_all_ones(conds: str | int | list[str | int]) QuantumWalkNSteps[源代码]
conditioned_by_bit(reg: str | int, pos: int) QuantumWalkNSteps[源代码]
conditioned_by_nonzeros(cond: str | int | list[str | int]) QuantumWalkNSteps[源代码]
create_state() pysparq.SparseState[源代码]
dag(state: pysparq.SparseState) None[源代码]
first_step(state: pysparq.SparseState) None[源代码]
init_environment(state: pysparq.SparseState) None[源代码]
make_n_step_state(n_steps: int) pysparq.SparseState[源代码]
step(state: pysparq.SparseState) None[源代码]
addr_size: int[源代码]
b1: str[源代码]
b2: str[源代码]
data_offset: str[源代码]
data_size: int[源代码]
default_reg_size: int[源代码]
j: str[源代码]
j_comp: str[源代码]
k: str[源代码]
k_comp: str[源代码]
mat: SparseMatrix[源代码]
n_row: int[源代码]
nnz_col: int[源代码]
qram: pysparq.QRAMCircuit_qutrit[源代码]
sparse_offset: str[源代码]
class PySparQ.pysparq.algorithms.cks_solver.SparseMatrix(n_row: int, nnz_col: int, data: list[int], data_size: int, positive_only: bool = ...)[源代码]

Sparse matrix representation for CKS algorithm.

classmethod from_dense(matrix: numpy.ndarray, data_size: int = ..., positive_only: bool | None = ...) SparseMatrix[源代码]
get_data() list[int][源代码]
get_sparsity_offset() int[源代码]
get_walk_angle_func() Callable[[int, int, int], list[complex]][源代码]
data: list[int][源代码]
data_size: int[源代码]
n_row: int[源代码]
nnz_col: int[源代码]
positive_only: bool[源代码]
sparsity_offset: int[源代码]
class PySparQ.pysparq.algorithms.cks_solver.SparseMatrixData(n_row: int, nnz_col: int, data: list[int], data_size: int, positive_only: bool = ..., sparsity_offset: int = ...)[源代码]

Sparse matrix data for quantum simulation.

data: list[int][源代码]
data_size: int[源代码]
n_row: int[源代码]
nnz_col: int[源代码]
positive_only: bool[源代码]
sparsity_offset: int[源代码]
class PySparQ.pysparq.algorithms.cks_solver.TOperator(qram: pysparq.QRAMCircuit_qutrit, data_offset_reg: str, sparse_offset_reg: str, j_reg: str, b1_reg: str, k_reg: str, b2_reg: str, search_result_reg: str, nnz_col: int, data_size: int, mat: SparseMatrix)[源代码]

T operator for CKS algorithm.

clear_conditions() None[源代码]
conditioned_by_all_ones(conds: str | int | list[str | int]) TOperator[源代码]
conditioned_by_bit(reg: str | int, pos: int) TOperator[源代码]
conditioned_by_nonzeros(cond: str | int | list[str | int]) TOperator[源代码]
dag(state: pysparq.SparseState) None[源代码]
b1_reg: str[源代码]
b2_reg: str[源代码]
data_offset_reg: str[源代码]
data_size: int[源代码]
j_reg: str[源代码]
k_reg: str[源代码]
mat: SparseMatrix[源代码]
nnz_col: int[源代码]
qram: pysparq.QRAMCircuit_qutrit[源代码]
search_result_reg: str[源代码]
sparse_offset_reg: str[源代码]
PySparQ.pysparq.algorithms.cks_solver.cks_solve(A: numpy.ndarray, b: numpy.ndarray, kappa: float | None = ..., eps: float = ..., data_size: int = ...) numpy.ndarray[源代码]

Solve Ax = b using CKS quantum linear solver.

PySparQ.pysparq.algorithms.cks_solver.create_cks_demo() str[源代码]

Generate a demo script for CKS solver.

PySparQ.pysparq.algorithms.cks_solver.get_coef_common(mat_data_size: int, v: int, row: int, col: int) list[complex][源代码]

Get rotation matrix coefficients for general (signed) matrix elements.

PySparQ.pysparq.algorithms.cks_solver.get_coef_positive_only(mat_data_size: int, v: int, row: int, col: int) list[complex][源代码]

Get rotation matrix coefficients for positive-only matrix elements.

PySparQ.pysparq.algorithms.cks_solver.make_walk_angle_func(mat_data_size: int, positive_only: bool) Callable[[int, int, int], list[complex]][源代码]

Create walk angle function for a matrix.