docs: def build_pyramid(M, subsampling_factor=3):
      """Iterate over a given number of times on matrix M
      so as to compute smaller and smaller matrices with bin_dense.
      """
  
      subs = int(subsampling_factor)
      if subs < 1:
          raise ValueError(
              "Subsampling factor needs to be an integer greater than 1.")
      N = [M]
      while min(N[-1].shape) > 1:
          N.append(bin_matrix(N[-1], subsampling_factor=subs))
      return N