Skip to main content
IBM Quantum Platform

SwitchCaseOp

class qiskit.circuit.SwitchCaseOp(target, cases, *, label=None)

GitHub

Basi: ControlFlowOp

Operazione di circuito che esegue un determinato blocco di circuito in base alla corrispondenza di un dato target elemento con un elenco ordinato di valueselementi. Il valore CASE_DEFAULT speciale può essere utilizzato per rappresentare una condizione predefinita.

Parametri

  • target (Clbit |ClassicalRegister |expr.Expr) – il valore in tempo reale da impostare.
  • cases (Iterable[tuple[Any, QuantumCircuit]]) – un iterabile ordinato contenente il valore corrispondente di e il target blocco circuitale che deve essere eseguito in caso di corrispondenza. Non vi è alcun passaggio automatico tra i blocchi e l'ordine è importante.
  • label (str | None) – Un'etichetta facoltativa per identificare l'istruzione.

Attributi

base_class

Ottiene la classe base di questa istruzione. È garantita la presenza nell'albero ereditario di self.

La "classe base" di un'istruzione è la classe più bassa dell'albero di ereditarietà con cui l'oggetto deve essere considerato completamente compatibile per le applicazioni dei circuiti. Questo in genere significa che la sottoclasse è definita solo per offrire una sorta di comodità al programmatore rispetto alla classe base, mentre la classe base è la "vera" classe dal punto di vista comportamentale. In particolare, non si dovrebbe sovrascrivere base_class se si sta definendo una versione personalizzata di un'istruzione che sarà implementata in modo diverso dall'hardware, come ad esempio una strategia di misura alternativa, o una versione di un gate parametrizzato con un particolare insieme di parametri per distinguerlo in un file Target dalla porta parametrizzata completa.

Spesso è esattamente equivalente a type(obj), tranne nel caso di istanze singleton di istruzioni della libreria standard. Queste istanze singleton sono sottoclassi speciali della loro classe base e questa proprietà restituirà la classe base. Ad esempio:

>>> isinstance(XGate(), XGate)
True
>>> type(XGate()) is XGate
False
>>> XGate().base_class is XGate
True

In generale, non si dovrebbe fare affidamento sulla classe precisa di un'istruzione; all'interno di un determinato circuito, si prevede che Instruction.name dovrebbe essere un discriminante più adatto nella maggior parte delle situazioni.

blocks

decompositions

Ottenere le scomposizioni dell'istruzione da SessionEquivalenceLibrary.

definition

Definizione di ritorno in termini di altri cancelli di base.

label

Etichetta di istruzioni per la restituzione

mutable

Questa istanza è un'istanza unica mutabile o meno.

Se questo attributo è False , l'istanza del gate è un singleton condiviso e non è mutabile.

name

Restituisce il nome.

num_clbits

Restituisce il numero di clbit.

num_qubits

Restituisce il numero di qubit.

params

I parametri di questo Instruction. Idealmente si tratta di angoli di passaggio.


Metodi

add_decomposition

add_decomposition(decomposition)

GitHub

Aggiungere una decomposizione dell'istruzione a SessionEquivalenceLibrary.

broadcast_arguments

broadcast_arguments(qargs, cargs)

GitHub

Convalida degli argomenti.

Parametri

  • qargs (List) – Elenco degli argomenti dei bit quantici.
  • cargs (List) – Elenco degli argomenti classici dei bit.

Attese

Tuple(List, List) - Una tupla con singoli argomenti.

Aumenti

CircuitError – Se l'input non è valido. Ad esempio, il numero di argomenti non corrisponde a quanto previsto dal gate.

cases

cases()

GitHub

Restituisce una tabella di ricerca dalle etichette dei casi al circuito che verrebbe eseguito in quel caso. Questo oggetto non è generalmente adatto alla creazione di un nuovo oggetto SwitchCaseOp perché le chiavi che puntano allo stesso oggetto non saranno raggruppate.

Vedi anche

SwitchCaseOp.cases_specifier()

Un metodo alternativo che produce il suo output in un formato adatto alla creazione di nuove istanze SwitchCaseOp istanze.

cases_specifier

cases_specifier()

GitHub

Restituisce un'iterabile in cui ogni elemento è una 2-tupla il cui primo elemento è una tupla di valori di salto e il secondo è il singolo blocco di circuito associato a tali valori.

Si tratta di una specifica astratta della tabella dei salti, adatta alla creazione di nuove istanze SwitchCaseOp istanze.

Vedi anche

SwitchCaseOp.cases()

Create una tabella di ricerca che potete utilizzare per i vostri scopi per passare dai valori al circuito che verrebbe eseguito.

Tipo di restituzione

Iterable[ tuple [ tuple, QuantumCircuit ]]

copy

copy(name=None)

GitHub

Copia dell'istruzione.

Parametri

name (str) – nome da assegnare al circuito copiato, se None il nome rimane invariato.

Risultati

una copia dell'istruzione corrente, con il nome aggiornato se è stato fornito

Tipo di restituzione

qiskit.circuit.Instruction

inverse

inverse(annotated=False)

GitHub

Invertire questa istruzione.

Se annotated è False, l'istruzione inversa viene implementata come una nuova istruzione con la definizione ricorsivamente invertita.

Se annotated è True, l'istruzione inversa è implementata come AnnotatedOperatione corrisponde all'istruzione data annotata con il "modificatore inverso".

Le istruzioni speciali che ereditano da Instruction possono implementare il proprio inverso (ad esempio T e Tdg, Barrier, ecc.) In particolare, possono scegliere come gestire l'argomento annotated , tra cui ignorarlo e restituire sempre una classe gate concreta se l'inverso è definito come gate standard.

Parametri

annotated (bool) – se impostato su True, l'uscita del gate inverso sarà restituita come AnnotatedOperation.

Risultati

L'operazione inversa.

Aumenti

CircuitError – se l'istruzione non è composta e non è stata implementata la sua inversa.

is_parameterized

is_parameterized()

GitHub

Restituisce se il Instruction contiene parametri di compilazione.

iter_captured_stretches

iter_captured_stretches()

GitHub

Ottiene un iteratore sulle variabili di tratto uniche catturate in tutti i blocchi di questo costrutto.

Tipo di restituzione

Iterable [ expr.Stretch ]

iter_captured_vars

iter_captured_vars()

GitHub

Ottiene un iteratore sulle variabili uniche catturate in tutti i blocchi di questo costrutto.

Tipo di restituzione

Iterable [ expr.Var ]

repeat

repeat(n)

GitHub

Crea un'istruzione con self la ripetizione di « nn » volte.

Parametri

n (int) – Numero di volte in cui ripetere l'istruzione

Risultati

Contiene la definizione.

Tipo di restituzione

qiskit.circuit.Instruction

Aumenti

CircuitError – Se n < 1.

replace_blocks

replace_blocks(blocks)

GitHub

Restituisce una nuova versione di questo flusso di operazioni di controllo con gli elementi blocks mappate su quelle nuove.

In genere viene utilizzato in un flusso di lavoro come:

existing_op = ...

def map_block(block: QuantumCircuit) -> QuantumCircuit:
    new_block = block.copy_empty_like()
    # ... do something to `new_block` ...
    return new_block

new_op = existing_op.replace_blocks(
    map_block(block) for block in existing_op.blocks
)

È responsabilità del chiamante assicurarsi che i blocchi mappati siano definiti su un insieme unificato di risorse del circuito, in modo analogo alla costruzione di un oggetto ControlFlowOp utilizzando il suo costruttore predefinito.

Parametri

blocks (Iterable[QuantumCircuit]) – i nuovi blocchi di sottocircuiti da utilizzare.

Risultati

Nuovo ControlFlowOp con blocchi sostituiti.

Tipo di restituzione

SwitchCaseOp

reverse_ops

reverse_ops()

GitHub

Per un'istruzione composta, invertire l'ordine delle sottoistruzioni.

Ciò avviene invertendo ricorsivamente tutte le sottoistruzioni. Non inverte alcun cancello.

Risultati

una nuova istruzione con

le sottoistruzioni invertite.

Tipo di restituzione

qiskit.circuit.Instruction

soft_compare

soft_compare(other)

GitHub

Confronto morbido tra le porte. I loro nomi, il numero di qubit e i numeri di bit classici devono corrispondere. Il numero di parametri deve corrispondere. Ogni parametro viene confrontato. Se uno è un ParameterExpression non viene preso in considerazione.

Parametri

other (instruction) – altre istruzioni.

Risultati

sono auto e altri uguali fino alle espressioni dei parametri.

Tipo di restituzione

bool

to_mutable

to_mutable()

GitHub

Restituisce una copia mutabile di questo gate.

Questo metodo restituisce una nuova copia mutabile di questa istanza di gate. Se si utilizza un'istanza singleton, questa sarà una nuova istanza unica che può essere mutata. Se l'istanza è già mutabile, sarà una copia profonda di quell'istanza.

validate_parameter

validate_parameter(parameter)

GitHub

Il parametro Istruzione non ha alcuna convalida o normalizzazione.

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.