CubicPhase gate

The CubicPhase gate in the CV model is described as

What does x hat signify?

Hey @sophchoe! \hat{x} here means the position operator.

I understand that. However, your Strawberry Fock device is based on the phase space representation with number basis |0>, |1>, … |n> which are functions of both the position and momentum variables.

How can you isolate just the position from number basis?

Good question! If I understand correctly, the position operator can be written as a linear combination of creation and annihilation operators:

\hat{x} \propto \hat{a} + \hat{a}^\dagger

where, for example,

\hat{a}^\dagger \vert {n}\rangle = \sqrt{n+1} \vert {n+1} \rangle.

Now, the CubicPhase gate is just a function of the position operator, which also means it’s a function of the creation and annihilation operators. In that sense, the CubicPhase gate’s action on number-basis states is well-defined!

@isaacdevlugt

I didn’t know the first expression. Now it makes perfect sense!!! Thank you.

1 Like

@isaacdevlugt

NIST is active with quantum memory research. Adding the memory component to Xanadu’s QPU will greatly help with complex operational circuits. (I apologize if I’ve posted this to Catalina already.)

1 Like

No worries! We love to see it!

@isaacdevlugt

I would love to see Xanadu’s QPUs equipped with memory so that we can carry out more complex quantum operations applied to a vast range of real life problems.

I think because of the existing communications infrastructure, photonics is the choice for quantum computing.

Thank you so much for what you guys are doing!!!

1 Like

Hi @sophchoe.

Actually, Borealis uses quantum memory! We can hold our quantum states within a fiber optics cable for a certain length of time, and that is what memory is all about!

Wow! I will reread the paper.

From my understanding, in each time loop the same operation is propagated to all the qumodes at once. I didn’t see that we can perform different operations on individual qumodes. Is my understanding incorrect?

Hi @sophchoe, the gates are the same but the parameters in those gates can be set up independently for each qumode.

As you can see from the advanced Borealis demo, the parameters for each rotation gate and beamsplitter gate (phi_0, alpha_0, phi_1, alpha_1, phi_2, alpha_2) are set as a list which has the same size as the number of modes.

In the advanced demo they’re set as random values within a specific range, but you could set them manually too.

Thank you for the clarification!!! It was my oversight.

It seems like I need an access token to connect to the Xanadu cloud. Where would I request it?

Hi @sophchoe,

If you want to run the notebook straight on Xanadu Cloud you can follow option 1 here. If you prefer to run the notebook locally you can follow option 2.

Great!

Thank you so much, @CatalinaAlbornoz!!!

For data encoding on Borealis, would you use Sgates? Would that allow us to encode up to 216 variables?

Hi @sophchoe!

We only have 3 available options for the squeezing: low, high, and medium. If you print device.certificate["squeezing_parameters_mean"] you can see the specific values for each. One encoding option would be to encode your data by applying a different rotation angle on the first rotation gate. You can also try to use the first beamsplitter to encode data. I’m not sure how that would look like but you can always try both options and then decide.

The maximum number of modes you can use is about 300. If each of your 216 variables can be converted to a real number between -pi/2 and pi/2, then encoding it as a rotation would seem feasible.

Please let me know if this is clear! If not I can try to build a small example.

@CatalinaAlbornoz

This clarifies my question. I had the same idea.

As there are only beamsplitters and rotation gates, and is only a limited number of gate operations that can be applied, I don’t have any specific plan to implement any circuit. I just wanted to understand Borealis better.

Thank you so much!