Source code for flipper.kernel.splittingsequence


''' A module for representing a splitting sequence of a lamination.

Provides one class: SplittingSequence. '''

import flipper

[docs]class SplittingSequence: ''' This represents a sequence of flips of an Triangulation. ''' def __init__(self, preperiodic, mapping_class, dilatation, lamination): assert isinstance(preperiodic, flipper.kernel.Encoding) assert isinstance(mapping_class, flipper.kernel.Encoding) # assert isinstance(dilatation, flipper.kernel.NumberFieldElement) assert isinstance(lamination, flipper.kernel.Lamination) # We wont bother to save encoding as it can always be reconstructed by: # self.mapping_class.inverse() * self.preperiodic self.preperiodic = preperiodic self.mapping_class = mapping_class self.dilatation = dilatation self.lamination = lamination self.triangulation = self.lamination.triangulation # Write some things into the cache. # Hmmm, this assumes we're not taking roots. self.mapping_class._cache['invariant_lamination'] = (self.dilatation, self.lamination)
[docs]class SplittingSequences: ''' This represents a sequence of flips of an Triangulation. ''' def __init__(self, encoding, isometries, index, dilatation, lamination): assert isinstance(encoding, flipper.kernel.Encoding) assert isinstance(index, flipper.IntegerType) # assert isinstance(dilatation, flipper.kernel.NumberFieldElement) assert isinstance(lamination, flipper.kernel.Lamination) # We wont bother to save encoding as it can always be reconstructed by: # self.mapping_class.inverse() * self.preperiodic self.encoding = encoding self.isometries = isometries self.index = index self.dilatation = dilatation self.lamination = lamination self.preperiodic = self.encoding[-self.index:] self.open_periodic = self.encoding[:-self.index] def __iter__(self): for isometry in self.isometries: # We will reverse the direction of self.mapping_class so that self.lamination is the stable lamination. yield SplittingSequence(self.preperiodic, (isometry.encode() * self.open_periodic).inverse(), self.dilatation, self.lamination)