Skip to content

Releases: unitaryfund/qrack

QUnit weak sampling and major fidelity improvement

19 Jul 12:23
Compare
Choose a tag to compare

A major fidelity improvement has been made in the "weak sampling" algorithm for Clifford+RZ gate set, particularly with QUnit optimization layer, which now works with weak sampling.

File SHA-1 sums:

6a20b6e5d8445539718b67ca08f6e954591219b5 Qrack-8.15.2-Darwin_x86-64.sh
34350d220682d99922b43a225425c744319c8a0b Qrack-8.15.2-Emscripten.sh
852f9615849e347043f718d6fee9ef8a314e2bce Qrack-8.15.2-Linux_arm64.sh
0ffa8cb75f700e6e0ce0631df6751eb07ca8f625 Qrack-8.15.2-Linux_armv7.sh
6fb9ca82cb5f47589341c460bd1381180f38a7c8 Qrack-8.15.2-Linux_Ubuntu_20.04_LTS_x86-64.sh
dc39084c2b624592ca7933b750ff63b27451019c Qrack-8.15.2-Linux_Ubuntu_22.04_LTS_x86-64.sh
7c514f9d5063ebe21e49d59feae5051738dd7be6 Qrack-8.15.2-win32.exe
447afd77c39ab1a38e82e5645cbf7cdbd69950c6 Qrack-8.15.2-win64.exe
a0f0a3c4dbd005db88fe97f7c61b87c560fce7f7 Qrack-8.15.2-WSL_Ubuntu_22.04_LTS_RTX_3080.sh

46ba8efa776d44be465087b0657bfba8138b29e0 qrack_linux_arm64_benchmarks
fcc5f3c613fb868360e00a6a6b3ae78bfb5b5eaf qrack_linux_armv7_benchmarks
900e72a2479eb5a134785801fc93b3a7571ab265 qrack_mac_x86-64_benchmarks
7bc913436ac11ff3362e1242c5d27d0b07510d58 qrack_Ubuntu_20.04_LTS_benchmarks
efe0fa807b59a677db8d63c5b8b3eedc6a2fb043 qrack_Ubuntu_22.04_LTS_benchmarks
401473b0629f56037fec8c86d2c9f4437b25899d qrack_windows_x86-64_benchmarks.exe
1fc7622fa2ac8595cfc35f302487a0d792385e90 qrack_windows_x86_benchmarks.exe
04c8364dff3d4f2dcac874e2a92b81a99dc02953 qrack_WSL_Ubuntu_22.04_LTS_benchmarks

Full Changelog: vm6502q.v8.15.1...vm6502q.v8.15.2

Minor bug fixes for v8.15

16 Jul 15:03
Compare
Choose a tag to compare

Several minor bugs and edge cases were fixed since v8.15.0. A typo in the benchmark option --enable-weak-sampling has also been fixed.

File SHA-1 sums:

24920ff3dc1752071018818e92f894badf5df930 Qrack-8.15.1-Darwin_x86-64.sh
e878a64dd9095257d2917b2c9c80f1b6b0f008db Qrack-8.15.1-Emscripten.sh
e962e90e7f74651664aaae14bcc5b72996378b65 Qrack-8.15.1-Linux_arm64.sh
99c5c105d84b02dd565af2520d02969f9251a48c Qrack-8.15.1-Linux_armv7.sh
7c346db95d69ad33fa9731d6366ac2c1784db1b8 Qrack-8.15.1-Linux_Ubuntu_20.04_LTS_x86-64.sh
5436b2014aec3a48169d96e085f8f1a5e9716d48 Qrack-8.15.1-Linux_Ubuntu_22.04_LTS_x86-64.sh
167bd0fe36db1235013292defdab208761c06623 Qrack-8.15.1-win32.exe
f762b6510232261941f6171e1e4108339273412a Qrack-8.15.1-win64.exe
3f836a94f121f0bbc0e7c477cba38735ba559e5c Qrack-8.15.1-WSL_Ubuntu_22.04_LTS_RTX_3080.sh

692eb0d847a5909dda1ec8354b1362629741df49 qrack_linux_arm64_benchmarks
f00c429927c32c88d225c102cab05372d15287de qrack_linux_armv7_benchmarks
5d466ab10d76723a4636167f9137150fb6045d44 qrack_mac_x86-64_benchmarks
dd60b62ef24f96932c229098e4d86da6c313c3e7 qrack_Ubuntu_20.04_LTS_benchmarks
682dc2fa15bde9b0202d1d7f239b923defc34543 qrack_Ubuntu_22.04_LTS_benchmarks
09e1ca5611fecd5590ed2a3fbbc353748c7adf1c qrack_windows_x86-64_benchmarks.exe
f311b4d62e647c837e131d3544f0ad4dd5c130a6 qrack_windows_x86_benchmarks.exe
27ec54ef0a3ef4583fa64582d109e06540b7468f qrack_WSL_Ubuntu_22.04_LTS_benchmarks

Full Changelog: vm6502q.v8.15.0...vm6502q.v8.15.1

Stabilizer weak sampling

16 Jul 01:40
Compare
Choose a tag to compare

To turn on "weak simulation condition" measurement sampling for stabilizer Clifford+RZ, use SetStabilizerWeakSampling(bool). This costs a linear factor on multi-shot sampling, proportional to shots, but it's much faster overall. This optional method may be approximate.

File SHA-1 sums:

c9ced1492bae1d478cbb9470c02b0c47e69c1dc2 Qrack-8.15.0-Darwin_x86-64.sh
6b317566e0cc4b21b1dd47c6e5c7b10b791d229b Qrack-8.15.0-Emscripten.sh
7035161045c6c395e34471e021296ea1772225d8 Qrack-8.15.0-Linux_arm64.sh
e30e0968179475777c53dbb3f49d6ee8cbe8033a Qrack-8.15.0-Linux_armv7.sh
23122a198611d427c0a84a64803f82a3e00499b5 Qrack-8.15.0-Linux_Ubuntu_20.04_LTS_x86-64.sh
6f984bbc4263da738b4e08094504087f44fa406e Qrack-8.15.0-Linux_Ubuntu_22.04_LTS_x86-64.sh
3f64d5baeeb8683b75b405f76167ad4c1ed24559 Qrack-8.15.0-win32.exe
5447b746b9434a7c906eca4132621b8f7bed3e72 Qrack-8.15.0-win64.exe
0aa9cabfb18c288472a2a694352541bd87c4b03f Qrack-8.15.0-WSL_Ubuntu_22.04_LTS_RTX_3080.sh

bbf657e9c1726f50bf40b660c36a21892b5af8ad qrack_linux_arm64_benchmarks
4d436c217018adf0a4e95115f16786fd4b7c484d qrack_linux_armv7_benchmarks
7273f45ae1a9a5b7aee74cb77b30398740738cb1 qrack_mac_x86-64_benchmarks
0de3566e8f8d16dcdacf55f1ec51dffa984c83a2 qrack_Ubuntu_20.04_LTS_benchmarks
c1e5b81525bb537916bfadfd481f9a6b4e4299ef qrack_Ubuntu_22.04_LTS_benchmarks
c7f660cea8ab2ed4e72862c18eee8e4f8980728c qrack_windows_x86-64_benchmarks.exe
9ecfc699ef1155e178817e97eb4f93b8817e8cb2 qrack_windows_x86_benchmarks.exe
f5c4070560d89c90f6c0d9f69ed76019a4183aea qrack_WSL_Ubuntu_22.04_LTS_benchmarks

Opportunistically combine ancillary qubits with Clifford+RZ

14 Jul 16:38
Compare
Choose a tag to compare

Clifford+RZ special gate set uses ancillary qubits for RZ-injection gadgets. Recently, the development team discovered certain additional cases where gadgets and their ancillae can be combined. On average, this means less work at the sampling phase of Clifford+RZ simulation.

File SHA-1 sums:

1d0b51a7bd1b5db8f0bce1750122e25ca4292f66 Qrack-8.14.2-Darwin_x86-64.sh
ba70ec768493dea3359f086afb6922ea0e0236a3 Qrack-8.14.2-Emscripten.sh
f84bf024eff76e40f6d5ee1f37e922392f03b64f Qrack-8.14.2-Linux_arm64.sh
046493009e087c23937ffabba8601e736990917c Qrack-8.14.2-Linux_armv7.sh
bc8365c44a236b9ce7376675b7508673fe813c02 Qrack-8.14.2-Linux_Ubuntu_20.04_LTS_x86-64.sh
e567c1edd3eda0037545b5ec9385bdeaef33dd2c Qrack-8.14.2-Linux_Ubuntu_22.04_LTS_x86-64.sh
2c3842ed98d1e16b22cfa9afcef400cb26098443 Qrack-8.14.2-win32.exe
fbc3bd9248cf952289b78eec60c051f11c8d9199 Qrack-8.14.2-win64.exe
e9d82b3ec8fff0a0cbc3134a89934f52c462fb0c Qrack-8.14.2-WSL_Ubuntu_22.04_LTS_RTX_3080.sh

6013cd95f2c569e99f736053030f06f7d100c393 qrack_linux_arm64_benchmarks
9a7cefbb744df7aabb3edf38d548b7d6044a2b71 qrack_linux_armv7_benchmarks
d95c58c16f5186e8c049025be8b36fee2a67c7ba qrack_mac_x86-64_benchmarks
b3f42a01d9d721b432f61c20c9aee27818f5f4b1 qrack_Ubuntu_20.04_LTS_benchmarks
168eabd5aafdcc799332ab9de1636511a7be1108 qrack_Ubuntu_22.04_LTS_benchmarks
350db134d0d16754c2b5b78ca8d950a4ee8d08b3 qrack_windows_x86-64_benchmarks.exe
b11d1493f9af531ef9b861eda9b71305f9cdaf79 qrack_windows_x86_benchmarks.exe
615acf2477232bd6c5f3179a03a7d8a17ae83d87 qrack_WSL_Ubuntu_22.04_LTS_benchmarks

Full Changelog: vm6502q.v8.14.1...vm6502q.v8.14.2

More Clifford+RZ debugging and improvements

10 Jul 14:56
Compare
Choose a tag to compare

Yesterday, we nearly had QUnit functioning with Clifford+RZ special gate set. However, it was detected after release that more than small amounts of magic lead to state vector conversion, typically. This seems to be fixed. (We can't yet guarantee this, but it seems to work locally.)

Also, QUnitClifford file I/O has been debugged. The concurrent release of PyQrack will fix QUnitClifford file I/O handling in that Python module, as well.

File SHA-1 sums:

194f677a0a13399b8551bbb70dac62cdd8b81a58 Qrack-8.14.1-Darwin_x86-64.sh
55952af41ea8c4b3f4963adf6f4d918ea2271674 Qrack-8.14.1-Emscripten.sh
6b8f9c52c817250c453019a64b65a2aedb31530b Qrack-8.14.1-Linux_arm64.sh
ade39f60cbd061ed6dfa099851a6e10d8f8b3d42 Qrack-8.14.1-Linux_armv7.sh
cb3e09437ccf92aa46fa1206f30bafca3c208be8 Qrack-8.14.1-Linux_Ubuntu_20.04_LTS_x86-64.sh
55f6e74f20fb91e53e731db8b7cd4fd4428f7bb5 Qrack-8.14.1-Linux_Ubuntu_22.04_LTS_x86-64.sh
5b64718413796c8e6c7f7aa84cafe40edcdd0994 Qrack-8.14.1-win32.exe
731d0c10a2ba179a7a8102b539a5d1372b32e589 Qrack-8.14.1-win64.exe

4f1c5cb54fb18989a7035732c4a1d18c6fa4d53f Qrack-8.14.1-WSL_Ubuntu_22.04_LTS_RTX_3080.sh
b828d60afc764da8c71253c4dd4a9580c00ba046 qrack_linux_arm64_benchmarks
9284696dea0342877d243e62425da4abac903448 qrack_linux_armv7_benchmarks
d52cae79ff33ab5e098ee3c46a37f6e4e93d5c92 qrack_mac_x86-64_benchmarks
08f09ecfdeb8cffc3b401bcfb57896cfcf62b56f qrack_Ubuntu_20.04_LTS_benchmarks
13ba82013b1091f6289aee92e779d6748f722fe8 qrack_Ubuntu_22.04_LTS_benchmarks
fa7a51d261ee31ab065f122ad58b82468cee9f84 qrack_windows_x86-64_benchmarks.exe
bc213a277d231172732ffa131d1a4eb28f9cf6d4 qrack_windows_x86_benchmarks.exe
652fef41e874c1281829884a9bedcb7a1636dd85 qrack_WSL_Ubuntu_22.04_LTS_benchmarks

Full Changelog: vm6502q.v8.14.0...vm6502q.v8.14.1

Fix Clifford+RZ with QUnit

09 Jul 18:40
Compare
Choose a tag to compare

Upon further inspection, contrary to prior release notes, Clifford+RZ special gate set did not work with QUnit. This has been fixed, in this release.

Also, a new simulation layer QUnitClifford has been added, which basically performs a stripped-down QUnit algorithm layer directly over QStabilizer. Like QStabilizer, this layer can be directly instantiated in C++ code, but it is not a universal QInterface. QUnitClifford is now used below QStabilizerHybrid and above QStabilizer. Through judicious application of "reactive separation" techniques, the developers observe no appreciable slowdown in stabilizer simulation worst case.

[UPDATE: QUnit might still not fully interoperate with QStabilizerHybrid Clifford+RZ. However, PyQrack will be updated to parse QUnitClifford, which might achieve a similar end for compilation.]

File SHA-1 sums:

8406191b92b46964f145f40026de78a51554a8b8 Qrack-8.14.0-Darwin_x86-64.sh
b4685f4f929b0c73036e05b815692ec28c6a861a Qrack-8.14.0-Emscripten.sh
18c37abac2bc4faede58a0cc620324a708b85512 Qrack-8.14.0-Linux_arm64.sh
5d3f6eb81438c37c3f775444caf0720409729e7d Qrack-8.14.0-Linux_armv7.sh
b4f1f33d8c04f77d727f6235fe24c203848a29ec Qrack-8.14.0-Linux_Ubuntu_20.04_LTS_x86-64.sh
0c22e5c911d43d63043237018ed6c7e79f4af573 Qrack-8.14.0-Linux_Ubuntu_22.04_LTS_x86-64.sh
87458591bcb902bbd45ec8ce3baf77bf4e9e767a Qrack-8.14.0-win32.exe
8a5fd8dbc11a4c629aa54c23e3e73c9d51c9dc9f Qrack-8.14.0-win64.exe
76392bfb96b16ee3d16b6f9619b256f97106b35a Qrack-8.14.0-WSL_Ubuntu_22.04_LTS_RTX_3080.sh

5d30e0683f5b322db989951533cd79984dbe3e04 qrack_linux_arm64_benchmarks
a52a43bd28e20ee6c07cb018aa590c9704b89303 qrack_linux_armv7_benchmarks
03dd2801256975da50e416f877e280cbba4c61d9 qrack_mac_x86-64_benchmarks
a893b043be242e82fdb09d41901759361e73575f qrack_Ubuntu_20.04_LTS_benchmarks
686720e47ea3ba3205a84bbc5ce8f2a3f7442a8b qrack_Ubuntu_22.04_LTS_benchmarks
f4ef3dcce2f5173d32d8118e358b6da7fcb5b346 qrack_windows_x86-64_benchmarks.exe
823939fda094cf344331976837e41fb4a95155d7 qrack_windows_x86_benchmarks.exe
728b4816c9b9cecda87162eb34ade7ee76e1a855 qrack_WSL_Ubuntu_22.04_LTS_benchmarks

Full Changelog: vm6502q.v8.13.4...vm6502q.v8.14.0

Clifford+RZ optimization

07 Jul 00:02
Compare
Choose a tag to compare

If the total number of nonzero amplitudes in the stabilizer portion of a Clifford+RZ state is sufficiently less than max state vector size limits, then it will be written to a sparse map and cached, for Clifford+RZ sampling.

File SHA-1 sums:

28542a1d763f6bb496a44ca7dfa1cda35dd6dce5 Qrack-8.13.4-Darwin_x86-64.sh
14aab3270850982e1ea9a3531eb0fa8f3a98a0d0 Qrack-8.13.4-Emscripten.sh
9df3583bf19b1140a2b747d74a4e7d181a63f5e2 Qrack-8.13.4-Linux_arm64.sh
388b9dcf60d5bbd87be02bf8c3a3844c861dbc4c Qrack-8.13.4-Linux_armv7.sh
417b48ba2a26a174eb00ed5078663909040b0079 Qrack-8.13.4-Linux_Ubuntu_20.04_LTS_x86-64.sh
41ad23ddeac99e70f80bd03d8d074e94a0896361 Qrack-8.13.4-Linux_Ubuntu_22.04_LTS_x86-64.sh
ab35e4ddc810f062c5e70b3ff8730ee7cd854f82 Qrack-8.13.4-win32.exe
2dce89a8eb1a2a152a6c08685ee054278290b268 Qrack-8.13.4-win64.exe
b9e6dd8adafb861af1fd03e6e3a5824da1a399f6 Qrack-8.13.4-WSL_Ubuntu_22.04_LTS_RTX_3080.sh

1348a3fde505fc207c7cf040ff5f453293760348 qrack_linux_arm64_benchmarks
7fa4f3534b3f40b8e7c3e656fc595ac286ddd695 qrack_linux_armv7_benchmarks
293f5198342f145b0b2bf255c15c696149333452 qrack_mac_x86-64_benchmarks
ac8c296f5745566dc70ec02d9b8bcbc03ee426a8 qrack_Ubuntu_20.04_LTS_benchmarks
132db48d7e018bdbfd8695fddd33756af0cf7ce8 qrack_Ubuntu_22.04_LTS_benchmarks
e261749e4e2d11bf635df514ddbf10a87cff2094 qrack_windows_x86-64_benchmarks.exe
d0062acc6b80a5e7ae8b04090e2810daa560b3e1 qrack_windows_x86_benchmarks.exe
9966cb95d84e9cc18850e9781388bc42ef8f6fae qrack_WSL_Ubuntu_22.04_LTS_benchmarks

Full Changelog: vm6502q.v8.13.3...vm6502q.v8.13.4

Fix Clifford+RZ sampling edge cases

01 Jul 16:12
Compare
Choose a tag to compare

This fixes edge cases when sampling Clifford+RZ simulation that results in 0 ancillary qubits.

File SHA-1 sums:

f6bd63eff5bcfe4c66a6f58fc1929c738cb37dee Qrack-8.13.3-Darwin_x86-64.sh
80c131d229f6f9a4594ed260abb8331327a4e925 Qrack-8.13.3-Emscripten.sh
1205eb368a12bca1a6bf752010fda1e0a902472f Qrack-8.13.3-Linux_arm64.sh
d29ddcf3b3cdc5a89d8597ec031eb5207b57dea9 Qrack-8.13.3-Linux_armv7.sh
2528e7a4e47a7c9f4c9e968c59ea8e286d2d32cb Qrack-8.13.3-Linux_Ubuntu_20.04_LTS_x86-64.sh
2fde1310ab31c29c6138a21b3593bbedd4ff4e19 Qrack-8.13.3-Linux_Ubuntu_22.04_LTS_x86-64.sh
469e2014e1d45af0b4ef2021bba62cd2efaa5e94 Qrack-8.13.3-win32.exe
79faac7be3fa67d0fdd482d7cbeaf23f34c960c1 Qrack-8.13.3-win64.exe
08d18d977437cf09dd0fb7e5bea0c60d83b3766d Qrack-8.13.3-WSL_Ubuntu_22.04_LTS_RTX_3080.sh

2534077723cbf1c13f8802687cfc4add13cff161 qrack_linux_arm64_benchmarks
6f83407bf6e7eeff3b7e5e1058a4b440dbd63750 qrack_linux_armv7_benchmarks
f8abf8e6fb858ecbbc6ec40b13ab900acee0f7bb qrack_mac_x86-64_benchmarks
9b96de6d4e19e722b91ce7e55ca91f651a7ab1ca qrack_Ubuntu_20.04_LTS_benchmarks
96b3483b4cde4f77629f6ad0079276f4fb65b567 qrack_Ubuntu_22.04_LTS_benchmarks
51a5b663e863447c054918ba85d2238d37f40e81 qrack_windows_x86-64_benchmarks.exe
c7de67a4e074d8152ef936096709a19f244bed62 qrack_windows_x86_benchmarks.exe
6192d60ce1696b964f0dbad1b8ec552734563ef1 qrack_WSL_Ubuntu_22.04_LTS_benchmarks

Full Changelog: vm6502q.v8.13.1...vm6502q.v8.13.3

Improved and debugged Clifford+RZ file I/O

22 Jun 12:19
Compare
Choose a tag to compare

The set of valid file-input states for Clifford+RZ simulation has been expanded, by checking for separable and Clifford ancillae. Clifford+RZ measurement has also been optimized.

File SHA-1 sums:

c36b3cae04dd603355d6009740beaba2bab1c716 Qrack-8.13.1-Darwin_x86-64.sh
179ce8c26729b9df75b9427fd146c79c94a8f4e3 Qrack-8.13.1-Emscripten.sh
750cb2bb022b90767f9d15c75ceb0412502633b9 Qrack-8.13.1-Linux_arm64.sh
f9d07865001c5d9b38900a6521efc043369a76f4 Qrack-8.13.1-Linux_armv7.sh
f84c728d89fbc19e1bfcbcb48ec7fffbc58a5524 Qrack-8.13.1-Linux_Ubuntu_20.04_LTS_x86-64.sh
05343309655e98ccc05892e766f5dbfea91fcbc6 Qrack-8.13.1-Linux_Ubuntu_22.04_LTS_x86-64.sh
68a18e052ac2343db62f84f03a714be9f48aaeb6 Qrack-8.13.1-win32.exe
e37580db70ce2bbba5de555b5e655a9da4870d8a Qrack-8.13.1-win64.exe
558e8edae1ca9262d2b0f6e54cd7e78dc481a454 Qrack-8.13.1-WSL_Ubuntu_22.04_LTS_RTX_3080.sh

7b8c407ed1111568aa28feea5de44714a6957f88 qrack_linux_arm64_benchmarks
afa56d6e0fac0737b7271f43037d42ed9e97b07f qrack_linux_armv7_benchmarks
fb34768806fffb6af91b8a1723c0392b1112f1bf qrack_mac_x86-64_benchmarks
f67df5fa919bf085e0580ef629a2c382ba8c7e67 qrack_Ubuntu_20.04_LTS_benchmarks
144bd43abeb13afbe72b2393a775c22182c4f037 qrack_Ubuntu_22.04_LTS_benchmarks
c6d35fe9571a5c2ef174ef9c83d14da4dd1f8723 qrack_windows_x86-64_benchmarks.exe
21ba3bb871b9c5343d5e1ac7ce6f88a7a161bcf0 qrack_windows_x86_benchmarks.exe
6192d60ce1696b964f0dbad1b8ec552734563ef1 qrack_WSL_Ubuntu_22.04_LTS_benchmarks

Full Changelog: vm6502q.v8.13.0...vm6502q.v8.13.1

(Experimental) Quantum Hardware Compilation Support

17 Jun 19:27
Compare
Choose a tag to compare

The new features of this release are purely at the experimental stage and have not been integrated into a full pipeline, but it is theoretically possible to use the Clifford+RZ improvements of v8.12 to compile for hardware.

In v8.13, it is now possible to output QStabilizerHybrid state to file, (not while using QUnit). The files have the following format, by line:

[Logical qubit count]
[Stabilizer qubit count, including ancillae]
[Stabilizer x/z/r generators, one row per line, "tableau" format, repeated for logical qubit count of rows x2]
[Per-qubit MPS buffers, 2x2 complex matrices, row-major order, one matrix per line, repeated for stabilizer qubit count of rows]

For example:

3
3
1 1 0 0 1 0 2
0 1 0 1 0 0 0
0 0 0 0 0 1 0
0 0 0 1 0 1 2
0 0 0 1 1 0 0
1 1 1 0 1 0 0
(1,0) (0,0) (0,0) (1,0)
(1,0) (0,0) (0,0) (1,0)
(0,0) (0.707107,-0.707107) (0,1) (0,0)

is a valid file, with 0 ancillae. It is theoretically relatively easy to prepare this result of unitary circuit simulation on a quantum hardware device: first prepare the stabilizer state, (with purely Clifford gates,) then apply the (potentially non-Clifford) 2x2 matrices over the same sequential qubit index order. This can represent a universal quantum state of the logical qubits.

QInterface now has a method void SetStabilizerHardwareEncoded(bool). The default value of this setting is false, which causes ancilla "magic state" qubit "channels" to be encoded depending on post-selection. If this setting is false, hardware decoding depends on the ancilla qubits all measuring as |0>, for the correct overall state preparation. However, if this setting is true, then every other ancilla qubit (starting with the second-occurring ancilla) is an "open channel" that starts out coding an identity gate, (or "no operation,") but can be re-encoded to avoid the post-selection requirement. To do so, after preparing the state as described in the file, perform H gate on all auxiliary, identity-encoding ancilla channels, act CZ from each "coding" ancilla to its "identity" partner, then act H again on the auxiliary, identity-encoding ancilla. Now, terminal measurement can occur without post-selection, and all logical qubits are deterministically in the intended state, in the ideal.

(EDIT: Dan was mistaken about CZ on the extra ancilla channels "completely" fixing the post-selection errors; rather, per additional ancillary channel, it should reduce the failure rate by 50%, compounded.)

File SHA-1 sums:

c26152394cfdf5921a71303bbdea94f85f64b2f9 Qrack-8.13.0-Darwin_x86-64.sh
4ec2f1eb0068b6ddfdf5ca021d8017ab3bcd3762 Qrack-8.13.0-Emscripten.sh
add15fc39a41b7047271a00622ec4424e7b074cc Qrack-8.13.0-Linux_arm64.sh
cefd758d42eaa1bd620a0ac676c774fdc51a425e Qrack-8.13.0-Linux_armv7.sh
96b7ab1308522c115fda282b9f9c4a9d650e3a11 Qrack-8.13.0-Linux_Ubuntu_20.04_LTS_x86-64.sh
3bdf5d69eb49777b15b708814893de765e954678 Qrack-8.13.0-Linux_Ubuntu_22.04_LTS_x86-64.sh
dbecccb935bbe4be2310fc385fd08b97a51438aa Qrack-8.13.0-win32.exe
bc077c0fd1316b937ea19162efafe11ff348e891 Qrack-8.13.0-win64.exe

6632674f1fa19399610b5fca887bb8cdf64caf1e Qrack-8.13.0-WSL_Ubuntu_22.04_LTS_RTX_3080.sh
1a4523a42a6274d5cd4b3305b4e2bf2b1664c2cb qrack_linux_arm64_benchmarks
21c1a54572198ec0137c43be17329b8775a2ee64 qrack_linux_armv7_benchmarks
f7011b474318d81c6fda5c1f288a3502a092455d qrack_mac_x86-64_benchmarks
4aa289f07f246529dae6a4954f8e28cd928ce887 qrack_Ubuntu_20.04_LTS_benchmarks
d7c09fec8311d76bd8efe693303bf37da44aec95 qrack_Ubuntu_22.04_LTS_benchmarks
0a460db2e63ac4dcfeb0303913d19f1a7e65e334 qrack_windows_x86-64_benchmarks.exe
c2c9938678e237c27eec0f230fc5c5b17b8514e0 qrack_windows_x86_benchmarks.exe
9f0aa488c6a510939e065872983915f8a8068003 qrack_WSL_Ubuntu_22.04_LTS_benchmarks