speed ups

This commit is contained in:
Ward Wouts 2008-07-16 17:47:32 +00:00
parent 872158c686
commit 47a29f33f9

View file

@ -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;