Given a cohomology module CM for the group G acting on the module M and a non-negative integer n taking one of the values 0, 1 or 2, this function returns the cohomology group H^n(G, M). Note that CM must be either the module returned by invoking CohomologyModule(G, M), or the module defined by the action of mats on the finite abelian group in CohomologyModule(G, invar, mats).
Given a cohomology module CM for the group G acting on the module M defined over a finite field K and a non-negative integer n taking one of the values 0, 1 or 2, this function returns the dimension of H^n(G, M) over K. Note that this function may only be applied to the module returned by a call to CohomologyModule(G, M), where M is a module over a finite field K. When n = 2, this function is faster and may be applied to much larger examples than CohomologyGroup(CM, n) but, unlike CohomologyGroup(CM, n), it does not enable the user to compute with explicit extensions and two-cocycles.
Given the permutation group G, the K[G]-module M and an integer n (equal to 1 or 2), return the dimension of the n-th cohomology group of G acting on M. This function invokes Derek Holt's original C cohomology code (see [Hol85b]). In some cases it will be faster than the function that uses the cohomology module datastructure.
> G := Alt(8); > M := PermutationModule(G, GF(3));
We first calculate the dimensions of H^1(G, M) and H^2(G, M) using the old functions.
> time CohomologicalDimension(G, M, 1); 0 Time: 0.020 > time CohomologicalDimension(G, M, 2); 1 Time: 0.020
We now recalculate the dimensions of H^1(G, M) and H^2(G, M) using the new functions.
> X := CohomologyModule(G, M); > time CohomologicalDimension(X, 1); 0 Time: 0.020 > time CohomologicalDimension(X, 2); 1 Time: 0.920 > X := CohomologyModule(G, M); > time C:=CohomologyGroup(X, 2); Time: 4.070 > C; Full Vector space of degree 1 over GF(3)
> G := OmegaMinus(8, 3); > M := GModule(G); > X := CohomologyModule(G, M); > time CohomologicalDimension(X, 2); 2 Time: 290.280 > phi, P := PermutationRepresentation(G); > MM := GModule(P, [ActionGenerator(M, i): i in [1..Ngens(G)]] );
> time CohomologicalDimension(P, MM, 2); Out of space. >> time CohomologicalDimension(P, MM, 2); ^ Runtime error in 'CohomologicalDimension': Cohomology failed