spheres.symplectic.gaussian_complex_symplectic¶
-
spheres.symplectic.
gaussian_complex_symplectic
(H, h, expm=True, theta=2)[source]¶ Converts a Gaussian transformation (in the form of a Hermitian matrix and a displacement vector) into a complex symplectic transformation (in the form of a complex symplectic matrix and displacement vector).
Evolving all the creation and annihilation operators by a Gaussian unitary is equivalent to an affine transformation:
\[e^{iH} \xi e^{-iH} = \textbf{S}\xi + \textbf{s}\]Where \(\textbf{S}\) is a complex symplectic matrix: \(\textbf{S} = e^{-i\Omega_{c}\textbf{H}}\) and \(\textbf{s} = (\textbf{S}-I_{2n})\textbf{H}^{-1}\textbf{h}\).
Here the complex symplectic form is \(\Omega_{c} = \begin{pmatrix}I_{n} & 0 \\ 0 & -I_{n} \end{pmatrix}\), and if \(\textbf{H}\) has no inverse, we take the pseudoinverse instead to calculate \(\textbf{h}\).
- Parameters
H (np.array) – Gaussian operator.
h (np.array) – Gaussian displacement.
expm (bool) – Whether to exponentiate.
theta (float) – Exponentiation parameter.
- Returns
S (np.array) – Complex symplectic matrix.
s (np.array) – Complex symplectic displacement vector.