PySparQ.pysparq.algorithms.qda_solver 源代码

"""
QDA (Quantum Discrete Adiabatic) Linear System Solver Implementation
"""

from typing import Callable

import numpy as np
import pysparq as ps


[文档] def compute_fs(s: float, kappa: float, p: float) -> float: """Compute the interpolation parameter f(s).""" ...
[文档] def compute_rotation_matrix(fs: float) -> list[complex]: """Compute the rotation matrix R_s for block encoding.""" ...
[文档] def chebyshev_T(n: int, x: float) -> float: """Compute Chebyshev polynomial T_n(x).""" ...
[文档] def dolph_chebyshev(epsilon: float, l: int, phi: float) -> float: """Compute Dolph-Chebyshev window function.""" ...
[文档] def compute_fourier_coeffs(epsilon: float, l: int) -> list[float]: """Compute Fourier coefficients for Dolph-Chebyshev filter.""" ...
[文档] def calculate_angles(coeffs: list[float]) -> list[float]: """Calculate rotation angles from coefficients for state preparation.""" ...
[文档] class BlockEncoding: """Placeholder for block encoding implementation."""
[文档] A: np.ndarray
[文档] data_size: int
_condition_regs: list[str] _condition_bits: list[tuple[str | int, int]] def __init__(self, A: np.ndarray, data_size: int = ...) -> None: ...
[文档] def conditioned_by_all_ones( self, conds: str | list[str] ) -> "BlockEncoding": ...
def __call__(self, state: ps.SparseState) -> None: ...
[文档] def dag(self, state: ps.SparseState) -> None: ...
[文档] class StatePreparation: """Placeholder for state preparation implementation."""
[文档] b: np.ndarray
_condition_regs: list[str] _condition_bits: list[tuple[str | int, int]] def __init__(self, b: np.ndarray) -> None: ...
[文档] def conditioned_by_all_ones( self, conds: str | list[str] ) -> "StatePreparation": ...
def __call__(self, state: ps.SparseState) -> None: ...
[文档] def dag(self, state: ps.SparseState) -> None: ...
[文档] class BlockEncodingHs: """Block encoding of the interpolating Hamiltonian H(s)."""
[文档] enc_A: BlockEncoding
[文档] enc_b: StatePreparation
[文档] main_reg: str
[文档] anc_UA: str
[文档] anc_1: str
[文档] anc_2: str
[文档] anc_3: str
[文档] anc_4: str
[文档] fs: float
[文档] R_s: list[complex]
_condition_regs: list[str] _condition_bits: list[tuple[str | int, int]] def __init__( self, enc_A: BlockEncoding, enc_b: StatePreparation, main_reg: str, anc_UA: str, anc_1: str, anc_2: str, anc_3: str, anc_4: str, fs: float, ) -> None: ...
[文档] def conditioned_by_all_ones( self, conds: str | list[str] ) -> "BlockEncodingHs": ...
def __call__(self, state: ps.SparseState) -> None: ...
[文档] def dag(self, state: ps.SparseState) -> None: ...
[文档] class BlockEncodingHsPD: """Positive-definite version of block encoding H(s)."""
[文档] enc_A: BlockEncoding
[文档] enc_b: StatePreparation
[文档] main_reg: str
[文档] anc_UA: str
[文档] anc_1: str
[文档] anc_2: str
[文档] anc_3: str
[文档] anc_4: str
[文档] fs: float
[文档] R_s: list[complex]
def __init__( self, enc_A: BlockEncoding, enc_b: StatePreparation, main_reg: str, anc_UA: str, anc_1: str, anc_2: str, anc_3: str, anc_4: str, fs: float, ) -> None: ... def __call__(self, state: ps.SparseState) -> None: ...
[文档] class WalkS: """Quantum walk operator at parameter s."""
[文档] main_reg: str
[文档] anc_UA: str
[文档] anc_1: str
[文档] anc_2: str
[文档] anc_3: str
[文档] anc_4: str
[文档] s: float
[文档] kappa: float
[文档] p: float
[文档] is_positive_definite: bool
[文档] fs: float
[文档] phase: complex
[文档] enc_Hs: BlockEncodingHs | BlockEncodingHsPD
_condition_regs: list[str] _condition_bits: list[tuple[str | int, int]] def __init__( self, enc_A: BlockEncoding, enc_b: StatePreparation, main_reg: str, anc_UA: str, anc_1: str, anc_2: str, anc_3: str, anc_4: str, s: float, kappa: float, p: float, is_positive_definite: bool = ..., ) -> None: ...
[文档] def conditioned_by_all_ones( self, conds: str | list[str] ) -> "WalkS": ...
[文档] def conditioned_by_bit(self, reg: str, pos: int) -> "WalkS": ...
[文档] def clear_conditions(self) -> None: ...
def __call__(self, state: ps.SparseState) -> None: ...
[文档] def dag(self, state: ps.SparseState) -> None: ...
[文档] class LCU: """Linear Combination of Unitaries for QDA."""
[文档] walk: WalkS
[文档] index_reg: str
[文档] log_file: str
[文档] index_size: int
def __init__(self, walk: WalkS, index_reg: str, log_file: str = ...) -> None: ... def __call__(self, state: ps.SparseState) -> None: ...
[文档] def dag(self, state: ps.SparseState) -> None: ...
[文档] class Filtering: """Dolph-Chebyshev filtering for QDA."""
[文档] walk: WalkS
[文档] index_reg: str
[文档] anc_h: str
[文档] epsilon: float
[文档] l: int
[文档] coeffs: list[float]
def __init__( self, walk: WalkS, index_reg: str, anc_h: str, epsilon: float = ..., l: int = ..., ) -> None: ... def __call__(self, state: ps.SparseState) -> float: ...
[文档] def classical_to_quantum( A: np.ndarray, b: np.ndarray ) -> tuple[np.ndarray, np.ndarray, Callable[[np.ndarray], np.ndarray]]: """Convert classical linear system to quantum-compatible form.""" ...
[文档] def qda_solve( A: np.ndarray, b: np.ndarray, kappa: float | None = ..., p: float = ..., eps: float = ..., step_rate: float = ..., ) -> np.ndarray: """Solve Ax = b using QDA algorithm.""" ...
[文档] def create_qda_demo() -> str: """Generate a demo script for QDA solver.""" ...