You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We will have a new concrete graph type Graph{V} which can represent arbitrary vertices.
We would need new constructors to be able to construct such new graphs.
Instead of passing nv, we should provide a list (or even an iterator ?) of the vertices of the graph.
As the type of vertices can be arbitrary, the type signatures of generators can quickly become a mess / incompatible
Also we will need to support multigraphs
My proposal
Graph{V}() and Graph(::Type{V})should be unambiguous
Remove SimpleGraph{T}(nv::Integer, ne::Integer) (much better to call explicitly erdos-renyi)
I don't really get this one SimpleGraph(nv::Integer, ne::Integer, edgestream::Channel), I think It does not add much to SimpleGraphFromIterator
Here is a thread for discussing the constructors for Graphs 2.0
Current constructors
Constructors for
SimpleGraph
SimpleGraph{T}()
: empty graphSimpleGraph{T}(nv::Integer)
: graph with no edgesSimpleGraph{T}(nv::Integer, ne::Integer)
: random graph (erdos-renyi)SimpleGraph(::Type{T})
: empty graphSimpleGraph(nv::Integer, ne::Integer, edgestream::Channel)
: add edges from the stream until stream end or we reachne
edges.SimpleGraphFromIterator(edgelist)
SimpleGraph(adjmx::AbstractMatrix)
SimpleGraph{T}(g::AbstractGraph)
SimpleGraph(edge_list::Vector{SimpleGraphEdge{T}})
Goals for 2.0
We will have a new concrete graph type
Graph{V}
which can represent arbitrary vertices.We would need new constructors to be able to construct such new graphs.
Instead of passing
nv
, we should provide a list (or even an iterator ?) of the vertices of the graph.As the type of vertices can be arbitrary, the type signatures of generators can quickly become a mess / incompatible
Also we will need to support multigraphs
My proposal
Graph{V}()
andGraph(::Type{V})
should be unambiguousSimpleGraph{T}(nv::Integer, ne::Integer)
(much better to call explicitlyerdos-renyi
)SimpleGraph(nv::Integer, ne::Integer, edgestream::Channel)
, I think It does not add much toSimpleGraphFromIterator
Graph{T<:Integer}(nv::Integer)
Graph{V<:Integer}(adjmx=adjmx)
(Multi)Graph{V}(edge_list=edge_list)
(Multi)Graph{V}(vertices=vertices)
(Multi)Graph{V}(vertices=vertices::Vector{V})
Graph{V}(vertices=vertices::Vector{V}, adjmx=adjmx)
(Multi)Graph{V}(vertices=vertices::Vector{V}, edge_list=edge_list)
Is this proposal sound?
Do you have some other ideas of generators? A better proposal?
The text was updated successfully, but these errors were encountered: