Changes between Initial Version and Version 29 of Ticket #9894
 Timestamp:
 09/25/10 23:01:08 (12 years ago)
Legend:
 Unmodified
 Added
 Removed
 Modified

Ticket #9894

Property
Status
changed from
new
toneeds_review

Property
Summary
changed from
Group cohomology spkg, version 2.1
toGroup cohomology spkg, version 2.1.1
 Property Owner changed from tbd to SimonKing

Property
Reviewers
changed from
to
KarlDieter Crisman

Property
Status
changed from

Ticket #9894 – Description
initial v29 1 Version 2.1 of the modular group cohomology package is now available. There is extensive [http://sage.math.washington.edu/home/SimonKing/Cohomology/index.html documentation]. The package can be installed with {{{sage i http://sage.math.washington.edu/home/SimonKing/Cohomology/p_group_cohomology2.1.spkg}}}1 Version 2.1.1 of the modular group cohomology package is now available. There is extensive [http://sage.math.washington.edu/home/SimonKing/Cohomology/index.html documentation]. The package needs the Small Groups library (available in the gappackages spkg) and can be installed with {{{sage i http://sage.math.washington.edu/home/SimonKing/Cohomology/p_group_cohomology2.1.1.spkg}}} 2 2 3 3 4 4 '''__New Features__''' 5 5 6 1. I tried to improve the code quality. For example: 6 '''1. Improved code quality''' 7 8  IIRC, one of the referee's complaint on earlier versions of the package was that the !__init!__.py file actually contains code, rather than just importing things. So, I made a new module "factory.py". Now, the !__init!__.py only contains documentation and import statements. 9 10  Moreover, I split the !__call!__ method of the cohomology ring constructor into smaller units. 11 12  Virtually all computations with this package require creating certain data files on disk. However, the data that are shipped by the package are installed in SAGE_DATA. So, if a user has no write access in that folder, he can read from the database, but can not add further computations to it. In previous versions, it meant that the user had to create his/her own database ''from scratch''. This is solved in version 2.1.1: Still, the user will create his/her own database, but this database can make full use of the stuff that already is in SAGE_DATA. 7 13 8 14  Typically one has methods whose result can be cached and needs only be recomputed if the ring approximation changes; this is now being taken care of by decorators. 15 9 16  I tried to reduce compiler warnings. 17 10 18  Using the package, several bugs in Singular and GAP have been uncovered. The new Singular version 311 fixes some bugs, so that in some cases more efficient methods can be used. The package tests the available Singular version; it both supports the new features and is able to work around the old Singular bugs. 11 19 12 2. The completeness criteria are further improved. We use three criteria, namely the modified Benson criterion (found by David Green and myself), the Symonds criterion and the HilbertPoincaré criterion (suggested by Peter Symonds and worked out by myself). Due to new methods of constructing parameters, the Symonds criterion is now often the best choice  but not always, so that it is good to have three methods to choose from. 20  We finally achieved '''100% doctest coverage!! ''' 13 21 14 3. New functionality includes the computation of preimages of induced homomorphisms, essential ideals and depth essential ideals. Using the package, a new example of a group was found for which the square of the essential ideal does not vanish (this is only the second known example!). So far, a conjecture of Jon Carlson on depth essential ideals can be confirmed.22  By oversight, the old test script failed to execute the tests of special methods (such as {{{__add__}}} or {{{__mul__}}}. The new script now captures all tests, and complains if a class, method or function does not appear to be tested. Also, the test script does parallel tests. 15 23 16 4. '''It works on t2!! ''' This is a very nontrivial achievement. It involved: 24  The parallel testscript uncovered a problem with temporary files associated with Sage's pexpect interfaces  see #10004. The testscript tests if the problem reported at #10004 is fixed, and will only do parallel testing if it is fixed. 25 26 '''2. Extended computational capability''' 27 28  The completeness criteria are further improved. We use three criteria, namely the modified Benson criterion (found by David Green and myself), the Symonds criterion and the HilbertPoincaré criterion (suggested by Peter Symonds and worked out by myself). Due to new methods of constructing parameters, the Symonds criterion is now often the best choice  but not always, so that it is good to have three methods to choose from. 29 30  New functionality includes the computation of preimages of induced homomorphisms, essential ideals and depth essential ideals. Using the package, a new example of a group was found for which the square of the essential ideal does not vanish (this is only the second known example!). So far, a conjecture of Jon Carlson on depth essential ideals can be confirmed. 31 32 '''3. Portability ''' 33 34 The package fully works on t2! This is a very nontrivial achievement. It involved: 17 35 * Changing the names of several functions from {{{CMeatAxe}}}, since the Sun linker seems to confuse them with functions from pari. This is a problem similar to the one found at #1396. 18 36 * t2 is a bigendian machine. GAP's random generator depends on the endianness (which is a bug). Certain internal data used by the cohomology computations are obtained by randomised algorithms of GAP. The ring presentation found for the cohomology ring depends on these internal data. So, in order to get machine independent computationally well defined results, special care was needed, as discussed on [http://groups.google.com/group/sagedevel/browse_thread/thread/623f7291ab7e782e sagedevel] 19 20 5. By oversight, the old test script failed to execute the tests of special methods (such as {{{__add__}}} or {{{__mul__}}}. The new script now captures all tests, and complains if a class, method or function does not appear to be tested. Also, the test script does parallel tests.21 22 6. We finally achieved '''100% doctest coverage!! '''23 37 24 38 '''__Testing__''' … … 28 42 The script tests parallely. By default, the number of threads is one third of the number of available CPUs. This can be overruled by exporting the environment variable {{{SAGE_NUMBER_THREADS}}}. 29 43 44 However, problems with parallel testing in Version 2.1 revealed a problem with Sage's {{{pexpect}}} interfaces: ''All'' interfaces (e.g., GAP and Singular) and all parallel branches use a single temporary file for passing long commands. A solution is at #10004. The test script of the cohomology spkg will only do parallel testing if gap and singular use different temporary files. 45 46 30 47 I successfully installed and tested the package on the following machines and the following versions of Sage and Singular: 31 48 * t2.math, Sage 4.5.1, Singular 311 32 49 * bsd.math, Sage 4.5.2, Singular 310, both in 64 and 32 bit mode 33 50 * sage.math, Sage 4.5.1, Singular 310 34 * x86_64 GNU/Linux, Intel Core2 CPU 6700 @ 2.66GHz, Sage 4.5.2, Singular 311 51 * x86_64 GNU/Linux, Intel Core2 CPU 6700 @ 2.66GHz, Sage 4.5.2, Singular 311  ''without'' write permission in SAGE_DATA. 35 52 36 53 On another GNU Linux machine with AMD processors, it builds and seems to work even with Sage 4.2.1, but apparently the interface to the @parallel decorator has changed, so that I was not able to run the test script.