I wrote:
>
> I looked at the implementation and AFAICS the first problem is
> your 'next' function -- you perform search to find action of
> inverse generator. But in Todd-Coxeter coset table is
> supposed to contain entries both for generator and its
> inverse so no need to search. I will try such modification,
> it should give about 100-1000 speedup for larger examples,
> so then we will be able to find out what other problem
> may be.
I have done this. The code is now much faster (probably
most time is spent in debugging printouts). I changed
main data structure to:
A2D ==> TwoDimensionalArray NNI
A1D ==> OneDimensionalArray NNI
TC_state ==> Record(coset_table : A2D, equiv_table : A1D,
inverse_table : A1D,
number_of_generators : NNI,
number_of_indices : NNI, number_of_points : NNI)
I use name 'coset_table' instead of 'generators' because coset
table seem to be standard in literature. 'equv_table' tracks
coincidencies. 'inverse_table' should give inverses of generators
(or inverseses) but is not used now. 'number_of_indices' indicates
how many rows of coset_table are in use (there may be free space).
'number_of_points' in intended to track actual number of distinct
cosets (so that we can compress tables if there are too many
coincidencies).
I have put current version at:
http://www.math.uni.wroc.pl/~hebisch/fricas/gpresent.spad
but it still have bugs: for S6 it apparently generates too
many coincidencies.
Anyway: it seems that during inferencing we need to use
also rotated versions of relations to ensure correct
forward progress.
--
Waldek Hebisch
--
You received this message because you are subscribed to the Google Groups
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/fricas-devel.
For more options, visit https://groups.google.com/d/optout.