Qualtran icon indicating copy to clipboard operation
Qualtran copied to clipboard

Add support for multi-indexed data loading for both QROM and SelectSwapQROM

Open tanujkhattar opened this issue 2 years ago • 5 comments

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.

tanujkhattar avatar Nov 14 '22 06:11 tanujkhattar