ISATransform 類別
用於ISA間轉換的抽象基底類別(例如QEC方案)。
ISA 轉換定義了從所需輸入指令集(例如架構約束)到所提供輸出指令集(邏輯指令)之間的映射。 它支援列舉設定參數。
建構函式
ISATransform()
方法
| bind |
為此轉換建立一個 BindingNode。 這是一種方便方法,等價於 |
| 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
必要
|
將轉換輸出綁定到的名稱。 |
|
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)。 |
|
ctx
必要
|
列舉上下文中其來源圖儲存指令。 |
q
為此轉換建立一個 ISAQuery 節點。
q(*, source: ISAQuery | None = None, **kwargs) -> ISAQuery
參數
| 名稱 | Description |
|---|---|
|
source
必要
|
<xref:<xref:qdk.qre.Node | None>>
提供實作指令集的來源節點。 預設是ISA_ROOT。 |
|
**kwargs
必要
|
資料類別欄位的固定值或域。 僅包含 a 的 例如,給定一個帶有非僅關鍵字欄位 |
僅限關鍵字的參數
| 名稱 | Description |
|---|---|
|
source
|
預設值: None
|
傳回
| 類型 | Description |
|---|---|
|
一個代表此轉換的枚舉節點。 |
required_isa
回傳實施 ISA 必須滿足的要求。
abstract static required_isa() -> ISARequirements
傳回
| 類型 | Description |
|---|---|
|
基礎ISA的要求。 |