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,
z
is ann
-dim complex vector,A
is ann x n
complex matrix,b
is ann
-dim complex vector,c
is 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_z
andidx_zconj
. Themeasure
parameter 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_z
andidx_zconj
have different lengths.