Talaan ng mga feature ng OpenQASM 3
Nasa ibaba ang listahan ng mga language feature ng OpenQASM 3.
Para sa higit pang detalye tungkol sa mga kakayahang ito, tingnan ang OpenQASM 3.X Live Specification.
Susi:
- โ Hindi suportado
- ๐ก Bahagyang suportado
- โ Suportado
Ang ibig sabihin ng kumpletong "suportado" na marka ay depende sa kolum:
-
Qiskit SDK: Ang feature ay maaaring i-parse ng
qiskit.qasm3.loads(gamit angqiskit-qasm3-importextension), ma-represent sa isangQuantumCircuit, at ma-export sa OpenQASM 3 gamit angqiskit.qasm3.dumps. -
IBM Qiskit Runtime: Ang isang Circuit na naglalaman ng katumbas na Qiskit feature ay matagumpay na maipapatupad sa hardware sa pamamagitan ng IBMยฎ Qiskit Runtime.
Ang ibig sabihin ng "bahagyang suportado" ay karaniwang depende sa mga naka-link na tala.
Ang pinakakaraniwang paraan ng pagsusumite ng mga Circuit sa IBM Qiskit Runtime ay ang paggawa ng Circuit sa Python-space interface ng Qiskit SDK. Ang mga Circuit na ginawa at isinumite sa ganitong paraan ay hindi na kailangang i-load mula sa mga OpenQASM 3 file papunta sa Qiskit SDK.
Kung hindi mo direktang ginagamit ang OpenQASM 3, ligtas mong magagamit ang mga feature na suportado para sa representasyon sa Qiskit SDK, pag-export sa OpenQASM 3, at pagsusumite sa IBM Qiskit Runtime. Kasama rito ang mga feature na hindi ma-load ng Qiskit SDK mula sa OpenQASM 3.
| OpenQASM 3 Feature | Qiskit SDK feature | Qiskit SDK | IBM Qiskit Runtime | Mga tala |
|---|---|---|---|---|
| comments | โ | โ | 1 | |
| QASM vstring | โ | โ | 1 | |
include | ๐ก | โ | 1, 7 | |
| unicode names | โ | โ | ||
qubit | Qubit at QuantumRegister | โ | ๐ก | 2 |
bit | Clbit at ClassicalRegister | โ | โ | 3 |
bool | expr.Var at mga classical expression | ๐ก | โ | 4 |
int | โ | โ | 4 | |
uint | expr.Var at mga classical expression | ๐ก | โ | 4 |
float | expr.Var at mga classical expression | ๐ก | ๐ก | 4 |
angle | Implicit, bilang mga Gate parameter | โ | ๐ก | 4 |
complex | โ | โ | 4 | |
const | โ | โ | 4 | |
pi/ฯ/tau/ฯ/euler/โ | Constant-folded sa mga Gate parameter | โ | โ | |
| Aliasing: let | Quantum at classical register | ๐ก | โ | 5 |
| register concatenation | Quantum at classical register | ๐ก | โ | 5 |
| casting | expr.Cast classical expression | ๐ก | ๐ก | 4 |
duration | โ | โ | ||
durationof | โ | โ | ||
ns/ยตs/us/ms/s/dt | Mga tagal ng delay at box | โ | โ | 6 |
stretch | expr.Stretch | ๐ก | ๐ก | 4, 6 |
delay | Delay/QuantumCircuit.delay | โ | โ | 6 |
barrier | Barrier/QuantumCircuit.barrier | โ | โ | |
box | BoxOp/QuantumCircuit.box | โ | โ | 6 |
Built-in U | UGate/QuantumCircuit.u | โ | โ | |
gate | ๐ก | ๐ก | 7 | |
gphase | QuantumCircuit.global_phase | ๐ก | โ | 7 |
ctrl @/ negctrl @ | AnnotatedOperation | ๐ก | โ | 7 |
inv @ | AnnotatedOperation | ๐ก | โ | 7 |
pow(k) @ | AnnotatedOperation | ๐ก | โ | 7 |
reset | Reset/QuantumCircuit.reset | โ | โ | |
measure | Measure/QuantumCircuit.measure | โ | โ | |
| bit operations | ๐ก | โ | 4 | |
| boolean operations | ๐ก | โ | 4 | |
| arithmetic expressions | ๐ก | ๐ก | 4 | |
| comparisons | ๐ก | โ | 4 | |
if | QuantumCircuit.if_test | โ | โ | 8 |
else | QuantumCircuit.if_test | โ | โ | 8 |
else if | QuantumCircuit.if_test | โ | โ | 8 |
for loops | QuantumCircuit.for_loop | ๐ก | โ | 8 |
while loops | QuantumCircuit.while_loop | โ | โ | 8 |
continue | QuantumCircuit.continue_loop | ๐ก | โ | 8 |
break | QuantumCircuit.break_loop | ๐ก | โ | 8 |
return | โ | โ | ||
extern | โ | โ | ||
def subroutines (classical) | โ | โ | ||
def subroutines (quantum) | โ | โ | ||
input | QuantumCircuit.add_input | โ | ๐ก | 4, 9 |
output | โ |