Skip to content

Commit d665cd6

Browse files
committed
use HKL2021-algorithm in .regenerated
1 parent 3955f0e commit d665cd6

File tree

1 file changed

+18
-12
lines changed

1 file changed

+18
-12
lines changed

src/sage/combinat/k_regular_sequence.py

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -421,6 +421,10 @@ def regenerated(self):
421421
422422
A :class:`kRegularSequence`
423423
424+
ALGORITHM:
425+
426+
Theorem B of [HKL2021]_ with `n_0 = 1`.
427+
424428
EXAMPLES::
425429
426430
sage: Seq2 = kRegularSequenceSpace(2, ZZ)
@@ -457,14 +461,14 @@ def regenerated(self):
457461
....: allow_degenerated_sequence=True)
458462
sage: H = S.regenerated(minimize=False)
459463
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]
465469
[-+-]
466-
[3|3]},
467-
(1, 0))
470+
[0|0]},
471+
(1, 1))
468472
sage: H.is_degenerated()
469473
False
470474
"""
@@ -477,19 +481,21 @@ def regenerated(self):
477481

478482
P = self.parent()
479483
dim = self.dimension()
480-
Z = zero_matrix(dim)
484+
Zc = zero_matrix(dim, 1)
485+
Zr = zero_matrix(1, dim)
481486
I = identity_matrix(dim)
482487

483488
itA = iter(P.alphabet())
484489
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]]))
487493
for r in itA)
488494

489495
return P.element_class(
490496
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,)))
493499

494500
def transposed(self, allow_degenerated_sequence=False):
495501
r"""

0 commit comments

Comments
 (0)