qsharp モジュール
Q# インタープリターパブリック API。
このモジュールは、 qdk パッケージ内の Q# インタープリター機能のパブリック サーフェスです。
主なエクスポート:
- init — Q# インタープリターを初期化またはリセットします。
- eval — Q# 式を評価し、その値を返します。
- run — 1 つ以上のショットに対して Q# エントリ式を実行します。
- compile — ハードウェア提出のために Q# ソースを QIR にコンパイルします。
- circuit — Q# コードから回路図を合成します。
- estimate — 量子リソースを見積もります (非推奨。代わりに qre を使用してください)。
- logical_counts — Q# コードから論理ゲート数を抽出します。
- dump_machine - 現在のシミュレーターの状態を StateDumpとして返します。
-
dump_circuit— トレースされた回路を返します (initで
trace_circuit=Trueする必要があります)。 - dump_operation — Q# 演算のユニタリ 行列を計算します。
- set_quantum_seed、 set_classical_seed — RNG シードを制御します。
- estimate_custom — ユーザー指定のアルゴリズム、量子ビット、およびコード パラメーターを使用して、汎用リソース推定器を実行します。
- QSharpError — Q# コンパイルまたはランタイム エラーで発生します。
- TargetProfile - コンパイル ターゲット プロファイル列挙型。
- Result、 Pauli — Q# プリミティブ型。
- CircuitGenerationMethod — 回路の合成方法を制御します。
- StateDump、 ShotResult — インタープリター出力の種類。
- PauliNoise、 DepolarizingNoise、 BitFlipNoise、 PhaseFlipNoise — シミュレーション用のノイズ モデル。
クラス
| BitFlipNoise |
シミュレーションで使用するビット フリップ ノイズ。 新しい BitFlipNoise インスタンスを作成します。 ビット フリップ チャネルは、確率 |
| CircuitGenerationMethod |
Q# インタープリターパブリック API。 このモジュールは、 主なエクスポート:
|
| DepolarizingNoise |
シミュレーションで使用する脱分極ノイズ。 新しい DepolarizingNoise インスタンスを作成します。 脱分極チャネルは、それぞれ確率 |
| Pauli |
Q# Pauli 演算子。 |
| PauliNoise |
シミュレーションで使用するパウリ ノイズは、Pauli-X、Pauli-Y、および Pauli-Z エラーの確率として表されます 指定されたエラー確率を持つ新しい PauliNoise インスタンスを作成します。 |
| PhaseFlipNoise |
シミュレーションで使用する位相反転ノイズ。 新しい PhaseFlipNoise インスタンスを作成します。 位相反転チャネルは、確率 |
| QSharpError |
Q# インタープリターから返されたエラー。 |
| Result |
Q# の測定結果。 |
| ShotResult |
ショットの 1 つの結果。 |
| StateDump |
Q# インタープリターから返された状態ダンプ。 |
| TargetProfile |
Q# ターゲット プロファイル。 ターゲット プロファイルは、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_circuit
シミュレーターの現在の状態を示す回線をダンプします。
この回路には、シミュレーターで現在のポイントまで適用されたゲートが含まれます。
インタープリターを trace_circuit=True で初期化する必要があります。
dump_circuit() -> Circuit
返品
| 型 | 説明 |
|---|---|
|
<xref:Circuit>
|
現在の回路トレース。 |
例外
| 型 | 説明 |
|---|---|
|
インタープリターが初期化されていない場合 |
dump_machine
シミュレーターのスパース状態ベクトルを StateDump オブジェクトとして返します。
dump_machine() -> StateDump
返品
| 型 | 説明 |
|---|---|
|
シミュレーターの状態。 |
dump_operation
estimate
Q# ソース コードのリソースを見積もります。 エントリ式または引数を含む呼び出し可能な式を指定する必要があります。
バージョン This: 関数は従来の Resource Estimator API を使用するため非推奨です。
qdk.qre を代わりに使用します。
estimate(entry_expr: str | Callable | GlobalCallable | Closure, params: Dict[str, Any] | List | EstimatorParams | None = None, *args) -> EstimatorResult
パラメーター
| 名前 | 説明 |
|---|---|
|
entry_expr
必須
|
エントリ式。 または、Q# 呼び出し可能である必要がある呼び出し可能な呼び出し可能を指定することもできます。 |
|
params
|
物理推定を構成するパラメーター。 規定値: None
|
|
*args
必須
|
呼び出し可能な呼び出し可能に渡す引数 (指定されている場合)。 |
返品
| 型 | 説明 |
|---|---|
|
推定リソース。 |
estimate_custom
estimate_custom(algorithm, qubit, qec, factories=Ellipsis, *, error_budget=0.01, max_factories=None, logical_depth_factor=None, max_physical_qubits=None, max_duration=None, error_budget_pruning=False)
パラメーター
| 名前 | 説明 |
|---|---|
|
algorithm
必須
|
|
|
qubit
必須
|
|
|
qec
必須
|
|
|
factories
|
規定値: Ellipsis
|
キーワードのみのパラメーター
| 名前 | 説明 |
|---|---|
|
error_budget
|
規定値: 0.01
|
|
max_factories
|
規定値: None
|
|
logical_depth_factor
|
規定値: None
|
|
max_physical_qubits
|
規定値: None
|
|
max_duration
|
規定値: None
|
|
error_budget_pruning
|
規定値: False
|
eval
Q# ソース コードを評価します。
出力はコンソールに出力されます。
eval(source: str, *, save_events: bool = False) -> Any
パラメーター
| 名前 | 説明 |
|---|---|
|
source
必須
|
評価する Q# ソース コード。 |
キーワードのみのパラメーター
| 名前 | 説明 |
|---|---|
|
save_events
|
true の場合、すべての出力が保存され、返されます。 false の場合は、印刷されます。 規定値: False
|
返品
| 型 | 説明 |
|---|---|
|
ソース コード内の最後のステートメントによって返される値、または |
例外
| 型 | 説明 |
|---|---|
|
ソース コードの評価中にエラーが発生した場合。 |
init
Q# インタープリターを初期化します。
init(*, 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) -> Config
キーワードのみのパラメーター
| 名前 | 説明 |
|---|---|
|
target_profile
|
ターゲット プロファイルを設定すると、Q# インタープリターは特定のターゲットと互換性のあるプログラムを生成できます。 TargetProfileを参照してください。 規定値: Unrestricted
|
|
target_name
|
互換性のあるtarget_profile設定の推論に使用するターゲット コンピューターの省略可能な名前。 規定値: None
|
|
project_root
|
含める Q# プロジェクトを含むルート ディレクトリへの省略可能なパス。 qsharp.json プロジェクト マニフェストを含む必要があります。 規定値: None
|
|
language_features
|
有効にする言語機能フラグの省略可能な一覧。 これらは、試験段階またはプレビューの Q# 言語機能に対応します。 有効な値は次のとおりです。
規定値: None
|
|
trace_circuit
|
実行中の回線のトレースを有効にします。 dump_circuit関数が回線を返すには、True を渡す必要があります。 回路関数はこのパラメータの影響を受けず、常に回路を生成します。 規定値: None
|
返品
| 型 | 説明 |
|---|---|
|
<xref:Config>
|
Q# インタープリターの構成。 |
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 の場合、シードはエントロピから生成されます。 |