Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

use unicode characters to display tables #36857

Merged
merged 3 commits into from
Jan 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions src/doc/en/prep/Programming.rst
Original file line number Diff line number Diff line change
Expand Up @@ -379,13 +379,13 @@ when doing some of our plotting and limits. What do you think will
happen if you put dollar signs around the labels in the header? ::

sage: table( [('i', 'det(A^i)')] + [ (i,det(A^i)) for i in [0..4] ], header_row=True)
i det(A^i)
+---+----------+
0 1
1 -2
2 4
3 -8
4 16
i det(A^i)
β”œβ”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
0 1
1 -2
2 4
3 -8
4 16


.. _Defs:
Expand Down
228 changes: 114 additions & 114 deletions src/sage/combinat/bijectionist.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,54 +68,54 @@
sage: bij.set_statistics((len, len), (alpha1, beta1), (alpha2, beta2))
sage: a, b = bij.statistics_table()
sage: table(a, header_row=True, frame=True)
+-----------+--------+--------+--------+
| a | Ξ±_1(a) | Ξ±_2(a) | Ξ±_3(a) |
+===========+========+========+========+
| [] | 0 | 0 | 0 |
+-----------+--------+--------+--------+
| [1] | 1 | 1 | 1 |
+-----------+--------+--------+--------+
| [1, 2] | 2 | 2 | 2 |
+-----------+--------+--------+--------+
| [2, 1] | 2 | 1 | 0 |
+-----------+--------+--------+--------+
| [1, 2, 3] | 3 | 3 | 3 |
+-----------+--------+--------+--------+
| [1, 3, 2] | 3 | 2 | 1 |
+-----------+--------+--------+--------+
| [2, 1, 3] | 3 | 2 | 1 |
+-----------+--------+--------+--------+
| [2, 3, 1] | 3 | 2 | 0 |
+-----------+--------+--------+--------+
| [3, 1, 2] | 3 | 1 | 0 |
+-----------+--------+--------+--------+
| [3, 2, 1] | 3 | 2 | 1 |
+-----------+--------+--------+--------+
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ a | Ξ±_1(a) | Ξ±_2(a) | Ξ±_3(a) |
β•žβ•β•β•β•β•β•β•β•β•β•β•β•ͺ════════β•ͺ════════β•ͺ════════║
β”‚ [] | 0 | 0 | 0 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [1] | 1 | 1 | 1 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [1, 2] | 2 | 2 | 2 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [2, 1] | 2 | 1 | 0 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [1, 2, 3] | 3 | 3 | 3 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [1, 3, 2] | 3 | 2 | 1 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [2, 1, 3] | 3 | 2 | 1 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [2, 3, 1] | 3 | 2 | 0 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [3, 1, 2] | 3 | 1 | 0 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [3, 2, 1] | 3 | 2 | 1 |
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”˜

sage: table(b, header_row=True, frame=True)
+-----------+---+--------+--------+--------+
| b | Ο„ | Ξ²_1(b) | Ξ²_2(b) | Ξ²_3(b) |
+===========+===+========+========+========+
| [] | 0 | 0 | 0 | 0 |
+-----------+---+--------+--------+--------+
| [1] | 1 | 1 | 1 | 1 |
+-----------+---+--------+--------+--------+
| [1, 2] | 2 | 2 | 1 | 0 |
+-----------+---+--------+--------+--------+
| [2, 1] | 1 | 2 | 2 | 2 |
+-----------+---+--------+--------+--------+
| [1, 2, 3] | 3 | 3 | 1 | 0 |
+-----------+---+--------+--------+--------+
| [1, 3, 2] | 2 | 3 | 2 | 1 |
+-----------+---+--------+--------+--------+
| [2, 1, 3] | 2 | 3 | 2 | 1 |
+-----------+---+--------+--------+--------+
| [2, 3, 1] | 2 | 3 | 2 | 1 |
+-----------+---+--------+--------+--------+
| [3, 1, 2] | 2 | 3 | 2 | 0 |
+-----------+---+--------+--------+--------+
| [3, 2, 1] | 1 | 3 | 3 | 3 |
+-----------+---+--------+--------+--------+
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ b | Ο„ | Ξ²_1(b) | Ξ²_2(b) | Ξ²_3(b) |
β•žβ•β•β•β•β•β•β•β•β•β•β•β•ͺ═══β•ͺ════════β•ͺ════════β•ͺ════════║
β”‚ [] | 0 | 0 | 0 | 0 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [1] | 1 | 1 | 1 | 1 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [1, 2] | 2 | 2 | 1 | 0 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [2, 1] | 1 | 2 | 2 | 2 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [1, 2, 3] | 3 | 3 | 1 | 0 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [1, 3, 2] | 2 | 3 | 2 | 1 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [2, 1, 3] | 2 | 3 | 2 | 1 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [2, 3, 1] | 2 | 3 | 2 | 1 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [3, 1, 2] | 2 | 3 | 2 | 0 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [3, 2, 1] | 1 | 3 | 3 | 3 |
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”˜

sage: from sage.combinat.cyclic_sieving_phenomenon import orbit_decomposition
sage: bij.set_constant_blocks(orbit_decomposition(A, rotate_permutation))
Expand Down Expand Up @@ -854,53 +854,53 @@ def statistics_table(self, header=True):
sage: bij.set_statistics((wex, des), (fix, adj))
sage: a, b = bij.statistics_table()
sage: table(a, header_row=True, frame=True)
+-----------+--------+--------+
| a | Ξ±_1(a) | Ξ±_2(a) |
+===========+========+========+
| [] | 0 | 0 |
+-----------+--------+--------+
| [1] | 1 | 1 |
+-----------+--------+--------+
| [1, 2] | 2 | 2 |
+-----------+--------+--------+
| [2, 1] | 1 | 0 |
+-----------+--------+--------+
| [1, 2, 3] | 3 | 3 |
+-----------+--------+--------+
| [1, 3, 2] | 2 | 1 |
+-----------+--------+--------+
| [2, 1, 3] | 2 | 1 |
+-----------+--------+--------+
| [2, 3, 1] | 2 | 0 |
+-----------+--------+--------+
| [3, 1, 2] | 1 | 0 |
+-----------+--------+--------+
| [3, 2, 1] | 2 | 1 |
+-----------+--------+--------+
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ a | Ξ±_1(a) | Ξ±_2(a) |
β•žβ•β•β•β•β•β•β•β•β•β•β•β•ͺ════════β•ͺ════════║
β”‚ [] | 0 | 0 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [1] | 1 | 1 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [1, 2] | 2 | 2 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [2, 1] | 1 | 0 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [1, 2, 3] | 3 | 3 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [1, 3, 2] | 2 | 1 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [2, 1, 3] | 2 | 1 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [2, 3, 1] | 2 | 0 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [3, 1, 2] | 1 | 0 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [3, 2, 1] | 2 | 1 |
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”˜
sage: table(b, header_row=True, frame=True)
+-----------+---+--------+--------+
| b | Ο„ | Ξ²_1(b) | Ξ²_2(b) |
+===========+===+========+========+
| [] | 0 | 0 | 0 |
+-----------+---+--------+--------+
| [1] | 1 | 1 | 1 |
+-----------+---+--------+--------+
| [1, 2] | 2 | 1 | 0 |
+-----------+---+--------+--------+
| [2, 1] | 1 | 2 | 2 |
+-----------+---+--------+--------+
| [1, 2, 3] | 3 | 1 | 0 |
+-----------+---+--------+--------+
| [1, 3, 2] | 2 | 2 | 1 |
+-----------+---+--------+--------+
| [2, 1, 3] | 2 | 2 | 1 |
+-----------+---+--------+--------+
| [2, 3, 1] | 2 | 2 | 1 |
+-----------+---+--------+--------+
| [3, 1, 2] | 2 | 2 | 0 |
+-----------+---+--------+--------+
| [3, 2, 1] | 1 | 3 | 3 |
+-----------+---+--------+--------+
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ b | Ο„ | Ξ²_1(b) | Ξ²_2(b) |
β•žβ•β•β•β•β•β•β•β•β•β•β•β•ͺ═══β•ͺ════════β•ͺ════════║
β”‚ [] | 0 | 0 | 0 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [1] | 1 | 1 | 1 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [1, 2] | 2 | 1 | 0 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [2, 1] | 1 | 2 | 2 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [1, 2, 3] | 3 | 1 | 0 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [1, 3, 2] | 2 | 2 | 1 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [2, 1, 3] | 2 | 2 | 1 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [2, 3, 1] | 2 | 2 | 1 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [3, 1, 2] | 2 | 2 | 0 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [3, 2, 1] | 1 | 3 | 3 |
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”˜

TESTS:

Expand All @@ -911,29 +911,29 @@ def statistics_table(self, header=True):
sage: bij = Bijectionist(A, B, tau)
sage: a, b = bij.statistics_table()
sage: table(a, header_row=True, frame=True)
+--------+
| a |
+========+
| [] |
+--------+
| [1] |
+--------+
| [1, 2] |
+--------+
| [2, 1] |
+--------+
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ a |
β•žβ•β•β•β•β•β•β•β•β•‘
β”‚ [] |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [1] |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [1, 2] |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [2, 1] |
β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜
sage: table(b, header_row=True, frame=True)
+--------+---+
| b | Ο„ |
+========+===+
| [] | 0 |
+--------+---+
| [1] | 1 |
+--------+---+
| [1, 2] | 2 |
+--------+---+
| [2, 1] | 1 |
+--------+---+
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”
β”‚ b | Ο„ |
β•žβ•β•β•β•β•β•β•β•β•ͺ═══║
β”‚ [] | 0 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€
β”‚ [1] | 1 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€
β”‚ [1, 2] | 2 |
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€
β”‚ [2, 1] | 1 |
β””β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”˜

We can omit the header::

Expand Down
Loading
Loading