mm.physics.fock.wigner_to_fock_state

mrmustard.physics.fock.wigner_to_fock_state(cov, means, shape, max_prob=1.0, max_photons=None, return_dm=True)[source]

Returns the Fock representation of a Gaussian state. Use with caution: if the cov matrix is that of a mixed state, setting return_dm to False will produce nonsense. If return_dm=False, we can apply max_prob and max_photons to stop the computation of the Fock representation early, when those conditions are met.

  • If the state is pure it can return the state vector (ket) or the density matrix.

    The index ordering is going to be [i’s] in ket_i

  • If the state is mixed it can return the density matrix.

    The index order is going to be [i’s,j’s] in dm_ij

Parameters:
  • cov (ndarray[Tuple[int, int], Union[TypeVar(R, float16, float32, float64), TypeVar(C, complex64, complex128), TypeVar(Z, int16, int32, int64), TypeVar(N, uint16, uint32, uint64)]]) – the Wigner covariance matrix

  • means (ndarray[Tuple[int], Union[TypeVar(R, float16, float32, float64), TypeVar(C, complex64, complex128), TypeVar(Z, int16, int32, int64), TypeVar(N, uint16, uint32, uint64)]]) – the Wigner means vector

  • shape (Sequence[int]) – the shape of the tensor

  • max_prob (float) – the maximum probability of a the state (applies only if the ket is returned)

  • max_photons (Optional[int]) – the maximum number of photons in the state (applies only if the ket is returned)

  • return_dm (bool) – whether to return the density matrix (otherwise it returns the ket)

Returns:

the fock representation

Return type:

Tensor