-
-
Notifications
You must be signed in to change notification settings - Fork 482
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
Add graphical output to operation tables #8598
Comments
comment:1
The basic functionality can be obtained from matplotlib by using
However, this picture has an unwanted border with tick marks, and the names of group elements should (optionally) be put in the boxes. See the multiplication tables created by Group Explorer for what the output should look like. As in Group Explorer, there should be an option to organize the elements of the group by the cosets of a subgroup H (and use the same color for all elements of each coset), but that could be moved to a separate ticket if it turns out to be difficult. This project will require an understanding of matplotlib and basic abstract algebra (groups, subgroups, and cosets). It will only be useful for fairly small groups, so there should not be any need for clever optimizations. The source code for |
comment:4
Setting new milestone based on a cursory review of ticket status, priority, and last modification date. |
comment:9
I've just opened a PR here #109 Haven't contributed to sage before so please let me know if I've done anything wrong / need to do anything else! |
comment:11
Replying to Dave Morris:
There's no immediately obvious way to implement coset functionality here, since the OperationTable type supports all magmas rather than just groups - I think we should have a separate ticket for this. |
comment:12
Replying to @Bruno-TT:
Could you please add a branch here? We don't take PRs on github yet. To do so, upload a public ssh key from an ssh keypair to your github account, then $ git remote add trac git@trac.sagemath.org:sage.git
$ git checkout -b u/gh-Bruno-TT/ticket_8598 # or something like this
$ git puch trac HEAD and add the branch name, i.e. |
Author: gh-Bruno-TT |
Commit: |
Branch: u/gh-Bruno-TT/ticket_8598 |
Dependencies: Matrix, matrix_plot, sage.plot.text |
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:30
OK, looks good enough now. I took out the documentation hack - now it looks not necessary, in fact (no idea why) |
New commits:
|
Changed branch from u/dimpase/ticket_8598 to public/ticket_8598 |
comment:32
OK, fine, thanks. |
comment:33
Merge failure on top of: c729945 Trac #34891: fixing some E502 in tensor, dynamics, modules, plot, numerical bc832cb Trac #34889: Installation guide: On WSL, clear /mnt/c stuff from PATH 3570a9a Trac #34881: allow to remove no constraints 0ceb103 Trac #34878: MixedIntegerLinearProgram.add_constraint: Option to return row indices, fix handling of empty constraints df74efb Trac #34859: sagelib: Remove unnecessary import of typing_extensions b6a76d7 Trac #34857: bump giac's GIAC_MIN_VERSION to 1.9 6a8155e Trac #34854: molien_series() should not use GAP's VirtualCharacter dddf3ca Trac #34853: sage-env: Fix misconfiguration of pip 6f63102 Trac #34847: modernize some for loops in cython files 9ffabc7 Trac #34844: removal of some unused imports about string conversion 4b50bc2 Trac #34843: pep8 cleanup in ore_polynomial_element.pyx bdd14ce Trac #34837: fix E502 in some pyx files 172ad73 Trac #34836: fix E271 and E272 in rings/ and schemes/ 3d86126 Trac #34749: Packages dsdp, scip_sdp 64d232b Trac #31329: Update scipoptsuite to 8.0.2 (now open source!), rename to scip 2dcafb3 Trac #34839: Support tox 4 ad68f15 Trac #34648: Developer's guide: warn the transition to GitHub and add links to the transition guide acebbc1 Trac #34824: do not include parent in hash of parking functions 9a7b631 Trac #34818: Error when defining differentials over GCA's with relations. bb63c58 Trac #34807: Add Construction of Hadamard matrices up to order 664 8a0b16d Trac #34804: Deprecate sage.interfaces is_...Element functions 80f8f95 Trac #34793: clean 3 files inside modular b0cc282 Trac #34547: Interfaces: use more lazy imports, restore top-level functions maxima_console etc. 5905da7 Trac #33915: inseparable elliptic-curve isogenies 98b22eb Trac #32826: scalar-multiplication endomorphisms of elliptic curves 4f11a75 Trac #8744: Improve add_edge in BipartiteGraph to make it independent from the current coloring 08aa2f8 Trac #33842: Upgrade python to 3.11 75bedf9 Trac #34783: various details in combinat/ 33fa871 Trac #34742: Optional package soplex (dependency of scip) f84915f Trac #34726: Optional package papilo (dependency of scip) e5cf1c0 Trac #34694: Bug in ExteriorAlgebra interior product ebb9b61 Trac #34416: Manage pexpect logs created during doctesting 962177a Trac #33907: interfaces/expect.py random test failure 6640924 Trac #16522: lazy_import doesn't resolve properly when indirectly imported 2114066 Updated SageMath version to 9.8.beta6 invalid dependency: Matrix |
Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:
|
comment:35
rebased over beta6. Looks OK now. |
comment:36
The merge script doesn't understand the |
Changed dependencies from Matrix, matrix_plot, sage.plot.text to none |
comment:37
OK, that's just a misunderstanding by the ticket author (1st ticket). I overlooked that this field was filled. There are no deps in our sense here. |
Changed branch from public/ticket_8598 to |
…e fixes <!-- ^^^^^ Please provide a concise, informative and self-explanatory title. Don't put issue numbers in there, do this in the PR body below. For example, instead of "Fixes #1234" use "Introduce new method to calculate 1+1" --> ### 📚 Description <!-- Describe your changes here in detail --> We remove the module-level dependency of `sage.matrix.operation_table` on `matplotlib` and `sage.plot` and fix some code style issues. <!-- Why is this change required? What problem does it solve? --> It fixes a modularization regression introduced in #8598. <!-- If it resolves an open issue, please link to the issue here. For example "Closes #1337" --> ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> <!-- If your change requires a documentation PR, please link it appropriately --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> - [x] I have made sure that the title is self-explanatory and the description concisely explains the PR. - [ ] I have linked an issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### ⌛ Dependencies <!-- List all open pull requests that this PR logically depends on --> <!-- - #xyz: short description why this is a dependency - #abc: ... --> URL: #35153 Reported by: Matthias Köppe Reviewer(s): Dima Pasechnik, Travis Scrimshaw
Operation tables can be output as grids with color or grayscale squares representing the different elements of the algebraic structure. Adding these into
sage.matrix.operation_table.OperationTable
would be a nice self-contained project for someone looking for a project involving plotting and graphics. Despite the localized nature of the project, it would see wide applicability throughout Sage. Look for stubs in the source code,I'm pretty sure Mathematica does this for groups (Cayley table), but I can't get Wolfram Alpha or MathWorld to cough it up again for me now that I want it.
Component: graphics
Keywords: plotting, cayley table
Author: Bruno Edwards
Branch/Commit:
da8a8f5
Reviewer: Dima Pasechnik
Issue created by migration from https://trac.sagemath.org/ticket/8598
The text was updated successfully, but these errors were encountered: