# Class Interferometer¶

## Class Documentation¶

class Interferometer : public blackbird::Operation

Represents an interferometer For more details, see the Strawberry Fields convention page.

This operation stores a linear interferometer unitary as a unitary matrix, ready to be decomposed into beamsplitters and rotation gates.

Unitary matrix $$U$$ accessible via:

• $$U$$: Interferometer->U1

Public Functions

Interferometer(complexmat unitary, intvec m)

Constructor to initialize an interferometer acting on modes m

Parameters
• unitary: vector<vector<complex<double>>> representing the unitary matrix
• m: vector<int> containing the list of modes the gate acts on
Exceptions
• invalid_argument: unitary matrix should be square
• invalid_argument: unitary matrix must have the same size as the number of modes