@@ -14,7 +14,7 @@ function label_propagation(g::AbstractGraph, maxiter=1000)
14
14
n = nv (g)
15
15
label = collect (one (T): n)
16
16
active_vs = IntSet (vertices (g))
17
- c = NeighComm (collect (one (T): n), fill (- 1 ,n), one (T))
17
+ c = NeighComm (collect (one (T): n), fill (- 1 , n), one (T))
18
18
convergence_hist = Vector {Int} ()
19
19
random_order = Vector {T} (n)
20
20
i = 0
@@ -24,11 +24,11 @@ function label_propagation(g::AbstractGraph, maxiter=1000)
24
24
i += 1
25
25
26
26
# processing vertices in random order
27
- for (j,node) in enumerate (active_vs)
27
+ for (j, node) in enumerate (active_vs)
28
28
random_order[j] = node
29
29
end
30
30
range_shuffle! (1 : num_active, random_order)
31
- @inbounds for j= 1 : num_active
31
+ @inbounds for j = 1 : num_active
32
32
u = random_order[j]
33
33
old_comm = label[u]
34
34
label[u] = vote! (g, label, c, u)
@@ -64,11 +64,11 @@ Fast shuffle Array `a` in UnitRange `r`.
64
64
"""
65
65
function range_shuffle! (r:: UnitRange , a:: AbstractVector )
66
66
(r. start > 0 && r. stop <= length (a)) || error (" out of bounds" )
67
- @inbounds for i= length (r): - 1 : 2
67
+ @inbounds for i = length (r): - 1 : 2
68
68
j = rand (1 : i)
69
69
ii = i + r. start - 1
70
70
jj = j + r. start - 1
71
- a[ii],a[jj] = a[jj],a[ii]
71
+ a[ii], a[jj] = a[jj], a[ii]
72
72
end
73
73
end
74
74
78
78
Return the label with greatest frequency.
79
79
"""
80
80
function vote! (g:: AbstractGraph , m:: Vector , c:: NeighComm , u:: Integer )
81
- @inbounds for i= 1 : c. neigh_last- 1
81
+ @inbounds for i = 1 : c. neigh_last - 1
82
82
c. neigh_cnt[c. neigh_pos[i]] = - 1
83
83
end
84
84
c. neigh_last = 1
85
85
c. neigh_pos[1 ] = m[u]
86
86
c. neigh_cnt[c. neigh_pos[1 ]] = 0
87
87
c. neigh_last = 2
88
88
max_cnt = 0
89
- for neigh in out_neighbors (g,u)
89
+ for neigh in out_neighbors (g, u)
90
90
neigh_comm = m[neigh]
91
91
if c. neigh_cnt[neigh_comm] < 0
92
92
c. neigh_cnt[neigh_comm] = 0
@@ -99,7 +99,7 @@ function vote!(g::AbstractGraph, m::Vector, c::NeighComm, u::Integer)
99
99
end
100
100
end
101
101
# ties breaking randomly
102
- range_shuffle! (1 : c. neigh_last- 1 , c. neigh_pos)
102
+ range_shuffle! (1 : c. neigh_last - 1 , c. neigh_pos)
103
103
for lbl in c. neigh_pos
104
104
if c. neigh_cnt[lbl] == max_cnt
105
105
return lbl
@@ -111,7 +111,7 @@ function renumber_labels!(membership::Vector, label_counters::Vector{Int})
111
111
N = length (membership)
112
112
(maximum (membership) > N || minimum (membership) < 1 ) && error (" Label must between 1 and |V|" )
113
113
j = 1
114
- @inbounds for i= 1 : length (membership)
114
+ @inbounds for i = 1 : length (membership)
115
115
k = membership[i]
116
116
if k >= 1
117
117
if label_counters[k] == 0
0 commit comments