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— トレースされた回路を返します (inittrace_circuit=Trueする必要があります)。
  • dump_operation — Q# 演算のユニタリ 行列を計算します。
  • set_quantum_seedset_classical_seed — RNG シードを制御します。
  • estimate_custom — ユーザー指定のアルゴリズム、量子ビット、およびコード パラメーターを使用して、汎用リソース推定器を実行します。
  • QSharpError — Q# コンパイルまたはランタイム エラーで発生します。
  • TargetProfile - コンパイル ターゲット プロファイル列挙型。
  • ResultPauli — Q# プリミティブ型。
  • CircuitGenerationMethod — 回路の合成方法を制御します。
  • StateDumpShotResult — インタープリター出力の種類。
  • PauliNoiseDepolarizingNoiseBitFlipNoisePhaseFlipNoise — シミュレーション用のノイズ モデル。

クラス

BitFlipNoise

シミュレーションで使用するビット フリップ ノイズ。

新しい BitFlipNoise インスタンスを作成します。

ビット フリップ チャネルは、確率 pの Pauli-X エラーを適用します。

CircuitGenerationMethod

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— トレースされた回路を返します (inittrace_circuit=Trueする必要があります)。
  • dump_operation — Q# 演算のユニタリ 行列を計算します。
  • set_quantum_seedset_classical_seed — RNG シードを制御します。
  • estimate_custom — ユーザー指定のアルゴリズム、量子ビット、およびコード パラメーターを使用して、汎用リソース推定器を実行します。
  • QSharpError — Q# コンパイルまたはランタイム エラーで発生します。
  • TargetProfile - コンパイル ターゲット プロファイル列挙型。
  • ResultPauli — Q# プリミティブ型。
  • CircuitGenerationMethod — 回路の合成方法を制御します。
  • StateDumpShotResult — インタープリター出力の種類。
  • PauliNoiseDepolarizingNoiseBitFlipNoisePhaseFlipNoise — シミュレーション用のノイズ モデル。
DepolarizingNoise

シミュレーションで使用する脱分極ノイズ。

新しい DepolarizingNoise インスタンスを作成します。

脱分極チャネルは、それぞれ確率 p / 3の Pauli-X、Pauli-Y、または Pauli-Z エラーを適用します。

Pauli

Q# Pauli 演算子。

PauliNoise

シミュレーションで使用するパウリ ノイズは、Pauli-X、Pauli-Y、および Pauli-Z エラーの確率として表されます

指定されたエラー確率を持つ新しい PauliNoise インスタンスを作成します。

PhaseFlipNoise

シミュレーションで使用する位相反転ノイズ。

新しい PhaseFlipNoise インスタンスを作成します。

位相反転チャネルは、確率 pを持つ Pauli-Z 誤差を適用します。

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
str または Callable

エントリ式。 または、Q# 呼び出し可能である必要がある呼び出し可能な呼び出し可能を指定することもできます。

規定値: None
*args
必須

呼び出し可能な呼び出し可能に渡す引数 (指定されている場合)。

キーワードのみのパラメーター

名前 説明
operation
str

合成する操作。 操作の名前またはラムダ式を指定できます。 この操作では、量子ビットまたは量子ビットの配列のみをパラメーターとして受け取る必要があります。

規定値: None
generation_method

回路生成に使用する方法。 ClassicalEval は、回路生成時に従来の制御フローを評価します。 Simulate は完全なシミュレーションを実行して回路をトレースします。 Static は部分評価を使用し、Unrestricted 以外のターゲット プロファイルが必要です。 既定では、生成方法を自動的に選択する None します。

規定値: None
max_operations
int

回線に含める操作の最大数。 既定値は None です。これは制限がないことを意味します。

規定値: None
source_locations

True場合は、各ゲートにソース位置で注釈を付けます。

規定値: False
group_by_scope

True場合は、関数宣言やループ ブロックなど、操作を含むスコープでグループ化します。

規定値: True
prune_classical_qubits

True場合は、量子ゲートで使用されない量子ビット (従来のコントロールとしてのみ使用される量子ビットなど) を削除します。

規定値: False

返品

説明
<xref:Circuit>

合成された回路。

例外

説明

回線の合成中にエラーが発生した場合。

compile

ターゲットに送信できるプログラムに Q# ソース コードをコンパイルします。 エントリ式または引数を含む呼び出し可能な式を指定する必要があります。

Example:

compile(entry_expr: str | Callable | GlobalCallable | Closure, *args) -> QirInputData

パラメーター

名前 説明
entry_expr
必須

プログラムのエントリ ポイントとして使用される Q# 式。 または、Q# 呼び出し可能である必要がある呼び出し可能な呼び出し可能を指定することもできます。

*args
必須

呼び出し可能な呼び出し可能に渡す引数 (指定されている場合)。

返品

説明
<xref:QirInputData>

コンパイル済みプログラム。 str()を使用して QIR 文字列を取得します。

dump_circuit

シミュレーターの現在の状態を示す回線をダンプします。

この回路には、シミュレーターで現在のポイントまで適用されたゲートが含まれます。

インタープリターを trace_circuit=True で初期化する必要があります。

dump_circuit() -> Circuit

返品

説明
<xref:Circuit>

現在の回路トレース。

例外

説明

インタープリターが初期化されていない場合 trace_circuit=True

dump_machine

シミュレーターのスパース状態ベクトルを StateDump オブジェクトとして返します。

dump_machine() -> StateDump

返品

説明

シミュレーターの状態。

dump_operation

実行された演算を表す複素数の平方行列を返します。

dump_operation(operation: str, num_qubits: int) -> List[List[complex]]

パラメーター

名前 説明
operation
必須

実行する操作。量子ビットの一覧を操作する必要があります。

num_qubits
必須

使用する量子ビットの数。

返品

説明

演算を表す行列。

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

返品

説明
Any

ソース コード内の最後のステートメントによって返される値、または save_events が true の場合は保存された出力。

例外

説明

ソース コードの評価中にエラーが発生した場合。

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# 言語機能に対応します。 有効な値は次のとおりです。

  • "v2-preview-syntax": Q# v2 プレビュー構文を有効にします。 これにより、スコープ付き量子ビット割り当てブロック フォーム (use q = Qubit() { ... }) のサポートが削除され、代わりにステートメント フォームが必要になります (use q = Qubit();)。 また、変更可能な変数の割り当てに set キーワードを使用する必要がなくなります。
規定値: 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

返品

説明

結果またはランタイム エラーの一覧。 save_eventsが true の場合は、ShotResultの一覧が返されます。

例外

説明

入力の解釈中にエラーが発生した場合。

ショットの数が 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 の場合、シードはエントロピから生成されます。