qpandalite.circuit_builder.named_circuit module#
Named circuit definitions for reusable quantum subroutines.
This module provides: - @circuit_def: Decorator to create named circuit definitions - NamedCircuit: Reusable circuit definition with signature
Named circuits can be applied to parent circuits with qubit mapping and parameter binding, similar to QASM3 gate definitions.
- Example usage:
@circuit_def(name="bell_pair", qregs={"q": 2}) def bell_pair(circ, q):
circ.h(q[0]) circ.cnot(q[0], q[1]) return circ
# Apply to parent circuit c = Circuit(qregs={"data": 4}) bell_pair(c, qreg_mapping={"q": [c.get_qreg("data")[0], c.get_qreg("data")[1]]})
- class qpandalite.circuit_builder.named_circuit.NamedCircuit(name, qregs=None, params=None, builder=None)[源代码]
基类:
objectReusable circuit definition with named qregs and parameters.
A NamedCircuit is a template for a quantum subroutine that can be instantiated multiple times with different qubit mappings and parameter values.
- 参数:
name (str)
qregs (dict[str, int] | list[str] | None)
params (list[str] | None)
builder (Callable | None)
- name
Circuit definition name
- qregs
Dictionary mapping qreg names to sizes
- params
List of parameter names
- builder
Function that builds the circuit body
示例
>>> @circuit_def(name="u3", qregs={"q": 1}, params=["theta", "phi", "lam"]) ... def u3_gate(circ, q, theta, phi, lam): ... circ.rz(q[0], phi) ... circ.ry(q[0], theta) ... circ.rz(q[0], lam) ... return circ ... >>> u3_gate.num_qubits # 1 >>> u3_gate.num_parameters # 3
- build_standalone(param_values=None)[源代码]
Build a standalone Circuit with this definition.
Creates a new Circuit with qregs matching this definition's signature.
- 参数:
param_values (dict[str, float] | list[float] | None) -- Optional parameter values
- 返回:
A new Circuit instance
- 返回类型:
Circuit
- property name: str
- property num_parameters: int
Number of parameters.
- property num_qubits: int
Total number of qubits used by this circuit.
- property params: list[str]
- property qregs: dict[str, int]
- to_originir_def()[源代码]
Export as OriginIR DEF block.
Note: This is a placeholder. Full DEF export requires symbolic parameter support in OriginIR format.
- 返回类型:
str
- qpandalite.circuit_builder.named_circuit.circuit_def(name, qregs=None, params=None)[源代码]
Decorator to create a NamedCircuit definition.
- 参数:
name (str) -- Circuit definition name
qregs (dict[str, int] | list[str] | None) -- Qubit register specification - dict: {name: size} pairs - list: Names (each with size 1)
params (list[str] | None) -- Parameter names
- 返回:
Decorator that wraps a function into a NamedCircuit
- 返回类型:
Callable
示例
>>> @circuit_def(name="bell_pair", qregs={"q": 2}) ... def bell_pair(circ, q): ... circ.h(q[0]) ... circ.cnot(q[0], q[1]) ... return circ ... >>> c = Circuit(2) >>> bell_pair(c, qreg_mapping={"q": [0, 1]})