interop Pacchetto
Classi
| PeakUsageGreedyQubitManager |
Un qubit manager che monitora separatamente i qubit di calcolo e di memoria. È costituito da due gestioni qubit indipendenti per ogni tipo di qubit. Ogni responsabile usa una strategia di allocazione greedy da I qubit di un tipo, dopo essere stati liberati, non possono essere riutilizzati come qubit di tipo diverso. Di conseguenza, il numero di qubit di picco è uguale alla somma dei conteggi dei qubit di picco per ogni tipo. Inizializzare PeakUsageGreedyQubitManager. |
| PopBlock |
Segnala la fine del blocco ripetuto corrente nella traccia. |
| PushBlock |
Segnala l'inizio di un blocco ripetuto nella traccia. |
| ReadFromMemoryGate |
Sposta gli stati qubit dal registro MEMORY al registro COMPUTE. Si supponga che i qubit COMPUTE siano preparati in 0 stato. Lascia i qubit MEMORY in 0 stato. Inizializza ReadFromMemoryGate. |
| TypedQubit |
Qubit con tipo. Inizializza il qubit tipizzato. |
| WriteToMemoryGate |
Sposta gli stati qubit dal registro COMPUTE al registro MEMORY. Si supponga che i qubit MEMORY siano preparati nello stato 0. Lascia i qubit COMPUTE in 0 stato. Inizializza WriteToMemoryGate. |
Enumerazioni
| QubitType |
Tipo qubit. Ogni qubit logico può essere un qubit di calcolo o di memoria. I qubit di calcolo possono essere usati normalmente. I qubit di memoria hanno una restrizione che i controlli non possono essere applicati. Le uniche operazioni consentite sui qubit di memoria sono letture/scritture, in cui lo stato viene spostato dalla memoria al controllo di calcolo o dal calcolo al gate di memoria. Si presuppone che quando viene applicata la correzione degli errori, i qubit di memoria vengono codificati con uno schema di correzione degli errori più efficiente che richiede meno risorse, ma non consente l'applicazione gate (ad esempio, i codici superficie yoked, https://arxiv.org/abs/2312.04522). |
Funzioni
assert_qubits_type
Asserisce che i qubit hanno specificato il tipo, ma solo se sono TypedQubits.
assert_qubits_type(qs: Sequence[Qid], qubit_type: QubitType) -> None
Parametri
| Nome | Descrizione |
|---|---|
|
qs
Necessario
|
|
|
qubit_type
Necessario
|
|
read_from_memory
Operazione per leggere i qubit dalla memoria.
read_from_memory(memory_qubits: Sequence[Qid], compute_qubits: Sequence[Qid]) -> Operation
Parametri
| Nome | Descrizione |
|---|---|
|
memory_qubits
Necessario
|
|
|
compute_qubits
Necessario
|
|
trace_from_cirq
Convertire un circuito Cirq in una traccia di stima delle risorse.
Scorre tutti i momenti e le operazioni nel circuito, convertendo ogni gate in operazioni di traccia. Le porte con un _to_trace metodo vengono convertite direttamente; altre vengono scomposte in modo ricorsivo tramite i protocolli o _decompose_ di _decompose_with_context_ Cirq.
trace_from_cirq(circuit: cirq.CIRCUIT_LIKE, *, classical_control_probability: float = 0.5, rotation_threshold: float = 1e-06, track_memory_qubits: bool = True) -> Trace
Parametri
| Nome | Descrizione |
|---|---|
|
circuit
Necessario
|
Circuito Cirq da convertire. |
|
classical_control_probability
Necessario
|
Probabilità che un'operazione controllata in modo classico sia inclusa nella traccia. Il valore predefinito è 0,5. |
|
rotation_threshold
Necessario
|
Gli esponenti di rotazione con valore assoluto inferiore a questa soglia vengono considerati come identity e omessi dalla traccia. Questo vale per le rotazioni a qubit singolo (RX, RY, RZ) e per i componenti di rotazione delle scomposizione controllate-Z. Il valore predefinito è 1e-6. |
|
track_memory_qubits
Necessario
|
Se True, i qubit di memoria vengono rilevati separatamente dai qubit di calcolo. Se False, tutti i qubit vengono considerati come qubit di calcolo. Inoltre, se true, le istruzioni di lettura da memoria e scrittura in memoria vengono mantenute nella traccia, altrimenti vengono decompilette nelle istruzioni SWAP e RESET. Il valore predefinito è True. |
Parametri di sole parole chiave
| Nome | Descrizione |
|---|---|
|
classical_control_probability
|
Valore predefinito: 0.5
|
|
rotation_threshold
|
Valore predefinito: 1e-06
|
|
track_memory_qubits
|
Valore predefinito: True
|
Valori restituiti
| Tipo | Descrizione |
|---|---|
|
Traccia che rappresenta un profilo di esecuzione del circuito. |
trace_from_entry_expr
Convertire un'espressione di immissione Q# in una traccia di stima delle risorse.
Valuta l'espressione di immissione per ottenere i conteggi logici, quindi compila una traccia contenente le operazioni quantistiche corrispondenti.
trace_from_entry_expr(entry_expr: str | Callable | LogicalCounts, *args) -> Trace
Parametri
| Nome | Descrizione |
|---|---|
|
entry_expr
Necessario
|
<xref:<xref:qdk.qre.interop.str | Callable | LogicalCounts>>
Stringa di espressione di voce Q#, conteggi logici chiamabili o pre-calcolati. |
|
*args
Necessario
|
Argomenti da passare all'oggetto chiamabile, se disponibile. |
Valori restituiti
| Tipo | Descrizione |
|---|---|
|
Traccia che rappresenta il profilo di risorsa del programma. |
trace_from_entry_expr_cached
Convertire un'espressione di immissione Q# in una traccia, con memorizzazione nella cache facoltativa.
Se viene fornito cache_path ed esiste, la traccia viene caricata dal disco.
In caso contrario, la traccia viene calcolata tramite trace_from_entry_expr e, facoltativamente, scritta in cache_path.
trace_from_entry_expr_cached(entry_expr: str | Callable | LogicalCounts, cache_path: Path | None, *args) -> Trace
Parametri
| Nome | Descrizione |
|---|---|
|
entry_expr
Necessario
|
<xref:<xref:qdk.qre.interop.str | Callable | LogicalCounts>>
Stringa di espressione di voce Q#, conteggi logici chiamabili o pre-calcolati. |
|
cache_path
Necessario
|
<xref:Optional>[<xref:Path>]
Percorso per la lettura/scrittura della traccia memorizzata nella cache. Se Nessuno, la memorizzazione nella cache è disabilitata. |
Valori restituiti
| Tipo | Descrizione |
|---|---|
|
Traccia che rappresenta il profilo di risorsa del programma. |
trace_from_qir
Convertire un programma QIR in una traccia di stima delle risorse.
Analizza il modulo QIR, estrae i controlli quantistici e compila una traccia che può essere usata per la stima delle risorse. I rami condizionali vengono risolti seguendo sempre il percorso false (presupponendo che i risultati della misurazione siano Zero).
trace_from_qir(input: str | bytes) -> Trace
Parametri
| Nome | Descrizione |
|---|---|
|
input
Necessario
|
Input QIR come testo LLVM IR (str) o bitcode (byte). |
Valori restituiti
| Tipo | Descrizione |
|---|---|
|
Traccia contenente le operazioni quantistice del programma QIR. |
write_to_memory
Operazione per scrivere qubit in memoria.
write_to_memory(memory_qubits: Sequence[Qid], compute_qubits: Sequence[Qid]) -> Operation
Parametri
| Nome | Descrizione |
|---|---|
|
memory_qubits
Necessario
|
|
|
compute_qubits
Necessario
|
|