Idea
Implement methods for modified coset enumeration. This is used to carry out the coset enumeration using a modied coset table. It is also called as the modified Todd-Coxeter procedure. The detailed implementation for all the methods has been provided in the Handbook
Algorithm
All the algorithms for the modified methods are mentioned in the Section 5.3.2 of the Handbook[1].
Implementation
- All the modified methods have been implemetned along with the regualr methods with an additional modified keyword.
- For example,
modified_scanis implemented as:def modfied_scan(): scan(..., modified=True) - A few methods which weren’t much similar to the originla methods were implemented seperatetly.
Discussions
- Implementation of methods with a
modifiedkeyword. - Move the existing
scan_and_fillmethod to thescanmethod with afillkeyword as the implementation is pretty much the same.
Trvial example
Modified coset enumeration example.
>>> f = FpGroup(F, [x**3, y**3, x**-1*y**-1*x*y])
>>> C = modified_coset_enumeration_r(f, [x])
>>> for i in range(len(C.p)):
... if C.p[i] == i:
... print(C.table[i])
[0, 0, 1, 2]
[1, 1, 2, 0]
[2, 2, 0, 1]
PR
Here is the link to the PR ‘Add implementation of the modified coset enumeration’. This, currently, still needs minor changes and will be finalised soon.
References
- [1] Derek F.Holt, Bettina Fick, Eamonn A.O’Brian. Handbook of Computational Group Theory.