@@ -421,6 +421,10 @@ def regenerated(self):
421
421
422
422
A :class:`kRegularSequence`
423
423
424
+ ALGORITHM:
425
+
426
+ Theorem B of [HKL2021]_ with `n_0 = 1`.
427
+
424
428
EXAMPLES::
425
429
426
430
sage: Seq2 = kRegularSequenceSpace(2, ZZ)
@@ -457,14 +461,14 @@ def regenerated(self):
457
461
....: allow_degenerated_sequence=True)
458
462
sage: H = S.regenerated(minimize=False)
459
463
sage: H.linear_representation()
460
- ((1, 1 ),
461
- Finite family {0: [1|0 ]
462
- [-+ -]
463
- [0|2 ],
464
- 1: [0 |0]
464
+ ((1, 0 ),
465
+ Finite family {0: [ 2|-1 ]
466
+ [--+- -]
467
+ [ 0| 1 ],
468
+ 1: [3 |0]
465
469
[-+-]
466
- [3|3 ]},
467
- (1, 0 ))
470
+ [0|0 ]},
471
+ (1, 1 ))
468
472
sage: H.is_degenerated()
469
473
False
470
474
"""
@@ -477,19 +481,21 @@ def regenerated(self):
477
481
478
482
P = self .parent ()
479
483
dim = self .dimension ()
480
- Z = zero_matrix (dim )
484
+ Zc = zero_matrix (dim , 1 )
485
+ Zr = zero_matrix (1 , dim )
481
486
I = identity_matrix (dim )
482
487
483
488
itA = iter (P .alphabet ())
484
489
z = next (itA )
485
- mu = {z : Matrix .block ([[I , Z ], [Z , self .mu [z ]]])}
486
- mu .update ((r , Matrix .block ([[Z , Z ], [self .mu [r ], self .mu [r ]]]))
490
+ W0 = Matrix (dim , 1 , (I - self .mu [z ]) * self .right )
491
+ mu = {z : Matrix .block ([[self .mu [z ], W0 ], [Zr , 1 ]])}
492
+ mu .update ((r , Matrix .block ([[self .mu [r ], Zc ], [Zr , 0 ]]))
487
493
for r in itA )
488
494
489
495
return P .element_class (
490
496
P , mu ,
491
- vector (2 * tuple (self .left )),
492
- vector (tuple (self .right ) + dim * ( 0 ,)))
497
+ vector (tuple (self .left ) + ( 0 , )),
498
+ vector (tuple (self .right ) + ( 1 ,)))
493
499
494
500
def transposed (self , allow_degenerated_sequence = False ):
495
501
r"""
0 commit comments