# Resources for QRAM implemented as a subroutine for quantum algorithm

I am currently working on a project on a higher version of amplitude amplification and for that we want to store the initial state (which will be some sort of superposition) into a QRAM. Now we want to simulate the working of the algorithm and I am supposed to make a QRAM, but most of the papers which use QRAM as a subroutine have not shown implementation, furthermore the bucket brigade Quantum RAM is actually not able to give out a superposition of Quantum States which have been stored into a QRAM.

Ideally we want the QRAM to work something like this,

$$\sum_{j=0}^{2^q-1} \alpha_j | \text{adr}_j \rangle|0\rangle \xrightarrow{\text{QRAM}} \sum_{j=0}^{2^q-1}\alpha_j |\text{adr}_j\rangle|m_j\rangle$$

Anyone who has any idea which QRAM will be able to query out a superposition of states stored in memory cells, please provide some reference. Any help is greatly appreciated!!

• Where is $m_j$ in the input state? The way you've written it, it's like the QRAM is preparing it instead of retrieving it. Did you actually mean to write the input state as $|adr_j\rangle|0\rangle|m_0\rangle|m_1\rangle \dots |m_{2^q-1}\rangle$? Sep 30 at 18:17
• Also you didn't include the write operation. (If you don't need to write, you want a QROM not a QRAM. QROM is cheaper.) Sep 30 at 18:20
• @CraigGidney So yes I agree that we can use a QROM too, but due to some reason the prof I am working under wants QRAM(perhaps at a later stage we will be modifying the states too). But If you have any ideas how it can be done using QROM, please go aheah. The notation I have used can be seen in a lot of papers(arxiv.org/abs/2002.09340 one such paper) and the way I see it is, you input the superposition of address states and a 0 state for output qubit. But once it passes through the QRAM, the address qubits remain the same whereas the memory qubits contain the information in the cell. Sep 30 at 18:26
• Your prof explicitly said QROM was not good enough? It's common for people to use "QRAM" to ambiguously refer to a few different things, including QROM. Sep 30 at 18:30
• I totally get your point. If you have any idea how to query out a superposition of the states stored in QRAM. Please let me know Oct 1 at 4:43