@@ -1040,14 +1040,9 @@ def guess(self, f, n_max=100, max_dimension=10, sequence=None):
1040
1040
sage: Seq2 = kRegularSequenceSpace(2, ZZ)
1041
1041
sage: import logging
1042
1042
sage: logging.basicConfig(level=logging.INFO)
1043
- sage: S1 = Seq2.guess(s)
1043
+ sage: S1 = Seq2.guess(s); S1
1044
1044
INFO:...:including f_{1*m+0}
1045
- INFO:...:M_0: f_{2*m+0} = (1) * X_m
1046
1045
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
1051
1046
2-regular sequence 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, ...
1052
1047
sage: S1.linear_representation()
1053
1048
((1, 0),
@@ -1057,16 +1052,14 @@ def guess(self, f, n_max=100, max_dimension=10, sequence=None):
1057
1052
[-1 2]},
1058
1053
(0, 1))
1059
1054
1060
- sage: from importlib import reload
1061
- sage: logging.shutdown(); _ = reload(logging)
1062
-
1063
1055
We guess again, but this time, we use a constant sequence
1064
1056
for bootstrapping the guessing process::
1065
1057
1066
1058
sage: C = Seq2.one_hadamard(); C
1067
1059
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}
1070
1063
2-regular sequence 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, ...
1071
1064
sage: S2.linear_representation()
1072
1065
((0, 1),
@@ -1080,8 +1073,9 @@ def guess(self, f, n_max=100, max_dimension=10, sequence=None):
1080
1073
1081
1074
The sequence of all natural numbers::
1082
1075
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}
1085
1079
2-regular sequence 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ...
1086
1080
sage: S.linear_representation()
1087
1081
((1, 0),
@@ -1093,8 +1087,9 @@ def guess(self, f, n_max=100, max_dimension=10, sequence=None):
1093
1087
1094
1088
The indicator function of the even integers::
1095
1089
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}
1098
1093
2-regular sequence 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, ...
1099
1094
sage: S.linear_representation()
1100
1095
((1, 0),
@@ -1106,8 +1101,9 @@ def guess(self, f, n_max=100, max_dimension=10, sequence=None):
1106
1101
1107
1102
The indicator function of the odd integers::
1108
1103
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}
1111
1107
2-regular sequence 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, ...
1112
1108
sage: S.linear_representation()
1113
1109
((1, 0),
@@ -1119,6 +1115,22 @@ def guess(self, f, n_max=100, max_dimension=10, sequence=None):
1119
1115
1120
1116
TESTS::
1121
1117
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
+
1122
1134
sage: S = Seq2.guess(lambda n: 2, sequence=C)
1123
1135
sage: S
1124
1136
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):
1194
1206
mu = [M .rows () for M in sequence .mu ]
1195
1207
seq = lambda m : sequence .left * sequence ._mu_of_word_ (
1196
1208
self ._n_to_index_ (m ))
1209
+ logger .info ('including %s' , sequence )
1197
1210
1198
1211
zero = domain (0 )
1199
1212
one = domain (1 )
@@ -1307,8 +1320,8 @@ def include(line):
1307
1320
except ValueError :
1308
1321
include (line_L )
1309
1322
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 )
1312
1325
mu [s_L ].append (solution )
1313
1326
1314
1327
d = len (seq (0 )) + len (lines )
0 commit comments