cleanup & bugfixes
This commit is contained in:
parent
99dbd942f9
commit
00a0638ee4
1 changed files with 37 additions and 35 deletions
|
|
@ -1,4 +1,4 @@
|
|||
# $Dwarf: intspan.rb,v 1.15 2004/06/16 08:13:35 ward Exp $
|
||||
# $Dwarf: intspan.rb,v 1.16 2005/03/09 14:22:52 ward Exp $
|
||||
# $Source$
|
||||
|
||||
#
|
||||
|
|
@ -51,8 +51,8 @@ def copy(set_spec)
|
|||
when "Array"
|
||||
print "copy: Calling _copy_array\n" if Debuglevel > 0
|
||||
_copy_array(set_spec)
|
||||
when "Set::Intspan"
|
||||
print "copy: Calling _copy_set\n"
|
||||
when "Set::IntSpan"
|
||||
print "copy: Calling _copy_set\n" if Debuglevel > 0
|
||||
_copy_set(set_spec)
|
||||
when "Hash"
|
||||
print "copy: Calling _copy_set\n"
|
||||
|
|
@ -62,16 +62,18 @@ def copy(set_spec)
|
|||
end
|
||||
end
|
||||
|
||||
def _copy_empty # makes @set the empty se
|
||||
@set = { "negInf" => false }
|
||||
@set["posInf"] = false
|
||||
def _copy_empty # makes @set the empty set
|
||||
@set = {}
|
||||
set_neg_inf(false)
|
||||
set_pos_inf(false)
|
||||
@set["edges"] = []
|
||||
@set["run"] = []
|
||||
end
|
||||
|
||||
def _copy_array(array) # copies an array into @set
|
||||
@set["negInf"] = false
|
||||
@set["posInf"] = false
|
||||
_copy_empty
|
||||
set_neg_inf(false)
|
||||
set_pos_inf(false)
|
||||
|
||||
#print "scary thingy gets called!!!\n"
|
||||
edges = []
|
||||
|
|
@ -90,14 +92,14 @@ def _copy_array(array) # copies an array into @set
|
|||
end
|
||||
|
||||
def _copy_set(src) # copies one set to another
|
||||
@set["negInf"] = src.neg_inf?
|
||||
@set["posInf"] = src.pos_inf?
|
||||
_copy_empty
|
||||
set_neg_inf(src.neg_inf?)
|
||||
set_pos_inf(src.pos_inf?)
|
||||
@set["edges"] = src.edges
|
||||
@set["run"] = []
|
||||
end
|
||||
|
||||
def _copy_run_list(runlist)
|
||||
|
||||
_copy_empty
|
||||
|
||||
runlist.gsub!(/\s|_/, '')
|
||||
|
|
@ -256,7 +258,7 @@ def run_list
|
|||
end
|
||||
|
||||
def elements
|
||||
if (@set["negInf"] == true or @set["posInf"] == true)
|
||||
if (neg_inf? or pos_inf?)
|
||||
print "Set::IntSpan::elements: infinite set\n"
|
||||
exit
|
||||
end
|
||||
|
|
@ -281,13 +283,13 @@ def union(set_spec)
|
|||
b = _real_set(set_spec)
|
||||
s = IntSpan.new
|
||||
|
||||
s.set_neg_inf(@set["negInf"] || b.neg_inf?)
|
||||
s.set_neg_inf(neg_inf? || b.neg_inf?)
|
||||
|
||||
eA = @set["edges"]
|
||||
eB = b.edges
|
||||
eS = s.edges
|
||||
|
||||
inA = @set["negInf"]
|
||||
inA = neg_inf?
|
||||
inB = b.neg_inf?
|
||||
|
||||
iA = 0
|
||||
|
|
@ -317,7 +319,7 @@ def union(set_spec)
|
|||
iA < eA.length and (! inB) and eS.concat(eA[iA..eA.length])
|
||||
iB < eB.length and (! inA) and eS.concat(eB[iB..eB.length])
|
||||
|
||||
s.set_pos_inf(@set["posInf"] || b.pos_inf?)
|
||||
s.set_pos_inf(pos_inf? || b.pos_inf?)
|
||||
s.set_edges(eS)
|
||||
|
||||
return s
|
||||
|
|
@ -327,13 +329,13 @@ def intersect(set_spec)
|
|||
b = _real_set(set_spec)
|
||||
s = IntSpan.new
|
||||
|
||||
s.set_neg_inf(@set["negInf"] && b.neg_inf?)
|
||||
s.set_neg_inf(neg_inf? && b.neg_inf?)
|
||||
|
||||
eA = @set["edges"]
|
||||
eB = b.edges
|
||||
eS = s.edges
|
||||
|
||||
inA = @set["negInf"]
|
||||
inA = neg_inf?
|
||||
inB = b.neg_inf?
|
||||
|
||||
iA = 0
|
||||
|
|
@ -363,7 +365,7 @@ def intersect(set_spec)
|
|||
iA < eA.length and inB and eS.concat(eA[iA..eA.length])
|
||||
iB < eB.length and inA and eS.concat(eB[iB..eB.length])
|
||||
|
||||
s.set_neg_inf(@set["posInf"] && b.pos_inf?)
|
||||
s.set_neg_inf(pos_inf? && b.pos_inf?)
|
||||
s.set_edges(eS)
|
||||
return s
|
||||
end
|
||||
|
|
@ -372,13 +374,13 @@ def diff (set_spec)
|
|||
b = _real_set(set_spec)
|
||||
s = IntSpan.new
|
||||
|
||||
s.set_neg_inf(@set["negInf"] && ! b.neg_inf?)
|
||||
s.set_neg_inf(neg_inf? && ! b.neg_inf?)
|
||||
|
||||
eA = @set["edges"]
|
||||
eB = b.edges
|
||||
eS = s.edges
|
||||
|
||||
inA = @set["negInf"]
|
||||
inA = neg_inf?
|
||||
inB = b.neg_inf?
|
||||
|
||||
iA = 0
|
||||
|
|
@ -410,7 +412,7 @@ def diff (set_spec)
|
|||
|
||||
s.set_edges(eS)
|
||||
|
||||
s.set_pos_inf(@set["posInf"] && ! b.pos_inf?)
|
||||
s.set_pos_inf(pos_inf? && ! b.pos_inf?)
|
||||
return s
|
||||
end
|
||||
|
||||
|
|
@ -418,7 +420,7 @@ def xor(set_spec)
|
|||
b = _real_set(set_spec)
|
||||
s = IntSpan.new
|
||||
|
||||
s.set_neg_inf(@set["negInf"] ^ b.neg_inf?)
|
||||
s.set_neg_inf(neg_inf? ^ b.neg_inf?)
|
||||
|
||||
eA = @set["edges"]
|
||||
eB = b.edges
|
||||
|
|
@ -446,7 +448,7 @@ def xor(set_spec)
|
|||
iA < eA.length and eS.concat(eA[iA..eA.length])
|
||||
iB < eB.length and eS.concat(eB[iB..eB.length])
|
||||
|
||||
s.set_pos_inf(@set["posInf"] ^ b.pos_inf?)
|
||||
s.set_pos_inf(pos_inf? ^ b.pos_inf?)
|
||||
s.set_edges(eS)
|
||||
return s
|
||||
end
|
||||
|
|
@ -498,9 +500,9 @@ def equal(set_spec)
|
|||
b = _real_set(set_spec)
|
||||
|
||||
print "a\n"
|
||||
@set["negInf"] == b.neg_inf? or return false
|
||||
neg_inf? == b.neg_inf? or return false
|
||||
print "b\n"
|
||||
@set["posInf"] == b.pos_inf? or return false
|
||||
pos_inf? == b.pos_inf? or return false
|
||||
|
||||
aEdge = @set["edges"]
|
||||
bEdge = b.edges
|
||||
|
|
@ -523,7 +525,7 @@ end
|
|||
|
||||
|
||||
def cardinality
|
||||
(@set["negInf"] or @set["posInf"]) and return -1
|
||||
(neg_inf? or pos_inf?) and return -1
|
||||
|
||||
car = 0
|
||||
edges = @set["edges"]
|
||||
|
|
@ -546,7 +548,7 @@ def empty?
|
|||
end
|
||||
|
||||
def finite
|
||||
if @set["negInf"] == false and @set["posInf"] == false
|
||||
if ! neg_inf? and ! pos_inf?
|
||||
return true
|
||||
end
|
||||
return false
|
||||
|
|
@ -577,15 +579,15 @@ def set_pos_inf(posInf)
|
|||
end
|
||||
|
||||
def infinite
|
||||
@set["negInf"] or @set["posInf"]
|
||||
return neg_inf? || pos_inf?
|
||||
end
|
||||
|
||||
def universal
|
||||
@set["negInf"] and not @set["edges"].length > 0 and @set["posInf"]
|
||||
neg_inf? and not @set["edges"].length > 0 and pos_inf?
|
||||
end
|
||||
|
||||
def member(n)
|
||||
inSet = @set["negInf"]
|
||||
inSet = neg_inf?
|
||||
edge = @set["edges"]
|
||||
|
||||
for i in (0...edge.length)
|
||||
|
|
@ -602,7 +604,7 @@ def member(n)
|
|||
end
|
||||
|
||||
def insert(n)
|
||||
inSet = @set["negInf"]
|
||||
inSet = neg_inf?
|
||||
edge = @set["edges"]
|
||||
|
||||
if (edge.length == 0)
|
||||
|
|
@ -657,7 +659,7 @@ end
|
|||
def remove(n)
|
||||
n or return
|
||||
|
||||
inSet = @set["negInf"]
|
||||
inSet = neg_inf?
|
||||
edge = @set["edges"]
|
||||
|
||||
for i in (0...edge.length)
|
||||
|
|
@ -713,7 +715,7 @@ def max
|
|||
end
|
||||
|
||||
def grep_set(block)
|
||||
return nil if @set["negInf"] or @set["posInf"]
|
||||
return nil if neg_inf? or pos_inf?
|
||||
|
||||
edges = @set["edges"]
|
||||
sub_edges = []
|
||||
|
|
@ -741,7 +743,7 @@ def grep_set(block)
|
|||
end
|
||||
|
||||
def map_set(block)
|
||||
return nil if @set["negInf"] or @set["posInf"]
|
||||
return nil if neg_inf? or pos_inf?
|
||||
|
||||
map_set = new
|
||||
|
||||
|
|
@ -786,7 +788,7 @@ def start(startval)
|
|||
set["iterator"] = nil
|
||||
startval or return nil
|
||||
|
||||
inSet = @set["negInf"]
|
||||
inSet = neg_inf?
|
||||
edges = @set["edges"]
|
||||
|
||||
for i in (0...edges.length)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue