@@ -335,13 +335,13 @@ end
335335function vertices (
336336 g:: AdjacencyGraph{T} , order:: DynamicDegreeBasedOrder{degtype,direction}
337337) where {T<: Integer ,degtype,direction}
338+ true_degrees = degrees = T[degree (g, v) for v in vertices (g)]
339+ max_degrees = maximum (true_degrees)
338340 if degree_increasing (; degtype, direction)
339- degrees = zeros (T, nb_vertices (g))
340- else
341- degrees = T[degree (g, v) for v in vertices (g)]
341+ fill! (degrees, zero (T))
342342 end
343343 db = DegreeBuckets (
344- T, degrees, maximum (true_degrees) ; reproduce_colpack= order. reproduce_colpack
344+ T, degrees, max_degrees ; reproduce_colpack= order. reproduce_colpack
345345 )
346346 π = T[]
347347 sizehint! (π, nb_vertices (g))
@@ -361,33 +361,33 @@ function vertices(
361361 g:: BipartiteGraph{T} , :: Val{side} , order:: DynamicDegreeBasedOrder{degtype,direction}
362362) where {T<: Integer ,side,degtype,direction}
363363 other_side = 3 - side
364+ # compute dist-2 degrees in an optimized way
364365 n = nb_vertices (g, Val (side))
365- degrees_dist2 = zeros (T, n)
366+ degrees_dist2 = degrees = zeros (T, n)
366367 visited = fill (false , n)
367368 vertices_visited = zeros (T, n- 1 )
368369 num_visited = zero (T)
369- # compute dist-2 degrees in an optimized way (if needed)
370- if degree_increasing (; degtype, direction)
371- for v in vertices (g, Val (side))
372- for w1 in neighbors (g, Val (side), v)
373- for w2 in neighbors (g, Val (other_side), w1)
374- if w2 != v && ! visited[w2]
375- degrees_dist2[v] += 1
376- visited[w2] = true
377- num_visited += 1
378- vertices_visited[num_visited] = w2
379- end
370+ for v in vertices (g, Val (side))
371+ for w1 in neighbors (g, Val (side), v)
372+ for w2 in neighbors (g, Val (other_side), w1)
373+ if w2 != v && ! visited[w2]
374+ degrees_dist2[v] += 1
375+ visited[w2] = true
376+ num_visited += 1
377+ vertices_visited[num_visited] = w2
380378 end
381379 end
382- for k in 1 : num_visited
383- z = vertices_visited[k]
384- visited[z] = false
385- end
386- num_visited = 0
387380 end
381+ for k in 1 : num_visited
382+ z = vertices_visited[k]
383+ visited[z] = false
384+ end
385+ num_visited = 0
388386 end
389- degrees = degrees_dist2
390387 maxd2 = maximum (degrees_dist2)
388+ if degree_increasing (; degtype, direction)
389+ fill! (degrees, zero (T))
390+ end
391391 db = DegreeBuckets (T, degrees, maxd2; reproduce_colpack= order. reproduce_colpack)
392392 π = T[]
393393 sizehint! (π, n)
0 commit comments