Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Quali funzionalità di OpenQASM sono supportate daBraket?
La sezione seguente elenca i tipi di dati, le istruzioni e le istruzioni pragmatiche di OpenQASM 3.0 supportati daBraket.
Tipi di dati OpenQASM supportati
I tipi di dati OpenQASM seguenti sono supportati daAmazon Braket.
-
Gli interi non negativi vengono utilizzati per gli indici di qubit (virtuali e fisici):
-
cnot q[0], q[1];
-
h $0;
-
-
I numeri a virgola mobile vengono utilizzati per gli angoli di rotazione del gate:
-
rx(-0.314) $0;
-
-
Array di numeri complessi (con OpenQASM
im
notazione per parte immaginaria) sono consentiti nei pragmi del tipo di risultato per la definizione di osservabili hermitiani generali e nei pragmi unitari:-
#pragma braket unitary [[0, -1im], [1im, 0]] q[0]
-
#pragma braket result expectation hermitian([[0, -1im], [1im, 0]]) q[0]
-
Istruzioni OpenQASM supportate
Le seguenti istruzioni OpenQASM sono supportate daAmazon Braket.
-
Header: OPENQASM 3;
-
Dichiarazioni bit classiche:
-
bit b1;
(in modo equivalente,creg b1;
) -
bit[10] b2;
(in modo equivalente,creg b2[10];
)
-
-
Dichiarazioni Qubit:
-
qubit b1;
(in modo equivalente,qreg b1;
) -
qubit[10] b2;
(in modo equivalente,qreg b2[10];
)
-
-
Indicizzazione all'interno di array:
q[0]
-
specifica delle attività fisichequbits:
$0
-
Porte e operazioni supportate su un dispositivo:
-
h $0;
-
iswap q[0], q[1];
-
I gate supportati da un dispositivo possono essere trovati nelle proprietà del dispositivo per le azioni OpenQASM; non sono necessarie definizioni di gate per utilizzare queste porte.
-
Istruzioni Verbatim box (Attualmente non supportiamo la notazione della durata dei box. Porte native e fisichequbitssono richiesti nelle caselle letterali.)
#pragma braket verbatim box{ rx(0.314) $0; }
-
Assegnazione di misurazione e misurazione suqubitso un interoqubitregistrati.
-
measure $0;
-
measure q;
-
measure q[0];
-
b = measure q;
-
measure q → b;
-
BraketOpenQASM
Le seguenti istruzioni pragma di OpenQASM sono supportate daAmazon Braket.
-
Noise pragma
-
#pragma braket noise bit_flip(0.2) q[0]
-
#pragma braket noise phase_flip(0.1) q[0]
-
#pragma braket noise pauli_channel
-
-
Verbatim pragma
-
#pragma braket verbatim
-
-
Tipo di risultato: pragma
-
Tipi di risultati invarianti di base:
-
Vettore di stato:
#pragma braket result state_vector
-
Matrice di densità:
#pragma braket result density_matrix
-
-
Tipi di risultati base Z:
-
Amplitude:
#pragma braket result amplitude "01"
-
Probability:
#pragma braket result probability q[0], q[1]
-
-
Tipi di risultati ruotati di base
-
Expect:
#pragma braket result expectation x(q[0]) @ y([q1])
-
variance:
#pragma braket result variance hermitian([[0, -1im], [1im, 0]]) $0
-
Esempio:
#pragma braket result sample h($1)
-
-
OpenQASM 3.0 è retrocompatibile con OpenQASM 2.0, quindi i programmi scritti con 2.0 possono essere eseguiti suBraket. Tuttavia, le funzionalità di OpenQASM 3.0 supportate daBrakethanno alcune differenze di sintassi minori. Ad esempio,qreg
controcreg
equbitcontrobit
, così come la sintassi di misura, e questi devono essere supportati con la loro sintassi corretta.