gap-packages / recog

The GAP package recog to collect methods for constructive recognition
https://gap-packages.github.io/recog/
GNU General Public License v3.0
7 stars 14 forks source link

Reuse ProductReplacement initialisation data via homomorphisms #290

Open ssiccha opened 3 years ago

ssiccha commented 3 years ago

ProductReplacement initialisation might be expensive. So instead of recomputing that for every node, we can do it once for the root node and then move it around as follows. The initialisation data is simply a list of group elements. Let initSplit be the initialisation data for a splitting node. Then the initialisation data of the ImageRecogNode can be obtained by mapping every entry of initSplit under the homomorphism of the splitting node. The data for the kernel can then be generated by taking for an entry x of initSplit, taking a preimage y of its image under the homomorphism and taking the factor x / y.

Two questions:

(TODO I need to explain this better: One thing to keep in mind: be careful to set the SLPs correctly. There is a location where SLPs of the gens are deleted)