code: def add_m_list(self, matrix_sum, m_list):
          
          if self._output_lists is None:
              self._output_lists = [[matrix_sum, m_list]]
          else:
              bisect.insort(self._output_lists, [matrix_sum, m_list])
          if self._algo == EwaldMinimizer.ALGO_BEST_FIRST and \
                          len(self._output_lists) == self._num_to_return:
              self._finished = True
          if len(self._output_lists) > self._num_to_return:
              self._output_lists.pop()
          if len(self._output_lists) == self._num_to_return:
              self._current_minimum = self._output_lists[-1][0]
docs: This adds an m_list to the output_lists and updates the current
          minimum if the list is full.