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.

Reply via email to