Class Interferometer¶

Class Documentation¶

class blackbird::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

inline Interferometer(complexmat unitary, intvec m)

Constructor to initialize an interferometer acting on modes m

Parameters
• unitaryvector<vector<complex<double>>> representing the unitary matrix

• mvector<int> containing the list of modes the gate acts on

Throws
• invalid_argument – unitary matrix should be square

• invalid_argument – unitary matrix must have the same size as the number of modes