Skip to content

Releases: unitaryfund/pyqrack

Optimize/fix FSim gate

11 Mar 21:52
Compare
Choose a tag to compare

Historically, Qrack hasn't relied on native FSim directly for its benchmarks, instead using decompositions of specific cases. Hence, it turned out that the gate went with reverse phase angle convention, for a long time. However, FSim gate has also been optimized to theoretically benefit from "automatic circuit elision" (ACE).

Full Changelog:
unitaryfund/qrack@vm6502q.v9.14.0...vm6502q.v9.14.1
v1.36.0...v1.36.1

sha1sum results:
bbcfe023e1d884c56ee097cc993739eb5d9e770a pyqrack-1.36.1-py3-none-macosx_13_0_x86_64.whl
97d14e8ec5b87ee092e8d08ed72b66f8db1847d0 pyqrack-1.36.1-py3-none-macosx_14_0_arm64.whl
a5d4d1e8696021d044816cc564286549d37d3868 pyqrack-1.36.1-py3-none-macosx_15_0_arm64.whl
04fe3a37884dc8b88a0b8a242405091052ea7cd8 pyqrack-1.36.1-py3-none-manylinux_2_31_x86_64.whl
440f603db5ef040ccbfc1e988f66f98b7233964b pyqrack-1.36.1-py3-none-manylinux_2_35_x86_64.whl
e10421e067a7a61faa234fed2a5273c141f19f2e pyqrack-1.36.1-py3-none-manylinux_2_39_x86_64.whl
1583ac5107d6de3fa5bf7f0179450afb228815b2 pyqrack-1.36.1-py3-none-win_amd64.whl
498830ca1b7e213d08facc447e6eaefd84322cf3 pyqrack-1.36.1.tar.gz
d26ea902623e74f465ba4f7b9e2fe1009b8bcaeb pyqrack_cpu-1.36.1-py3-none-macosx_13_0_x86_64.whl
37858c9d85ff6073bb64531aa2ccde988f74bccc pyqrack_cpu-1.36.1-py3-none-manylinux_2_31_x86_64.whl
609b245a36e3d047081c1cad8dfcf662cb4bf395 pyqrack_cpu-1.36.1-py3-none-manylinux_2_35_x86_64.whl
badec48dd0533b7131a2ce20076faf91bd5a307e pyqrack_cpu-1.36.1-py3-none-manylinux_2_39_x86_64.whl
d037b2c9e9f3deb1b255219ee17871bcfb9c31f7 pyqrack_cpu-1.36.1-py3-none-win_amd64.whl
ea046393d2ec429a4c45a78a1f9e99c8388c1bc0 pyqrack_cpu-1.36.1.tar.gz
3c2b2065fd9c9eb6f91a48e3a7c8e87beae00157 pyqrack_cuda-1.36.1.tar.gz

Static stabilizer, CUDA bug fix, and style improvements

10 Mar 01:11
Compare
Choose a tag to compare

Statically linked QStabilizerHybrid code now benefits from additional caching when querying multiple expectation values at the same point in unitary circuit evolution. As of this release, environment variables always preempt user code methods for near-Clifford rounding threshold.

An ENABLE_CUDA macro was misspelled in code, affecting (CUDA) stabilizer simulation.

For readability, Qrack adopts a style convention that functions and methods with multiple return-or-throw statement points put extra line breaks before and after every return statement unless either instance coincides with the beginning or end of scope, and any inner-scope returns (except top-level lambda function scope) have extra line breaks above and below the containing scope (as necessary). (Pardon the unreadable diff on Qrack, for this change in particular.)

Full Changelog:
unitaryfund/qrack@vm6502q.v9.13.37...vm6502q.v9.14.0
v1.35.10...v1.36.0

sha1sum results:
ff8ded47bfd047a44ec6dbe7d20e2a44b33e242b pyqrack-1.36.0-py3-none-macosx_13_0_x86_64.whl
0cbdc563d67008eb7b7263d2cbbacf68fc477e58 pyqrack-1.36.0-py3-none-macosx_14_0_arm64.whl
6dd2473115d7abc2da8a314fced73eeb9a2c499a pyqrack-1.36.0-py3-none-macosx_15_0_arm64.whl
e5e84a5f5dd4d6caae1592c8ce1f7bd26c53f41c pyqrack-1.36.0-py3-none-manylinux_2_31_x86_64.whl
ec4cc55364db6f43aa56305a66d4a208d55d76d1 pyqrack-1.36.0-py3-none-manylinux_2_35_x86_64.whl
6c89229063119f5cffc7a471b0d4bd08fdf80c6c pyqrack-1.36.0-py3-none-manylinux_2_39_x86_64.whl
0c7e3f463de1a57808f50a061705952131992380 pyqrack-1.36.0-py3-none-win_amd64.whl
cb1634d2382798923be8ab1ca53ab56a215a2bbb pyqrack-1.36.0.tar.gz
51599ce37e6edff50482b3a8982ef3a3aad79655 pyqrack_cpu-1.36.0-py3-none-macosx_13_0_x86_64.whl
9d48084efc1b9ba328bedd5f714026546633c7c4 pyqrack_cpu-1.36.0-py3-none-manylinux_2_31_x86_64.whl
f744c0b40eedaf6849b3257cc5199c218c61989a pyqrack_cpu-1.36.0-py3-none-manylinux_2_35_x86_64.whl
9c0aa750296862e5b7f2034e1baa849df930d350 pyqrack_cpu-1.36.0-py3-none-manylinux_2_39_x86_64.whl
daa4a3bf7349fd8897964c429aa60040ddd5257e pyqrack_cpu-1.36.0-py3-none-win_amd64.whl
125e205c26d70f045b37caa0da995da182954ad7 pyqrack_cpu-1.36.0.tar.gz
ed255f0914cc6706feca41bd5de92f96d501df12 pyqrack_cuda-1.36.0.tar.gz

Fix imports (sorry!)

03 Mar 20:53
Compare
Choose a tag to compare

I accidentally missed an import for pyqrack.util in __init__.py. (Blame @WrathfulSpatula, me.) This release only fixes this problem, affecting only the last release.

Full Changelog: v1.35.9...v1.35.10

sha1sum results:
57efb990ff99af75a320bc333e491c2a8e23cba6 pyqrack-1.35.10-py3-none-macosx_13_0_x86_64.whl
d68f65aa75ae9e079474901b7443c72715edc74e pyqrack-1.35.10-py3-none-macosx_14_0_arm64.whl
6320c7bc5a156b970bbe7284ef7ba740e7383d1d pyqrack-1.35.10-py3-none-macosx_15_0_arm64.whl
575f1aee5ea6f022e62511cd8d9b9e3d9ac0ff79 pyqrack-1.35.10-py3-none-manylinux_2_31_x86_64.whl
fecb6490c5bf94bb364ed6f59346f3820abf5584 pyqrack-1.35.10-py3-none-manylinux_2_35_x86_64.whl
0b3d1126c787fe5c829f2a7eef45c0709255cabb pyqrack-1.35.10-py3-none-manylinux_2_39_x86_64.whl
acc69e726339e709370fd0e30662b61062c0bf4f pyqrack-1.35.10-py3-none-win_amd64.whl
a2b3fd64419670d2d4d0364baf1c9faae056cd5c pyqrack-1.35.10.tar.gz
476f7d6e5e0b6b37ded69732a6f9df3c1b853359 pyqrack_cpu-1.35.10-py3-none-macosx_13_0_x86_64.whl
d13f5d385b5a6e3963a180d696c2f31d7c20c373 pyqrack_cpu-1.35.10-py3-none-manylinux_2_31_x86_64.whl
fcfff839840a70bb4f88b5ba56835676288216db pyqrack_cpu-1.35.10-py3-none-manylinux_2_35_x86_64.whl
5d79abfb1af8fd32643586d5491fcdc8f9318a48 pyqrack_cpu-1.35.10-py3-none-manylinux_2_39_x86_64.whl
dbf96c9f2a1d9ded714331af1016b638cb91aa9a pyqrack_cpu-1.35.10-py3-none-win_amd64.whl
8c14790a8848ece8343c02c304a3cb8b801f5cbe pyqrack_cpu-1.35.10.tar.gz
ef14433d05e35ad9b03cb5d7b6dcf44cb8f15d59 pyqrack_cuda-1.35.10.tar.gz

Style fixes (nullptr)

02 Mar 19:53
386b85f
Compare
Choose a tag to compare

In PyQrack, deprecated usage of the Qiskit API have been updated.

Previously, Qrack relied on NULL when necessary for pointers. In this release, all instances of NULL have been replaced with nullptr (since this was added in C++11, as far back as Qrack supports for a C++ standard). This surfaced exactly one instance of NULL where nullptr was not immediately appropriate, because NULL was assigned to a variable for an instance of a class rather than a pointer to the class. Deeming this a "code smell" (even though it's very unlikely there could have been any bad access, use-after-free, or other memory safety error, here) the code was refactored to achieve its same original intent while using nullptr instead. Also, for loops have been brought up to standard for use of the "foreach" pattern (for (auto& x : container)).

What's Changed

Full Changelog:
unitaryfund/qrack@vm6502q.v9.13.33...vm6502q.v9.13.37
v1.35.8...v1.35.9

sha1sum results:
71af6a0d891d3e4a6d98aa5bf1e936a9ad7c23e9 pyqrack-1.35.9-py3-none-macosx_13_0_x86_64.whl
292b7e08f4c49ec8e02a33a2e1cc30c994a56275 pyqrack-1.35.9-py3-none-macosx_14_0_arm64.whl
38b594b2fd48fe31745eac7af6a69f306e70b49c pyqrack-1.35.9-py3-none-macosx_15_0_arm64.whl
12c55734df31391ba40d0a3eea13fc7cc095e99c pyqrack-1.35.9-py3-none-manylinux_2_31_x86_64.whl
0df7c62875efab64dbb4678adef1bbddb5b21021 pyqrack-1.35.9-py3-none-manylinux_2_35_x86_64.whl
007972df129633b7c3208e207a128c04c47d525e pyqrack-1.35.9-py3-none-manylinux_2_39_x86_64.whl
6b80ead5a6560d9e1380c17c009205c42d848b84 pyqrack-1.35.9-py3-none-win_amd64.whl
f01031a40e7dcf2d696aa4de498c1e57c585b246 pyqrack-1.35.9.tar.gz
b7607a661009c4ff91bb465ccd647fb13b67cdb7 pyqrack_cpu-1.35.9-py3-none-macosx_13_0_x86_64.whl
b7833fa929ef1d7cdf9e53f004da8482b70e7b8d pyqrack_cpu-1.35.9-py3-none-manylinux_2_31_x86_64.whl
a52ffe62d3b6ec38da5e6aec64a4289bb70d1d33 pyqrack_cpu-1.35.9-py3-none-manylinux_2_35_x86_64.whl
3dc11e35cf4ab8e099e9f0a790032e455199dfb3 pyqrack_cpu-1.35.9-py3-none-manylinux_2_39_x86_64.whl
42fe003ee2d7efca5f9c0fd68542411ff9e49029 pyqrack_cpu-1.35.9-py3-none-win_amd64.whl
04caed2b8d3b259468a4a6ba9f00ce3bbf52a2d3 pyqrack_cpu-1.35.9.tar.gz
978fcbcf8cc1a88db41468195fa3e8075d1b4fb1 pyqrack_cuda-1.35.9.tar.gz

QUnit micro-optimization (and fix Windows builds)

28 Feb 01:34
Compare
Choose a tag to compare

This release adds micro-optimizations to for loops in QUnit (isSchmidtDecomposition=True). We also have a pull request to fix Windows debug builds. (We also work around the fact that Microsoft is once again either "lawyering" or attempting to redefine the C++ standard, for std::chrono::system_clock, in their latest compiler release, which, if the latter, will fail.)

What's Changed

New Contributors

Full Changelog:
unitaryfund/qrack@vm6502q.v9.13.29...vm6502q.v9.13.33
v1.35.6...v1.35.8

sha1sum results:
fd4797d88b70763be46f79f68c8e2798efdca15b pyqrack-1.35.8-py3-none-macosx_13_0_x86_64.whl
f994e475055fbed97aeeb70b4727502f94c802f6 pyqrack-1.35.8-py3-none-macosx_14_0_arm64.whl
ef64ef53c54eebea7b84463ecfc050faefb643be pyqrack-1.35.8-py3-none-macosx_15_0_arm64.whl
ce703a3fc356dfab8b5ed4594b28f0d7e3eaeefb pyqrack-1.35.8-py3-none-manylinux_2_31_x86_64.whl
3ffd89d4b28ed42e26dc1273661036af67300cc2 pyqrack-1.35.8-py3-none-manylinux_2_35_x86_64.whl
be21491056c398ce03f61f6975a26d14d6c56089 pyqrack-1.35.8-py3-none-manylinux_2_39_x86_64.whl
b89a628e27c0c7bb1dfdaeb85aafd0880184ef21 pyqrack-1.35.8-py3-none-win_amd64.whl
d46a3dd62eb7e04f6d5bab2867a2f4f2fd146d70 pyqrack-1.35.8.tar.gz
da1524e1ef8c02f71ec2b56471e4c79fb1e8973f pyqrack_cpu-1.35.8-py3-none-macosx_13_0_x86_64.whl
6ee33cff6ddd51a1fda152694d245320c6f658d9 pyqrack_cpu-1.35.8-py3-none-manylinux_2_31_x86_64.whl
5592423ea9252decfafcf00c606ec995b069b684 pyqrack_cpu-1.35.8-py3-none-manylinux_2_35_x86_64.whl
4a301553c4d9278655cdfc9e1b3671bd186d9957 pyqrack_cpu-1.35.8-py3-none-manylinux_2_39_x86_64.whl
865ba2dd7366276c9c23b892a52ee9ff1d0d30f1 pyqrack_cpu-1.35.8-py3-none-win_amd64.whl
1733947d66cdd0605dfa2b4a8101f66f8e954e42 pyqrack_cpu-1.35.8.tar.gz
6208183cc5fe260c3ccbfaac2ec09cee492fd920 pyqrack_cuda-1.35.8.tar.gz

"Detailing"

15 Feb 15:08
Compare
Choose a tag to compare

In the base Qrack repository, this patch release enforces Qrack idiomatic style. Specifically, a "foreach" pattern (for(const auto& x : container)) should be preferred when sequence or index do not matter; a loop over index should be preferred when index or sequence matters. (In practice, "foreach" over the elements of a std::vector, for example, will probably always proceed in stable order according to index, but Qrack style demands that this should be reflected explicitly in the code idiom.) Catch2 for unit tests and benchmarks has also been upgraded to the last official major v2 release.

Full Changelog:
unitaryfund/qrack@vm6502q.v9.13.25...vm6502q.v9.13.29
v1.35.5...v1.35.6

sha1sum results:
927e45978a7f6b91edb5a6402433fd92dd3421ff pyqrack-1.35.6-py3-none-macosx_13_0_x86_64.whl
f37096d81dd2266e82bc60d42b7b6b81b759ff11 pyqrack-1.35.6-py3-none-macosx_14_0_arm64.whl
7d99f0765f76fca0da58422834fa44971e8c385a pyqrack-1.35.6-py3-none-macosx_15_0_arm64.whl
2a68469e2c35fcc785779df7aacfab11a80097f1 pyqrack-1.35.6-py3-none-manylinux_2_31_x86_64.whl
a8f30babe263e6bc7670840a8dbc6c45b012a60f pyqrack-1.35.6-py3-none-manylinux_2_35_x86_64.whl
b931d654fd35514d8cc3af2dae8bc7076e767cf1 pyqrack-1.35.6-py3-none-manylinux_2_39_x86_64.whl
139c3a08484142424baf94f04d463646c0fa6a28 pyqrack-1.35.6-py3-none-win_amd64.whl
487bdd48dd4e341e148e4d3e4684713a149ea94d pyqrack-1.35.6.tar.gz
fec430bc0408fa9f5b5a1353d7c3a339518f5472 pyqrack_cpu-1.35.6-py3-none-macosx_13_0_x86_64.whl
d245dac172c8d98118fb369e9fdec5b1277d1117 pyqrack_cpu-1.35.6-py3-none-manylinux_2_31_x86_64.whl
8a536b1d6db0f5db29966668149cdf3ab083ce6a pyqrack_cpu-1.35.6-py3-none-manylinux_2_35_x86_64.whl
312809cd66e71b1c894924e0e64dc1f84fe1bd41 pyqrack_cpu-1.35.6-py3-none-manylinux_2_39_x86_64.whl
3a36a90d2c910be38cad618ce5d54a879d87cd94 pyqrack_cpu-1.35.6-py3-none-win_amd64.whl
bf6028d34e743cec00a2b143b68aa0c96d9c747c pyqrack_cpu-1.35.6.tar.gz
af98737d20162a3db8a913d6c0965c9702593a21 pyqrack_cuda-1.35.6.tar.gz

Fix uniformly controlled signatures; stabilizer micro-optimizations

08 Feb 15:13
Compare
Choose a tag to compare

What motivates this release is a problem fixed in the signatures of "uniformly controlled" gates (such as QNeuron relies upon). Historically, I had confused const type* for type const* in cases. This was meant to be totally fixed in a previous release, but editing documentation surfaced the remaining inconsistency in uniformly controlled gate signatures. The change does not break anything in the library, so there was no bad access, despite the erroneous types. Besides that, this release includes (likely insignificant) optimizations for stabilizer simulation.

Expect Ubuntu releases, since it's important that they have the right C++ signatures.

Full Changelog:
unitaryfund/qrack@vm6502q.v9.13.24...vm6502q.v9.13.25
v1.35.4...v1.35.5

sha1sum results:
5126122ae5c4190a31826b8c4fe6139eeb32e866 pyqrack-1.35.5-py3-none-macosx_13_0_x86_64.whl
b6c1658721cee636791dd2adee93e57da15296f6 pyqrack-1.35.5-py3-none-macosx_14_0_arm64.whl
e4fb958a0b8ced2ecbff64b74202e5c883b0e91c pyqrack-1.35.5-py3-none-macosx_15_0_arm64.whl
04444690b38eb3925137f92a8d995c5e8533c113 pyqrack-1.35.5-py3-none-manylinux_2_31_x86_64.whl
c8c679d66d4963cf0c8f1d294974c7241a1c5bbb pyqrack-1.35.5-py3-none-manylinux_2_35_x86_64.whl
c6362786eea4ec6e139e0fece3125cb0c5567564 pyqrack-1.35.5-py3-none-manylinux_2_39_x86_64.whl
947b3bf36e2196e1bdd4f40ea756ae7cf3947fd0 pyqrack-1.35.5-py3-none-win_amd64.whl
d4c5c4d6d67fbe8a3d3161605ff9c203aca6adf4 pyqrack-1.35.5.tar.gz
d8cbcf1798436a6d48589bbea64430824de74d13 pyqrack_cpu-1.35.5-py3-none-macosx_13_0_x86_64.whl
96444c907f94a81aee00d38ba6dfc2b4fb315d92 pyqrack_cpu-1.35.5-py3-none-manylinux_2_31_x86_64.whl
710bafdd33ebe84e66680525e5e2a676288d14b2 pyqrack_cpu-1.35.5-py3-none-manylinux_2_35_x86_64.whl
2dea659e001534ee0efcd28088d1624478cc3e49 pyqrack_cpu-1.35.5-py3-none-manylinux_2_39_x86_64.whl
47a6f60425e5b6742da77ac2f22a39f2f59947d7 pyqrack_cpu-1.35.5-py3-none-win_amd64.whl
677184849da739e2546987a7e15fedd3b8d99b13 pyqrack_cpu-1.35.5.tar.gz
a499c266d95fcd233c503b854a597e2a2964007d pyqrack_cuda-1.35.5.tar.gz

Windows /O3 flag; stabilizer micro-optimations

07 Feb 01:11
Compare
Choose a tag to compare

Mostly, this release is for metadata including README. However, Windows builds now use the /O3 optimization flag properly. (We did not previously notice that the build logs on Windows indicated we had passed the argument incorrectly from CMake build.) Minor micro-optimizations have also been made in stabilizer simulation.

Full Changelog:
unitaryfund/qrack@vm6502q.v9.13.16...vm6502q.v9.13.24
v1.35.0...v1.35.4

sha1sum results:
fa035fb1a4a3e64b42364d60506a987033d945df pyqrack-1.35.4-py3-none-macosx_13_0_x86_64.whl
a8ec6a2698925ef788dcda8a8e56e9f2d37a048e pyqrack-1.35.4-py3-none-macosx_14_0_arm64.whl
ff6a9702a20180c484c2e00ca76df73344096962 pyqrack-1.35.4-py3-none-macosx_15_0_arm64.whl
af1df78c75cd64974a02d42c17b3216edfea08d9 pyqrack-1.35.4-py3-none-manylinux_2_31_x86_64.whl
5a0cdec448a2993f8393a54a944e6133012e4468 pyqrack-1.35.4-py3-none-manylinux_2_35_x86_64.whl
f550fbd1de3042d93786b9ea87633d06fe4c9207 pyqrack-1.35.4-py3-none-manylinux_2_39_x86_64.whl
5be1906edacaa1746b64cd667262a1f7359d1b4c pyqrack-1.35.4-py3-none-win_amd64.whl
49d7623d13f1e7a230ddd231bcbb170ed13b2f25 pyqrack-1.35.4.tar.gz
d1407275eebbc443a79e3890a489c25db3c97532 pyqrack_cpu-1.35.4-py3-none-macosx_13_0_x86_64.whl
5442c79082191c2de4028cc16e492a9ccdb29535 pyqrack_cpu-1.35.4-py3-none-manylinux_2_31_x86_64.whl
26619ecbc60e04b28216c1acc96cb6edb4f45579 pyqrack_cpu-1.35.4-py3-none-manylinux_2_35_x86_64.whl
4c383691cc8bd03aa8e6b682cff0576ae15683ae pyqrack_cpu-1.35.4-py3-none-manylinux_2_39_x86_64.whl
d282cda511f129ac964bed236052030b615f986c pyqrack_cpu-1.35.4-py3-none-win_amd64.whl
0a4bd44589a2e0d06d2946e0e126fd59c0b1b13c pyqrack_cuda-1.35.4.tar.gz

PYQRACK_HOST_POINTER_DEFAULT_ON environment variable

22 Dec 18:49
82068bb
Compare
Choose a tag to compare

PYQRACK_HOST_POINTER_DEFAULT_ON=1, or set to any "truthy" value, now changes the default of QrackSimulator constructor option isHostPointer from False to True. This (True) default often benefits "integrated graphics" accelerators that use general memory, rather than dedicated memory, which can therefore benefit from "zero-copy" mode.

(Since PyQrack's OpenCL version is the only version which supports integrated graphics accelerators, like the Intel HD, this release is only for OpenCL.)

Full Changelog: v1.34.9...v1.35.0

sha1sum results:
e9ec49559221b2d6b190b26de2bf8668e000697d pyqrack-1.35.0-py3-none-macosx_13_0_x86_64.whl
303aca42ecfe357b539ba57db9b69120ba6cc99c pyqrack-1.35.0-py3-none-macosx_14_0_arm64.whl
8565acc5e12b5f4e987a89e12be3fa8313d0fd68 pyqrack-1.35.0-py3-none-macosx_15_0_arm64.whl
38ac6975664d6528f7b44932146a2be7531f2033 pyqrack-1.35.0-py3-none-manylinux_2_31_x86_64.whl
6bdcbe33aa1761fb7bab21bf7ab853869e81592a pyqrack-1.35.0-py3-none-manylinux_2_35_x86_64.whl
78717c465b7f76bae1556125a18859825706d16a pyqrack-1.35.0-py3-none-manylinux_2_39_x86_64.whl
87fc456448538670f2246565a241868fb5c2bb27 pyqrack-1.35.0-py3-none-win_amd64.whl
f0e8c20cece2749aaa14f2b17020c865863dbcf5 pyqrack-1.35.0.tar.gz

QrackCircuit commutation

09 Dec 12:31
Compare
Choose a tag to compare

In this release, QrackCircuit checks, when a gate commutes, whether it had any qubits in common with the other gate. If it does, commutation is deemed "productive," and circuit optimization continues. If commutation only occurs without any qubits in common between commuting gates, and if the gate ultimately fails to commute at the last step, then commutation is deemed "non-productive," and the corresponding qubits are removed from the circuit optimization light cone.

Full Changelog:
unitaryfund/qrack@vm6502q.v9.13.9...vm6502q.v9.13.16
v1.34.8...v1.34.9

sha1sum results:
5c1b92c71ab04bc57956b025c69c1dba996ad29b pyqrack-1.34.9-py3-none-macosx_13_0_x86_64.whl
27ac35928e74544349f713b696e06c7524e1cf3d pyqrack-1.34.9-py3-none-macosx_14_0_arm64.whl
dcdc553f384fd80e5bda0de253442f615a6b7b32 pyqrack-1.34.9-py3-none-macosx_15_0_arm64.whl
8bb33e20163960dc2fc2ddd9a079172fdb9d6de7 pyqrack-1.34.9-py3-none-manylinux_2_31_x86_64.whl
f2c563c3763283e06f34f215da8a878250cf86cc pyqrack-1.34.9-py3-none-manylinux_2_35_x86_64.whl
90180a3fcf28c9ce469ba9a31bb1cb9feaba2751 pyqrack-1.34.9-py3-none-manylinux_2_39_x86_64.whl
7091fed60029cd278f54a2363acb086e37808c5d pyqrack-1.34.9-py3-none-win_amd64.whl
cd82a752ada9ef1fc6cb3a6487e855a70157e1a4 pyqrack-1.34.9.tar.gz
59b08cbcc80c6e9e55a637e599be0fd8ffbbe4ca pyqrack_cpu-1.34.9-py3-none-macosx_13_0_x86_64.whl
14fd2b580cf36e96006b90fa129160ec5c199556 pyqrack_cpu-1.34.9-py3-none-manylinux_2_31_x86_64.whl
c6ef14b381e62d432a2081866f0255b38269cf28 pyqrack_cpu-1.34.9-py3-none-manylinux_2_35_x86_64.whl
959425b6cfdb9a24dbb8c341540b11d095b4a950 pyqrack_cpu-1.34.9-py3-none-manylinux_2_39_x86_64.whl
529ba77da1860b8431768fb7fa6e2be8824ac0fd pyqrack_cpu-1.34.9-py3-none-win_amd64.whl
795deb686e1eea6603fd1dd0c560b783e246db13 pyqrack_cpu-1.34.9.tar.gz
d701d1fac972828a211fb810d3f6cf09b45dd3f5 pyqrack_cuda-1.34.9.tar.gz