qsharp Modul
Q# interpreter API publik.
Modul ini adalah permukaan publik untuk fungsionalitas interpreter Q# dalam qdk paket.
Ekspor utama:
- init — menginisialisasi atau mengatur ulang penerjemah Q#.
- eval — mengevaluasi ekspresi Q# dan mengembalikan nilainya.
- run — jalankan ekspresi entri Q# untuk satu atau beberapa bidikan.
- compile — kompilasi sumber Q# ke QIR untuk pengiriman perangkat keras.
- circuit — mensintesis diagram sirkuit dari kode Q#.
- estimate — perkirakan sumber daya kuantum (tidak digunakan lagi; gunakan qre sebagai gantinya).
- logical_counts — ekstrak jumlah gerbang logis dari kode Q#.
- dump_machine — mengembalikan status simulator saat ini sebagai StateDump.
-
dump_circuit — kembalikan sirkuit yang dilacak (memerlukan
trace_circuit=Truedalam init). - dump_operation — menghitung matriks uniter operasi Q#.
- set_quantum_seed, set_classical_seed — kontrol benih RNG.
- estimate_custom — jalankan estimator sumber daya generik dengan parameter algoritma, qubit, dan kode yang disediakan pengguna.
- QSharpError — dimunculkan pada kompilasi Q# atau kesalahan runtime.
- TargetProfile — enum profil target kompilasi.
- Result, — Pauli Jenis primitif Q#.
- CircuitGenerationMethod — mengontrol bagaimana sirkuit disintesis.
- StateDump, ShotResult — jenis output interpreter.
- PauliNoise, , DepolarizingNoiseBitFlipNoise, PhaseFlipNoise — model kebisingan untuk simulasi.
Kelas
| BitFlipNoise |
Kebisingan flip bit yang digunakan dalam simulasi. Membuat instans BitFlipNoise baru. Saluran flip bit menerapkan kesalahan Pauli-X dengan probabilitas |
| CircuitGenerationMethod |
Q# interpreter API publik. Modul ini adalah permukaan publik untuk fungsionalitas interpreter Q# dalam 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 |
| 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 |
| 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
|
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
|
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-target Nilai default: None
|
|
max_operations
|
Jumlah maksimum operasi yang akan disertakan dalam sirkuit.
Default yang Nilai default: None
|
|
source_locations
|
Jika Nilai default: False
|
|
group_by_scope
|
Jika Nilai default: True
|
|
prune_classical_qubits
|
Jika 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 |
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 |
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 |
|---|---|
|
Nilai yang dikembalikan oleh pernyataan terakhir dalam kode sumber, atau output yang disimpan jika |
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:
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 |
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. |