sf.physics.bargmann.complex_gaussian_integral¶
- mrmustard.physics.bargmann.complex_gaussian_integral(Abc, idx_z, idx_zconj, measure=-1)[source]¶
Computes the Gaussian integral of the exponential of a complex quadratic form. The integral is defined as (note that in general we integrate over a subset of 2m dimensions):
\(\int_{C^m} F(z) d\mu(z)\)
where
\(F(z) = \textrm{exp}(-0.5 z^T A z + b^T z)\)
Here,
zis ann-dim complex vector,Ais ann x ncomplex matrix,bis ann-dim complex vector,cis a complex scalar, and \(d\mu(z)\) is a non-holomorphic complex measure over a subset of m pairs of z,z* variables. These are specified by the indicesidx_zandidx_zconj. Themeasureparameter is the exponent of the measure:- Math:
dmu(z) = textrm{exp}(m * |z|^2) frac{d^{2n}z}{pi^n} = frac{1}{pi^n}textrm{exp}(m * |z|^2) dtextrm{Re}(z) dtextrm{Im}(z)
Note that the indices must be a complex variable pairs with each other (idx_z, idx_zconj) to make this contraction meaningful. Please make sure the corresponding complex variable with respect to your Abc triples. For examples, if the indices of Abc denotes the variables
(\alpha, \beta, \alpha^*, \beta^*, \gamma, \eta), the contraction only works with the indices between(\alpha, \alpha^*)pairs and(\beta, \beta^*)pairs.- Parameters:
A – the
(A,b,c)tripleb – the
(A,b,c)triplec – the
(A,b,c)tripleidx_z (
tuple[int,...]) – the tuple of indices of the z variablesidx_zconj (
tuple[int,...]) – the tuple of indices of the z* variablesmeasure (
float) – the exponent of the measure (default is -1: Bargmann measure)
- Returns:
The
(A,b,c)triple of the result of the integral.- Raises:
ValueError – If
idx_zandidx_zconjhave different lengths.