From 87ca170642dda34596908e7d4c460bf59bbd5e4c Mon Sep 17 00:00:00 2001 From: Seth Bromberger Date: Sat, 18 Aug 2018 17:09:39 -0700 Subject: [PATCH] OneTo --- src/SimpleGraphs/SimpleGraphs.jl | 9 +++------ src/centrality/betweenness.jl | 7 +++---- src/utils.jl | 2 +- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/src/SimpleGraphs/SimpleGraphs.jl b/src/SimpleGraphs/SimpleGraphs.jl index af166d592..5f757fc43 100644 --- a/src/SimpleGraphs/SimpleGraphs.jl +++ b/src/SimpleGraphs/SimpleGraphs.jl @@ -51,7 +51,7 @@ function show(io::IO, g::AbstractSimpleGraph{T}) where T end nv(g::AbstractSimpleGraph{T}) where T = T(length(fadj(g))) -vertices(g::AbstractSimpleGraph{T}) where T = one(T):nv(g) +vertices(g::AbstractSimpleGraph) = Base.OneTo(nv(g)) edges(g::AbstractSimpleGraph) = SimpleEdgeIter(g) @@ -74,11 +74,8 @@ add_edge!(g::AbstractSimpleGraph, x, y) = add_edge!(g, edgetype(g)(x, y)) inneighbors(g::AbstractSimpleGraph, v::Integer) = badj(g, v) outneighbors(g::AbstractSimpleGraph, v::Integer) = fadj(g, v) -function issubset(g::T, h::T) where T<:AbstractSimpleGraph - (gmin, gmax) = extrema(vertices(g)) - (hmin, hmax) = extrema(vertices(h)) - return (hmin <= gmin <= gmax <= hmax) && issubset(edges(g), edges(h)) -end +issubset(g::T, h::T) where T<:AbstractSimpleGraph = + (nv(g) <= nv(h)) && issubset(edges(g), edges(h)) has_vertex(g::AbstractSimpleGraph, v::Integer) = v in vertices(g) diff --git a/src/centrality/betweenness.jl b/src/centrality/betweenness.jl index 2fd9d27a0..58da131cc 100644 --- a/src/centrality/betweenness.jl +++ b/src/centrality/betweenness.jl @@ -97,7 +97,7 @@ function _accumulate_endpoints!(betweenness::Vector{Float64}, δ = zeros(n_v) σ = state.pathcounts P = state.predecessors - v1 = [1:n_v;] + v1 = collect(Base.OneTo(n_v)) v2 = state.dists S = reverse(state.closest_vertices) s = vertices(g)[si] @@ -135,9 +135,8 @@ function _rescale!(betweenness::Vector{Float64}, n::Integer, normalize::Bool, di if k > 0 scale = scale * n / k end - for v = 1:length(betweenness) - betweenness[v] *= scale - end + betweenness .*= scale + end return nothing end diff --git a/src/utils.jl b/src/utils.jl index 3e052bc08..7cf7c4592 100644 --- a/src/utils.jl +++ b/src/utils.jl @@ -40,7 +40,7 @@ Sample `k` element from unit range `r` without repetition and eventually excludi ### Implementation Notes Unlike [`sample!`](@ref), does not produce side effects. """ -sample(a::UnitRange, k::Integer; exclude=()) = sample!(getRNG(), collect(a), k; exclude=exclude) +sample(a::AbstractVector, k::Integer; exclude=()) = sample!(getRNG(), collect(a), k; exclude=exclude) getRNG(seed::Integer=-1) = seed >= 0 ? MersenneTwister(seed) : GLOBAL_RNG