Context クラス
分離された Q# インタープリター環境。
コンテキストは自己完結型の Q# 実行環境を提供します。この環境では、コードが他のコンテキスト インスタンスから分離して評価、コンパイル、実行されます。 各コンテキストは、独自のコード名前空間を保持します。
コンテキストには、code 属性があります。これは、このコンテキストで定義されているすべての Q# 操作と型を含むPython モジュールです。 これにより、Pythonから Q# 操作を呼び出すことができます。
Example:
ctx = qdk.Context()
ctx.eval("operation Main() : Result { use q = Qubit(); X(q); MResetZ(q) }")
assert ctx.run("Main()", 2) == [qdk.Result.One, qdk.Result.One]
assert ctx.code.Main() == qdk.Result.One
新しい分離された Q# コンテキストを初期化します。
コンストラクター
Context(*, target_profile: TargetProfile = TargetProfile.Unrestricted, target_name: str | None = None, project_root: str | None = None, language_features: List[str] | None = None, _trace_circuit: bool | None = None, _is_global_context: bool = False)
キーワードのみのパラメーター
| 名前 | 説明 |
|---|---|
|
target_profile
|
ターゲット プロファイルを設定すると、Q# インタープリターは特定のターゲットと互換性のあるプログラムを生成できます。 TargetProfileを参照してください。 規定値: Unrestricted
|
|
target_name
|
互換性のあるtarget_profile設定の推論に使用するターゲット コンピューターの省略可能な名前。 規定値: None
|
|
project_root
|
含める Q# プロジェクトを含むルート ディレクトリへの省略可能なパス。 qsharp.json プロジェクト マニフェストを含む必要があります。 規定値: None
|
|
language_features
|
有効にする言語機能フラグの省略可能な一覧。 これらは、試験段階またはプレビューの Q# 言語機能に対応します。 有効な値は次のとおりです。
スコープ付き量子ビット割り当てブロック フォーム ( 規定値: None
|
|
_trace_circuit
|
規定値: None
|
|
_is_global_context
|
規定値: False
|
メソッド
| circuit |
Q# プログラムの回線を合成します。 エントリ式または操作を指定する必要があります。 |
| compile |
ターゲットに送信できるプログラムに Q# ソース コードをコンパイルします。 エントリ式または引数を含む呼び出し可能な式を指定する必要があります。 Example: |
| dump_machine |
シミュレーターのスパース状態ベクトルを StateDump オブジェクトとして返します。 |
| eval |
Q# ソース コードを評価します。 出力はコンソールに出力されます。 |
| get_target_profile |
このコンテキストのターゲット プロファイルを返します。 |
| import_openqasm |
OpenQASM ソース コードをこのコンテキストのインタープリターにインポートします。 |
| logical_counts |
Q# ソース コードから論理リソース数を抽出します。 エントリ式または引数を含む呼び出し可能な式を指定する必要があります。 |
| run |
指定されたショット数に対して、指定された Q# 式を実行します。 各ショットでは、シミュレーターの独立したインスタンスが使用されます。 |
| set_classical_seed |
標準ライブラリの従来の乱数演算に使用される乱数ジェネレーターのシードを設定します。 これは、このコンテキストで実行、コンパイル、または推定されるすべての Q# コードに適用されます。 |
| set_quantum_seed |
量子測定に使用される乱数ジェネレーターのシードを設定します。 これは、このコンテキストで実行、コンパイル、または推定されるすべての Q# コードに適用されます。 |
circuit
Q# プログラムの回線を合成します。 エントリ式または操作を指定する必要があります。
circuit(entry_expr: str | Callable | GlobalCallable | Closure | None = None, *args, operation: str | None = None, generation_method: CircuitGenerationMethod | None = None, max_operations: int | None = None, source_locations: bool = False, group_by_scope: bool = True, prune_classical_qubits: bool = False) -> Circuit
パラメーター
| 名前 | 説明 |
|---|---|
|
entry_expr
|
エントリ式。 または、Q# 呼び出し可能である必要がある呼び出し可能な呼び出し可能を指定することもできます。 規定値: None
|
|
*args
必須
|
呼び出し可能な呼び出し可能に渡す引数 (指定されている場合)。 |
キーワードのみのパラメーター
| 名前 | 説明 |
|---|---|
|
operation
|
合成する操作。 操作の名前またはラムダ式を指定できます。 この操作では、量子ビットまたは量子ビットの配列のみをパラメーターとして受け取る必要があります。 規定値: None
|
|
generation_method
|
回路生成に使用する方法。
ClassicalEval は、回路生成時に従来の制御フローを評価します。
Simulate は完全なシミュレーションを実行して回路をトレースします。
Static は部分評価を使用し、 規定値: None
|
|
max_operations
|
回線に含める操作の最大数。 既定値は 規定値: None
|
|
source_locations
|
規定値: False
|
|
group_by_scope
|
規定値: True
|
|
prune_classical_qubits
|
規定値: False
|
返品
| 型 | 説明 |
|---|---|
|
<xref:Circuit>
|
合成された回路。 |
例外
| 型 | 説明 |
|---|---|
|
回線の合成中にエラーが発生した場合。 |
compile
ターゲットに送信できるプログラムに Q# ソース コードをコンパイルします。 エントリ式または引数を含む呼び出し可能な式を指定する必要があります。
Example:
compile(entry_expr: str | Callable | GlobalCallable | Closure, *args) -> QirInputData
パラメーター
| 名前 | 説明 |
|---|---|
|
entry_expr
必須
|
プログラムのエントリ ポイントとして使用される Q# 式。 または、Q# 呼び出し可能である必要がある呼び出し可能な呼び出し可能を指定することもできます。 |
|
*args
必須
|
呼び出し可能な呼び出し可能に渡す引数 (指定されている場合)。 |
返品
| 型 | 説明 |
|---|---|
|
<xref:QirInputData>
|
コンパイル済みプログラム。
|
dump_machine
シミュレーターのスパース状態ベクトルを StateDump オブジェクトとして返します。
dump_machine() -> StateDump
返品
| 型 | 説明 |
|---|---|
|
シミュレーターの状態。 |
eval
Q# ソース コードを評価します。
出力はコンソールに出力されます。
eval(source: str, *, save_events: bool = False) -> Any
パラメーター
| 名前 | 説明 |
|---|---|
|
source
必須
|
評価する Q# ソース コード。 |
キーワードのみのパラメーター
| 名前 | 説明 |
|---|---|
|
save_events
|
true の場合、すべての出力が保存され、返されます。 false の場合は、印刷されます。 規定値: False
|
返品
| 型 | 説明 |
|---|---|
|
ソース コード内の最後のステートメントによって返される値、または |
例外
| 型 | 説明 |
|---|---|
|
ソース コードの評価中にエラーが発生した場合。 |
get_target_profile
このコンテキストのターゲット プロファイルを返します。
get_target_profile() -> TargetProfile
import_openqasm
OpenQASM ソース コードをこのコンテキストのインタープリターにインポートします。
import_openqasm(source: str, **kwargs: Any) -> Any
パラメーター
| 名前 | 説明 |
|---|---|
|
source
必須
|
OpenQASM プログラムまたはフラグメント。 |
|
**kwargs
必須
|
追加のキーワード引数。 一般的なオプション:
|
返品
| 型 | 説明 |
|---|---|
|
ソース コード内の最後のステートメントによって返される値。 |
例外
| 型 | 説明 |
|---|---|
|
OpenQASM ソースの生成、解析、または分析中にエラーが発生した場合。 |
|
|
プログラムのコンパイル中にエラーが発生した場合。 |
logical_counts
Q# ソース コードから論理リソース数を抽出します。 エントリ式または引数を含む呼び出し可能な式を指定する必要があります。
logical_counts(entry_expr: str | Callable | GlobalCallable | Closure, *args) -> LogicalCounts
パラメーター
| 名前 | 説明 |
|---|---|
|
entry_expr
必須
|
エントリ式。 または、Q# 呼び出し可能である必要がある呼び出し可能な呼び出し可能を指定することもできます。 |
返品
| 型 | 説明 |
|---|---|
|
論理ゲート数の観点からリソースをプログラムします。 |
run
指定されたショット数に対して、指定された Q# 式を実行します。 各ショットでは、シミュレーターの独立したインスタンスが使用されます。
run(entry_expr: str | Callable | GlobalCallable | Closure, shots: int, *args, on_result: Callable[[ShotResult], None] | None = None, save_events: bool = False, noise: Tuple[float, float, float] | PauliNoise | BitFlipNoise | PhaseFlipNoise | DepolarizingNoise | NoiseConfig | None = None, qubit_loss: float | None = None, seed: int | None = None, type: Literal['sparse', 'clifford'] | None = None, num_qubits: int | None = None) -> List[Any]
パラメーター
| 名前 | 説明 |
|---|---|
|
entry_expr
必須
|
エントリ式。 または、Q# 呼び出し可能である必要がある呼び出し可能な呼び出し可能を指定することもできます。 |
|
shots
必須
|
実行するショットの数。 |
|
*args
必須
|
呼び出し可能な呼び出し可能に渡す引数 (指定されている場合)。 |
|
on_result
必須
|
各結果で呼び出されるコールバック関数。 |
|
save_events
必須
|
true の場合、各ショットの出力が保存されます。 false の場合は、印刷されます。 |
|
noise
必須
|
シミュレーションで使用するノイズ。 |
|
qubit_loss
必須
|
シミュレーションでの量子ビット損失の確率。 |
|
seed
必須
|
シミュレーションで乱数ジェネレーターに使用するシード (存在する場合)。 |
|
type
必須
|
使用するシミュレーターの種類。 指定しない場合は、既定のスパース状態ベクトル シミュレーションが使用されます。 |
|
num_qubits
必須
|
シミュレーション タイプ "clifford" に使用する量子ビットの数。 指定しない場合、クリフォード シミュレーターでは既定値の 1000 量子ビットが想定されます。 |
キーワードのみのパラメーター
| 名前 | 説明 |
|---|---|
|
on_result
|
規定値: None
|
|
save_events
|
規定値: False
|
|
noise
|
規定値: None
|
|
qubit_loss
|
規定値: None
|
|
seed
|
規定値: None
|
|
type
|
規定値: None
|
|
num_qubits
|
規定値: None
|
返品
| 型 | 説明 |
|---|---|
|
結果またはランタイム エラーの一覧。
|
例外
| 型 | 説明 |
|---|---|
|
入力の解釈中にエラーが発生した場合。 |
|
|
ショットの数が 1 未満の場合。 |
set_classical_seed
標準ライブラリの従来の乱数演算に使用される乱数ジェネレーターのシードを設定します。 これは、このコンテキストで実行、コンパイル、または推定されるすべての Q# コードに適用されます。
set_classical_seed(seed: int | None) -> None
パラメーター
| 名前 | 説明 |
|---|---|
|
seed
必須
|
古典的な乱数ジェネレーターに使用するシード。 None の場合、シードはエントロピから生成されます。 |
set_quantum_seed
量子測定に使用される乱数ジェネレーターのシードを設定します。 これは、このコンテキストで実行、コンパイル、または推定されるすべての Q# コードに適用されます。
set_quantum_seed(seed: int | None) -> None
パラメーター
| 名前 | 説明 |
|---|---|
|
seed
必須
|
量子乱数ジェネレーターに使用するシード。 None の場合、シードはエントロピから生成されます。 |
属性
code
code: Any