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