anchor.diff:  
   %% repeat the partitioning until there is no significant
   %% improvement in the modularity.
  -partition(GD, Weights, Modularity, L) ->
  +partition(GD, L) ->
  +    Weights = weights(GD),
  +    Modularity = modularity(Weights),
       {PartitionedGD, NewModularity} = one_level(GD, Weights, Modularity),
       ?DEBUG("Parition Modularity: ~p -> ~p", [Modularity, NewModularity]),
       % Stop if the modularity didn't change very much or if (due to
  
positive.code:          communities/1,
           dendrogram/1]).
  
  -define(MIN_MODULARITY_CHANGE, 0.0000001).
  
  -include("part_louvain.hrl").
  -include("tap_logger.hrl").
  
negative.code:     % communities in the graph as it stands initially.  Separate
      % out the computation of these values as an optimization since
      % they are also needed to do the paritioning.
  %   file:write_file("/tmp/part", io_lib:format("starting communities: ~p~n", [lists:sort(dict:to_list(GD#louvain_graphd.communitiesd))])),
      #louvain_dendrogram{
                  louvain_graphs = partition(GD, [])}.
  
  %% ----------------------------------------------------------------------------
  %% Local Functions
  