Pyqrack

Latest version: v1.28.0

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

Scan your dependencies

Page 20 of 45

1.6.1

Andrea's model for fidelity estimation,

F = Π (1-ɛ_j) (for j events where ɛ less than SDRP threshold),

discussed in Qrack release v8.3.0, works. Dan's confusion was largely over definition and convention. The results it produces are usually very numerically similar to v8.3 and v8.4, but the model makes more theoretical sense.

Users should note, it's now possible to build from source based on either OpenCL and CUDA, such that true HPC scale simulation might benefit from NVLink with a `QEngineCUDA` source build. (However, to be clear, this requires the user to build and install from source, for now.)

1.6.0

There's no particular reason why SDRP level can't be changed mid-circuit. Several historical design issues made this difficult, in the past, but these are no longer relevant as of late. This is particularly desirable given the recent addition of automatic fidelity calculation when using SDRP in QUnit.

Therefore, this release adds `SetSdrp()` to the `QInterface` API, and it also exposes it to the shared library interface. PyQrack consumes it as `set_sdrp()`.

1.5.2

QUnit optimizes arithmetic logic operations in a custom way; this optimization failed to map qubits properly under QUnit, leading to out-of-bounds exceptions and operations on qubits that weren't intended. This has been fixed.

1.5.1

Unrealized for a long time, `measure_pauli()` previously attempted to pass the Pauli operator enumeration list to the C API as a `c_ulonglong` rather than `c_int`. This release fixes the method.

1.5.0

This release adds `get_unitary_fidelity()` and `reset_unitary_fidelity()` to the simulator API.

It was noted by Andrea Mari of Unitary Fund that, from first principles, for a discarded probability "`ɛ`" in any rounding event, the worst case limit for fidelity loss from "Schmidt decomposition rounding parameter" ("SDRP") methods in `QUnit` should go like

F = Π (1-ɛ_j) (for j events where ɛ less than SDRP threshold).

Implementing this model, Daniel Strano found it to be very pessimistic, but through trial and error it was noticed that

F = Π (1-ɛ_j / 2)^(1/2) (for j events where ɛ less than SDRP threshold)

was very close to "gold standard" results. Collecting tens of thousands of data points on different circuit widths, depths, and SDRP levels, the second model was found to explain >99% of variance among gold standard results, (without a theoretical argument, for now, explaining why this should be close to or exactly the average case behavior).

More than 99% of variance was explained for random circuits that are basically a "nearest-neighbor quantum volume" variant; other cases might not be as well described. This calculation is done automatically by `QUnit`, and the result can be accessed through `get_unitary_fidelity()`, or the calculation might be reset to identically 1 fidelity by `reset_unitary_fidelity()`.

1.4.3

The Qiskit "cp" gate was incorrectly parsed by PyQrack. This has been fixed, (and an identical bug in the Qiskit QrackProvider is being fixed there, as well).

Page 20 of 45

Links

Releases

Has known vulnerabilities

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.