From 8d259844b69e04616305880d5e51b29fcec81807 Mon Sep 17 00:00:00 2001 From: to24toro Date: Wed, 8 Mar 2023 17:17:06 +0900 Subject: [PATCH] introduce GroupingMeasure class --- qiskit/circuit/measure.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/qiskit/circuit/measure.py b/qiskit/circuit/measure.py index 02f0bf4f34aa..50cd8cd40326 100644 --- a/qiskit/circuit/measure.py +++ b/qiskit/circuit/measure.py @@ -37,3 +37,25 @@ def broadcast_arguments(self, qargs, cargs): yield qarg, [each_carg] else: raise CircuitError("register size error") + +class GroupingMeasure(Instruction): + """ + Quantum measurement for multiple qubits instruction + in the computational basis. + """ + + def __init__(self, num_qubits): + super().__init__("measure", num_qubits, num_qubits, []) + + def broadcast_arguments(self, qargs, cargs): + qarg = qargs[0] + carg = cargs[0] + + if len(carg) == len(qarg): + for qarg, carg in zip(qarg, carg): + yield [qarg], [carg] + elif len(qarg) == 1 and carg: + for each_carg in carg: + yield qarg, [each_carg] + else: + raise CircuitError("register size error") \ No newline at end of file