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 Orlik-Solomon algebra of an arrangement #18133
Comments
comment:2
how about algebras generated by reciprocals of linear forms of hyperplanes of the arrangement (cf e.g. http://arxiv.org/abs/math/0105095) ? |
comment:3
Sure, anything you want! I'm not actually implementing this ticket :-) Basically anything in Orlik/Terao is great, so much of it is computational - I was kind of hoping the matroid folks would see this too. Actually, I thought some of this stuff was going to be in a 'next-gen' book by Alex, Dan and others but all I could find was a draft at Hal Schenck's website. It would be great to get Sage "officially" in that book in the same way it's in the Toric Varieties book he coauthored. |
Author: Travis Scrimshaw, William Slofstra |
Commit: |
comment:4
Here is an implementation based upon code given to me by William Slofstra. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:10
I didn't know that this algebra could be defined for any matroid! That's really nice. On the other hand, I'm afraid the code doesn't properly iterate the reduction.
The result is malformed: {1, 3, 4} itself contains a broken circuit, so one of the monomials isn't actually a monomial. Now you could argue that this is an underscored method and might do with malformed results if the method calling it knows what it's doing, but first of all I'm not sure whether the CombinatorialFreeModule framework will keep accepting such monomials in the future, and second I cannot guarantee that the multiplication as you implemented it still works with this implementation of The point is, reducing an element modulo the ideal J(M) is a multistep process, as clearing out one broken circuit might create another. If you do it until no more broken circuits remain, then I think your product is correct (though I'll have to take another look). Another issue is the I think both of these issues can be fixed at once. Let me do it. |
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:13
OK, the above points are done. I am out of time now, so if anyone wants to take this over, feel free to do so. If not, I'll probably return to this in a week or so. Meanwhile, here is one more question: Your implementation of the Orlik-Solomon algebra for a hyperplane arrangement assumes that the base field of the algebra is that of the arrangement. Is that a reasonable assumption? (To me it sounds wrong -- like studying the homology of real manifolds only with real coefficients.) |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:15
Replying to @darijgr:
That was going to be my argument.
It should because those checks are expensive and there has to be a way to tell this proposed CFM that you know what you're doing (especially in internal methods like
That is how the product was designed and why it worked. Although now you've basically pushed that into the recursive step. This also has an effect of making it recursive. Have you done some timing benchmarks between the two implementations? Also this is bad:
You should use the pythonic (and more robust if we replace it by some subclass of
I can change this though.
This is a good point. Good catch. |
Branch pushed to git repo; I updated commit sha1. New commits:
|
Reviewer: Darij Grinberg |
comment:27
Whoops, sorry; bad merge. You can safely ignore comment:24. I fixed any issues with comparisons using |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:29
Thanks! This fixes it. The code looks good to me now. Feel free to set it to positive_review, or wait for others to comment, if you feel so inclined. |
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:32
Back to you; if you're happy with my changes, then you can set a positive review. Thanks. |
comment:33
Perfect! |
comment:34
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:36
Stupid me; trivial doctest fix. |
comment:37
Oops, that was me being stupid too. The only file I've run the tests on was orlik-solomon.py... |
Changed branch from public/algebras/orlik_solomon-18133 to |
The Orlik-Solomon algebra is a fundamental invariant for an arrangement, which also enables computing scads of useful information about e.g. the complement. But it's purely algebraic. So we should have it (see also #17506).
CC: @tscrim @sagetrac-Stefan @sagetrac-yomcat @chaoxu
Component: geometry
Keywords: hyperplane arrangements
Author: Travis Scrimshaw, William Slofstra
Branch/Commit:
48e46b6
Reviewer: Darij Grinberg
Issue created by migration from https://trac.sagemath.org/ticket/18133
The text was updated successfully, but these errors were encountered: