Opened 3 years ago
Closed 3 years ago
#28149 closed enhancement (fixed)
Implement compact real forms for matrix Lie algebras
Reported by: | tscrim | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | sage-8.9 |
Component: | algebra | Keywords: | lie algebras, fpsac2019 |
Cc: | bsalisbury1, chapoton | Merged in: | |
Authors: | Travis Scrimshaw | Reviewers: | Ben Salisbury, Frédéric Chapoton |
Report Upstream: | N/A | Work issues: | |
Branch: | 4adf53b (Commits, GitHub, GitLab) | Commit: | 4adf53b410b178cfc39b24678af9f579a8b2dc40 |
Dependencies: | Stopgaps: |
Description
Because they are interesting and are useful.
Change History (17)
comment:1 Changed 3 years ago by
- Branch set to public/lie_algebras/compact_real_form-28149
- Commit set to 1fb62d7693b3d3a4084be40c6f9a36ce6af9e85c
- Status changed from new to needs_review
comment:2 Changed 3 years ago by
- Commit changed from 1fb62d7693b3d3a4084be40c6f9a36ce6af9e85c to 23f093076a47c77127c326a697c2db4dec3b1b23
Branch pushed to git repo; I updated commit sha1. New commits:
23f0930 | Added su to Lie algebra examples.
|
comment:3 Changed 3 years ago by
- Commit changed from 23f093076a47c77127c326a697c2db4dec3b1b23 to e72b7c92e88f16212f8f7bb347ea2e4ca37e3b75
Branch pushed to git repo; I updated commit sha1. New commits:
e72b7c9 | Doing some more documentation and small fixes.
|
comment:4 Changed 3 years ago by
- Cc bsalisbury1 added
comment:5 Changed 3 years ago by
- Commit changed from e72b7c92e88f16212f8f7bb347ea2e4ca37e3b75 to 429e156c0180e7dc87a7d9ef4b76ca53cdb45466
comment:6 Changed 3 years ago by
- Reviewers set to Ben Salisbury
Hi Travis,
I made some small changes to the documentation. If you are okay with these changes, you may set this to positive review on my behalf.
~Ben
comment:8 Changed 3 years ago by
- Status changed from positive_review to needs_work
On Python 3:
sage -t --long src/sage/algebras/lie_algebras/classical_lie_algebra.py ********************************************************************** File "src/sage/algebras/lie_algebras/classical_lie_algebra.py", line 1202, in sage.algebras.lie_algebras.classical_lie_algebra.MatrixCompactRealForm.Element._richcmp_ Failed example: sorted(L.basis()) Exception raised: Traceback (most recent call last): File "/var/lib/buildbot/slave/sage3_git/build/local/lib/python3.7/site-packages/sage/doctest/forker.py", line 681, in _run self.compile_and_execute(example, compiler, test.globs) File "/var/lib/buildbot/slave/sage3_git/build/local/lib/python3.7/site-packages/sage/doctest/forker.py", line 1105, in compile_and_execute exec(compiled, globs) File "<doctest sage.algebras.lie_algebras.classical_lie_algebra.MatrixCompactRealForm.Element._richcmp_[1]>", line 1, in <module> sorted(L.basis()) File "sage/structure/element.pyx", line 1091, in sage.structure.element.Element.__richcmp__ (build/cythonized/sage/structure/element.c:9923) return (<Element>self)._richcmp_(other, op) File "sage/structure/element.pyx", line 1095, in sage.structure.element.Element._richcmp_ (build/cythonized/sage/structure/element.c:10030) cpdef _richcmp_(left, right, int op): File "/var/lib/buildbot/slave/sage3_git/build/local/lib/python3.7/site-packages/sage/algebras/lie_algebras/classical_lie_algebra.py", line 1208, in _richcmp_ return richcmp((self._real, self._imag), (other._real, other._imag), op) File "sage/structure/richcmp.pxd", line 6, in sage.structure.richcmp.richcmp (build/cythonized/sage/structure/richcmp.c:3043) cpdef inline richcmp(x, y, int op): File "sage/structure/richcmp.pxd", line 50, in sage.structure.richcmp.richcmp (build/cythonized/sage/structure/richcmp.c:2939) return PyObject_RichCompare(x, y, op) File "sage/structure/element.pyx", line 1091, in sage.structure.element.Element.__richcmp__ (build/cythonized/sage/structure/element.c:9923) return (<Element>self)._richcmp_(other, op) File "sage/matrix/matrix_sparse.pyx", line 373, in sage.matrix.matrix_sparse.Matrix_sparse._richcmp_ (build/cythonized/sage/matrix/matrix_sparse.c:5799) return richcmp(self._dict(), right._dict(), op) File "sage/structure/richcmp.pxd", line 50, in sage.structure.richcmp.richcmp (build/cythonized/sage/matrix/matrix_sparse.c:14822) return PyObject_RichCompare(x, y, op) TypeError: '<' not supported between instances of 'dict' and 'dict' ********************************************************************** 1 item had failures: 1 of 3 in sage.algebras.lie_algebras.classical_lie_algebra.MatrixCompactRealForm.Element._richcmp_ [210 tests, 1 failure, 47.86 s]
comment:9 Changed 3 years ago by
- Commit changed from 429e156c0180e7dc87a7d9ef4b76ca53cdb45466 to bf3c240e84afd7c53672afa7401d7e20e2d72d9f
Branch pushed to git repo; I updated commit sha1. New commits:
bf3c240 | More explicit comparisons for sparse matrices (for Python3).
|
comment:10 Changed 3 years ago by
- Cc chapoton added
- Status changed from needs_work to needs_review
The root cause is that dict
's are incomparable on Python3, which means sparse matrices are incomparable, unlike dense matrices. So I changed how comparisons are done for sparse matrices, which is why I put you in cc Frédéric.
comment:11 Changed 3 years ago by
- Commit changed from bf3c240e84afd7c53672afa7401d7e20e2d72d9f to 8afd478fbbcac4e7763a4f2e73ce2a0c8571cb2e
Branch pushed to git repo; I updated commit sha1. New commits:
8afd478 | Fixing last doctest.
|
comment:12 Changed 3 years ago by
(Now) Passes all doctests. Can someone review the last two changes? Should be quick.
comment:13 follow-up: ↓ 16 Changed 3 years ago by
- some pyflakes warnings, see last patchbot (only 2 fixable ones)
- typo "tranposes"
- here the brackets can be removed, I think:
+ names = tuple(['CR%s'%s for s in range(dim)])
Otherwise, looks good. You can set to positive once the above is fixed.
comment:14 Changed 3 years ago by
- Reviewers changed from Ben Salisbury to Ben Salisbury, Frédéric Chapoton
comment:15 Changed 3 years ago by
- Commit changed from 8afd478fbbcac4e7763a4f2e73ce2a0c8571cb2e to 4adf53b410b178cfc39b24678af9f579a8b2dc40
Branch pushed to git repo; I updated commit sha1. New commits:
4adf53b | Final tidbits from Frederic.
|
comment:16 in reply to: ↑ 13 Changed 3 years ago by
- Status changed from needs_review to positive_review
Replying to chapoton:
- some pyflakes warnings, see last patchbot (only 2 fixable ones)
Fixed.
- typo "tranposes"
Fixed.
- here the brackets can be removed, I think:
+ names = tuple(['CR%s'%s for s in range(dim)])
It is actually slightly faster to have the brackets. I think internally Python has some optimization for constructing tuples from lists.
Otherwise, looks good. You can set to positive once the above is fixed.
Thank you. I am allowing myself to set this to a positive review.
comment:17 Changed 3 years ago by
- Branch changed from public/lie_algebras/compact_real_form-28149 to 4adf53b410b178cfc39b24678af9f579a8b2dc40
- Resolution set to fixed
- Status changed from positive_review to closed
New commits:
Implementation of compact real forms for classical matrix Lie algebras.