Circuit¶
quanta.core.circuit ¶
The @circuit decorator marks a function as a quantum circuit.
Example
@circuit(qubits=2) ... def bell(q): ... H(q[0]) ... CX(q[0], q[1]) ... return measure(q)
bell.num_qubits 2 bell.build()
CircuitBuilder ¶
Context manager that collects circuit instructions.
Attributes:
| Name | Type | Description |
|---|---|---|
measurement |
MeasureSpec | None
|
Measurement specification (if any). |
Source code in quanta/core/circuit.py
__enter__ ¶
__exit__ ¶
record ¶
Records an instruction to the circuit.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
instruction
|
Instruction
|
Gate operation to append (gate name, qubits, params). |
required |
Raises:
| Type | Description |
|---|---|
QubitIndexError
|
If any qubit index is out of range [0, num_qubits). |
Source code in quanta/core/circuit.py
CircuitDefinition ¶
A circuit defined with @circuit.
Attributes:
| Name | Type | Description |
|---|---|---|
name |
Circuit function name. |
Source code in quanta/core/circuit.py
build ¶
Runs the circuit function and collects instructions.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
**kwargs
|
float
|
Circuit parameters (e.g., theta=0.5). Forwarded to the circuit function if it accepts them. |
{}
|
Returns:
| Type | Description |
|---|---|
CircuitBuilder
|
CircuitBuilder containing all recorded instructions and measurements. |
Raises:
| Type | Description |
|---|---|
CircuitError
|
If the circuit function raises an exception. |
Source code in quanta/core/circuit.py
circuit ¶
Marks a function as a quantum circuit.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
qubits
|
int
|
Number of qubits in the circuit (must be ≥ 1). |
required |
Returns:
| Type | Description |
|---|---|
Callable[[Callable], CircuitDefinition]
|
A decorator that wraps the function in a CircuitDefinition. |
Raises:
| Type | Description |
|---|---|
CircuitError
|
qubits < 1 ise. |
Example
@circuit(qubits=3) ... def ghz(q): ... H(q[0]) ... CX(q[0], q[1]) ... CX(q[1], q[2]) ... return measure(q)