-
Notifications
You must be signed in to change notification settings - Fork 165
Description
Consider unitary applyQubitProjector. This unitary might appear in canonical circuits (¯\_(ツ)_/¯) but certainly appears when Trotterising the Linbladian propagator (as currently being implemented) since projectors are natural jump operators. It requires a bespoke backend so it is prudent to expose as a unitary in the API.
Since applyMultiQubitProjector().
It may be tempting to optimise applyQubitProjectorGadget upon density matrices by performing it in a single enumeration of the state (like applyQubitProjector) rather than two which in-turn effect
In summary, the multi-qubit functions which need a single new backend (postMultiply will simply re-target the projector) are:
applyMultiQubitProjectorGadget()multiplyMultiQubitProjectorGadget()postMultiplyMultiQubitProjectorGadget()
The interface should also expose single-qubit convenience functions which merely call above:
applyQubitProjectorGadget()multiplyQubitProjectorGadget()postMultiplyQubitProjectorGadget()