some cleanups
This commit is contained in:
parent
a3f08d8b87
commit
30cf49c857
1 changed files with 5 additions and 29 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue