Class GaussianTransform

Inheritance Relationships

Base Type

Class Documentation

class blackbird::GaussianTransform : public blackbird::Operation

Represents a Gaussian transformation For more details, see the Strawberry Fields convention page.

This operation stores a Gaussian transformation as a symplectic matrix, ready to be decomposed into squeezers, beamsplitters, and rotation gates.

Symplectic matrix \(S\) accessible via:

  • \(S\): GaussianTransform->S1

Public Functions

inline GaussianTransform(floatmat symplectic, intvec m)

Constructor to initialize an Gaussian transform acting on modes m

Parameters
  • symplecticvector<vector<double>> representing the symplectic matrix

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

Throws
  • invalid_argument – symplectic matrix should be square

  • invalid_argument – symplectic matrix must have the size double the number of modes