Skip to main content
12 events
when toggle format what by license comment
Mar 4 at 23:41 comment added Craig Gidney @user1936752 there is only REPEAT. Generally you generate circuits using a programming language so you would write a loop in that language to generate the repetitive instructions.
Mar 4 at 21:20 comment added user1936752 @CraigGidney Is REPEAT the only loop that is allowed while building a circuit? Can one have a for loop with something like CNOT X(i) X(i+1) with incrementing i in some range?
Oct 20, 2021 at 22:28 vote accept unknown
Oct 20, 2021 at 21:36 comment added Craig Gidney @unknown For example, generate a circuit with 100 rounds, and copy out the body of the REPEAT block. That's the stabilizer measurements. Do it once (without the detectors) then again (with the detectors). Add noise between the two. Then put noiseless initialization beforehand and noiseless measurement afterward, with an observable checking the end measurement agrees with the init. That's the circuit you want.
Oct 20, 2021 at 21:34 comment added Craig Gidney @unknown For modelling a communication channel where only the transmission is noisy, you will need to do something a bit custom. You want to measure the stabilizers once on the sender, and once at the receiver, with noise applied to the data qubits in between. You use comparisons between the before/after measurements as detectors, and use knowledge of the transmitted state vs noiseless data measurement at the end as the observable. Stim's generated circuits have pieces you can build from (e.g. blocks of instructions measuring all the stabilizers), but you have to customize them a bit.
Oct 20, 2021 at 20:56 comment added unknown I want to make sure I understand the setup. For a first step I just want to model the "channel", so my understanding is that I should get the same exact performance with one measurement or several...maybe I'm still confused.
Oct 20, 2021 at 20:48 comment added Craig Gidney @unknown It depends on what you're testing. I would not consider that to be okay, because real computations have to preserve information over time (over multiple rounds) instead of smashing it immediately after it's created. Using a single round reduces the decoding problem from 3d to 2d, which affects things like the threshold. It puts the entire problem very close to time boundaries, so you're dominated by boundary effects and don't see bulk effects. But maybe you're purposefully simplifying the situation to get a hold on the problem.
Oct 20, 2021 at 20:45 comment added unknown since I don't have measurement noise now, setting rounds=1 should be ok right?
Oct 20, 2021 at 20:43 history edited Craig Gidney CC BY-SA 4.0
added 140 characters in body
Oct 20, 2021 at 20:43 comment added Craig Gidney @unknown No. A code with 100 stabilizers and 2 rounds will measure each of the 100 stabilizers twice via the ancillary measurement qubit associated with that stabilizer. There is also a third implicit measurement of the stabilizer from the final measurement of the data qubits.
Oct 20, 2021 at 20:32 comment added unknown does the number of rounds need to match the number of stabilizers? so it would be code dependent? what happens if I enter more or less than that?
Oct 20, 2021 at 20:18 history answered Craig Gidney CC BY-SA 4.0