ISATransform 類別

用於ISA間轉換的抽象基底類別(例如QEC方案)。

ISA 轉換定義了從所需輸入指令集(例如架構約束)到所提供輸出指令集(邏輯指令)之間的映射。 它支援列舉設定參數。

建構函式

ISATransform()

方法

bind

為此轉換建立一個 BindingNode。

這是一種方便方法,等價於 cls.q().bind(name, node)。

enumerate_isas

列出所有有效 ISA,給定實作 ISA。

此方法會遍歷所有轉換類別實例(列舉超參數),並根據需求過濾實作指令集。

provided_isa

給定實作指令集時,可由此轉換所提供的指令指令集。

q

為此轉換建立一個 ISAQuery 節點。

required_isa

回傳實施 ISA 必須滿足的要求。

bind

為此轉換建立一個 BindingNode。

這是一種方便方法,等價於 cls.q().bind(name, node)。

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

參數

名稱 Description
name
必要
str

將轉換輸出綁定到的名稱。

node
必要
<xref:qdk.qre.Node>

就是可以參考這個綁定的子節點。

傳回

類型 Description
<xref:BindingNode>

一個包圍此轉換的綁定節點。

enumerate_isas

列出所有有效 ISA,給定實作 ISA。

此方法會遍歷所有轉換類別實例(列舉超參數),並根據需求過濾實作指令集。

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

參數

名稱 Description
impl_isa
必要
<xref:ISA | Iterable>[<xref:ISA>]

一個或多個實作指令集。

ctx
必要

列舉的背景。

**kwargs
必要

參數傳遞給參數列舉。

provided_isa

給定實作指令集時,可由此轉換所提供的指令指令集。

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

參數

名稱 Description
impl_isa
必要
ISA

滿足需求的實施指令集(ISA)。

ctx
必要

列舉上下文中其來源圖儲存指令。

q

為此轉換建立一個 ISAQuery 節點。

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

參數

名稱 Description
source
必要
<xref:<xref:qdk.qre.Node | None>>

提供實作指令集的來源節點。 預設是ISA_ROOT。

**kwargs
必要

資料類別欄位的固定值或域。 僅包含 a 的 metadata["domain"] 關鍵字欄位會自動列舉;傳遞此類欄位的值會覆蓋或限制該領域。 此處傳遞的非關鍵字欄位作為所有枚舉實例的固定值。

例如,給定一個帶有非僅關鍵字欄位threshold和一個僅關鍵字distance欄位且定義域為單一欄位的轉換,MyTransform.q(threshold=0.03)threshold呼叫定位到 0.03 的同時,仍枚舉該域中distance的所有值。

僅限關鍵字的參數

名稱 Description
source
預設值: None

傳回

類型 Description

一個代表此轉換的枚舉節點。

required_isa

回傳實施 ISA 必須滿足的要求。

abstract static required_isa() -> ISARequirements

傳回

類型 Description

基礎ISA的要求。