Changes between Version 3 and Version 6 of Ticket #6491

Jul 10, 2009, 2:26:41 PM (14 years ago)

William suggested at sage-devel that I should tell precisely how I think the package should be tested, addressing the following areas:

What hardware/OS combos should it be tried to install

So far, I successfully installed the package on Intel Pentium M, two processor types of AMD (Opteron and another one that I can't remember), and Sun X4450 (sage.math). The OS was SuSE Linux on the three machines that I had in Jena.

So, there are plenty of architectures which aren't tested, yet. As I indicated, I expect that OS X and Motorola processors are most challenging. But I leave it up to you, since so far I did not do extensive porting.

What commands should be tested, and what should happen?

A) The test script

There is spkg-check, which should of course work without errors. Note that the script needs to be executed in a Sage shell. Note that some tests assume that Singular is present in version 3-1-0, and that there is internet connection. If you get an error of Singular mentioning the timer, this is most likely related with ticket #6412, so please apply the patch...

B) Groups of order 64 (should be less than 1 hour)

One of my favourite benchmarks are the groups of order 64. You can compute the cohomology rings as follows.

sage: from pGroupCohomology import CohomologyRing
sage: tmp_root = tmp_filename() # chosing a temporary location, or choose a permanent if you like
sage: CohomologyRing.set_user_db(tmp_root) # For each test, you should choose a different location,
                                           # since otherwise data would be reloaded from previous computations.
sage: for i in range(1,268):
...:      H = CohomologyRing.user_db(64,i,websource=False) # avoid that the complete ring gets downloaded
...:      H.make() # compute the ring structure
...:      print H == CohomologyRing(64,i) # this compares H with the pre-computed ring in the 'public' data base 
                                          # that is shipped with the package
  • The answer should be True in all cases.
  • It might also be interesting how long the computation takes.
  • The doc string of CohomologyRing mentions various options -- try them out!

C) Non-abelian case (p!=2)

If you have a new Sage version, with Singular 3-1-0, you may also try whether the computation for all groups of order 81 works without error. Note, however, that these rings are not included in the package, hence it makes no sense to test CohomologyRing.user_db(81,i) against CohomologyRing(81,i)

D) 1. Groups given in the Gap interface

Construct any finite p-Group G (if you only have Singular 3-0-4, p must be 2) in the Gap interface. Try to compute the cohomology ring using H=CohomologyRing.user_db(G,GroupName='NameOfYourGroup', options='prot'), followed by H.make(). The protocol output might give you a feeling of what happens inside, or, should an error occur, might point to the source of trouble.

Note that an initial segment of the generator sequence of G must be a minimal generating set. Otherwise, the package would complain.

D) 2. Induced homomorphisms

If you have two groups G1, G2 matching the condition on the generating sets, with H1,H2 the respective cohomology rings, construct a homomorphism G1 -> G2, and try to compute the induced map. See the documentation of H1.hom about how it works.

In particular, take an automorphism phi:G1 -> G1. Compute the induced map phi_star=H1.hom(phi,H1). Try phi_star^(-1), phi_star^3, apply phi_star to elements of the cohomology ring, etc.

E) Test various methods

If you don't have Singular 3-1-0, choose a different group:

sage: from pGroupCohomology import CohomologyRing
sage: ROOT = '/home/SimonKing/CTest'  # choose your own root folder, you need write permissions
sage: CohomologyRing.set_user_db(ROOT)
sage: H = CohomologyRing.user_db(27,3, options='prot', websource=False)
#... some protocol output
sage: H.make()
#... tons of protocol output
sage: H.nil_radical()
#... some protocol output


There is extensive documentation at Please read some chapters and see whether you find it clearly explained and whether it teaches you how to use the package. If not, please tell me!

I believe the package (should it be possible to install on your system) is already useful. But certainly there are many more things that one might want to know about cohomology rings: More ring theoretic invariants, for example. Please tell me what functionality you are missing, so that later versions of the package might implement it.


  • Ticket #6491

    • Property Cc… added
  • Ticket #6491 – Description

    v3 v6  
     15Since William has put it into the experimental package repository, you can now also do
     17sage -i p_group_cohomology-1.0.spkg
    1519== Purpose ==