The Fock state probabilities for the specified modes obtained from PNR samples.

Measured modes that are not specified are traced over. If either all the modes or no modes were specified, the marginal probabilities are returned.

The Fock basis cutoff truncation is determined by the maximum Fock state with a non-zero probability.


>>> samples = np.array([[2, 0], [2, 2], [2, 0], [0, 0]])
>>> probs = all_fock_probs_pnr(samples)

2 out of 4 shots had the (2, 0) outcome, that is \(|\braketD{2,0}{\psi}|^2=0.5\). We can check if the probability for this state is correct by indexing into probs:

>>> probs[(2, 0)]

We can further check the entire array of probabilities:

>>> probs
[[0.25 0.   0.  ]
[0.   0.   0.  ]
[0.5  0.   0.25]]

photon_number_samples (array) – the photon number samples with a shape of (shots, modes)


array of dimension \(\underbrace{D\times D\times D\cdots\times D}_{\text{num modes}}\) containing the Fock state probabilities, where \(D\) is the Fock basis cutoff truncation

Return type