dq.wigner
wigner(
state: ArrayLike,
xmax: float = 6.0,
ymax: float = 6.0,
npixels: int = 201,
xvec: ArrayLike | None = None,
yvec: ArrayLike | None = None,
g: float = 2.0,
) -> tuple[Array, Array, Array]
Compute the Wigner distribution of a ket or density matrix.
The Wigner distribution is computed on a grid of coordinates \((x, y)\).
Warning
Wigner computation is not yet supported on GPU for double precision (float64). If this is needed don't hesitate to open an issue on GitHub.
Parameters
-
state
(array_like of shape (..., n, 1) or (..., n, n))
–
Ket or density matrix.
-
xmax
–
Maximum absolute value of the \(x\) coordinate.
-
ymax
–
Maximum absolute value of the \(y\) coordinate.
-
npixels
–
Number of pixels in each direction.
-
xvec
(array_like of shape (nxvec,), optional)
–
\(x\) coordinates. If
None
, defaults toxvec = jnp.linspace(-xmax, xmax, npixels)
. -
yvec
(array_like of shape (nyvec,), optional)
–
\(y\) coordinates. If
None
, defaults toyvec = jnp.linspace(-ymax, ymax, npixels)
. -
g
–
Scaling factor of Wigner quadratures, such that \(a = g(x + iy)/2\).
Returns
A tuple (xvec, yvec, w)
where
- xvec (array of shape (npixels,) or (nxvec,)) -- \(x\) coordinates, or
xvec
if specified. - yvec (array of shape (npixels,) or (nyvec,)) -- \(y\) coordinates, or
yvec
if specified. - w (array of shape (..., npixels, npixels) or (..., nyvec, nxvec)) -- Wigner distribution.