CHomP is a free (GPL version 2) software package for computing
homology (CHomP stands for Computation Homology Project.)  See
chomp.rutgers.edu for some more information.  I've prepared an
experimental spkg for it:

http://sage.math.washington.edu/home/palmieri/SPKG/chomp-20100213.spkg

If you successfully install it, it will put programs "homchain",
"homcubes", and "homsimpl" in SAGE_LOCAL/bin; these compute homology
of, respectively, chain complexes, cubical complexes, and simplicial
complexes, and they're much faster than what's currently in Sage for
homology computations.  I've gotten this to compile without difficulty
on an Intel Mac running OS X 10.6 as well as on sage.math.  I haven't
tried any other platforms, mainly because I don't have easy access to
them.  If people could try installing it, that would be great.

It would be nice if it were included as an experimental spkg, for
download from the official Sage sites.  I think we need to vote on
this.  Opinions?

If you've managed to compile it and you want to see it in action, you
have several choices: run "tar jxf" on the spkg and look in the
"examples" directory.  Alternatively, you can download this patch for
the Sage library:

http://sage.math.washington.edu/home/palmieri/misc/Cell_complexes.patch

This implements lots of things, but one of them is an interface to
CHomP: if CHomP is present, Sage will automatically use it to compute
homology groups.  CHomP can't handle rational coefficients, so you can
see difference in timings this way.  On my iMac:

sage: T = simplicial_complexes.Torus()
sage: X = T.product(T)
sage: time X.homology()  # uses CHomP
CPU times: user 0.35 s, sys: 0.04 s, total: 0.39 s
Wall time: 0.92 s
{0: 0, 1: Z x Z x Z x Z, 2: Z^6, 3: Z x Z x Z x Z, 4: Z}
sage: X = T.product(T)
sage: time X.homology(base_ring=QQ)  # doesn't use CHomP
CPU times: user 16.88 s, sys: 0.18 s, total: 17.06 s
Wall time: 17.66 s
...

(CHomP also can't compute cohomology, so that's another way of seeing
timing differences.)  CHomP will also compute generators in homology,
whereas the Sage version doesn't do this: do
X.homology(generators=True).

--
John

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to