code: def _regroup(self):
          
          # clean up old maps
          for j in range(self.nout):
              self.inv_map[j] = []
  
          # find smallest divergence between input component i
          # and output component j of the cluster mixture density
          for i in range(self.nin):
              self.min_kl[i] = np.inf
              j_min = None
              for j in range(self.nout):
                  kl = kullback_leibler(self.f.components[i], self.g.components[j])
                  if kl < self.min_kl[i]:
                      self.min_kl[i] = kl
                      j_min = j
              assert j_min is not None
              self.inv_map[j_min].append(i)
docs: Update the output :math:`g` keeping the map :math:`\pi` fixed.
          Compute the KL between all input and output components.