Skip to content

Conversation

@darijgr
Copy link
Contributor

@darijgr darijgr commented Jun 11, 2024

Row and column stabilizers and the usual a, b, e elements of the symmetric group algebra are now computable for skew standard tableaux, not just for straight ones.

The a, b, e functions are still not exposed at class level, but this can be done another day.

The performance cost (at least on the e function) is trivial:

sage: %timeit eold([[2,3],[1,4]])
1.29 ms ± 12.7 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops each)
sage: %timeit enew([[2,3],[1,4]])
1.29 ms ± 15.5 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops each)
sage: %timeit eold([[2,3],[1,4],[5,7]])
3.43 ms ± 141 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
sage: %timeit enew([[2,3],[1,4],[5,7]])
3.44 ms ± 158 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

(Tested using factored-out code, since the actual functions are cached.)

@darijgr darijgr requested a review from tscrim June 11, 2024 12:55
@github-actions
Copy link

github-actions bot commented Jun 11, 2024

Documentation preview for this PR (built with commit a9c13b1; changes) is ready! 🎉
This preview will update shortly after each push to this PR.

Copy link
Collaborator

@tscrim tscrim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just some minor details.

Comment on lines 1154 to 1155
sage: rs = SkewTableau([[None,1,2,3],[4,5]]).row_stabilizer()
sage: rs.order() == factorial(3)*factorial(2)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
sage: rs = SkewTableau([[None,1,2,3],[4,5]]).row_stabilizer()
sage: rs.order() == factorial(3)*factorial(2)
sage: rs = SkewTableau([[None,1,2,3], [4,5]]).row_stabilizer()
sage: rs.order() == factorial(3) * factorial(2)

And perhaps similar spacing between the lists. At least, it should be consistent (see the next rs = ... below).

Co-authored-by: Travis Scrimshaw <[email protected]>
Copy link
Collaborator

@tscrim tscrim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you. LGTM.

@darijgr
Copy link
Contributor Author

darijgr commented Jun 12, 2024

Thank you, Travis!

@mkoeppe
Copy link
Contributor

mkoeppe commented Jun 12, 2024

Lint failure, please fix

@darijgr
Copy link
Contributor Author

darijgr commented Jun 12, 2024

Right, good catch. Fixed!

vbraun pushed a commit to vbraun/sage that referenced this pull request Jun 16, 2024
sagemathgh-38197: Column and row stabilizers for skew tableaux
    
Row and column stabilizers and the usual a, b, e elements of the
symmetric group algebra are now computable for skew standard tableaux,
not just for straight ones.

The a, b, e functions are still not exposed at class level, but this can
be done another day.

The performance cost (at least on the e function) is trivial:

```
sage: %timeit eold([[2,3],[1,4]])
1.29 ms ± 12.7 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops
each)
sage: %timeit enew([[2,3],[1,4]])
1.29 ms ± 15.5 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops
each)
sage: %timeit eold([[2,3],[1,4],[5,7]])
3.43 ms ± 141 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
sage: %timeit enew([[2,3],[1,4],[5,7]])
3.44 ms ± 158 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
```
(Tested using factored-out code, since the actual functions are cached.)
    
URL: sagemath#38197
Reported by: Darij Grinberg
Reviewer(s): Travis Scrimshaw
vbraun pushed a commit to vbraun/sage that referenced this pull request Jun 16, 2024
sagemathgh-38197: Column and row stabilizers for skew tableaux
    
Row and column stabilizers and the usual a, b, e elements of the
symmetric group algebra are now computable for skew standard tableaux,
not just for straight ones.

The a, b, e functions are still not exposed at class level, but this can
be done another day.

The performance cost (at least on the e function) is trivial:

```
sage: %timeit eold([[2,3],[1,4]])
1.29 ms ± 12.7 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops
each)
sage: %timeit enew([[2,3],[1,4]])
1.29 ms ± 15.5 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops
each)
sage: %timeit eold([[2,3],[1,4],[5,7]])
3.43 ms ± 141 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
sage: %timeit enew([[2,3],[1,4],[5,7]])
3.44 ms ± 158 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
```
(Tested using factored-out code, since the actual functions are cached.)
    
URL: sagemath#38197
Reported by: Darij Grinberg
Reviewer(s): Travis Scrimshaw
@vbraun vbraun merged commit a43e74a into sagemath:develop Jun 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants