예제 #1
0
    def is_complete(self):
        r"""
        Return whether that all winners appear.

        EXAMPLES::

            sage: from surface_dynamics import iet

            sage: p = iet.Permutation('a b c d e f', 'f e d c b a')
            sage: q = p.rauzy_move('t').rauzy_move('b').rauzy_move('t')
            sage: f = iet.FlipSequence(q, ['t', 't', 'b', 'b', 'b', 't', 'b', 't'],
            ....:                      top_bottom_inverse=True,
            ....:                      left_right_inverse=True)
            sage: f.close()
            sage: f.is_complete()
            True
        """
        if not self._start == self._end:
            raise ValueError('not a loop')
        n = len(self._start)
        moved = set()
        for p, winner, side in self:
            moved.update(perm_orbit(self._relabelling, p._labels[winner][side]))
            if len(moved) == n:
                return True
        return False
예제 #2
0
 def face_orbit(self, i):
     r"""
     Return the orbit of ``i`` under the permutation associated to faces.
     """
     if self._active_darts[i]:
         return perm_orbit(self._faces,i)
     return None
예제 #3
0
 def face_orbit(self, i):
     r"""
     Return the orbit of ``i`` under the permutation associated to faces.
     """
     if self._active_darts[i]:
         return perm_orbit(self._faces,i)
     return None
예제 #4
0
 def edge_orbit(self, i):
     r"""
     Return the orbit of the dart ``i`` under the permutation that defines
     the edges.
     """
     if self._active_darts[i]:
         return perm_orbit(self._edges,i)
     return None
예제 #5
0
 def vertex_orbit(self, i):
     r"""
     Return the orbit of ``i`` under the permutation that define the
     vertices.
     """
     if self._active_darts[i]:
         return perm_orbit(self._vertices,i)
     return None
예제 #6
0
 def edge_orbit(self, i):
     r"""
     Return the orbit of the dart ``i`` under the permutation that defines
     the edges.
     """
     if self._active_darts[i]:
         return perm_orbit(self._edges,i)
     return None
예제 #7
0
 def vertex_orbit(self, i):
     r"""
     Return the orbit of ``i`` under the permutation that define the
     vertices.
     """
     if self._active_darts[i]:
         return perm_orbit(self._vertices,i)
     return None