Skip to content

Commit f7cacfe

Browse files
committed
Trac #21325 review comment 8: rewrite subsequences to use block matrices
1 parent 76d6d86 commit f7cacfe

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

src/sage/combinat/k_regular_sequence.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -486,27 +486,27 @@ def subsequence(self, a, b):
486486
def pad(T, d):
487487
di = kernel.index(d)
488488
return (di*dim)*(0,) + T
489-
def mu_line(r, i, c):
490-
d, f = (a*r + c).quo_rem(k)
491-
if d not in kernel:
492-
kernel.append(d)
493-
return pad(tuple(self.mu[f].rows()[i]), d)
494489

495-
lines = {r: [] for r in A}
490+
Z = self.mu[0].parent().zero()
491+
492+
blocks = {r: [] for r in A}
496493
ci = 0
497494
while ci < len(kernel):
498495
c = kernel[ci]
499496
for r in A:
500-
for i in srange(dim):
501-
lines[r].append(mu_line(r, i, c))
497+
d, f = (a*r + c).quo_rem(k)
498+
if d not in kernel:
499+
kernel.append(d)
500+
di = kernel.index(d)
501+
blocks[r].append(di*[Z] + [self.mu[f]])
502502
ci += 1
503503

504504
ndim = len(kernel) * dim
505505
result = P.element_class(
506506
P,
507-
dict((r, Matrix([pad_right(row, ndim, zero=zero)
508-
for row in lines[r]]))
509-
for r in A),
507+
{r: Matrix.block([pad_right(row, len(kernel), zero=Z)
508+
for row in blocks[r]])
509+
for r in A},
510510
sum(c_j * vector(
511511
pad_right(pad(tuple(self.left), b_j), ndim, zero=zero))
512512
for b_j, c_j in b.items()),

0 commit comments

Comments
 (0)