@@ -86,16 +86,20 @@ mutable struct DGraph{T<:Integer, D} <: Graphs.AbstractGraph{T}
86
86
return new {T,D} (Dagger. tochunk (state), Ref (false ))
87
87
end
88
88
end
89
+ DGraph (x; kwargs... ) = DGraph {Int} (x; kwargs... )
89
90
DGraph (; kwargs... ) = DGraph {Int} (; kwargs... )
90
- function DGraph (n:: T ; freeze:: Bool = false , kwargs... ) where {T<: Integer }
91
+ DGraph {T} (n:: S ; kwargs... ) where {T<: Integer ,S<: Integer } =
92
+ DGraph {T} (T (n); kwargs... )
93
+ function DGraph {T} (n:: T ; freeze:: Bool = false , kwargs... ) where {T<: Integer }
91
94
g = DGraph {T} (; kwargs... )
92
95
add_vertices! (g, n)
93
96
freeze && freeze! (g)
94
97
return g
95
98
end
96
- function DGraph (sg:: AbstractGraph{T} ; directed:: Bool = is_directed (sg), freeze:: Bool = false , kwargs... ) where {T<: Integer }
97
- g = DGraph (nv (sg); directed, kwargs... )
99
+ function DGraph {T} (sg:: AbstractGraph{T} ; directed:: Bool = is_directed (sg), freeze:: Bool = false , kwargs... ) where {T<: Integer }
100
+ g = DGraph {T} (nv (sg); directed, kwargs... )
98
101
foreach (edges (sg)) do edge
102
+
99
103
add_edge! (g, edge)
100
104
if ! is_directed (sg) && directed
101
105
add_edge! (g, dst (edge), src (edge))
@@ -104,7 +108,7 @@ function DGraph(sg::AbstractGraph{T}; directed::Bool=is_directed(sg), freeze::Bo
104
108
freeze && freeze! (g)
105
109
return g
106
110
end
107
- function DGraph (dg:: DGraph{T,D} ; chunksize:: T = 0 , directed:: Bool = D, freeze:: Bool = false ) where {T<: Integer , D}
111
+ function DGraph {T} (dg:: DGraph{T,D} ; chunksize:: T = 0 , directed:: Bool = D, freeze:: Bool = false ) where {T<: Integer , D}
108
112
state = fetch (dg. state)
109
113
# FIXME : Create g.state on same node as dg.state
110
114
if chunksize == 0
@@ -480,11 +484,11 @@ nparts(g::DGraphState) = length(g.parts)
480
484
Base. eltype (:: DGraph{T} ) where T = T
481
485
Graphs. edgetype (:: DGraph{T} ) where T = Edge{T}
482
486
Graphs. nv (g:: DGraph{T} ) where T <: Integer = with_state (g, nv):: T
483
- function Graphs. nv (g:: DGraphState )
487
+ function Graphs. nv (g:: DGraphState{T} ) where T
484
488
if ! isempty (g. parts_nv)
485
- return Int (last (g. parts_nv). stop)
489
+ return T (last (g. parts_nv). stop)
486
490
else
487
- return 0
491
+ return zero (T)
488
492
end
489
493
end
490
494
Graphs. ne (g:: DGraph ) = with_state (g, ne):: Int
577
581
578
582
Add a partition of `n` vertices to the graph state `g`.
579
583
"""
580
- function add_partition! (g:: DGraphState{T,D} , n:: T ) where {T <: Integer , D}
584
+ function add_partition! (g:: DGraphState{T,D} , n:: Integer ) where {T <: Integer , D}
581
585
check_not_frozen (g)
582
586
if n < 1
583
587
throw (ArgumentError (" n must be >= 1" ))
0 commit comments