pyqres.primitives

门操作

class pyqres.primitives.gates.Hadamard(reg_list, param_list=None)[源代码]

基类:Primitive

__init__(reg_list, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.gates.Hadamard_NDigits(reg_list, param_list)[源代码]

基类:Primitive

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.gates.X(reg_list, param_list=None)[源代码]

基类:Primitive

__init__(reg_list, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.gates.Y(reg_list, param_list)[源代码]

基类:Primitive

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.gates.CNOT(reg_list, param_list=None)[源代码]

基类:Primitive

__init__(reg_list, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.gates.Toffoli(reg_list, param_list=None)[源代码]

基类:Primitive

__init__(reg_list, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.gates.Rx(reg_list, param_list)[源代码]

基类:Primitive

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.gates.Ry(reg_list, param_list)[源代码]

基类:Primitive

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.gates.PhaseGate(reg_list, param_list)[源代码]

基类:Primitive

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.gates.Rz(reg_list, param_list)[源代码]

基类:Primitive

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.gates.U3(reg_list, param_list)[源代码]

基类:Primitive

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]

新门 (Phase 2)

class pyqres.primitives.gates.Hadamard_Bool(reg_list, param_list=None)[源代码]

基类:Primitive

Hadamard gate on a single boolean qubit.

Maps |0⟩ → (|0⟩+|1⟩)/√2, |1⟩ → (|0⟩−|1⟩)/√2. Self-conjugate: H† = H.

__init__(reg_list, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.gates.Hadamard_PartialQubit(reg_list, param_list)[源代码]

基类:Primitive

Hadamard on a subset of qubits within a register.

参数:
  • reg_list -- [register_name]

  • param_list -- [set of qubit positions (int)] e.g. {0, 2}

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.gates.Sgate(reg_list, param_list=None)[源代码]

基类:Primitive

Phase gate S = diag(1, i) on a boolean qubit.

Also known as P-gate or Phase gate. Clifford: T-count = 0.

__init__(reg_list, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.gates.Tgate(reg_list, param_list=None)[源代码]

基类:Primitive

T gate = diag(1, e^{iπ/4}) on a boolean qubit.

Non-Clifford. T-count = 4 (fourth root of Z).

__init__(reg_list, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.gates.SXgate(reg_list, param_list=None)[源代码]

基类:Primitive

Square-root of X gate: SX = √X = [[1+i, 1-i], [1-i, 1+i]]/2.

Non-Clifford (depth-2 from T/T†).

__init__(reg_list, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.gates.U2gate(reg_list, param_list)[源代码]

基类:Primitive

Two-parameter unitary gate U2(φ, λ) = [[1, e^{iλ}], [e^{iφ}, -e^{i(φ+λ)]]]/√2.

参数:
  • reg_list -- [register_name]

  • param_list -- [digit_position, phi, lambda_]

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.gates.Swap_Bool_Bool(reg_list, param_list)[源代码]

基类:Primitive

Swap two individual boolean qubits in different registers.

参数:
  • reg_list -- [register1, register2]

  • param_list -- [digit1, digit2]

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.gates.GlobalPhase(reg_list, param_list)[源代码]

基类:Primitive

Global phase gate: multiplies state by e^{iφ}.

Physically unobservable but affects interference. Not a physical resource. T-count = 0 by convention.

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]

算术操作

class pyqres.primitives.arithmetic.Add_UInt_UInt(reg_list, param_list=None)[源代码]

基类:Primitive

__init__(reg_list, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.arithmetic.Add_UInt_UInt_InPlace(reg_list, param_list=None)[源代码]

基类:Primitive

__init__(reg_list, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.arithmetic.Add_UInt_ConstUInt(reg_list, param_list)[源代码]

基类:Primitive

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.arithmetic.Add_ConstUInt(reg_list, param_list)[源代码]

基类:Primitive

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.arithmetic.Mult_UInt_ConstUInt(reg_list, param_list)[源代码]

基类:Primitive

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.arithmetic.ShiftLeft(reg_list, param_list)[源代码]

基类:Primitive

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.arithmetic.ShiftRight(reg_list, param_list)[源代码]

基类:Primitive

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.arithmetic.Compare_UInt_UInt(reg_list, param_list=None)[源代码]

基类:Primitive

__init__(reg_list, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.arithmetic.Less_UInt_UInt(reg_list, param_list=None)[源代码]

基类:Primitive

__init__(reg_list, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.arithmetic.GetMid_UInt_UInt(reg_list, param_list=None)[源代码]

基类:Primitive

__init__(reg_list, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.arithmetic.Assign(reg_list, param_list=None)[源代码]

基类:Primitive

__init__(reg_list, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.arithmetic.Swap_General_General(reg_list, param_list=None)[源代码]

基类:Primitive

__init__(reg_list, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]

新算术操作 (Phase 2)

class pyqres.primitives.arithmetic.Add_Mult_UInt_ConstUInt(reg_list, param_list)[源代码]

基类:Primitive

Multiply-add: output = input * multiplier + add_const.

Computes output = input * multiplier + add_const in a single fused operation. Used in block encoding and Shor's algorithm.

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.arithmetic.AddAssign_AnyInt_AnyInt(reg_list, param_list=None)[源代码]

基类:Primitive

In-place addition: dst += src on arbitrary integer types.

Type-flexible in-place addition across Integer register types. Used in CKS TOperator for column position finding.

__init__(reg_list, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.arithmetic.CustomArithmetic(reg_list, param_list)[源代码]

基类:Primitive

Custom classical arithmetic function applied as a quantum operation.

参数:
  • reg_list -- [reg1, reg2, ...] - input and output registers

  • param_list -- [func, in_sz, out_sz] func: callable f(input_values) -> output_values in_sz: total input bit size out_sz: total output bit size

Used in Shor's modular exponentiation.

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.arithmetic.PlusOneAndOverflow(reg_list, param_list=None)[源代码]

基类:Primitive

Increment a register by 1, with separate overflow flag qubit.

Used in block encoding for carry/borrow logic. Inverse = MinusOneAndOverflow (different op, use dagger).

__init__(reg_list, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.arithmetic.GetDataAddr(reg_list, param_list)[源代码]

基类:Primitive

Compute XOR-based data address for QRAM access.

data_addr ^= data_offset + row * row_size + col Self-adjoint: applying twice cancels (XOR property). Used in CKS TOperator for matrix element loading.

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.arithmetic.GetRowAddr(reg_list, param_list)[源代码]

基类:Primitive

Compute XOR-based row address for sparse QRAM access.

row_addr ^= sparse_offset + row * row_size Self-adjoint: applying twice cancels (XOR property). Used in CKS TOperator for column position finding.

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]

QEC 中间层 Primitive

这些 primitive 是 pyqres 与 QEC-compiler 第一版联调使用的冻结中间层。 它们可以通过 pyqres.core.lowering.to_abstract_circuit lowering 为 QEC-compiler AbstractGate,并由 QEC-compiler 继续分解到 MCX/Clifford/rotation/CCZ 路径。

class pyqres.primitives.intermediate.MCX(reg_list=None, param_list=None)[源代码]

基类:Primitive

Multi-controlled X gate. Maps directly to AbstractGate('MCX').

__init__(reg_list=None, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
to_abstract_gates(qubit_map)[源代码]
class pyqres.primitives.intermediate.ADD(reg_list=None, param_list=None)[源代码]

基类:Primitive

N-bit ripple-carry adder. Maps to AbstractGate('ADD', (n_bits,)).

__init__(reg_list=None, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
to_abstract_gates(qubit_map)[源代码]
class pyqres.primitives.intermediate.PLUS_ONE(reg_list=None, param_list=None)[源代码]

基类:Primitive

Increment circuit. Maps to AbstractGate('PLUS_ONE', (n_bits,)).

__init__(reg_list=None, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
to_abstract_gates(qubit_map)[源代码]
class pyqres.primitives.intermediate.REFLECT(reg_list=None, param_list=None)[源代码]

基类:Primitive

Multi-controlled Z (reflection). Maps to AbstractGate('REFLECT', (n_bits,)).

__init__(reg_list=None, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
to_abstract_gates(qubit_map)[源代码]
class pyqres.primitives.intermediate.MOD_ADD(reg_list=None, param_list=None)[源代码]

基类:Primitive

Modular addition a+b mod N. Maps to AbstractGate('MOD_ADD', (modulus,)).

__init__(reg_list=None, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
to_abstract_gates(qubit_map)[源代码]
class pyqres.primitives.intermediate.MOD_MUL(reg_list=None, param_list=None)[源代码]

基类:Primitive

Modular multiplication a*c mod N. Maps to AbstractGate('MOD_MUL', (multiplier, modulus)).

__init__(reg_list=None, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
to_abstract_gates(qubit_map)[源代码]

寄存器操作

class pyqres.primitives.register_ops.SplitRegister(reg_list, param_list)[源代码]

基类:Primitive

Split a register into sub-registers, or merge them back on dagger.

__init__(reg_list, param_list)[源代码]
render_this(indent=0, dagger_ctx=False, controllers_ctx=None)[源代码]
enter(dagger_ctx=False, controllers_ctx=None)[源代码]
exit(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.register_ops.CombineRegister(reg_list, param_list=None)[源代码]

基类:Primitive

__init__(reg_list, param_list=None)[源代码]
enter(dagger_ctx=False, controllers_ctx=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.register_ops.Push(reg_list, param_list)[源代码]

基类:Primitive

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.register_ops.Pop(reg_list, param_list=None)[源代码]

基类:Primitive

__init__(reg_list, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]

新寄存器操作 (Phase 2)

class pyqres.primitives.register_ops.AddRegister(reg_list, param_list)[源代码]

基类:Primitive

Add a new quantum register to the system.

Registers must be declared before they can be used in other operations. Note: this is a system management operation, not a quantum gate. T-count = 0.

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.register_ops.AddRegisterWithHadamard(reg_list, param_list)[源代码]

基类:Primitive

Add a new quantum register initialized with Hadamard superposition.

Equivalent to AddRegister + Hadamard on all qubits. T-count = 0.

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.register_ops.RemoveRegister(reg_list, param_list)[源代码]

基类:Primitive

Remove a quantum register from the system.

Note: this is a system management operation. T-count = 0.

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.register_ops.MoveBackRegister(reg_list, param_list=None)[源代码]

基类:Primitive

Move a register back to its original position in the system.

Used to restore register order after temporary operations. T-count = 0.

__init__(reg_list, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]

变换操作

class pyqres.primitives.transform.QFT(reg_list, param_list=None)[源代码]

基类:Primitive

__init__(reg_list, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.transform.InverseQFT(reg_list, param_list=None)[源代码]

基类:Primitive

__init__(reg_list, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.transform.Reflection_Bool(reg_list, param_list)[源代码]

基类:Primitive

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]

态制备

class pyqres.primitives.state_prep.Normalize(reg_list, param_list=None)[源代码]

基类:Primitive

__init__(reg_list, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.state_prep.ClearZero(reg_list, param_list)[源代码]

基类:Primitive

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.state_prep.Init_Unsafe(reg_list, param_list)[源代码]

基类:Primitive

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.state_prep.Rot_GeneralStatePrep(reg_list, param_list)[源代码]

基类:Primitive

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.state_prep.ViewNormalization(reg_list, param_list=None)[源代码]

基类:Primitive

Apply QRAM view normalization (l2-norm normalization over a view).

Normalizes the amplitude vector within a QRAM memory view. T-count = 0 (no non-Clifford gates needed for normalization).

__init__(reg_list, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]

QRAM

class pyqres.primitives.qram.QRAM(reg_list, param_list)[源代码]

基类:Primitive

Quantum random-access memory load primitive (DISABLED).

Once implemented, will load data from a QRAM circuit at the address in addr_reg into data_reg. Currently raises NotImplementedError on all operational methods.

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.qram.QRAMFast(reg_list, param_list)[源代码]

基类:Primitive

Fast QRAM loading using the bucket-brigade protocol (DISABLED).

Once implemented, will load data from a QRAM circuit at high speed. Currently raises NotImplementedError on all operational methods.

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]

条件旋转

class pyqres.primitives.cond_rot.CondRot_General_Bool(reg_list, param_list=None, angle_function=None)[源代码]

基类:Primitive

Conditional rotation based on rational value register.

Supports two forms: - 2-arg (resource estimation only): reg_list=[cond_reg, target_reg] - 3-arg (simulation): reg_list=[cond_reg, target_reg], param_list=[angle_function]

where angle_function is a Callable[[int], list[complex]].

pysparq requires the 3-arg form: CondRot_General_Bool(reg_in, reg_out, angle_function). angle_function receives the register value and returns a 2x2 unitary matrix.

__init__(reg_list, param_list=None, angle_function=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.cond_rot.CondRot_General_Bool_QW(reg_list, param_list)[源代码]

基类:Primitive

Conditional rotation for quantum walk operations.

Similar to CondRot_General_Bool but optimized for quantum walk style amplitude loading with 2x2 rotation matrices. Uses CondRot_Rational_Bool internally with a matrix-structured angle function.

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.cond_rot.ZeroConditionalPhaseFlip(reg_list, param_list=None)[源代码]

基类:Primitive

Apply phase flip to states where all specified qubits are zero.

__init__(reg_list, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.cond_rot.RangeConditionalPhaseFlip(reg_list, param_list)[源代码]

基类:Primitive

Apply phase flip to states in a specified range.

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.cond_rot.CondRot_Rational_Bool(reg_list, param_list=None)[源代码]

基类:Primitive

Conditional rotation using rational (fractional) angle encoding.

Applies a rotation to the target qubit based on the rational value in the input register. Used in CKS quantum walk and block encoding.

Note: pysparq marks this as self-adjoint (CondRot_Rational_Bool† = CondRot_Rational_Bool).

__init__(reg_list, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.cond_rot.Rot_GeneralUnitary(reg_list, param_list)[源代码]

基类:Primitive

General unitary rotation specified by an arbitrary 2x2 complex matrix.

参数:
  • reg_list -- [register_name]

  • param_list -- [unitary_matrix] where unitary_matrix is a 4-element list [a, b, c, d] representing [[a, b], [c, d]].

Used in block encoding for arbitrary rotation angles.

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]

测量

class pyqres.primitives.measurement.PartialTrace(reg_list, param_list=None)[源代码]

基类:Primitive

Trace out specified registers from the quantum state.

Removes (traces over) the degrees of freedom of given registers, producing a reduced density matrix for the remaining registers. T-count = 0.

__init__(reg_list, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.measurement.PartialTraceSelect(reg_list, param_list)[源代码]

基类:Primitive

Selectively trace out registers based on their values.

Keeps only basis states where each named register has the specified value. T-count = 0.

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.measurement.PartialTraceSelectRange(reg_list, param_list)[源代码]

基类:Primitive

Trace out registers in a specified range of values.

Keeps only basis states where the register value falls within [low, high]. T-count = 0.

__init__(reg_list, param_list)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.measurement.Prob(reg_list, param_list=None)[源代码]

基类:Primitive

Compute measurement probabilities for the current quantum state.

Returns the probability distribution over basis states. T-count = 0 (classical post-processing).

__init__(reg_list, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]
class pyqres.primitives.measurement.StatePrint(reg_list, param_list=None)[源代码]

基类:Primitive

Print the current quantum state (for debugging).

Display format controlled by the disp parameter:

0 = Default 1 = Binary 2 = Detailed 3 = Probabilities 4 = StateVector

T-count = 0 (I/O operation).

__init__(reg_list, param_list=None)[源代码]
pyqsparse_object(dagger_ctx=False, controllers_ctx=None)[源代码]
t_count(dagger_ctx=False, controllers_ctx=None)[源代码]