def __pow__(self, power): if power == 1: return self if power == -1: # HACK: break cycle from cirq.line import line_qubit decomposed = decompose.decompose_once_with_qubits( self, qubits=line_qubit.LineQubit.range(self.num_qubits()), default=None) if decomposed is None: return NotImplemented inverse_decomposed = inverse.inverse(decomposed, None) if inverse_decomposed is None: return NotImplemented return _InverseCompositeGate(self) return NotImplemented
def _decompose_(self, qubits): return inverse.inverse( decompose.decompose_once_with_qubits(self._original, qubits))