Qualtran
Qualtran copied to clipboard
Add support for multi-indexed data loading for both QROM and SelectSwapQROM
Unary iteration now supports writing nested for-loops by iterating over multiple qubit registers, each of different lengths. This support should be extended to QROM so that we can load, for example, data[i][j]
in the target register when selection registers store i
and j
.
- For QROM, this should be trivial to extend.
- For SelectSwapQROM, we need to choose a parameter $k_{i}$ for each nested for-loop and then load $N_{i} / k_{i}$ elements using QROM and do swaps correctly for each loaded batch. See Appendix G of https://arxiv.org/pdf/2011.03494.pdf for more details.