Skip to content

Commit 6a039da

Browse files
author
Release Manager
committed
gh-38254: Extend the method get_knotinfo of the Link class to cover non-prime knots <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> This PR implements a task from the following code-comment in `link.py`: > # ToDo: extension to non prime links in which case an element of the monoid > # over :class:`KnotInfo` should be returned In connection with this I switch the output of `get_knotinfo` to elements of the new class `FreeKnotInfoMonoid` for all knots (prime or not) For multi-component links I keep the output as it is, since the `FreeKnotInfoMonoid` does not make sence here. Another thing changes: Currently, if the `unique=False` option is used symmetry mutants may be listed separately, even though they are known to be isotopic because their symmetry type is reversible or amphicheiral. Now, if symmetry mutants are known to be isotopic because of their symmetry type, just the minimal of them is listed (in the order of the enum). ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation and checked the documentation preview. ### ⌛ Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: #38254 Reported by: Sebastian Oehms Reviewer(s): Sebastian Oehms, Travis Scrimshaw
2 parents b104450 + cfe19f9 commit 6a039da

File tree

6 files changed

+747
-136
lines changed

6 files changed

+747
-136
lines changed

src/doc/en/reference/knots/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,6 @@ Knot Theory
77
sage/knots/knot
88
sage/knots/link
99
sage/knots/knotinfo
10+
sage/knots/free_knotinfo_monoid
1011

1112
.. include:: ../footer.txt

src/sage/databases/knotinfo_db.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -793,7 +793,7 @@ def _test_database(self, **options):
793793
794794
sage: from sage.databases.knotinfo_db import KnotInfoDataBase
795795
sage: ki_db = KnotInfoDataBase()
796-
sage: TestSuite(ki_db).run() # long time indirect doctest
796+
sage: TestSuite(ki_db).run() # optional - database_knotinfo, long time, indirect doctest
797797
"""
798798
from sage.knots.knotinfo import KnotInfo
799799
from sage.misc.misc import some_tuples

src/sage/knots/all.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
from sage.misc.lazy_import import lazy_import
2-
from sage.features.databases import DatabaseKnotInfo
32

43
lazy_import('sage.knots.knot', ['Knot', 'Knots'])
54
lazy_import('sage.knots.link', 'Link')

0 commit comments

Comments
 (0)