group cohomology and homology in SAGE

84 views
Skip to first unread message

David Joyner

unread,
Jan 13, 2008, 9:13:20 AM1/13/08
to sage-...@googlegroups.com
Hi:
At http://sage.math.washington.edu/home/wdj/expository/cohomology5.pdf
there is an expository paper entitled "A primer on computational group
homology and cohomology using SAGE", to appear in a conference proceedings.
If you have any suggestions/typos/comments, please let me know. I think I
have to submit it in a week or two.
Thanks! David Joyner

William Stein

unread,
Jan 13, 2008, 1:05:35 PM1/13/08
to sage-...@googlegroups.com

That looks very nice and fills a major gap in the expository literature.
You might consider changing the title to "A primer on computational group
homology and cohomology using GAP and Sage".

William

Pierre

unread,
Jan 14, 2008, 7:47:31 AM1/14/08
to sage-forum
It may be appropriate to quote some other existing results on the
subject. There are mostly two sources of computations of cohomology
rings (not just in low degrees):

*** Jon Carlson's page:

http://www.math.uga.edu/~lvalero/cohointro.html

He computes the cohomology rings, as well as a wealth of relevant
information about them, for all the groups of order dividing 64 (not a
single group is missing). His programs are in Magma, and have
benefited from specific tweaking from the team that developped Magma.

*** David Green's page:

http://www.math.uni-wuppertal.de/~green/Coho_v2/
(there are a couple of other locations or mirrors)

Here you'll find some computations at odd primes as well as at 2, and
some computations for very large groups (256 for example). The
programs are in C. You'll be interested to know that David and one co-
author whose name escapes me are currently re-writing the whole thing
with SAGE. Normally a user-friendly interface should come with it.

You might find my own computations relevant (under construction):

http://www-irma.u-strasbg.fr/~guillot/research/cohomology_of_groups/index.html

I have added information on Stiefel-Whitney classes and Steenrod
operations. Most of the computations were in C++ but SAGE has also
been crucially used (how else could you call GAP, mathematically
process the information, download stuff from Carlson's page, call the C
++ programs, and then produce the HTML files, all in one language ?)

Hope this helps.

Pierre





William Stein

unread,
Jan 14, 2008, 8:27:24 AM1/14/08
to sage-...@googlegroups.com

I've added a link for this cool project here:

http://sagemath.org/pub.html

Let me know if you want me to change anything.

Perhaps you'll want to make all the data available as a database
as part of Sage at some point?

William

David Joyner

unread,
Jan 14, 2008, 8:54:23 AM1/14/08
to sage-...@googlegroups.com
Thanks very much for these links!

Pierre

unread,
Jan 15, 2008, 5:52:07 AM1/15/08
to sage-forum
> Perhaps you'll want to make all the data available as a database
> as part of Sage at some point?

at some point, yes, i'd be proud to. RIght now i'm in the process of
writing a paper explaining the computations, and eventually i'll need
to beautify the source code and distribute it and take care of all
sort of things -- i guess at that point i'll provide a way of calling
my programs within sage, and yes, building up a database should be
feasable. But i need a lot of time!

btw is there a graded algebra object in Sage ? if not, what should it
inherit from, should i decide to implement it? in fact i should
implement the unstable algebra object, but the amount of details is
scary. I've done it in C++ already, so i know what i'm talking about.
Oh and generally speaking, is there a diagrammatic presentation
anywhere of all the objects in Sage? i couldn't find one in the
reference manual, and i felt it was needed (for example i'm confused
with the several polynomial algebra objects around). Surely a program
like Doxygen could produce such a diagram automatically.

Cheers
Pierre

William Stein

unread,
Jan 15, 2008, 9:32:46 AM1/15/08
to sage-...@googlegroups.com, Robert Miller, emily kirkman


Doxygen is as you know for C/C++, not Python. There are some tools
like Doxygen for Python, but in my experience they always fall apart
on something as complicated as Sage.

Sage itself can crate the class diagram associated to all objects
in any given module:

sage: g = class_graph(sage.rings.polynomial)
sage: h = Graph(g)
sage: h.plot3d_new(vertex_size=0.01, edge_size=0.001)

However the above isn't labeled (and it is stupid that one must
tweak the vertex and edge sizes to see anything).
It could be labeled though, since our
new 3d plotting code has good support for labels.

This has labels, but they size and spacing is so terrible by default
that one can't see any of them.

sage: h.plot()

-- William

John Cremona

unread,
Jan 15, 2008, 1:03:39 PM1/15/08
to sage-...@googlegroups.com
If you have implemented stuff in C++ already, then rather than
re-implement it in Sage you could wrap your C++ in Python and use it
that way.

Mind you , that is not very easy and requires quite a lot of Python
knowledge, as I am discovering in doing the same job on my modular
symbols C++ code.

John


--
John Cremona

Pierre

unread,
Jan 15, 2008, 1:48:03 PM1/15/08
to sage-forum
> Mind you , that is not very easy and requires quite a lot of Python
> knowledge, as I am discovering in doing the same job on my modular
> symbols C++ code.

yep, it's not so straightforward, i agree. And the resulting object
would not have the right Sage object as a parent, which is a pity (in
my case an unstable algebra should inherit the methods of a polynomial
algebra).

In fact, it's not so much that there is a lot of code to define an
unstable algebra, it's rather that i don't feel i have (just now) the
competence to merge it gracefully into Sage.

pierre

William Stein

unread,
Jan 15, 2008, 2:19:33 PM1/15/08
to sage-...@googlegroups.com
On Jan 15, 2008 10:48 AM, Pierre <pierre....@gmail.com> wrote:
>
> > Mind you , that is not very easy and requires quite a lot of Python
> > knowledge, as I am discovering in doing the same job on my modular
> > symbols C++ code.
>
> yep, it's not so straightforward, i agree. And the resulting object
> would not have the right Sage object as a parent, which is a pity (in
> my case an unstable algebra should inherit the methods of a polynomial
> algebra).

That's not necessarily true. You can wrap C++ code but have it
fit nicely into the Sage class heiarchy. See, e.g., finite_field_givaro.pyx
in the Sage source tree.

> In fact, it's not so much that there is a lot of code to define an
> unstable algebra, it's rather that i don't feel i have (just now) the
> competence to merge it gracefully into Sage.

We really need to make it easier for developers to get up to speed
with Sage! Now is definitely the time...

William

Reply all
Reply to author
Forward
0 new messages