Implementare i gate U2 e U3 in Q#

Sep 08 2020

So che il gate equivalente U1 di Qiskit in Q# è R1, ma vorrei implementare il gate U2 e U3 di Qiskit in Q#, qual è il modo migliore?

Grazie.

Risposte

3 MariiaMykhailova Sep 08 2020 at 09:11

Le porte Rx , Ry e Rz in Q# hanno la stessa definizione di RXGate, RYGate e RZGate in Qiskit e la documentazione di U2Gate e U3Gate offre la scomposizione di queste porte in Rx, Ry e Rz, quindi userei semplicemente quella scomposizione:

operation U2(psi : Double, lambda : Double, q : Qubit) : Unit is Adj + Ctl {
    Rz(lambda, q);
    Ry(0.5 * PI(), q);
    Rz(psi, q);
}

e uno simile per gli U3.