-
-
Notifications
You must be signed in to change notification settings - Fork 528
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 general package for finitely generated not-necessarily free R-modules #5882
Comments
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
comment:3
NOTE: trac_5882-part2.patch (which I'll post soon) fixes numerous major bugs in matrix_morphism.py, e.g., in restrict_domain and restrict_codomain. I noticed these issues while reading the code and thinking about what it did... |
comment:6
This is likely ready for review, but I want to do some additional testing before labeling it as such. |
comment:8
I've changed this back to "not ready for review", since I think it's more likely to be higher quality code if I implement something nontrivial on top of it first, and fix any issues I find. So I'm doing #5969 first. Once that's done and I fixed all issues that crop up, then #5882 will be ready for review. |
comment:9
The one remaining problem: Some of the bug fixes in linear algebra included in this patch (or possibly, but unlikely, the dependency patches), cause a serious performance regression: IN SAGE-3.4.1:
After these patches the same takes much much longer (many minutes). Using It's not surprising that fixing bugs would uncover other buggy code and major performance issues, since buggy code is often very fast :-). |
This comment has been minimized.
This comment has been minimized.
comment:11
With these patches and dependencies installed, make ptestlong:
|
comment:12
It turns out there is a bug in 5882 still. In the following example, computing the kernel of f is wrong, because f somehow gets defined by a map on free modules V-->V that doesn't preserve the W's that we're quotienting out by. Trac 5882 is basically the ultimate generalization of that round2 problem everybody was confused by in 583 last quarter -- it's hard to get right!
|
comment:13
Any chance you could combine the 7 (!) patches into one? That will make it a lot easier to read & judge, and to apply, of course! |
comment:14
Yes, I will, when it is ready for review. Also, I'll rename the V, W methods to cover and relations, with C() and R() as aliases. |
comment:17
I like what I see in this patch. Especially the ability to lift an element of a quotient. Using this, one can create the long exact sequence associated to an exact sequence of chain complexes. |
Attachment: trac_5882.patch.gz this one patch is based against 4.0.2.rc3. it replaces the 8 patches from before. |
comment:18
OK, this should get reviewed. I think it's probably quite slow right now -- I make no claims to speed at all. But as far as I know it is right. |
Reviewer: Robert Miller |
comment:19
Since underscore methods don't show up under ReST documentation, I think all the documentation which falls under |
Author: William Stein |
comment:20
Some typos maybe: Should "optimization representation" be "optimized representation?" |
comment:21
Applied to Sage-4.0.2, all doctests pass with |
comment:22
Maybe this is silly, but when I do:
I don't see Hom, V and W, because they are the only capitalized methods listed at all, and so they come before all the underscore stuff, and I automatically don't look at the beginning of the list because I'm never looking for underscore methods. As far as I know, all methods of classes are lowercase. Also, |
Changed author from William Stein to William Stein, David Loeffler |
comment:44
Okay, this is great. Positive review. The ticket is a bit of a mess, though: davidloeffler's and was's most recent patches conflict. I've taken the liberty of creating a single patch, containing all of the others, and merging the few differences between these two conflicting patches. (I'm taking William's side on I think that the "Author" and "Reviewer" fields are filled in accurately. Apply only "trac_5882-all-in-one.patch". |
Attachment: trac_5882-delta.patch.gz for reference only |
apply only this patch! |
comment:45
Attachment: trac_5882-all-in-one.patch.gz There is one doctest failure:
|
comment:46
Sorry, that's what I get for only doctesting on a 32-bit machine. Here's a patch. |
Attachment: trac_5882_hash.patch.gz |
comment:48
Re William's comments:
Because when I wrote that, I was having a mathematical brain freeze. It's fine the way it is. The documentation builds fine, by the way. |
Merged: sage-4.1.rc0 |
I really need this for my research.
Note, I only really need the case R=ZZ, and what I'll implement is likely to be this for any R that has a Smith normal form algorithm, e.g., class number 1.
I am finding and fixing some major bugs in basic linear algebra that have to be fixed in order to implement this. Thus this patch depends on: #5886, #5887, #5972, #5974
CC: @jhpalmieri @loefflerd @antieau
Component: linear algebra
Author: William Stein, David Loeffler
Reviewer: Robert Miller, John Palmieri
Merged: sage-4.1.rc0
Issue created by migration from https://trac.sagemath.org/ticket/5882
The text was updated successfully, but these errors were encountered: