ApplyAnd operation
Namespace: Microsoft.Quantum.Canon
Package: Microsoft.Quantum.Standard
Inverts a given target qubit if and only if both control qubits are in the 1 state, using measurement to perform the adjoint operation.
operation ApplyAnd (control1 : Qubit, control2 : Qubit, target : Qubit) : Unit is Adj + Ctl
Description
Inverts target
if and only if both controls are 1, but assumes that
target
is in state 0. The operation has T-count 4, T-depth 2 and
requires no helper qubit, and may therefore be preferable to a CCNOT
operation, if target
is known to be 0. The adjoint of this operation
is measurement based and requires no T gates.
The controlled application of this operation requires no helper qubit,
2^c
Rz
gates and is not optimized for depth, where c
is the number
of overall control qubits including the two controls from the ApplyAnd
operation. The adjoint controlled application requires 2^c - 1
Rz
gates (with an angle twice the size of the non-adjoint operation), no
helper qubit and is not optimized for depth.
Input
control1 : Qubit
First control qubit
control2 : Qubit
Second control qubit
target : Qubit
Target auxiliary qubit; must be in state 0
Output : Unit
References
- Cody Jones: "Novel constructions for the fault-tolerant Toffoli gate", Phys. Rev. A 87, 022328, 2013 arXiv:1212.5069 doi:10.1103/PhysRevA.87.022328
- Craig Gidney: "Halving the cost of quantum addition", Quantum 2, page 74, 2018 arXiv:1709.06648 doi:10.1103/PhysRevA.85.044302
- Mathias Soeken: "Quantum Oracle Circuits and the Christmas Tree Pattern", Blog article from December 19, 2019 (note: explains the multiple controlled construction)
Feedback
Submit and view feedback for