Class GaussianTransform

Inheritance Relationships

Base Type

Class Documentation

class 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

GaussianTransform(floatmat symplectic, intvec m)

Constructor to initialize an Gaussian transform acting on modes m

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