speed ups
This commit is contained in:
parent
872158c686
commit
47a29f33f9
1 changed files with 16 additions and 15 deletions
|
|
@ -581,18 +581,16 @@ def member?(n)
|
||||||
end
|
end
|
||||||
|
|
||||||
def insert!(n)
|
def insert!(n)
|
||||||
inSet = neg_inf?
|
if @set["edges"].empty?
|
||||||
|
|
||||||
if (@set["edges"].length == 0)
|
|
||||||
@set["edges"] = [n-1, n]
|
@set["edges"] = [n-1, n]
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
if n > @set["edges"][-1]+1
|
if n == @set["edges"][-1]+1
|
||||||
@set["edges"].push(n-1, n)
|
@set["edges"][-1] += 1
|
||||||
return
|
return
|
||||||
elsif n > @set["edges"][-1]
|
elsif n > @set["edges"][-1]
|
||||||
@set["edges"][-1] += 1
|
@set["edges"].push(n-1, n)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -611,6 +609,8 @@ def insert!(n)
|
||||||
elsif n < @set["edges"][i]
|
elsif n < @set["edges"][i]
|
||||||
r = i
|
r = i
|
||||||
i = l + ((r-l)/2)
|
i = l + ((r-l)/2)
|
||||||
|
# tikkeltje sneller dan neg_inf? aanroepen
|
||||||
|
inSet = @set["negInf"]
|
||||||
elsif n == @set["edges"][i]
|
elsif n == @set["edges"][i]
|
||||||
inSet = i.odd?
|
inSet = i.odd?
|
||||||
break
|
break
|
||||||
|
|
@ -629,14 +629,13 @@ def insert!(n)
|
||||||
rGap = false if rGap == 0
|
rGap = false if rGap == 0
|
||||||
|
|
||||||
if ( lGap and rGap)
|
if ( lGap and rGap)
|
||||||
@set["edges"] = @set["edges"].insert(i, n-1, n)
|
@set["edges"].insert(i, n-1, n)
|
||||||
elsif (not lGap and rGap)
|
elsif (not lGap and rGap)
|
||||||
@set["edges"][i-1] += 1
|
@set["edges"][i-1] += 1
|
||||||
elsif ( lGap and not rGap)
|
elsif ( lGap and not rGap)
|
||||||
@set["edges"][i] -= 1
|
@set["edges"][i] -= 1
|
||||||
else
|
else
|
||||||
@set["edges"].delete_at(i-1)
|
@set["edges"].slice!(i-1, 2)
|
||||||
@set["edges"].delete_at(i-1)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -705,9 +704,10 @@ def grep_set(block)
|
||||||
sub_edges = []
|
sub_edges = []
|
||||||
|
|
||||||
while (edges.length > 0)
|
while (edges.length > 0)
|
||||||
lower = edges[0]
|
lower, upper = edges.slice!(0..1)
|
||||||
upper = edges[1]
|
#lower = edges[0]
|
||||||
edges = edges.slice(2..edges.length)
|
#upper = edges[1]
|
||||||
|
#edges = edges.slice(2..edges.length)
|
||||||
|
|
||||||
for i in (lower+1..upper)
|
for i in (lower+1..upper)
|
||||||
# local $_ = i
|
# local $_ = i
|
||||||
|
|
@ -733,9 +733,10 @@ def map_set(block)
|
||||||
|
|
||||||
edges = @set["edges"]
|
edges = @set["edges"]
|
||||||
while (edges.length > 0)
|
while (edges.length > 0)
|
||||||
lower = edges[0]
|
lower, upper = edges.slice!(0..1)
|
||||||
upper = edges[1]
|
#lower = edges[0]
|
||||||
edges = edges.slice(2..edges.length)
|
#upper = edges[1]
|
||||||
|
#edges = edges.slice(2..edges.length)
|
||||||
|
|
||||||
for domain in (lower+1..upper)
|
for domain in (lower+1..upper)
|
||||||
local $_ = domain;
|
local $_ = domain;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue