module Algebra::OperatorDomain

Public Instance Methods

act(other)
Alias for: right_act
coset(other)
Alias for: right_quotient
left_act(other) click to toggle source
# File lib/algebra/finite-group.rb, line 19
def left_act(other)
  other.right_act(self)
end
left_coset(other)
Alias for: left_quotient
left_orbit!(other) click to toggle source
# File lib/algebra/finite-group.rb, line 98
def left_orbit!(other)
  other.right_orbit!(self)
end
left_quotient(other) click to toggle source
# File lib/algebra/finite-group.rb, line 39
def left_quotient(other)
  s = Set.phi
  remain = cast.dup
  until remain.empty?
    x = remain.shift
    t = Set[x].left_act(other)
    s.push t
    remain -= t
  end
  s
end
Also aliased as: left_coset
left_representatives(other) click to toggle source
# File lib/algebra/finite-group.rb, line 67
def left_representatives(other)
  s = Set.phi
  remain = cast.dup
  until remain.empty?
    x = remain.shift
    t = self.class[x].left_act(other)
    s.push x
    remain -= t
  end
  s
end
orbit!(other)
Alias for: right_orbit!
quotient(other)
Alias for: right_quotient
representatives(other)
right_act(other) click to toggle source
# File lib/algebra/finite-group.rb, line 12
def right_act(other)
  cast.product(other.cast) { |x, y| x * y }
  #      product(other, self.class[unity]) {|x, y| x * y}
end
Also aliased as: act
right_coset(other)
Alias for: right_quotient
right_orbit!(other) click to toggle source
# File lib/algebra/finite-group.rb, line 79
def right_orbit!(other)
  news = Set.phi
  loop do
    each_product(other) do |x, y|
      z = x * y
      news.push z unless include?(z) || news.include?(z)
    end
    if news.empty?
      break
    else
      concat news
      news = Set.phi
    end
  end
  self
end
Also aliased as: orbit!
right_quotient(other) click to toggle source
# File lib/algebra/finite-group.rb, line 23
def right_quotient(other)
  s = Set.phi
  remain = cast.dup
  until remain.empty?
    x = remain.shift
    t = Set[x].right_act(other)
    s.push t
    remain -= t
  end
  s
end
Also aliased as: quotient, right_coset, coset
right_representatives(other) click to toggle source
# File lib/algebra/finite-group.rb, line 53
def right_representatives(other)
  s = Set.phi
  remain = cast.dup
  until remain.empty?
    x = remain.shift
    t = self.class[x].act(other)
    s.push x
    remain -= t
  end
  s
end
Also aliased as: representatives