code: def _denoise(seeds, x, dico, sup_bound, n_atoms, verbose=False, indep=True,
               stop_crit=None, selection_rule=None, pad=0,
               memory=Memory(None)):
      
      approx = []
      for seed in seeds:
          if verbose > 0:
              print("Run seed %d" % seed)
          if indep:
              approx.append(_single_mp_run(x, dico, sup_bound, n_atoms,
                                           verbose=verbose, pad=pad,
                                           random_state=seed,
                                           memory=memory)[0])
          else:
              approx.append(_single_multichannel_mp_run(x, dico, sup_bound,
                                                        selection_rule,
                                                        stop_crit,
                                                        n_atoms, verbose=verbose,
                                                        pad=pad,
                                                        random_state=seed,
                                                        memory=memory)[0])
      return approx
docs: multiple rssmp runs with a smart stopping criterion using
      the convergence decay monitoring