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

基类:object

Reusable 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]})