Namespace Microsoft.Quantum.Arithmetic

Peringatan

Dokumentasi ini mengacu pada QDK Klasik, yang telah digantikan oleh QDK Modern.

Silakan lihat https://aka.ms/qdk.api dokumentasi API untuk QDK Modern.

Namespace ini berisi fungsi dan operasi yang digunakan untuk komputasi aritmatika secara koheren.

Operasional

Nama Ringkasan
TambahkanConstantFxP Menambahkan konstanta klasik ke angka titik tetap kuantum.
TambahkanFxP Menambahkan dua angka titik tetap yang disimpan dalam register kuantum.
AddI Secara otomatis memilih antara penambahan dengan carry dan tanpa, tergantung pada ukuran ysregister .
ApplyLEOperationOnPhaseLE Menerapkan operasi yang mengambil register jenis yang ditentukan pengguna PhaseLittleEndian sebagai input pada register target jenis jenis yang ditentukan pengguna LittleEndian.
ApplyLEOperationOnPhaseLEA Menerapkan operasi yang mengambil register jenis yang ditentukan pengguna PhaseLittleEndian sebagai input pada register target jenis jenis yang ditentukan pengguna LittleEndian.
ApplyLEOperationOnPhaseLEC Menerapkan operasi yang mengambil register jenis yang ditentukan pengguna PhaseLittleEndian sebagai input pada register target jenis jenis yang ditentukan pengguna LittleEndian.
ApplyLEOperationOnPhaseLECA Menerapkan operasi yang mengambil register jenis yang ditentukan pengguna PhaseLittleEndian sebagai input pada register target jenis jenis yang ditentukan pengguna LittleEndian.
ApplyMajorityInPlace Menerapkan operasi mayoritas tiga-qubit di tempat pada daftar qubit.
ApplyPhaseLEOperationOnLE Menerapkan operasi yang mengambil jenis register yang ditentukan pengguna LittleEndian sebagai input pada register target jenis yang ditentukan pengguna PhaseLittleEndian.
ApplyPhaseLEOperationOnLEA Menerapkan operasi yang mengambil jenis register yang ditentukan pengguna LittleEndian sebagai input pada register target jenis yang ditentukan pengguna PhaseLittleEndian.
ApplyPhaseLEOperationOnLEC Menerapkan operasi yang mengambil jenis register yang ditentukan pengguna LittleEndian sebagai input pada register target jenis yang ditentukan pengguna PhaseLittleEndian.
ApplyPhaseLEOperationOnLECA Menerapkan operasi yang mengambil jenis register yang ditentukan pengguna LittleEndian sebagai input pada register target jenis yang ditentukan pengguna PhaseLittleEndian.
ApplyReversedOpBE Menerapkan operasi yang mengambil input big-endian ke register yang mengodekan bilangan bulat yang tidak ditandatangani menggunakan format little-endian.
ApplyReversedOpBEA Menerapkan operasi yang mengambil input big-endian ke register yang mengodekan bilangan bulat yang tidak ditandatangani menggunakan format little-endian.
ApplyReversedOpBEC Menerapkan operasi yang mengambil input big-endian ke register yang mengodekan bilangan bulat yang tidak ditandatangani menggunakan format little-endian.
ApplyReversedOpBECA Menerapkan operasi yang mengambil input big-endian ke register yang mengodekan bilangan bulat yang tidak ditandatangani menggunakan format little-endian.
ApplyReversedOpLE Menerapkan operasi yang mengambil input little-endian ke register yang mengodekan bilangan bulat yang tidak ditandatangani menggunakan format big-endian.
ApplyReversedOpLEA Menerapkan operasi yang mengambil input little-endian ke register yang mengodekan bilangan bulat yang tidak ditandatangani menggunakan format big-endian.
ApplyReversedOpLEC Menerapkan operasi yang mengambil input little-endian ke register yang mengodekan bilangan bulat yang tidak ditandatangani menggunakan format big-endian.
ApplyReversedOpLECA Menerapkan operasi yang mengambil input little-endian ke register yang mengodekan bilangan bulat yang tidak ditandatangani menggunakan format big-endian.
ApplyXorInPlace Menerapkan operasi bitwise-XOR antara bilangan bulat klasik dan bilangan bulat yang diwakili oleh daftar kubit.
AssertAllZeroFxP Menegaskan bahwa angka titik tetap kuantum diinisialisasi menjadi nol.
AssertMostSignificantBit Menegaskan bahwa kubit paling signifikan dari register qubit yang mewakili bilangan bulat yang tidak ditandatangani berada dalam keadaan tertentu.
AssertPhaseLessThan Menegaskan bahwa yang dikodekan number dalam PhaseLittleEndian kurang dari value.
AssertProbInt Menegaskan bahwa probabilitas status tertentu dari register kuantum memiliki nilai yang diharapkan.
Carry Mengimplementasikan gerbang carry yang dapat dibalik. Mengingat bit carry-in yang dikodekan dalam qubit carryIn dan dua bit summand yang dikodekan dalam summand1 dan summand2, menghitung bitwise xor dari carryIn, summand1 dan summand2 dalam qubit summand2 dan carry-out xored ke qubit carryOut.
CompareGTI Pembungkus untuk perbandingan bilangan bulat: result = x > y.
BandingkanGTSI Pembungkus untuk perbandingan bilangan bulat yang ditandatangani: result = xs > ys.
BandingkanGreaterThanFxP Membandingkan dua angka titik tetap yang disimpan dalam register kuantum, dan mengontrol flip pada hasilnya.
CompareUsingRippleCarry Operasi ini menguji apakah bilangan bulat yang diwakili oleh register kubit lebih besar dari bilangan bulat lain, menerapkan XOR hasil ke dalam kubit output.
ComputeReciprocalFxP Menghitung timbal balik dari angka yang disimpan dalam register kuantum dengan representasi titik tetap.
ComputeReciprocalI Menghitung timbal balik 1/x untuk bilangan bulat yang tidak ditandatangani x menggunakan divisi bilangan bulat. Hasilnya, ditafsirkan sebagai bilangan bulat, akan menjadi floor(2^(2*n-1) / x).
CopyMostSignificantBit Menyalin bit paling signifikan dari register from qubit yang mewakili bilangan bulat yang tidak ditandatangani ke dalam qubit target.
DivideI Membagi dua bilangan bulat kuantum.
EvaluateEvenPolynomialFxP Mengevaluasi polinomial yang merata dalam representasi titik tetap.
EvaluateOddPolynomialFxP Mengevaluasi polinomial ganjil dalam representasi titik tetap.
EvaluatePolynomialFxP Mengevaluasi polinomial dalam representasi titik tetap.
GreaterThan Menerapkan perbandingan yang lebih besar antara dua bilangan bulat yang dikodekan ke dalam register qubit, membalik kubit target berdasarkan hasil perbandingan.
IncrementByInteger Menaikkan register kuantum yang tidak ditandatangani oleh bilangan bulat klasik, menggunakan rotasi fase.
IncrementByModularInteger Melakukan kenaikan modular dari register qubit oleh konstanta bilangan bulat.
IncrementPhaseByInteger Menaikkan register kuantum yang tidak ditandatangani oleh bilangan bulat klasik, menggunakan rotasi fase.
IncrementPhaseByModularInteger Melakukan kenaikan modular dari register qubit oleh konstanta bilangan bulat.
Invert2sSI Membalikkan pelengkap modulo 2 bilangan bulat tertentu.
InvertFxP Menghitung inversi aditif dari fp.
MAJ Ini menerapkan operasi mayoritas di tempat hingga 3 kubit.
MeasureFxP Mengukur angka titik tetap, mengembalikan nilainya sebagai Ganda, dan mengatur ulang semua register ke nol.
MeasureInteger Mengukur konten register kuantum dan mengonversinya menjadi bilangan bulat. Pengukuran dilakukan sehubungan dengan dasar komputasi standar, yaitu, eigenbasis dari PauliZ.
MultiplyAndAddByModularInteger Melakukan konstanta multiply-and-add modular dengan bilangan bulat pada register qubit.
MultiplyAndAddPhaseByModularInteger Sama seperti MultiplyAndAddByModularInteger, tetapi mengasumsikan bahwa summand mengodekan bilangan bulat dalam basis QFT.
MultiplyByModularInteger Melakukan perkalian modular dengan konstanta bilangan bulat pada register qubit.
MultiplyFxP Mengalikan dua angka titik tetap dalam register kuantum.
KalikanI Kalikan bilangan bulat xs dengan bilangan bulat ys dan simpan hasilnya di result, yang awalnya harus nol.
MultiplySI Kalikan bilangan bulat xs yang ditandatangani dengan bilangan bulat ys yang ditandatangani dan simpan hasilnya di result, yang awalnya harus nol.
PrepareFxP Menginisialisasi angka titik tetap kuantum ke konstanta klasik.
ReflectAboutInteger Mencerminkan register kuantum tentang bilangan bulat klasik tertentu.
RippleCarryAdderCDKM Penambahan riak-carry yang dapat dibalik, di tempat dari dua bilangan bulat.
RippleCarryAdderD Penambahan riak-carry yang dapat dibalik, di tempat dari dua bilangan bulat.
RippleCarryAdderNoCarryTTK Reversible, di tempat riak-carry penambahan dua bilangan bulat tanpa dilakukan.
RippleCarryAdderTTK Penambahan riak-carry yang dapat dibalik, di tempat dari dua bilangan bulat. Mengingat dua bilangan bulat $n$-bit yang dikodekan dalam register xs LittleEndian dan ys, dan membawa qubit, operasi menghitung jumlah dari dua bilangan bulat di mana $n$ bit paling tidak signifikan dari hasil ditahan ys dan bit yang dilakukan xored ke qubit carry.
SquareFxP Kuadrat angka titik tetap.
SquareI Menghitung kuadrat bilangan bulat xs menjadi result, yang awalnya harus nol.
SquareSI Bilangan bulat xs bertanda tangan persegi dan simpan hasilnya di result, yang awalnya harus nol.
SubtractFxP minuend - subtrahend Menghitung dan menyimpan perbedaan dalam minuend.
Sum Mengimplementasikan gerbang jumlah yang dapat dibalik. Mengingat bit bawaan yang dikodekan dalam qubit carryIn dan dua bit summand yang dikodekan dalam summand1 dan summand2, menghitung xor bitwise , carryInsummand1 dan summand2 dalam qubit summand2.

Fungsi

Nama Ringkasan
ApplyFunctionWithLookupTable Fungsi ini membuat operator tabel pencarian untuk fungsi yang ingin Anda perkirakan, serta parameter yang diperlukan untuk membuat dua FixedPoint register yang perlu digunakan sebagai input ke operator.
BigEndianAsLittleEndian BigEndian Mengonversi register qubit ke LittleEndian register qubit dengan mengembalikan urutan qubit.
IdenticalFormatFactFxP Tegaskan bahwa semua angka titik tetap dalam array yang disediakan memiliki posisi titik dan angka kubit yang identik.
IdenticalPointPosFactFxP Tegaskan bahwa semua angka titik tetap dalam array yang disediakan memiliki posisi titik yang identik saat menghitung dari bit yang paling tidak signifikan. Yaitu, jumlah bit dikurangi posisi titik harus konstan untuk semua angka titik tetap dalam array.
LittleEndianAsBigEndian LittleEndian Mengonversi register qubit ke BigEndian register qubit dengan mengembalikan urutan qubit.
ReversedOpBE Mengingat operasi yang mengambil input big-endian, mengembalikan operasi baru yang mengambil input little-endian.
ReversedOpBEA Mengingat operasi yang mengambil input big-endian, mengembalikan operasi baru yang mengambil input little-endian.
ReversedOpBEC Mengingat operasi yang mengambil input big-endian, mengembalikan operasi baru yang mengambil input little-endian.
ReversedOpBECA Mengingat operasi yang mengambil input big-endian, mengembalikan operasi baru yang mengambil input little-endian.
ReversedOpLE Mengingat operasi yang mengambil input little-endian, mengembalikan operasi baru yang mengambil input big-endian.
ReversedOpLEA Mengingat operasi yang mengambil input little-endian, mengembalikan operasi baru yang mengambil input big-endian.
ReversedOpLEC Mengingat operasi yang mengambil input little-endian, mengembalikan operasi baru yang mengambil input big-endian.
ReversedOpLECA Mengingat operasi yang mengambil input little-endian, mengembalikan operasi baru yang mengambil input big-endian.

Jenis yang ditentukan pengguna

Nama Ringkasan
BigEndian Daftarkan yang mengodekan bilangan bulat yang tidak ditandatangani dalam urutan big-endian. Qubit dengan indeks 0 mengodekan bit tertinggi dari bilangan bulat yang tidak ditandatangani.
FixedPoint Mewakili register qubit yang mengodekan angka titik tetap. Terdiri dari bilangan bulat yang sama dengan jumlah kubit di sebelah kiri titik biner, yaitu, kubit berat lebih besar dari atau sama dengan 1, dan register kuantum.
FunctionWithLookupTable Jenis pengembalian saat membuat tabel pencarian. Ini berisi operasi yang membuat sirkuit tabel pencarian, serta semua parameter yang diperlukan untuk membuat dua register FixedPoint yang perlu digunakan sebagai input dan output ke operator.
LittleEndian Daftarkan yang mengodekan bilangan bulat yang tidak ditandatangani dalam urutan little-endian. Qubit dengan indeks 0 mengodekan bit terendah dari bilangan bulat yang tidak ditandatangani.
PhaseLittleEndian Bilangan bulat yang tidak ditandatangani little-endian berdasarkan QFT.
SignedLittleEndian Jenis bilangan bulat bertanda tangan yang disimpan di little endian (lihat LittleEndian). Angka negatif disimpan menggunakan pelengkap dua.