We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
2 parents 4413f3c + 6a2a3b3 commit 3c951e6Copy full SHA for 3c951e6
1 file changed
qualtran/cirq_interop/_bloq_to_cirq.py
@@ -143,9 +143,13 @@ def _has_unitary_(self):
143
def _unitary_(self):
144
if all(reg.side == Side.THRU for reg in self.bloq.signature):
145
try:
146
+ # If decomposable, return NotImplemented to let the cirq protocol
147
+ # try its decomposition-based strategies.
148
+ _ = self.bloq.decompose_bloq()
149
+ return NotImplemented
150
+ except (DecomposeNotImplementedError, DecomposeTypeError):
151
tensor = self.bloq.tensor_contract()
- if tensor.ndim != 2:
- return NotImplemented
152
+ assert tensor.ndim == 2, "All registers should have been checked to be THRU."
153
return tensor
154
except NotImplementedError:
155
return NotImplemented
0 commit comments