Skip to content

Commit 221d33c

Browse files
committed
logging-info: show sequences in k-kernel properly
1 parent e6a5a84 commit 221d33c

File tree

1 file changed

+32
-19
lines changed

1 file changed

+32
-19
lines changed

src/sage/combinat/k_regular_sequence.py

Lines changed: 32 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1040,14 +1040,9 @@ def guess(self, f, n_max=100, max_dimension=10, sequence=None):
10401040
sage: Seq2 = kRegularSequenceSpace(2, ZZ)
10411041
sage: import logging
10421042
sage: logging.basicConfig(level=logging.INFO)
1043-
sage: S1 = Seq2.guess(s)
1043+
sage: S1 = Seq2.guess(s); S1
10441044
INFO:...:including f_{1*m+0}
1045-
INFO:...:M_0: f_{2*m+0} = (1) * X_m
10461045
INFO:...:including f_{2*m+1}
1047-
INFO:...:M_1: f_{2*m+1} = (0, 1) * X_m
1048-
INFO:...:M_0: f_{4*m+1} = (0, 1) * X_m
1049-
INFO:...:M_1: f_{4*m+3} = (-1, 2) * X_m
1050-
sage: S1
10511046
2-regular sequence 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, ...
10521047
sage: S1.linear_representation()
10531048
((1, 0),
@@ -1057,16 +1052,14 @@ def guess(self, f, n_max=100, max_dimension=10, sequence=None):
10571052
[-1 2]},
10581053
(0, 1))
10591054
1060-
sage: from importlib import reload
1061-
sage: logging.shutdown(); _ = reload(logging)
1062-
10631055
We guess again, but this time, we use a constant sequence
10641056
for bootstrapping the guessing process::
10651057
10661058
sage: C = Seq2.one_hadamard(); C
10671059
2-regular sequence 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...
1068-
sage: S2 = Seq2.guess(s, sequence=C)
1069-
sage: S2
1060+
sage: S2 = Seq2.guess(s, sequence=C); S2
1061+
INFO:...:including 2-regular sequence 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...
1062+
INFO:...:including f_{1*m+0}
10701063
2-regular sequence 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, ...
10711064
sage: S2.linear_representation()
10721065
((0, 1),
@@ -1080,8 +1073,9 @@ def guess(self, f, n_max=100, max_dimension=10, sequence=None):
10801073
10811074
The sequence of all natural numbers::
10821075
1083-
sage: S = Seq2.guess(lambda n: n)
1084-
sage: S
1076+
sage: S = Seq2.guess(lambda n: n); S
1077+
INFO:...:including f_{1*m+0}
1078+
INFO:...:including f_{2*m+1}
10851079
2-regular sequence 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ...
10861080
sage: S.linear_representation()
10871081
((1, 0),
@@ -1093,8 +1087,9 @@ def guess(self, f, n_max=100, max_dimension=10, sequence=None):
10931087
10941088
The indicator function of the even integers::
10951089
1096-
sage: S = Seq2.guess(lambda n: ZZ(is_even(n)))
1097-
sage: S
1090+
sage: S = Seq2.guess(lambda n: ZZ(is_even(n))); S
1091+
INFO:...:including f_{1*m+0}
1092+
INFO:...:including f_{2*m+0}
10981093
2-regular sequence 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, ...
10991094
sage: S.linear_representation()
11001095
((1, 0),
@@ -1106,8 +1101,9 @@ def guess(self, f, n_max=100, max_dimension=10, sequence=None):
11061101
11071102
The indicator function of the odd integers::
11081103
1109-
sage: S = Seq2.guess(lambda n: ZZ(is_odd(n)))
1110-
sage: S
1104+
sage: S = Seq2.guess(lambda n: ZZ(is_odd(n))); S
1105+
INFO:...:including f_{1*m+0}
1106+
INFO:...:including f_{2*m+1}
11111107
2-regular sequence 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, ...
11121108
sage: S.linear_representation()
11131109
((1, 0),
@@ -1119,6 +1115,22 @@ def guess(self, f, n_max=100, max_dimension=10, sequence=None):
11191115
11201116
TESTS::
11211117
1118+
sage: from importlib import reload
1119+
sage: logging.shutdown(); _ = reload(logging)
1120+
sage: logging.basicConfig(level=logging.DEBUG)
1121+
sage: Seq2.guess(s)
1122+
INFO:...:including f_{1*m+0}
1123+
DEBUG:...:M_0: f_{2*m+0} = (1) * X_m
1124+
INFO:...:including f_{2*m+1}
1125+
DEBUG:...:M_1: f_{2*m+1} = (0, 1) * X_m
1126+
DEBUG:...:M_0: f_{4*m+1} = (0, 1) * X_m
1127+
DEBUG:...:M_1: f_{4*m+3} = (-1, 2) * X_m
1128+
2-regular sequence 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, ...
1129+
sage: from importlib import reload
1130+
sage: logging.shutdown(); _ = reload(logging)
1131+
1132+
::
1133+
11221134
sage: S = Seq2.guess(lambda n: 2, sequence=C)
11231135
sage: S
11241136
2-regular sequence 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ...
@@ -1194,6 +1206,7 @@ def guess(self, f, n_max=100, max_dimension=10, sequence=None):
11941206
mu = [M.rows() for M in sequence.mu]
11951207
seq = lambda m: sequence.left * sequence._mu_of_word_(
11961208
self._n_to_index_(m))
1209+
logger.info('including %s', sequence)
11971210

11981211
zero = domain(0)
11991212
one = domain(1)
@@ -1307,8 +1320,8 @@ def include(line):
13071320
except ValueError:
13081321
include(line_L)
13091322
solution = (len(lines)-1)*(zero,) + (one,)
1310-
logger.info('M_%s: f_{%s*m+%s} = %s * X_m',
1311-
s_L, k**t_L, r_L, solution)
1323+
logger.debug('M_%s: f_{%s*m+%s} = %s * X_m',
1324+
s_L, k**t_L, r_L, solution)
13121325
mu[s_L].append(solution)
13131326

13141327
d = len(seq(0)) + len(lines)

0 commit comments

Comments
 (0)