#6102: cohomology ring of simplicial complexes
-------------------------------------+-------------------------------------
Reporter: bantieau | Owner: bantieau
Type: enhancement | Status: needs_review
Priority: major | Milestone: sage-6.10
Component: algebraic | Resolution:
topology | Merged in:
Keywords: | Reviewers: Travis Scrimshaw
Authors: John Palmieri | Work issues:
Report Upstream: N/A | Commit:
Branch: u/tscrim/AT-model | 716469ac9519fc492467d4a635c80468880df94d
Dependencies: #19179 | Stopgaps:
-------------------------------------+-------------------------------------
Comment (by jhpalmieri):
Replying to [comment:32 tscrim]:
> I made some reviewer changes, and it's mostly tweaking docstrings and
copying your sparse/dense hack to get another ~20% in the "new" version.
Great.
> From taking a closer look at things, I bet we could get further speedups
by not taking the transpose of the `phi_old` and `pi_old` matrices in the
inner loops and using `v * M` multiplication instead of `M' * v`. I tried
to do this, but I don't think I understand the interworkings of the code
to get this to work (at least for the "new" version). Have you tried to do
this?
Good idea. I just tried it and it led to no improvement, surprisingly,
over the rationals, and a slow-down in characteristic 2. Maybe the lack of
improvement is not that surprising, since I had already moved the slow
matrix constructions out of the inner-most loops, so they don't get
executed as much. And maybe taking the transpose is not slow compared to
the rest of matrix construction.
> Also I noticed that `HomologyVectorSpaceWithBasis` represents a graded
piece of the (co)homology space. Would you be opposed to me rewriting that
such that it becomes the full (co)homology space/ring? I think it would
simplify the overall code structure, allow easier extensions to infinite
simplicial/cell complexes, and give a better interpretation of
`cup_product` as being the product in the cohomology ring. (Also with
#18175, we could then give work towards a cap product for manifolds.)
I think that it is natural to want both structures, the cohomology in a
single degree and the cohomology in total. If you want to rewrite this
part, that's okay with me. If you want to think about the most natural way
to access cohomology classes, too, go ahead. I am not completely satisfied
with
{{{
sage: a,b,c,d = X.cohomology_with_basis(1, QQ).gens()
}}}
Maybe
{{{
sage: H.<x> = X.cohomology_with_basis(1, QQ)
}}}
will define `x0`, ..., `x3` if the cohomology is 4-dimensional? Or x10,
..., x13? (The problem with the angle-bracket notation is that we
shouldn't have to know how many generators there are ahead of time.)
> I didn't mean to imply that it wasn't a significant speedup and I
apologize if I did. However that is a much larger difference than I really
expected. Eeek!
No need to apologize, you had a reasonable question. And it is surprising
how much difference that single change makes.
--
Ticket URL: <http://trac.sagemath.org/ticket/6102#comment:34>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.