get_prob_sample_heavy_by_depth

forest.benchmarking.quantum_volume.get_prob_sample_heavy_by_depth(depths: Iterator[int], num_hh_sampled: Iterator[int], num_shots: Iterator[int]) → Dict[int, Tuple[float, float]]

Analyzes the given information for each circuit to determine [an estimate of the probability of outputting a heavy hitter at each depth, a lower bound on this estimate, and whether that depth was achieved]

The output of this method can be fed directly into extract_quantum_volume_from_results to obtain the quantum volume measured.

Parameters:
  • depths – the depth of each circuit
  • num_hh_sampled – the number of heavy hitters sampled from each circuit
  • num_shots – the number of shots / total number of samples from each circuit
Returns:

for each depth key, provides a tuple of (estimate of probability of outputting hh for that depth=width, 2-sigma confidence interval (lower bound) on that estimate). The lower bound on the estimate is used to judge whether a depth is considered “achieved” in the context of the quantum volume.