A Logarithmic Depth Quantum Carry-Lookahead Modulo $(2^n-1)$ Adder
<|reference_start|>A Logarithmic Depth Quantum Carry-Lookahead Modulo $(2^n-1)$ Adder: Quantum Computing is making significant advancements toward creating machines capable of implementing quantum algorithms in various fields, such as quantum cryptography, quantum image processing, and optimization. The development of quantum arithmetic circuits for modulo addition is vital for implementing these quantum algorithms. While it is ideal to use quantum circuits based on fault-tolerant gates to overcome noise and decoherence errors, the current Noisy Intermediate Scale Quantum (NISQ) era quantum computers cannot handle the additional computational cost associated with fault-tolerant designs. Our research aims to minimize circuit depth, which can reduce noise and facilitate the implementation of quantum modulo addition circuits on NISQ machines. This work presents quantum carry-lookahead modulo $(2^n - 1)$ adder (QCLMA), which is designed to receive two n-bit numbers and perform their addition with an O(log n) depth. Compared to existing work of O(n) depth, our proposed QCLMA reduces the depth and helps increase the noise fidelity. In order to increase error resilience, we also focus on creating a tree structure based Carry path, unlike the chain based Carry path of the current work. We run experiments on Quantum Computer IBM Cairo to evaluate the performance of the proposed QCLMA against the existing work and define Quantum State Fidelity Ratio (QSFR) to quantify the closeness of the correct output to the top output. When compared against existing work, the proposed QCLMA achieves a 47.21% increase in QSFR for 4-qubit modulo addition showcasing its superior noise fidelity.<|reference_end|>
@article{gaur2024a,
    title={A Logarithmic Depth Quantum Carry-Lookahead Modulo $(2^n-1)$ Adder},
    author={Bhaskar Gaur, Edgard Mu~noz-Coreas, Himanshu Thapliyal},
    journal={arXiv preprint arXiv:2408.01002},
    year={2024},
    archivePrefix={arXiv},
    eprint={2408.01002},
    primaryClass={quant-ph cs.AR}
}