Closed WrathfulSpatula closed 3 years ago
In fact, you also should not be affected if QPager
is not in your layer stack, when directly using PhaseParity()
.
Of course, it's after I tag the PyQrack release that I catch the last edge case in QPager::PhaseParity()
. Sorry about that.
I will tag a second patch for PyQrack, later today, with 00d5b8d included. For now, the safest way to operate is building from the head of main
for Qrack, for use with PyQrack.
Sorry for the rapid-fire release iterations on this. (I am basically a sole developer, with limited testing and development resources, and this is a somewhat difficult case to test.)
PyQrack v0.5.2 introduced a problem with invalid std::future
instances. However, in QPager
, basically no void
return type simulator method should be dispatched in a std::future
at all. This was a failure of oversight, in the original XMask
and ZMask
implementations. For the whole family of related methods, std::future
is not necessary and has been totally removed. I'm iterating immediately PyQrack v0.5.3, with apologies for any headaches caused, but this issue finally appears to be satisfactorily resolved.
QPager::PhaseParity()
onmain
at the moment is bugged for all cases except equivalent toZMask()
. ParallelZ
gates happen to add up toPhaseParity()
for angle π, but not general angles, and this is how paged qubits are handled inQPager::PhaseParity()
.PyQrack v0.5.0 isn't affected, on PyPi. If you don't use
PhaseParity()
directly, yet, you should not be affected.