Multiple T gates applied to GKP states

Hi all,

I have been looking at the GKP states tutorial, specifically part 3 (Studying realistic bosonic qubits using the bosonic backend — Strawberry Fields). The last subsection explains how to perform a T gate, which uses an additional ancillary magic state. My question is how to apply two or more T gates consecutively? (I know T^2=S, T^4 = \sigma_z and there’s a separate implementation of S gate from the paper Encoding a qubit in an oscillator, but let’s say I want to apply T multiple times)

One very intuitive way is to use multiple ancillary magic states, but that will create more modes and let’s say, the program crashes for 10 modes. Since the ancillary state, after being measured, is set to the vacuum state - is there a way to reuse it to recreate the ancillary magic state? One way that I have tried is to run the circuit after each T gate is applied, then use state.reduced_bosonic(0) to get the weights, means, and covs to reset a new program with sf.ops.Bosonic(), but this method also takes a lot of computational costs, and I was also unable to run with 3 T gates. Please let me know if there is any way to do this efficiently.



Hi @vpn, it’s good to see you here in the forum!

I don’t know of an efficient way to do that, unfortunately. The example you describe is very computationally expensive. We know that applying many T gates increases the complexity of the circuit.