v0.16
This release adds a new function for exact recompilation and decomposition of circuits, as well as the ability to customise QuESTlink's internal numerical precision, and a new named phase function.
New features
-
RecompileCircut[]
can transpile a given circuit, containing any unitary QuESTlink gates, into a restricted gate set, such as"SingleQubitAndCNOT"
and"CliffordAndRz"
. -
Variable precision! When compiling QuESTlink, the
PRECISION
flag of the makefile can now be adjusted to change whether the entire simulator and API makes use of single, double or quad floating-points. This can be useful for checking the sensitivity of a result to numerical artefacts. -
ApplyPhaseFunc[]
now accepts new method"ScaledInverseShiftedWeightedDistance"
which describes phase functions of the formcoeff/sqrt(fx (x1-x2-dx)^2 + fy (y1-y2-dy)^2 + ...)
Bug fixes
- patched
GetCircuitGeneralised[]
which previously incorrectly handled control qubits, producingU
gates of matrices with incorrect dimensions, raising an error in subsequent QuESTlink functions. - patched
SimplifyCircuit[]
which previously incorrectly merged adjacentU
gates on same-target general unitaries; the order of their matrices in the product was reversed.