def _decompose_(self, qubits):
        """A quantum circuit (QFT_inv) with the following structure.

        ---H--@-------@--------@----------------------------------------------
              |       |        |
        ------@^-0.5--+--------+---------H--@-------@-------------------------
                      |        |            |       |
        --------------@^-0.25--+------------@^-0.5--+---------H--@------------
                               |                    |            |
        -----------------------@^-0.125-------------@^-0.25------@^-0.5---H---

        The number of qubits can be arbitrary.
        """

        qubits = list(qubits)
        while len(qubits) > 0:
            q_head = qubits.pop(0)
            yield cirq.H(q_head)
            for i, qubit in enumerate(qubits):
                yield (cirq.CZ**(-1/2.0**(i+1)))(qubit, q_head)
def _decompose_ ( self , qubits ) : qubits = list ( qubits ) while len ( qubits ) > 0 : q_head = qubits . pop ( 0 ) yield cirq . H ( q_head ) for i , qubit in enumerate ( qubits ) : yield ( cirq . CZ ** ( - 1 / 2.0 ** ( i + 1 ) ) ) ( qubit , q_head )
A quantum circuit (QFT_inv) with the following structure.

        ---H--@-------@--------@----------------------------------------------
              |       |        |
        ------@^-0.5--+--------+---------H--@-------@-------------------------
                      |        |            |       |
        --------------@^-0.25--+------------@^-0.5--+---------H--@------------
                               |                    |            |
        -----------------------@^-0.125-------------@^-0.25------@^-0.5---H---

        The number of qubits can be arbitrary.