diff --git a/doc/source/appendix/citing-qibo.rst b/doc/source/appendix/citing-qibo.rst
index 179bbcd47..40f8a3b45 100644
--- a/doc/source/appendix/citing-qibo.rst
+++ b/doc/source/appendix/citing-qibo.rst
@@ -73,6 +73,12 @@ Peer-Reviewed Articles
 
 .. _`arXiv:2308.06313`: https://arxiv.org/abs/2308.06313
 
+* R. Carobene, A. Candido, J. Serrano, A.O-Fuertes, A. Giachero, S. Carrazza,
+  *Qibosoq: an open-source framework for quantum circuit RFSoC programming*
+  (2023), (`arXiv:2310.05851`_)
+
+.. _`arXiv:2310.05851`: https://arxiv.org/abs/2310.05851
+
 Software References in Zenodo
 -----------------------------
 
@@ -102,6 +108,11 @@ Software References in Zenodo
 
 .. _`https://doi.org/10.5281/zenodo.7662185`: https://doi.org/10.5281/zenodo.7662185
 
+* R. Carobene, A. Candido, J. Serrano, S. Carrazza, E. Pedicillo. (2023).
+  qiboteam/qibosoq: Qibosoq. Zenodo. `https://doi.org/10.5281/zenodo.8083285`_.
+
+.. _`https://doi.org/10.5281/zenodo.8083285`: https://doi.org/10.5281/zenodo.8083285
+
 
 
 Conference Proceedings
diff --git a/src/qibo/gates/gates.py b/src/qibo/gates/gates.py
index ecda9aafc..da72791fe 100644
--- a/src/qibo/gates/gates.py
+++ b/src/qibo/gates/gates.py
@@ -255,7 +255,9 @@ class SX(Gate):
         return "sx"
 
     def decompose(self):
-        """A global phase difference exists between the definitions of
+        """Decomposition of :math:`\\sqrt{X}` up to global phase.
+
+        A global phase difference exists between the definitions of
         :math:`\\sqrt{X}` and :math:`\\text{RX}(\\pi / 2)`, with :math:`\\text{RX}`
         being the :class:`qibo.gates.RX` gate. More precisely,
         :math:`\\sqrt{X} = e^{i \\pi / 4} \\, \\text{RX}(\\pi / 2)`.
@@ -296,7 +298,9 @@ class SXDG(Gate):
         return "sxdg"
 
     def decompose(self):
-        """A global phase difference exists between the definitions of
+        """Decomposition of :math:`(\\sqrt{X})^{\\dagger}` up to global phase.
+
+        A global phase difference exists between the definitions of
         :math:`\\sqrt{X}` and :math:`\\text{RX}(\\pi / 2)`, with :math:`\\text{RX}`
         being the :class:`qibo.gates.RX` gate. More precisely,
         :math:`(\\sqrt{X})^{\\dagger} = e^{-i \\pi / 4} \\, \\text{RX}(-\\pi / 2)`.
@@ -864,6 +868,29 @@ class U3(_Un_):
         theta, lam, phi = tuple(-x for x in self.parameters)  # pylint: disable=E1130
         return self.__class__(self.target_qubits[0], theta, phi, lam)
 
+    def decompose(self) -> List[Gate]:
+        """Decomposition of :math:`U_{3}` up to global phase.
+
+        A global phase difference exists between the definitions of
+        :math:`U3` and this decomposition. More precisely,
+
+        .. math::
+            U_{3}(\\theta, \\phi, \\lambda) = e^{i \\, \\frac{3 \\pi}{2}}
+                \\, \\text{RZ}(\\phi + \\pi) \\, \\sqrt{X} \\, \\text{RZ}(\\theta + \\pi)
+                \\, \\sqrt{X} \\, \\text{RZ}(\\lambda) \\, ,
+
+        where :math:`\\text{RZ}` and :math:`\\sqrt{X}` are, respectively,
+        :class:`qibo.gates.RZ` and :class`qibo.gates.SX`.
+        """
+        q = self.init_args[0]
+        return [
+            RZ(q, self.init_kwargs["lam"]),
+            SX(q),
+            RZ(q, self.init_kwargs["theta"] + math.pi),
+            SX(q),
+            RZ(q, self.init_kwargs["phi"] + math.pi),
+        ]
+
 
 class CNOT(Gate):
     """The Controlled-NOT gate.
@@ -934,6 +961,15 @@ class CZ(Gate):
     def qasm_label(self):
         return "cz"
 
+    def decompose(self) -> List[Gate]:
+        """Decomposition of :math:`\\text{CZ}` gate.
+
+        Decompose :math:`\\text{CZ}` gate into :class:`qibo.gates.H` in the target qubit,
+        followed by :class:`qibo.gates.CNOT`, followed by another :class:`qibo.gates.H`
+        in the target qubit"""
+        q0, q1 = self.init_args
+        return [H(q1), CNOT(q0, q1), H(q1)]
+
 
 class CSX(Gate):
     """The Controlled-:math:`\\sqrt{X}` gate.
@@ -1739,7 +1775,9 @@ class RXY(_Rnn_):
         self.draw_label = "RXY"
 
     def decompose(self, *free, use_toffolis: bool = True) -> List[Gate]:
-        """This decomposition has a global phase difference with respect to the
+        """Decomposition of :math:`\\text{R_{XY}}` up to global phase.
+
+        This decomposition has a global phase difference with respect to the
         original gate due to a phase difference in :math:`\\left(\\sqrt{X}\\right)^{\\dagger}`.
         """
         q0, q1 = self.target_qubits

diff --git a/tests/test_gates_gates.py b/tests/test_gates_gates.py
index 60db57a4a..08b230c90 100644
--- a/tests/test_gates_gates.py
+++ b/tests/test_gates_gates.py
@@ -394,15 +394,24 @@ def test_u2(backend):
     assert gates.U2(0, phi, lam).unitary
 
 
-def test_u3(backend):
-    theta = 0.1111
-    phi = 0.1234
-    lam = 0.4321
+@pytest.mark.parametrize("seed_observable", list(range(1, 10 + 1)))
+@pytest.mark.parametrize("seed_state", list(range(1, 10 + 1)))
+def test_u3(backend, seed_state, seed_observable):
     nqubits = 1
-    initial_state = random_statevector(2**nqubits, backend=backend)
+    theta, phi, lam = np.random.rand(3)
+
+    initial_state = random_statevector(2**nqubits, seed=seed_state, backend=backend)
     final_state = apply_gates(
         backend, [gates.U3(0, theta, phi, lam)], initial_state=initial_state
     )
+    # test decomposition
+    final_state_decompose = apply_gates(
+        backend,
+        gates.U3(0, theta, phi, lam).decompose(),
+        nqubits=nqubits,
+        initial_state=initial_state,
+    )
+
     cost, sint = np.cos(theta / 2), np.sin(theta / 2)
     ep = np.exp(1j * (phi + lam) / 2)
     em = np.exp(1j * (phi - lam) / 2)
@@ -414,6 +423,15 @@ def test_u3(backend):
 
     backend.assert_allclose(final_state, target_state)
 
+    # testing random expectation value due to global phase difference
+    observable = random_hermitian(2**nqubits, seed=seed_observable, backend=backend)
+    backend.assert_allclose(
+        np.transpose(np.conj(final_state_decompose))
+        @ observable
+        @ final_state_decompose,
+        np.transpose(np.conj(target_state)) @ observable @ target_state,
+    )
+
     assert gates.U3(0, theta, phi, lam).qasm_label == "u3"
     assert not gates.U3(0, theta, phi, lam).clifford
     assert gates.U3(0, theta, phi, lam).unitary
@@ -436,15 +454,24 @@ def test_cnot(backend, applyx):
     assert gates.CNOT(0, 1).unitary
 
 
+@pytest.mark.parametrize("seed_observable", list(range(1, 10 + 1)))
+@pytest.mark.parametrize("seed_state", list(range(1, 10 + 1)))
 @pytest.mark.parametrize("controlled_by", [False, True])
-def test_cz(backend, controlled_by):
+def test_cz(backend, controlled_by, seed_state, seed_observable):
     nqubits = 2
-    initial_state = random_statevector(2**nqubits, backend=backend)
+    initial_state = random_statevector(2**nqubits, seed=seed_state, backend=backend)
     matrix = np.eye(4)
     matrix[3, 3] = -1
     matrix = backend.cast(matrix, dtype=matrix.dtype)
 
     target_state = np.dot(matrix, initial_state)
+    # test decomposition
+    final_state_decompose = apply_gates(
+        backend,
+        gates.CZ(0, 1).decompose(),
+        nqubits=nqubits,
+        initial_state=initial_state,
+    )
 
     if controlled_by:
         gate = gates.Z(1).controlled_by(0)
@@ -457,6 +484,15 @@ def test_cz(backend, controlled_by):
 
     backend.assert_allclose(final_state, target_state)
 
+    # testing random expectation value due to global phase difference
+    observable = random_hermitian(2**nqubits, seed=seed_observable, backend=backend)
+    backend.assert_allclose(
+        np.transpose(np.conj(final_state_decompose))
+        @ observable
+        @ final_state_decompose,
+        np.transpose(np.conj(target_state)) @ observable @ target_state,
+    )
+
     assert gates.CZ(0, 1).qasm_label == "cz"
     assert gates.CZ(0, 1).clifford
     assert gates.CZ(0, 1).unitary

Add reference to qibosoq paper 
https://arxiv.org/abs/2310.05851
tests/test_gates_gates.py::test_rx[numpy-0.6726026656995493] tests/test_gates_gates.py::test_ry[numpy-0.032248563926263296] tests/test_gates_gates.py::test_rz[numpy-0.5034176364236059-True] tests/test_gates_gates.py::test_rz[numpy-0.5034176364236059-False]
tests/test_gates_gates.py::test_h[numpy] tests/test_gates_gates.py::test_x[numpy] tests/test_gates_gates.py::test_y[numpy] tests/test_gates_gates.py::test_z[numpy] tests/test_gates_gates.py::test_sx[numpy] tests/test_gates_gates.py::test_sxdg[numpy] tests/test_gates_gates.py::test_s[numpy] tests/test_gates_gates.py::test_sdg[numpy] tests/test_gates_gates.py::test_t[numpy] tests/test_gates_gates.py::test_tdg[numpy] tests/test_gates_gates.py::test_identity[numpy] tests/test_gates_gates.py::test_align[numpy] tests/test_gates_gates.py::test_rx[numpy-1.5707963267948966] tests/test_gates_gates.py::test_rx[numpy--1.5707963267948966] tests/test_gates_gates.py::test_rx[numpy-3.141592653589793] tests/test_gates_gates.py::test_ry[numpy-1.5707963267948966] tests/test_gates_gates.py::test_ry[numpy--1.5707963267948966] tests/test_gates_gates.py::test_ry[numpy-3.141592653589793] tests/test_gates_gates.py::test_rz[numpy-1.5707963267948966-True] tests/test_gates_gates.py::test_rz[numpy-1.5707963267948966-False] tests/test_gates_gates.py::test_rz[numpy--1.5707963267948966-True] tests/test_gates_gates.py::test_rz[numpy--1.5707963267948966-False] tests/test_gates_gates.py::test_rz[numpy-3.141592653589793-True] tests/test_gates_gates.py::test_rz[numpy-3.141592653589793-False] tests/test_gates_gates.py::test_gpi[numpy] tests/test_gates_gates.py::test_gpi2[numpy] tests/test_gates_gates.py::test_u1[numpy] tests/test_gates_gates.py::test_u2[numpy] tests/test_gates_gates.py::test_u3[numpy-1-1] tests/test_gates_gates.py::test_u3[numpy-1-2] tests/test_gates_gates.py::test_u3[numpy-1-3] tests/test_gates_gates.py::test_u3[numpy-1-4] tests/test_gates_gates.py::test_u3[numpy-1-5] tests/test_gates_gates.py::test_u3[numpy-1-6] tests/test_gates_gates.py::test_u3[numpy-1-7] tests/test_gates_gates.py::test_u3[numpy-1-8] tests/test_gates_gates.py::test_u3[numpy-1-9] tests/test_gates_gates.py::test_u3[numpy-1-10] tests/test_gates_gates.py::test_u3[numpy-2-1] tests/test_gates_gates.py::test_u3[numpy-2-2] tests/test_gates_gates.py::test_u3[numpy-2-3] tests/test_gates_gates.py::test_u3[numpy-2-4] tests/test_gates_gates.py::test_u3[numpy-2-5] tests/test_gates_gates.py::test_u3[numpy-2-6] tests/test_gates_gates.py::test_u3[numpy-2-7] tests/test_gates_gates.py::test_u3[numpy-2-8] tests/test_gates_gates.py::test_u3[numpy-2-9] tests/test_gates_gates.py::test_u3[numpy-2-10] tests/test_gates_gates.py::test_u3[numpy-3-1] tests/test_gates_gates.py::test_u3[numpy-3-2] tests/test_gates_gates.py::test_u3[numpy-3-3] tests/test_gates_gates.py::test_u3[numpy-3-4] tests/test_gates_gates.py::test_u3[numpy-3-5] tests/test_gates_gates.py::test_u3[numpy-3-6] tests/test_gates_gates.py::test_u3[numpy-3-7] tests/test_gates_gates.py::test_u3[numpy-3-8] tests/test_gates_gates.py::test_u3[numpy-3-9] tests/test_gates_gates.py::test_u3[numpy-3-10] tests/test_gates_gates.py::test_u3[numpy-4-1] tests/test_gates_gates.py::test_u3[numpy-4-2] tests/test_gates_gates.py::test_u3[numpy-4-3] tests/test_gates_gates.py::test_u3[numpy-4-4] tests/test_gates_gates.py::test_u3[numpy-4-5] tests/test_gates_gates.py::test_u3[numpy-4-6] tests/test_gates_gates.py::test_u3[numpy-4-7] tests/test_gates_gates.py::test_u3[numpy-4-8] tests/test_gates_gates.py::test_u3[numpy-4-9] tests/test_gates_gates.py::test_u3[numpy-4-10] tests/test_gates_gates.py::test_u3[numpy-5-1] tests/test_gates_gates.py::test_u3[numpy-5-2] tests/test_gates_gates.py::test_u3[numpy-5-3] tests/test_gates_gates.py::test_u3[numpy-5-4] tests/test_gates_gates.py::test_u3[numpy-5-5] tests/test_gates_gates.py::test_u3[numpy-5-6] tests/test_gates_gates.py::test_u3[numpy-5-7] tests/test_gates_gates.py::test_u3[numpy-5-8] tests/test_gates_gates.py::test_u3[numpy-5-9] tests/test_gates_gates.py::test_u3[numpy-5-10] tests/test_gates_gates.py::test_u3[numpy-6-1] tests/test_gates_gates.py::test_u3[numpy-6-2] tests/test_gates_gates.py::test_u3[numpy-6-3] tests/test_gates_gates.py::test_u3[numpy-6-4] tests/test_gates_gates.py::test_u3[numpy-6-5] tests/test_gates_gates.py::test_u3[numpy-6-6] tests/test_gates_gates.py::test_u3[numpy-6-7] tests/test_gates_gates.py::test_u3[numpy-6-8] tests/test_gates_gates.py::test_u3[numpy-6-9] tests/test_gates_gates.py::test_u3[numpy-6-10] tests/test_gates_gates.py::test_u3[numpy-7-1] tests/test_gates_gates.py::test_u3[numpy-7-2] tests/test_gates_gates.py::test_u3[numpy-7-3] tests/test_gates_gates.py::test_u3[numpy-7-4] tests/test_gates_gates.py::test_u3[numpy-7-5] tests/test_gates_gates.py::test_u3[numpy-7-6] tests/test_gates_gates.py::test_u3[numpy-7-7] tests/test_gates_gates.py::test_u3[numpy-7-8] tests/test_gates_gates.py::test_u3[numpy-7-9] tests/test_gates_gates.py::test_u3[numpy-7-10] tests/test_gates_gates.py::test_u3[numpy-8-1] tests/test_gates_gates.py::test_u3[numpy-8-2] tests/test_gates_gates.py::test_u3[numpy-8-3] tests/test_gates_gates.py::test_u3[numpy-8-4] tests/test_gates_gates.py::test_u3[numpy-8-5] tests/test_gates_gates.py::test_u3[numpy-8-6] tests/test_gates_gates.py::test_u3[numpy-8-7] tests/test_gates_gates.py::test_u3[numpy-8-8] tests/test_gates_gates.py::test_u3[numpy-8-9] tests/test_gates_gates.py::test_u3[numpy-8-10] tests/test_gates_gates.py::test_u3[numpy-9-1] tests/test_gates_gates.py::test_u3[numpy-9-2] tests/test_gates_gates.py::test_u3[numpy-9-3] tests/test_gates_gates.py::test_u3[numpy-9-4] tests/test_gates_gates.py::test_u3[numpy-9-5] tests/test_gates_gates.py::test_u3[numpy-9-6] tests/test_gates_gates.py::test_u3[numpy-9-7] tests/test_gates_gates.py::test_u3[numpy-9-8] tests/test_gates_gates.py::test_u3[numpy-9-9] tests/test_gates_gates.py::test_u3[numpy-9-10] tests/test_gates_gates.py::test_u3[numpy-10-1] tests/test_gates_gates.py::test_u3[numpy-10-2] tests/test_gates_gates.py::test_u3[numpy-10-3] tests/test_gates_gates.py::test_u3[numpy-10-4] tests/test_gates_gates.py::test_u3[numpy-10-5] tests/test_gates_gates.py::test_u3[numpy-10-6] tests/test_gates_gates.py::test_u3[numpy-10-7] tests/test_gates_gates.py::test_u3[numpy-10-8] tests/test_gates_gates.py::test_u3[numpy-10-9] tests/test_gates_gates.py::test_u3[numpy-10-10] tests/test_gates_gates.py::test_cnot[numpy-False] tests/test_gates_gates.py::test_cnot[numpy-True] tests/test_gates_gates.py::test_cz[numpy-False-1-1] tests/test_gates_gates.py::test_cz[numpy-False-1-2] tests/test_gates_gates.py::test_cz[numpy-False-1-3] tests/test_gates_gates.py::test_cz[numpy-False-1-4] tests/test_gates_gates.py::test_cz[numpy-False-1-5] tests/test_gates_gates.py::test_cz[numpy-False-1-6] tests/test_gates_gates.py::test_cz[numpy-False-1-7] tests/test_gates_gates.py::test_cz[numpy-False-1-8] tests/test_gates_gates.py::test_cz[numpy-False-1-9] tests/test_gates_gates.py::test_cz[numpy-False-1-10] tests/test_gates_gates.py::test_cz[numpy-False-2-1] tests/test_gates_gates.py::test_cz[numpy-False-2-2] tests/test_gates_gates.py::test_cz[numpy-False-2-3] tests/test_gates_gates.py::test_cz[numpy-False-2-4] tests/test_gates_gates.py::test_cz[numpy-False-2-5] tests/test_gates_gates.py::test_cz[numpy-False-2-6] tests/test_gates_gates.py::test_cz[numpy-False-2-7] tests/test_gates_gates.py::test_cz[numpy-False-2-8] tests/test_gates_gates.py::test_cz[numpy-False-2-9] tests/test_gates_gates.py::test_cz[numpy-False-2-10] tests/test_gates_gates.py::test_cz[numpy-False-3-1] tests/test_gates_gates.py::test_cz[numpy-False-3-2] tests/test_gates_gates.py::test_cz[numpy-False-3-3] tests/test_gates_gates.py::test_cz[numpy-False-3-4] tests/test_gates_gates.py::test_cz[numpy-False-3-5] tests/test_gates_gates.py::test_cz[numpy-False-3-6] tests/test_gates_gates.py::test_cz[numpy-False-3-7] tests/test_gates_gates.py::test_cz[numpy-False-3-8] tests/test_gates_gates.py::test_cz[numpy-False-3-9] tests/test_gates_gates.py::test_cz[numpy-False-3-10] tests/test_gates_gates.py::test_cz[numpy-False-4-1] tests/test_gates_gates.py::test_cz[numpy-False-4-2] tests/test_gates_gates.py::test_cz[numpy-False-4-3] tests/test_gates_gates.py::test_cz[numpy-False-4-4] tests/test_gates_gates.py::test_cz[numpy-False-4-5] tests/test_gates_gates.py::test_cz[numpy-False-4-6] tests/test_gates_gates.py::test_cz[numpy-False-4-7] tests/test_gates_gates.py::test_cz[numpy-False-4-8] tests/test_gates_gates.py::test_cz[numpy-False-4-9] tests/test_gates_gates.py::test_cz[numpy-False-4-10] tests/test_gates_gates.py::test_cz[numpy-False-5-1] tests/test_gates_gates.py::test_cz[numpy-False-5-2] tests/test_gates_gates.py::test_cz[numpy-False-5-3] tests/test_gates_gates.py::test_cz[numpy-False-5-4] tests/test_gates_gates.py::test_cz[numpy-False-5-5] tests/test_gates_gates.py::test_cz[numpy-False-5-6] tests/test_gates_gates.py::test_cz[numpy-False-5-7] tests/test_gates_gates.py::test_cz[numpy-False-5-8] tests/test_gates_gates.py::test_cz[numpy-False-5-9] tests/test_gates_gates.py::test_cz[numpy-False-5-10] tests/test_gates_gates.py::test_cz[numpy-False-6-1] tests/test_gates_gates.py::test_cz[numpy-False-6-2] tests/test_gates_gates.py::test_cz[numpy-False-6-3] tests/test_gates_gates.py::test_cz[numpy-False-6-4] tests/test_gates_gates.py::test_cz[numpy-False-6-5] tests/test_gates_gates.py::test_cz[numpy-False-6-6] tests/test_gates_gates.py::test_cz[numpy-False-6-7] tests/test_gates_gates.py::test_cz[numpy-False-6-8] tests/test_gates_gates.py::test_cz[numpy-False-6-9] tests/test_gates_gates.py::test_cz[numpy-False-6-10] tests/test_gates_gates.py::test_cz[numpy-False-7-1] tests/test_gates_gates.py::test_cz[numpy-False-7-2] tests/test_gates_gates.py::test_cz[numpy-False-7-3] tests/test_gates_gates.py::test_cz[numpy-False-7-4] tests/test_gates_gates.py::test_cz[numpy-False-7-5] tests/test_gates_gates.py::test_cz[numpy-False-7-6] tests/test_gates_gates.py::test_cz[numpy-False-7-7] tests/test_gates_gates.py::test_cz[numpy-False-7-8] tests/test_gates_gates.py::test_cz[numpy-False-7-9] tests/test_gates_gates.py::test_cz[numpy-False-7-10] tests/test_gates_gates.py::test_cz[numpy-False-8-1] tests/test_gates_gates.py::test_cz[numpy-False-8-2] tests/test_gates_gates.py::test_cz[numpy-False-8-3] tests/test_gates_gates.py::test_cz[numpy-False-8-4] tests/test_gates_gates.py::test_cz[numpy-False-8-5] tests/test_gates_gates.py::test_cz[numpy-False-8-6] tests/test_gates_gates.py::test_cz[numpy-False-8-7] tests/test_gates_gates.py::test_cz[numpy-False-8-8] tests/test_gates_gates.py::test_cz[numpy-False-8-9] tests/test_gates_gates.py::test_cz[numpy-False-8-10] tests/test_gates_gates.py::test_cz[numpy-False-9-1] tests/test_gates_gates.py::test_cz[numpy-False-9-2] tests/test_gates_gates.py::test_cz[numpy-False-9-3] tests/test_gates_gates.py::test_cz[numpy-False-9-4] tests/test_gates_gates.py::test_cz[numpy-False-9-5] tests/test_gates_gates.py::test_cz[numpy-False-9-6] tests/test_gates_gates.py::test_cz[numpy-False-9-7] tests/test_gates_gates.py::test_cz[numpy-False-9-8] tests/test_gates_gates.py::test_cz[numpy-False-9-9] tests/test_gates_gates.py::test_cz[numpy-False-9-10] tests/test_gates_gates.py::test_cz[numpy-False-10-1] tests/test_gates_gates.py::test_cz[numpy-False-10-2] tests/test_gates_gates.py::test_cz[numpy-False-10-3] tests/test_gates_gates.py::test_cz[numpy-False-10-4] tests/test_gates_gates.py::test_cz[numpy-False-10-5] tests/test_gates_gates.py::test_cz[numpy-False-10-6] tests/test_gates_gates.py::test_cz[numpy-False-10-7] tests/test_gates_gates.py::test_cz[numpy-False-10-8] tests/test_gates_gates.py::test_cz[numpy-False-10-9] tests/test_gates_gates.py::test_cz[numpy-False-10-10] tests/test_gates_gates.py::test_cz[numpy-True-1-1] tests/test_gates_gates.py::test_cz[numpy-True-1-2] tests/test_gates_gates.py::test_cz[numpy-True-1-3] tests/test_gates_gates.py::test_cz[numpy-True-1-4] tests/test_gates_gates.py::test_cz[numpy-True-1-5] tests/test_gates_gates.py::test_cz[numpy-True-1-6] tests/test_gates_gates.py::test_cz[numpy-True-1-7] tests/test_gates_gates.py::test_cz[numpy-True-1-8] tests/test_gates_gates.py::test_cz[numpy-True-1-9] tests/test_gates_gates.py::test_cz[numpy-True-1-10] tests/test_gates_gates.py::test_cz[numpy-True-2-1] tests/test_gates_gates.py::test_cz[numpy-True-2-2] tests/test_gates_gates.py::test_cz[numpy-True-2-3] tests/test_gates_gates.py::test_cz[numpy-True-2-4] tests/test_gates_gates.py::test_cz[numpy-True-2-5] tests/test_gates_gates.py::test_cz[numpy-True-2-6] tests/test_gates_gates.py::test_cz[numpy-True-2-7] tests/test_gates_gates.py::test_cz[numpy-True-2-8] tests/test_gates_gates.py::test_cz[numpy-True-2-9] tests/test_gates_gates.py::test_cz[numpy-True-2-10] tests/test_gates_gates.py::test_cz[numpy-True-3-1] tests/test_gates_gates.py::test_cz[numpy-True-3-2] tests/test_gates_gates.py::test_cz[numpy-True-3-3] tests/test_gates_gates.py::test_cz[numpy-True-3-4] tests/test_gates_gates.py::test_cz[numpy-True-3-5] tests/test_gates_gates.py::test_cz[numpy-True-3-6] tests/test_gates_gates.py::test_cz[numpy-True-3-7] tests/test_gates_gates.py::test_cz[numpy-True-3-8] tests/test_gates_gates.py::test_cz[numpy-True-3-9] tests/test_gates_gates.py::test_cz[numpy-True-3-10] tests/test_gates_gates.py::test_cz[numpy-True-4-1] tests/test_gates_gates.py::test_cz[numpy-True-4-2] tests/test_gates_gates.py::test_cz[numpy-True-4-3] tests/test_gates_gates.py::test_cz[numpy-True-4-4] tests/test_gates_gates.py::test_cz[numpy-True-4-5] tests/test_gates_gates.py::test_cz[numpy-True-4-6] tests/test_gates_gates.py::test_cz[numpy-True-4-7] tests/test_gates_gates.py::test_cz[numpy-True-4-8] tests/test_gates_gates.py::test_cz[numpy-True-4-9] tests/test_gates_gates.py::test_cz[numpy-True-4-10] tests/test_gates_gates.py::test_cz[numpy-True-5-1] tests/test_gates_gates.py::test_cz[numpy-True-5-2] tests/test_gates_gates.py::test_cz[numpy-True-5-3] tests/test_gates_gates.py::test_cz[numpy-True-5-4] tests/test_gates_gates.py::test_cz[numpy-True-5-5] tests/test_gates_gates.py::test_cz[numpy-True-5-6] tests/test_gates_gates.py::test_cz[numpy-True-5-7] tests/test_gates_gates.py::test_cz[numpy-True-5-8] tests/test_gates_gates.py::test_cz[numpy-True-5-9] tests/test_gates_gates.py::test_cz[numpy-True-5-10] tests/test_gates_gates.py::test_cz[numpy-True-6-1] tests/test_gates_gates.py::test_cz[numpy-True-6-2] tests/test_gates_gates.py::test_cz[numpy-True-6-3] tests/test_gates_gates.py::test_cz[numpy-True-6-4] tests/test_gates_gates.py::test_cz[numpy-True-6-5] tests/test_gates_gates.py::test_cz[numpy-True-6-6] tests/test_gates_gates.py::test_cz[numpy-True-6-7] tests/test_gates_gates.py::test_cz[numpy-True-6-8] tests/test_gates_gates.py::test_cz[numpy-True-6-9] tests/test_gates_gates.py::test_cz[numpy-True-6-10] tests/test_gates_gates.py::test_cz[numpy-True-7-1] tests/test_gates_gates.py::test_cz[numpy-True-7-2] tests/test_gates_gates.py::test_cz[numpy-True-7-3] tests/test_gates_gates.py::test_cz[numpy-True-7-4] tests/test_gates_gates.py::test_cz[numpy-True-7-5] tests/test_gates_gates.py::test_cz[numpy-True-7-6] tests/test_gates_gates.py::test_cz[numpy-True-7-7] tests/test_gates_gates.py::test_cz[numpy-True-7-8] tests/test_gates_gates.py::test_cz[numpy-True-7-9] tests/test_gates_gates.py::test_cz[numpy-True-7-10] tests/test_gates_gates.py::test_cz[numpy-True-8-1] tests/test_gates_gates.py::test_cz[numpy-True-8-2] tests/test_gates_gates.py::test_cz[numpy-True-8-3] tests/test_gates_gates.py::test_cz[numpy-True-8-4] tests/test_gates_gates.py::test_cz[numpy-True-8-5] tests/test_gates_gates.py::test_cz[numpy-True-8-6] tests/test_gates_gates.py::test_cz[numpy-True-8-7] tests/test_gates_gates.py::test_cz[numpy-True-8-8] tests/test_gates_gates.py::test_cz[numpy-True-8-9] tests/test_gates_gates.py::test_cz[numpy-True-8-10] tests/test_gates_gates.py::test_cz[numpy-True-9-1] tests/test_gates_gates.py::test_cz[numpy-True-9-2] tests/test_gates_gates.py::test_cz[numpy-True-9-3] tests/test_gates_gates.py::test_cz[numpy-True-9-4] tests/test_gates_gates.py::test_cz[numpy-True-9-5] tests/test_gates_gates.py::test_cz[numpy-True-9-6] tests/test_gates_gates.py::test_cz[numpy-True-9-7] tests/test_gates_gates.py::test_cz[numpy-True-9-8] tests/test_gates_gates.py::test_cz[numpy-True-9-9] tests/test_gates_gates.py::test_cz[numpy-True-9-10] tests/test_gates_gates.py::test_cz[numpy-True-10-1] tests/test_gates_gates.py::test_cz[numpy-True-10-2] tests/test_gates_gates.py::test_cz[numpy-True-10-3] tests/test_gates_gates.py::test_cz[numpy-True-10-4] tests/test_gates_gates.py::test_cz[numpy-True-10-5] tests/test_gates_gates.py::test_cz[numpy-True-10-6] tests/test_gates_gates.py::test_cz[numpy-True-10-7] tests/test_gates_gates.py::test_cz[numpy-True-10-8] tests/test_gates_gates.py::test_cz[numpy-True-10-9] tests/test_gates_gates.py::test_cz[numpy-True-10-10] tests/test_gates_gates.py::test_csx[numpy] tests/test_gates_gates.py::test_csxdg[numpy] tests/test_gates_gates.py::test_cun[numpy-CRX-params0] tests/test_gates_gates.py::test_cun[numpy-CRX-params1] tests/test_gates_gates.py::test_cun[numpy-CRY-params2] tests/test_gates_gates.py::test_cun[numpy-CRY-params3] tests/test_gates_gates.py::test_cun[numpy-CRZ-params4] tests/test_gates_gates.py::test_cun[numpy-CRZ-params5] tests/test_gates_gates.py::test_cun[numpy-CU1-params6] tests/test_gates_gates.py::test_cun[numpy-CU2-params7] tests/test_gates_gates.py::test_cun[numpy-CU3-params8] tests/test_gates_gates.py::test_swap[numpy] tests/test_gates_gates.py::test_iswap[numpy] tests/test_gates_gates.py::test_fswap[numpy] tests/test_gates_gates.py::test_multiple_swap[numpy] tests/test_gates_gates.py::test_fsim[numpy] tests/test_gates_gates.py::test_sycamore[numpy] tests/test_gates_gates.py::test_generalized_fsim[numpy] tests/test_gates_gates.py::test_generalized_fsim_parameter_setter[numpy] tests/test_gates_gates.py::test_rxx[numpy] tests/test_gates_gates.py::test_ryy[numpy] tests/test_gates_gates.py::test_rzz[numpy] tests/test_gates_gates.py::test_rzx[numpy] tests/test_gates_gates.py::test_rxy[numpy] tests/test_gates_gates.py::test_ms[numpy] tests/test_gates_gates.py::test_givens[numpy] tests/test_gates_gates.py::test_rbs[numpy] tests/test_gates_gates.py::test_ecr[numpy] tests/test_gates_gates.py::test_toffoli[numpy-False] tests/test_gates_gates.py::test_toffoli[numpy-True] tests/test_gates_gates.py::test_deutsch[numpy] tests/test_gates_gates.py::test_unitary_initialization[numpy] tests/test_gates_gates.py::test_controlled_x[numpy] tests/test_gates_gates.py::test_controlled_x_vs_cnot[numpy] tests/test_gates_gates.py::test_controlled_x_vs_toffoli[numpy] tests/test_gates_gates.py::test_controlled_rx[numpy-False] tests/test_gates_gates.py::test_controlled_rx[numpy-True] tests/test_gates_gates.py::test_controlled_u1[numpy] tests/test_gates_gates.py::test_controlled_u2[numpy] tests/test_gates_gates.py::test_controlled_u3[numpy] tests/test_gates_gates.py::test_controlled_swap[numpy-False-False] tests/test_gates_gates.py::test_controlled_swap[numpy-False-True] tests/test_gates_gates.py::test_controlled_swap[numpy-True-False] tests/test_gates_gates.py::test_controlled_swap[numpy-True-True] tests/test_gates_gates.py::test_controlled_swap_double[numpy-False] tests/test_gates_gates.py::test_controlled_swap_double[numpy-True] tests/test_gates_gates.py::test_controlled_fsim[numpy] tests/test_gates_gates.py::test_dagger[numpy-H-args0] tests/test_gates_gates.py::test_dagger[numpy-X-args1] tests/test_gates_gates.py::test_dagger[numpy-Y-args2] tests/test_gates_gates.py::test_dagger[numpy-Z-args3] tests/test_gates_gates.py::test_dagger[numpy-SX-args4] tests/test_gates_gates.py::test_dagger[numpy-SXDG-args5] tests/test_gates_gates.py::test_dagger[numpy-S-args6] tests/test_gates_gates.py::test_dagger[numpy-SDG-args7] tests/test_gates_gates.py::test_dagger[numpy-T-args8] tests/test_gates_gates.py::test_dagger[numpy-TDG-args9] tests/test_gates_gates.py::test_dagger[numpy-RX-args10] tests/test_gates_gates.py::test_dagger[numpy-RY-args11] tests/test_gates_gates.py::test_dagger[numpy-RZ-args12] tests/test_gates_gates.py::test_dagger[numpy-GPI-args13] tests/test_gates_gates.py::test_dagger[numpy-GPI2-args14] tests/test_gates_gates.py::test_dagger[numpy-U1-args15] tests/test_gates_gates.py::test_dagger[numpy-U2-args16] tests/test_gates_gates.py::test_dagger[numpy-U3-args17] tests/test_gates_gates.py::test_dagger[numpy-CNOT-args18] tests/test_gates_gates.py::test_dagger[numpy-CZ-args19] tests/test_gates_gates.py::test_dagger[numpy-CSX-args20] tests/test_gates_gates.py::test_dagger[numpy-CSXDG-args21] tests/test_gates_gates.py::test_dagger[numpy-CRX-args22] tests/test_gates_gates.py::test_dagger[numpy-CRZ-args23] tests/test_gates_gates.py::test_dagger[numpy-CU1-args24] tests/test_gates_gates.py::test_dagger[numpy-CU2-args25] tests/test_gates_gates.py::test_dagger[numpy-CU3-args26] tests/test_gates_gates.py::test_dagger[numpy-fSim-args27] tests/test_gates_gates.py::test_dagger[numpy-SYC-args28] tests/test_gates_gates.py::test_dagger[numpy-RXX-args29] tests/test_gates_gates.py::test_dagger[numpy-RYY-args30] tests/test_gates_gates.py::test_dagger[numpy-RZZ-args31] tests/test_gates_gates.py::test_dagger[numpy-RZX-args32] tests/test_gates_gates.py::test_dagger[numpy-RXY-args33] tests/test_gates_gates.py::test_dagger[numpy-MS-args34] tests/test_gates_gates.py::test_dagger[numpy-GIVENS-args35] tests/test_gates_gates.py::test_dagger[numpy-RBS-args36] tests/test_gates_gates.py::test_dagger[numpy-ECR-args37] tests/test_gates_gates.py::test_controlled_dagger[numpy-H-args0] tests/test_gates_gates.py::test_controlled_dagger[numpy-X-args1] tests/test_gates_gates.py::test_controlled_dagger[numpy-Y-args2] tests/test_gates_gates.py::test_controlled_dagger[numpy-S-args3] tests/test_gates_gates.py::test_controlled_dagger[numpy-SDG-args4] tests/test_gates_gates.py::test_controlled_dagger[numpy-T-args5] tests/test_gates_gates.py::test_controlled_dagger[numpy-TDG-args6] tests/test_gates_gates.py::test_controlled_dagger[numpy-RX-args7] tests/test_gates_gates.py::test_controlled_dagger[numpy-U1-args8] tests/test_gates_gates.py::test_controlled_dagger[numpy-U3-args9] tests/test_gates_gates.py::test_dagger_consistency[numpy-0-S-SDG] tests/test_gates_gates.py::test_dagger_consistency[numpy-0-T-TDG] tests/test_gates_gates.py::test_dagger_consistency[numpy-2-S-SDG] tests/test_gates_gates.py::test_dagger_consistency[numpy-2-T-TDG] tests/test_gates_gates.py::test_dagger_consistency[numpy-4-S-SDG] tests/test_gates_gates.py::test_dagger_consistency[numpy-4-T-TDG] tests/test_gates_gates.py::test_controlled_unitary_dagger[numpy] tests/test_gates_gates.py::test_generalizedfsim_dagger[numpy] tests/test_gates_gates.py::test_gate_basis_rotation[numpy] tests/test_gates_gates.py::test_x_decomposition_execution[numpy-True-0-controls0-free0] tests/test_gates_gates.py::test_x_decomposition_execution[numpy-True-2-controls1-free1] tests/test_gates_gates.py::test_x_decomposition_execution[numpy-True-3-controls2-free2] tests/test_gates_gates.py::test_x_decomposition_execution[numpy-True-7-controls3-free3] tests/test_gates_gates.py::test_x_decomposition_execution[numpy-True-5-controls4-free4] tests/test_gates_gates.py::test_x_decomposition_execution[numpy-True-8-controls5-free5] tests/test_gates_gates.py::test_x_decomposition_execution[numpy-False-0-controls0-free0] tests/test_gates_gates.py::test_x_decomposition_execution[numpy-False-2-controls1-free1] tests/test_gates_gates.py::test_x_decomposition_execution[numpy-False-3-controls2-free2] tests/test_gates_gates.py::test_x_decomposition_execution[numpy-False-7-controls3-free3] tests/test_gates_gates.py::test_x_decomposition_execution[numpy-False-5-controls4-free4] tests/test_gates_gates.py::test_x_decomposition_execution[numpy-False-8-controls5-free5]