Instead of taking the nomenclature ["E",8], if we take Cartan matrix of E8 manually cm= CartanMatrix? <http://trac.sagemath.org/wiki/CartanMatrix>([
[2,-1,0,0,0,0,0,0], [-1,2,-1,0,0,0,0,0], [0,-1,2,-1,0,0,0,0], [0,0,-1,2,-1,0,0,0], [0,0,0,-1,2,-1,0,-1], [0,0,0,0,-1,2,-1,0], [0,0,0,0,0,-1,2,0], [0,0,0,0,-1,0,0,2]],cartan_type_check = False);cm R=RootSystem? <http://trac.sagemath.org/wiki/RootSystem>(cm).root_lattice() alpha = R.simple_roots();alpha W = R.weyl_group(prefix="s") for w in W: w.action(alpha[2]) ==alpha[4] : print w then we are able to act weyl group action on any element with a reasonable time. Although it is taking more time. it is not showing now error insufficient memory On Tuesday, 2 September 2014 12:44:09 UTC+5:30, Nicolas M. Thiery wrote: > > On Mon, Sep 01, 2014 at 09:33:24AM +0200, Christian Stump wrote: > > > - Can GAP iterate through the elements of a finite matrix group (at > > > this point this is all GAP know about the group) without storing > > > them all in memory. > > > > according to the user manual of Chevie > > (https://www.imj-prg.fr/~jean.michel/gap3/htm/chap069.htm#SECT024) it > > is possible to iterate through a finite Coxeter group there. I haven't > > figured out if that is as well possible for permutation groups or > > matrix groups in gap3 or gap4 in general though. > > Thanks Christian and Jean-Michel for your insight! By curiosity, I > looked at the code of __iter__ for Weyl groups (it actually comes from > matrix groups), and found it informative: > > sage: W = WeylGroup(["A",3]) > sage: W.__iter__?? > if not self.is_finite(): > # use implementation from category framework > for g in super(Group, self).__iter__(): > yield g > return > # Use the standard GAP iterator for small groups > if self.cardinality() < 1000: > for g in super(MatrixGroup_gap, self).__iter__(): > yield g > return > # Override for large but finite groups > iso = self.gap().IsomorphismPermGroup() > P = iso.Image() > iterator = P.Iterator() > while not iterator.IsDoneIterator().sage(): > p = iterator.NextIterator() > g = iso.PreImageElm(p) > yield self(g, check=False) > > So, for infinite Coxeter groups, it's the generic iterator provided by > the CoxeterGroups category that is used. And in the case at end (E8), > Sage asks gap to build an isomorphic permutation group, and an > iterator over it. The next question to investigate is why this > actually fills GAP memory. > > Note: to call directly the generic implementation, one can do: > > sage: W = WeylGroup(["E",6]) > sage: for w in CoxeterGroups().parent_class.__iter__(W): > ....: pass > > It would deserve some optimization though, as it's quite slower than > the native implementation in e.g. Coxeter 3: > > sage: W = CoxeterGroup(["E",6], implementation="coxeter3") > sage: %time for w in CoxeterGroups().parent_class.__iter__(W): pass > CPU times: user 31.1 s, sys: 31.4 ms, total: 31.1 s > Wall time: 31.1 s > sage: %time for w in W: pass > CPU times: user 1.61 s, sys: 24.1 ms, total: 1.63 s > Wall time: 1.61 s > > I have added some data points to the following ticket: > > #9285: Challenge: iterating through E8 in 5 minutes > > Anybody to take one this challenge? > > Cheers, > Nicolas > -- > Nicolas M. ThiƩry "Isil" <nth...@users.sf.net <javascript:>> > http://Nicolas.Thiery.name/ > -- You received this message because you are subscribed to the Google Groups "sage-combinat-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-combinat-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-combinat-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-combinat-devel. For more options, visit https://groups.google.com/d/optout.