-
Notifications
You must be signed in to change notification settings - Fork 162
Add support for spectral sequences in Cech cohomology #4951
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
Add support for spectral sequences in Cech cohomology #4951
Conversation
79291b2 to
2e9958d
Compare
|
I am ok with it. Tests failing? |
|
Thanks for having a look. This is still awaiting merge of #4955 and rebase on that. |
|
All failing tests are now because of the non-supported syntax |
|
@benlorenz : Could we have a look together at some point today to see what's actually causing the failure on 1.6? I can not reproduce the error here. |
|
1.6 seems to be working after the latest change, 1.10 and 1.12 are failing with some |
|
Yes, but I suppose these "index out of bounds" errors are secondary to some Edit: I guess, what I'm asking is that if you, as one of the people who probably see the most failing tests, have any list of buzzwords, like e.g. the |
|
Just a heads up: Yesterday we found that the generic code for computing spectral sequences can not (yet) be applied in the toric setup in its full generality. We have to overhaul that. However, since we are actively working on this together with Friedemann Groh (external), @HereAround, and @emikelsons, I found it in the interest of the Oscar project to get a preliminary version in, so that, for instance, we can continue working on #5032 to eventually resolve the issues. The caveats for the toric code have a temporary safeguard built in by throwing an error, unless the user manually sets a "global exponent vector" to compute with in the toric context. This should leave us ample room for further experiments with Friedemann's code while, at the same time, not giving wrong functionality to the user. |
| while !(ind in rngs[cur_rng_ind]) | ||
| cur_rng_ind+=1 | ||
| end | ||
| k = cur_rng_ind # findfirst(ind in r for r in rngs) | ||
| # manual way to project (saves allocations) | ||
| vv = FreeModElem(coordinates(v)[rngs[cur_rng_ind]], summands[cur_rng_ind]) #canonical_projection(dom, k)(v) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should work also in 1.6? (I didn't test the code)
| while !(ind in rngs[cur_rng_ind]) | |
| cur_rng_ind+=1 | |
| end | |
| k = cur_rng_ind # findfirst(ind in r for r in rngs) | |
| # manual way to project (saves allocations) | |
| vv = FreeModElem(coordinates(v)[rngs[cur_rng_ind]], summands[cur_rng_ind]) #canonical_projection(dom, k)(v) | |
| k = findfirst(r -> ind in r, rngs) | |
| # manual way to project (saves allocations) | |
| vv = FreeModElem(coordinates(v)[rngs[k]], summands[k]) #canonical_projection(dom, k)(v) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for having a look! However, the point here was not to start looking for k from scratch every time, since the ind come in in an ordered way. Note that cur_rng_ind is another running variable in this loop. This was actually crucial for speed at some point (O(n) vs. O(n^2)).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just some cleanup of the code.
experimental/DoubleAndHyperComplexes/src/Morphisms/induced_homs.jl
Outdated
Show resolved
Hide resolved
experimental/DoubleAndHyperComplexes/src/Morphisms/induced_homs.jl
Outdated
Show resolved
Hide resolved
experimental/DoubleAndHyperComplexes/src/Morphisms/induced_homs.jl
Outdated
Show resolved
Hide resolved
experimental/DoubleAndHyperComplexes/src/Morphisms/induced_homs.jl
Outdated
Show resolved
Hide resolved
| while !(ind in rngs[cur_rng_ind]) | ||
| cur_rng_ind+=1 | ||
| end | ||
| k = cur_rng_ind # findfirst(ind in r for r in rngs) | ||
| # manual way to project (saves allocations) | ||
| vv = FreeModElem(coordinates(v)[rngs[cur_rng_ind]], summands[cur_rng_ind]) #canonical_projection(dom, k)(v) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for having a look! However, the point here was not to start looking for k from scratch every time, since the ind come in in an ordered way. Note that cur_rng_ind is another running variable in this loop. This was actually crucial for speed at some point (O(n) vs. O(n^2)).
Co-authored-by: Max Horn <[email protected]>
|
@simonbrandhorst will take another look |
|
This is currently mentioned in the |
I now picked |
This PR contains my recent work on speeding up computations of spectral sequences in Cech cohomology; see the accompanying preprint on the ArXiv.
I make this a draft for the beginning and clean everything up, including documentation.
TODOs: