module Algebra::OperatorDomain
Public Instance Methods
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_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
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_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
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