Skip to content
Snippets Groups Projects
Commit 7dc759bc authored by Radek Hušek's avatar Radek Hušek
Browse files

GraphSequence::stabilize change jordan=True to False

Sage cannot compute Jordan form of larger matrices
in reasonable time.
parent 2438bf90
No related branches found
No related tags found
No related merge requests found
...@@ -238,7 +238,7 @@ def _init_(): ...@@ -238,7 +238,7 @@ def _init_():
def graph(self, n): def graph(self, n):
return self._graph_cache.get(n, lambda: self._make_graph(self.gadget(n))) return self._graph_cache.get(n, lambda: self._make_graph(self.gadget(n)))
def stabilize(self, parameter, start_at=None, jordan=True): def stabilize(self, parameter, start_at=None, jordan=False):
from sage.all import matrix, QQ, binomial, SR from sage.all import matrix, QQ, binomial, SR
if start_at is None: start_at = self.sequence_start if start_at is None: start_at = self.sequence_start
......
...@@ -20,12 +20,12 @@ ...@@ -20,12 +20,12 @@
True True
>>> Necklace.stabilize(CircuitDoubleCover) >>> Necklace.stabilize(CircuitDoubleCover, jordan=True)
Loop 1 done - 1 boundaries (0 new) Loop 1 done - 1 boundaries (0 new)
{'variables': [((1, 2), (1, 2), None)], 'step_matrix': [4], 'initial_vector': [2], \ {'variables': [((1, 2), (1, 2), None)], 'step_matrix': [4], 'initial_vector': [2], \
'finalize': [1], 'simplified': ([1], [4], [2]), 'formula': 1/2*4^k, 'formula_if': k - 1 >= 0} 'finalize': [1], 'simplified': ([1], [4], [2]), 'formula': 1/2*4^k, 'formula_if': k - 1 >= 0}
>>> f = CyclicLadder().stabilize(CircuitDoubleCover, start_at=1)['formula']; f >>> f = CyclicLadder().stabilize(CircuitDoubleCover, start_at=1, jordan=True)['formula']; f
Loop 1 done - 6 boundaries (6 new) Loop 1 done - 6 boundaries (6 new)
Loop 2 done - 13 boundaries (6 new) Loop 2 done - 13 boundaries (6 new)
Loop 3 done - 15 boundaries (2 new) Loop 3 done - 15 boundaries (2 new)
...@@ -33,7 +33,7 @@ Loop 4 done - 15 boundaries (0 new) ...@@ -33,7 +33,7 @@ Loop 4 done - 15 boundaries (0 new)
1/2*(-1)^k*(k - 1) + 1/6*4^(k - 1) + 3*2^(k - 1) + 1/3*(-2)^(k - 2) - 5/2*k - 3/2 1/2*(-1)^k*(k - 1) + 1/6*4^(k - 1) + 3*2^(k - 1) + 1/3*(-2)^(k - 2) - 5/2*k - 3/2
>>> assert all( f(k=k) == cdc_count(CyclicLadder().graph(k)) for k in range(3, 10) ) >>> assert all( f(k=k) == cdc_count(CyclicLadder().graph(k)) for k in range(3, 10) )
>>> f = CyclicLadder(crossed=True).stabilize(CircuitDoubleCover, start_at=3)['formula']; f >>> f = CyclicLadder(crossed=True).stabilize(CircuitDoubleCover, start_at=3, jordan=True)['formula']; f
Loop 1 done - 12 boundaries (4 new) Loop 1 done - 12 boundaries (4 new)
Loop 2 done - 14 boundaries (0 new) Loop 2 done - 14 boundaries (0 new)
-1/2*(-1)^k*k + 1/6*4^(k - 1) + 3*2^(k - 1) + 1/3*(-2)^(k - 2) - 5/2*k -1/2*(-1)^k*k + 1/6*4^(k - 1) + 3*2^(k - 1) + 1/3*(-2)^(k - 2) - 5/2*k
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment