Currently working on some quantum arithmetic and was wondering if we have a better constant factor for a linear depth incrementer.

As an example (and the best I could currently find), Craig Gidney proposes an n-bit incrementer than scales with '32n' here.

The article is from 2015 and will be 10 years old soon. I was wondering if anyone has brought down the constant factor since then.


2 Answers 2


"Lower bounds on the non-Clifford resources for quantum computations " proves that producing an $n$-qubit $C^nZ$ state requires consuming $n \pm O(1)$ CCZ states (a CCZ state is a magic state you can use to perform Toffoli gates). One application of an $n$-qubit incrementer can produce a $C^nZ$ state, therefore it must use $n \pm O(1)$ Toffoli gates (or some equivalently costly non-Clifford resource).

An incrementer that achieves a cost of $n \pm O(1)$ CCZ states is to take the adder from "Halving the cost of quantum addition " and prepare its input register to be the state $|1\rangle$. However, this does use $O(n)$ clean ancillae. So the question is really more about how few ancillae can you use for a given cost, as opposed to just the raw cost. Papers that tried to minimize space and had incrementers were https://arxiv.org/abs/1611.07995 and https://arxiv.org/abs/1706.07884 .


Using the fact that circulant matrices are diagonalizable by Fourier transform, and the unitary of incrementer is circulant, you can come up with the following circuit which has depth less than $16n$ for $n < 100$ and uses no ancillas

enter image description here

where $\text{QFT}$ is the Quantum Fourier transform and $P$ is the phase gate

$$P(\lambda) = \begin{pmatrix} 1 & 0 \\ 0 & e^{i\lambda} \end{pmatrix}$$

If, however, using ancilla qubits is an option, you can use the adder from A logarithmic-depth quantum carry-lookahead adder to build incrementer that has $O(\log n)$ depth using $O(n)$ ancillas.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.