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()`.