qsharp Modul

Q# interpreter API publik.

Modul ini adalah permukaan publik untuk fungsionalitas interpreter Q# dalam qdk paket.

Ekspor utama:

Kelas

BitFlipNoise

Kebisingan flip bit yang digunakan dalam simulasi.

Membuat instans BitFlipNoise baru.

Saluran flip bit menerapkan kesalahan Pauli-X dengan probabilitas p.

CircuitGenerationMethod

Q# interpreter API publik.

Modul ini adalah permukaan publik untuk fungsionalitas interpreter Q# dalam qdk paket.

Ekspor utama:

DepolarizingNoise

Kebisingan depolarisasi yang digunakan dalam simulasi.

Membuat instans DepolarizingNoise baru.

Saluran depolarisasi menerapkan kesalahan Pauli-X, Pauli-Y, atau Pauli-Z masing-masing dengan probabilitas p / 3.

Pauli

Operator Q# Pauli.

PauliNoise

Kebisingan Pauli untuk digunakan dalam simulasi yang diwakili sebagai probabilitas kesalahan Pauli-X, Pauli-Y, dan Pauli-Z

Membuat instans baru PauliNoise dengan probabilitas kesalahan yang diberikan.

PhaseFlipNoise

Fase membalikkan kebisingan untuk digunakan dalam simulasi.

Membuat instans PhaseFlipNoise baru.

Saluran flip fase menerapkan kesalahan Pauli-Z dengan probabilitas p.

QSharpError

Kesalahan yang dikembalikan dari penerjemah Q#.

Result

Hasil pengukuran Q#.

ShotResult

Satu hasil bidikan.

StateDump

Cadangan status yang dikembalikan dari penerjemah Q#.

TargetProfile

Profil target Q#.

Profil target menjelaskan kemampuan perangkat keras atau simulator yang akan digunakan untuk menjalankan program Q#.

Fungsi

circuit

Mensintesis sirkuit untuk program Q#. Ekspresi entri atau operasi harus disediakan.

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

Parameter

Nama Deskripsi
entry_expr
str atau Callable

Ekspresi entri. Atau, panggilan dapat disediakan, yang harus dapat dipanggil Q#.

Nilai default: None
*args
Diperlukan

Argumen yang akan diteruskan ke yang dapat dipanggil, jika disediakan.

Parameter Kata Kunci-Saja

Nama Deskripsi
operation
str

Operasi untuk disintesis. Ini bisa menjadi nama operasi atau ekspresi lambda. Operasi hanya boleh mengambil qubit atau array qubit sebagai parameter.

Nilai default: None
generation_method

Metode yang digunakan untuk pembuatan sirkuit. ClassicalEval mengevaluasi alur kontrol klasik pada waktu pembuatan sirkuit. Simulate menjalankan simulasi penuh untuk melacak sirkuit. Static menggunakan evaluasi parsial dan memerlukan profil non-targetUnrestricted . None Default yang memilih metode pembuatan secara otomatis.

Nilai default: None
max_operations
int

Jumlah maksimum operasi yang akan disertakan dalam sirkuit. Default yang None berarti tidak ada batas.

Nilai default: None
source_locations

Jika True, anotasi setiap gerbang dengan lokasi sumbernya.

Nilai default: False
group_by_scope

Jika True, kelompokkan operasi dengan cakupan yang berisi, seperti deklarasi fungsi atau blok perulangan.

Nilai default: True
prune_classical_qubits

Jika True, menghapus qubit yang tidak pernah digunakan di gerbang kuantum (misalnya qubit hanya digunakan sebagai kontrol klasik).

Nilai default: False

Mengembalikan

Jenis Deskripsi
<xref:Circuit>

Sirkuit yang disintesis.

Pengecualian

Jenis Deskripsi

Jika ada kesalahan dalam mensintesis sirkuit.

compile

Mengkompilasi kode sumber Q# ke dalam program yang dapat dikirimkan ke target. Ekspresi entri atau yang dapat dipanggil dengan argumen harus disediakan.

Contoh:

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

Parameter

Nama Deskripsi
entry_expr
Diperlukan

Ekspresi Q# yang akan digunakan sebagai titik masuk untuk program. Atau, panggilan dapat disediakan, yang harus dapat dipanggil Q#.

*args
Diperlukan

Argumen yang akan diteruskan ke yang dapat dipanggil, jika disediakan.

Mengembalikan

Jenis Deskripsi
<xref:QirInputData>

Program yang dikompilasi. Gunakan str() untuk mendapatkan string QIR.

dump_circuit

Membuang sirkuit yang menunjukkan status simulator saat ini.

Sirkuit ini akan berisi gerbang yang telah diterapkan dalam simulator hingga titik saat ini.

Mengharuskan penerjemah diinisialisasi dengan trace_circuit=True.

dump_circuit() -> Circuit

Mengembalikan

Jenis Deskripsi
<xref:Circuit>

Jejak sirkuit saat ini.

Pengecualian

Jenis Deskripsi

Jika penerjemah tidak diinisialisasi dengan trace_circuit=True

dump_machine

Mengembalikan vektor status jarang simulator sebagai objek StateDump.

dump_machine() -> StateDump

Mengembalikan

Jenis Deskripsi

Status simulator.

dump_operation

Mengembalikan matriks kuadrat dari bilangan kompleks yang mewakili operasi yang dilakukan.

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

Parameter

Nama Deskripsi
operation
Diperlukan

Operasi yang akan dilakukan, yang harus beroperasi pada daftar qubit.

num_qubits
Diperlukan

Jumlah qubit yang akan digunakan.

Mengembalikan

Jenis Deskripsi

Matriks yang mewakili operasi.

estimate

Memperkirakan sumber daya untuk kode sumber Q#. Ekspresi entri atau yang dapat dipanggil dengan argumen harus disediakan.

Tidak digunakan lagi sejak versi Ini: fungsi menggunakan API Estimator Sumber Daya warisan. Gunakan qdk.qre sebagai gantinya.

estimate(entry_expr: str | Callable | GlobalCallable | Closure, params: Dict[str, Any] | List | EstimatorParams | None = None, *args) -> EstimatorResult

Parameter

Nama Deskripsi
entry_expr
Diperlukan

Ekspresi entri. Atau, panggilan dapat disediakan, yang harus dapat dipanggil Q#.

params

Parameter untuk mengonfigurasi estimasi fisik.

Nilai default: None
*args
Diperlukan

Argumen yang akan diteruskan ke yang dapat dipanggil, jika disediakan.

Mengembalikan

Jenis Deskripsi

Estimasi sumber daya.

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)

Parameter

Nama Deskripsi
algorithm
Diperlukan
qubit
Diperlukan
qec
Diperlukan
factories
Nilai default: Ellipsis

Parameter Kata Kunci-Saja

Nama Deskripsi
error_budget
Nilai default: 0.01
max_factories
Nilai default: None
logical_depth_factor
Nilai default: None
max_physical_qubits
Nilai default: None
max_duration
Nilai default: None
error_budget_pruning
Nilai default: False

eval

Mengevaluasi kode sumber Q#.

Output dicetak ke konsol.

eval(source: str, *, save_events: bool = False) -> Any

Parameter

Nama Deskripsi
source
Diperlukan

Kode sumber Q# untuk dievaluasi.

Parameter Kata Kunci-Saja

Nama Deskripsi
save_events

Jika true, semua output akan disimpan dan dikembalikan. Jika false, mereka akan dicetak.

Nilai default: False

Mengembalikan

Jenis Deskripsi
Any

Nilai yang dikembalikan oleh pernyataan terakhir dalam kode sumber, atau output yang disimpan jika save_events benar.

Pengecualian

Jenis Deskripsi

Jika ada kesalahan saat mengevaluasi kode sumber.

init

Menginisialisasi penerjemah 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

Parameter Kata Kunci-Saja

Nama Deskripsi
target_profile

Mengatur profil target memungkinkan penerjemah Q# menghasilkan program yang kompatibel dengan target tertentu. Lihat TargetProfile.

Nilai default: Unrestricted
target_name

Nama opsional komputer target yang akan digunakan untuk menyimpulkan pengaturan target_profile yang kompatibel.

Nilai default: None
project_root

Jalur opsional ke direktori akar dengan proyek Q# untuk disertakan. Ini harus berisi manifes proyek qsharp.json.

Nilai default: None
language_features

Daftar opsional bendera fitur bahasa untuk diaktifkan. Ini sesuai dengan fitur bahasa Q# eksperimental atau pratinjau. Nilai yang valid adalah:

  • "v2-preview-syntax": Mengaktifkan sintaks pratinjau Q# v2. Ini menghapus dukungan untuk formulir blok alokasi kubit tercakup (use q = Qubit() { ... }), yang memerlukan formulir pernyataan sebagai gantinya (use q = Qubit();). Ini juga menghapus persyaratan untuk menggunakan set kata kunci untuk penetapan variabel yang dapat diubah.
Nilai default: None
trace_circuit

Memungkinkan pelacakan sirkuit selama eksekusi. Passing True diperlukan agar fungsi dump_circuit mengembalikan sirkuit. Fungsi sirkuitTIDAK terpengaruh oleh parameter ini dan akan selalu menghasilkan sirkuit.

Nilai default: None

Mengembalikan

Jenis Deskripsi
<xref:Config>

Konfigurasi penerjemah Q#.

logical_counts

Mengekstrak jumlah sumber daya logis dari kode sumber Q#. Ekspresi entri atau yang dapat dipanggil dengan argumen harus disediakan.

logical_counts(entry_expr: str | Callable | GlobalCallable | Closure, *args) -> LogicalCounts

Parameter

Nama Deskripsi
entry_expr
Diperlukan

Ekspresi entri. Atau, panggilan dapat disediakan, yang harus dapat dipanggil Q#.

Mengembalikan

Jenis Deskripsi

Sumber daya program dalam hal jumlah gerbang logis.

run

Menjalankan ekspresi Q# yang diberikan untuk jumlah bidikan yang diberikan. Setiap bidikan menggunakan instans independen simulator.

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]

Parameter

Nama Deskripsi
entry_expr
Diperlukan

Ekspresi entri. Atau, panggilan dapat disediakan, yang harus dapat dipanggil Q#.

shots
Diperlukan

Jumlah bidikan yang akan dijalankan.

*args
Diperlukan

Argumen yang akan diteruskan ke yang dapat dipanggil, jika disediakan.

on_result
Diperlukan

Fungsi panggilan balik yang akan dipanggil dengan setiap hasil.

save_events
Diperlukan

Jika true, output dari setiap bidikan akan disimpan. Jika false, mereka akan dicetak.

noise
Diperlukan

Kebisingan yang digunakan dalam simulasi.

qubit_loss
Diperlukan

Probabilitas kehilangan qubit dalam simulasi.

seed
Diperlukan

Benih yang digunakan untuk generator angka acak dalam simulasi, jika ada.

type
Diperlukan

Jenis simulator yang akan digunakan. Jika tidak ditentukan, simulasi vektor status jarang default akan digunakan.

num_qubits
Diperlukan

Jumlah qubit yang digunakan untuk jenis simulasi "clifford". Jika tidak ditentukan, simulator Clifford mengasumsikan default 1000 qubit.

Parameter Kata Kunci-Saja

Nama Deskripsi
on_result
Nilai default: None
save_events
Nilai default: False
noise
Nilai default: None
qubit_loss
Nilai default: None
seed
Nilai default: None
type
Nilai default: None
num_qubits
Nilai default: None

Mengembalikan

Jenis Deskripsi

Daftar hasil atau kesalahan runtime. Jika save_events benar, daftar ShotResult dikembalikan.

Pengecualian

Jenis Deskripsi

Jika ada kesalahan saat menginterpretasikan input.

Jika jumlah bidikan kurang dari 1.

set_classical_seed

Mengatur seed untuk generator angka acak yang digunakan untuk operasi nomor acak klasik pustaka standar. Ini berlaku untuk semua kode Q# yang dijalankan, dikompilasi, atau diperkirakan.

set_classical_seed(seed: int | None) -> None

Parameter

Nama Deskripsi
seed
Diperlukan

Benih yang digunakan untuk generator angka acak klasik. Jika Tidak Ada, benih akan dihasilkan dari entropi.

set_quantum_seed

Mengatur seed untuk generator angka acak yang digunakan untuk pengukuran kuantum. Ini berlaku untuk semua kode Q# yang dijalankan, dikompilasi, atau diperkirakan.

set_quantum_seed(seed: int | None) -> None

Parameter

Nama Deskripsi
seed
Diperlukan

Benih yang digunakan untuk generator angka acak kuantum. Jika Tidak Ada, benih akan dihasilkan dari entropi.