def orbit(self, v): r""" Returns the orbit of the vector ``v`` under the action of the permutation group defining ``self``. The result is a set. INPUT: - ``v`` - an element of ``self`` or any list of length the degree of the permutation group. EXAMPLES: We convert the result in a list in increasing lexicographic order, to get a reproducible doctest:: sage: I = IntegerVectorsModPermutationGroup(PermutationGroup([[(1,2,3,4)]]),4) sage: I.orbit([1,1,1,1]) {[1, 1, 1, 1]} sage: sorted(I.orbit([3,0,0,1])) [[0, 0, 1, 3], [0, 1, 3, 0], [1, 3, 0, 0], [3, 0, 0, 1]] """ assert isinstance( v, (list, ClonableIntArray )), '%s should be a Python list or an element of %s' % (v, self) try: if v.parent() is self: return orbit(self._sgs, v) except Exception: return orbit(self._sgs, self.element_class(self, v, check=False))
def orbit(self, v): r""" Returns the orbit of the vector ``v`` under the action of the permutation group defining ``self``. The result is a set. INPUT: - ``v`` - an element of ``self`` or any list of length the degree of the permutation group. EXAMPLES: We convert the result in a list in increasing lexicographic order, to get a reproducible doctest:: sage: I = IntegerVectorsModPermutationGroup(PermutationGroup([[(1,2,3,4)]]),4) sage: I.orbit([1,1,1,1]) {[1, 1, 1, 1]} sage: sorted(I.orbit([3,0,0,1])) [[0, 0, 1, 3], [0, 1, 3, 0], [1, 3, 0, 0], [3, 0, 0, 1]] """ assert isinstance(v, (list, ClonableIntArray)), '%s shoud be a Python list or an element of %s'%(v, self) try: if v.parent() is self: return orbit(self._sgs, v) except Exception: return orbit(self._sgs, self.element_class(self, v, check=False))
def orbit(self, v): r""" Returns the orbit of the integer vector ``v`` under the action of the permutation group defining ``self``. The result is a set. EXAMPLES: In order to get reproducible doctests, we convert the returned sets into lists in increasing lexicographic order:: sage: I = IntegerVectorsModPermutationGroup(PermutationGroup([[(1,2,3,4)]])) sage: sorted(I.orbit([2,2,0,0])) [[0, 0, 2, 2], [0, 2, 2, 0], [2, 0, 0, 2], [2, 2, 0, 0]] sage: sorted(I.orbit([2,1,0,0])) [[0, 0, 2, 1], [0, 2, 1, 0], [1, 0, 0, 2], [2, 1, 0, 0]] sage: sorted(I.orbit([2,0,1,0])) [[0, 1, 0, 2], [0, 2, 0, 1], [1, 0, 2, 0], [2, 0, 1, 0]] sage: sorted(I.orbit([2,0,2,0])) [[0, 2, 0, 2], [2, 0, 2, 0]] sage: I.orbit([1,1,1,1]) {[1, 1, 1, 1]} """ assert isinstance( v, (list, ClonableIntArray )), '%s should be a Python list or an element of %s' % (v, self) try: if v.parent() is self: return orbit(self._sgs, v) raise TypeError except Exception: return orbit(self._sgs, self.element_class(self, v, check=False))
def orbit(self, v): r""" Returns the orbit of the integer vector ``v`` under the action of the permutation group defining ``self``. The result is a set. EXAMPLES: In order to get reproducible doctests, we convert the returned sets into lists in increasing lexicographic order:: sage: I = IntegerVectorsModPermutationGroup(PermutationGroup([[(1,2,3,4)]])) sage: sorted(I.orbit([2,2,0,0])) [[0, 0, 2, 2], [0, 2, 2, 0], [2, 0, 0, 2], [2, 2, 0, 0]] sage: sorted(I.orbit([2,1,0,0])) [[0, 0, 2, 1], [0, 2, 1, 0], [1, 0, 0, 2], [2, 1, 0, 0]] sage: sorted(I.orbit([2,0,1,0])) [[0, 1, 0, 2], [0, 2, 0, 1], [1, 0, 2, 0], [2, 0, 1, 0]] sage: sorted(I.orbit([2,0,2,0])) [[0, 2, 0, 2], [2, 0, 2, 0]] sage: I.orbit([1,1,1,1]) {[1, 1, 1, 1]} """ assert isinstance(v, (list, ClonableIntArray)), '%s shoud be a Python list or an element of %s'%(v, self) try: if v.parent() is self: return orbit(self._sgs, v) raise TypeError except Exception: return orbit(self._sgs, self.element_class(self, v, check=False))