some cleanups

This commit is contained in:
Ward Wouts 2005-05-09 11:52:26 +00:00
parent a3f08d8b87
commit 30cf49c857

View file

@ -1,4 +1,4 @@
# $Dwarf: intspan.rb,v 1.19 2005/03/11 12:06:02 ward Exp $
# $Dwarf: intspan.rb,v 1.20 2005/03/11 12:17:35 ward Exp $
# $Source$
#
@ -82,7 +82,6 @@ def _copy_array(array) # copies an array into @set
set_neg_inf(false)
set_pos_inf(false)
#print "scary thingy gets called!!!\n"
edges = []
for element in array.sort
next if (edges.length > 0) and (edges[-1] == element) # skip duplicates
@ -460,25 +459,20 @@ def complement
return comp
end
def superset(set_spec)
b = _real_set(set_spec)
# $b->diff($a)->empty
s = b.diff(self)
return s.empty?
end
def subset(set_spec)
b = _real_set(set_spec)
# $a->diff($b)->empty
s = diff(b)
return s.empty?
end
def equal(set_spec)
b = _real_set(set_spec)
@ -506,7 +500,6 @@ def equivalent(set_spec)
cardinality == b.cardinality
end
def cardinality
(neg_inf? or pos_inf?) and return -1
@ -566,7 +559,8 @@ def universal
neg_inf? and not @set["edges"].length > 0 and pos_inf?
end
def member(n)
# XXX this should probably have some recursion to make it faster
def member?(n)
inSet = neg_inf?
edge = @set["edges"]
@ -583,6 +577,7 @@ def member(n)
inSet
end
# XXX name should end with a '!'
def insert(n)
inSet = neg_inf?
edge = @set["edges"]
@ -601,26 +596,21 @@ def insert(n)
end
# XXX dit kan vast netter... toch de Dijkstra neuronen nog eens aansteken
# XXX this should probably have some recursion to make it faster
l = 0
r = edge.length-1
i = r/2
#p "edge #{edge}"
#p "n #{n}"
while true
# p "i #{i}"
# p "edge[i] #{edge[i]}"
if n < edge[i] && n > edge[i-1]
inSet = i.odd?
break
elsif n < edge[i] && i == 0
inSet = false
# p "break 1"
break
elsif n < edge[i]
r = i
i = l + ((r-l)/2)
elsif n == edge[i]
# p "break 1"
inSet = i.odd?
break
else
@ -629,16 +619,6 @@ def insert(n)
end
end
#for i in (0...edge.length)
# if (inSet)
# n <= edge[i] and return
# inSet = false
# else
# n <= edge[i] and break
# inSet = true
# end
#end
inSet and return
lGap = i == 0 || n-1 - edge[i-1]
@ -717,7 +697,6 @@ def min
@set["edges"][0]+1
end
def max
empty? and return nil
pos_inf? and return nil
@ -784,7 +763,6 @@ def first
@set["iterator"]
end
def last
lastEdge = @set["edges"].length - 1
@set["iterator"] = max
@ -831,7 +809,6 @@ def current
@set["iterator"]
end
def next
@set["iterator"] or return first
@ -887,7 +864,6 @@ def prev
@set["iterator"]
end
end # class
end # module