The major change in this release is that `QBdt` ("quantum binary decision tree") node scale equality checks have been relaxed from a rounding "epsilon" like `abs(x-y) <= REAL1_EPSILON` to `norm(x-y) <= FP_NORM_EPSILON`. Since Qrack's decision diagram methods always normalize branch pair scales to `1`, this latter and new rounding epsilon was _always_ better motivated in consistency with the conventions and theory of floating-point error in Qrack. (It considers two node scales to be identically identically `0` if the norm of their difference is less than the difference between floating-point `1` value and the next representable value, depending on floating-point precision build option. The old version considered two node scales to be equal only if their difference was less than 2^-33 for 32-bit or 2^-65 for 64-bit precision, which is a much smaller "epsilon.") However, before recent developments, `QBdt` was less stable and mature, and the proper epsilon led to segmentation faults and other errors, with the recursive tree structure being logically sensitive to floating-point error.
Gate fusion has also been slightly improved, for `QBdt`.
File SHA-1 sums:
a67e69c9a832fae11edd1c9a0f7ed8b19022d902 pyqrack-1.20.2-py3-none-any.whl
0c124590530b362b9910c94a1dae98a646c87140 pyqrack-1.20.2-py3-none-linux_aarch64.whl
a69690c119f97aad487de10472e2bf08559ebe72 pyqrack-1.20.2-py3-none-linux_armv7l.whl
6abb37c281681097208390f282685e2ab84ef11c pyqrack-1.20.2-py3-none-macosx_10_4_x86_64.whl
f876f0e11f514ee588acdfccb6855ba9216b7fef pyqrack-1.20.2-py3-none-manylinux2014_x86_64.whl
805a42c8163a4c1f16e6a9fe341fed5e1c26ef2a pyqrack-1.20.2-py3-none-manylinux_2_35_x86_64.whl
8ae655291292c2eaccd488c2a801c1f9fc6a756d pyqrack-1.20.2-py3-none-win32.whl
494ff61970dec5e0242133b75d022402afad65ac pyqrack-1.20.2-py3-none-win_amd64.whl
dab64034b74d2ee70853535e6092b5033fe3662a pyqrack-1.20.2.tar.gz