# Operations¶

Strawberry Fields supports a wide variety of photonic quantum operations — including gates, state preparations and measurements. These operations are used to construct quantum programs, as in the following example:

with prog.context as q:
Fock(2)       | q[0]
Fock(3)       | q[1]
BSgate()      | (q[0], q[1])
MeasureFock() | q[0]

This program uses Fock state preparation (Fock), beamsplitters (BSgate), and a photon number resolving detector (MeasureFock).

Below is a list of all quantum operations supported by Strawberry Fields.

Note

In the Strawberry Fields we use the convention $$\hbar=2$$ by default, however this can be changed using the global variable sf.hbar.

See Conventions and formulas for more details.

## Single-mode gates¶

 Dgate(a[, phi]) Phase space displacement gate. Xgate(x) Position displacement gate. Zgate(p) Momentum displacement gate. Sgate(r[, phi]) Phase space squeezing gate. Rgate(theta) Rotation gate. Pgate(s) Quadratic phase gate. Vgate(gamma) Cubic phase gate. Fourier gate.

## Two-mode gates¶

 BSgate([theta, phi]) Beamsplitter gate. MZgate(phi_ex, phi_in) Mach-Zehnder interferometer. S2gate(r[, phi]) Two-mode squeezing gate. CXgate([s]) Controlled addition or sum gate in the position basis. CZgate([s]) Controlled phase gate in the position basis. CKgate(kappa) Cross-Kerr gate.

## State preparation¶

 Vacuum() Prepare a mode in the vacuum state. Coherent([a, p]) Prepare a mode in a coherent state. Squeezed([r, p]) Prepare a mode in a squeezed vacuum state. DisplacedSqueezed([alpha, r, p]) Prepare a mode in a displaced squeezed state. Thermal([n]) Prepare a mode in a thermal state. Fock([n]) Prepare a mode in a Fock basis state. Catstate([alpha, p]) Prepare a mode in a cat state. Ket(state) Prepare mode(s) using the given ket vector(s) in the Fock basis. DensityMatrix(state) Prepare mode(s) using the given density matrix in the Fock basis. Gaussian(V[, r, decomp, tol]) Prepare the specified modes in a Gaussian state.

## Measurements¶

 MeasureFock([select]) Photon counting measurement: measures a set of modes in the Fock basis. MeasureThreshold([select]) Measures a set of modes with thresholded Fock-state measurements, i.e., measuring whether a mode contain zero or nonzero photons. MeasureHomodyne(phi[, select]) Performs a homodyne measurement, measures one quadrature of a mode. MeasureHeterodyne([select]) Performs a heterodyne measurement on a mode. MeasureX Performs a homodyne measurement, measures one quadrature of a mode. MeasureP Performs a homodyne measurement, measures one quadrature of a mode. MeasureHD Performs a heterodyne measurement on a mode.