@@ -64,6 +64,21 @@ weights(subgraph::S) where {T,U,S<:AbstractSubGraph{T,U}}
64
64
name(subgraph::AbstractSubGraph)
65
65
Layer{T <: Integer, U <: Real, G <: AbstractGraph{T}}
66
66
Layer(name::Symbol, vertices::Vector{<: MultilayerVertex}, edge_list::Vector{ <: MultilayerEdge}, null_graph::G, weighttype::Type{U}; default_vertex_metadata::Function = mv -> NamedTuple(), default_edge_weight::Function = (src, dst) -> one(U), default_edge_metadata::Function = (src, dst) -> NamedTuple()) where {T <: Integer, U <: Real, G <: AbstractGraph{T}}
67
+ Layer(nv::Int64, name::Symbol, graph_type::Type{G}, ne::Int64; U::Union{Type{ <: Real},Nothing} = nothing) where {T <: Union{ <: Integer, AbstractVertex}, G <: AbstractGraph{T}}
68
+ has_node(layer::Layer, n::Node)
69
+ rem_vertex!(layer::Layer, mv::MultilayerVertex)
70
+ rem_vertex!(layer::Layer, n::Node)
71
+ Interlayer{T<:Integer,U<:Real,G<:AbstractGraph{T}}Interlayer(layer_1::Layer{T,U}, layer_2::Layer{T,U}, ne::Int64, null_graph::G; default_edge_weight::Function = (x,y) -> nothing, default_edge_metadata::Function = (x,y) -> NamedTuple(), name::Symbol = Symbol("interlayer_$(layer_1.name)_$(layer_2.name)"), transfer_vertex_metadata::Bool = false) where {T<:Integer, U <: Union{Nothing, <: Real}, G<:AbstractGraph{T}}
72
+
73
+ multiplex_interlayer(
74
+ layer_1::Layer{T,U},
75
+ layer_2::Layer{T,U},
76
+ null_graph::G;
77
+ default_edge_weight::Function = (x,y) -> nothing,
78
+ default_edge_metadata::Function = (x,y) -> NamedTuple(),
79
+ transfer_vertex_metadata::Bool = false,
80
+ name::Symbol = Symbol("interlayer_$(layer_1.name)_$(layer_2.name)")
81
+ ) where {T<:Integer, U <: Real, G<:AbstractGraph{T}} = _multiplex_interlayer(collect(mv_vertices(layer_1)), collect(mv_vertices(layer_2)), null_graph, U; default_edge_weight = default_edge_weight, default_edge_metadata = default_edge_metadata, transfer_vertex_metadata = transfer_vertex_metadata , name = name)
67
82
```
68
83
69
84
### Multilayer-specific methods
@@ -96,7 +111,9 @@ is_directed(mg::AbstractMultilayerUGraph)
96
111
is_directed(m::M) where { M <: Type{ <: AbstractMultilayerUGraph}}
97
112
is_directed(mg::AbstractMultilayerDiGraph)
98
113
is_directed(m::M) where { M <: Type{ <: AbstractMultilayerDiGraph}}
99
-
114
+ has_node(mg::AbstractMultilayerGraph, n::Node)
115
+ rem_vertex!(mg::AbstractMultilayerUGraph, V::MultilayerVertex)
116
+ rem_vertex!(mg::AbstractMultilayerDiGraph, V::MultilayerVertex)
100
117
```
101
118
102
119
----------------------------------------------------
@@ -148,7 +165,9 @@ has_edge(subgraph::S, s::MultilayerVertex, d::MultilayerVertex) where { T, S <:
148
165
add_edge!(subgraph::S, src::T, dst::T; weight::W = nothing, metadata::Union{Tuple, NamedTuple}= NamedTuple()) where {T, U<: Real, W<:Union{ U, Nothing},G<:AbstractGraph{T},S<:AbstractSubGraph{T,U,G}}
149
166
rem_edge!(subgraph::S, src::T, dst::T) where {T, S<:AbstractSubGraph{T}}
150
167
AbstractLayer
151
- Layer(descriptor::LayerDescriptor{T}, vertices::Vector{<: MultilayerVertex}, edge_list::Vector{<:MultilayerEdge}) where {T <: Integer}
168
+ Layer(descriptor::MultilayerGraphs.LayerDescriptor{T}, vertices::Vector{<: MultilayerVertex}, edge_list::Vector{<:MultilayerEdge}) where {T <: Integer}
169
+ rem_vertex!(layer::L, v::T) where {T, L <: Layer{T}}
170
+ AbstractInterlayer
152
171
```
153
172
154
173
### Traits
0 commit comments