Esempio n. 1
0
    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
Esempio n. 2
0
 def _decompose_(self, qubits):
     return inverse.inverse(
         decompose.decompose_once_with_qubits(self._original, qubits))