while going through the documentation i stared at this section for a while:
i searched for it and i think and please correct it me it’s safe to say that the displacement operator can be made first according to this paper they say in the intro that someone had derived it this way
am i missing something or not?
@Maria_Schuld @josh @Christian_Gogolin
The easiest thing is to try it out in PennyLane:
import pennylane as qml
from pennylane import numpy as np
num_subsystems = 1
dev = qml.device('default.gaussian', wires=num_subsystems)
a = 0.2
r = 0.4
phi = 0
@qml.qnode(dev)
def circuit1():
qml.DisplacedSqueezedState(a, r, phi, wires=[0])
return qml.expval.MeanPhoton(wires=[0])
@qml.qnode(dev)
def circuit2():
qml.Squeezing(r, phi, wires=[0])
qml.Displacement(a, 0, wires=[0])
return qml.expval.MeanPhoton(wires=[0])
@qml.qnode(dev)
def circuit3():
qml.Displacement(a, 0, wires=[0])
qml.Squeezing(r, phi, wires=[0])
return qml.expval.MeanPhoton(wires=[0])
print(circuit1())
print(circuit2())
print(circuit3())
You will see that this prints
0.2087174731524224
0.2087174731524224
0.1866906317171112
which means that the order of squeezing and displacement does matter.
2 Likes
the replacement itself affects the training a lot too
thanks for explanation 