whole_func_string: function initCutValues(graph, spanningTree) {
    computeLowLim(spanningTree);
  
    spanningTree.eachEdge(function(id, u, v, treeValue) {
      treeValue.cutValue = 0;
    });
  
    // Propagate cut values up the tree.
    function dfs(n) {
      var children = spanningTree.successors(n);
      for (var c in children) {
        var child = children[c];
        dfs(child);
      }
      if (n !== spanningTree.graph().root) {
        setCutValue(graph, spanningTree, n);
      }
    }
    dfs(spanningTree.graph().root);
  }
func_code_string: function initCutValues(graph, spanningTree) {
    computeLowLim(spanningTree);
  
    spanningTree.eachEdge(function(id, u, v, treeValue) {
      treeValue.cutValue = 0;
    });
  
    // Propagate cut values up the tree.
    function dfs(n) {
      var children = spanningTree.successors(n);
      for (var c in children) {
        var child = children[c];
        dfs(child);
      }
      if (n !== spanningTree.graph().root) {
        setCutValue(graph, spanningTree, n);
      }
    }
    dfs(spanningTree.graph().root);
  }
func_documentation_string: /*
  Set the cut values of edges in the spanning tree by a depth-first
  postorder traversal.  The cut value corresponds to the cost, in
  terms of a ranking's edge length sum, of lengthening an edge.
  Negative cut values typically indicate edges that would yield a
  smaller edge length sum if they were lengthened.