Pyqrack

Latest version: v1.38.0

Safety actively analyzes 723217 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 58

1.38.0

Upon further consideration, `QBdtNode::Branch()` is not guaranteed to exceed specified memory limits even when branching past `QRACK_MAX_CPU_QB` count of qubits (if some branches have `0` amplitude). Hence, we need to resort to failed heap allocation raising `std::bad_alloc`. The overly restrictive limit on branching depth was reverted, and an attempt is made to catch `std::bad_alloc`. If this exception is raised, we `Prune()`, then re-throw Qrack's custom `bad_alloc` exception type.

**Full Changelog**:
https://github.com/unitaryfund/qrack/compare/vm6502q.v9.15.0...vm6502q.v9.15.8
https://github.com/unitaryfund/pyqrack/compare/v1.37.0...v1.38.0

sha1sum results:
1675c126c244b4e4de9d769e05f3338a25168eac dist/pyqrack-1.38.0-py3-none-macosx_13_0_x86_64.whl
a8960d25ade5ce8215e1e7926b81128d543a83d8 dist/pyqrack-1.38.0-py3-none-macosx_14_0_arm64.whl
0cfcfde6138d80200e10483f2256a7da3e940a78 dist/pyqrack-1.38.0-py3-none-macosx_15_0_arm64.whl
e05678e86f2847a2a2c4a2ad3eafaa487ca4c9a4 dist/pyqrack-1.38.0-py3-none-manylinux_2_31_x86_64.whl
0ff4ce2a835bd228209354faef9a3cf9cfe363a1 dist/pyqrack-1.38.0-py3-none-manylinux_2_35_x86_64.whl
1f5a03706e28c8048ff3c535cae07431d6b5f4e0 dist/pyqrack-1.38.0-py3-none-manylinux_2_39_x86_64.whl
171b3cf836b5e5ecd0dba6c5373309551c141b32 dist/pyqrack-1.38.0-py3-none-win_amd64.whl
7ce6ee06c315aba5f6bbff000417b0a997606401 dist/pyqrack-1.38.0.tar.gz
4fa193d21c2aa9ca21b5ea42a11a873dce555631 dist/pyqrack_cpu-1.38.0-py3-none-macosx_13_0_x86_64.whl
3e0c78fcd30a5f3110df054417d05ddaea28408f dist/pyqrack_cpu-1.38.0-py3-none-manylinux_2_31_x86_64.whl
0e9e98f467bdbc1869ec8ebc0f1bf64e2faa0afd dist/pyqrack_cpu-1.38.0-py3-none-manylinux_2_35_x86_64.whl
a94d4ee56e4e634ce5f54b45cfbc7de4c1d52491 dist/pyqrack_cpu-1.38.0-py3-none-manylinux_2_39_x86_64.whl
3721d877587c80b95e54911f973db2fb75049bb1 dist/pyqrack_cpu-1.38.0-py3-none-win_amd64.whl
1ff5593e43b80478f05c36d018c4a320a39bef00 dist/pyqrack_cpu-1.38.0.tar.gz
a5c9618566337083fe447501729a8bcea439ae5a dist/pyqrack_cuda-1.38.0.tar.gz

1.37.0

In the course of refactoring, recently, WrathfulSpatula failed to test `QBdt` (QBDD), and, likely, a long-standing pattern of free-then-use-_copy_ became a use-after-free anti-pattern. As can be seen in the diff and tests of the affected versions, it seems unlikely that this very tight pattern of use-after-free would not go uncaught by the runtime, ever. This has been fixed.

Experimental support for "automatic circuit elision" (ACE) interoperability with `QBdt` has also been added. (While `QBdt` works in principle with SDRP, for example, the stability of this interoperability with high SDRP settings has historically been limited, maybe due to complex recursive behavior wholly on stack, by design of `QBdt`.)

(To break it down simply and colloquially: I realize these release notes sound like "WTF?" if you haven't used Qrack or `QBdt` before, but the long-and-short is, I've fixed the regression that broke `QBdt` in recent releases, since refactoring for general best-practice, and the ACE interoperability with `QBdt` should work in principle, but the "instability" with _approximation techniques_ is nothing new for `QBdt`, though you're free run stable ideal `QBdt` simulation or experiment with combining it with approximation techniques, like status quo. You might want to use small-magnitude approximation parameters with `QBdt`, per usual.)

**Full Changelog**:
https://github.com/unitaryfund/qrack/compare/vm6502q.v9.14.1...vm6502q.v9.15.0
https://github.com/unitaryfund/pyqrack/compare/v1.36.1...v1.37.0

sha1sum results:
50eefc625a9cf3d17297dcde9566c392fb9220d3 pyqrack-1.37.0-py3-none-macosx_13_0_x86_64.whl
fe99a7aa80174bca7a03e2add27d78db5e918d25 pyqrack-1.37.0-py3-none-macosx_14_0_arm64.whl
c572852622ab6d70b1ac52a608d1e6f11874b995 pyqrack-1.37.0-py3-none-macosx_15_0_arm64.whl
a03db951e4efa83f8fa92cacc18ee2570e2c3054 pyqrack-1.37.0-py3-none-manylinux_2_31_x86_64.whl
5ac1796abb7a1563b74ebfaf9e3ef6662f929dd5 pyqrack-1.37.0-py3-none-manylinux_2_35_x86_64.whl
69daa915f76789252ef490fd9d61360d96d3a1cd pyqrack-1.37.0-py3-none-manylinux_2_39_x86_64.whl
e103ba234a23f953f4fc6cdf44d4b6364f78bddd pyqrack-1.37.0-py3-none-win_amd64.whl
5f5d9f8db6dc3e9afcb67acb49604dd37c73e2b7 pyqrack-1.37.0.tar.gz
f8469db5db5f697e043898038a09617673452b9d pyqrack_cpu-1.37.0-py3-none-macosx_13_0_x86_64.whl
0dfecb054d13adfe2552ca8e3525e65213429a01 pyqrack_cpu-1.37.0-py3-none-manylinux_2_31_x86_64.whl
96d9392cf0787501ecb68527d7e42fd98b5b3241 pyqrack_cpu-1.37.0-py3-none-manylinux_2_35_x86_64.whl
c4c7fa393f38376601d39ea1444d94c73f17e83d pyqrack_cpu-1.37.0-py3-none-manylinux_2_39_x86_64.whl
7f8446137cbe9f5d31da27adb77d708460d9cc11 pyqrack_cpu-1.37.0-py3-none-win_amd64.whl
dfa98c58857ccab34b49768685799e4c56a00096 pyqrack_cpu-1.37.0.tar.gz
54389c5dff34575405b8b535a0c2d2ecfb1f8c99 pyqrack_cuda-1.37.0.tar.gz

1.36.1

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**:
https://github.com/unitaryfund/qrack/compare/vm6502q.v9.14.0...vm6502q.v9.14.1
https://github.com/unitaryfund/pyqrack/compare/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

1.36.0

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**:
https://github.com/unitaryfund/qrack/compare/vm6502q.v9.13.37...vm6502q.v9.14.0
https://github.com/unitaryfund/pyqrack/compare/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

1.35.10

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**: https://github.com/unitaryfund/pyqrack/compare/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

1.35.9

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
* Update for new Qiskit by WrathfulSpatula in https://github.com/unitaryfund/pyqrack/pull/32

**Full Changelog**:
https://github.com/unitaryfund/qrack/compare/vm6502q.v9.13.33...vm6502q.v9.13.37
https://github.com/unitaryfund/pyqrack/compare/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

Page 1 of 58

Links

Releases

Has known vulnerabilities

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.