ISATransform Classe

Classe base astratta per le trasformazioni tra isa (ad esempio, schemi QEC).

Una trasformazione ISA definisce un mapping da un ISA di input obbligatorio (ad esempio, vincoli di architettura) a un ISA di output fornito (istruzioni logiche). Supporta l'enumerazione dei parametri di configurazione.

Costruttore

ISATransform()

Metodi

bind

Creare un BindingNode per questa trasformazione.

Si tratta di un metodo pratico equivalente a cls.q().bind(name, node).

enumerate_isas

Enumerare tutti gli ISA validi per questa trasformazione specifica implementazione isas.

Questo metodo esegue l'iterazione su tutte le istanze della classe di trasformazione (enumerazione degli iperparametri) e filtra l'implementazione degli ISA in base ai requisiti.

provided_isa

Restituisce gli ISA forniti da questa trasformazione in base a un'implementazione ISA.

q

Creare un nodo ISAQuery per questa trasformazione.

required_isa

Restituisce i requisiti che un'implementazione ISA deve soddisfare.

bind

Creare un BindingNode per questa trasformazione.

Si tratta di un metodo pratico equivalente a cls.q().bind(name, node).

bind(name: str, node: ISAQuery) -> _BindingNode

Parametri

Nome Descrizione
name
Necessario
str

Nome a cui associare l'output della trasformazione.

node
Necessario
<xref:qdk.qre.Node>

Nodo figlio che può fare riferimento a questa associazione.

Valori restituiti

Tipo Descrizione
<xref:BindingNode>

Nodo di associazione che racchiude questa trasformazione.

enumerate_isas

Enumerare tutti gli ISA validi per questa trasformazione specifica implementazione isas.

Questo metodo esegue l'iterazione su tutte le istanze della classe di trasformazione (enumerazione degli iperparametri) e filtra l'implementazione degli ISA in base ai requisiti.

enumerate_isas(impl_isa: ISA | Iterable[ISA], ctx: ISAContext, **kwargs) -> Generator[ISA, None, None]

Parametri

Nome Descrizione
impl_isa
Necessario
<xref:ISA | Iterable>[<xref:ISA>]

Uno o più ISA di implementazione.

ctx
Necessario

Contesto di enumerazione.

**kwargs
Necessario

Argomenti passati all'enumerazione dei parametri.

provided_isa

Restituisce gli ISA forniti da questa trasformazione in base a un'implementazione ISA.

abstract provided_isa(impl_isa: ISA, ctx: ISAContext) -> Generator[ISA, None, None]

Parametri

Nome Descrizione
impl_isa
Necessario
ISA

Implementazione di ISA che soddisfa i requisiti.

ctx
Necessario

Contesto di enumerazione il cui grafico di provenienza archivia le istruzioni.

q

Creare un nodo ISAQuery per questa trasformazione.

q(*, source: ISAQuery | None = None, **kwargs) -> ISAQuery

Parametri

Nome Descrizione
source
Necessario
<xref:<xref:qdk.qre.Node | None>>

Nodo di origine che fornisce gli ISA di implementazione. Il valore predefinito è ISA_ROOT.

**kwargs
Necessario

Valori fissi o domini per i campi della classe dati. I campi di sola parola chiave con un metadata["domain"] oggetto vengono enumerati automaticamente. Il passaggio di un valore per tale campo esegue l'override o limita il dominio. I campi non di sola parola chiave passati qui vengono usati come valori fissi per tutte le istanze enumerate.

Ad esempio, data una trasformazione con un campo solo parola chiave e un campo thresholddistance di sola parola chiave con un dominio, la chiamata MyTransform.q(threshold=0.03) di correzioni threshold a 0,03, pur continuando a enumerare tutti i valori nel distance dominio.

Parametri di sole parole chiave

Nome Descrizione
source
Valore predefinito: None

Valori restituiti

Tipo Descrizione

Nodo di enumerazione che rappresenta questa trasformazione.

required_isa

Restituisce i requisiti che un'implementazione ISA deve soddisfare.

abstract static required_isa() -> ISARequirements

Valori restituiti

Tipo Descrizione

Requisiti per l'ISA sottostante.