interop パッケージ
クラス
| PeakUsageGreedyQubitManager |
計算とメモリの量子ビットを個別に追跡する量子ビット マネージャー。 これは、量子ビットの種類ごとに 2 つの独立した量子ビット マネージャーで構成されます。 各マネージャーは、 解放後の 1 つの型の量子ビットは、異なる型の量子ビットとして再利用できません。 したがって、ピーク量子ビット数は、各種類のピーク量子ビット数の合計と等しくなります。 PeakUsageGreedyQubitManager を初期化します。 |
| PopBlock |
トレース内の現在の繰り返しブロックの終了を通知します。 |
| PushBlock |
トレース内の繰り返しブロックの開始を通知します。 |
| ReadFromMemoryGate |
量子ビットの状態を MEMORY レジスタから COMPUTE レジスタに移動します。 COMPUTE 量子ビットが 0 状態で準備されていることを前提としています。 MEMORY 量子ビットを 0 の状態のままにします。 ReadFromMemoryGate を初期化します。 |
| TypedQubit |
種類を持つ量子ビット。 型指定された量子ビットを初期化します。 |
| WriteToMemoryGate |
量子ビットの状態を COMPUTE レジスタから MEMORY レジスタに移動します。 MEMORY 量子ビットが 0 状態で準備されていることを前提としています。 COMPUTE 量子ビットは 0 状態のままにします。 WriteToMemoryGate を初期化します。 |
列挙型
| QubitType |
量子ビットの種類。 各論理量子ビットには、コンピューティング量子ビットまたはメモリ量子ビットのいずれかを指定できます。 計算量子ビットは通常どおり使用できます。 メモリ量子ビットには、ゲートを適用できないという制限があります。 メモリ量子ビットに対して許可される操作は読み取り/書き込みのみです。この場合、状態はメモリからコンピューティング ゲート、またはコンピューティングゲートからメモリ ゲートに移動されます。 エラー修正が適用されると、メモリ量子ビットは、リソースを少なくする必要があるが、ゲート アプリケーションを許可しない (例: ヨークサーフェス コード、 https://arxiv.org/abs/2312.04522) より効率的なエラー修正スキームでエンコードされると仮定します。 |
関数
assert_qubits_type
量子ビットが TypedQubits の場合にのみ、その量子ビットの型が指定されていることをアサートします。
assert_qubits_type(qs: Sequence[Qid], qubit_type: QubitType) -> None
パラメーター
| 名前 | 説明 |
|---|---|
|
qs
必須
|
|
|
qubit_type
必須
|
|
read_from_memory
メモリから量子ビットを読み取る操作。
read_from_memory(memory_qubits: Sequence[Qid], compute_qubits: Sequence[Qid]) -> Operation
パラメーター
| 名前 | 説明 |
|---|---|
|
memory_qubits
必須
|
|
|
compute_qubits
必須
|
|
trace_from_cirq
Cirq 回線をリソース推定トレースに変換します。
回路内のすべての瞬間と操作を反復処理し、各ゲートをトレース操作に変換します。
_to_traceメソッドを持つゲートは直接変換されます。その他のゲートは、Cirq の_decompose_with_context_または_decompose_プロトコルを介して再帰的に分解されます。
trace_from_cirq(circuit: cirq.CIRCUIT_LIKE, *, classical_control_probability: float = 0.5, rotation_threshold: float = 1e-06, track_memory_qubits: bool = True) -> Trace
パラメーター
| 名前 | 説明 |
|---|---|
|
circuit
必須
|
変換する Cirq 回線。 |
|
classical_control_probability
必須
|
古典的に制御された演算がトレースに含まれる確率。 既定値は 0.5 です。 |
|
rotation_threshold
必須
|
このしきい値を下回る絶対値を持つ回転指数は ID として扱われ、トレースからは省略されます。 これは、単一量子ビット回転 (RX、RY、RZ) と、制御された Z 分解の回転コンポーネントに適用されます。 既定値は 1e から 6 です。 |
|
track_memory_qubits
必須
|
True の場合、メモリ量子ビットは計算量子ビットとは別に追跡されます。 False の場合、すべての量子ビットは計算量子ビットとして扱われます。 また、True の場合、メモリからの読み取り命令とメモリへの書き込み命令はトレースに保持されます。それ以外の場合は、SWAP 命令と RESET 命令に逆コンパイルされます。 既定値は True です。 |
キーワードのみのパラメーター
| 名前 | 説明 |
|---|---|
|
classical_control_probability
|
規定値: 0.5
|
|
rotation_threshold
|
規定値: 1e-06
|
|
track_memory_qubits
|
規定値: True
|
返品
| 型 | 説明 |
|---|---|
|
回線の実行プロファイルを表すトレース。 |
trace_from_entry_expr
Q# エントリ式をリソース推定トレースに変換します。
エントリ式を評価して論理カウントを取得し、対応する量子演算を含むトレースを構築します。
trace_from_entry_expr(entry_expr: str | Callable | LogicalCounts, *args) -> Trace
パラメーター
| 名前 | 説明 |
|---|---|
|
entry_expr
必須
|
<xref:<xref:qdk.qre.interop.str | Callable | LogicalCounts>>
Q# エントリ式の文字列、呼び出し可能な論理カウント、または事前計算済みの論理カウント。 |
|
*args
必須
|
呼び出し可能な呼び出し可能に渡す引数 (指定されている場合)。 |
返品
| 型 | 説明 |
|---|---|
|
プログラムのリソース プロファイルを表すトレース。 |
trace_from_entry_expr_cached
オプションのキャッシュを使用して、Q# エントリ式を Trace に変換します。
cache_pathが指定され、存在する場合、トレースはディスクから読み込まれます。
それ以外の場合、トレースは trace_from_entry_expr を介して計算され、必要に応じて cache_pathに書き込まれます。
trace_from_entry_expr_cached(entry_expr: str | Callable | LogicalCounts, cache_path: Path | None, *args) -> Trace
パラメーター
| 名前 | 説明 |
|---|---|
|
entry_expr
必須
|
<xref:<xref:qdk.qre.interop.str | Callable | LogicalCounts>>
Q# エントリ式の文字列、呼び出し可能な論理カウント、または事前計算済みの論理カウント。 |
|
cache_path
必須
|
<xref:Optional>[<xref:Path>]
キャッシュされたトレースの読み取り/書き込みのパス。 None の場合、キャッシュは無効になります。 |
返品
| 型 | 説明 |
|---|---|
|
プログラムのリソース プロファイルを表すトレース。 |
trace_from_qir
QIR プログラムをリソース推定トレースに変換します。
QIR モジュールを解析し、量子ゲートを抽出し、リソース推定に使用できるトレースを構築します。 条件付き分岐は、常に false パスに従うことによって解決されます (測定結果が 0 であると仮定)。
trace_from_qir(input: str | bytes) -> Trace
パラメーター
| 名前 | 説明 |
|---|---|
|
input
必須
|
LLVM IR テキスト (str) またはビットコード (バイト) としての QIR 入力。 |
返品
| 型 | 説明 |
|---|---|
|
QIR プログラムからの量子演算を含むトレース。 |
write_to_memory
量子ビットをメモリに書き込む操作。
write_to_memory(memory_qubits: Sequence[Qid], compute_qubits: Sequence[Qid]) -> Operation
パラメーター
| 名前 | 説明 |
|---|---|
|
memory_qubits
必須
|
|
|
compute_qubits
必須
|
|