Sparse probability rounding parameter (SPRP) in simulator API
Locally equivalent to the global QRACK_SPARSE_TRUNCATION_THRESHOLD environment variable setting, we expose "sparse probability rounding parameter" (SPRP) in the shared library API and on QrackSimulator.set_sprp(p), for convenience of per-simulator localized control.
Note that this really isn't another fidelity-tradeoff approximation knob to tune: if one sets a memory limit on maximum sparse amplitudes retained, it's theoretically always preferable in the ideal to retain all nonzero amplitudes until the memory-limit truncation kicks in. However, this isn't the most performant way for the algorithm to proceed, in terms of time-to-solution, and gentle tuning of "SPRP" might help "smooth out" sensitivity to floating-point error compounding, in some cases.
For random circuit sampling (RCS), we've found empirically that, for connectivity order parameter "z" and qubit count "n," the optimal SPRP setting is approximately 1 / (z * (2 ** n)). In other words, on a square nearest-neighbor grid layout of qubits, each qubit directly connects to 4 others, so z=4 (and SPRP should be 1 / (4 * (2 ** n)); for fully-connected RCS, each qubit of the n in the circuit connects to n-1 other qubits, so z=n-1 (and ideal SPRP setting is approximately 1 / ((n - 1) * (2 ** n))).
Full Changelog:
unitaryfoundation/qrack@vm6502q.v10.2.0...vm6502q.v10.3.0
v1.85.0...v1.86.0
sha1sum results:
5f1df859fa3fff04947737e8ba447d9ab44e52eb pyqrack-1.86.0-py3-none-macosx_14_0_arm64.whl
2d36a79126d7f56313be6aed88c0485a3dde4fd3 pyqrack-1.86.0-py3-none-macosx_15_0_arm64.whl
23369283dc6f36f0ccd2ca5780cf8196436ee03d pyqrack-1.86.0-py3-none-macosx_15_0_x86_64.whl
842febb892d01d946a2b0fd9a34acfe10d5b4e62 pyqrack-1.86.0-py3-none-manylinux_2_35_x86_64.whl
3f009aa11861ba72bdb7ece18841416fe206d80f pyqrack-1.86.0-py3-none-manylinux_2_39_x86_64.whl
c03dcb48731f076b8a452bc17c841342fbaad9ae pyqrack-1.86.0-py3-none-win_amd64.whl
cf8736604f7f37be4bf83f643f2958b711804120 pyqrack-1.86.0.tar.gz
f7a141cf0842b5c99188360c36a3a85e12e1ab46 pyqrack_complex128-1.86.0-py3-none-macosx_14_0_arm64.whl
8ca64ebb2e2131b084931dce78aeebbddd784cea pyqrack_complex128-1.86.0-py3-none-macosx_15_0_arm64.whl
4e3745f2e5f500b61ea7599f1ea187026778e902 pyqrack_complex128-1.86.0-py3-none-macosx_15_0_x86_64.whl
ac817af21d7533cb58f46abebd08df729a09cfbf pyqrack_complex128-1.86.0-py3-none-manylinux_2_35_x86_64.whl
d6e58c9ea56baa6e09335f5c69ffa1f4be30c626 pyqrack_complex128-1.86.0-py3-none-manylinux_2_39_x86_64.whl
4f717ed03ecc2fe9f20f2a2f0c58a0c653ac896f pyqrack_complex128-1.86.0-py3-none-win_amd64.whl
1a83e85ac0b4cf6621b24020a9eb543ffbf1dd2d pyqrack_complex128-1.86.0.tar.gz
2ab45fb4abc02f50b71750e4fcc5d749611f278d pyqrack_cpu-1.86.0-py3-none-macosx_14_0_arm64.whl
173fd936a516dd539351a25c8225be62bdd8671b pyqrack_cpu-1.86.0-py3-none-macosx_15_0_arm64.whl
17975b7752ffd41a31e980248802948dd81b581d pyqrack_cpu-1.86.0-py3-none-macosx_15_0_x86_64.whl
f24db0720bbc8771653e9063e63cb3716e3d5b25 pyqrack_cpu-1.86.0-py3-none-manylinux_2_35_x86_64.whl
e3507069ac219c40e714a40e174ff427fcad35c0 pyqrack_cpu-1.86.0-py3-none-manylinux_2_39_x86_64.whl
878b067d54d3bac1efb1098d8b8b8a051a51d5ad pyqrack_cpu-1.86.0-py3-none-win_amd64.whl
14603fd259a3faf5f736361913f8f62fa5e1b295 pyqrack_cpu-1.86.0.tar.gz
6e3c781c3295b3b0577f521bc0918d7818b99798 pyqrack_cpu_complex128-1.86.0-py3-none-macosx_14_0_arm64.whl
69388c5af0780e88232f539ac72f79b2c3e29cc4 pyqrack_cpu_complex128-1.86.0-py3-none-macosx_15_0_arm64.whl
89345893a08d90bdd75bdb669762b90b942f5892 pyqrack_cpu_complex128-1.86.0-py3-none-macosx_15_0_x86_64.whl
1100458f6f6a0c0626eb32dab17004987d89e245 pyqrack_cpu_complex128-1.86.0-py3-none-manylinux_2_35_x86_64.whl
f47e5651093337eb91ac545d74f886ea0205a32f pyqrack_cpu_complex128-1.86.0-py3-none-manylinux_2_39_x86_64.whl
9d0b864b78637db01acd1d6e82fac3a1d28af41e pyqrack_cpu_complex128-1.86.0-py3-none-win_amd64.whl
97e07a308294975344c32e0c8ba74b1612b85678 pyqrack_cpu_complex128-1.86.0.tar.gz
5c1bb1ba6861265949eed8283f54b2b4f8c4c3f6 pyqrack_cuda-1.86.0.tar.gz
a30a658ef05de9862974d6a2bc7e10557b2b11b3 pyqrack_cuda_complex128-1.86.0.tar.gz