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
|
||||
|
||||
def insert!(n)
|
||||
inSet = neg_inf?
|
||||
|
||||
if (@set["edges"].length == 0)
|
||||
if @set["edges"].empty?
|
||||
@set["edges"] = [n-1, n]
|
||||
return
|
||||
end
|
||||
|
||||
if n > @set["edges"][-1]+1
|
||||
@set["edges"].push(n-1, n)
|
||||
if n == @set["edges"][-1]+1
|
||||
@set["edges"][-1] += 1
|
||||
return
|
||||
elsif n > @set["edges"][-1]
|
||||
@set["edges"][-1] += 1
|
||||
@set["edges"].push(n-1, n)
|
||||
return
|
||||
end
|
||||
|
||||
|
|
@ -611,6 +609,8 @@ def insert!(n)
|
|||
elsif n < @set["edges"][i]
|
||||
r = i
|
||||
i = l + ((r-l)/2)
|
||||
# tikkeltje sneller dan neg_inf? aanroepen
|
||||
inSet = @set["negInf"]
|
||||
elsif n == @set["edges"][i]
|
||||
inSet = i.odd?
|
||||
break
|
||||
|
|
@ -629,14 +629,13 @@ def insert!(n)
|
|||
rGap = false if rGap == 0
|
||||
|
||||
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)
|
||||
@set["edges"][i-1] += 1
|
||||
elsif ( lGap and not rGap)
|
||||
@set["edges"][i] -= 1
|
||||
else
|
||||
@set["edges"].delete_at(i-1)
|
||||
@set["edges"].delete_at(i-1)
|
||||
@set["edges"].slice!(i-1, 2)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -705,9 +704,10 @@ def grep_set(block)
|
|||
sub_edges = []
|
||||
|
||||
while (edges.length > 0)
|
||||
lower = edges[0]
|
||||
upper = edges[1]
|
||||
edges = edges.slice(2..edges.length)
|
||||
lower, upper = edges.slice!(0..1)
|
||||
#lower = edges[0]
|
||||
#upper = edges[1]
|
||||
#edges = edges.slice(2..edges.length)
|
||||
|
||||
for i in (lower+1..upper)
|
||||
# local $_ = i
|
||||
|
|
@ -733,9 +733,10 @@ def map_set(block)
|
|||
|
||||
edges = @set["edges"]
|
||||
while (edges.length > 0)
|
||||
lower = edges[0]
|
||||
upper = edges[1]
|
||||
edges = edges.slice(2..edges.length)
|
||||
lower, upper = edges.slice!(0..1)
|
||||
#lower = edges[0]
|
||||
#upper = edges[1]
|
||||
#edges = edges.slice(2..edges.length)
|
||||
|
||||
for domain in (lower+1..upper)
|
||||
local $_ = domain;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue