-
Notifications
You must be signed in to change notification settings - Fork 89
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Description
When importing a valid OpenQASM 2.0 circuit that uses the vectorized measurement syntax
measure q -> c;, Qibo raises an error.
The same circuit parses correctly if the measurements are written explicitly per-qubit.
To Reproduce
from qibo import Circuit
program = """
OPENQASM 2.0;
include "qelib1.inc";
qreg q[2];
creg c[2];
h q[0];
cx q[0], q[1];
measure q -> c;
"""
# This fails
circuit = Circuit.from_qasm(program)This is the error message:
raceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/gabriele/.venv/lib/python3.12/site-packages/qibo/models/circuit.py", line 1211, in from_qasm
return parser.to_circuit(qasm_code, accelerators, density_matrix)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/gabriele/.venv/lib/python3.12/site-packages/qibo/models/_openqasm.py", line 158, in to_circuit
gates.append(self._get_measurement(statement))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/gabriele/.venv/lib/python3.12/site-packages/qibo/models/_openqasm.py", line 188, in _get_measurement
register = measurement.target.name.name
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'str' object has no attribute 'name'
If I measure each quit separately, it works:
from qibo import Circuit
program = """
OPENQASM 2.0;
include "qelib1.inc";
qreg q[2];
creg c[2];
h q[0];
cx q[0], q[1];
measure q[0] -> c[0];
measure q[1] -> c[1];
"""Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working