class Array

::TODO

add document

::TODO

add document

Public Instance Methods

&(item) click to toggle source
# File lib/setfu.rb, line 1202
def &(item)
  return old_and_method4set(item) if (item.type_of? Array)
  a = BitSet.new(self)
  b = BitSet.new(item)
  return a & b 
end
Also aliased as: old_and_method4set
-(item) click to toggle source
# File lib/setfu.rb, line 1196
def -(item)
  return old_subtract_method4set(item) if (item.type_of? Array)
  a = BitSet.new(self)
  b = BitSet.new(item)
  return a - b 
end
Also aliased as: old_subtract_method4set
^(item) click to toggle source
# File lib/setfu.rb, line 1186
def ^(item)
  if item.type_of? Array
    return (self | item) - (self & item)
  else
    a = BitSet.new(self)
    b = BitSet.new(item)
    return a ^ b
  end
end
ascending?() click to toggle source
# File lib/setfu.rb, line 50
def ascending?
  return false unless count >=2
  cnt = self.length - 1
  cnt.times do |ii|
    return false unless self[ii+1] >= self[ii]
  end
  return false if first==last  # ascending means something has to get bigger
  true
end
descending?() click to toggle source
# File lib/setfu.rb, line 59
def descending?
  return false unless count >=2
  cnt = self.length - 1
  cnt.times do |ii|
    return false unless self[ii+1] <= self[ii]
  end
  return false if first==last  # descending means something has to get smaller
  true
end
members_to_bset() click to toggle source
# File lib/setfu.rb, line 375
def members_to_bset
  Setfu::bset_elements(self)
  self
end
old_and_method4set(item)
Alias for: &
old_or_method4set(item)
Alias for: |
old_subtract_method4set(item)
Alias for: -
peek(n=0) click to toggle source
# File lib/setfu.rb, line 43
def peek(n=0)
  return self[count-n-1]
end
pop2() click to toggle source
# File lib/setfu.rb, line 38
def pop2
  a = pop
  b = pop
  return [a,b]
end
reduce_tuples(passes = 1) click to toggle source
# File lib/setfu.rb, line 390
def reduce_tuples(passes = 1)
  Setfu::bset_elements(self)
  Setfu::untag_bset_elements(self)
  total_count = 0
  loop do
    tc = Setfu::reduce(self)
    if tc < 0
      total_count = -1
      break
    end
    break if tc == 0
    total_count += tc
    passes -= 1
    break if passes <= 0
  end
  total_count
end
sorted?() click to toggle source
# File lib/setfu.rb, line 68
def sorted?
  return false unless count >=1
  return true if (self & self).count == 1  # [4,4,4,4] is sorted, but not ascending or desending
  return true if ascending?
  return true if descending?
  false
end
stack_rot() click to toggle source
# File lib/setfu.rb, line 30
def stack_rot
  a = pop
  b = pop
  c = pop
  push a
  push c
  push b
end
stack_swap() click to toggle source
# File lib/setfu.rb, line 24
def stack_swap
  a = pop
  b = pop
  push a
  push b
end
tuple() click to toggle source
# File lib/setfu.rb, line 387
def tuple
  Setfu::tuple(self)
end
tuple?() click to toggle source
# File lib/setfu.rb, line 384
def tuple?
  Setfu::tuple?(self)
end
tuples() click to toggle source
# File lib/setfu.rb, line 379
def tuples
  members_to_bset
  rtn = Setfu::tuples(self)
  rtn
end
untag_bset_elements() click to toggle source
# File lib/setfu.rb, line 407
def untag_bset_elements
  Setfu::untag_bset_elements(self)
end
|(item) click to toggle source
# File lib/setfu.rb, line 1208
def |(item)
  return old_or_method4set(item) if (item.type_of? Array)
  a = BitSet.new(self)
  b = BitSet.new(item)
  return a | b 
end
Also aliased as: old_or_method4set