Module: pennylane

class Interferometer(U, wires)[source]

A linear interferometer transforming the bosonic operators according to the unitary matrix \(U\).


This operation implements a fixed linear interferometer given a known unitary matrix.

If you instead wish to parameterize the interferometer, and calculate the gradient/optimize with respect to these parameters, consider instead the pennylane.template.Interferometer() template, which constructs an interferometer from a combination of beamsplitters and rotation gates.


  • Number of wires: Any

  • Number of parameters: 1

  • Gradient recipe: None

  • Heisenberg representation:

    \[\begin{split}M = \begin{bmatrix} 1 & 0\\ 0 & S\\ \end{bmatrix}\end{split}\]

where \(S\) is the Gaussian symplectic transformation representing the interferometer.

  • U (array) – A shape (len(wires), len(wires)) complex unitary matrix
  • wires (Sequence[int] or int) – the wires the operation acts on