-
-
Notifications
You must be signed in to change notification settings - Fork 561
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
Implement finite algebras #12141
Comments
Changed keywords from none to sd35 |
comment:2
Attachment: 12141_basic_setup.patch.gz Lots of things to do still:
|
Attachment: 12141_2_basic_setup.patch.gz Added an associativity check. |
Attachment: 12141_improve_repr.patch.gz |
Many new functions |
Attachment: 12141_4.patch.gz |
comment:3
Attachment: 12141_improve_associativity.patch.gz I've uploaded an improvement of the associativity check, but it does need further improvement. |
Dependencies: #11068 |
comment:4
Attachment: 12141_fix_random_docstring.patch.gz |
Don't apply this yet; it contains bugs, but I messed up my hg. |
Attachment: 12141_ideal_bla.patch.gz Attachment: 12141_ideal_blabla.patch.gz Now both ideal patches can be applied, together with #11068 |
comment:5
Basic ideal stuff has also been uploaded now. Still to add: more doctests and support for sidedness in the non-commutative case. |
Adds some functionality. Apply 12141, improve_ass and fix_random... |
comment:6
Attachment: 12141_zero.patch.gz In the new patch you can check if an element is a zero divisor, do a base change and check if an element is nilpotent (it also fixes the power function if there is no one etc).
|
Contains #11068 and all its dependencies, for convenience |
Attachment: 11068_combined.patch.gz Attachment: 12141.2.patch.gz Replaces all previous patches on this ticket |
comment:7
Replying to @sagetrac-mkosters:
I've uploaded a combined patch. A few remarks about documentation:
|
Attachment: 12141.patch.gz replaces all previous patches |
comment:8
Could you change
to
so we don't have to do it when switching to Python 3. |
based on 5.10.rc2; revised most of the code |
Changed keywords from sd35 to none |
Changed dependencies from #11068 to none |
comment:9
Attachment: trac_12141_finite_algebras.patch.gz To be done: morphisms, more things related to ideals |
This comment has been minimized.
This comment has been minimized.
Author: Johan Bosman, Peter Bruin, Michiel Kosters |
Commit: |
Branch: u/pbruin/12141-FiniteAlgebra |
comment:21
Okay, I've done a review and it looks good overall. However when running some of the test suites, I realized that the morphisms weren't setup like the others in Sage, so I've reworked them in my review. It's not perfect, but IMO morphisms in general need some work. Other than that, it's some documentation and minor code tweaks. If you're happy with my changes, then it's a positive review. New commits:
|
Changed branch from u/pbruin/12141-FiniteAlgebra to public/algebras/finite_algebras-12141 |
comment:22
I think that the phrase "finite algebra" is possibly ambiguous. For example, there is a book Structure of Finite Algebras by Hobby and McKenzie in which a finite algebra is actually finite as a set. Maybe "finite-dimensional algebra" would be better in your situation. |
comment:24
Good point. Done. |
comment:25
Hi Travis,
Thanks for looking at this. To me, changing "finite" to "finite-dimensional" is OK; in commutative algebra and algebraic geometry it is very common to say "finite A-algebra" for an algebra that is finitely generated as an A-module, but in a general setting like Sage, it is possibly ambiguous. Since the base ring is (at least currently) always a field, "finite-dimensional" is an acceptable way of clarifying this. I haven't had the time to review your changes in detail, but here are a few things I noticed:
|
comment:26
Hey Peter, Replying to @pjbruin:
As I understand it,
Will change.
It depends. Things that are very memory/computationally intensive to compute but not to store are candidates for a cache, especially when it's likely to be a bottleneck. Also it's not using much more memory by caching the element as opposed to the matrix (nor does it generate a memory leak). So let's say The other option if you're worried about memory usage is to make it a |
Branch pushed to git repo; I updated commit sha1. New commits:
|
Reviewer: Travis Scrimshaw |
comment:28
I've changed the inverses to use the |
comment:29
Replying to @tscrim:
Actually I had forgotten that the inverse was already cached in the first place thanks to As for I will try to do a final check soon, unless someone else does it first. |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:31
OK, I'm happy with the state of this ticket. All test pass; I also ran some existing external code that uses this ticket and it still works fine after the various changes that were made here. |
Changed reviewer from Travis Scrimshaw to Travis Scrimshaw, Peter Bruin |
Changed author from Johan Bosman, Peter Bruin, Michiel Kosters to Johan Bosman, Peter Bruin, Michiel Kosters, Travis Scrimshaw |
Changed branch from public/algebras/finite_algebras-12141 to |
Implementation of finite algebras over fields. A finite algebra A is simply given by means of a basis and for each basis element e a matrix that describes (right) multiplication of A by e.
The basic set-up is for algebras that are not necessarily unitary, commutative, or associative. Only algebras that satisfy all these conditions are fully supported.
CC: @koffie
Component: algebra
Keywords: sd51
Author: Johan Bosman, Peter Bruin, Michiel Kosters, Travis Scrimshaw
Branch/Commit:
b629254
Reviewer: Travis Scrimshaw, Peter Bruin
Issue created by migration from https://trac.sagemath.org/ticket/12141
The text was updated successfully, but these errors were encountered: