Skip to content

Commit 80f6716

Browse files
InterdisciplinaryPhysicsTeampitmonticoneClaudMor
committed
Implement configuration model-like layer and simple_layer constructor
Co-Authored-By: Pietro Monticone <38562595+pitmonticone@users.noreply.github.com> Co-Authored-By: Claudio Moroni <43729990+ClaudMor@users.noreply.github.com>
1 parent e118ab5 commit 80f6716

File tree

6 files changed

+442
-136
lines changed

6 files changed

+442
-136
lines changed

src/multilayerdigraph.jl

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -162,12 +162,6 @@ function MultilayerDiGraph(
162162
),
163163
)
164164

165-
minimum(support(indegree_distribution)) >= 0 || throw(
166-
ErrorException(
167-
"Both the `indegree_distribution` and the `outdegree_distribution` must have positive support. Found $(support(indegree_distribution)) and $(support(outdegree_distribution)).",
168-
),
169-
)
170-
171165
empty_multilayerdigraph = MultilayerDiGraph(
172166
empty_layers,
173167
empty_interlayers;
@@ -177,23 +171,7 @@ function MultilayerDiGraph(
177171

178172
n = nv(empty_multilayerdigraph)
179173

180-
indegree_sequence = Vector{Int64}(undef, n)
181-
outdegree_sequence = Vector{Int64}(undef, n)
182-
acceptable = false
183-
184-
@info "Trying to sample a digraphical sequence from the two provided distributions..."
185-
while !acceptable
186-
indegree_sequence .=
187-
round.(Ref(Int), rand(indegree_distribution, nv(empty_multilayerdigraph)))
188-
outdegree_sequence .=
189-
round.(Ref(Int), rand(outdegree_distribution, nv(empty_multilayerdigraph)))
190-
191-
acceptable = all(0 .<= vcat(indegree_sequence, outdegree_sequence) .< n)
192-
193-
if acceptable
194-
acceptable = isdigraphical(indegree_sequence, outdegree_sequence)
195-
end
196-
end
174+
indegree_sequence,outdegree_sequence = sample_digraphical_degree_sequences(indegree_distribution,outdegree_distribution,n)
197175

198176
return MultilayerDiGraph(
199177
empty_multilayerdigraph,

src/multilayergraph.jl

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -176,11 +176,6 @@ function MultilayerGraph(
176176
),
177177
)
178178

179-
minimum(support(degree_distribution)) >= 0 || throw(
180-
ErrorException(
181-
"The `degree_distribution` must have positive support. Found $(support(degree_distribution)).",
182-
),
183-
)
184179

185180
empty_multilayergraph = MultilayerGraph(
186181
empty_layers,
@@ -191,19 +186,8 @@ function MultilayerGraph(
191186

192187
n = nv(empty_multilayergraph)
193188

194-
degree_sequence = nothing
195-
acceptable = false
196-
197-
while !acceptable
198-
degree_sequence =
199-
round.(Ref(Int), rand(degree_distribution, nv(empty_multilayergraph)))
189+
degree_sequence = sample_graphical_degree_sequence(degree_distribution,n)
200190

201-
acceptable = all(0 .<= degree_sequence .< n)
202-
203-
if acceptable
204-
acceptable = isgraphical(degree_sequence)
205-
end
206-
end
207191
return MultilayerGraph(
208192
empty_multilayergraph, degree_sequence; allow_self_loops=false, perform_checks=false
209193
)

0 commit comments

Comments
 (0)