From m.fayers at qmul.ac.uk Thu Jan 2 15:36:47 2014 From: m.fayers at qmul.ac.uk (Matthew Fayers) Date: Thu, 2 Jan 2014 15:36:47 +0000 Subject: [GAP Forum] Orbits for subgroups of S_n Message-ID: <52C5878F.5090201@qmul.ac.uk> Dear GAP forum, I have a calculation that I want to carry out (repeatedly with the data varying) without running into memory difficulties. Let S_n denote the symmmetric group on {1,...,n}. I have subgroups H <= K <= S_n; these subgroups are defined by (small) generating sets. I have an element g in S_n. When subgroups of S_n act on S_n by conjugation, the K-orbit containing g is partitioned into H-orbits. I'd like to find representatives for these H-orbits (ideally, the representatives which are smallest in the usual GAP order for permutations). In practice, K is so large that computing the whole of the K-orbit containing g exceeds the available memory. Does anyone have any idea how I can accomplish this? Best wishes, Matt Fayers. _______________________________________________________________ Matthew Fayers School of Mathematics Queen Mary University of London Mile End Road London E1 4NS 020 7882 5479 From chaboksavar at gmail.com Fri Jan 3 00:39:41 2014 From: chaboksavar at gmail.com (Masoud Chaboksavar) Date: Fri, 3 Jan 2014 04:09:41 +0330 Subject: [GAP Forum] How I can act an automorphism of a group to a quotient group Message-ID: Dear Forum Hello Let G be a finite group and H a normal subgroup of it. Also Assume that G/H is a quotient and A is full automorphism group of G. I want calculate the image of a in A on G/H by GAP. For more details: if G/H={H, g1H, g2H, . . . , gnH} I want calculate {H, (g1)^aH, (g2)^aH, . . . , (gn)^aH} With best regards From lvluyen at gmail.com Fri Jan 3 14:10:07 2014 From: lvluyen at gmail.com (Le Van Luyen) Date: Fri, 3 Jan 2014 14:10:07 +0000 Subject: [GAP Forum] How I can act an automorphism of a group to a quotient group In-Reply-To: References: Message-ID: Dear Masoud, You could look the following GAP session: gap> G:=DihedralGroup(32); gap> H:=NormalSubgroups(G)[2]; ## H is a normal subgroup of G gap> p:=NaturalHomomorphismByNormalSubgroup(G,H); ## p: G->G/H gap> GH:=Range(p); ## GH is the quotient G/H gap> A:=AutomorphismGroup(G); ## A=AutG gap> a:=Random(A); ## f is a element in AutG gap> gH:=List(GH,x->PreImagesRepresentative(p,x)); ##gH is the list of representatives {g_1,g_2,...,g_n} gap> agH:=List(gH,x->x^a); ## agH:={g_1^a,g_2^a,...,g_n^a} gap> aGH:=List(agH,x->x^p); Then aGH is the list that you want to compute Best regards, Luyen From Thekiso.Seretlo at nwu.ac.za Wed Jan 8 12:06:46 2014 From: Thekiso.Seretlo at nwu.ac.za (Thekiso Seretlo) Date: Wed, 08 Jan 2014 14:06:46 +0200 Subject: [GAP Forum] Orbits Message-ID: <52CD5B76020000E70008538B@v-pgw-nlx2.p.nwu.ac.za> Dear Forum Collegues It is still new year and my mind is still at rest but I am desperately trying to get the orbitlengths bwhen $M_11$ acts on the set of conjugates of $M_22$. Thanks Thekiso Vrywaringsklousule / Disclaimer: http://www.nwu.ac.za/it/gov-man/disclaimer.html From williamdemeo at gmail.com Wed Jan 8 22:31:03 2014 From: williamdemeo at gmail.com (William DeMeo) Date: Wed, 8 Jan 2014 17:31:03 -0500 Subject: [GAP Forum] Ordering of group elements Message-ID: Hello Forum, We are working on an application involving functions defined on groups. In our programs functions are represented as vectors that are indexed by the elements of a given group. Therefore, the order in which group elements are listed is important when performing operations with these functions (e.g. convolution). I noticed that, in GAP, the default cyclic group of order 8 has 3 generators, and the elements of the group are listed as follows: gap> G:=CyclicGroup(8); gap> Elements(G); [ of ..., f1, f2, f3, f1*f2, f1*f3, f2*f3, f1*f2*f3 ] gap> GeneratorsOfGroup(G); [ f1, f2, f3 ] Suppose instead we want the 8 element cyclic group to be represented with one generator. We can do this as follows: gap> f:= FreeGroup("x"); gap> g:= f/[f.1^8]; gap> Elements(g); [ , x, x^2, x^4, x^3, x^-3, x^-2, x^-1 ] AsSet or AsList or AsSortedList or AsSSortedList all give the same ordering of the group elements as does the Elements function. Finally, here are my questions: Question 1: Why is the default ordering of the elements not one of the alternatives below? [ , x, x^2, x^3, x^4, x^-3, x^-2, x^-1 ] or [ , x, x^2, x^3, x^4, x^5, x^6, x^7 ] Question 2: Suppose our application requires the group elements be listed in this "natural" way. Is it possible to do this without having to inspect each group we use by hand? In other words, is it possible to anticipate the ordering that GAP will use for a given group, so that we can write our programs accordingly? Question 3: Is there no conventional or "natural" ordering of elements for certain groups, in particular the cyclic groups? And why does GAP prefer ...x^2, x^4, x^3... over ...x^2, x^3, x^4... in the example above? As another example, here is the cyclic group of order 16: gap> g:= f/[f.1^16]; gap> Elements(g); [ , x, x^2, x^4, x^8, x^3, x^5, x^9, x^6, x^10, x^12, x^7, x^11, x^13, x^14, x^15 ] Thank you in advance for any suggestions or advice. If there is no general way to anticipate how GAP will order elements of a group, then any comments on GAP's choice of element ordering for particular examples (like cyclic groups or symmetric groups) would be very much appreciated. Sincerely, William -- William DeMeo Department of Mathematics University of South Carolina 1523 Greene Street Columbia, SC 29208 USA phone: 803-261-9135 http://williamdemeo.org http://williamdemeo.github.io/CV -- From hulpke at fastmail.fm Wed Jan 8 23:29:20 2014 From: hulpke at fastmail.fm (Alexander Hulpke) Date: Wed, 8 Jan 2014 16:29:20 -0700 Subject: [GAP Forum] Ordering of group elements In-Reply-To: References: Message-ID: <3F236C3E-43FE-45B0-82C5-0C983CAE6FC2@fastmail.fm> Dear Forum, William DeMeo wrote: > Suppose instead we want the 8 element cyclic group to be represented > with one generator. We can do this as follows: > > gap> f:= FreeGroup("x"); > > > gap> g:= f/[f.1^8]; > > > gap> Elements(g); > [ , x, x^2, x^4, x^3, x^-3, x^-2, x^-1 ] > > AsSet or AsList or AsSortedList or AsSSortedList all give the same > ordering of the group elements as does the Elements function. > The comparison for elements of a finitely presented group is somewhat complicated because one cannot always guarantee an easy normal form. In particular we do not guarantee that such an element ordering is stable between different runs of GAP by default. The questions are probably answered most easily by explaining what GAP does: When asking to compare elements of an fp group, GAP will by default try to construct a faithful permutation representation (or isomorphism to a pc group). Comparison of elements then is based on the same comparison for the images of the elements. In the example this permutation representation probably does not use the default numbering: gap> IsomorphismPermGroup(g); [ x ] -> [ (1,2,4,6,8,7,5,3) ] and thus looks strange. What one could do it to tell GAP (before the first element comparison) to use normal forms: gap> SetReducedMultiplication(g); Then element comparison is instead based on comparison of the normal forms and might look more plausible. (The normal form uses a monoid with x^-1 Elements(g); [ , x^-1, x, x^-2, x^2, x^-3, x^3, x^4 ] If you wanted a bespoke ordering, you could create a function fct(left,right) that implements this ordering and then (before ever asking for the ordering) install it as FpElementComparisonMethod for the elements family. E.g. gap> a:=(1,2,3,4,5,6,7,8); (1,2,3,4,5,6,7,8) gap> myiso:=GroupHomomorphismByImages(g,Group(a),[g.1],[a]);; gap> fct:=function(left,right) return Image(myiso,left) SetFpElmComparisonMethod(FamilyObj(One(g)),fct); gap> Elements(g); [ , x, x^2, x^3, x^4, x^5, x^6, x^7 ] Alternatively, you could install a bespoke normal form method (SetFpElementNFFunction) and force reduced multiplication (which then would use your normal form). Admittedly either looks a bit overkill for cyclic groups, but the machinery is ste up for arbitrary finitely presented groups for whom this is a hard problem. Best, Alexander Hulpke > > Finally, here are my questions: > > > Question 1: Why is the default ordering of the elements not one of the > alternatives below? > > [ , x, x^2, x^3, x^4, x^-3, x^-2, x^-1 ] > > or > > [ , x, x^2, x^3, x^4, x^5, x^6, x^7 ] > > > Question 2: Suppose our application requires the group elements be > listed in this "natural" way. Is it possible to do this without > having to inspect each group we use by hand? In other words, is it > possible to anticipate the ordering that GAP will use for a given > group, so that we can write our programs accordingly? > > > Question 3: Is there no conventional or "natural" ordering of elements > for certain groups, in particular the cyclic groups? And why does GAP > prefer ...x^2, x^4, x^3... over ...x^2, x^3, x^4... in the example > above? > > > As another example, here is the cyclic group of order 16: > > gap> g:= f/[f.1^16]; > > > gap> Elements(g); > [ , x, x^2, x^4, x^8, x^3, x^5, x^9, x^6, x^10, x^12, > x^7, x^11, x^13, x^14, x^15 ] > > > Thank you in advance for any suggestions or advice. If there is no > general way to anticipate how GAP will order elements of a group, then > any comments on GAP's choice of element ordering for particular > examples (like cyclic groups or symmetric groups) would be very much > appreciated. > > > Sincerely, > > William > > > -- > William DeMeo > Department of Mathematics > University of South Carolina > 1523 Greene Street > Columbia, SC 29208 > USA > > phone: 803-261-9135 > http://williamdemeo.org > http://williamdemeo.github.io/CV > -- > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From chaboksavar at gmail.com Sun Jan 12 09:39:09 2014 From: chaboksavar at gmail.com (Masoud Chaboksavar) Date: Sun, 12 Jan 2014 13:09:09 +0330 Subject: [GAP Forum] How I can calculate the relations of Small Group Message-ID: Dear forum Hello I need to calculate the relations of a small group. I know that by command GeneratorsOfGroup I could calculate the generators of a group. But I do not know how I can get its relations. With best regards Masoud From stefan at mcs.st-and.ac.uk Sun Jan 12 10:14:38 2014 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Sun, 12 Jan 2014 10:14:38 -0000 (UTC) Subject: [GAP Forum] How I can calculate the relations of Small Group In-Reply-To: References: Message-ID: On Sun, January 12, 2014 9:39 am, Masoud Chaboksavar wrote: > > I need to calculate the relations of a small group. I know that by command > GeneratorsOfGroup I could calculate the generators of a group. But I do not > know how I can get its relations. If your group is already represented as an fp group, you can obtain a list of the relators by the operation RelatorsOfFpGroup. If not, you need to convert your group into an fp group first -- thus if your group is G, you can get a list of relators by RelatorsOfFpGroup(Image(IsomorphismFpGroup(G))); -- note however that neither the choice of the isomorphism to an fp group nor the choice of the relators is unique. If this does not help you, I suggest you to be more specific about what you need. Best regards, Stefan Kohl ----------------------------------------------------------------------------- http://www.gap-system.org/DevelopersPages/StefanKohl/ ----------------------------------------------------------------------------- From max at quendi.de Mon Jan 13 09:12:52 2014 From: max at quendi.de (Max Horn) Date: Mon, 13 Jan 2014 10:12:52 +0100 Subject: [GAP Forum] Ordering of group elements In-Reply-To: References: Message-ID: Dear William, in addition to Alexander Hulpke's answer, let me point out that you could use the polycyclic package and the pcp groups it provides. This package is loaded by default, too. This is how your example looks with pcp groups: gap> G:=CyclicGroup(IsPcpGroup, 8); Pcp-group with orders [ 8 ] gap> Elements(G); [ g1^7, g1^6, g1^5, g1^4, g1^3, g1^2, g1, id ] gap> GeneratorsOfGroup(G); [ g1 ] The elements of cyclic Pcp group defined over a single-element generating set will always be of this "natural" kind. Technically, pcp groups can be considered as a refinement of the pc groups built into GAP, which you also tried (they are the default returned by CyclicGroup, if no other type is specified). The ordering of elements for both pc and pcp groups is always based on the exponents of the group elements. I.e., every group element of a pc / pcp group with generating set g1, ..., gn has a unique reduced expression of the form g1^e1 g2^e2 ... gn^en and GAP uses the lexicographical order on these exponents to order the elements. Thus, the ordering is always fully predictable. Hope that helps, Max From max at quendi.de Mon Jan 13 10:56:14 2014 From: max at quendi.de (Max Horn) Date: Mon, 13 Jan 2014 11:56:14 +0100 Subject: [GAP Forum] Orbits In-Reply-To: <52CD5B76020000E70008538B@v-pgw-nlx2.p.nwu.ac.za> References: <52CD5B76020000E70008538B@v-pgw-nlx2.p.nwu.ac.za> Message-ID: <0D5461B9-F9F1-411E-BC14-D222F81006C1@quendi.de> Dear Thekiso, On 08.01.2014, at 13:06, "Thekiso Seretlo" wrote: > Dear Forum Collegues > It is still new year and my mind is still at rest but I am desperately trying to get the orbitlengths bwhen $M_11$ acts on the set of conjugates of $M_22$. you told me in private communication that you are interested in these groups as subgroups of HS. Note that HS has two classes of maximal subgroups isomorphic to M11. If I understood your question correctly, one way to answer it is with the following GAP code: gap> LoadPackage("atlasrep"); true gap> g:= AtlasGroup( "HS" ); # Get the relevant maximal subgroups (ordered as in the atlas) gap> m22:=AtlasSubgroup(g, 1); gap> m11a:=AtlasSubgroup(g, 8); gap> m11b:=AtlasSubgroup(g, 9); # Let's verify their isomorphism type gap> StructureDescription(m22); "M22" gap> StructureDescription(m11a); "M11" gap> StructureDescription(m11b); "M11" # Finally, compute the orbit lengths of the two M11 acting on the conjugacy class of M22 gap> cc:=ConjugacyClassSubgroups(g, m22);; gap> OrbitLengthsDomain(m11a, cc); [ 66, 12, 22 ] gap> OrbitLengthsDomain(m11b, cc); [ 22, 12, 66 ] Hope that helps, Max From gletschereis at googlemail.com Wed Jan 15 19:46:24 2014 From: gletschereis at googlemail.com (Andreas Rabenstetter) Date: Wed, 15 Jan 2014 20:46:24 +0100 Subject: [GAP Forum] Work with PGammaL(n,q), APGammaL(n,q) and PSL. Message-ID: Dear GAP-Forum, Question1: I wanted to work with: PGammaL(n,q) or APGammaL(n,q):=, \tau is the Dynkin Automorphism, and it?s supgroup the Socle PSL(n,q). Therefore I defined the Group APGammaL(n,q) with the command "W:= PSL(n,q); G:=AutomorphismGroup(W); " . Since the PSL(n,q) (with the command "PSL(n,q)") isn?t regarded as a supgroup of AGammaL(n,q) or PGammaL(n,q), I have created the supgroup with the command "Socle( G )". Now my Computer doen?t calculate the Groups for (n,q) which are not even very high, because it is to much to calculate for the socle or the Autormorphism Group. Now I wanted to know, if it?s possible to create the whole situation with other commands which work faster. Or does GAP even know the structure. Question2: It would be possible for me to work not porjective. Then I have defined GammaL(n,q) with the command GAP knows. But how can I get the subgroup X, which is isomorph to SL(n,q)? I have tried the command solce, but then for (n,q)=(3,2^4) I get the wrong group: gap> G:=GammaL(3,2^4); GammaL(3,16) gap> Y:=Socle( G ); gap> IsSubgroup(G,Y); true gap> Size(Y); 15 gap> Thank you much for your kind help. Regards From hulpke at math.colostate.edu Thu Jan 16 17:16:59 2014 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu, 16 Jan 2014 10:16:59 -0700 Subject: [GAP Forum] Work with PGammaL(n,q), APGammaL(n,q) and PSL. In-Reply-To: References: Message-ID: Dear GAP-Forum, Andreas Rabenstetter asked: > Question1: I wanted to work with: > > > PGammaL(n,q) or APGammaL(n,q):=, > \tau is the Dynkin Automorphism, and it?s supgroup the Socle PSL(n,q). > > > Therefore I defined the Group APGammaL(n,q) with the command "W:= > PSL(n,q); G:=AutomorphismGroup(W); " . Since the PSL(n,q) (with the > command "PSL(n,q)") isn?t regarded as a supgroup of AGammaL(n,q) or > PGammaL(n,q), I have created the supgroup with the command "Socle( G )". > Now my Computer doen?t calculate the Groups for (n,q) which are not even > very high, because it is to much to calculate for the socle or the > Autormorphism Group. Now I wanted to know, if it?s possible to create the > whole situation with other commands which work faster. Or does GAP even > know the structure. at the moment GAP does not treat these groups specially but runs in the generic calculations for socle and automorphism group. As these are permutation groups of moderately large degree q^n and large order this takes a while. I have code in the development version that immediately writes down generators of the automorphism group, it will be part of GAP 4.8. The easiest way to do equivalently is probably to use the homomorphism SL->PSL explicitly: gap> sl:=SL(5,7); SL(5,7) gap> vecs:=NormedVectors(GF(7)^5);; gap> hom:=ActionHomomorphism(sl,vecs,OnLines,"surjective"); gap> psl:=Image(hom); now take generators of the automorphisms for sl: # induced by GL gap> auts:=List(GeneratorsOfGroup(gl),x->GroupHomomorphismByImagesNC(sl,sl,GeneratorsOfGroup(sl), > List(GeneratorsOfGroup(sl),y->y^x)));; # graph automorphism gap> Add(auts,GroupHomomorphismByImagesNC(sl,sl,GeneratorsOfGroup(sl), > List(GeneratorsOfGroup(sl),y->TransposedMat(y)^-1)));; If the field was nonprime, you need to add a generator of the Galois automorphisms. Transfer to psl: auts:=List(auts,x->InducedAutomorphism(hom,x));; and make a group out of it: gap> A:=Group(auts);; gap> SetIsGroupOfAutomorphismsFiniteGroup(A,true); # will trigger methods for automorphism groups Note that a command such as `IsomorphismPermGroup' for A still will take a little while. > Question2: It would be possible for me to work not porjective. Then I have > defined GammaL(n,q) with the command GAP knows. But how can I get the > subgroup X, which is isomorph to SL(n,q)? I have tried the command solce, > but then for (n,q)=(3,2^4) I get the wrong group: > > gap> G:=GammaL(3,2^4); > GammaL(3,16) > gap> Y:=Socle( G ); > > gap> IsSubgroup(G,Y); > true > gap> Size(Y); > 15 No, that is the socle of GammaL (=its centre). You want the socle modulo the centre, probably PerfectResiduum will be easiest. Best, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From robert.wolstenholme08 at imperial.ac.uk Thu Jan 16 16:34:44 2014 From: robert.wolstenholme08 at imperial.ac.uk (Wolstenholme, Robert) Date: Thu, 16 Jan 2014 16:34:44 +0000 Subject: [GAP Forum] Iteration Over List of Lists Message-ID: <5252654327565F489A4402B674A4F6AD8A65E705@icexch-m1.ic.ac.uk> Is there a way in GAP to easily iterate of lists of lists i.e. like the Python itertools.product() function? From robert.wolstenholme08 at imperial.ac.uk Thu Jan 16 20:03:38 2014 From: robert.wolstenholme08 at imperial.ac.uk (Wolstenholme, Robert) Date: Thu, 16 Jan 2014 20:03:38 +0000 Subject: [GAP Forum] Iteration Over Lists of Lists Message-ID: <5252654327565F489A4402B674A4F6AD8A65E730@icexch-m1.ic.ac.uk> Is there a way in GAP to 'quickly' iterate of lists of lists i.e. like the Python itertools.product() function? From alexander.konovalov at gmail.com Thu Jan 16 22:01:26 2014 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Thu, 16 Jan 2014 22:01:26 +0000 Subject: [GAP Forum] Iteration Over Lists of Lists In-Reply-To: <5252654327565F489A4402B674A4F6AD8A65E730@icexch-m1.ic.ac.uk> References: <5252654327565F489A4402B674A4F6AD8A65E730@icexch-m1.ic.ac.uk> Message-ID: <9A646FF8-CE94-487E-AE2F-4B8ED291FEDE@gmail.com> On 16 Jan 2014, at 20:03, "Wolstenholme, Robert" wrote: > Is there a way in GAP to 'quickly' iterate of lists of lists i.e. like the Python itertools.product() function? > Yes, see `21.20 Operations for Lists' from the GAP Reference Manual. You may enter `?Operations for Lists' in GAP or see it online at http://www.gap-system.org/Manuals/doc/ref/chap21.html#X7DF510F7848CBBFD A random example just to expose the syntax and some functions: gap> l:=List([1..10],i -> [1..i]); [ [ 1 ], [ 1, 2 ], [ 1 .. 3 ], [ 1 .. 4 ], [ 1 .. 5 ], [ 1 .. 6 ], [ 1 .. 7 ], [ 1 .. 8 ], [ 1 .. 9 ], [ 1 .. 10 ] ] gap> Sum( List( l, x -> Product( List( x, Fibonacci ) ) ) ); 124819000 HTH, Alexander From Bill.Allombert at math.u-bordeaux.fr Thu Jan 16 20:23:15 2014 From: Bill.Allombert at math.u-bordeaux.fr (Bill Allombert) Date: Thu, 16 Jan 2014 21:23:15 +0100 Subject: [GAP Forum] Iteration Over List of Lists In-Reply-To: <5252654327565F489A4402B674A4F6AD8A65E705@icexch-m1.ic.ac.uk> References: <5252654327565F489A4402B674A4F6AD8A65E705@icexch-m1.ic.ac.uk> Message-ID: <20140116202315.GC9130@yellowpig> On Thu, Jan 16, 2014 at 04:34:44PM +0000, Wolstenholme, Robert wrote: > Is there a way in GAP to easily iterate of lists of lists i.e. like the > Python itertools.product() function? I suggest you give an example of what you want to do that does not require knowing about Python. Cheers, Bill. PS: Your previous post reached the list. From robert.wolstenholme08 at imperial.ac.uk Thu Jan 16 22:13:41 2014 From: robert.wolstenholme08 at imperial.ac.uk (Wolstenholme, Robert) Date: Thu, 16 Jan 2014 22:13:41 +0000 Subject: [GAP Forum] Iteration Over Lists of Lists In-Reply-To: <9A646FF8-CE94-487E-AE2F-4B8ED291FEDE@gmail.com> References: <5252654327565F489A4402B674A4F6AD8A65E730@icexch-m1.ic.ac.uk>, <9A646FF8-CE94-487E-AE2F-4B8ED291FEDE@gmail.com> Message-ID: <5252654327565F489A4402B674A4F6AD8A65E774@icexch-m1.ic.ac.uk> Thanks for the reply. I don't think I was clear enough with my initial question though so have given the example below: ################################################################################### Consider lists := [] lists[1] := [1,2,3] lists[2] := [4,5] I would now like to iterate over the cartesian product of `lists[1]` and `lists[2]` i.e. `[[1,4],[1,5],[2,4],[2,5],[3,4],[3,5]]`. For an example this small, you could simply store the cartesian product itself in a list and iterate over that. This obviously becomes very inefficient if we have more lists with a larger number of values. A better way is, if we have `n` lists and `size_rc[i] := Size(list[i])`, we can avoid storing/calculating the Cartesian product with base := List([1..n], x -> 1); #We store the iteration step state in base while base <> size_rc do #Perform whatever list[i][base[i]] calculations here #Execute the incrementor base[1] := base[1] + 1; for j in [2..n] do if base[j-1] = size_rc[j-1] + 1 then base[j] := base[j] + 1; base[j-1] := 1; fi; od; od; then at each loop of the while `base` contains the values we need. However this is still far slower than the Python implementation I mentioned before. I was wondering if there was a way in GAP to speed up this iteration (maybe by pointing to the memory locations of the lists)? Thanks, Rob ________________________________________ From: Alexander Konovalov [alexander.konovalov at gmail.com] Sent: 16 January 2014 22:01 To: Wolstenholme, Robert Cc: forum at mail.gap-system.org Subject: Re: [GAP Forum] Iteration Over Lists of Lists On 16 Jan 2014, at 20:03, "Wolstenholme, Robert" wrote: > Is there a way in GAP to 'quickly' iterate of lists of lists i.e. like the Python itertools.product() function? > Yes, see `21.20 Operations for Lists' from the GAP Reference Manual. You may enter `?Operations for Lists' in GAP or see it online at http://www.gap-system.org/Manuals/doc/ref/chap21.html#X7DF510F7848CBBFD A random example just to expose the syntax and some functions: gap> l:=List([1..10],i -> [1..i]); [ [ 1 ], [ 1, 2 ], [ 1 .. 3 ], [ 1 .. 4 ], [ 1 .. 5 ], [ 1 .. 6 ], [ 1 .. 7 ], [ 1 .. 8 ], [ 1 .. 9 ], [ 1 .. 10 ] ] gap> Sum( List( l, x -> Product( List( x, Fibonacci ) ) ) ); 124819000 HTH, Alexander From alexander.konovalov at gmail.com Thu Jan 16 22:19:41 2014 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Thu, 16 Jan 2014 22:19:41 +0000 Subject: [GAP Forum] Iteration Over Lists of Lists In-Reply-To: <5252654327565F489A4402B674A4F6AD8A65E774@icexch-m1.ic.ac.uk> References: <5252654327565F489A4402B674A4F6AD8A65E730@icexch-m1.ic.ac.uk>, <9A646FF8-CE94-487E-AE2F-4B8ED291FEDE@gmail.com> <5252654327565F489A4402B674A4F6AD8A65E774@icexch-m1.ic.ac.uk> Message-ID: <056A4CFB-F130-4742-9FC9-CE2823D4187E@gmail.com> Very briefly (sorry, don't have time for a larger explanation today) - in this case, see IteratorOfCartesianProduct. For example, after lists := []; lists[1] := [1,2,3]; lists[2] := [4,5]; try this: gap> for x in IteratorOfCartesianProduct(lists) do Print(x,"\n");od; [ 1, 4 ] [ 1, 5 ] [ 2, 4 ] [ 2, 5 ] [ 3, 4 ] [ 3, 5 ] This iterates over the cartesian product without generating the list of all tuples from it, and should work fast enough. Best wishes Alexander On 16 Jan 2014, at 22:13, "Wolstenholme, Robert" wrote: > Thanks for the reply. I don't think I was clear enough with my initial question though so have given the example below: > > ################################################################################### > Consider > > lists := [] > lists[1] := [1,2,3] > lists[2] := [4,5] > > I would now like to iterate over the cartesian product of `lists[1]` and `lists[2]` i.e. `[[1,4],[1,5],[2,4],[2,5],[3,4],[3,5]]`. > > For an example this small, you could simply store the cartesian product itself in a list and iterate over that. This obviously becomes very inefficient if we have more lists with a larger number of values. > > > A better way is, if we have `n` lists and `size_rc[i] := Size(list[i])`, we can avoid storing/calculating the Cartesian product with > > base := List([1..n], x -> 1); #We store the iteration step state in base > while base <> size_rc do > > #Perform whatever list[i][base[i]] calculations here > > #Execute the incrementor > base[1] := base[1] + 1; > for j in [2..n] do > if base[j-1] = size_rc[j-1] + 1 then > base[j] := base[j] + 1; > base[j-1] := 1; > fi; > od; > od; > > then at each loop of the while `base` contains the values we need. > > However this is still far slower than the Python implementation I mentioned before. I was wondering if there was a way in GAP to speed up this iteration (maybe by pointing to the memory locations of the lists)? > > Thanks, > Rob > > ________________________________________ > From: Alexander Konovalov [alexander.konovalov at gmail.com] > Sent: 16 January 2014 22:01 > To: Wolstenholme, Robert > Cc: forum at mail.gap-system.org > Subject: Re: [GAP Forum] Iteration Over Lists of Lists > > On 16 Jan 2014, at 20:03, "Wolstenholme, Robert" wrote: > >> Is there a way in GAP to 'quickly' iterate of lists of lists i.e. like the Python itertools.product() function? >> > > Yes, see `21.20 Operations for Lists' from the GAP Reference Manual. You may enter `?Operations for Lists' in GAP or see it online at > > http://www.gap-system.org/Manuals/doc/ref/chap21.html#X7DF510F7848CBBFD > > A random example just to expose the syntax and some functions: > > gap> l:=List([1..10],i -> [1..i]); > [ [ 1 ], [ 1, 2 ], [ 1 .. 3 ], [ 1 .. 4 ], [ 1 .. 5 ], [ 1 .. 6 ], > [ 1 .. 7 ], [ 1 .. 8 ], [ 1 .. 9 ], [ 1 .. 10 ] ] > gap> Sum( List( l, x -> Product( List( x, Fibonacci ) ) ) ); > 124819000 > > > HTH, > Alexander > > > > From robert.wolstenholme08 at imperial.ac.uk Fri Jan 17 09:23:43 2014 From: robert.wolstenholme08 at imperial.ac.uk (Wolstenholme, Robert) Date: Fri, 17 Jan 2014 09:23:43 +0000 Subject: [GAP Forum] Iteration Over Lists of Lists In-Reply-To: <056A4CFB-F130-4742-9FC9-CE2823D4187E@gmail.com> References: <5252654327565F489A4402B674A4F6AD8A65E730@icexch-m1.ic.ac.uk>, <9A646FF8-CE94-487E-AE2F-4B8ED291FEDE@gmail.com> <5252654327565F489A4402B674A4F6AD8A65E774@icexch-m1.ic.ac.uk>, <056A4CFB-F130-4742-9FC9-CE2823D4187E@gmail.com> Message-ID: <5252654327565F489A4402B674A4F6AD8A65E791@icexch-m1.ic.ac.uk> Thanks, this is what I wanted. However, I timed it this morning and found it to actually be slower than the method I previously mentioned (currently speed is of significant importance for what I'm doing). I've included the test script below. You can vary the values of `n` (number of lists) and `k` (size of lists). Note for `n=6` and `k=9` I am getting, IteratorOfCartesianProduct Method: 452ms My Mentioned Method : 203ms Python for Reference : 066ms I was hoping for something nearer the speed of the Python implementation. Code (can be copied and pasted) #################################################################################### n := 6; k := 9; ############################ #IteratorOfCartesianProduct Method# ############################ lol := []; for i in [1..n] do lol[i] := [1..k]; od; a := 1; start := Runtime(); for x in IteratorOfCartesianProduct(lol) do #a := a + 1; #Print("x: ", x, "\n"); od; total1 := Runtime() - start; ################### #My Mentioned Method# ################### size_rc := List([1..n], x -> k); base := List([1..n], x -> 1); #We store the iteration step state in base a := 1; start := Runtime(); repeat #Perform whatever list[i][base[i]] calculations here #a := a + 1; #Print("Base: ", base, "\n"); #Execute the incrementor base[1] := base[1] + 1; for j in [2..n] do if base[j-1] = size_rc[j-1] + 1 then base[j] := base[j] + 1; base[j-1] := 1; fi; od; until base[n] = size_rc[n] + 1; total2 := Runtime() - start; Print("\nTotal1: ", total1, "\nTotal2: ", total2); #################################################################################### Thanks, Rob ________________________________________ From: Alexander Konovalov [alexander.konovalov at gmail.com] Sent: 16 January 2014 22:19 To: Wolstenholme, Robert Cc: forum at mail.gap-system.org Subject: Re: [GAP Forum] Iteration Over Lists of Lists Very briefly (sorry, don't have time for a larger explanation today) - in this case, see IteratorOfCartesianProduct. For example, after lists := []; lists[1] := [1,2,3]; lists[2] := [4,5]; try this: gap> for x in IteratorOfCartesianProduct(lists) do Print(x,"\n");od; [ 1, 4 ] [ 1, 5 ] [ 2, 4 ] [ 2, 5 ] [ 3, 4 ] [ 3, 5 ] This iterates over the cartesian product without generating the list of all tuples from it, and should work fast enough. Best wishes Alexander On 16 Jan 2014, at 22:13, "Wolstenholme, Robert" wrote: > Thanks for the reply. I don't think I was clear enough with my initial question though so have given the example below: > > ################################################################################### > Consider > > lists := [] > lists[1] := [1,2,3] > lists[2] := [4,5] > > I would now like to iterate over the cartesian product of `lists[1]` and `lists[2]` i.e. `[[1,4],[1,5],[2,4],[2,5],[3,4],[3,5]]`. > > For an example this small, you could simply store the cartesian product itself in a list and iterate over that. This obviously becomes very inefficient if we have more lists with a larger number of values. > > > A better way is, if we have `n` lists and `size_rc[i] := Size(list[i])`, we can avoid storing/calculating the Cartesian product with > > base := List([1..n], x -> 1); #We store the iteration step state in base > while base <> size_rc do > > #Perform whatever list[i][base[i]] calculations here > > #Execute the incrementor > base[1] := base[1] + 1; > for j in [2..n] do > if base[j-1] = size_rc[j-1] + 1 then > base[j] := base[j] + 1; > base[j-1] := 1; > fi; > od; > od; > > then at each loop of the while `base` contains the values we need. > > However this is still far slower than the Python implementation I mentioned before. I was wondering if there was a way in GAP to speed up this iteration (maybe by pointing to the memory locations of the lists)? > > Thanks, > Rob > > ________________________________________ > From: Alexander Konovalov [alexander.konovalov at gmail.com] > Sent: 16 January 2014 22:01 > To: Wolstenholme, Robert > Cc: forum at mail.gap-system.org > Subject: Re: [GAP Forum] Iteration Over Lists of Lists > > On 16 Jan 2014, at 20:03, "Wolstenholme, Robert" wrote: > >> Is there a way in GAP to 'quickly' iterate of lists of lists i.e. like the Python itertools.product() function? >> > > Yes, see `21.20 Operations for Lists' from the GAP Reference Manual. You may enter `?Operations for Lists' in GAP or see it online at > > http://www.gap-system.org/Manuals/doc/ref/chap21.html#X7DF510F7848CBBFD > > A random example just to expose the syntax and some functions: > > gap> l:=List([1..10],i -> [1..i]); > [ [ 1 ], [ 1, 2 ], [ 1 .. 3 ], [ 1 .. 4 ], [ 1 .. 5 ], [ 1 .. 6 ], > [ 1 .. 7 ], [ 1 .. 8 ], [ 1 .. 9 ], [ 1 .. 10 ] ] > gap> Sum( List( l, x -> Product( List( x, Fibonacci ) ) ) ); > 124819000 > > > HTH, > Alexander > > > > From dmitrii.pasechnik at cs.ox.ac.uk Fri Jan 17 11:28:31 2014 From: dmitrii.pasechnik at cs.ox.ac.uk (Dmitrii Pasechnik) Date: Fri, 17 Jan 2014 11:28:31 +0000 Subject: [GAP Forum] Iteration Over Lists of Lists In-Reply-To: <5252654327565F489A4402B674A4F6AD8A65E791@icexch-m1.ic.ac.uk> References: <5252654327565F489A4402B674A4F6AD8A65E730@icexch-m1.ic.ac.uk> <9A646FF8-CE94-487E-AE2F-4B8ED291FEDE@gmail.com> <5252654327565F489A4402B674A4F6AD8A65E774@icexch-m1.ic.ac.uk> <056A4CFB-F130-4742-9FC9-CE2823D4187E@gmail.com> <5252654327565F489A4402B674A4F6AD8A65E791@icexch-m1.ic.ac.uk> Message-ID: <20140117112830.GA15939@cs.ox.ac.uk> Dear Robert, you might want to combine Python with GAP using Sage (www.sagemath.org). Then you can benefit from the Python's (or even Cython's) speed and a fast interface to GAP for things you need to do in GAP. HTH, Dmitrii On Fri, Jan 17, 2014 at 09:23:43AM +0000, Wolstenholme, Robert wrote: > Thanks, this is what I wanted. > However, I timed it this morning and found it to actually be slower than the method I previously mentioned (currently speed is of significant importance for what I'm doing). I've included the test script below. You can vary the values of `n` (number of lists) and `k` (size of lists). Note for `n=6` and `k=9` I am getting, > > IteratorOfCartesianProduct Method: 452ms > My Mentioned Method : 203ms > Python for Reference : 066ms > > I was hoping for something nearer the speed of the Python implementation. > > Code (can be copied and pasted) > #################################################################################### > n := 6; > k := 9; > > ############################ > #IteratorOfCartesianProduct Method# > ############################ > lol := []; > for i in [1..n] do > lol[i] := [1..k]; > od; > > a := 1; > > start := Runtime(); > > for x in IteratorOfCartesianProduct(lol) do > #a := a + 1; > #Print("x: ", x, "\n"); > od; > > total1 := Runtime() - start; > > > ################### > #My Mentioned Method# > ################### > size_rc := List([1..n], x -> k); > base := List([1..n], x -> 1); #We store the iteration step state in base > a := 1; > > start := Runtime(); > repeat > > #Perform whatever list[i][base[i]] calculations here > #a := a + 1; > #Print("Base: ", base, "\n"); > > #Execute the incrementor > base[1] := base[1] + 1; > for j in [2..n] do > if base[j-1] = size_rc[j-1] + 1 then > base[j] := base[j] + 1; > base[j-1] := 1; > fi; > od; > until base[n] = size_rc[n] + 1; > > total2 := Runtime() - start; > > Print("\nTotal1: ", total1, "\nTotal2: ", total2); > #################################################################################### > > Thanks, > Rob > > ________________________________________ > From: Alexander Konovalov [alexander.konovalov at gmail.com] > Sent: 16 January 2014 22:19 > To: Wolstenholme, Robert > Cc: forum at mail.gap-system.org > Subject: Re: [GAP Forum] Iteration Over Lists of Lists > > Very briefly (sorry, don't have time for a larger explanation today) > - in this case, see IteratorOfCartesianProduct. For example, after > > lists := []; > lists[1] := [1,2,3]; > lists[2] := [4,5]; > > try this: > > gap> for x in IteratorOfCartesianProduct(lists) do Print(x,"\n");od; > [ 1, 4 ] > [ 1, 5 ] > [ 2, 4 ] > [ 2, 5 ] > [ 3, 4 ] > [ 3, 5 ] > > This iterates over the cartesian product without generating the list of all tuples from it, and should work fast enough. > > Best wishes > Alexander > > > > On 16 Jan 2014, at 22:13, "Wolstenholme, Robert" wrote: > > > Thanks for the reply. I don't think I was clear enough with my initial question though so have given the example below: > > > > ################################################################################### > > Consider > > > > lists := [] > > lists[1] := [1,2,3] > > lists[2] := [4,5] > > > > I would now like to iterate over the cartesian product of `lists[1]` and `lists[2]` i.e. `[[1,4],[1,5],[2,4],[2,5],[3,4],[3,5]]`. > > > > For an example this small, you could simply store the cartesian product itself in a list and iterate over that. This obviously becomes very inefficient if we have more lists with a larger number of values. > > > > > > A better way is, if we have `n` lists and `size_rc[i] := Size(list[i])`, we can avoid storing/calculating the Cartesian product with > > > > base := List([1..n], x -> 1); #We store the iteration step state in base > > while base <> size_rc do > > > > #Perform whatever list[i][base[i]] calculations here > > > > #Execute the incrementor > > base[1] := base[1] + 1; > > for j in [2..n] do > > if base[j-1] = size_rc[j-1] + 1 then > > base[j] := base[j] + 1; > > base[j-1] := 1; > > fi; > > od; > > od; > > > > then at each loop of the while `base` contains the values we need. > > > > However this is still far slower than the Python implementation I mentioned before. I was wondering if there was a way in GAP to speed up this iteration (maybe by pointing to the memory locations of the lists)? > > > > Thanks, > > Rob > > > > ________________________________________ > > From: Alexander Konovalov [alexander.konovalov at gmail.com] > > Sent: 16 January 2014 22:01 > > To: Wolstenholme, Robert > > Cc: forum at mail.gap-system.org > > Subject: Re: [GAP Forum] Iteration Over Lists of Lists > > > > On 16 Jan 2014, at 20:03, "Wolstenholme, Robert" wrote: > > > >> Is there a way in GAP to 'quickly' iterate of lists of lists i.e. like the Python itertools.product() function? > >> > > > > Yes, see `21.20 Operations for Lists' from the GAP Reference Manual. You may enter `?Operations for Lists' in GAP or see it online at > > > > http://www.gap-system.org/Manuals/doc/ref/chap21.html#X7DF510F7848CBBFD > > > > A random example just to expose the syntax and some functions: > > > > gap> l:=List([1..10],i -> [1..i]); > > [ [ 1 ], [ 1, 2 ], [ 1 .. 3 ], [ 1 .. 4 ], [ 1 .. 5 ], [ 1 .. 6 ], > > [ 1 .. 7 ], [ 1 .. 8 ], [ 1 .. 9 ], [ 1 .. 10 ] ] > > gap> Sum( List( l, x -> Product( List( x, Fibonacci ) ) ) ); > > 124819000 > > > > > > HTH, > > Alexander > > > > > > > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From burkhard at hoefling.name Fri Jan 17 11:57:59 2014 From: burkhard at hoefling.name (=?windows-1252?Q?Burkhard_H=F6fling?=) Date: Fri, 17 Jan 2014 12:57:59 +0100 Subject: [GAP Forum] Iteration Over Lists of Lists In-Reply-To: <20140117112830.GA15939@cs.ox.ac.uk> References: <5252654327565F489A4402B674A4F6AD8A65E730@icexch-m1.ic.ac.uk> <9A646FF8-CE94-487E-AE2F-4B8ED291FEDE@gmail.com> <5252654327565F489A4402B674A4F6AD8A65E774@icexch-m1.ic.ac.uk> <056A4CFB-F130-4742-9FC9-CE2823D4187E@gmail.com> <5252654327565F489A4402B674A4F6AD8A65E791@icexch-m1.ic.ac.uk> <20140117112830.GA15939@cs.ox.ac.uk> Message-ID: <59BC44BE-8562-4938-AC6E-8FABC1369189@hoefling.name> Dear Robert, >> Thanks, this is what I wanted. >> However, I timed it this morning and found it to actually be slower than the method I previously mentioned (currently speed is of significant importance for what I'm doing). I've included the test script below. You can vary the values of `n` (number of lists) and `k` (size of lists). Note for `n=6` and `k=9` I am getting, Iterators cause a lot of overhead per call. If you just modify your code a bit, you should get close to Python speed with GAP. On my machine, I get teratorOfCartesianProduct Method: 915 ms Your Mentioned Method : 493 ms variant below: : 125 ms (didn?t try Python). Cheers Burkhard. size_rc := List([1..n], x -> k); base := List([1..n], x -> 1); #We store the iteration step state in base a := 1; start := Runtime(); stop := false; repeat #Perform whatever list[i][base[i]] calculations here #a := a + 1; #Print("Base: ", base, "\n"); #Execute the incrementor base[1] := base[1] + 1; j := 1; while base[j] > size_rc[j] and j < n do base[j] := 1; j := j + 1; base[j] := base[j] + 1; od; until j = n and base[n] > size_rc[n]; total2 := Runtime() - start; From robert.wolstenholme08 at imperial.ac.uk Fri Jan 17 12:12:19 2014 From: robert.wolstenholme08 at imperial.ac.uk (Wolstenholme, Robert) Date: Fri, 17 Jan 2014 12:12:19 +0000 Subject: [GAP Forum] Iteration Over Lists of Lists In-Reply-To: <59BC44BE-8562-4938-AC6E-8FABC1369189@hoefling.name> References: <5252654327565F489A4402B674A4F6AD8A65E730@icexch-m1.ic.ac.uk> <9A646FF8-CE94-487E-AE2F-4B8ED291FEDE@gmail.com> <5252654327565F489A4402B674A4F6AD8A65E774@icexch-m1.ic.ac.uk> <056A4CFB-F130-4742-9FC9-CE2823D4187E@gmail.com> <5252654327565F489A4402B674A4F6AD8A65E791@icexch-m1.ic.ac.uk> <20140117112830.GA15939@cs.ox.ac.uk>, <59BC44BE-8562-4938-AC6E-8FABC1369189@hoefling.name> Message-ID: <5252654327565F489A4402B674A4F6AD8A65E7AE@icexch-m1.ic.ac.uk> Great, results for `n=6`, `k=9` on my machine, IteratorOfCartesianProduct Method : 452ms Initial Mentioned Method : 203ms Burkhard's Method : 047ms Python : 066ms Many thanks everyone, Rob ________________________________________ From: Burkhard H?fling [burkhard at hoefling.name] Sent: 17 January 2014 11:57 To: forum at mail.gap-system.org Cc: Wolstenholme, Robert; Alexander Konovalov; Dmitrii Pasechnik Subject: Re: [GAP Forum] Iteration Over Lists of Lists Dear Robert, >> Thanks, this is what I wanted. >> However, I timed it this morning and found it to actually be slower than the method I previously mentioned (currently speed is of significant importance for what I'm doing). I've included the test script below. You can vary the values of `n` (number of lists) and `k` (size of lists). Note for `n=6` and `k=9` I am getting, Iterators cause a lot of overhead per call. If you just modify your code a bit, you should get close to Python speed with GAP. On my machine, I get teratorOfCartesianProduct Method: 915 ms Your Mentioned Method : 493 ms variant below: : 125 ms (didn?t try Python). Cheers Burkhard. size_rc := List([1..n], x -> k); base := List([1..n], x -> 1); #We store the iteration step state in base a := 1; start := Runtime(); stop := false; repeat #Perform whatever list[i][base[i]] calculations here #a := a + 1; #Print("Base: ", base, "\n"); #Execute the incrementor base[1] := base[1] + 1; j := 1; while base[j] > size_rc[j] and j < n do base[j] := 1; j := j + 1; base[j] := base[j] + 1; od; until j = n and base[n] > size_rc[n]; total2 := Runtime() - start; From frank.luebeck at math.rwth-aachen.de Fri Jan 17 22:34:03 2014 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Fri, 17 Jan 2014 23:34:03 +0100 Subject: [GAP Forum] Iteration Over Lists of Lists In-Reply-To: <5252654327565F489A4402B674A4F6AD8A65E791@icexch-m1.ic.ac.uk> References: <5252654327565F489A4402B674A4F6AD8A65E730@icexch-m1.ic.ac.uk> <9A646FF8-CE94-487E-AE2F-4B8ED291FEDE@gmail.com> <5252654327565F489A4402B674A4F6AD8A65E774@icexch-m1.ic.ac.uk> <056A4CFB-F130-4742-9FC9-CE2823D4187E@gmail.com> <5252654327565F489A4402B674A4F6AD8A65E791@icexch-m1.ic.ac.uk> Message-ID: <20140117223403.GA29871@alkor.math.rwth-aachen.de> Dear Robert, dear Forum, Burkhard already pointed out that the "fast" loop in Robert's example did some unnecessary checks that made it slower than necessary. The timing comparison with a loop over IteratorOfCartesianProduct(lol) is not quite fair, because running over this iterator really produces each element of the Cartesian product as a new GAP object. (that is List([1..n], i-> lol[i][base[i]]) in the notation of Robert's loop). So, if you are not really interested in these tuples as separate objects but just want to look at them in your loop, then using the iterator produces a lot of unnecessary garbage for GAP's memory manager. Robert's question reminded me that I have written a small utility function 'IteratedFor' which does an iterated for-loop. A function fun(tup) is applied to all elements tup of the Cartesian product of a list of lists (or other objects over which GAP can iterate). Note that here entries of tup are accessed by 'tup[i]' which is more efficent than 'lol[i][base[i]]'. I append this utility below together with some usage examples. (Maybe this should go into the GAP library?) With best regards, Frank ########################################################################### ## #F IteratedFor( lol, fun ) . . . . . . . . . . . . . iterated 'for'-loop ## ## lol: a list of lists ## fun( tup ): a function to be called for all tup running through the ## Cartesian product of the lists in lol in alphabetical order ## ## fun must return a value, when it returns 'false' the iterated loops ## are stopped (so, this is like a 'break' for all nested loops). ## ## The argument tup is the same GAP object in all calls of fun, the entries ## of tup are changed during the loop. This means that you should never change ## tup within fun. And if you want to store tup somewhere then make a ## ShallowCopy of it. ## IteratedForInternal := function(lol, fun, tup, i, lenlol) local loli, x, n; for x in lol[i] do tup[i] := x; if i = lenlol then if fun(tup) = false then return false; fi; else if IteratedForInternal(lol, fun, tup, i+1, lenlol) = false then return false; fi; fi; od; return true; end; IteratedFor := function(lol, fun) local tup, n; tup := EmptyPlist(Length(lol)); IteratedForInternal(lol, fun, tup, 1, Length(lol)); end; ############### EXAMPLES ########################################## IteratedFor([[1..2],[1..3],[1..4]], function(tup) Print(tup,"\n"); return true; end); # Robert's benchmark example n := 6; k := 9; lol := List([1..n], i-> [1..k]); a := 0; IteratedFor(lol, function(tup) ## do this if you want to change or store tup: #tup := ShallowCopy(tup); a := a+1; return true; end); time; # and here with a 'break' IteratedFor(lol, function(tup) a := a+1; if tup[3] = 7 then Print(tup); return false; else return true; fi; end); -- /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, \\\ 52062 Aachen, Germany /// E-mail: Frank.Luebeck at Math.RWTH-Aachen.De \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ From Bill.Allombert at math.u-bordeaux.fr Fri Jan 17 12:44:33 2014 From: Bill.Allombert at math.u-bordeaux.fr (Bill Allombert) Date: Fri, 17 Jan 2014 13:44:33 +0100 Subject: [GAP Forum] Iteration Over Lists of Lists In-Reply-To: <5252654327565F489A4402B674A4F6AD8A65E7AE@icexch-m1.ic.ac.uk> References: <5252654327565F489A4402B674A4F6AD8A65E730@icexch-m1.ic.ac.uk> <9A646FF8-CE94-487E-AE2F-4B8ED291FEDE@gmail.com> <5252654327565F489A4402B674A4F6AD8A65E774@icexch-m1.ic.ac.uk> <056A4CFB-F130-4742-9FC9-CE2823D4187E@gmail.com> <5252654327565F489A4402B674A4F6AD8A65E791@icexch-m1.ic.ac.uk> <20140117112830.GA15939@cs.ox.ac.uk> <59BC44BE-8562-4938-AC6E-8FABC1369189@hoefling.name> <5252654327565F489A4402B674A4F6AD8A65E7AE@icexch-m1.ic.ac.uk> Message-ID: <20140117124433.GC17080@yellowpig> On Fri, Jan 17, 2014 at 12:12:19PM +0000, Wolstenholme, Robert wrote: > Great, results for `n=6`, `k=9` on my machine, > > IteratorOfCartesianProduct Method : 452ms > Initial Mentioned Method : 203ms > Burkhard's Method : 047ms > Python : 066ms You can also use the GAP compiler gac to speed things even more. Burkhard take 12ms once compiled on my laptop. Cheers, Bill. From matan at svgalib.org Mon Jan 20 12:29:28 2014 From: matan at svgalib.org (Matan Ziv-Av) Date: Mon, 20 Jan 2014 14:29:28 +0200 (IST) Subject: [GAP Forum] Utility functions for reading files Message-ID: Hello, When people distribute data in GAP format, they sometimes[1][2] do it using files that can be used with the Read() function, assigning the results to some predetermined named variables. This introduces a few problems, such as when wanting to read the results from a few files into a list, or when trying to read the results from within a function. Two examples: gap> PrintTo("file","a:=1;\n"); gap> b:=function() Read("file"); return a; end;; Syntax error: warning: unbound global variable b:=function() Read("file"); return a; end;; ^ Or: gap> a:=2; 2 gap> b:=function() local a; a:=3; Read("file"); return a; end;; gap> b(); 3 gap> a; 1 I think that including the following counterparts to ReadAsFunction() might allow people to distribute the data in a more convenient way. ReadAsList:=function(n) local f,e; f:=InputTextFile(n); e:=ReadAll(f); CloseStream(f); return EvalString(Concatenation("[",e,"]")); end; ReadAsExpression:=function(n) local f,e; f:=InputTextFile(n); e:=ReadAll(f); CloseStream(f); return EvalString(e); end; [1] http://math.shinshu-u.ac.jp/~hanaki/as/ [2] http://www.math.tu-dresden.de/~reichard/schur/ -- Matan. From anvita21 at gmail.com Tue Jan 21 12:01:08 2014 From: anvita21 at gmail.com (Anvita) Date: Tue, 21 Jan 2014 19:01:08 +0700 Subject: [GAP Forum] Understanding MatrixByBlockMatrix Message-ID: Dear Forum, How can I avoid getting an error when trying to convert a block matrix to an ordinary one in the following example? If I enter "return;" in the break loop, I get a "segmentation fault" followed by a crash of GAP session. Thank you. Anvita z:=Z(4); bm:=BlockMatrix( [[1,1,[[z]]], [2,2,[[z]]]],2,2); Display(bm); MatrixByBlockMatrix(bm); gap> z:=Z(4); Z(2^2) gap> gap> bm:=BlockMatrix( > [[1,1,[[z]]], > [2,2,[[z]]]],2,2); gap> gap> Display(bm); z = Z(4) z^1 . . z^1 gap> gap> MatrixByBlockMatrix(bm); Error, You cannot convert a locked vector compressed over GF(2) to GF(4) in mat{[ (i - 1) * blockmat!.rpb + 1 .. i * blockmat!.rpb ]}{ [ (j - 1) * blockmat!.cpb + 1 .. j * blockmat!.cpb ]} := MatrixByBlockMatrix( block[3] ); called from ( ) called from read-eval loop at line 17 of *stdin* You can `return;' to ignore the conversion brk> return; Segmentation fault (core dumped) From w_becker at hotmail.com Thu Jan 23 15:49:41 2014 From: w_becker at hotmail.com (Walter Becker) Date: Thu, 23 Jan 2014 06:49:41 -0900 Subject: [GAP Forum] quotient group homomorphisms Message-ID: The question here is how to display the mapping (homomorphism) h:G---->G/N[i] on the generators of the group G. For a specific case try this: G is Ho,(C_4 X C_2) this is group number 259 in the Hall-Senior Tables and group number 138 in the Small group Library. A specific presentation here is f:=FreeGroup("a", "b", "c" ); g:=f/[f.1^2, f.2^2, f.3^2, (f.1^-1*f.2^-1*f.1*f.2)^2, (f.1^-1*f.3^-1*f.1*f.3)^2, (f.2^-1*f.3^-1*f.2*f.3), (f.1^-1*f.2^-1*f.1*f.2)^-1*f.3^-1*(f.1^-1*f.2^-1*f.1*f.2)*f.3* ((f.1^-1*f.3^-1*f.1*f.3)^-1*f.2^-1*(f.1^-1*f.3^-1*f.1*f.3)*f.2)^-1 ]; The subgroups of most interest here are (C_2 X C_2)wr C_2 of order 32 of which there are 3 cases. Most specivically what are the images h(f.1), h(f.2) and h(f.3). Thanks Walter Becker From anvita21 at gmail.com Sun Jan 26 11:27:01 2014 From: anvita21 at gmail.com (Anvita) Date: Sun, 26 Jan 2014 18:27:01 +0700 Subject: [GAP Forum] On character tables of O8+(7) and U6(4) Message-ID: Dear Forum, As I ran through the list of GAP's character table names of simple groups returned by AllCharacterTableNames(IsSimple,true); with the purpose to detect multiple names for the same table, I used the function NamesOfEquivalentLibraryCharacterTables successfully for all groups, except O8+(7) and U6(4). The commands NamesOfEquivalentLibraryCharacterTables(CharacterTable("O8+(7)")); NamesOfEquivalentLibraryCharacterTables(CharacterTable("U6(4)")); seem to never finish, even though groups much larger than those two present no problem: gap> NamesOfEquivalentLibraryCharacterTables(CharacterTable("M")); [ "M" ] I was just wondering if there is an explanation to this. Anvita From sam at Math.RWTH-Aachen.De Sun Jan 26 13:35:57 2014 From: sam at Math.RWTH-Aachen.De (Thomas Breuer) Date: Sun, 26 Jan 2014 14:35:57 +0100 Subject: [GAP Forum] On character tables of O8+(7) and U6(4) In-Reply-To: References: Message-ID: <20140126133557.GA17324@gemma.math.rwth-aachen.de> Dear GAP Forum, Anvita wrote > As I ran through the list of GAP's character table names of simple groups > returned by > > AllCharacterTableNames(IsSimple,true); > > with the purpose to detect multiple names for the same table, I used the > function > > NamesOfEquivalentLibraryCharacterTables > > successfully for all groups, except O8+(7) and U6(4). > The commands > > NamesOfEquivalentLibraryCharacterTables(CharacterTable("O8+(7)")); > NamesOfEquivalentLibraryCharacterTables(CharacterTable("U6(4)")); > > seem to never finish, even though groups much larger than those two present > no problem: > > gap> NamesOfEquivalentLibraryCharacterTables(CharacterTable("M")); > [ "M" ] > > I was just wondering if there is an explanation to this. The reason is that for these two tables, checking the equivalence of the table with itself takes a long time, due to the fact that no table automorphisms are stored for them. In the next version of the CTblLib package, this problem will disappear. Two more remarks: 1. For running over library tables of simple groups without duplicates, one can call 'AllCharacterTableNames( IsSimple, true, IsDuplicateTable, false )'. 2. Often the complexity of character theoretic computations depends much more on the number of conjugacy classes of the group in question than on the group order. This can be viewed as one of the strengths of character theory. All the best, Thomas Breuer From anvita21 at gmail.com Mon Jan 27 04:30:39 2014 From: anvita21 at gmail.com (Anvita) Date: Mon, 27 Jan 2014 11:30:39 +0700 Subject: [GAP Forum] On character tables of O8+(7) and U6(4) In-Reply-To: <20140126133557.GA17324@gemma.math.rwth-aachen.de> References: <20140126133557.GA17324@gemma.math.rwth-aachen.de> Message-ID: On Sun, Jan 26, 2014 at 8:35 PM, Thomas Breuer wrote: > 1. For running over library tables of simple groups without duplicates, > one can call > 'AllCharacterTableNames( IsSimple, true, IsDuplicateTable, false )'. > Unfortunately, this list does not seem to be duplicate-free as it contains, for example, "A10" and "Alt(10)" as distinct entries. Anvita From A.Langworthy at uea.ac.uk Mon Jan 27 13:46:33 2014 From: A.Langworthy at uea.ac.uk (Andrew Langworthy (MTH)) Date: Mon, 27 Jan 2014 13:46:33 +0000 Subject: [GAP Forum] Algebras Message-ID: <07CE6D08A49ABA4EACEB953BF52571C450B750DE@ueastfexch02.UEA.AC.UK> Dear Forum, I am trying to define algebra maps between a free associative algebra with a one on n generators (modulo some relations), and itself. I am using the command "AlgebraGeneralMappingByImages", but keep getting errors, specifically the "no method found" one. (same thing happens for AlgebraWithOneGeneralMappingByImages) I have tried various "with/without one" combinations without success. I know that some of the algebra maps are not yet implemented in GAP (at least that is what it tells me when I try an use the command AlgebraHomomorphismByImages), but I cannot seem to get anywhere. Am I making some silly mistake? Thanks, Andrew In case anyone wants it, here is my code rewrite:=FreeAssociativeAlgebraWithOne(Rationals,n,"s"); genalg:=GeneratorsOfAlgebra(rewrite); rels1:=[]; for i in [1..n] do AddSet(rels1,genalg[i]^2-genalg[i]); for j in [1..n] do AddSet(rels1,genalg[i]*genalg[j]-genalg[j]*genalg[i]); od; od; RLalg:=rewrite/rels1; s:=GeneratorsOfAlgebra(RLalg); #EPSILON IN RLalg imep:=[1..n+1]; for i in [1..n+1] do imep[i]:=(0)*s[1]; od; for i in [2..n+1] do imep[1]:=imep[1]+s[i]; #Defines imep1 for j in [2..n+1] do imep[i]:=imep[i]+s[i]*s[j]; od; imep[i]:=imep[i]-s[i]*s[i]; #removes the duplicates od; epsilon:=AlgebraGeneralMappingByImages(RLalg,RLalg,s,imep); From sam at Math.RWTH-Aachen.De Mon Jan 27 16:22:12 2014 From: sam at Math.RWTH-Aachen.De (Thomas Breuer) Date: Mon, 27 Jan 2014 17:22:12 +0100 Subject: [GAP Forum] On character tables of O8+(7) and U6(4) In-Reply-To: References: <20140126133557.GA17324@gemma.math.rwth-aachen.de> Message-ID: <20140127162212.GA10815@gemma.math.rwth-aachen.de> Dear Anvita, you wrote > On Sun, Jan 26, 2014 at 8:35 PM, Thomas Breuer wrote: > > > 1. For running over library tables of simple groups without duplicates, > > one can call > > 'AllCharacterTableNames( IsSimple, true, IsDuplicateTable, false )'. > > > > > Unfortunately, this list does not seem to be duplicate-free as it contains, > for example, "A10" and "Alt(10)" as distinct entries. You are right. Some character tables contributed by the 'SpinSym' package are not known to the mechanism behind 'IsDuplicateTable'. This bug will be fixed in the next version of the Character Table Library. As a workaround for the moment, you can start GAP without the 'SpinSym' package when you are interested in running over character tables without duplicates. All the best, Thomas From max at quendi.de Tue Jan 28 00:33:26 2014 From: max at quendi.de (Max Horn) Date: Tue, 28 Jan 2014 01:33:26 +0100 Subject: [GAP Forum] quotient group homomorphisms In-Reply-To: References: Message-ID: Dear Walter, On 23.01.2014, at 16:49, Walter Becker wrote: > The question here is how to display the mapping (homomorphism) > > h:G---->G/N[i] > > on the generators of the group G. For a specific case try this: > > > > G is Ho,(C_4 X C_2) this is group number 259 in the Hall-Senior > > Tables and group number 138 in the Small group Library. It is not clear to me what N[i] is in your general description and/or in your specific example. Some normal subgroup, I assume, but which? > A specific presentation here is > > f:=FreeGroup("a", "b", "c" ); > g:=f/[f.1^2, > f.2^2, > f.3^2, > (f.1^-1*f.2^-1*f.1*f.2)^2, > (f.1^-1*f.3^-1*f.1*f.3)^2, > (f.2^-1*f.3^-1*f.2*f.3), > (f.1^-1*f.2^-1*f.1*f.2)^-1*f.3^-1*(f.1^-1*f.2^-1*f.1*f.2)*f.3* > ((f.1^-1*f.3^-1*f.1*f.3)^-1*f.2^-1*(f.1^-1*f.3^-1*f.1*f.3)*f.2)^-1 > ]; > > > > The subgroups of most interest here are (C_2 X C_2)wr C_2 > > of order 32 of which there are 3 cases. Do you mean that these are the normal subgroups you want to factor out? Anyway, I don't know which subgroups you mean exactly. But for the sake of argument, let's just take any. E.g. the normal closure of the subgroup generated by the first gneerator: gap> n:=NormalClosure(g, Subgroup(g,[g.1])); Group() gap> Size(n); 16 > Most specivically what are the images > > h(f.1), h(f.2) and h(f.3). This can be done as follows. First, you need to obtain the quotient map h: gap> h:=NaturalHomomorphismByNormalSubgroup(g,n); [ a, b, c ] -> [ (), (1,2)(3,4), (1,3)(2,4) ] Then you can use it to compute the images of the generators: gap> Image(h, g.1); () gap> Image(h, g.2); (1,2)(3,4) gap> Image(h, g.3); (1,3)(2,4) # There is also a shortcut notation: gap> g.3^h; (1,3)(2,4) Hope that helps, Max From max at quendi.de Tue Jan 28 09:11:49 2014 From: max at quendi.de (Max Horn) Date: Tue, 28 Jan 2014 10:11:49 +0100 Subject: [GAP Forum] Algebras In-Reply-To: <07CE6D08A49ABA4EACEB953BF52571C450B750DE@ueastfexch02.UEA.AC.UK> References: <07CE6D08A49ABA4EACEB953BF52571C450B750DE@ueastfexch02.UEA.AC.UK> Message-ID: <954EBEBD-5621-46A1-8659-5D5638B3764A@quendi.de> Dear Andrew, On 27.01.2014, at 14:46, "Andrew Langworthy (MTH)" wrote: > Dear Forum, > > I am trying to define algebra maps between a free associative algebra with a one on n generators (modulo some relations), and itself. I am using the command "AlgebraGeneralMappingByImages", but keep getting errors, specifically the "no method found" one. (same thing happens for AlgebraWithOneGeneralMappingByImages) > > I have tried various "with/without one" combinations without success. I know that some of the algebra maps are not yet implemented in GAP (at least that is what it tells me when I try an use the command AlgebraHomomorphismByImages), but I cannot seem to get anywhere. > > Am I making some silly mistake? Perhaps, perhaps not... Your concrete map strikes me as strange (see below). But in general: Not really -- it is simply as you already put it: A lot of that code is not (yet?) implemented in GAP. Basically nothing around free associative algebras (FAAs), to be precise. I guess this is partially due to a lack of need, partially due to the fact that many things related to FAAs are quite hard to do right and require e.g. non-commutative Gr?bner basis calculations... Though not really in your example. As a matter of fact, the code you give below executes just fine for me in the latest GAP development version (and I would hope in GAP 4.7.2). It is only when trying to compute an image under the homomorphism "epsilon" that things break down. Partially due to missing features, partially due to something strange about your "map" (which isn't a well-defined map, details at the end of mail). Anyway, in this particular case, it might be possible to fix that, but I am pretty sure you'd end up running into some other unimplemented feature :-/. However, if all the examples you are looking at are like the one you gave here, there is some hope: [...] > In case anyone wants it, here is my code > > rewrite:=FreeAssociativeAlgebraWithOne(Rationals,n,"s"); > > genalg:=GeneratorsOfAlgebra(rewrite); > rels1:=[]; > > for i in [1..n] do > AddSet(rels1,genalg[i]^2-genalg[i]); > > for j in [1..n] do > AddSet(rels1,genalg[i]*genalg[j]-genalg[j]*genalg[i]); ^^^ The code above basically says that all your generators commute, and have order 2. This should be tractable, even with less powerful things than FAAs. Indeed, your algebra is basically the group ring of an elementary abelian group of order 2^n. Try this: G:=ElementaryAbelianGroup(2^n); RLalg:=GroupRing(Rationals, G); Then, let's go on as with in your code: > > > s:=GeneratorsOfAlgebra(RLalg); > > #EPSILON IN RLalg > > imep:=[1..n+1]; > > for i in [1..n+1] do > imep[i]:=(0)*s[1]; > od; > > for i in [2..n+1] do > imep[1]:=imep[1]+s[i]; #Defines imep1 > > for j in [2..n+1] do > imep[i]:=imep[i]+s[i]*s[j]; > od; > > imep[i]:=imep[i]-s[i]*s[i]; #removes the duplicates > od; > > > epsilon:=AlgebraGeneralMappingByImages(RLalg,RLalg,s,imep); Now let's try to compute an image: gap> ImageElm(epsilon, s[1]); Error, must be single-valued and total called from ( ) called from read-eval loop at line 91 of *stdin* you can 'quit;' to quit to outer loop, or you can 'return;' to continue Huh? Turns out the "map" is not a mapping: gap> IsSingleValued(epsilon); false Indeed: gap> s; [ (1)* of ..., (1)*f1, (1)*f2, (1)*f3 ] gap> imep; [ (1)*f1+(1)*f2+(1)*f3, (1)*f1*f2+(1)*f1*f3, (1)*f1*f2+(1)*f2*f3, (1)*f1*f3+(1)*f2*f3 ] gap> You tell it to map the one of the ring to imep[1] = f1 + f2 + f3 But at the same time, you tell it to map f1 to f1*f2+f1*f3. But then 1 = f1^2 is als mapped to (f1*f2+f1*f3) = 2 + 2*f2*f3 So, the "map" is not well-defined. Cheers, Max From r_n_tsai at yahoo.com Tue Jan 28 19:29:44 2014 From: r_n_tsai at yahoo.com (R.N. Tsai) Date: Tue, 28 Jan 2014 11:29:44 -0800 (PST) Subject: [GAP Forum] Algebras In-Reply-To: <954EBEBD-5621-46A1-8659-5D5638B3764A@quendi.de> References: <07CE6D08A49ABA4EACEB953BF52571C450B750DE@ueastfexch02.UEA.AC.UK> <954EBEBD-5621-46A1-8659-5D5638B3764A@quendi.de> Message-ID: <1390937384.14260.YahooMailNeo@web121203.mail.ne1.yahoo.com> Dear Forum, I happen to be very interested in free associative algebras modulo some relations. So let me follow up this response with a few comments : - There appears to be a package for non commutative groebner basis (gbnp). See example? ? http://mathoverflow.net/questions/87338/basis-of-a-finite-dimensional-algebra-with-a-finitely-generated-relation-set-by - I tried this package with different relations but without luck; the program hits its internal recursion limit... What I'd like to ask is the following : How would the following algebras be defined as quotients of free associative algebras with one : (1)free abelian associative algebra ? ?(this should be as simple as adding relations [a*b-b*a,....] (2)clifford algebra ? ?(relations [a*a-1,b*b-1,....]) (3)weyl (or symplectic clifford) algebra ? ?(relations [a*b-b*a-1,....] Are the above examples doable within gap or any of the packages (including gbnp)? If so some code sniplets would be appreciated. If it is not doable, please let me know so I can stop trying :-) Thanks, R.N. On Tuesday, January 28, 2014 1:13 AM, Max Horn wrote: Dear Andrew, On 27.01.2014, at 14:46, "Andrew Langworthy (MTH)" wrote: > Dear Forum, > > I am trying to define algebra maps between a free associative algebra with a one on n generators (modulo some relations), and itself. I am using the command "AlgebraGeneralMappingByImages", but keep getting errors, specifically the "no method found" one. (same thing happens for AlgebraWithOneGeneralMappingByImages) > > I have tried various "with/without one" combinations without success. I know that some of the algebra maps are not yet implemented in GAP (at least that is what it tells me when I try an use the command AlgebraHomomorphismByImages), but I cannot seem to get anywhere. > > Am I making some silly mistake? Perhaps, perhaps not... Your concrete map strikes me as strange (see below). But in general: Not really -- it is simply as you already put it: A lot of that code is not (yet?) implemented in GAP. Basically nothing around free associative algebras (FAAs), to be precise. I guess this is partially due to a lack of need, partially due to the fact that many things related to FAAs are quite hard to do right and require e.g. non-commutative Gr?bner basis calculations... Though not really in your example. As a matter of fact, the code you give below executes just fine for me in the latest GAP development version (and I would hope in GAP 4.7.2). It is only when trying to compute an image under the homomorphism "epsilon" that things break down. Partially due to missing features, partially due to something strange about your "map" (which isn't a well-defined map, details at the end of mail). Anyway, in this particular case, it might be possible to fix that, but I am pretty sure you'd end up running into some other unimplemented feature :-/. However, if all the examples you are looking at are like the one you gave here, there is some hope: [...] > In case anyone wants it, here is my code > > rewrite:=FreeAssociativeAlgebraWithOne(Rationals,n,"s"); > > genalg:=GeneratorsOfAlgebra(rewrite); > rels1:=[]; > > for i in [1..n] do >? AddSet(rels1,genalg[i]^2-genalg[i]); > >? for j in [1..n] do >? ? ? AddSet(rels1,genalg[i]*genalg[j]-genalg[j]*genalg[i]); ^^^ The code above basically says that all your generators commute, and have order 2. This should be tractable, even with less powerful things than FAAs. Indeed, your algebra is basically the group ring of an elementary abelian group of order 2^n. Try this: G:=ElementaryAbelianGroup(2^n); RLalg:=GroupRing(Rationals, G); Then, let's go on as with in your code: > > > s:=GeneratorsOfAlgebra(RLalg); > >? ? ? ? ? ? ? #EPSILON IN RLalg > > imep:=[1..n+1]; > > for i in [1..n+1] do >? imep[i]:=(0)*s[1]; > od; > > for i in [2..n+1] do >? imep[1]:=imep[1]+s[i]; #Defines imep1 > >? for j in [2..n+1] do >? ? ? imep[i]:=imep[i]+s[i]*s[j]; >? od; > >? imep[i]:=imep[i]-s[i]*s[i]; #removes the duplicates > od; > > > epsilon:=AlgebraGeneralMappingByImages(RLalg,RLalg,s,imep); Now let's try to compute an image: gap> ImageElm(epsilon, s[1]); Error, must be single-valued and total called from ( ) called from read-eval loop at line 91 of *stdin* you can 'quit;' to quit to outer loop, or you can 'return;' to continue Huh? Turns out the "map" is not a mapping: gap> IsSingleValued(epsilon); false Indeed: gap> s; [ (1)* of ..., (1)*f1, (1)*f2, (1)*f3 ] gap> imep; [ (1)*f1+(1)*f2+(1)*f3, (1)*f1*f2+(1)*f1*f3, (1)*f1*f2+(1)*f2*f3, (1)*f1*f3+(1)*f2*f3 ] gap> You tell it to map the one of the ring to imep[1] = f1 + f2 + f3 But at the same time, you tell it to map f1 to f1*f2+f1*f3. But then 1 = f1^2 is als mapped to (f1*f2+f1*f3) = 2 + 2*f2*f3 So, the "map" is not well-defined. Cheers, Max _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From max at quendi.de Tue Jan 28 20:34:57 2014 From: max at quendi.de (Max Horn) Date: Tue, 28 Jan 2014 21:34:57 +0100 Subject: [GAP Forum] Algebras In-Reply-To: <1390937384.14260.YahooMailNeo@web121203.mail.ne1.yahoo.com> References: <07CE6D08A49ABA4EACEB953BF52571C450B750DE@ueastfexch02.UEA.AC.UK> <954EBEBD-5621-46A1-8659-5D5638B3764A@quendi.de> <1390937384.14260.YahooMailNeo@web121203.mail.ne1.yahoo.com> Message-ID: <60F08277-87C9-4240-8A42-9FD69A44E6E6@quendi.de> Dear R.N., On 28.01.2014, at 20:29, "R.N. Tsai" wrote: > Dear Forum, > > I happen to be very interested in free associative algebras modulo some relations. > > So let me follow up this response with a few comments : > > - There appears to be a package for non commutative groebner basis (gbnp). See example > http://mathoverflow.net/questions/87338/basis-of-a-finite-dimensional-algebra-with-a-finitely-generated-relation-set-by > > - I tried this package with different relations but without luck; the program hits its internal recursion limit... I have used GBNP successfully in the past with e.g. BMW algebras. But of course anything dealing with Gr?bner bases in free associative algebras is bound to hit some snags at some point... But in the examples you list below, GBNP should easily work... If you tell us what exactly you tried, perhaps we can give some advice. > > What I'd like to ask is the following : > > How would the following algebras be defined as quotients of free associative algebras with one : > > (1)free abelian associative algebra > (this should be as simple as adding relations [a*b-b*a,....] These are also known as "polynomial rings" ;-). So you can use these in GAP. > (2)clifford algebra > (relations [a*a-1,b*b-1,....]) These are finite dimensional, so one can deal with them in GAP via structure constants table. I have written some code for for that recently, as I have to deal with them in a research project. I am using another quadratic form (a^2 = -1) than the one you want (a^2 = +1), but that can be easily fixed by changing a single line. Code follows at the end of this email. > (3)weyl (or symplectic clifford) algebra > (relations [a*b-b*a-1,....] This one is not finite dimensional, and thus can't be dealt with in the way above. If I had to work with it, I'd try to use GBNP. Or possible I'd not use GAP and instead try the PLURAL library of the Singular project... (And I hope that in the not so distant future, both can in fact be used from within with help of the libsing project... but it's not yet ready). Note that I'd prefer if this was doable via the "naive" (or "logical"?) approach of taking a FreeAssociateAlgebra and factoring out an ideal of relations. Indeed, one way to implement that would be to take GBNP, and writing some wrappers around it. This would be a win for both GAP (gains functionality) and GBNP (gains a nicer user interface ;-). It might be a task for a bachelor student, or Google Summer of Code or so... > > Are the above examples doable within gap or any of the packages (including gbnp)? > If so some code sniplets would be appreciated. If it is not doable, please > let me know so I can stop trying :-) I hope the above helps you a bit! Finally, here is my code for clifford algebras (this mailing list doesn't allow attachments, so I am putting it inline). The line you need to change is marked with a comment. # F is the field (or ring) of coefficients, n the number of generators CliffordAlgebra := function(F, n) local elems, names, e, T, i, j, x, y, z, sign, k, tmp; elems := Combinations([1..n]); names := []; for e in elems do if e = [] then Add(names, "id"); else Add(names, Concatenation(List(e,i -> Concatenation("e",String(i))))); fi; od; T := EmptySCTable( 2^n, 0 ); for i in [1..2^n] do x := elems[i]; for j in [1..2^n] do y := elems[j]; # Determine x * y; z := Concatenation(x, y); sign := 1; # normalize while not IsSet(z) do for k in [1..Length(z)-1] do if z[k] = z[k+1] then Remove(z, k); Remove(z, k); sign := -sign; # remove this to get the form a^2=1 break; elif z[k] > z[k+1] then tmp := z[k]; z[k] := z[k+1]; z[k+1] := tmp; sign := -sign; fi; od; od; SetEntrySCTable( T, i, j, [ sign, Position(elems, z) ] ); od; od; return AlgebraByStructureConstants( F, T, names ); end; R := CliffordAlgebra(Rationals, 4); AssignGeneratorVariables(R); Cheers, Max From r_n_tsai at yahoo.com Wed Jan 29 00:06:03 2014 From: r_n_tsai at yahoo.com (R.N. Tsai) Date: Tue, 28 Jan 2014 16:06:03 -0800 (PST) Subject: [GAP Forum] Algebras In-Reply-To: <60F08277-87C9-4240-8A42-9FD69A44E6E6@quendi.de> References: <07CE6D08A49ABA4EACEB953BF52571C450B750DE@ueastfexch02.UEA.AC.UK> <954EBEBD-5621-46A1-8659-5D5638B3764A@quendi.de> <1390937384.14260.YahooMailNeo@web121203.mail.ne1.yahoo.com> <60F08277-87C9-4240-8A42-9FD69A44E6E6@quendi.de> Message-ID: <1390953963.67369.YahooMailNeo@web121202.mail.ne1.yahoo.com> Dear Max and forum, >I have used GBNP successfully in the past with e.g. BMW algebras. But of course anything >dealing with Gr?bner bases in free associative algebras is bound to hit some snags at some >point... But in the examples you list below, GBNP should easily work... If you tell us what >exactly you tried, perhaps we can give some advice. That's encouraging. I was expecting this to work too but even with the simplest example it fails. Here's what I tried : LoadPackage("gbnp"); A := FreeAssociativeAlgebraWithOne(Rationals,"a","b"); a := A.a; b := A.b; # all three rels below produce the same error rels := [a*b-b*a]; rels := [a*b-b*a-One(A)]; rels := [a*b+b*a-One(A)]; K := GP2NPList(rels); ? ? ? ? ? ? ? ? ? ? ? ? ?? G := SGrobner(K); Display(DimQA(G,2)); PrintNPList(BaseQA(G, 2, 0)); I get the same error for all three cases :? Error, recursion depth trap (5000) ?in ? if GBNP.LookUpOccurTreePTSLRPos( pol, ROT, false, 1 ) = 0 ?then ? ? count := count + countfun( pol, (lvl + 1) ) + 1; ? ? Unbind( pol[lvl + 1] ); fi; called from? countfun( pol, lvl + 1 ) called from countfun( pol, lvl + 1 ) called from countfun( pol, lvl + 1 ) called from countfun( pol, lvl + 1 ) called from countfun( pol, lvl + 1 ) called from You'd expect at least in the first case ([a*b-b*a]) things would work; but maybe there's something subtle I missed that breaks things. Hopefully if it is fixed for one it will apply to all 3. >Note that I'd prefer if this was doable via the "naive" (or "logical"?) approach of taking a >FreeAssociateAlgebra and factoring out an ideal of relations. Indeed, one way to implement that >would be to take GBNP, and writing some wrappers around it. This would be a win for both GAP >(gains functionality) and GBNP (gains a nicer user interface ;-). It might be a task for a >bachelor student, or Google Summer of Code or so... I know the clifford algebra is finite dimensional and can be defined through structure constants. The Weyl algebra can also defined as the universal enveloping algebra of a finite dimensional (Heisenberg) algebra with a further mapping of the center to 1. But I prefer the "naive" approach since it deals with clifford and weyl on the same footing. >Finally, here is my code for clifford algebras (this mailing list doesn't allow attachments, so >I am putting it inline). The line you need to change is marked with a comment. Thanks for the code. I will use this if it turns out the naive approach is a dead end. R.N. From max at quendi.de Wed Jan 29 09:41:39 2014 From: max at quendi.de (Max Horn) Date: Wed, 29 Jan 2014 10:41:39 +0100 Subject: [GAP Forum] Algebras In-Reply-To: <1390953963.67369.YahooMailNeo@web121202.mail.ne1.yahoo.com> References: <07CE6D08A49ABA4EACEB953BF52571C450B750DE@ueastfexch02.UEA.AC.UK> <954EBEBD-5621-46A1-8659-5D5638B3764A@quendi.de> <1390937384.14260.YahooMailNeo@web121203.mail.ne1.yahoo.com> <60F08277-87C9-4240-8A42-9FD69A44E6E6@quendi.de> <1390953963.67369.YahooMailNeo@web121202.mail.ne1.yahoo.com> Message-ID: <312B5ECD-F19A-48E9-AE39-2F996BC4995B@quendi.de> Dear R.N., On 29.01.2014, at 01:06, "R.N. Tsai" wrote: [...] > > LoadPackage("gbnp"); > A := FreeAssociativeAlgebraWithOne(Rationals,"a","b"); > a := A.a; > b := A.b; > > # all three rels below produce the same error > rels := [a*b-b*a]; > rels := [a*b-b*a-One(A)]; > rels := [a*b+b*a-One(A)]; > > K := GP2NPList(rels); > G := SGrobner(K); > Display(DimQA(G,2)); > PrintNPList(BaseQA(G, 2, 0)); > > I get the same error for all three cases : You are asking for a basis of an infinite dimensional algebra in all three cases, so (as per the documentation of GBNP) it is unsurprising you are running into an error. It tries to recursively enumerate a basis, and fails. [...] > You'd expect at least in the first case ([a*b-b*a]) things would work; As I said in my previous email, in that case the algebra is polynomial algebra K[a,b] and thus I wouldn't expect it to work :-). It does work for a Clifford algebra, though (as that is finite dimensional): rels := [a*b+b*a, a*a-One(A), b*b-One(A)]; correctly gives the basis 1, a, b, ab If you want to work in these algebras, you don't want to compute a quotient. Rather, you want to be able to compute normal forms of elements, or at least to be able to decide if two "linear combinations of words" describe the same element of the algebra. Both can be done with non-commutative Gr?bner bases (ncGB): If you are looking at the quotient F/I of a free algebra F by an ideal I, and G is a ncGB of I, then deciding equality amounts to an ideal membership test: for x,y\in F, we have x+I = y+I iff x-y \in I. Computing normal forms is also possible, in GBNP this is what StrongNormalFormNP does. Here is a helper that assumes you have computed the ncGB G, and uses that to compute a normal form for an element x of the free algebra F modulo the ideal (i.e. a canonical representative of the coset x + I) NormalFormMod := x -> NP2GP(StrongNormalFormNP(GP2NP(x), G), A); For example, using rels := [a*b-b*a], we get gap> NormalFormMod(a^5*b^2 - b^2*a^3 - b*a^2*b*a^3); (-1)*a^3*b^2 And so on. This is slightly inconvenient. Nicer would be to have a high-level wrapper around (resp. in) GBNP which implements NaturalHomomorphismByIdeal (or an analogue of it). Cheers, Max From mohamed.barakat at rwth-aachen.de Wed Jan 29 11:57:41 2014 From: mohamed.barakat at rwth-aachen.de (Mohamed Barakat) Date: Wed, 29 Jan 2014 12:57:41 +0100 Subject: [GAP Forum] Algebras In-Reply-To: <1390953963.67369.YahooMailNeo@web121202.mail.ne1.yahoo.com> References: <07CE6D08A49ABA4EACEB953BF52571C450B750DE@ueastfexch02.UEA.AC.UK> <954EBEBD-5621-46A1-8659-5D5638B3764A@quendi.de> <1390937384.14260.YahooMailNeo@web121203.mail.ne1.yahoo.com> <60F08277-87C9-4240-8A42-9FD69A44E6E6@quendi.de> <1390953963.67369.YahooMailNeo@web121202.mail.ne1.yahoo.com> Message-ID: <7A3235B7-15C3-4F02-A6F6-72E6AF39DB0D@rwth-aachen.de> Dear Tsai, the Weyl algebra and the exterior algebra (including GB computations) are supported through the homalg project?s interface to Singular/Plural/SCA. The clifford algebra can also be supported easily: gap> LoadPackage( "RingsForHomalg" ); true If this returns fail then probably because the package io fails to load; in this case please compile io, using ./configure and make gap> Q := HomalgFieldOfRationalsInSingular( ); Q gap> R := PolynomialRing( Q, "x,y,z" ); Q[x,y,z] gap> A := RingOfDerivations( R, "Dx,Dy,Dz" ); Q[x,y,z] All this and more is documented: gap> ?RingsForHomalg:Singular AssignGeneratorVariables does not yet work properly for Weyl algebras. This will be fixed in the next GAP release. For the moment: gap> x := "x" / A; x gap> Dx := "Dx" / A; Dx gap> Dx * x; x*Dx+1 The homalg project has at the moment its own matrix interface: gap> ?HomalgMatrix We are planning to comply with the new matrix interface in GAP once it becomes widely used. gap> mat := HomalgMatrix( "[x*Dy, Dx*x, z*Dx, 1+Dy]", 2, 2, A ); gap> Display( mat ); x*Dy,x*Dx+1, z*Dx,Dy+1 See also: gap> ?MatricesForHomalg:Matrices Best wishes, Mohamed From benjamin.sambale at gmail.com Wed Jan 29 15:27:15 2014 From: benjamin.sambale at gmail.com (Benjamin Sambale) Date: Wed, 29 Jan 2014 16:27:15 +0100 Subject: [GAP Forum] Order and Size Message-ID: <52E91DD3.1090606@gmail.com> Dear GAP users, I'm using GAP 4.7.2 and just ran into the following strange behavior: G:=AbelianGroup([4,4,4]);; A:=AutomorphismGroup(G);; x:=First(A,a->Order(a)<>Size(Group(a))); [ f1*f2*f3, f5, f1*f2*f6 ] -> [ f1, f1*f2*f4*f5*f6, f2*f3*f6 ] I thought that the order of an element is the same as the size of the generated group?? Indeed: x^Order(x); Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> [ f1, f2, f3, f4, f4*f5*f6, f6 ] Any ideas? Best wishes, Benjamin From hulpke at fastmail.fm Wed Jan 29 16:14:25 2014 From: hulpke at fastmail.fm (Alexander Hulpke) Date: Wed, 29 Jan 2014 09:14:25 -0700 Subject: [GAP Forum] Order and Size In-Reply-To: <52E91DD3.1090606@gmail.com> References: <52E91DD3.1090606@gmail.com> Message-ID: <990F41C1-D063-4FF1-A12D-F25FD7CA04C3@fastmail.fm> Dear Forum, On Jan 29, 2014, at 1/29/14 8:27, Benjamin Sambale wrote: > Dear GAP users, > > I'm using GAP 4.7.2 and just ran into the following strange behavior: > > G:=AbelianGroup([4,4,4]);; > A:=AutomorphismGroup(G);; > x:=First(A,a->Order(a)<>Size(Group(a))); > [ f1*f2*f3, f5, f1*f2*f6 ] -> [ f1, f1*f2*f4*f5*f6, f2*f3*f6 ] Thank you for the report. This is a small oversight in the new method for element order for automorphisms. It only arises if an automorphism phi has a power phi^n that will be given on a longer generating set. (Automorphisms of abelian groups are the prime case of this I think.) This will be corrected in the next release. Regards, Alexander Hulpke From max at quendi.de Wed Jan 29 16:30:37 2014 From: max at quendi.de (Max Horn) Date: Wed, 29 Jan 2014 17:30:37 +0100 Subject: [GAP Forum] Order and Size In-Reply-To: <52E91DD3.1090606@gmail.com> References: <52E91DD3.1090606@gmail.com> Message-ID: <19A08756-9894-48A7-89B9-FA4A07AC81A0@quendi.de> Dear Benjamin, On 29.01.2014, at 16:27, Benjamin Sambale wrote: > Dear GAP users, > > I'm using GAP 4.7.2 and just ran into the following strange behavior: > > G:=AbelianGroup([4,4,4]);; > A:=AutomorphismGroup(G);; > x:=First(A,a->Order(a)<>Size(Group(a))); > [ f1*f2*f3, f5, f1*f2*f6 ] -> [ f1, f1*f2*f4*f5*f6, f2*f3*f6 ] > > I thought that the order of an element is the same as the size of the generated group?? Indeed: > > x^Order(x); > Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> [ f1, f2, f3, f4, f4*f5*f6, f6 ] > > Any ideas? This is a bug in GAP :-(. It will be fixed in the next GAP release. In the meantime, you can paste this code into your GAP session to fix the issue: InstallMethod(Order,"for automorphisms",true,[IsGroupHomomorphism],0, function(hom) local map,phi,o,lo,i,start,img; o:=1; phi:=hom; map:=MappingGeneratorsImages(phi); i:=1; while i <= Length(map[1]) do lo:=1; start:=map[1][i]; img:=map[2][i]; while img<>start do img:=ImagesRepresentative(phi,img); lo:=lo+1; # do the bijectivity test only if high local order, then it does not # matter if lo=1000 and not IsBijective(hom) then Error(" must be bijective"); fi; od; if lo>1 then o:=o*lo; if i References: <07CE6D08A49ABA4EACEB953BF52571C450B750DE@ueastfexch02.UEA.AC.UK> <954EBEBD-5621-46A1-8659-5D5638B3764A@quendi.de> <1390937384.14260.YahooMailNeo@web121203.mail.ne1.yahoo.com> <60F08277-87C9-4240-8A42-9FD69A44E6E6@quendi.de> <1390953963.67369.YahooMailNeo@web121202.mail.ne1.yahoo.com> <312B5ECD-F19A-48E9-AE39-2F996BC4995B@quendi.de> Message-ID: <1391035795.4835.YahooMailNeo@web121205.mail.ne1.yahoo.com> Dear Max and forum, > If you want to work in these algebras, you don't want to compute a quotient.? > Rather, you want to be able to compute normal forms of elements, You're absolutely right; this is all I needed. I didn't know GBNP had it already. > NormalFormMod := x -> NP2GP(StrongNormalFormNP(GP2NP(x), G), A); Very helpful...everything is working beautifully now for both weyl and cliford algebras...it's also fairly fast. How do I add GBNP to the list of packages that get loaded automatically? I couldn't figure that out from the gap manual. Thanks, R.N. From r_n_tsai at yahoo.com Wed Jan 29 23:20:33 2014 From: r_n_tsai at yahoo.com (R.N. Tsai) Date: Wed, 29 Jan 2014 15:20:33 -0800 (PST) Subject: [GAP Forum] Algebras In-Reply-To: <7A3235B7-15C3-4F02-A6F6-72E6AF39DB0D@rwth-aachen.de> References: <07CE6D08A49ABA4EACEB953BF52571C450B750DE@ueastfexch02.UEA.AC.UK> <954EBEBD-5621-46A1-8659-5D5638B3764A@quendi.de> <1390937384.14260.YahooMailNeo@web121203.mail.ne1.yahoo.com> <60F08277-87C9-4240-8A42-9FD69A44E6E6@quendi.de> <1390953963.67369.YahooMailNeo@web121202.mail.ne1.yahoo.com> <7A3235B7-15C3-4F02-A6F6-72E6AF39DB0D@rwth-aachen.de> Message-ID: <1391037633.24458.YahooMailNeo@web121204.mail.ne1.yahoo.com> Dear Mohamed and forum, >the Weyl algebra and the exterior algebra (including GB computations) are supported through the >homalg project?s interface to Singular/Plural/SCA. The clifford algebra can also be supported >easily: gap> LoadPackage( "RingsForHomalg" ); true This seems to load ok but when I issue other commands I get errors about Singular not found... I'm pretty sure it's because I don't have Singular installed (I'm running under windows for now). I do have access to linux machines where I can configure Singular,... I'll try that there later. Thanks for your suggestion, R.N. _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From gordon.royle at uwa.edu.au Thu Jan 30 03:18:20 2014 From: gordon.royle at uwa.edu.au (Gordon Royle) Date: Thu, 30 Jan 2014 11:18:20 +0800 Subject: [GAP Forum] Strange sequence at beginning of GAP output Message-ID: <6B475AEF-81C8-4462-A93F-BDF7713CDFEE@uwa.edu.au> I am running some GAP commands that produce output that goes to a file. gap -q < input > output The GAP itself works ok, but the output ends up with the first line (only) starting with some invisible characters, here made visible with the Unix command ?od" 033 [ ? 1 0 3 4 h The ASCII 033 is a backslash so the actual string is \[?1034h Googling this indicates that it has something to do with the readline library, but it is most often associated with Python scripts, all of which is mysterious to me. All I want to know is how to stop GAP producing it. (OS is RedHat Enterprise Linux) Professor Gordon Royle School of Mathematics and Statistics University of Western Australia Gordon.Royle at uwa.edu.au From benjamin.sambale at gmail.com Thu Jan 30 07:46:09 2014 From: benjamin.sambale at gmail.com (Benjamin Sambale) Date: Thu, 30 Jan 2014 08:46:09 +0100 Subject: [GAP Forum] Order and Size In-Reply-To: <19A08756-9894-48A7-89B9-FA4A07AC81A0@quendi.de> References: <52E91DD3.1090606@gmail.com> <19A08756-9894-48A7-89B9-FA4A07AC81A0@quendi.de> Message-ID: <52EA0341.7010701@gmail.com> Thanks for the fix! It seems to work now. Benjamin Am 29.01.2014 17:30, schrieb Max Horn: > Dear Benjamin, > > On 29.01.2014, at 16:27, Benjamin Sambale wrote: > >> Dear GAP users, >> >> I'm using GAP 4.7.2 and just ran into the following strange behavior: >> >> G:=AbelianGroup([4,4,4]);; >> A:=AutomorphismGroup(G);; >> x:=First(A,a->Order(a)<>Size(Group(a))); >> [ f1*f2*f3, f5, f1*f2*f6 ] -> [ f1, f1*f2*f4*f5*f6, f2*f3*f6 ] >> >> I thought that the order of an element is the same as the size of the generated group?? Indeed: >> >> x^Order(x); >> Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> [ f1, f2, f3, f4, f4*f5*f6, f6 ] >> >> Any ideas? > This is a bug in GAP :-(. It will be fixed in the next GAP release. In the meantime, you can paste this code into your GAP session to fix the issue: > > InstallMethod(Order,"for automorphisms",true,[IsGroupHomomorphism],0, > function(hom) > local map,phi,o,lo,i,start,img; > o:=1; > phi:=hom; > map:=MappingGeneratorsImages(phi); > i:=1; > while i <= Length(map[1]) do > lo:=1; > start:=map[1][i]; > img:=map[2][i]; > while img<>start do > img:=ImagesRepresentative(phi,img); > lo:=lo+1; > # do the bijectivity test only if high local order, then it does not > # matter > if lo=1000 and not IsBijective(hom) then > Error(" must be bijective"); > fi; > od; > if lo>1 then > o:=o*lo; > if i phi:=phi^lo; > map:=MappingGeneratorsImages(phi); > i:=0; > fi; > fi; > i:=i+1; > od; > return o; > end); > > > Thanks for the report, > Max From aner_2005 at hotmail.com Thu Jan 30 19:34:58 2014 From: aner_2005 at hotmail.com (Aner Ben-Efraim) Date: Thu, 30 Jan 2014 21:34:58 +0200 Subject: [GAP Forum] Fixed point free permutations of specific order Message-ID: Dear Forum, I am interested in getting all permutations of order n (order 2 is also good) in the group SymmetricGroup([2..m]), which keep no point in place. I have tried to use Filtered(SymmetricGroup([2..m]),x->Order(x)=n and NrMovedPoints(x)=m-1), but this gets extremely slow when m is double digit. I was wondering if there is a way to do this in reasonable time on my PC, at least for m up to say 17, or even 33 if possible. Thanks,Aner From dmitrii.pasechnik at cs.ox.ac.uk Thu Jan 30 20:54:33 2014 From: dmitrii.pasechnik at cs.ox.ac.uk (Dmitrii Pasechnik) Date: Thu, 30 Jan 2014 20:54:33 +0000 Subject: [GAP Forum] Fixed point free permutations of specific order In-Reply-To: References: Message-ID: <20140130205432.GA11271@cs.ox.ac.uk> Dear Aner, On 30 January 2014 19:34, Aner Ben-Efraim wrote: > Dear Forum, > I am interested in getting all permutations of order n (order 2 is > also good) in the group SymmetricGroup([2..m]), which keep no point in > place. > I have tried to use Filtered(SymmetricGroup([2..m]),x->Order(x)=n and > NrMovedPoints(x)=m-1), but this gets extremely slow when m is double > digit. I was wondering if there is a way to do this in reasonable time > on my PC, at least for m up to say 17, or even 33 if possible. You probably will have to stop earlier than 33; indeed, for order 2 case you essentially ask for the list of 1-factors of the complete graph on m vertices (here m must be even). The number of these things grows quite fast, in fact it is equal to (n/2-1)!! (double factorial of n/2-1). See http://oeis.org/A001147 Going through them one by one would really take quite a long time on any "ordinary" modern computer in reasonable time for m=32 (the number would be 191898783962510625). Anyhow, to do this as fast as possible you (IMHO) should not rely on GAP, but rather write your own code (or find it somewhere). Namely, for a given partition m_1+...+m_k=m of m, with all m_j>1 and dividing n, you just have to fill in the k vectors of lengths m_1,..,m_k with numbers from 1,...,m such that in each vector you have a cyclically minimal sequence. Now, do this for all such partitions (they represent possible cyclic structures of fixed point free elements of order n). This will give you all the permutations you are after, in cyclic notation. HTH, Dmitrii From hebert.perez at gmail.com Fri Jan 31 09:25:22 2014 From: hebert.perez at gmail.com (=?ISO-8859-1?B?SGViZXJ0IFDpcmV6LVJvc+lz?=) Date: Fri, 31 Jan 2014 10:25:22 +0100 Subject: [GAP Forum] Changing line when printing to a text file Message-ID: Hi all, I am printing a function's output simultaneously to the standard output (the screen) and to a text file. On the screen the output appears correctly, but in the text file everything appears as a single line, i.e. there is no change of line. Here's my code: LogOutputTo("C:/Tempo/GAP/outgraph.txt"); Print(n, " ", m, "\n"); for i in [1..m] do Print(out[i][1], " ", out[i][2], "\n"); od; LogOutputTo(); What happens to the "\n" character? Thank you very much in advance, Hebert. From williamdemeo at gmail.com Fri Jan 31 10:03:59 2014 From: williamdemeo at gmail.com (William DeMeo) Date: Fri, 31 Jan 2014 05:03:59 -0500 Subject: [GAP Forum] Changing line when printing to a text file In-Reply-To: References: Message-ID: Dear Herbert, You might try outfile:= OutputTextFile(filename, false) ; SetPrintFormattingStatus(outfile, false); Then a line like yours, Print(outfile, " ", out[i][2], "\n"); might do what you expect. It seems to work for me. You could also read Section 10.4-8 of the manual. I believe the following link will take you directly there:: http://www.gap-system.org/Manuals/doc/ref/chap10.html#X8663FCD57E8BC390 Hope that helps. Good luck! Sincerely, William -- William DeMeo Department of Mathematics University of South Carolina 1523 Greene Street Columbia, SC 29208 USA phone: 803-261-9135 http://williamdemeo.org http://williamdemeo.github.io/CV -- On Friday, January 31, 2014, Hebert P?rez-Ros?s wrote: > > Hi all, > > I am printing a function's output simultaneously to the standard output > (the screen) and to a text file. On the screen the output appears > correctly, but in the text file everything appears as a single line, i.e. > there is no change of line. Here's my code: > > LogOutputTo("C:/Tempo/GAP/outgraph.txt"); > Print(n, " ", m, "\n"); > for i in [1..m] do > Print(out[i][1], " ", out[i][2], "\n"); > od; > LogOutputTo(); > > What happens to the "\n" character? > > Thank you very much in advance, > Hebert. > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From hebert.perez at gmail.com Fri Jan 31 11:05:57 2014 From: hebert.perez at gmail.com (=?ISO-8859-1?B?SGViZXJ0IFDpcmV6LVJvc+lz?=) Date: Fri, 31 Jan 2014 12:05:57 +0100 Subject: [GAP Forum] Changing line when printing to a text file In-Reply-To: References: Message-ID: Thanks a lot William, but it still doesn't work :-). By the way, according to Section 10.4-8, shouldn't it be SetPrintFormattingStatus(outfile, true); ? In any case, I've tried both options (true and false), and it still does not change lines. Maybe it's a Windows thing (I'm running GAP on Windows), or maybe it's an old bug that has already been corrected (I'm using GAP version 4.4.12). Any hint will be most welcome. Cheers, Hebert. 2014-01-31 William DeMeo : > Dear Herbert, > > You might try > > outfile:= OutputTextFile(filename, false) ; > SetPrintFormattingStatus(outfile, false); > > Then a line like yours, > > Print(outfile, " ", out[i][2], "\n"); > > might do what you expect. It seems to work for me. > > You could also read Section 10.4-8 of the manual. I believe the > following link will take you directly there:: > > http://www.gap-system.org/Manuals/doc/ref/chap10.html#X8663FCD57E8BC390 > > Hope that helps. Good luck! > > Sincerely, > > William > > -- > William DeMeo > Department of Mathematics > University of South Carolina > 1523 Greene Street > Columbia, SC 29208 > USA > > phone: 803-261-9135 > http://williamdemeo.org > http://williamdemeo.github.io/CV > -- > > > On Friday, January 31, 2014, Hebert P?rez-Ros?s > wrote: > > > > Hi all, > > > > I am printing a function's output simultaneously to the standard output > > (the screen) and to a text file. On the screen the output appears > > correctly, but in the text file everything appears as a single line, i.e. > > there is no change of line. Here's my code: > > > > LogOutputTo("C:/Tempo/GAP/outgraph.txt"); > > Print(n, " ", m, "\n"); > > for i in [1..m] do > > Print(out[i][1], " ", out[i][2], "\n"); > > od; > > LogOutputTo(); > > > > What happens to the "\n" character? > > > > Thank you very much in advance, > > Hebert. > > _______________________________________________ > > Forum mailing list > > Forum at mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > From dmitrii.pasechnik at cs.ox.ac.uk Fri Jan 31 11:33:19 2014 From: dmitrii.pasechnik at cs.ox.ac.uk (Dmitrii Pasechnik) Date: Fri, 31 Jan 2014 11:33:19 +0000 Subject: [GAP Forum] Changing line when printing to a text file In-Reply-To: References: Message-ID: <20140131113319.GA26104@cs.ox.ac.uk> On Fri, Jan 31, 2014 at 12:05:57PM +0100, Hebert P?rez-Ros?s wrote: > Thanks a lot William, but it still doesn't work :-). By the way, according > to Section 10.4-8, shouldn't it be > > SetPrintFormattingStatus(outfile, true); ? > > In any case, I've tried both options (true and false), and it still does > not change lines. Maybe it's a Windows thing (I'm running GAP on Windows), > or maybe it's an old bug that has already been corrected (I'm using GAP > version 4.4.12). Any hint will be most welcome. On Windows "\n" need not be the right character sequence for the end of line. You might want to try "\r\n" instead. HTH, Dmitrii > > Cheers, > Hebert. > > > > 2014-01-31 William DeMeo : > > > Dear Herbert, > > > > You might try > > > > outfile:= OutputTextFile(filename, false) ; > > SetPrintFormattingStatus(outfile, false); > > > > Then a line like yours, > > > > Print(outfile, " ", out[i][2], "\n"); > > > > might do what you expect. It seems to work for me. > > > > You could also read Section 10.4-8 of the manual. I believe the > > following link will take you directly there:: > > > > http://www.gap-system.org/Manuals/doc/ref/chap10.html#X8663FCD57E8BC390 > > > > Hope that helps. Good luck! > > > > Sincerely, > > > > William > > > > -- > > William DeMeo > > Department of Mathematics > > University of South Carolina > > 1523 Greene Street > > Columbia, SC 29208 > > USA > > > > phone: 803-261-9135 > > http://williamdemeo.org > > http://williamdemeo.github.io/CV > > -- > > > > > > On Friday, January 31, 2014, Hebert P?rez-Ros?s > > wrote: > > > > > > Hi all, > > > > > > I am printing a function's output simultaneously to the standard output > > > (the screen) and to a text file. On the screen the output appears > > > correctly, but in the text file everything appears as a single line, i.e. > > > there is no change of line. Here's my code: > > > > > > LogOutputTo("C:/Tempo/GAP/outgraph.txt"); > > > Print(n, " ", m, "\n"); > > > for i in [1..m] do > > > Print(out[i][1], " ", out[i][2], "\n"); > > > od; > > > LogOutputTo(); > > > > > > What happens to the "\n" character? > > > > > > Thank you very much in advance, > > > Hebert. > > > _______________________________________________ > > > Forum mailing list > > > Forum at mail.gap-system.org > > > http://mail.gap-system.org/mailman/listinfo/forum > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From hebert.perez at gmail.com Fri Jan 31 12:17:37 2014 From: hebert.perez at gmail.com (=?ISO-8859-1?B?SGViZXJ0IFDpcmV6LVJvc+lz?=) Date: Fri, 31 Jan 2014 13:17:37 +0100 Subject: [GAP Forum] Changing line when printing to a text file In-Reply-To: <20140131113319.GA26104@cs.ox.ac.uk> References: <20140131113319.GA26104@cs.ox.ac.uk> Message-ID: Now it works !! Thank you, Dimitri. 2014-01-31 Dmitrii Pasechnik : > On Fri, Jan 31, 2014 at 12:05:57PM +0100, Hebert P?rez-Ros?s wrote: > > Thanks a lot William, but it still doesn't work :-). By the way, > according > > to Section 10.4-8, shouldn't it be > > > > SetPrintFormattingStatus(outfile, true); ? > > > > In any case, I've tried both options (true and false), and it still does > > not change lines. Maybe it's a Windows thing (I'm running GAP on > Windows), > > or maybe it's an old bug that has already been corrected (I'm using GAP > > version 4.4.12). Any hint will be most welcome. > > On Windows "\n" need not be the right character sequence for the end of > line. > You might want to try "\r\n" instead. > > HTH, > Dmitrii > > > > Cheers, > > Hebert. > > > > > > > > 2014-01-31 William DeMeo : > > > > > Dear Herbert, > > > > > > You might try > > > > > > outfile:= OutputTextFile(filename, false) ; > > > SetPrintFormattingStatus(outfile, false); > > > > > > Then a line like yours, > > > > > > Print(outfile, " ", out[i][2], "\n"); > > > > > > might do what you expect. It seems to work for me. > > > > > > You could also read Section 10.4-8 of the manual. I believe the > > > following link will take you directly there:: > > > > > > > http://www.gap-system.org/Manuals/doc/ref/chap10.html#X8663FCD57E8BC390 > > > > > > Hope that helps. Good luck! > > > > > > Sincerely, > > > > > > William > > > > > > -- > > > William DeMeo > > > Department of Mathematics > > > University of South Carolina > > > 1523 Greene Street > > > Columbia, SC 29208 > > > USA > > > > > > phone: 803-261-9135 > > > http://williamdemeo.org > > > http://williamdemeo.github.io/CV > > > -- > > > > > > > > > On Friday, January 31, 2014, Hebert P?rez-Ros?s < > hebert.perez at gmail.com> > > > wrote: > > > > > > > > Hi all, > > > > > > > > I am printing a function's output simultaneously to the standard > output > > > > (the screen) and to a text file. On the screen the output appears > > > > correctly, but in the text file everything appears as a single line, > i.e. > > > > there is no change of line. Here's my code: > > > > > > > > LogOutputTo("C:/Tempo/GAP/outgraph.txt"); > > > > Print(n, " ", m, "\n"); > > > > for i in [1..m] do > > > > Print(out[i][1], " ", out[i][2], "\n"); > > > > od; > > > > LogOutputTo(); > > > > > > > > What happens to the "\n" character? > > > > > > > > Thank you very much in advance, > > > > Hebert. > > > > _______________________________________________ > > > > Forum mailing list > > > > Forum at mail.gap-system.org > > > > http://mail.gap-system.org/mailman/listinfo/forum > > > > > _______________________________________________ > > Forum mailing list > > Forum at mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > From r_n_tsai at yahoo.com Wed Feb 5 18:00:44 2014 From: r_n_tsai at yahoo.com (R.N. Tsai) Date: Wed, 5 Feb 2014 10:00:44 -0800 (PST) Subject: [GAP Forum] ELIAS package for Lie algebra reps Message-ID: <1391623244.26638.YahooMailNeo@web121203.mail.ne1.yahoo.com> Dear forum, I ran across this page which references a GAP4 package used to construct finite dimensional representations of Lie algebras (ELIAS). ftp://ftp.gap-system.org/pub/gap/NEU/Info/oldevents.html I didn't find ELIAS in the list of packages. Does anyone know if this is still available. Thanks, R.N. From degraaf at science.unitn.it Thu Feb 6 09:06:01 2014 From: degraaf at science.unitn.it (Willem de Graaf) Date: Thu, 6 Feb 2014 10:06:01 +0100 Subject: [GAP Forum] ELIAS package for Lie algebra reps In-Reply-To: <1391623244.26638.YahooMailNeo@web121203.mail.ne1.yahoo.com> References: <1391623244.26638.YahooMailNeo@web121203.mail.ne1.yahoo.com> Message-ID: Dear R. N. Tsai, ELIAS stands for Eindhoven LIe Algebra System. It was the name used for a body of code for working with Lie algebras. All of it is available in the GAP library, and for that reason there is no package. Best wishes, Willem de Graaf On Wed, Feb 5, 2014 at 7:00 PM, R.N. Tsai wrote: > Dear forum, > I ran across this page which references a GAP4 package used to construct > finite dimensional representations of Lie algebras (ELIAS). > > ftp://ftp.gap-system.org/pub/gap/NEU/Info/oldevents.html > > > I didn't find ELIAS in the list of packages. Does anyone know if this is > still available. > Thanks, > R.N. > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From tanyanlan at ualberta.ca Sat Feb 8 06:11:30 2014 From: tanyanlan at ualberta.ca (yilan tan) Date: Fri, 7 Feb 2014 23:11:30 -0700 Subject: [GAP Forum] Computation using GAP Message-ID: Dear All: I am a Ph.D student at the University of Alberta. My research interest is the representation theory of Yangian. I used GAP to find weight of weight vectors, quickly and efficiently. I feel GAP is so powerful. I would like to seek more applications of GAP to my research. Here is one of my questions. Suppose that I have some elements from an algebra, $h_i$ and $x_i$, where $0\leq i\leq 6$. The defining relations are: 1. $[h_0,x_i]=cx_i$, where c is a natural number and [, ] denoting the Lie bracket. 2.$[h_i,x_j]=[h_{i-1},x_{j+1}]+(c/2)(h_{i-1}x_{j}+x_jh_{i-1})$. We can get at least two things immediately from the defining relations. 3. $[h_i,x_0]=\sum_{s} c_s x_s+\sum_{a,b} c_{a, b} x_ah_b$, here both $c_s$ and $c_ {a, b}$ are rational numbers. 4.inductively, $[h_i,(x_0)^m]=\sum_{s_1,\ldots, s_m}c_{s_1,\ldots,s_m)x_{s_1}\ldots x_{s_m)+\sum_{a_1,\ldots, a_m,b} c_{a_1,\ldots, a_m,b} x_{s_1}\ldots x_{s_m)h_b$. If some of you can kindly answer my questions: 1. How to define the orders of x_j precedes h_i. Which chapters I should read? 2. How to define (3) in GAP system? 3. If it is possible to define an associative algebra with infinite generators? Thank you very much for reading my question. I would appreciate if you can comment my questions. All the best. Peter Tan From benjamin.sambale at gmail.com Mon Feb 10 14:55:44 2014 From: benjamin.sambale at gmail.com (Benjamin) Date: Mon, 10 Feb 2014 15:55:44 +0100 Subject: [GAP Forum] automorphisms of "large" 2-groups Message-ID: <52F8E870.4050800@gmail.com> Dear GAP users, I need some help with the following task: Consider P:=SmallGroup(2^9,10477010); This group satisfies Z(P)=Phi(P)=Omega(P) and Z(P) has order 8. All I want to know is if Aut(P) is a 2-group. The commands AutomorphismGroup(P) and AutomorphismGroupPGroup(P) (using the AutPGrp package) seem to take very long (have been running for hours). Therefore I guess Aut(P) is quite big and definitely not a 2-group. On the other hand, I tried to extend automorphisms of odd order of subgroups and quotient groups without success. In fact, I believe I showed that any nontrivial automorphism of odd order must have order 7 (with regular action on Z(P)). In any case it would be nice to write down a nontrivial automorphism of odd order without knowing them all. Otherwise I would appreciate any argument that Aut(P) is in fact a 2-group. Many thanks, Benjamin From benjamin.sambale at gmail.com Mon Feb 10 19:02:26 2014 From: benjamin.sambale at gmail.com (Benjamin Sambale) Date: Mon, 10 Feb 2014 20:02:26 +0100 Subject: [GAP Forum] automorphisms of "large" 2-groups In-Reply-To: <52F8E870.4050800@gmail.com> References: <52F8E870.4050800@gmail.com> Message-ID: <52F92242.8040204@gmail.com> Thank you for several replies! Heiko Dietrich pointed out that the computation can be done with Magma in a matter of seconds. Also Eamonn O'Brien provided a concrete automorphism of order 7. I like to add that I had no problems with GAP computing automorphism groups of very similar groups (of order 2^9). Best wishes, Benjamin Am 10.02.2014 15:55, schrieb Benjamin: > Dear GAP users, > > I need some help with the following task: Consider > > P:=SmallGroup(2^9,10477010); > > This group satisfies Z(P)=Phi(P)=Omega(P) and Z(P) has order 8. All I > want to know is if Aut(P) is a 2-group. The commands > AutomorphismGroup(P) and AutomorphismGroupPGroup(P) (using the AutPGrp > package) seem to take very long (have been running for hours). > Therefore I guess Aut(P) is quite big and definitely not a 2-group. On > the other hand, I tried to extend automorphisms of odd order of > subgroups and quotient groups without success. In fact, I believe I > showed that any nontrivial automorphism of odd order must have order 7 > (with regular action on Z(P)). > > In any case it would be nice to write down a nontrivial automorphism > of odd order without knowing them all. Otherwise I would appreciate > any argument that Aut(P) is in fact a 2-group. > > Many thanks, > Benjamin > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From max at quendi.de Mon Feb 10 19:29:37 2014 From: max at quendi.de (Max Horn) Date: Mon, 10 Feb 2014 20:29:37 +0100 Subject: [GAP Forum] automorphisms of "large" 2-groups In-Reply-To: <52F92242.8040204@gmail.com> References: <52F8E870.4050800@gmail.com> <52F92242.8040204@gmail.com> Message-ID: Dear Benjamin, dear All, On 10.02.2014, at 20:02, Benjamin Sambale wrote: > Thank you for several replies! > Heiko Dietrich pointed out that the computation can be done with Magma in a matter of seconds. Also Eamonn O'Brien provided a concrete automorphism of order 7. > I like to add that I had no problems with GAP computing automorphism groups of very similar groups (of order 2^9). I had a closer look at the cause for this slowdown. Since I've been working (jointly with Bettina Eick) on somewhat related code dealing with arbitrary finite solvable groups, I am more or less familiar with what's going on there, and after a quick glance, the issue seemed rather familiar... :-) Indeed, the problem is that autpgrp tries to compute a stabilizer via a "naive" orbit-stabilizer computation; but the orbit involved has size 119,992,320 which means it would take a lot of time and memory to actually compute it. This is made worse by the fact that orbit-stabilizer implementation in autpgrp is not running in time linear in the orbit size (as it should), but rather quadratic... so there is no chance for it to complete in the foreseeable future. :-). At first I only fixed the autpgrp to work linear instead of quadratic, but after computing an estimate for the orbit size, I realized this wouldn't be enough (at least not if you are impatient and on a train ride like me ;-). So I did some heart surgery on my local copy of autpgrp, and changed it to use the genss package to compute this stabilizer. For now, this means using a probabilistic algorithm, but I asked it to compute the result with an error probability below 1/2^30, so I am quite hopeful the result is correct. (It should be possible to turn this back into an exact computation, but I didn't bother for this experiment). With that change, GAP + autpgrp + genss also take only a few seconds to compute the automorphism group, which seems to be of size 2^18*7 -- does that match the result Magma gives you? Finally, a concrete automorphism of order 7 is given by Pcgs([ f1, f2, f3, f4, f5, f6, f7, f8, f9 ]) -> [ f1*f2*f5*f7*f8*f9, f3*f8, f1*f7*f8*f9, f4*f5, f5*f6, f4, f9, f7*f9, f8 ] Cheers, Max From anvita21 at gmail.com Tue Feb 11 06:08:22 2014 From: anvita21 at gmail.com (Anvita) Date: Tue, 11 Feb 2014 13:08:22 +0700 Subject: [GAP Forum] The order of Out(S4(8)) Message-ID: Dear Forum, According to the ATLAS, the simple group S4(8) has outer automorphism group of order 6, but the following calculation, if I am interpreting it correctly, seems to suggest that it has order 3. Anvita gap> S:=PSp(4,8); gap> A:=AutomorphismGroup(S); gap> Size(A)/Size(S); 3 From dmitrii.pasechnik at cs.ox.ac.uk Tue Feb 11 10:32:49 2014 From: dmitrii.pasechnik at cs.ox.ac.uk (Dmitrii Pasechnik) Date: Tue, 11 Feb 2014 10:32:49 +0000 Subject: [GAP Forum] The order of Out(S4(8)) In-Reply-To: References: Message-ID: <20140211103249.GB26329@cs.ox.ac.uk> Dear Forum, it works for me (on OSX 10.6.8): ********* GAP, Version 4.6.4 of 04-May-2013 (free software, GPL) * GAP * http://www.gap-system.org ********* Architecture: x86_64-apple-darwin10.8.0-gcc-default64 Libs used: gmp, readline Loading the library and packages ... Packages: Alnuth 3.0.0, AutPGrp 1.5, CTblLib 1.2.2, FactInt 1.5.3, GAPDoc 1.5.1, LAGUNA 3.6.3, Polycyclic 2.11 Try '?help' for help. See also '?copyright' and '?authors' gap> S:=PSp(4,8); gap> OrbitLength(S,1); 585 gap> NormalSubgroups(S); [ Group(()), ] gap> A:=AutomorphismGroup(S); gap> Order(A)/Order(S); 6 gap> Size(A)/Size(S); 6 What version of GAP are you using, and on which OS/hardware? On Tue, Feb 11, 2014 at 01:08:22PM +0700, Anvita wrote: > Dear Forum, > > According to the ATLAS, the simple group S4(8) has outer automorphism group > of order 6, > but the following calculation, if I am interpreting it correctly, seems to > suggest that it has order 3. > > Anvita > > > gap> S:=PSp(4,8); > > gap> A:=AutomorphismGroup(S); > > gap> Size(A)/Size(S); > 3 > _______________________________________________ From anvita21 at gmail.com Tue Feb 11 11:09:05 2014 From: anvita21 at gmail.com (Anvita) Date: Tue, 11 Feb 2014 18:09:05 +0700 Subject: [GAP Forum] The order of Out(S4(8)) In-Reply-To: <20140211103249.GB26329@cs.ox.ac.uk> References: <20140211103249.GB26329@cs.ox.ac.uk> Message-ID: Dear Dmitrii, Here is a more detailed output which includes GAP version and architecture. ????????? GAP, Version 4.7.2 of 01-Dec-2013 (free software, GPL) ? GAP ? http://www.gap-system.org ????????? Architecture: x86_64-unknown-linux-gnu-gcc-default64 Libs used: gmp, readline Loading the library and packages ... Components: trans 1.0, prim 2.1, small* 1.0, id* 1.0 Packages: AClib 1.2, Alnuth 3.0.0, AtlasRep 1.5.0, AutPGrp 1.5, Browse 1.8.3, CRISP 1.3.7, Cryst 4.1.12, CrystCat 1.1.6, CTblLib 1.2.2, FactInt 1.5.3, FGA 1.2.0, GAPDoc 1.5.1, IO 4.2, IRREDSOL 1.2.3, LAGUNA 3.6.4, Polenta 1.3.1, Polycyclic 2.11, RadiRoot 2.6, ResClasses 3.3.2, Sophus 1.23, SpinSym 1.5, TomLib 1.2.4 Try '?help' for help. See also '?copyright' and '?authors' gap> S:=PSp(4,8); gap> A:=AutomorphismGroup(S); gap> Size(A)/Size(S); 3 gap> Please, note that the number of generators of Aut(S) differs from that in your calculation, too. Anvita On Tue, Feb 11, 2014 at 5:32 PM, Dmitrii Pasechnik < dmitrii.pasechnik at cs.ox.ac.uk> wrote: > Dear Forum, > it works for me (on OSX 10.6.8): > > ********* GAP, Version 4.6.4 of 04-May-2013 (free software, GPL) > * GAP * http://www.gap-system.org > ********* Architecture: x86_64-apple-darwin10.8.0-gcc-default64 > Libs used: gmp, readline > Loading the library and packages ... > Packages: Alnuth 3.0.0, AutPGrp 1.5, CTblLib 1.2.2, FactInt 1.5.3, > GAPDoc 1.5.1, LAGUNA 3.6.3, Polycyclic 2.11 > Try '?help' for help. See also '?copyright' and '?authors' > gap> S:=PSp(4,8); > > gap> OrbitLength(S,1); > 585 > gap> NormalSubgroups(S); > [ Group(()), ] > gap> A:=AutomorphismGroup(S); > > gap> Order(A)/Order(S); > 6 > gap> Size(A)/Size(S); > 6 > > > What version of GAP are you using, and on which OS/hardware? > > On Tue, Feb 11, 2014 at 01:08:22PM +0700, Anvita wrote: > > Dear Forum, > > > > According to the ATLAS, the simple group S4(8) has outer automorphism > group > > of order 6, > > but the following calculation, if I am interpreting it correctly, seems > to > > suggest that it has order 3. > > > > Anvita > > > > > > gap> S:=PSp(4,8); > > > > gap> A:=AutomorphismGroup(S); > > > > gap> Size(A)/Size(S); > > 3 > > _______________________________________________ > From matliumh at gmail.com Tue Feb 11 11:31:39 2014 From: matliumh at gmail.com (Minghui Liu) Date: Tue, 11 Feb 2014 19:31:39 +0800 Subject: [GAP Forum] A Question about For Loops Message-ID: Dear All, In GAP I would like to create a free group with 200 generators and call the nth generator dn. I tried the following commands but it does not work: gap> F:=FreeGroup(200); gap> a:=[1..200]; gap> for x in a do > dx:=F.x; > od; The error message is From matliumh at gmail.com Tue Feb 11 11:32:42 2014 From: matliumh at gmail.com (Minghui Liu) Date: Tue, 11 Feb 2014 19:32:42 +0800 Subject: [GAP Forum] A Question about For Loops In-Reply-To: References: Message-ID: Sorry the above message was incomplete. The error message is Error, illegal access to record component `obj.x' of the object . (Objects by default do not have record components. The error might be a relic from translated GAP3 code.) called from called from ( ) called from read-eval loop at line 28 of *stdin* you can 'quit;' to quit to outer loop, or you can 'return;' to continue Anyone could help me with it? Many thanks!! Zuriel On 11 February 2014 19:31, Minghui Liu wrote: > Dear All, > > In GAP I would like to create a free group with 200 generators and call > the nth generator dn. I tried the following commands but it does not work: > > gap> F:=FreeGroup(200); > gap> a:=[1..200]; > gap> for x in a do > > dx:=F.x; > > od; > > The error message is > > > > > From rm43 at evansville.edu Tue Feb 11 11:40:10 2014 From: rm43 at evansville.edu (Robert Morse) Date: Tue, 11 Feb 2014 12:40:10 +0100 Subject: [GAP Forum] A Question about For Loops In-Reply-To: References: Message-ID: gap> F := FreeGroup(200,"d"); should give you what you what. Robert On Tue, Feb 11, 2014 at 12:31 PM, Minghui Liu wrote: > Dear All, > > In GAP I would like to create a free group with 200 generators and call the > nth generator dn. I tried the following commands but it does not work: > > gap> F:=FreeGroup(200); > gap> a:=[1..200]; > gap> for x in a do >> dx:=F.x; >> od; > > The error message is > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From alexk at mcs.st-andrews.ac.uk Tue Feb 11 11:41:36 2014 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Tue, 11 Feb 2014 11:41:36 +0000 Subject: [GAP Forum] A Question about For Loops In-Reply-To: References: Message-ID: Dear Minghui Liu, On 11 Feb 2014, at 11:31, Minghui Liu wrote: > Dear All, > > In GAP I would like to create a free group with 200 generators and call the > nth generator dn. I tried the following commands but it does not work: > > gap> F:=FreeGroup(200); > gap> a:=[1..200]; > gap> for x in a do >> dx:=F.x; >> od; > > The error message is The reason is that GAP parses F.x as an access to the component 'x' of the object F. Clearly that does not work in this context. To enforce evaluation of x to get F.1, F.2 etc, use F.(x), for example gap> F:=FreeGroup(200); gap> a:=[1..200]; [ 1 .. 200 ] gap> for x in a do > dx:=F.(x); > od; gap> dx; f200 The difference between r.name and r.(name) constructions is explained in "29.2 Accessing Record Elements" in the reference manual. Hope this helps Alexander From resteban at mat.upv.es Tue Feb 11 11:56:43 2014 From: resteban at mat.upv.es (Ramon Esteban-Romero) Date: Tue, 11 Feb 2014 12:56:43 +0100 Subject: [GAP Forum] The order of Out(S4(8)) In-Reply-To: References: <20140211103249.GB26329@cs.ox.ac.uk> Message-ID: <52FA0FFB.8030809@mat.upv.es> Dear colleagues, I have also found some differences between GAP versions: ????????? GAP, Version 4.7.2 of 01-Dec-2013 (free software, GPL) ? GAP ? http://www.gap-system.org ????????? Architecture: i686-pc-linux-gnu-gcc-default32 Libs used: gmp Loading the library and packages ... Components: trans 1.0, prim 2.1, small* 1.0, id* 1.0 Packages: AClib 1.2, Alnuth 3.0.0, AtlasRep 1.5.0, AutPGrp 1.5, CRISP 1.3.7, Cryst 4.1.12, CrystCat 1.1.6, CTblLib 1.2.2, FactInt 1.5.3, FGA 1.2.0, GAPDoc 1.5.1, IRREDSOL 1.2.3, LAGUNA 3.6.4, Polenta 1.3.1, Polycyclic 2.11, RadiRoot 2.6, ResClasses 3.3.2, Sophus 1.23, SpinSym 1.5, TomLib 1.2.4 Try '?help' for help. See also '?copyright' and '?authors' gap> S:=PSp(4,8); gap> A:=AutomorphismGroup(S); gap> Size(A)/Size(S); 3 ????????? GAP, Version 4.6.5 of 20-Jul-2013 (free software, GPL) ? GAP ? http://www.gap-system.org ????????? Architecture: i686-pc-linux-gnu-gcc-default32 Libs used: gmp Loading the library and packages ... Components: trans 1.0, prim 2.1, small* 1.0, id* 1.0 Packages: AClib 1.2, Alnuth 3.0.0, AutPGrp 1.5, CRISP 1.3.7, Cryst 4.1.11, CrystCat 1.1.6, CTblLib 1.2.2, FactInt 1.5.3, FGA 1.2.0, GAPDoc 1.5.1, IO 4.2, IRREDSOL 1.2.3, LAGUNA 3.6.3, Polenta 1.3.1, Polycyclic 2.11, RadiRoot 2.6, ResClasses 3.3.0, Sophus 1.23, SpinSym 1.5, TomLib 1.2.2 Try '?help' for help. See also '?copyright' and '?authors' gap> S:=PSp(4,8); gap> A:=AutomorphismGroup(S); gap> Size(A)/Size(S); 6 Best wishes, -- Ramon Clau p?blica PGP/Llave p?blica PGP/Clef publique PGP/PGP public key: http://www.rediris.es/cert/servicios/keyserver/ http://www.uv.es/estebanr/resteban.asc Nou tel?fon/nuevo tel?fono/nouveau t?l?phone/new phone: (+34)9635 44367 Al 11/02/14 12:09, En/na Anvita ha escrit:> Dear Dmitrii, > > Here is a more detailed output which includes GAP version and architecture. > > ????????? GAP, Version 4.7.2 of 01-Dec-2013 (free software, GPL) > ? GAP ? http://www.gap-system.org > ????????? Architecture: x86_64-unknown-linux-gnu-gcc-default64 > Libs used: gmp, readline > Loading the library and packages ... > Components: trans 1.0, prim 2.1, small* 1.0, id* 1.0 > Packages: AClib 1.2, Alnuth 3.0.0, AtlasRep 1.5.0, AutPGrp 1.5, > Browse 1.8.3, CRISP 1.3.7, Cryst 4.1.12, CrystCat 1.1.6, > CTblLib 1.2.2, FactInt 1.5.3, FGA 1.2.0, GAPDoc 1.5.1, IO 4.2, > IRREDSOL 1.2.3, LAGUNA 3.6.4, Polenta 1.3.1, Polycyclic 2.11, > RadiRoot 2.6, ResClasses 3.3.2, Sophus 1.23, SpinSym 1.5, > TomLib 1.2.4 > Try '?help' for help. See also '?copyright' and '?authors' > gap> S:=PSp(4,8); > > gap> A:=AutomorphismGroup(S); > > gap> Size(A)/Size(S); > 3 > gap> > > Please, note that the number of generators of Aut(S) differs from that in > your calculation, too. > > Anvita > > > On Tue, Feb 11, 2014 at 5:32 PM, Dmitrii Pasechnik < > dmitrii.pasechnik at cs.ox.ac.uk> wrote: > >> Dear Forum, >> it works for me (on OSX 10.6.8): >> >> ********* GAP, Version 4.6.4 of 04-May-2013 (free software, GPL) >> * GAP * http://www.gap-system.org >> ********* Architecture: x86_64-apple-darwin10.8.0-gcc-default64 >> Libs used: gmp, readline >> Loading the library and packages ... >> Packages: Alnuth 3.0.0, AutPGrp 1.5, CTblLib 1.2.2, FactInt 1.5.3, >> GAPDoc 1.5.1, LAGUNA 3.6.3, Polycyclic 2.11 >> Try '?help' for help. See also '?copyright' and '?authors' >> gap> S:=PSp(4,8); >> >> gap> OrbitLength(S,1); >> 585 >> gap> NormalSubgroups(S); >> [ Group(()), ] >> gap> A:=AutomorphismGroup(S); >> >> gap> Order(A)/Order(S); >> 6 >> gap> Size(A)/Size(S); >> 6 >> >> >> What version of GAP are you using, and on which OS/hardware? >> >> On Tue, Feb 11, 2014 at 01:08:22PM +0700, Anvita wrote: >>> Dear Forum, >>> >>> According to the ATLAS, the simple group S4(8) has outer automorphism >> group >>> of order 6, >>> but the following calculation, if I am interpreting it correctly, seems >> to >>> suggest that it has order 3. >>> >>> Anvita >>> >>> >>> gap> S:=PSp(4,8); >>> >>> gap> A:=AutomorphismGroup(S); >>> >>> gap> Size(A)/Size(S); >>> 3 >>> _______________________________________________ >> > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From rm43 at evansville.edu Tue Feb 11 12:04:38 2014 From: rm43 at evansville.edu (Robert Morse) Date: Tue, 11 Feb 2014 13:04:38 +0100 Subject: [GAP Forum] A Question about For Loops In-Reply-To: References: Message-ID: Try gennames:= Concatenation(List([1..5], x->Concatenation("a",String(x))), List([1..100],x->Concatenation("b",String(x))), List([1..95],x->Concatenation("c",String(x)))); F := FreeGroup(gennames); Robert On Tue, Feb 11, 2014 at 12:53 PM, Minghui Liu wrote: > Thanks Robert! What if I need to modify some subscript? Say I will define > the first five generators as a1, a2, a3, a4, a5, then the next 100 > generators as b1, b2, ..., b100, then the last 95 as c1, ..., c95? > > Thank you!! > From hulpke at fastmail.fm Tue Feb 11 16:04:11 2014 From: hulpke at fastmail.fm (Alexander Hulpke) Date: Tue, 11 Feb 2014 09:04:11 -0700 Subject: [GAP Forum] The order of Out(S4(8)) In-Reply-To: References: Message-ID: <9ABC38FE-3977-4C6C-BAA3-91F6DFEFF968@fastmail.fm> Dear Forum, Dear Anvita, Thank you very much for the bug report. This bug will be fixed in the next release of GAP. Let me briefly explain what happened, as this indeed looks weird: In GAP 4.7, the algorithm for automorphism groups of simple groups uses a table of automorphism group orders (ATLAS, page xvi) to be able to terminate quickly once all automorphisms were found. This typically produces a very subtantial speedup, as most time is spent in verifying there are no further automorphisms. Now the group in question is PSp(4,8) which in Lie-language is C2(8). However this group is isomorphic to B2(8) which would be O5(8). As the ATLAS describes the group as Sp4, GAP also does so, i.e. it recognizes the group as C2(8). The ATLAS table now gives an exception (the missing 2) for the automorphism group of B2 and does not repeat this exception for C2 explicitly (and only says Cn for n>=3). This special case was not covered, and GAP deduced the wrong automorphism group size (outer 3, not 3*2) and stopped once it was found. This is corrected now. If you call (after defining S) gap> SetDataAboutSimpleGroup(S, > rec( allExtensions := [ [ 2, "2" ], [ 3, "3" ], [ 6, "6" ] ], classicalId := rec( parameter := [ 5, 8 ], series := "O" ), > fullAutGroup := [ 6, "6" ], idSimple := rec( name := "B(2,8) = O(5,8) ~ C(2,8) = S(4,8)", parameter := [ 2, 8 ], > series := "B" ), tomName := "O5(8)" )); you explicitly set this correct data and the automorphism group calculation will perform fine. Apologies for the problem! Alexander From alexk at mcs.st-andrews.ac.uk Thu Feb 13 20:43:07 2014 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Thu, 13 Feb 2014 20:43:07 +0000 Subject: [GAP Forum] Algebras In-Reply-To: <1391035795.4835.YahooMailNeo@web121205.mail.ne1.yahoo.com> References: <07CE6D08A49ABA4EACEB953BF52571C450B750DE@ueastfexch02.UEA.AC.UK> <954EBEBD-5621-46A1-8659-5D5638B3764A@quendi.de> <1390937384.14260.YahooMailNeo@web121203.mail.ne1.yahoo.com> <60F08277-87C9-4240-8A42-9FD69A44E6E6@quendi.de> <1390953963.67369.YahooMailNeo@web121202.mail.ne1.yahoo.com> <312B5ECD-F19A-48E9-AE39-2F996BC4995B@quendi.de> <1391035795.4835.YahooMailNeo@web121205.mail.ne1.yahoo.com> Message-ID: Dear all, On 29 Jan 2014, at 22:49, R.N. Tsai wrote: > Dear Max and forum, > >> If you want to work in these algebras, you don't want to compute a quotient. >> Rather, you want to be able to compute normal forms of elements, > > You're absolutely right; this is all I needed. I didn't know GBNP had it already. > >> NormalFormMod := x -> NP2GP(StrongNormalFormNP(GP2NP(x), G), A); > > Very helpful...everything is working beautifully now for both weyl and cliford > algebras...it's also fairly fast. > > How do I add GBNP to the list of packages that get loaded automatically? > I couldn't figure that out from the gap manual. In GAP 4.7.2 this is documented in "3.2-3 Configuring User preferences" (enter `?WriteGapIniFile' in GAP to see that section). You may call WriteGapIniFile(); to create gap.ini file where you may specify user preferences. Its output will tell the path to this file, then you may edit it around the lines ## A list of names of packages which should be loaded during startup. For ## backwards compatibility, the default lists most of packages that were ## autoloaded in GAP 4.4 (add or remove packages as you like). # SetUserPreference( "PackagesToLoad", [ "autpgrp", "alnuth", "crisp", "ctbllib", "factint", "fga", "irredsol", "laguna", "polenta", "polycyclic", "resclasses", "sophus", "tomlib" ] ); uncommenting the last command and modifying its argument, adding packages you want to load in addition to those already listed there. Best regards Alexander From robert.wolstenholme08 at imperial.ac.uk Fri Feb 14 19:37:12 2014 From: robert.wolstenholme08 at imperial.ac.uk (Wolstenholme, Robert) Date: Fri, 14 Feb 2014 19:37:12 +0000 Subject: [GAP Forum] Compiling GAP for Use in C Program Message-ID: <5252654327565F489A4402B674A4F6AD8A666057@icexch-m1.ic.ac.uk> I want to compile some of my GAP functions into static libraries for use in a C program. I have compiled them using gac -c on Ubuntu but I 'm not sure how to now call these functions in my C program. I tried a few things but whenever I tried to link and create a binary I got an error. For example I initially tried a "Hello World" example with HelloWorld.g = -------------------------------------------------------------+ PrintEO := function ( n ) Print( "Hello World" ); end; | -------------------------------------------------------------+ HelloWorldMain.c = -----------------------+ #include | | '''?void PrintEO()?'''' | int main() | { | '''?PrintEO()?''' | return 0; | } | -----------------------+ Where I don't know what to put for the '''?PrintEO()?'''. I analysed the created source code using gac -C but it still wasn't clear to me. How would I go about getting this to work? Rob From dmitrii.pasechnik at cs.ox.ac.uk Fri Feb 14 20:44:06 2014 From: dmitrii.pasechnik at cs.ox.ac.uk (Dima Pasechnik) Date: Fri, 14 Feb 2014 20:44:06 +0000 Subject: [GAP Forum] Compiling GAP for Use in C Program In-Reply-To: <5252654327565F489A4402B674A4F6AD8A666057@icexch-m1.ic.ac.uk> References: <5252654327565F489A4402B674A4F6AD8A666057@icexch-m1.ic.ac.uk> Message-ID: <20140214204406.GA21224@nash> Dear Robert, On Fri, Feb 14, 2014 at 07:37:12PM +0000, Wolstenholme, Robert wrote: > I want to compile some of my GAP functions into static libraries for use in a C program. I have compiled them using gac -c on Ubuntu but I 'm not sure how to now call these functions in my C program. I tried a few things but whenever I tried to link and create a binary I got an error. One way is to use libGAP, which comes with Sage (http://www.sagemath.org), but can also be used to create standalone C programs which call GAP functions. See either the link above or https://bitbucket.org/vbraun/libgap where in particular libGAP/test/test.c is an example of a standalone C program calling GAP. (or, certainly, if you might as well call GAP from Python (or Cython) then Sage is all you need :-)) HTH, Dmitrii From caj21 at st-andrews.ac.uk Sat Feb 15 12:04:51 2014 From: caj21 at st-andrews.ac.uk (Chris Jefferson) Date: Sat, 15 Feb 2014 12:04:51 +0000 Subject: [GAP Forum] Compiling GAP for Use in C Program In-Reply-To: <5252654327565F489A4402B674A4F6AD8A666057@icexch-m1.ic.ac.uk> References: <5252654327565F489A4402B674A4F6AD8A666057@icexch-m1.ic.ac.uk> Message-ID: <52FF57E3.2020708@st-andrews.ac.uk> While this is not at all the answer to what you asked, you could consider using SCSCP, which is a library which lets you communicate with GAP. I have a very simple C++ SCSCP library here: https://bitbucket.org/ChrisJefferson/miniscscp, although it is easy to use SCSCP (except you have to use an XML library) If you are making many very cheap calls to GAP this can be a bit slow, but it also makes it easy to parallelise your code as well. Chris On 14/02/14 19:37, Wolstenholme, Robert wrote: > I want to compile some of my GAP functions into static libraries for use in a C program. I have compiled them using gac -c on Ubuntu but I 'm not sure how to now call these functions in my C program. I tried a few things but whenever I tried to link and create a binary I got an error. > > For example I initially tried a "Hello World" example with > > HelloWorld.g = > -------------------------------------------------------------+ > PrintEO := function ( n ) Print( "Hello World" ); end; | > -------------------------------------------------------------+ > > HelloWorldMain.c = > -----------------------+ > #include | > | > '''?void PrintEO()?'''' | > int main() | > { | > '''?PrintEO()?''' | > return 0; | > } | > -----------------------+ > Where I don't know what to put for the '''?PrintEO()?'''. I analysed the created source code using gac -C but it still wasn't clear to me. How would I go about getting this to work? > > Rob > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From r_n_tsai at yahoo.com Sun Feb 16 19:56:42 2014 From: r_n_tsai at yahoo.com (R.N. Tsai) Date: Sun, 16 Feb 2014 11:56:42 -0800 (PST) Subject: [GAP Forum] semsimple algebras and subalgebras Message-ID: <1392580602.83900.YahooMailNeo@web121206.mail.ne1.yahoo.com> Dear forum, I am using the sla package to do calcualtions with semisimple lie algebras and their subalgebras. The calculations involve decomposing an irrep of the main algebra into irreps of one of its subalgebras. The "Branching" functions works great at providing this data. I'd like to extract some more information on this decomposition for the adjoint irrep of the main algebra. I'd like to identify the subalgebra irreps with concrete subspaces of the main algebra. Is there a (hopefully simple) way to extract this information? Here's an example for main algebra "G2" and its "A2" subalgebra : LoadPackage("sla"); # get all semisimple subalgebras of "G2" LS:=LieAlgebraAndSubalgebras("G2"); # alg is "G2" alg:=LS.liealg; # subalgebra number 5 is "A2";? sub:=LS.subalgs[5]; # rep with highest weight [0,1] is adjoint rep of "G2" rep:=[0,1]; # get branching of G2 rep to A2 reps bra:=Branching(alg,sub,rep); # display results for k in [1..Length(bra[1])] do? ?Print("subspcace ",k," "); ?Print("weight=",bra[1][k]," "); ?Print("multiplicity = ",bra[2][k]," "); ?Print("dimensions = ",Dimension(HighestWeightModule(sub,bra[1][k]))," "); ?Print("\n"); od; in shorthand this says that G2 decomposes as 14 = 8 + 3 + 3' under A2. Here 14=G2, 8=A2, 3 and 3' are 3-dimensional subspaces of G2 invraiant under A2. I'd like for example to multiply elements of 3 with those of 3'... As a side question, for G2 I happen to know that heighst weight rep [0,1] is the adjoint rep; is there a general way to get the weight of the adjoint rep for an arbitrary semisimple algebra? Thanks, R.N. From degraaf at science.unitn.it Mon Feb 17 08:39:44 2014 From: degraaf at science.unitn.it (Willem de Graaf) Date: Mon, 17 Feb 2014 09:39:44 +0100 Subject: [GAP Forum] semsimple algebras and subalgebras In-Reply-To: <1392580602.83900.YahooMailNeo@web121206.mail.ne1.yahoo.com> References: <1392580602.83900.YahooMailNeo@web121206.mail.ne1.yahoo.com> Message-ID: Dear R.N. Tsai, You asked: > I'd like to identify > the subalgebra irreps with concrete subspaces of the main algebra. Is there > a (hopefully simple) way to extract this information? Not directly, however it is not so difficult to write some code for that. At the bottom of this message please find a GAP function that does that. It is followed by an example. One remark: in your piece of code you use the command Dimension(HighestWeightModule(sub,bra[1][k])) It is much more efficient to use DimensionOfHighestWeughtModule( sub, bra[1][k] ); as this avoids constructing the module. You also asked: > is there a general way to get the weight of the adjoint rep for an > arbitrary semisimple algebra? If the Lie algebra is denoted L, then you can do wt:= PositiveRootsAsWeights( RootSystem(L) );; hw:= wt[ Length(wt) ]; I am glad that the sla package is of use to you. Best wishes, Willem de Graaf # function: DecomposeAdRep:= function( L, K ) # K is a subalgebra of L, both semisimple in char 0; # we return the decomposition of L as K module. local cg, e, x, ad, i, spaces, spaces0, h, ww, sp, mat, es, hwv; cg:= CanonicalGenerators( RootSystem(K) ); e:= List( Basis(L), x -> [ ] ); for x in cg[1] do ad:= TransposedMat( AdjointMatrix(Basis(L),x) ); for i in [1..Length(ad)] do Append( e[i], ad[i] ); od; od; spaces:= [ List( NullspaceMat(e), u -> u*Basis(L) ) ]; for h in cg[3] do spaces0:= [ ]; for ww in spaces do sp:= Basis( Subspace(L,ww), ww ); mat:= List( ww, u-> Coefficients(sp,h*u) ); es:= Eigenspaces( LeftActingDomain(L), mat ); for i in [1..Length(es)] do Add( spaces0, List( Basis(es[i]), x -> x*ww ) ); od; od; spaces:= spaces0; od; hwv:= Concatenation( spaces ); spaces:= [ ]; for i in [1..Length(hwv)] do Add( spaces, MutableBasisOfClosureUnderAction( LeftActingDomain(L), cg[2], "left", [ hwv[i] ], \*, Zero(L), Dimension(L) ) ); od; return List( spaces, u -> Subspace(L,BasisVectors(u)) ); end; # example: gap> r:= LieAlgebraAndSubalgebras("G2");; gap> L:= r.liealg;; gap> K:= r.subalgs[5];; gap> DecomposeAdRep( L, K ); [ , , ] From r_n_tsai at yahoo.com Mon Feb 17 20:32:15 2014 From: r_n_tsai at yahoo.com (R.N. Tsai) Date: Mon, 17 Feb 2014 12:32:15 -0800 (PST) Subject: [GAP Forum] semsimple algebras and subalgebras In-Reply-To: References: <1392580602.83900.YahooMailNeo@web121206.mail.ne1.yahoo.com> Message-ID: <1392669135.40466.YahooMailNeo@web121205.mail.ne1.yahoo.com> Dear Willem and forum, Thanks for the quick response. The function you created "DecomposeAdRep" is exactly what I was looking for. Also getting the highest weight of the adjoint rep works for simple algebras; but I think it has trouble with direct sum of simple algebras : # A1+A1 -> A1 (or D2->D1 or O4->O3 ) branching rule for adjoint rep : gap> r:=LieAlgebraAndSubalgebras("A1 A1");; gap> L:= r.liealg;; gap> K:= r.subalgs[1];; # this gives the correct decomposition : 6->3+1+1+1; gap> dec:=DecomposeAdRep( L, K ); [ , ,? ? , ] # however this has a problem; dim should be 6. gap> wt:= PositiveRootsAsWeights( RootSystem(L) );; gap> hw:= wt[ Length(wt) ]; [ 0, 2 ] gap> dim:=DimensionOfHighestWeightModule(L,hw); 3 Regards, R.N. On Monday, February 17, 2014 12:39 AM, Willem de Graaf wrote: Dear?R.N. Tsai, You asked: > I'd like to identify > the subalgebra irreps with concrete subspaces of the main algebra. Is there > a (hopefully simple) way to extract this information? Not directly, however it is not so difficult to write some code for that. At the bottom of this message please find a GAP function that does that. It is followed by an example.? One remark: in your piece of code you use the command ? ? ? Dimension(HighestWeightModule(sub,bra[1][k])) It is much more efficient to use? ? ? ? DimensionOfHighestWeughtModule( sub, bra[1][k] ); as this avoids constructing the module. You also asked: > is there a general way to get the weight of the adjoint rep for an > arbitrary semisimple algebra? If the Lie algebra is denoted L, then you can do wt:= PositiveRootsAsWeights( RootSystem(L) );; hw:= wt[ Length(wt) ]; I am glad that the sla package is of use to you. Best wishes, Willem de Graaf # function: DecomposeAdRep:= function( L, K )? ? ? ? ? # K is a subalgebra of L, both semisimple in char 0; ? ? ? ? # we return the decomposition of L as K module. ? ? local cg, e, x, ad, i, spaces, spaces0, h, ww, sp, mat, es, hwv; ? ? cg:= CanonicalGenerators( RootSystem(K) ); ? ? e:= List( Basis(L), x -> [ ] ); ? ? for x in cg[1] do ? ? ? ? ad:= TransposedMat( AdjointMatrix(Basis(L),x) ); ? ? ? ? for i in [1..Length(ad)] do ? ? ? ? ? ? Append( e[i], ad[i] ); ? ? ? ? od; ? ? od; ? ? spaces:= [ List( NullspaceMat(e), u -> u*Basis(L) ) ]; ? ? for h in cg[3] do ? ? ? ? spaces0:= [ ]; ? ? ? ? for ww in spaces do? ? ? ? ? ? ? sp:= Basis( Subspace(L,ww), ww ); ? ? ? ? ? ? mat:= List( ww, u-> Coefficients(sp,h*u) ); ? ? ? ? ? ? ? es:= Eigenspaces( LeftActingDomain(L), mat ); ? ? ? ? ? ? for i in [1..Length(es)] do ? ? ? ? ? ? ? ? Add( spaces0, List( Basis(es[i]), x -> x*ww ) ); ? ? ? ? ? ? od; ? ? ? ? od; ? ? ? ? spaces:= spaces0; ? ? od; ? ? hwv:= Concatenation( spaces ); ? ? spaces:= [ ]; ? ? for i in [1..Length(hwv)] do ? ? ? ? Add( spaces, MutableBasisOfClosureUnderAction( LeftActingDomain(L), ? ? ? ? ? ? ? ? ?cg[2], "left", [ hwv[i] ], \*, Zero(L), Dimension(L) ) ); ? ? od; ? ? return List( spaces, u -> Subspace(L,BasisVectors(u)) ); end; # example: gap> r:= LieAlgebraAndSubalgebras("G2");; gap> L:= r.liealg;; gap> K:= r.subalgs[5];; gap> DecomposeAdRep( L, K ); [ ,? ? ,? ? ] From degraaf at science.unitn.it Mon Feb 17 22:19:50 2014 From: degraaf at science.unitn.it (Willem de Graaf) Date: Mon, 17 Feb 2014 23:19:50 +0100 Subject: [GAP Forum] semsimple algebras and subalgebras In-Reply-To: <1392669135.40466.YahooMailNeo@web121205.mail.ne1.yahoo.com> References: <1392580602.83900.YahooMailNeo@web121206.mail.ne1.yahoo.com> <1392669135.40466.YahooMailNeo@web121205.mail.ne1.yahoo.com> Message-ID: Dear R. N. Tsai, > Also getting the highest weight of the > adjoint rep works for simple algebras; but I think it has trouble with > direct sum of simple algebras : In that case the module is not irreducible, so there is no single highest weight. All the best, Willem de Graaf On Mon, Feb 17, 2014 at 9:32 PM, R.N. Tsai wrote: > Dear Willem and forum, > > Thanks for the quick response. The function you created "DecomposeAdRep" is > exactly what I was looking for. Also getting the highest weight of the > adjoint rep works for simple algebras; but I think it has trouble with > direct sum of simple algebras : > > # A1+A1 -> A1 (or D2->D1 or O4->O3 ) branching rule for adjoint rep : > gap> r:=LieAlgebraAndSubalgebras("A1 A1");; > gap> L:= r.liealg;; > gap> K:= r.subalgs[1];; > # this gives the correct decomposition : 6->3+1+1+1; > gap> dec:=DecomposeAdRep( L, K ); > [ , 1 over Rationals>, > , 1 over Rationals> ] > > # however this has a problem; dim should be 6. > gap> wt:= PositiveRootsAsWeights( RootSystem(L) );; > gap> hw:= wt[ Length(wt) ]; > [ 0, 2 ] > gap> dim:=DimensionOfHighestWeightModule(L,hw); > 3 > > Regards, > R.N. > > > On Monday, February 17, 2014 12:39 AM, Willem de Graaf < > degraaf at science.unitn.it> wrote: > Dear R.N. Tsai, > > > You asked: > > > I'd like to identify > > the subalgebra irreps with concrete subspaces of the main algebra. Is > there > > a (hopefully simple) way to extract this information? > > Not directly, however it is not so difficult to write some code for that. > At the bottom of this message please find a GAP function that does that. > It is followed by an example. > > One remark: in your piece of code you use the command > > Dimension(HighestWeightModule(sub,bra[1][k])) > > It is much more efficient to use > > DimensionOfHighestWeughtModule( sub, bra[1][k] ); > > as this avoids constructing the module. > > You also asked: > > > is there a general way to get the weight of the adjoint rep for an > > arbitrary semisimple algebra? > > If the Lie algebra is denoted L, then you can do > > wt:= PositiveRootsAsWeights( RootSystem(L) );; > hw:= wt[ Length(wt) ]; > > I am glad that the sla package is of use to you. > > Best wishes, > > Willem de Graaf > > # function: > > DecomposeAdRep:= function( L, K ) > > # K is a subalgebra of L, both semisimple in char 0; > # we return the decomposition of L as K module. > > local cg, e, x, ad, i, spaces, spaces0, h, ww, sp, mat, es, hwv; > > cg:= CanonicalGenerators( RootSystem(K) ); > e:= List( Basis(L), x -> [ ] ); > for x in cg[1] do > ad:= TransposedMat( AdjointMatrix(Basis(L),x) ); > for i in [1..Length(ad)] do > Append( e[i], ad[i] ); > od; > od; > spaces:= [ List( NullspaceMat(e), u -> u*Basis(L) ) ]; > > for h in cg[3] do > spaces0:= [ ]; > for ww in spaces do > sp:= Basis( Subspace(L,ww), ww ); > mat:= List( ww, u-> Coefficients(sp,h*u) ); > es:= Eigenspaces( LeftActingDomain(L), mat ); > for i in [1..Length(es)] do > Add( spaces0, List( Basis(es[i]), x -> x*ww ) ); > od; > od; > spaces:= spaces0; > od; > > hwv:= Concatenation( spaces ); > spaces:= [ ]; > for i in [1..Length(hwv)] do > Add( spaces, MutableBasisOfClosureUnderAction( LeftActingDomain(L), > cg[2], "left", [ hwv[i] ], \*, Zero(L), Dimension(L) ) ); > od; > return List( spaces, u -> Subspace(L,BasisVectors(u)) ); > > end; > > # example: > > gap> r:= LieAlgebraAndSubalgebras("G2");; > gap> L:= r.liealg;; > gap> K:= r.subalgs[5];; > gap> DecomposeAdRep( L, K ); > [ , > , > ] > > > > > From markvs at gmail.com Tue Feb 18 11:42:47 2014 From: markvs at gmail.com (Mark Sapir) Date: Tue, 18 Feb 2014 05:42:47 -0600 Subject: [GAP Forum] Forum Digest, Vol 119, Issue 2 In-Reply-To: References: Message-ID: Dear All, I finally got a 128 Gb RAM machine and I am trying to run the following program commuting a non-commutative Groebner basis. After a a couple of hours GAP says that it is out of RAM. I guess I need to change the way I call GAP so that it knows that more memory can be used. Also if anybody can tell me about a different, stand alone, programs that compute non-commutative Groebner bases, I would appreciate it. LoadPackage("GBNP", "0", false); SetInfoLevel(InfoGBNP,1); SetInfoLevel(InfoGBNPTime,1); K:=GaloisField(2); A:=FreeAssociativeAlgebra(K," a","b","c","d"); a:=A.a;;b:=A.b;;c:=A.c;;d:=A.d;; Irels:=[ a-a*a*c-d*a*b, b-a*b*c-d*b*b, c-a*c*c-d*c*b, d-a*d*c-d*d*b, a*b*c-a*c*b-b*c*a+b*a*c, ]; GBR:=SGrobner(GP2NPList(Irels));;PrintNPList(GBR); Best regards, Mark Sapir From dmitrii.pasechnik at cs.ox.ac.uk Tue Feb 18 12:32:31 2014 From: dmitrii.pasechnik at cs.ox.ac.uk (Dmitrii Pasechnik) Date: Tue, 18 Feb 2014 12:32:31 +0000 Subject: [GAP Forum] Forum Digest, Vol 119, Issue 2 In-Reply-To: References: Message-ID: <20140218123231.GA19616@cs.ox.ac.uk> Dear Mark, On Tue, Feb 18, 2014 at 05:42:47AM -0600, Mark Sapir wrote: > I finally got a 128 Gb RAM machine and I am trying to run the > following program commuting a non-commutative Groebner basis. After a > a couple of hours GAP says that it is out of RAM. I guess I need to > change the way I call GAP so that it knows that more memory can be > used. There is a useful GAP function: 7.11-3 GasmanLimits GasmanLimits( ) ( function ) GasmanLimits returns a record with three components: min is the minimum workspace size as set by the -m command line option in kilobytes. The workspace size will never be reduced below this by the garbage collector. max is the maximum workspace size, as set by the '-o' command line option, also in kilobytes. If the workspace would need to grow past this point, GAP will enter a break loop to warn the user. A value of 0 indicates no limit. kill is the absolute maximum, set by the -K command line option. The workspace will never be allowed to grow past this limit. E.g.: gap> GasmanLimits( ); rec( kill := 0, max := 2097152, min := 24576 ) What matters is that kill=0 (i.e. nothing will happen no matter how much RAM you get) max is about 2GB. So in your case max should be set by -o option to something much bigger > Also if anybody can tell me about a different, stand alone, > programs that compute non-commutative Groebner bases, I would > appreciate it. Singular can apparently compute non-commutatibe GBs: http://www.singular.uni-kl.de/Manual/latest/sing_539.htm#SEC590 HTH, Dima > > > LoadPackage("GBNP", "0", false); > SetInfoLevel(InfoGBNP,1); > SetInfoLevel(InfoGBNPTime,1); > K:=GaloisField(2); > A:=FreeAssociativeAlgebra(K," > a","b","c","d"); > a:=A.a;;b:=A.b;;c:=A.c;;d:=A.d;; > Irels:=[ > a-a*a*c-d*a*b, > b-a*b*c-d*b*b, > c-a*c*c-d*c*b, > d-a*d*c-d*d*b, > > a*b*c-a*c*b-b*c*a+b*a*c, > > ]; > > GBR:=SGrobner(GP2NPList(Irels));;PrintNPList(GBR); > > Best regards, > > Mark Sapir > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From dream--1234 at hotmail.com Mon Feb 17 10:22:14 2014 From: dream--1234 at hotmail.com (=?ks_c_5601-1987?B?rNyl4aLnpeV6rN5hIC4=?=) Date: Mon, 17 Feb 2014 13:22:14 +0300 Subject: [GAP Forum] please help me Message-ID: Hi How can I extend the "permitted memory" for GAP I used return; after the loop is broken but the window of GAP IS closes ( My computer system is windos ) please help me From r_n_tsai at yahoo.com Thu Feb 20 06:17:10 2014 From: r_n_tsai at yahoo.com (R.N. Tsai) Date: Wed, 19 Feb 2014 22:17:10 -0800 (PST) Subject: [GAP Forum] value of casimir elements Message-ID: <1392877030.8462.YahooMailNeo@web121205.mail.ne1.yahoo.com> Dear forum, For a simple lie algebra (of rank n) and a highest weight representation (w1,...wn); is it possible to calculate the values of the n casimir invariants (as functions of w1,...,wn) within GAP or any of its packages? Thanks, R.N. ? From hulpke at math.colostate.edu Mon Feb 24 17:40:28 2014 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Mon, 24 Feb 2014 10:40:28 -0700 Subject: [GAP Forum] Conference: Software, algorithms, and applications of Computational Group Theory, Aug 2014, Seoul References: <20140212085411.6c73acb8ca0d03dd345a9738@monash.edu> Message-ID: Dear Colleagues, (With apologies to anyone who is receiving this notice more than once) We are organizing a special session: "Software, algorithms, and applications of Computational Group Theory" at the 4th International Congress on Mathematical Software (ICMS), Aug 5-9, 2014 (Hanyang University, Seoul, South Korea) which is a satellite conference of the ICM 2014. This session will host talks on current aspects and recent progress of algorithms and software for computing with groups, incorporating all areas of algorithmic development. Talks on work in other areas, involving nontrivial computations in groups or related structures are also welcome, as will be talks that outline problems from other areas of computational mathematics that arise as obstacles in the context of group theoretic calculations. We invite you to attend this conference, and to submit an abstract for a talk. (To be considered for a talk, you must submit a short abstract to us by March 31, 2014.) For more information: ICMS 2014: http://voronoi.hanyang.ac.kr/icms2014/ Special Session: http://users.monash.edu.au/~heikod/ICMSCGT.html Guidelines on talk submissions: http://voronoi.hanyang.ac.kr/icms2014/Submission.html Please circulate this information to anyone who might be interested to attend. With best wishes, The organizers: Heiko Dietrich (Monash University, Melbourne, Australia) Alexander Hulpke (Colorado State University, Fort Collins, CO, USA) From alexk at mcs.st-andrews.ac.uk Mon Feb 24 17:46:32 2014 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Mon, 24 Feb 2014 17:46:32 +0000 Subject: [GAP Forum] GAP 4.7.4 release announcement Message-ID: Dear GAP Forum, This is to announce the release of GAP 4.7.4. You can download GAP 4.7.4 from http://www.gap-system.org/Releases/ The alternative GAP distributions listed at http://www.gap-system.org/Download/#alternatives will be updated in due course. We haven't announced GAP 4.7.3 last week, since we prepared GAP 4.7.4 immediately after that to revert a change in the GAP parser that (only on Windows) caused error messages in one of the packages. The overview of changes in GAP 4.7.4 versus GAP 4.7.2 is given below. Fixed bugs which could lead to incorrect results: * Incorrect result returned by AutomorphismGroup(PSp(4,2^n)). [Reported by Anvita] * The Order (Reference: Order) method for group homomorphisms newly introduced in GAP 4.7 had a bug that caused it to sometimes return incorrect results. [Reported by Benjamin Sambale] Fixed bugs that could lead to break loops: * Several bugs were fixed and missing methods were introduced in the new code for transformations, partial permutations and semigroups that was first included in GAP 4.7. Some minor corrections were made in the documentation for transformations. * Break loop in IsomorphismFpMonoid when prefixes in generators names were longer than one letter. [Reported by Dmytro Savchuk and Yevgen Muntyan] * Break loop while displaying the result of MagmaWithInversesByMultiplicationTable [Reported by Grahame Erskine] Improved functionality: * Better detection of UTF-8 terminal encoding on some systems. [Suggested by Andries Brouwer] In addition to the improved functionality and fixed bugs in the core GAP system, the following packages have been updated since GAP 4.7.2 release: AutomGrp, AutPGrp, CoReLG, CRISP, Float, FR, HAP, IRREDSOL, LieRing, MatricesForHomalg, RingsForHomalg and SimpComp. We encourage all users to upgrade to GAP 4.7.4. If you need any help or would like to report any problems, please do not hesitate to contact us at support at gap-system.org. Please note that we regularly update the GAP distribution to include new versions of GAP packages, but we may not announce each of them to the Forum. We intend to use the Forum to announce updates of the core GAP system and only of some packages which may fix serious issues or have major influence on GAP. Wishing you fun and success using GAP, The GAP Group From steve.linton at st-andrews.ac.uk Sat Feb 22 16:26:19 2014 From: steve.linton at st-andrews.ac.uk (Stephen Linton) Date: Sat, 22 Feb 2014 16:26:19 +0000 Subject: [GAP Forum] Embedding GAP functions in C code Message-ID: <7AFDA5A4-07D5-495B-9B0A-4BDEEEBDF7E6@st-andrews.ac.uk> Dear Robert, On Fri, Feb 14, 2014 at 07:37:12PM +0000, Wolstenholme, Robert wrote: > I want to compile some of my GAP functions into static libraries for use in a C program. I have compiled them using gac -c on Ubuntu but I 'm not sure how to now call these functions in my C program. I tried a few things but whenever I tried to link and create a binary I got an error. There is no ?official? way to do this. The gac compiler converts GAP into C code which can be loaded as an extension to the GAP kernel, but it still needs the rest of the kernel and very possibly large parts of the library in order to run. See http://www.gap-system.org/Faq/faq.html#8.1 Relatively recently, some of the SAGE developers have produced libGAP, which allows the entire GAP system to be embedded as a C library. You still can?t embed individual functions by themselves though and the first call to libGAP still has invoke the full GAP start-up sequence. Alternatively, there are a number of ways of running GAP as a server process and calling it from C or C++ programs. SCSCP is probably the simplest of these to use. Seehttp://www.gap-system.org/Packages/scscp.html for the GAP side. There are various C and C++ libraries that implement the client side. Yours Steve Linton From graham.ellis at nuigalway.ie Tue Feb 25 08:41:10 2014 From: graham.ellis at nuigalway.ie (Ellis, Grahamj) Date: Tue, 25 Feb 2014 08:41:10 +0000 Subject: [GAP Forum] simpcomp Message-ID: Dear GAP Forum, It is my pleasure to announce that the simpcomp package has been accepted as an official GAP package. The package, authored by Felix Effenberger and Jonathan Spreer, is a great addition to GAP's functionality in the area of simplicial complexes. ( https://code.google.com/p/simpcomp/ ) simpcomp is a GAP package for working with simplicial complexes. It allows the computation of many properties of simplicial complexes (such as the f-, g- and h-vectors, the face lattice, the automorphism group, (co-)homology with explicit basis computation, intersection form, etc.) and provides the user with functions to compute new complexes from old (simplex links and stars, connected sums, cartesian products, handle additions, bistellar flips, etc.). Furthermore, it comes with an extensive library of known triangulations of manifolds and provides the user with the possibility to create own complex libraries. simpcomp was awarded the "Best Software Presentation Award" by the Fachgruppe Computeralgebra for a presentation given at ISSAC 2010 in Munich, July 26, 2010. Graham School of Mathematics, Statistics & Applied Mathematics National University of Ireland, Galway University Road, Galway Ireland http://hamilton.nuigalway.ie tel: 091 493011 From beick at tu-bs.de Tue Feb 25 10:20:38 2014 From: beick at tu-bs.de (Bettina Eick) Date: Tue, 25 Feb 2014 11:20:38 +0100 (CET) Subject: [GAP Forum] The CoReLG package Message-ID: Dear GAP Forum, it is my great pleasure to announce that the CoReLG package has been officially accepted as GAP package. The package is authored by Heiko Dietrich (Melbourne, Australia), Paolo Faccin (Trento, Italy) and Willem de Graaf (Trento, Italy). The CoReLG package contains methods for computing with finite dimensional semisimple real Lie algebras. In particular, the CoReLG package gives access to the classification of the real forms of a simple complex Lie algebra. Hence the package provides a method to construct simple and thus semisimple Lie algebras over the real numbers. The package also contains methods to compute Cartan subalgebras and root systems for semisimple real Lie algebras. See http://www.gap-system.org/Packages/corelg.html for further information on this new GAP package. Best wishes, Bettina Eick From bilal_hasanat at yahoo.com Wed Mar 5 05:01:49 2014 From: bilal_hasanat at yahoo.com (Bilal Hasanat) Date: Tue, 4 Mar 2014 21:01:49 -0800 (PST) Subject: [GAP Forum] SemiDirect product Message-ID: <1393995709.10811.YahooMailNeo@web121002.mail.ne1.yahoo.com> Dear Gap users I am interested in group theory. Kindly, I need a help to construct a GAP algorithm or used certain installed packages if exist, that is for finding the semidirect?product of (C25?C25) and ?C25. I do not concern on how C5 acts on?(C25?C25). I need to find many issues for the group obtained from this product; such as: the order of the group, the number of generators, the order of each generator and other properties. I will be very grateful for your help.? Kind regards ? Bilal From mborges at csd.uo.edu.cu Sat Mar 8 17:30:02 2014 From: mborges at csd.uo.edu.cu (Borges-Trenard) Date: Sat, 8 Mar 2014 18:30:02 +0100 Subject: [GAP Forum] Iterated algebraic extensions. Message-ID: <73477FDCD3FD4955A3C3D376D5546C08@uva219d20b1dcb> Dear GAP forum, I am trying to compute the finite field F_{3^6} by means of extending first F_3 through x^2+2*x+2 and then the second extension with y^3+a1*y^2+a1*y+a1^3, where a1 is a root of x^2+2*x+2. Then I have used the following instructions (GAP 4.7.2): gap> x := Indeterminate( GF( 3 ) );; SetName( x, "x" );; gap> e1 := AlgebraicExtension( GF( 3 ), x^2 + 2 * x + 2 );; gap> a1 := RootOfDefiningPolynomial( e1 );; gap> y := Indeterminate( e1 );; SetName( y, "y" );; gap> e2 := AlgebraicExtension( e1, y^3 + a1 * y^2 + a1 * y + a1^3 );; gap> a2 := RootOfDefiningPolynomial( e2 );; Now I face at least two troubles: 1) I can perform operations with a1 and a2 but the result is not clear, for example: gap> a1 * a2; a*a The point is that RootOfDefiningPolynomial always prints like "a", I have not found a way to change it. 2) A simple operation like the following one is not already possible: gap> a2^2; I will be very grateful for any help. Many thanks, Miguel. -- Se integran todos los eventos de Ciencias T?cnicas de la Universidad de Oriente: *- Convenci?n Internacional de Ciencias T?cnicas 23 al 27 de Junio de 2014: http://cienciastecnicas.eventos.uo.edu.cu/ Convocatoria a nuestro evento internacional de mayor experiencia: *- 21 Conferencia de Qu?mica: 3 al 5 de diciembre de 2014 http://ciq.eventos.uo.edu.cu/ -- From matliumh at gmail.com Tue Mar 11 04:23:32 2014 From: matliumh at gmail.com (Minghui Liu) Date: Tue, 11 Mar 2014 12:23:32 +0800 Subject: [GAP Forum] Generators of Factor Groups Message-ID: Dear GAP Forum, I am trying to find generators of a factor group. I have input dozens of generators and relations and when I use the command AbelianInvariants(F/relations); the result was something like 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5 (I have reduced the number of 0's for simplicity.) My question is, the result shows that the Abelianization of F/relations is a direct sum of some Z's and some finite cyclic groups; how can I find an explicit set of generators? I am especially interested in how to find the elements of order 2, 3, 4, 5, respectively. Any assistance will be greatly appreciated. Minghui From dmitrii.pasechnik at cs.ox.ac.uk Tue Mar 11 12:33:58 2014 From: dmitrii.pasechnik at cs.ox.ac.uk (Dmitrii Pasechnik) Date: Tue, 11 Mar 2014 12:33:58 +0000 Subject: [GAP Forum] Generators of Factor Groups In-Reply-To: References: Message-ID: <20140311123357.GA12722@cs.ox.ac.uk> Dear Minghui Liu, On Tue, Mar 11, 2014 at 12:23:32PM +0800, Minghui Liu wrote: > I am trying to find generators of a factor group. I have input dozens > of generators and relations and when I use the command > > AbelianInvariants(F/relations); Have you looked at SmithNormalFormIntegerMat SmithNormalFormIntegerMatTransforms The transformation to apply to your original generators should be readable from the output of SmithNormalFormIntegerMatTransforms. IMHO it would be nice to have a more explicit function for the task at hand. HTH, Dima > > the result was something like > > 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5 > > (I have reduced the number of 0's for simplicity.) > > My question is, the result shows that the Abelianization of > F/relations is a direct sum of some Z's and some finite cyclic groups; > how can I find an explicit set of generators? I am especially > interested in how to find the elements of order 2, 3, 4, 5, > respectively. > > Any assistance will be greatly appreciated. > > Minghui From max at quendi.de Tue Mar 11 13:02:38 2014 From: max at quendi.de (Max Horn) Date: Tue, 11 Mar 2014 14:02:38 +0100 Subject: [GAP Forum] Generators of Factor Groups In-Reply-To: References: Message-ID: <2CD07E78-67A5-471D-973F-014175E18E6F@quendi.de> On 11.03.2014, at 05:23, Minghui Liu wrote: > Dear GAP Forum, > > I am trying to find generators of a factor group. I have input dozens > of generators and relations and when I use the command > > AbelianInvariants(F/relations); > > the result was something like > > 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5 > > (I have reduced the number of 0's for simplicity.) > > My question is, the result shows that the Abelianization of > F/relations is a direct sum of some Z's and some finite cyclic groups; > how can I find an explicit set of generators? I am especially > interested in how to find the elements of order 2, 3, 4, 5, > respectively. > > Any assistance will be greatly appreciated. This is quite easy to do using the commands MaximalAbelianQuotient() and IndependentGeneratorsOfAbelianGroup(). The following example should tell you everything you need to know. But feel free to ask for further hints. # Let's enter a group (I just picked some generators "at random") gap> F:=FreeGroup(3); gap> R:=[Comm(F.1,F.2), F.3^10, F.1*F.2*F.3]; [ f1^-1*f2^-1*f1*f2, f3^10, f1*f2*f3 ] gap> G:=F/R; # Compute the abelian invariants, and an epimorphism phi: G -> G/G' gap> AbelianInvariants(G); [ 0, 2, 5 ] gap> phi:=MaximalAbelianQuotient(G); [ f1, f2, f3 ] -> [ f1*f2^-1*f3^-1, f3, f2 ] gap> H:=Image(phi); # Get generators of the quotient H = G / G' which correspond exactly # to the abelian invariants. This is by design and described as such # in the manual. But we can also verify it in this example. gap> gens:=IndependentGeneratorsOfAbelianGroup(H); [ f3, f2^5, f2^2 ] # ... verification ... gap> Order(gens[2]); 2 gap> Order(gens[3]); 5 gap> Index(H, Subgroup(H,[gens[1]])); 10 # We can also map these generators back to elements of the original group; # but usually you will want to work in the abelian quotient H for this. gap> List(gens, x -> PreImagesRepresentative(phi, x)); [ f2, f3^5, f3^2 ] Cheers, Max From jdc at uwo.ca Tue Mar 11 15:56:45 2014 From: jdc at uwo.ca (Dan Christensen) Date: Tue, 11 Mar 2014 11:56:45 -0400 Subject: [GAP Forum] increasing -o memory limit at runtime Message-ID: <874n34buf6.fsf@uwo.ca> Is there a GAP command that can be used to increase the memory limit (as would specified by the -o option) at run time, instead of using -o on the command line? (I'm using GAP via the sage cloud interface and haven't been able to figure out how to get gap started with a -o option.) Incidentally, is the default 256MB? That seems really low for modern systems. Thanks, Dan From max at 9hoeffer.de Wed Mar 12 19:28:27 2014 From: max at 9hoeffer.de (Max Neunhoeffer) Date: Wed, 12 Mar 2014 20:28:27 +0100 Subject: [GAP Forum] The LieRing package Message-ID: <20140312192826.GA6030@sams.9hoeffer.de> Dear GAP Forum, it is my great pleasure to announce that the LieRing package has been officially accepted as GAP package. The package is authored by Serena Cicalo (Trento, Italy) and Willem de Graaf (Trento, Italy). The LieRing package implements methods to construct and work with Lie rings. It contains methods to construct finitely-presented Lie rings, to compute the Lazard correspondence and it contains a database of "largest" n-Engel Lie rings. The package in its current version 2.2 is already contained in the latest official GAP distribution 4.7.4 which was released on 20.2.2014. See http://gap-system.org/Packages/liering.html for further information on this GAP package. Best regards, Max Neunh?ffer From astaroletov at gmail.com Mon Mar 17 11:17:12 2014 From: astaroletov at gmail.com (Alexey Staroletov) Date: Mon, 17 Mar 2014 18:17:12 +0700 Subject: [GAP Forum] Galois Rings in GAP Message-ID: Dear GAP forum, Is it possible to obtain finite Galois Rings and their multiplicative group of units in GAP? Namely, factor rings of Z_{p^n}[x] by a basic irreducible polynomial over Z_{p^n}. I know how to build PolynomialRing but can't obtain factor rings by ideals. This is an output of my GAP (4.6.3) session : gap> T:=Integers mod 4; (Integers mod 4) gap> x:= Indeterminate( T, "x" ); x gap> Pol:=x^4+x+1; x^4+x+ZmodnZObj(1,4) gap> R:=PolynomialRing( T ); [x] gap> Pol in R; true gap> I:=IdealByGenerators(R, [Pol]); [x], (1 generators)> gap> NaturalHomomorphismByIdeal( R, I ); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 3rd choice method found for `NaturalHomomorphismByIdeal' on 2 arguments called from ( ) called from read-eval loop at line 32 of *stdin* you can 'quit;' to quit to outer loop, or you can 'return;' to continue NaturalHomomorphismByIdeal doesn't work even when T is a finite field of a prime order (so in this case the corresponding factor ring should be also a finite field). Does anyone know how It can be calculated? Best regards, Staroletov Alexey From shahmaths_problem at hotmail.com Mon Mar 17 14:05:50 2014 From: shahmaths_problem at hotmail.com (muhammad shah) Date: Mon, 17 Mar 2014 19:05:50 +0500 Subject: [GAP Forum] GAP and Mathematica special commands Message-ID: Dear GAP forum, I am having the book "Abstract Algebra An Interactive Approach" by William Paulsen but I do not have the gap and mathematica special commands written for it. Kindly, can anyone send those to me. I need them badly. Thanks beforehand. Cheers, Muhammad Shah From farzane.gholaminezhad at gmail.com Thu Mar 20 07:50:45 2014 From: farzane.gholaminezhad at gmail.com (Farzaneh Gholaminezhad) Date: Thu, 20 Mar 2014 12:20:45 +0430 Subject: [GAP Forum] Question Message-ID: Dear GAP forum I am Farzaneh, PhD student of Group theory and computational group theory I have a question about GAP please: would you tell me how can I restrict the Automorphism Group of a group G to a subset of G like the involutions of G. I need the order of restriction of Automorphisms of group G to the involution set of G. I would be so thankful if you help me. Best Regards Farzaneh Gholaminezhad From steve.linton at st-andrews.ac.uk Mon Mar 24 16:52:49 2014 From: steve.linton at st-andrews.ac.uk (Stephen Linton) Date: Mon, 24 Mar 2014 16:52:49 +0000 Subject: [GAP Forum] Question In-Reply-To: References: Message-ID: Dear Farzaneh, You can restrict any group to its action on an orbit or set of orbits using the operation Action. For instance: gap> g := AlternatingGroup(5); Alt( [ 1 .. 5 ] ) gap> a := AutomorphismGroup(g); gap> invs := (1,2)(3,4)^g; (1,2)(3,4)^G gap> Action(a,last); Group([ (1,7)(2,10)(3,13)(8,11)(9,14)(12,15), (1,13,4,14,5)(2,10,12,9,8) (3,7,15,6,11), (1,2,3)(4,6,5)(7,10,13)(8,12,14)(9,11,15) ]) gap> Size(last); 120 Steve On 20 Mar 2014, at 07:50, Farzaneh Gholaminezhad wrote: > Dear GAP forum > > I am Farzaneh, PhD student of Group theory and computational group theory > I have a question about GAP please: > would you tell me how can I restrict the Automorphism Group of a group G to > a subset of G like the involutions of G. > I need the order of restriction of Automorphisms of group G to the > involution set of G. > > I would be so thankful if you help me. > > Best Regards > Farzaneh Gholaminezhad > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From e.obrien at auckland.ac.nz Fri Mar 28 09:57:12 2014 From: e.obrien at auckland.ac.nz (Eamonn O'Brien) Date: Fri, 28 Mar 2014 22:57:12 +1300 Subject: [GAP Forum] PhD scholarships in Mathematics at University of Auckland Message-ID: <53354778.4030506@auckland.ac.nz> Dear Colleagues: I write to announce the availability of PhD scholarships in Mathematics at the University of Auckland. They include the inaugural Sir Vaughan Jones PhD scholarship and a number of other grant funded PhD scholarships covering various research areas. www.math.auckland.ac.nz/en/for/future-postgraduates/phd-scholarships.html has further details and links to other information. A poster advertising the scholarships is available for download from www.math.auckland.ac.nz/~obrien/Auckland-PhDScholarships.pdf Academic staff in the Department with interests/expertise broadly in algebra and number theory are: - Jianbei An - Shi Bai (postdoc) - Marston Conder - Steven Galbraith - Sebastian Jambor (postdoc) - Dimitri Leemans - Alastair Litterick (postdoc) - Ben Martin - Eamonn O'Brien - Arkadii Slinko See www.math.auckland.ac.nz/en/about/our-research/research-groups/algebra-and-combinatorics-research-group.html for more details about our research interests. Best wishes Eamonn O'Brien From max at quendi.de Sat Mar 29 23:55:25 2014 From: max at quendi.de (Max Horn) Date: Sun, 30 Mar 2014 00:55:25 +0100 Subject: [GAP Forum] Understanding MatrixByBlockMatrix In-Reply-To: References: Message-ID: <5849D3EB-136E-4F79-8BBC-EBDF17AECB15@quendi.de> Dear Anvita, On 21.01.2014, at 13:01, Anvita wrote: > Dear Forum, > > How can I avoid getting an error when trying to convert > a block matrix to an ordinary one in the following example? > If I enter "return;" in the break loop, I get a "segmentation fault" > followed by a crash of GAP session. I am very sorry that we neglected to get back to you on this. In fact, we discussed the issue you reported, and its origins, but then somehow (a) nobody thought to inform you about this, and (b) the proposed fix was not actually implemented. Sorry for that, and thanks for the helpful code. We have fixed the crash in our development version, and your code example works fine now: gap> z:=Z(4); Z(2^2) gap> bm:=BlockMatrix( > [[1,1,[[z]]], > [2,2,[[z]]]],2,2); gap> Display(bm); z = Z(4) z^1 . . z^1 gap> MatrixByBlockMatrix(bm); [ [ Z(2^2), 0*Z(2) ], [ 0*Z(2), Z(2^2) ] ] The next GAP release should include this fix. If you are impatient, and know how to compile GAP yourself, here is the relevant change: https://bitbucket.org/gap-system/gap/commits/07df3069edb3d68108bc179f0fae38e32d9bf900 Cheers, Max From msorouhesh at gmail.com Sun Mar 30 12:01:36 2014 From: msorouhesh at gmail.com (Mohammad Reza Sorouhesh) Date: Sun, 30 Mar 2014 15:31:36 +0430 Subject: [GAP Forum] Misunderstanding about principle ideals of a semigroup Message-ID: Dear Forum, We know that what we call a J-Class in a finite semigroup is really a principle ideal generated by an element of the semigroup. Here is a finitely presented semigroup of order 8: gap> f:=FreeSemigroup("a","b");; a:=f.1;; b:=f.2;; s:=f/[[a^3,a],[b^2*a,a*b],[(a*b)^2*b,b]];; e:=Elements(s); Now, lets the following code calls the two-sided ideal generated by e[1]: > Elements(SemigroupIdealByGenerators(s,[e[1]])); [ a, a^2*b, a^2, a*b, b*a, a*b*a, b*a*b, a*b*a*b ] But by doing: > GreensJClasses(s); none of the Green J-Classes of semigroup "s" is equal to above set. Simply asking why two below codes have different outputs? Or, I am mistaking about a very simple fact which is clear? Regards M.R.Sorouhesh From yassine_guer at hotmail.fr Sun Mar 30 12:31:34 2014 From: yassine_guer at hotmail.fr (yassine Guerboussa) Date: Sun, 30 Mar 2014 11:31:34 +0000 Subject: [GAP Forum] Exponent of Automorphism groups of small groups Message-ID: Dear Forum, I'm trying to compute the exponent of the automorphism groups of some small groups.For instance consider: G :=SmallGroup(5^6,11);SetInfoLevel(InfoAutGrp, 3);A := AutomorphismGroup(G); (the calculation is done without a problem) The command "Exponent(G);" gives the exponent of G without a problem, However ("Exponent(A)") does not work (Perhaps because A is very large). Is there a way to compute the exponent of A, and (directly) the exponent of a p-Sylow in A? Thanks in advance. Yassine Guerboussa From alexk at mcs.st-and.ac.uk Sun Mar 30 13:05:13 2014 From: alexk at mcs.st-and.ac.uk (Alexander Konovalov) Date: Sun, 30 Mar 2014 13:05:13 +0100 Subject: [GAP Forum] Exponent of Automorphism groups of small groups In-Reply-To: References: Message-ID: Dear Yassine, On 30 Mar 2014, at 12:31, yassine Guerboussa wrote: > Dear Forum, > I'm trying to compute the exponent of the automorphism groups of some small groups.For instance consider: > G :=SmallGroup(5^6,11);SetInfoLevel(InfoAutGrp, 3);A := AutomorphismGroup(G); (the calculation is done without a problem) > The command "Exponent(G);" gives the exponent of G without a problem, However ("Exponent(A)") does not work (Perhaps because A is very large). > Is there a way to compute the exponent of A, and (directly) the exponent of a p-Sylow in A? > Thanks in advance. > Yassine Guerboussa In GAP 4.7.4, this calculation is easily achievable - it takes ~17 seconds on my machine: gap> G :=SmallGroup(5^6,11);SetInfoLevel(InfoAutGrp, 3);A := AutomorphismGroup(G); #I step 1: 5^6 -- init automorphisms #I init automorphism group : Full #I nice init group #I final step: convert gap> Exponent(A);time; 7931523600 16828 Of course, you can also compute Sylow p-subgroups and get their exponent too. This is a result of an improvement introduced in GAP 4.7.2, see http://www.gap-system.org/Manuals/doc/changes/chap2.html, namely: "Computing the exponent of a finite group G could be extremely slow. This was due to a slow default method being used, which computed all conjugacy classes of elements in order to compute the exponent. We now instead compute Sylow subgroups P_1, ..., P_k of G and use the easily verified equality exp(G) = exp(P_1) x ... x exp(P_k). This is usually at least as fast and in many cases orders of magnitude faster.? If you are using GAP 4.6 or older version, please upgrade to the latest GAP 4.7.4 release. Best regards Alexander From rm43 at evansville.edu Sun Mar 30 17:56:53 2014 From: rm43 at evansville.edu (Robert Morse) Date: Sun, 30 Mar 2014 18:56:53 +0200 Subject: [GAP Forum] Misunderstanding about principle ideals of a semigroup In-Reply-To: References: Message-ID: Two elements in a semigroup are J-related if they generate the same two sided ideal. There are two elements in your example that generate the two sided ideal of order 8 and the other 6 elements generate the same two sided ideal of order 6. The elements in the equivalent classes in the J-relations are not ideals. Robert F. Morse On Sun, Mar 30, 2014 at 1:01 PM, Mohammad Reza Sorouhesh wrote: > Dear Forum, > > We know that what we call a J-Class in a finite semigroup is really a > principle ideal generated by an element of the semigroup. Here is a > finitely presented semigroup of order 8: > > gap> f:=FreeSemigroup("a","b");; > a:=f.1;; b:=f.2;; > s:=f/[[a^3,a],[b^2*a,a*b],[(a*b)^2*b,b]];; > e:=Elements(s); > > Now, lets the following code calls the two-sided ideal generated by e[1]: > >> Elements(SemigroupIdealByGenerators(s,[e[1]])); > [ a, a^2*b, a^2, a*b, b*a, a*b*a, b*a*b, a*b*a*b ] > > But by doing: > >> GreensJClasses(s); > > none of the Green J-Classes of semigroup "s" is equal to above set. Simply > asking why two below codes have different outputs? Or, I am mistaking about > a very simple fact which is clear? > > > Regards > > M.R.Sorouhesh > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From sandeepinsan86 at gmail.com Wed Apr 2 15:15:13 2014 From: sandeepinsan86 at gmail.com (Sandeep Chahal) Date: Wed, 2 Apr 2014 19:45:13 +0530 Subject: [GAP Forum] Fwd: A quarry about order of automorphism group In-Reply-To: References: Message-ID: R/Sir, Suppose G is a group of order 3^5. Then how can i check that those automorphism of G, which commutes with their images form subgroup of full automorphism group of G. Please acknowledge the mail. -- *Sandeep Singh* *School of Mathematics and Computer Applications* *Thapar University, Patiala (India)- 147004.* -- *Sandeep Singh* *School of Mathematics and Computer Applications* *Thapar University, Patiala (India)- 147004.* From shubh at cub.ac.in Tue Apr 8 10:43:39 2014 From: shubh at cub.ac.in (Shubh Narayan Singh (Assistant Professor, Mathematics)) Date: Tue, 8 Apr 2014 15:13:39 +0530 Subject: [GAP Forum] Holonomy Decomposition of a Transition Semigroup Message-ID: Dear Sir, I have been using GAP4r7. Please tell me, If there is any GAP code to find the Holonomy decomposition of the transition semi group of a deterministic finite automaton. *Sincerely,* *Shubh Narayan Singh* *-----------------------------------------------------Shubh Narayan Singh, Ph.D.Assistant Professor * *Department of MathematicsCentral University of BiharPatna - 800 014-----------------------------------------* *e-mail: shubh at cub.ac.in * *Mob: +91- 8404934146* From A.Egri-Nagy at uws.edu.au Tue Apr 8 12:40:28 2014 From: A.Egri-Nagy at uws.edu.au (Attila Egri-Nagy) Date: Tue, 8 Apr 2014 11:40:28 +0000 Subject: [GAP Forum] Holonomy Decomposition of a Transition Semigroup In-Reply-To: References: Message-ID: <69382961F8159B43A0CA0A5F6F75DD495C34BB7C@HELM.AD.UWS.EDU.AU> Dear Shubh, I guess you are looking for the SgpDec package ( https://bitbucket.org/dersu/sgpdec ) that can do the holonomy decomposition of transformation semigroups. You need to install this package after installing GAP. Please contact me if you have any problems with the installation. best whishes, Attila Egri-Nagy ________________________________________ From: forum-bounces at gap-system.org [forum-bounces at gap-system.org] on behalf of Shubh Narayan Singh (Assistant Professor, Mathematics) [shubh at cub.ac.in] Sent: Tuesday, April 08, 2014 7:43 PM To: forum at gap-system.org Subject: [GAP Forum] Holonomy Decomposition of a Transition Semigroup Dear Sir, I have been using GAP4r7. Please tell me, If there is any GAP code to find the Holonomy decomposition of the transition semi group of a deterministic finite automaton. *Sincerely,* *Shubh Narayan Singh* *-----------------------------------------------------Shubh Narayan Singh, Ph.D.Assistant Professor * *Department of MathematicsCentral University of BiharPatna - 800 014-----------------------------------------* *e-mail: shubh at cub.ac.in * *Mob: +91- 8404934146* _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From hulpke at math.colostate.edu Wed Apr 9 17:27:42 2014 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Wed, 9 Apr 2014 10:27:42 -0600 Subject: [GAP Forum] Conference Session: Software, Applications and Applications of Computational Group Theory Message-ID: Dear GAP-Forum, -- 2nd (and final) call for papers, extended deadline -- Talks on developing software or packages for GAP, or use of GAP (or other systems) to obtain mathematical results would be appropriate for the following conference session. We welcome your submissions (email by April 30) Best wishes, Alexander Hulpke ================== We are organizing a special session: "Software, algorithms, and applications of Computational Group Theory" at the 4th International Congress on Mathematical Software (ICMS), Aug 5-9, 2014 (Hanyang University, Seoul, South Korea) which is a satellite conference of the ICM 2014. This session will host talks on current aspects and recent progress of algorithms and software for computing with groups, incorporating all areas of algorithmic development. Talks on work in other areas, involving nontrivial computations in groups or related structures are also welcome, as will be talks that outline problems from other areas of computational mathematics that arise as obstacles in the context of group theoretic calculations. We invite you to attend this conference, and to submit an abstract for a talk. (To be considered for a talk, you must submit a short abstract to us by April 30, 2014.) For more information: ICMS 2014: http://voronoi.hanyang.ac.kr/icms2014/ Special Session: http://users.monash.edu.au/~heikod/ICMSCGT.html Guidelines on talk submissions: http://voronoi.hanyang.ac.kr/icms2014/Submission.html Please circulate this information to anyone who might be interested to attend. With best wishes, The organizers: Heiko Dietrich (Monash University, Melbourne, Australia) Alexander Hulpke (Colorado State University, Fort Collins, CO, USA) From rrburns at cox.net Thu Apr 10 19:44:23 2014 From: rrburns at cox.net (sopsku) Date: Thu, 10 Apr 2014 18:44:23 +0000 (UTC) Subject: [GAP Forum] Group of units of finite gaussian integers Message-ID: Dear Forum, How do I define the group of units of Z_n[i] in GAP? In particular I ultimately want to determine isomorphism classes of these groups. I assume that once I have properly defined the group of units I can then just use StructureDescription, but any help in actually defining the isomorphism would be appreciated. Thank you for your help. Ron From rrburns at cox.net Thu Apr 10 21:44:24 2014 From: rrburns at cox.net (sopsku) Date: Thu, 10 Apr 2014 20:44:24 +0000 (UTC) Subject: [GAP Forum] Group of units of finite gaussian integers References: Message-ID: sopsku writes: > > Dear Forum, > > How do I define the group of units of Z_n[i] in GAP? In particular I > ultimately want to determine isomorphism classes of these groups. I assume > that once I have properly defined the group of units I can then just use > StructureDescription, but any help in actually defining the isomorphism > would be appreciated. > > Thank you for your help. > > Ron > After some thought I tried working the polynomial ring isomorphic to Z_n[i]. Below is is what I have come up with. Is there a better way to do this in gap (aside from my simplistic coding)? n:=7; x:=Indeterminate(GF(n),"x"); r:=PolynomialRing(GF(n)); p:=x^2+1; i:=Ideal(r,[p]); q:=r/i; List(last); g:=Units(q); ele:=List(g); ord:=Length(ele); gorders:=Collected(List(ele,Order)); asg:=AllSmallGroups(ord);; ordersasg:=List([1..Length(asg)],x->Collected(List(asg[x],Order))); pos:=Position(List(ordersasg,x->x=gorders),true); StructureDescription(asg[pos]); Again thanks for any help given. Ron From f.k.moftakhar at gmail.com Wed Apr 16 09:30:32 2014 From: f.k.moftakhar at gmail.com (fatemeh moftakhar) Date: Wed, 16 Apr 2014 13:00:32 +0430 Subject: [GAP Forum] A question about involutions Message-ID: Dear Forum I have a question. G is a graph and x is an involution in G. Is there any algorithm in GAP for computing the number of involutions in x^G such that O(xy) is odd? Any comments or suggestions will be highly appreciated. Best regards Fatemeh Moftakhar -- Regards; Miss Fatemeh Moftakhar PhD Candidate, Department of Pure Mathematics, Faculty of Mathematical Sciences, University of Kashan, Kashan, Iran From mbg.nimda at gmail.com Wed Mar 26 16:07:06 2014 From: mbg.nimda at gmail.com (Mbg Nimda) Date: Wed, 26 Mar 2014 16:07:06 -0000 Subject: [GAP Forum] algebraic integers: testing the minimal polynomial Message-ID: Dear forum members, I want to know if x is an algebraic integer by inspecting the coefficients of its minimal polynomial using tne command PolynomialCoefficientsOfPolynomial. gap> p:=a^3-8*a-6; a^3-8*a-6 gap> cc:=PolynomialCoefficientsOfPolynomial(p,a); [ -6, -8, 0, 1 ] gap> ForAll(cc, c->c in Integers); false Is there a workaround for this ? Thanks in advance, Marc Bogaerts From Bill.Allombert at math.u-bordeaux.fr Fri Apr 11 09:19:55 2014 From: Bill.Allombert at math.u-bordeaux.fr (Bill Allombert) Date: Fri, 11 Apr 2014 10:19:55 +0200 Subject: [GAP Forum] Group of units of finite gaussian integers In-Reply-To: References: Message-ID: <20140411081955.GA11085@yellowpig> On Thu, Apr 10, 2014 at 06:44:23PM +0000, sopsku wrote: > Dear Forum, > > How do I define the group of units of Z_n[i] in GAP? In particular I > ultimately want to determine isomorphism classes of these groups. I assume > that once I have properly defined the group of units I can then just use > StructureDescription, but any help in actually defining the isomorphism > would be appreciated. Hello Ron, I do not know how to do it in GAP, but the general solution to this question is given in Henri Cohen book "Advanced topic in Computational number theory", GTM 193, Springer, Section 4.2 In your case, it is possible to write down the the group as a product of cyclic groups if one knows the factorisation of n. If n is prime then the answer is: n=2: C_2 n=1 mod 4: C_(n-1) x C_(n-1) n=3 mod 4: C_(n^2-1) If n is squarefree, you can just multiple the above. In PARI/GP, idealstar(nfinit(x^2+1),n).cyc will gives you the structure of the group of units of Z_n[i]. Cheers, Bill. From hulpke at math.colostate.edu Wed Apr 16 18:00:19 2014 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Wed, 16 Apr 2014 11:00:19 -0600 Subject: [GAP Forum] algebraic integers: testing the minimal polynomial In-Reply-To: References: Message-ID: Dear Forum, dear Marc Bogaerts, > I want to know if x is an algebraic integer by inspecting the coefficients > of its minimal polynomial using tne command > PolynomialCoefficientsOfPolynomial. PolynomialCoefficientsofPolynomial always returns (as the name says, and to be consistent with the multivariate case) coefficients that are polynomials, that cc[1] is really -6*a^0. gap> p:=a^3-8*a-6; a^3-8*a-6 gap> cc:=PolynomialCoefficientsOfPolynomial(p,a); [ -6, -8, 0, 1 ] gap> cc[1]=-6; false gap> cc[1]=-6*a^0; true (As the objects display the same way, you could detect this by looking for example at the categories of the coefficients: gap> CategoriesOfObject(cc[1]); [ "IsExtAElement", "IsNearAdditiveElement", "IsNearAdditiveElementWithZero", "IsNearAdditiveElementWithInverse", "IsAdditiveElement", "IsExtLElement", "IsExtRElement", "IsMultiplicativeElement", "IsMultiplicativeElementWithOne" , "IsMultiplicativeElementWithInverse", "IsZDFRE", "IsPolynomialFunction", "IsRationalFunction", "IsPolynomialFunctionsFamilyElement", "IsRationalFunctionsFamilyElement" ] while integers look very different: gap> CategoriesOfObject(6); [ "IsInt", "IsRat", "IsCyc", "IsExtAElement", "IsNearAdditiveElement", "IsNearAdditiveElementWithZero", "IsNearAdditiveElementWithInverse", "IsAdditiveElement", "IsExtLElement", "IsExtRElement", "IsMultiplicativeElement", "IsMultiplicativeElementWithOne", "IsMultiplicativeElementWithInverse", "IsZDFRE", "IsAssociativeElement", "IsAdditivelyCommutativeElement", "IsCommutativeElement", "IsCyclotomic", "IsPosRat" ] ) If you use instead CoefficientsOfUnivariatePolynomial, you get the integer coefficients as desired: gap> cc:=CoefficientsOfUnivariatePolynomial(p); [ -6, -8, 0, 1 ] gap> List(cc,c->c in Integers); [ true, true, true, true ] Best wishes, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From a.j.t.al-juburie at newcastle.ac.uk Wed Apr 16 16:51:51 2014 From: a.j.t.al-juburie at newcastle.ac.uk (Abdulsatar Al-Juburie) Date: Wed, 16 Apr 2014 15:51:51 +0000 Subject: [GAP Forum] Question Message-ID: <5CA877F40086AF4BA25CA7791864174406C1A9@EXMBCT01.campus.ncl.ac.uk> Dear Forum, I work with automorphism group of right-angled Artin groups ( graph groups). I have a simple graph Gamma=(V,E), where V= [x1, ... ,xn] is the vertex set and E = [[xi1 , xi2], ... ,[xik , xi(k+1)]] is the edge set, for instance, Gamma=([1,2,3,4,5],[[1,2],[1,3],[2,3],[4,5],[3,4]]). Let z belong V, I need to find [z] the equivalence classes of z. The action here is conjugation. However, I ask it's possible in Gap to compute [z] the equivalence classes of the element z, and if it's possible can you give me an example please. I would be appreciated if you could help me in this matter. Best Regards, Abdulsatar From hulpke at math.colostate.edu Tue Apr 22 19:48:05 2014 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Tue, 22 Apr 2014 12:48:05 -0600 Subject: [GAP Forum] A question about involutions In-Reply-To: References: Message-ID: Dear Forum, Fatemeh Moftakhar asked: > I have a question. > G is a graph and x is an involution in G. Is there any algorithm in GAP for > computing the number of involutions in x^G such that O(xy) is odd? > > Any comments or suggestions will be highly appreciated. There is no direct function for this. Assuming you mean G is a group, and it is small enough that you can calculate the character table, the class structure constants (see manual: ClassStructureCharTable, http://www.gap-system.org/Manuals/doc/ref/chap71.html#X7F9D58208241D35E ) allow to determine such a count. Regards, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From anvita21 at gmail.com Wed Apr 23 09:00:37 2014 From: anvita21 at gmail.com (Anvita) Date: Wed, 23 Apr 2014 15:00:37 +0700 Subject: [GAP Forum] Aut troubles Message-ID: Dear Forum, I simply want to find Aut( PSL(2,8) ). Any help is appreciated. Anvita P.S. The same problem with PSL(2,7), but no problem with PSL(2,5) ==================================================== ????????? GAP, Version 4.7.4 of 20-Feb-2014 (free software, GPL) ? GAP ? http://www.gap-system.org ????????? Architecture: x86_64-unknown-linux-gnu-gcc-default64 Libs used: gmp, readline Loading the library and packages ... Components: trans 1.0, prim 2.1, small* 1.0, id* 1.0 Packages: AClib 1.2, Alnuth 3.0.0, AtlasRep 1.5.0, AutPGrp 1.6, Browse 1.8.3, Carat 2.1.4, CRISP 1.3.8, Cryst 4.1.12, CrystCat 1.1.6, CTblLib 1.2.2, FactInt 1.5.3, FGA 1.2.0, GAPDoc 1.5.1, IO 4.2, IRREDSOL 1.2.4, LAGUNA 3.6.4, Polenta 1.3.1, Polycyclic 2.11, RadiRoot 2.6, ResClasses 3.3.2, Sophus 1.23, SpinSym 1.5, TomLib 1.2.4 Try '?help' for help. See also '?copyright' and '?authors' gap> gap> AutomorphismGroup( PSL(2,8) ); Error, Level 0 info messages are not allowed called from a[2] = true called from AutomorphismGroupMorpheus( g ) called from AutomorphismGroupFittingFree( G ) called from ( ) called from read-eval loop at line 18 of *stdin* you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> From mathieu.dutour at gmail.com Wed Apr 23 09:14:47 2014 From: mathieu.dutour at gmail.com (Mathieu Dutour) Date: Wed, 23 Apr 2014 10:14:47 +0200 Subject: [GAP Forum] Aut troubles In-Reply-To: References: Message-ID: That is strange error. With GAP 4.6.3 I get it working: gap> AutomorphismGroup( PSL(2,8)); Best, Mathieu On Wed, Apr 23, 2014 at 10:00 AM, Anvita wrote: > Dear Forum, > > I simply want to find Aut( PSL(2,8) ). > Any help is appreciated. > > Anvita > > P.S. The same problem with PSL(2,7), but no problem with PSL(2,5) > > ==================================================== > ????????? GAP, Version 4.7.4 of 20-Feb-2014 (free software, GPL) > ? GAP ? http://www.gap-system.org > ????????? Architecture: x86_64-unknown-linux-gnu-gcc-default64 > Libs used: gmp, readline > Loading the library and packages ... > Components: trans 1.0, prim 2.1, small* 1.0, id* 1.0 > Packages: AClib 1.2, Alnuth 3.0.0, AtlasRep 1.5.0, AutPGrp 1.6, Browse > 1.8.3, Carat 2.1.4, CRISP 1.3.8, Cryst 4.1.12, CrystCat 1.1.6, CTblLib > 1.2.2, > FactInt 1.5.3, FGA 1.2.0, GAPDoc 1.5.1, IO 4.2, IRREDSOL > 1.2.4, LAGUNA 3.6.4, Polenta 1.3.1, Polycyclic 2.11, RadiRoot 2.6, > ResClasses 3.3.2, Sophus 1.23, SpinSym 1.5, TomLib 1.2.4 > Try '?help' for help. See also '?copyright' and '?authors' > gap> > gap> AutomorphismGroup( PSL(2,8) ); > Error, Level 0 info messages are not allowed called from > a[2] = true called from > AutomorphismGroupMorpheus( g ) called from > AutomorphismGroupFittingFree( G ) called from > ( ) > called from read-eval loop at line 18 of *stdin* > you can 'quit;' to quit to outer loop, or > you can 'return;' to continue > brk> > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From alexk at mcs.st-andrews.ac.uk Wed Apr 23 09:30:50 2014 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Wed, 23 Apr 2014 09:30:50 +0100 Subject: [GAP Forum] Aut troubles In-Reply-To: References: Message-ID: <722E0474-55BE-42F6-B312-183FC090F7A3@mcs.st-andrews.ac.uk> Thanks - this has been already reported to us after GAP 4.7.4 and will be fixed in GAP 4.7.5. For GAP 4.7.4, the fix is to replace 0 by 1 in the line Info(InfoWarning,0,"Only partial list given"); in lib/morpheus.gi (around line 1620): Info(InfoWarning,1,"Only partial list given"); HTH Alexander On 23 Apr 2014, at 09:14, Mathieu Dutour wrote: > That is strange error. > > With GAP 4.6.3 I get it working: > gap> AutomorphismGroup( PSL(2,8)); > > > Best, > > Mathieu > > > On Wed, Apr 23, 2014 at 10:00 AM, Anvita wrote: > >> Dear Forum, >> >> I simply want to find Aut( PSL(2,8) ). >> Any help is appreciated. >> >> Anvita >> >> P.S. The same problem with PSL(2,7), but no problem with PSL(2,5) >> >> ==================================================== >> ????????? GAP, Version 4.7.4 of 20-Feb-2014 (free software, GPL) >> ? GAP ? http://www.gap-system.org >> ????????? Architecture: x86_64-unknown-linux-gnu-gcc-default64 >> Libs used: gmp, readline >> Loading the library and packages ... >> Components: trans 1.0, prim 2.1, small* 1.0, id* 1.0 >> Packages: AClib 1.2, Alnuth 3.0.0, AtlasRep 1.5.0, AutPGrp 1.6, Browse >> 1.8.3, Carat 2.1.4, CRISP 1.3.8, Cryst 4.1.12, CrystCat 1.1.6, CTblLib >> 1.2.2, >> FactInt 1.5.3, FGA 1.2.0, GAPDoc 1.5.1, IO 4.2, IRREDSOL >> 1.2.4, LAGUNA 3.6.4, Polenta 1.3.1, Polycyclic 2.11, RadiRoot 2.6, >> ResClasses 3.3.2, Sophus 1.23, SpinSym 1.5, TomLib 1.2.4 >> Try '?help' for help. See also '?copyright' and '?authors' >> gap> >> gap> AutomorphismGroup( PSL(2,8) ); >> Error, Level 0 info messages are not allowed called from >> a[2] = true called from >> AutomorphismGroupMorpheus( g ) called from >> AutomorphismGroupFittingFree( G ) called from >> ( ) >> called from read-eval loop at line 18 of *stdin* >> you can 'quit;' to quit to outer loop, or >> you can 'return;' to continue >> brk> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum >> > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From mathieu.dutour at gmail.com Wed Apr 23 13:00:47 2014 From: mathieu.dutour at gmail.com (Mathieu Dutour) Date: Wed, 23 Apr 2014 14:00:47 +0200 Subject: [GAP Forum] Computing kernel Message-ID: Dear all, I have a matrix group G and a permutation representation phi. I want to find a generating set for the kernel. It seems to be a hard problem with GAP and I am unsure why. Is it really such a hard problem ? The problem happens already when we take GL2 and the determinant representation, which is my primary example, though not the only one. Any help would be appreciated. Mathieu PS: Below, the example that shows the problem and an attempt solution at it in the particular case of a permutation representation to Sym(2). I do not claim optimality, but I think it is correct. TestGL:=function(n) local TheG, ListGen, ListPerm, eGen, eDet, Sym2, phi, TheKer; TheG:=GL(n, Integers); ListGen:=GeneratorsOfGroup(TheG); ListPerm:=[]; for eGen in ListGen do eDet:=DeterminantMat(eGen); if eDet=1 then Add(ListPerm, ()); else Add(ListPerm, (1,2)); fi; od; Sym2:=SymmetricGroup(2); Print("Before computing phi\n"); phi:=GroupHomomorphismByImagesNC(TheG, Sym2, ListGen, ListPerm); Print("Before computing TheKer\n"); TheKer:=Kernel(phi); Print("After computing TheKer\n"); return rec(phi:=phi, TheKer:=TheKer); end; GetIndexOneTwoKernelOfMapping:=function(GRP1, GRP2, ListGens1, ListGens2) local nbGen, ListPosPlus, ListPosMinus, ListGenRet, x1, TheId, eGenMinus, eGenPlus, List1, List2, i1, i2; if First(ListGens2, x->x<>() and x<>(1,2))<>fail then Error("The ListGens2 must be only () or (1,2)"); fi; if GRP2<>SymmetricGroup(2) then Error("The second group must be SymmetricGroup(2)"); fi; nbGen:=Length(ListGens2); ListPosPlus:=Filtered([1..nbGen], x->ListGens2[x]=()); ListPosMinus:=Filtered([1..nbGen], x->ListGens2[x]=(1,2)); if Length(ListPosMinus)=0 then return GRP1; fi; ListGenRet:=ListGens1{ListPosPlus}; x1:=ListGens1[ListPosMinus[1]]; TheId:=Identity(GRP1); for eGenMinus in ListGens1{ListPosMinus} do for eGenPlus in Concatenation(ListPosPlus, TheId) do List1:=[eGenMinus, Inverse(eGenMinus)]; List2:=[x1, Inverse(x1)]; for i1 in [1,2] do for i2 in [1,2] do Add(ListGenRet, List1[i1]*eGenPlus*List2[i2]); Add(ListGenRet, List2[i2]*eGenPlus*List1[i1]); od; od; od; od; return Group(ListGenRet); end; From hulpke at math.colostate.edu Wed Apr 23 16:33:04 2014 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Wed, 23 Apr 2014 09:33:04 -0600 Subject: [GAP Forum] Computing kernel In-Reply-To: References: Message-ID: <79A8AA35-2228-4FC5-8CCB-291DDFB5CA74@math.colostate.edu> Dear Forum, Dear Mathieu, > I have a huge, in fact infinite, > matrix group G and a permutation representation phi. > I want to find a generating set for the kernel. It seems to > be a hard problem with GAP and I am unsure why. Is it really > such a hard problem ? GAP currently does not treat subgroups of GLn(Z) special (it should in fact treat them more like subgroups of a finitely presented group), but just like other groups given by generators. The problem then is the default routine for closure that tries to do a membership test. As an experiment, instead of calculating the kernel, ask for CoKernelGensPermHom(InverseGeneralMapping(phi)) and you will get generators for the kernel immediately. What takes infinitely long is effectively the test for redundancy of generators. What I would do instead is to pull your result through a finitely presented group. (I happen to have almost a function for this which constructs a homomorphism from fp->matrix SL, which might be of interest and which I append.) gap> slhom:=SLNZFP(3); [ t12, t13, t21, t23, t31, t32 ] -> [ [ [ 1, 1, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ], [ [ 1, 0, 1 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ], [ [ 1, 0, 0 ], [ 1, 1, 0 ], [ 0, 0, 1 ] ], [ [ 1, 0, 0 ], [ 0, 1, 1 ], [ 0, 0, 1 ] ], [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 1, 0, 1 ] ], [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 1, 1 ] ] ] gap> slfp:=Source(slhom); gap> slmat:=Range(slhom); Consider e.g. as homomorphism the reduction modulo 3. red:=GroupHomomorphismByImagesNC(slmat,GL(3,3),GeneratorsOfGroup(slmat),List(GeneratorsOfGroup(slmat),x->x*Z(3)^0)); Now pull this back to the f.p. group (Note that I use `ImagesRepresentative to avoid triggering a membership test in `slmat' which would run forever. hom:=GroupHomomorphismByImages(slfp,Range(red),GeneratorsOfGroup(slfp),List(GeneratorsOfGroup(slfp), x->ImagesRepresentative(red,ImagesRepresentative(slhom,x)))); Now we could calculate a kernel of `hom': k:=Kernel(hom); gens:=GeneratorsOfGroup(k);; # can take very long if large index ! Length(gens); kermats:=List(gens,x->ImagesRepresentative(slhom,x)); # matrices that generate the kernel [Yes, in the best of all worlds all of this magic would happen automatically, but there are actually a lot of subtle points involved in doing so, not least whether you actually always would want kernel generators] All the best, Alexander SLNZFP:=function(n) local t,geni,m,gens,f,rels,i,j,k,l,mat,mats,id; t:=function(i,j) return gens[geni[i][j]]; end; geni:=List([1..n],x->[]); mats:=[]; id:=IdentityMat(n,1); m:=0; gens:=[]; for i in [1..n] do for j in [1..n] do if j<>i then m:=m+1; geni[i][j]:=m; Add(gens,Concatenation("t",String(i),String(j))); mat:=List(id,ShallowCopy); mat[i][j]:=1; Add(mats,mat); fi; od; od; f:=FreeGroup(gens); gens:=GeneratorsOfGroup(f); rels:=[]; for i in [1..n] do for j in Difference([1..n],[i]) do for k in Difference([1..n],[j]) do for l in Difference([1..n],[i,k]) do if i>k or j>l then Add(rels,Comm(t(i,j),t(k,l))); fi; od; if k<>i then Add(rels,Comm(t(i,j),t(j,k))/t(i,k)); fi; od; od; od; Add(rels,(t(1,2)/t(2,1)*t(1,2))^4); t:=f/rels; m:=Group(mats); return GroupHomomorphismByImages(t,m,GeneratorsOfGroup(t),mats); end; From mathieu.dutour at gmail.com Wed Apr 23 17:02:11 2014 From: mathieu.dutour at gmail.com (Mathieu Dutour) Date: Wed, 23 Apr 2014 18:02:11 +0200 Subject: [GAP Forum] Computing kernel In-Reply-To: <79A8AA35-2228-4FC5-8CCB-291DDFB5CA74@math.colostate.edu> References: <79A8AA35-2228-4FC5-8CCB-291DDFB5CA74@math.colostate.edu> Message-ID: Dear Alexander, thank you very much, it works. Still, it appears to me that the FreeGroup trick serves essentially to trigger off the checking of redundancy of generators. It looks like a hack. I understand that checking redundancy of generators is expensive, but actually I am fine with having lots of generators. Shouldn't there be a more direct way? Also, does your two approaches use different algorithms? Mathieu On Wed, Apr 23, 2014 at 5:33 PM, Alexander Hulpke wrote: > > Dear Forum, Dear Mathieu, > > > I have a > huge, in fact infinite, > > matrix group G and a permutation representation phi. > > I want to find a generating set for the kernel. It seems to > > be a hard problem with GAP and I am unsure why. Is it really > > such a hard problem ? > > GAP currently does not treat subgroups of GLn(Z) special (it should in > fact treat them more like subgroups of a finitely presented group), but > just like other groups given by generators. The problem then is the default > routine for closure that tries to do a membership test. > > As an experiment, instead of calculating the kernel, ask for > > CoKernelGensPermHom(InverseGeneralMapping(phi)) > > and you will get generators for the kernel immediately. What takes > infinitely long is effectively the test for redundancy of generators. > > What I would do instead is to pull your result through a finitely > presented group. (I happen to have almost a function for this which > constructs a homomorphism from fp->matrix SL, which might be of interest > and which I append.) > > gap> slhom:=SLNZFP(3); > [ t12, t13, t21, t23, t31, t32 ] -> > [ [ [ 1, 1, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ], > [ [ 1, 0, 1 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ], > [ [ 1, 0, 0 ], [ 1, 1, 0 ], [ 0, 0, 1 ] ], > [ [ 1, 0, 0 ], [ 0, 1, 1 ], [ 0, 0, 1 ] ], > [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 1, 0, 1 ] ], > [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 1, 1 ] ] ] > > gap> slfp:=Source(slhom); > > gap> slmat:=Range(slhom); > > > Consider e.g. as homomorphism the reduction modulo 3. > > > red:=GroupHomomorphismByImagesNC(slmat,GL(3,3),GeneratorsOfGroup(slmat),List(GeneratorsOfGroup(slmat),x->x*Z(3)^0)); > > Now pull this back to the f.p. group (Note that I use > `ImagesRepresentative to avoid triggering a membership test in `slmat' > which would run forever. > > > hom:=GroupHomomorphismByImages(slfp,Range(red),GeneratorsOfGroup(slfp),List(GeneratorsOfGroup(slfp), > x->ImagesRepresentative(red,ImagesRepresentative(slhom,x)))); > > Now we could calculate a kernel of `hom': > > k:=Kernel(hom); > > gens:=GeneratorsOfGroup(k);; # can take very long if large index ! > Length(gens); > > kermats:=List(gens,x->ImagesRepresentative(slhom,x)); # matrices that > generate the kernel > > [Yes, in the best of all worlds all of this magic would happen > automatically, but there are actually a lot of subtle points involved in > doing so, not least whether you actually always would want kernel > generators] > > All the best, > > Alexander > > > SLNZFP:=function(n) > local t,geni,m,gens,f,rels,i,j,k,l,mat,mats,id; > t:=function(i,j) > return gens[geni[i][j]]; > end; > geni:=List([1..n],x->[]); > mats:=[]; > id:=IdentityMat(n,1); > m:=0; > gens:=[]; > for i in [1..n] do > for j in [1..n] do > if j<>i then > m:=m+1; > geni[i][j]:=m; > Add(gens,Concatenation("t",String(i),String(j))); > mat:=List(id,ShallowCopy); > mat[i][j]:=1; > Add(mats,mat); > fi; > od; > od; > f:=FreeGroup(gens); > gens:=GeneratorsOfGroup(f); > rels:=[]; > for i in [1..n] do > for j in Difference([1..n],[i]) do > for k in Difference([1..n],[j]) do > for l in Difference([1..n],[i,k]) do > if i>k or j>l then > Add(rels,Comm(t(i,j),t(k,l))); > fi; > od; > if k<>i then > Add(rels,Comm(t(i,j),t(j,k))/t(i,k)); > fi; > od; > od; > od; > Add(rels,(t(1,2)/t(2,1)*t(1,2))^4); > t:=f/rels; > m:=Group(mats); > return GroupHomomorphismByImages(t,m,GeneratorsOfGroup(t),mats); > end; > > > > > From hulpke at math.colostate.edu Wed Apr 23 17:16:22 2014 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Wed, 23 Apr 2014 10:16:22 -0600 Subject: [GAP Forum] Computing kernel In-Reply-To: References: <79A8AA35-2228-4FC5-8CCB-291DDFB5CA74@math.colostate.edu> Message-ID: <8F2D1988-9C41-472E-9520-D7C5F109000A@math.colostate.edu> Dear Mathieu, > thank you very much, it works. Glad to hear. > > Still, it appears to me that the FreeGroup trick serves essentially > to trigger off the checking of redundancy of generators. No. The way how the system treats subgroups is fundamentally different. By default GAP has groups given by generators and builds data structures to allow for membership testing. The last fallback is to enumerate all elements, making the assumption that we can test cheaply for element equality. In the case of finitely presented groups, a subgroup of finite index is by default represented as full preimage of a subgroup in a finite quotient. Calculations such as element test, intersection, normalizer etc. can be moved in this finite quotient. Subgroup generators are not computed unless a user asks explicitly about it. (This really just uses finite generation and the ability to assert that something is a homomorphism.) > It looks like a hack. It does so because the finite presentation is not needed. But the approach based on a membership test will definitely not work and the approach via finite images looks plausible to me. > I understand that checking redundancy of generators > is expensive, but actually I am fine with having lots of generators. The problem is that lots tend to accumulate once you iterate calculations or indices get larger. For example by default when reducing GL_3(Z) modulo 7 you would get about 10 million generators for the kernel -- this will choke anything. I would be curious to hear what you eventually would like to calculate. I'm still not sure what the appropriuate functions for infinite matrix groups should be, and it is always helpful to see what people actually want to do. > Also, does your two approaches use different algorithms? Yes, the code for fp groups is completely different than the generic one using generators and membership. Best, Alexander From hulpke at math.colostate.edu Wed Apr 30 14:54:11 2014 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Wed, 30 Apr 2014 07:54:11 -0600 Subject: [GAP Forum] [GAP Support] Help In-Reply-To: References: Message-ID: Dear Forum, Dear Iman Karoubi, On Apr 28, 2014, at 9:49 AM, Iman Karoubi wrote: > I want to compute the order set of GL(2,19^2) "a Group" but the size of > this group is very large please help me . g:=GL(2,19^2); cl:=ConjugacyClasses(g);; ords:=List(cl,x->Order(Representative(x))); Set(ords); will finish in a few minutes. Regards, Alexander Hulpke > > thanks. > _______________________________________________ > Support mailing list > Support at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/support From sam at Math.RWTH-Aachen.De Wed Apr 30 16:07:51 2014 From: sam at Math.RWTH-Aachen.De (Thomas Breuer) Date: Wed, 30 Apr 2014 17:07:51 +0200 Subject: [GAP Forum] [GAP Support] Help In-Reply-To: References: Message-ID: <20140430150751.GA14819@gemma.math.rwth-aachen.de> Dear GAP Forum, the set of element orders of the general linear group GL(2,q), where q is a power of the prime p, is the union of all divisors of p*(q-1) and of q^2-1. All the best, Thomas On Wed, Apr 30, 2014 at 07:54:11AM -0600, Alexander Hulpke wrote: > Dear Forum, Dear Iman Karoubi, > > On Apr 28, 2014, at 9:49 AM, Iman Karoubi wrote: > > I want to compute the order set of GL(2,19^2) "a Group" but the size of > > this group is very large please help me . > > g:=GL(2,19^2); > cl:=ConjugacyClasses(g);; > ords:=List(cl,x->Order(Representative(x))); > Set(ords); > > will finish in a few minutes. > > Regards, > > Alexander Hulpke From matliumh at gmail.com Fri May 2 14:11:04 2014 From: matliumh at gmail.com (Minghui Liu) Date: Fri, 2 May 2014 21:11:04 +0800 Subject: [GAP Forum] Manual Proof of GAP Results on Generators of Factor Groups Message-ID: Dear GAP Forum, I am trying to find generators of a factor group. I have input dozens of generators and relations and when I use the command AbelianInvariants(F/relations); the result was something like 0, 0, 0, 0, 0, 0, 0, 2, 5. After finding that the image of some generator, say F.1*F.2^5*F.3^3 has order 5 in the quotient group F/relations, is there any way we can manually write a proof that the order of the image of F.1*F.2^5*F.3^3 is equal to 5, perhaps with the help of GAP? My point is, instead of writing "by calculation based on GAP, we have the order is equal to 5", it would be desirable to find a algebraic proof of the result. Anyone knows how it can be done? Any assistance will be greatly appreciated. Best regards, Minghui From hulpke at math.colostate.edu Fri May 2 16:18:11 2014 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri, 2 May 2014 09:18:11 -0600 Subject: [GAP Forum] Manual Proof of GAP Results on Generators of Factor Groups In-Reply-To: References: Message-ID: Dear Forum, dear Minhui Liu, On May 2, 2014, at 5/2/14 7:11, Minghui Liu wrote: > Dear GAP Forum, > > I am trying to find generators of a factor group. I have input dozens > of generators and relations and when I use the command > > AbelianInvariants(F/relations); > > the result was something like > > 0, 0, 0, 0, 0, 0, 0, 2, 5. > > After finding that the image of some generator, say F.1*F.2^5*F.3^3 has > order 5 in the quotient group F/relations, is there any way we can manually > write a proof that the order of the image of F.1*F.2^5*F.3^3 is equal to 5, > perhaps with the help of GAP? There also is a function `MaximalAbelianQuotient' that constructs a homomorphism G->G/G' which makes it easier to see what happens with particular elements of G. If you want a manual proof, the calculation is essentially (both in what GAP does and how the result can be interpreted) a Smith Normal Form on a matrix of abelianized relators. It may be a pain to do so, but at least in principle you could do this by hand and thus see what happens. > My point is, instead of writing "by calculation based on GAP, we have the > order is equal to 5", it would be desirable to find a algebraic proof of I don't think you would be able to do without some calculation or rewriting that in itself is not insightful, and when done by hand is prone to errors. You could hide the (computer) calculations, e.g. just state: The following map on the generators extends to a homomorphism from G to an abelian group (verify that the relators hold), and calculate the order of the image of your word in this abelian group. And then show an explicit rewriting, expressing the 5th power of your element as a word in conjugates of commutators. This would be a proper proof that could be followed by hand, but frankly one without giving any insight how on earth you found the homomorphism and the expression. Regards, Alexander Hulpke From matliumh at gmail.com Sat May 3 06:53:46 2014 From: matliumh at gmail.com (Minghui Liu) Date: Sat, 3 May 2014 13:53:46 +0800 Subject: [GAP Forum] Exceeded Permitted Memory Message-ID: Dear Forum, I am using GAP to compute a group with hundreds of generators and relations. The command AbelianInvariants(F/relations) works perfectly, but when I use the command MaximalAbelianQuotient(F/relations); the following message is returned: gap> phi:=MaximalAbelianQuotient(G); Error, exceeded the permitted memory (`-o' command line option) in MakeImmutable( a ); called from UnderlyingElement( left ) * UnderlyingElement( right ) called from gen[j] ^ s[i][j] called from ( ) called from read-eval loop at line 80 of *stdin* you can 'return;' brk> I also tried to run GAP on a supercomputer (HP Xeon four sockets 10-Core and two sockets Hexa-Core 64-bit Linux cluster, CentOS 5) but with the same result (Does a supercomputer make any difference at all?). Is there any way that I can slove this, or should we concluded that my group is "too large" to be computed by GAP. Anyway my goal is to find the torsion elements in F/relations. As I can read from AbelianInvariants(F/relations), there are four copies of Z/Z2. Is there any other way that I can find and verify the four elements in F whose image has order 2 in F/relations? I very much appreciate your help! Best regards, Minghui From matliumh at gmail.com Sat May 3 07:03:42 2014 From: matliumh at gmail.com (Minghui Liu) Date: Sat, 3 May 2014 14:03:42 +0800 Subject: [GAP Forum] Exceeded Permitted Memory In-Reply-To: References: Message-ID: By the way, I found that even better supercomputers are available in my university: "Dedicated cluster with up to 192 CPU cores interconnected by high-performance InfiniBand network can be provisioned within a business day." And one needs to pay to use it. Is there any point trying? Thanks and regards, Minghui On 3 May 2014 13:53, Minghui Liu wrote: > Dear Forum, > > I am using GAP to compute a group with hundreds of generators and > relations. The command AbelianInvariants(F/relations) works perfectly, but > when I use the command MaximalAbelianQuotient(F/relations); the following > message is returned: > > gap> phi:=MaximalAbelianQuotient(G); > Error, exceeded the permitted memory (`-o' command line option) in > MakeImmutable( a ); called from > UnderlyingElement( left ) * UnderlyingElement( right ) called from > gen[j] ^ s[i][j] called from > ( ) > called from read-eval loop at line 80 of *stdin* > you can 'return;' > brk> > > I also tried to run GAP on a supercomputer (HP Xeon four sockets 10-Core > and two sockets Hexa-Core 64-bit Linux cluster, CentOS 5) but with the same > result (Does a supercomputer make any difference at all?). Is there any way > that I can slove this, or should we concluded that my group is "too large" > to be computed by GAP. > > Anyway my goal is to find the torsion elements in F/relations. As I can > read from AbelianInvariants(F/relations), there are four copies of Z/Z2. Is > there any other way that I can find and verify the four elements in F whose > image has order 2 in F/relations? > > I very much appreciate your help! > > Best regards, > > Minghui > From dmitrii.pasechnik at cs.ox.ac.uk Sat May 3 20:56:38 2014 From: dmitrii.pasechnik at cs.ox.ac.uk (Dmitrii Pasechnik) Date: Sat, 3 May 2014 20:56:38 +0100 Subject: [GAP Forum] Exceeded Permitted Memory In-Reply-To: References: Message-ID: <20140503195638.GA14444@cs.ox.ac.uk> On Sat, May 03, 2014 at 02:03:42PM +0800, Minghui Liu wrote: > By the way, I found that even better supercomputers are available in my > university: > > "Dedicated cluster with up to 192 CPU cores interconnected by > high-performance InfiniBand network can be provisioned within a business > day." > > And one needs to pay to use it. Is there any point trying? This is a distributed cluster (known as an MPP, for Massively Parallel Processor), i.e. you have many CPU nodes with relatively small RAM available to each of them. GAP won't be able to use all this memory. You'd rather need what is called an SMP - i.e. shared memory (multi)processor. Indee, your problem is that you are running out of memory. And not that you need more CPU cores to go faster. What is the value of the -o parameter you are starting GAP with? Best, Dmitrii > > Thanks and regards, > > Minghui > > > On 3 May 2014 13:53, Minghui Liu wrote: > > > Dear Forum, > > > > I am using GAP to compute a group with hundreds of generators and > > relations. The command AbelianInvariants(F/relations) works perfectly, but > > when I use the command MaximalAbelianQuotient(F/relations); the following > > message is returned: > > > > gap> phi:=MaximalAbelianQuotient(G); > > Error, exceeded the permitted memory (`-o' command line option) in > > MakeImmutable( a ); called from > > UnderlyingElement( left ) * UnderlyingElement( right ) called from > > gen[j] ^ s[i][j] called from > > ( ) > > called from read-eval loop at line 80 of *stdin* > > you can 'return;' > > brk> > > > > I also tried to run GAP on a supercomputer (HP Xeon four sockets 10-Core > > and two sockets Hexa-Core 64-bit Linux cluster, CentOS 5) but with the same > > result (Does a supercomputer make any difference at all?). Is there any way > > that I can slove this, or should we concluded that my group is "too large" > > to be computed by GAP. > > > > Anyway my goal is to find the torsion elements in F/relations. As I can > > read from AbelianInvariants(F/relations), there are four copies of Z/Z2. Is > > there any other way that I can find and verify the four elements in F whose > > image has order 2 in F/relations? > > > > I very much appreciate your help! > > > > Best regards, > > > > Minghui > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From A.Egri-Nagy at uws.edu.au Sun May 4 05:38:37 2014 From: A.Egri-Nagy at uws.edu.au (Attila Egri-Nagy) Date: Sun, 4 May 2014 04:38:37 +0000 Subject: [GAP Forum] Exceeded Permitted Memory In-Reply-To: References: , Message-ID: <69382961F8159B43A0CA0A5F6F75DD495C355E3E@HELM.AD.UWS.EDU.AU> Hi Minghui, It probably helps if you can get some idea about the scalability of your problem. If you could check the memory consumption of calculating smaller instances of the same problem (like similar relations with less generators). As Dimitrii pointed out, you may want to set the size of the memory allocated to GAP close to the available physical memory. Or simple just say return; in the break loop when interactive, and GAP will try to allocate more memory. In general, the supercomputer is great if you can make your calculation parallel. For single thread calculation you may find a desktop computer with loads of memory more useful. See blog entry: http://compsemi.wordpress.com/2014/05/04/building-a-harvester-rig/ best, attila ________________________________________ From: forum-bounces at gap-system.org [forum-bounces at gap-system.org] on behalf of Minghui Liu [matliumh at gmail.com] Sent: Saturday, May 03, 2014 4:03 PM To: forum at gap-system.org Subject: Re: [GAP Forum] Exceeded Permitted Memory By the way, I found that even better supercomputers are available in my university: "Dedicated cluster with up to 192 CPU cores interconnected by high-performance InfiniBand network can be provisioned within a business day." And one needs to pay to use it. Is there any point trying? Thanks and regards, Minghui On 3 May 2014 13:53, Minghui Liu wrote: > Dear Forum, > > I am using GAP to compute a group with hundreds of generators and > relations. The command AbelianInvariants(F/relations) works perfectly, but > when I use the command MaximalAbelianQuotient(F/relations); the following > message is returned: > > gap> phi:=MaximalAbelianQuotient(G); > Error, exceeded the permitted memory (`-o' command line option) in > MakeImmutable( a ); called from > UnderlyingElement( left ) * UnderlyingElement( right ) called from > gen[j] ^ s[i][j] called from > ( ) > called from read-eval loop at line 80 of *stdin* > you can 'return;' > brk> > > I also tried to run GAP on a supercomputer (HP Xeon four sockets 10-Core > and two sockets Hexa-Core 64-bit Linux cluster, CentOS 5) but with the same > result (Does a supercomputer make any difference at all?). Is there any way > that I can slove this, or should we concluded that my group is "too large" > to be computed by GAP. > > Anyway my goal is to find the torsion elements in F/relations. As I can > read from AbelianInvariants(F/relations), there are four copies of Z/Z2. Is > there any other way that I can find and verify the four elements in F whose > image has order 2 in F/relations? > > I very much appreciate your help! > > Best regards, > > Minghui > _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From pabourdi at laas.fr Tue May 6 16:24:18 2014 From: pabourdi at laas.fr (Pierre-Alain BOURDIL) Date: Tue, 06 May 2014 17:24:18 +0200 Subject: [GAP Forum] GAP minimal installation Message-ID: <5368FEA2.1040109@laas.fr> Hi, i'd like to compile GAP with the minimal possible setup, ie with smallest possible set of packages. I did not find any option in the configure to select the packages to be installed. Is there some docs about customizing the GAP install ? + -- Pierre-Alain BOURDIL pabourdi at laas.fr pierre-alain.bourdil at fr.thalesgroup.com From alexander.konovalov at gmail.com Tue May 6 17:06:07 2014 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Tue, 6 May 2014 17:06:07 +0100 Subject: [GAP Forum] GAP minimal installation In-Reply-To: <5368FEA2.1040109@laas.fr> References: <5368FEA2.1040109@laas.fr> Message-ID: <6112BDF2-3581-4C6B-8B1F-30D14238F8AE@gmail.com> Dear Pierre-Alain, On 6 May 2014, at 16:24, Pierre-Alain BOURDIL wrote: > Hi, > i'd like to compile GAP with the minimal possible setup, ie with smallest possible set of packages. > I did not find any option in the configure to select the packages to be installed. GAP distribution is supplied together with packages, so one need not to select them for installation. Packages that do not require compilation will be available immediately, while some packages have to be compiled, e.g. using the script available from http://www.gap-system.org/Download/install.html. Now, to use GAP, one must have the package called GAPDoc, otherwise GAP won't start. Indeed, GAP will work without all other packages. However, there are some packages which extend GAP essentially, and it may be not a useful idea to remove them from a GAP installation. These packages may be used in the background e.g. to factorise integers or to compute automorphism groups, sometimes without even notifying the user that a package had been used. May I ask you why are you interested in such minimalistic installation - is it a matter of a disk space, or not being able to compile some packages (e.g. under OS X) or too time-consuming package compiling process (e.g. on Raspberry Pi), or anything else? Which kinds of calculations are expected to run in such GAP installation? > Is there some docs about customizing the GAP install ? Perhaps you may look at http://www.gap-system.org/Download/INSTALL which is also contained in the root directory of your GAP installation. Hope this helps Alexander From alexander.konovalov at gmail.com Tue May 6 17:28:41 2014 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Tue, 6 May 2014 17:28:41 +0100 Subject: [GAP Forum] Manual Proof of GAP Results on Generators of Factor Groups In-Reply-To: References: Message-ID: <1F86CF33-032F-42A9-A0A9-5D14EDCA3D5F@gmail.com> On 2 May 2014, at 16:18, Alexander Hulpke wrote: > > Dear Forum, dear Minhui Liu, > > On May 2, 2014, at 5/2/14 7:11, Minghui Liu wrote: > >> Dear GAP Forum, >> >> I am trying to find generators of a factor group. I have input dozens >> of generators and relations and when I use the command >> >> AbelianInvariants(F/relations); >> >> the result was something like >> >> 0, 0, 0, 0, 0, 0, 0, 2, 5. >> >> After finding that the image of some generator, say F.1*F.2^5*F.3^3 has >> order 5 in the quotient group F/relations, is there any way we can manually >> write a proof that the order of the image of F.1*F.2^5*F.3^3 is equal to 5, >> perhaps with the help of GAP? > > There also is a function `MaximalAbelianQuotient' that constructs a homomorphism G->G/G' which makes it easier to see what happens with particular elements of G. > > If you want a manual proof, the calculation is essentially (both in what GAP does and how the result can be interpreted) a Smith Normal Form on a matrix of abelianized relators. It may be a pain to do so, but at least in principle you could do this by hand and thus see what happens. > >> My point is, instead of writing "by calculation based on GAP, we have the >> order is equal to 5", it would be desirable to find a algebraic proof of > I don't think you would be able to do without some calculation or rewriting that in itself is not insightful, and when done by hand is prone to errors. > > You could hide the (computer) calculations, e.g. just state: > > The following map on the generators extends to a homomorphism from G to an abelian group (verify that the relators hold), and calculate the order of the image of your word in this abelian group. > > And then show an explicit rewriting, expressing the 5th power of your element as a word in conjugates of commutators. > > This would be a proper proof that could be followed by hand, but frankly one without giving any insight how on earth you found the homomorphism and the expression. OTOH, you may decide not to hide computer calculations, but publish them in one or another form, which may vary from journals where you may publish supplementary files with the code to virtual machines permitting to reproduce the complete setup for the experiment. See http://math.stackexchange.com/q/747432/ for more on this topic. Best wishes Alexander From ddupard at gmx.fr Fri May 2 09:03:47 2014 From: ddupard at gmx.fr (Daniel Dupard) Date: Fri, 02 May 2014 10:03:47 +0200 Subject: [GAP Forum] SmallGroup Library not founded Message-ID: <53635163.3040906@gmx.fr> Dear GAP forum, Working on a function to test isomorphism of non polycyclic groups and testing it on all SmallLibrary groups, I sometimes receive this sort of message (see below) For your information, I checked that I had id480.z file in /small/id2/ directory and sml480.z file in /small/small2/ directory both being readable Does anyone have any idea of what can I do to solve my problem ? Best wishes, Daniel Dupard Before rec( system_time := 1107, system_time_children := 0, user_time := 4181, user_time_children := 0 ) GAP(480,217)= A5 : C8 Permutation [ 1, 151, 424, 331, 234, 368, 212, 203, 10, 32, 119, 3, 36, 185, 364, 306, 17, 18, 241, 20, 175, 370, 209, 31, 52, 455, 451, 106, 146, 228, 450, 348, 237, 337, 25, 295, 176, 297, 375, 27, 384, 389, 21, 418, 126, 46, 47, 48, 184, 78, 94, 314, 28, 386, 102, 248, 470, 429, 444, 58, 61, 62, 458, 293, 399, 309, 252, 350, 34, 13, 246, 427, 243, 113, 172, 333, 408, 247, 29, 80, 14, 421, 217, 53, 45, 86, 121, 265, 89, 77, 41, 90, 255, 318, 258, 437, 453, 24, 457, 226, 84, 7, 346, 363, 256, 16, 11, 298, 109, 110, 128, 39, 382, 114, 88, 302, 360, 322, 131, 205, 349, 81, 393, 261, 125, 85, 127, 178, 273, 307, 232, 152, 224, 435, 371, 91, 198, 138, 266, 269, 173, 170, 108, 57, 430, 227, 168, 98, 474, 441, 101, 200, 153, 462, 230, 186, 213, 208, 134, 160, 54, 461, 396, 305, 190, 284, 410, 419, 169, 37, 272, 87, 335, 397, 123, 411, 303, 289, 423, 166, 148, 188, 182, 65, 277, 412, 187, 220, 33, 245, 285, 311, 193, 4, 342, 373, 238, 137, 446, 171, 93, 301, 40, 43, 469, 329, 105, 164, 201, 161, 59, 417, 480, 180, 145, 280, 414, 218, 219, 475, 221, 44, 358, 222, 225, 100, 191, 132, 139, 319, 425, 388, 83, 271, 67, 328, 214, 477, 249, 359, 323, 378, 326, 447, 442, 133, 51, 401, 229, 174, 250, 112, 130, 244, 183, 207, 194, 35, 288, 312, 365, 60, 263, 264, 42, 2, 267, 251, 402, 23, 242, 460, 274, 394, 436, 278, 196, 116, 344, 141, 313, 282, 296, 117, 150, 276, 287, 79, 155, 197, 372, 292, 206, 467, 395, 283, 92, 351, 6, 300, 202, 236, 82, 391, 413, 286, 50, 376, 73, 64, 471, 259, 270, 260, 315, 316, 357, 369, 8, 320, 321, 426, 144, 324, 325, 479, 167, 156, 49, 118, 262, 332, 76, 334, 149, 299, 210, 338, 339, 340, 472, 195, 343, 291, 345, 122, 147, 352, 374, 355, 19, 142, 12, 162, 381, 367, 317, 70, 240, 290, 361, 74, 404, 15, 30, 366, 63, 38, 456, 379, 135, 449, 154, 294, 215, 97, 438, 275, 387, 464, 380, 390, 434, 165, 385, 26, 268, 445, 463, 465, 56, 392, 428, 143, 211, 448, 336, 398, 253, 159, 406, 9, 158, 107, 405, 68, 468, 231, 409, 327, 473, 179, 310, 140, 415, 416, 104, 407, 341, 400, 233, 422, 71, 199, 136, 69, 204, 111, 124, 72, 431, 432, 433, 257, 103, 235, 163, 377, 439, 440, 157, 181, 443, 383, 354, 99, 55, 216, 22, 75, 308, 452, 362, 454, 304, 279, 347, 330, 466, 129, 115, 66, 192, 5, 254, 459, 120, 356, 281, 177, 353, 239, 96, 189, 223, 476, 420, 478, 95, 403 ] The Cayley Table before permutation is isomorphic to the Cayley Table after permutation After rec( system_time := 1107, system_time_children := 0, user_time := 249605883, user_time_children := 0 ) Before rec( system_time := 1107, system_time_children := 0, user_time := 249605883, user_time_children := 0 ) Error, the library file 'id480.z' must exist and be readable called from READ_IDLIB_FUNCS[i]( Concatenation( str2, ".", str3 ) ); called from ReadSmallLib( "id", inforec.lib, size, indices{[ 2 .. Length( indices ) ]} ); called from ID_GROUP_FUNCS[inforec.func]( G, inforec ) called from IdGroup( H ) called from IsomorphismGroups( G, GL( npes[1], npes[2] ^ npes[3] ) ) called from ... at line 179 of C:\Users\papa\Desktop\MesProgrammes\IsomorphismForNonPolycyclic.Txt you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> From arashrafi at kashanu.ac.ir Sat May 10 16:24:12 2014 From: arashrafi at kashanu.ac.ir (arashrafi at kashanu.ac.ir) Date: Sat, 10 May 2014 19:54:12 +0430 (IRDT) Subject: [GAP Forum] G = O^+_8(2), H = 3^D_4(2) and K = 2^F_4(2)^\prime In-Reply-To: <30583632.8699.1399389017444.JavaMail.root@mail.kashanu.ac.ir> Message-ID: <21477597.2617.1399735452395.JavaMail.root@mail.kashanu.ac.ir> Dear Forum, Suppose G = O^+_8(2), H = 3^D_4(2) and K = 2^F_4(2)^\prime. I need to the element orders and their multiplicity for these groups. Unfortunately, I could not obtain this information from GAP. Any comments will be highly appreciated. Regards, Alireza From alavi.s.hassan at gmail.com Sun May 11 07:16:29 2014 From: alavi.s.hassan at gmail.com (Seyed Hassan Alavi) Date: Sun, 11 May 2014 10:46:29 +0430 Subject: [GAP Forum] G = O^+_8(2), H = 3^D_4(2) and K = 2^F_4(2)^\prime In-Reply-To: <21477597.2617.1399735452395.JavaMail.root@mail.kashanu.ac.ir> References: <21477597.2617.1399735452395.JavaMail.root@mail.kashanu.ac.ir> Message-ID: <536F15BD.3070703@gmail.com> Hello Alireza This might help: gap> AtlasClassNames( CharacterTable( "O8+(2)" ) ); [ "1A", "2A", "2B", "2C", "2D", "2E", "3A", "3B", "3C", "3D", "3E", "4A", "4B", "4C", "4D", "4E", "4F", "5A", "5B", "5C", "6A", "6B", "6C", "6D", "6E", "6F", "6G", "6H", "6I", "6J", "6K", "6L", "6M", "6N", "7A", "8A", "8B", "9A", "9B", "9C", "10A", "10B", "10C", "12A", "12B", "12C", "12D", "12E", "12F", "12G", "15A", "15B", "15C" ] gap> AtlasClassNames( CharacterTable( "3D4(2)" ) ); [ "1A", "2A", "2B", "3A", "3B", "4A", "4B", "4C", "6A", "6B", "7A", "7B", "7C", "7D", "8A", "8B", "9A", "9B", "9C", "12A", "13A", "13B", "13C", "14A", "14B", "14C", "18A", "18B", "18C", "21A", "21B", "21C", "28A", "28B", "28C" ] gap> AtlasClassNames( CharacterTable( "2F4(2)'" ) ); [ "1A", "2A", "2B", "3A", "4A", "4B", "4C", "5A", "6A", "8A", "8B", "8C", "8D", "10A", "12A", "12B", "13A", "13B", "16A", "16B", "16C", "16D" ] Wishes, Hassan. Seyed Hassan Alavi (Assistant Professor) Department of Mathematics, Faculty of Science, Bu-Ali Sina University, Hamedan, Iran. Tel: +98 811 8381604 ext: 153 Fax: +98 811 8370987 http://profs.basu.ac.ir/alavihassan/index.php?L=en On 5/10/2014 7:54 PM, arashrafi at kashanu.ac.ir wrote: > Dear Forum, > > Suppose G = O^+_8(2), H = 3^D_4(2) and K = 2^F_4(2)^\prime. I need to > the element orders and their multiplicity for these groups. > Unfortunately, I could not obtain this information from GAP. Any > comments will be highly appreciated. > > Regards, Alireza > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From frank.luebeck at math.rwth-aachen.de Sun May 11 09:05:27 2014 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Sun, 11 May 2014 10:05:27 +0200 Subject: [GAP Forum] G = O^+_8(2), H = 3^D_4(2) and K = 2^F_4(2)^\prime In-Reply-To: <21477597.2617.1399735452395.JavaMail.root@mail.kashanu.ac.ir> References: <30583632.8699.1399389017444.JavaMail.root@mail.kashanu.ac.ir> <21477597.2617.1399735452395.JavaMail.root@mail.kashanu.ac.ir> Message-ID: <20140511080527.GA15998@alkor.math.rwth-aachen.de> On Sat, May 10, 2014 at 07:54:12PM +0430, arashrafi at kashanu.ac.ir wrote: > Suppose G = O^+_8(2), H = 3^D_4(2) and K = 2^F_4(2)^\prime. I need to > the element orders and their multiplicity for these groups. > Unfortunately, I could not obtain this information from GAP. Any > comments will be highly appreciated. > > Regards, Alireza Dear Alireza, dear Forum, This information is contained in the character tables which are available with GAP: gap> t := CharacterTable("O8+(2)"); CharacterTable( "O8+(2)" ) gap> # i-th entry is order of elements in i-th class: gap> OrdersClassRepresentatives(t); [ 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 8, 8, 9, 9, 9, 10, 10, 10, 12, 12, 12, 12, 12, 12, 12, 15, 15, 15 ] gap> # i-th entry is number of elements in i-th class: gap> SizesConjugacyClasses(t); [ 1, 1575, 3780, 3780, 3780, 56700, 2240, 2240, 2240, 89600, 268800, 37800, 340200, 907200, 907200, 907200, 2721600, 580608, 580608, 580608, 100800, 100800, 100800, 604800, 604800, 604800, 806400, 806400, 806400, 806400, 2419200, 2419200, 2419200, 7257600, 24883200, 5443200, 5443200, 6451200, 6451200, 6451200, 8709120, 8709120, 8709120, 1209600, 1209600, 1209600, 4838400, 7257600, 7257600, 7257600, 11612160, 11612160, 11612160 ] So, for example, there are 3*11612160 elements of order 15 in O8+(2). The other two cases you get with t := CharacterTable("3D4(2)"); t := CharacterTable("2F4(2)'"); Best regards, Frank -- /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, \\\ 52062 Aachen, Germany /// E-mail: Frank.Luebeck at Math.RWTH-Aachen.De \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ From moritz.schmitt at gmail.com Thu May 15 09:14:08 2014 From: moritz.schmitt at gmail.com (Moritz Schmitt) Date: Thu, 15 May 2014 10:14:08 +0200 Subject: [GAP Forum] Computing number of isomorphism classes of finite group Message-ID: Dear GAP community, Given a finite group in GAP, how do I compute the number of isomorphism classes of subgroups of this group? I wasn't able to find a function that does it for me. What I could do, I guess, is to compute representatives of the conjugacy classes of subgroups of the group and then check all representatives pairwise for isomorphism. But would that be the GAP way to do it? Any help is greatly appreciated. Best, Moritz From max at quendi.de Fri May 16 12:36:17 2014 From: max at quendi.de (Max Horn) Date: Fri, 16 May 2014 13:36:17 +0200 Subject: [GAP Forum] Computing number of isomorphism classes of finite group In-Reply-To: References: Message-ID: Dear Moritz, On 15.05.2014, at 10:14, Moritz Schmitt wrote: > Dear GAP community, > > Given a finite group in GAP, how do I compute the number of > isomorphism classes of subgroups of this group? > > I wasn't able to find a function that does it for me. What I could do, > I guess, is to compute representatives of the conjugacy classes of > subgroups of the group and then check all representatives pairwise for > isomorphism. But would that be the GAP way to do it? I'd say "yes, that's how you do it". Though you can and should refine the last step using group invariants, as actually testing for isomorphism can be quite slow. Many group invariants can be euseful, e.g. the size of the groups, whether they are solvable or not, abelian invariants, fitting subgroup, etc. And for "small" subgroups, using IdGroup might actually be the best way to split them into separate classes. To illustrate this with an example: gap> G:=GL(3,4); GL(3,4) gap> Size(G); 181440 gap> cc:=ConjugacyClassesSubgroups(G);; ap> Length(cc); 282 gap> ccR:=List(cc,Representative);; gap> Collected(List(ccR,Size)); [ [ 1, 1 ], [ 2, 1 ], [ 3, 5 ], [ 4, 4 ], [ 5, 1 ], [ 6, 5 ], [ 7, 1 ], [ 8, 5 ], [ 9, 6 ], [ 10, 1 ], [ 12, 20 ], [ 15, 4 ], [ 16, 7 ], [ 18, 5 ], [ 21, 2 ], [ 24, 16 ], [ 27, 3 ], [ 30, 4 ], [ 32, 3 ], [ 36, 15 ], [ 45, 1 ], [ 48, 29 ], [ 54, 2 ], [ 60, 3 ], [ 63, 4 ], [ 64, 1 ], [ 72, 5 ], [ 80, 2 ], [ 81, 1 ], [ 90, 1 ], [ 96, 11 ], [ 108, 2 ], [ 144, 20 ], [ 160, 2 ], [ 162, 1 ], [ 168, 1 ], [ 180, 6 ], [ 189, 1 ], [ 192, 13 ], [ 216, 1 ], [ 240, 8 ], [ 288, 10 ], [ 432, 2 ], [ 480, 8 ], [ 504, 1 ], [ 540, 1 ], [ 576, 13 ], [ 648, 1 ], [ 720, 2 ], [ 864, 2 ], [ 960, 2 ], [ 1080, 1 ], [ 1440, 2 ], [ 1728, 1 ], [ 2880, 8 ], [ 8640, 2 ], [ 60480, 1 ], [ 181440, 1 ] ] # There are 270 conjugacy classes of subgroups of order < 2000: gap> Number(ccR,g->Size(g)<2000); 270 # But these amount to only 109 isomorphism classes gap> Length(Set(Filtered(ccR,g->Size(g)<2000),IdGroup)); 109 # This leaves 12 classes of groups of order >= 2000: gap> Number(ccR,g->Size(g)>=2000); 12 # The two subgroups of order 8640 are isomorphic gap> c8640:=Filtered(ccR,g->Size(g)=8640);; gap> IsomorphismGroups(c8640[1],c8640[2]) <> fail; true; # The eight subgroups of order 2880 split into (at least) two isomorphism classes: gap> List(c2880,g->IdGroup(FittingSubgroup(g))); [ [ 48, 52 ], [ 16, 14 ], [ 16, 14 ], [ 16, 14 ], [ 16, 14 ], [ 16, 14 ], [ 16, 14 ], [ 48, 52 ] ] # Indeed, groups 1 and 8 are isomorphic, as are 2..7: gap> IsomorphismGroups(c2880[1],c2880[8]) <> fail; true gap> ForAll([3..7], i->IsomorphismGroups(c2880[2],c2880[i]) <> fail); true # So in total, we have 109 isomorphism classes of subgroups of order <2000, # and 2+1+1=4 of order >=2000, for a total of 113. Hope that helps, Max From moritz.schmitt at gmail.com Mon May 19 10:04:16 2014 From: moritz.schmitt at gmail.com (Moritz Schmitt) Date: Mon, 19 May 2014 11:04:16 +0200 Subject: [GAP Forum] Computing number of isomorphism classes of finite group In-Reply-To: References: Message-ID: Dear Max, Thanks for your very helpful reply! I was able to compute the number of isomorphism classes for quite a number of groups that I am interested in. The only thing that didn't work so far was to calculate the number of conjugacy classes of subgroups of the Coxeter group B_6 (which is isomorphic to O(6) \cap GL(6,Z)). I get the following error: +--------------------------------------------------------------------+ | Sage Version 5.11, Release Date: 2013-08-13 | | Type "notebook()" for the browser-based notebook interface. | | Type "help()" for help. | +--------------------------------------------------------------------+ sage: gap_console() ????????? GAP, Version 4.6.4 of 04-May-2013 (free software, GPL) ? GAP ? http://www.gap-system.org ????????? Architecture: x86_64-unknown-linux-gnu-gcc-default64 Libs used: gmp, readline Loading the library and packages ... Components: trans 1.0, prim 2.1, small* 1.0, id* 1.0 Packages: Alnuth 3.0.0, AutPGrp 1.5, CTblLib 1.2.2, FactInt 1.5.3, GAPDoc 1.5.1, LAGUNA 3.6.3, Polycyclic 2.11, TomLib 1.2.2 Try '?help' for help. See also '?copyright' and '?authors' gap> G := WreathProduct(CyclicGroup(2), SymmetricGroup(6)); gap> cc := ConjugacyClassesSubgroups(G);; Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `GroupByGenerators' on 2 arguments called from GroupByGenerators( arg[1], arg[2] ) called from Group( SmallGeneratingSet( stb ), () ) called from VectorspaceComplementOrbitsLattice( n, a, ser[i - 1], nts[j] ) called from LatticeSubgroups( G ) called from ( ) called from read-eval loop at line 2 of *stdin* you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> Is this a bug? Or is GAP trying to say "too complicated, cannot do it"? Please let me know if I should provide further debugging information. Best, Moritz 2014-05-16 13:36 GMT+02:00 Max Horn : > Dear Moritz, > > On 15.05.2014, at 10:14, Moritz Schmitt wrote: > >> Dear GAP community, >> >> Given a finite group in GAP, how do I compute the number of >> isomorphism classes of subgroups of this group? >> >> I wasn't able to find a function that does it for me. What I could do, >> I guess, is to compute representatives of the conjugacy classes of >> subgroups of the group and then check all representatives pairwise for >> isomorphism. But would that be the GAP way to do it? > > I'd say "yes, that's how you do it". Though you can and should refine the last step using group invariants, as actually testing for isomorphism can be quite slow. Many group invariants can be euseful, e.g. the size of the groups, whether they are solvable or not, abelian invariants, fitting subgroup, etc. And for "small" subgroups, using IdGroup might actually be the best way to split them into separate classes. > > To illustrate this with an example: > > gap> G:=GL(3,4); > GL(3,4) > gap> Size(G); > 181440 > gap> cc:=ConjugacyClassesSubgroups(G);; > ap> Length(cc); > 282 > gap> ccR:=List(cc,Representative);; > gap> Collected(List(ccR,Size)); > [ [ 1, 1 ], [ 2, 1 ], [ 3, 5 ], [ 4, 4 ], [ 5, 1 ], [ 6, 5 ], [ 7, 1 ], > [ 8, 5 ], [ 9, 6 ], [ 10, 1 ], [ 12, 20 ], [ 15, 4 ], [ 16, 7 ], > [ 18, 5 ], [ 21, 2 ], [ 24, 16 ], [ 27, 3 ], [ 30, 4 ], [ 32, 3 ], > [ 36, 15 ], [ 45, 1 ], [ 48, 29 ], [ 54, 2 ], [ 60, 3 ], [ 63, 4 ], > [ 64, 1 ], [ 72, 5 ], [ 80, 2 ], [ 81, 1 ], [ 90, 1 ], [ 96, 11 ], > [ 108, 2 ], [ 144, 20 ], [ 160, 2 ], [ 162, 1 ], [ 168, 1 ], [ 180, 6 ], > [ 189, 1 ], [ 192, 13 ], [ 216, 1 ], [ 240, 8 ], [ 288, 10 ], > [ 432, 2 ], [ 480, 8 ], [ 504, 1 ], [ 540, 1 ], [ 576, 13 ], [ 648, 1 ], > [ 720, 2 ], [ 864, 2 ], [ 960, 2 ], [ 1080, 1 ], [ 1440, 2 ], > [ 1728, 1 ], [ 2880, 8 ], [ 8640, 2 ], [ 60480, 1 ], [ 181440, 1 ] ] > > # There are 270 conjugacy classes of subgroups of order < 2000: > gap> Number(ccR,g->Size(g)<2000); > 270 > > # But these amount to only 109 isomorphism classes > gap> Length(Set(Filtered(ccR,g->Size(g)<2000),IdGroup)); > 109 > > # This leaves 12 classes of groups of order >= 2000: > gap> Number(ccR,g->Size(g)>=2000); > 12 > > # The two subgroups of order 8640 are isomorphic > gap> c8640:=Filtered(ccR,g->Size(g)=8640);; > gap> IsomorphismGroups(c8640[1],c8640[2]) <> fail; > true; > > # The eight subgroups of order 2880 split into (at least) two isomorphism classes: > gap> List(c2880,g->IdGroup(FittingSubgroup(g))); > [ [ 48, 52 ], [ 16, 14 ], [ 16, 14 ], [ 16, 14 ], [ 16, 14 ], [ 16, 14 ], > [ 16, 14 ], [ 48, 52 ] ] > > # Indeed, groups 1 and 8 are isomorphic, as are 2..7: > gap> IsomorphismGroups(c2880[1],c2880[8]) <> fail; > true > gap> ForAll([3..7], i->IsomorphismGroups(c2880[2],c2880[i]) <> fail); > true > > # So in total, we have 109 isomorphism classes of subgroups of order <2000, > # and 2+1+1=4 of order >=2000, for a total of 113. > > > Hope that helps, > Max From hulpke at math.colostate.edu Mon May 19 16:11:57 2014 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Mon, 19 May 2014 09:11:57 -0600 Subject: [GAP Forum] Computing number of isomorphism classes of finite group In-Reply-To: References: Message-ID: <68F9A9BE-885B-4DE3-A11D-3994FAEFBEEB@math.colostate.edu> Dear Moritz Schmidt, > I was able to compute the number of isomorphism classes for quite a > number of groups that I am interested in. The only thing that didn't > work so far was to calculate the number of conjugacy classes of > subgroups of the Coxeter group B_6 (which is isomorphic to O(6) \cap > GL(6,Z)). I get the following error: > gap> G := WreathProduct(CyclicGroup(2), SymmetricGroup(6)); > > gap> cc := ConjugacyClassesSubgroups(G);; > Is this a bug? Or is GAP trying to say "too complicated, cannot do it"? Yes, it is a (very insubstantial) bug which I will fix. However what triggers it is the way your group G is represented -- this also makes the overall calculation much slower -- namely as an abstract wreath product. gap> G.1; WreathProductElement(f1, of ..., of ..., of ..., of ..., of ...,()) The reason for this is that `CyclicGroup(2)' produces a PC group by default. If you instead force a permutation group: gap> G := WreathProduct(CyclicGroup(IsPermGroup,2), SymmetricGroup(6)); The calculation should go fine. (about 40 sec. on my system, 7440 classes) Regards, Alexander Hulpke From caj21 at st-andrews.ac.uk Wed May 21 11:32:25 2014 From: caj21 at st-andrews.ac.uk (Christopher Jefferson) Date: Wed, 21 May 2014 10:32:25 +0000 Subject: [GAP Forum] PhD in Computational Group Theory Message-ID: Hello, I am currently advertising a funded PhD place in Computer Science at the University of St Andrews, to start this September: http://blogs.cs.st-andrews.ac.uk/csblog/2014/05/06/funded-phd-research-studentship-in-constraint-programming/ I am currently working on new algorithms for many fundamental algorithms (intersection, stabiliser, centraliser and normaliser among others) on permutation groups in GAP, and I am very interested to hear from any students interested on working on any search algorithms for computational group or semigroup theory. Please feel to e-mail me (off list) with any questions about this position. Thank you, Chris Jefferson University of St Andrews From s_yousefi68 at yahoo.com Wed May 21 14:35:07 2014 From: s_yousefi68 at yahoo.com (sima yousefi) Date: Wed, 21 May 2014 06:35:07 -0700 (PDT) Subject: [GAP Forum] Automorphism group Message-ID: <1400679307.6427.YahooMailNeo@web163602.mail.gq1.yahoo.com> Dear Pubbers, I am a MSc student working on group theory. Let G be a group and G^\prime \in {PSL(2,7) \times PSL(2,7), PSL(2,8) \times PSL(2,8), A5\times A5, A6\times A6}, where G^\prime denote the derived subgroup of G. We also define?A?= Aut(G^\prime). I need to the all subgroups of?index?4?,?9?,?4 and 16?in A, when?? G^\prime =?PSL(2,7) \times PSL(2,7) or PSL(2,8) \times PSL(2,8) or A5\times A5 or A6\times A6,?respectively. All the best, Sima??? Ms. Sima Yousefi Department of Pure Mathematics, Faculty of Mathematical Sciences University of Kashan Kashan, I R Iran From s_yousefi68 at yahoo.com Wed May 21 14:37:34 2014 From: s_yousefi68 at yahoo.com (sima yousefi) Date: Wed, 21 May 2014 06:37:34 -0700 (PDT) Subject: [GAP Forum] Fw: Automorphism group In-Reply-To: <1400679307.6427.YahooMailNeo@web163602.mail.gq1.yahoo.com> References: <1400679307.6427.YahooMailNeo@web163602.mail.gq1.yahoo.com> Message-ID: <1400679454.53144.YahooMailNeo@web163601.mail.gq1.yahoo.com> On Wednesday, May 21, 2014 6:05 PM, sima yousefi wrote: Dear Pubbers, I am a MSc student working on group theory. Let G be a group and G^\prime \in {PSL(2,7) \times PSL(2,7), PSL(2,8) \times PSL(2,8), A5\times A5, A6\times A6}, where G^\prime denote the derived subgroup of G. We also define?A?= Aut(G^\prime). I need to the all subgroups of?index?4?,?9?,?4 and 16?in A, when?? G^\prime =?PSL(2,7) \times PSL(2,7) or PSL(2,8) \times PSL(2,8) or A5\times A5 or A6\times A6,?respectively. All the best, Sima??? Ms. Sima Yousefi Department of Pure Mathematics, Faculty of Mathematical Sciences University of Kashan Kashan, I R Iran From benjamin.sambale at gmail.com Thu May 22 08:10:02 2014 From: benjamin.sambale at gmail.com (Benjamin Sambale) Date: Thu, 22 May 2014 09:10:02 +0200 Subject: [GAP Forum] Bug in HallSubgroup? Message-ID: <537DA2CA.9090704@gmail.com> Dear GAP people, I'm using GAP 4.7.4 on arch linux 64 bit. Let G:=AtlasGroup("M22.2"); S:=SylowSubgroup(G,7); N:=Normalizer(G,S); Size(N); # =42 Then the command HallSubgroup(N,[2,3]); works *sometimes*, but other times I get "Error, depths are not compatible with parent pcgs". Apparently, this is related to the initialization of G. Try: for i in [1..10] do Print(i,"\n"); G:=AtlasGroup("M22.2"); S:=SylowSubgroup(G,7); N:=Normalizer(G,S); HallSubgroup(N,[2,3]); od; Best wishes, Benjamin From hulpke at fastmail.fm Thu May 22 17:52:01 2014 From: hulpke at fastmail.fm (Alexander Hulpke) Date: Thu, 22 May 2014 10:52:01 -0600 Subject: [GAP Forum] Bug in HallSubgroup? In-Reply-To: <537DA2CA.9090704@gmail.com> References: <537DA2CA.9090704@gmail.com> Message-ID: <6ADF8F6B-7D34-43B5-87C8-7AE5678E5F28@fastmail.fm> Dear Forum, On May 22, 2014, at 5/22/14 1:10, Benjamin Sambale wrote: > Then the command HallSubgroup(N,[2,3]); works *sometimes*, but other times I get "Error, depths are not compatible with parent pcgs". Thank you for reporting this bug (which cannot give wrong results, just errors), it will be fixed in the next release. Alexander Hulpke From s.mazhar at newcastle.ac.uk Fri May 23 17:55:23 2014 From: s.mazhar at newcastle.ac.uk (Siddiqua Mazhar) Date: Fri, 23 May 2014 16:55:23 +0000 Subject: [GAP Forum] Find Sequences of Free Vertices. Message-ID: <81e00647bd604e39a9b4ea1c25e5ad55@AM3PR07MB324.eurprd07.prod.outlook.com> Dear Sir/Madam, Could you please assist to find a program for this permutation Let x and y be a finite permutation representation, x:=((6,10,12,14,9)(4,7,11,13,8)); y:=((1,3,6,9,5,2,4)(8,13,14,10,11,7,12)); I want to find the sequence C here from these permutations, C=[(1,3),(5,2),(1),(3),(5),(2)]; because 1 and 3 are fixed under x permutation and they are in y cylce next to each other, similarly, 5 and 2 are fixed under x and in y cycle they are next to each other moreover all of its subsequences. Many thanks. Regards Siddiqua. From alexander.konovalov at gmail.com Mon May 26 10:28:07 2014 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Mon, 26 May 2014 10:28:07 +0100 Subject: [GAP Forum] GAP and Mathematica special commands In-Reply-To: References: Message-ID: Dear Muhammad, The supplementary code for the book is actually available from the CRC Press website: http://www.crcpress.com/product/isbn/9781420094527 HTH Alexander On 17 Mar 2014, at 14:05, muhammad shah wrote: > Dear GAP forum, > I am having the book "Abstract Algebra An Interactive Approach" by William Paulsen > but I do not have the gap and mathematica special commands written for > it. Kindly, can anyone send those to me. I need them badly. Thanks beforehand. > > > Cheers, > > Muhammad Shah > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From shahmaths_problem at hotmail.com Mon May 26 16:19:31 2014 From: shahmaths_problem at hotmail.com (muhammad shah) Date: Mon, 26 May 2014 20:19:31 +0500 Subject: [GAP Forum] GAP and Mathematica special commands In-Reply-To: References: , Message-ID: Dear Alexander, I am really thankful to you for solving my problem. I appreciate you for keeping my question in your mind for so long. Cheers, Muhammad Shah > Subject: Re: [GAP Forum] GAP and Mathematica special commands > From: alexander.konovalov at gmail.com > Date: Mon, 26 May 2014 10:28:07 +0100 > CC: forum at gap-system.org > To: shahmaths_problem at hotmail.com > > Dear Muhammad, > > The supplementary code for the book is actually available from the CRC Press website: > > http://www.crcpress.com/product/isbn/9781420094527 > > HTH > Alexander > > > On 17 Mar 2014, at 14:05, muhammad shah wrote: > > > Dear GAP forum, > > I am having the book "Abstract Algebra An Interactive Approach" by William Paulsen > > but I do not have the gap and mathematica special commands written for > > it. Kindly, can anyone send those to me. I need them badly. Thanks beforehand. > > > > > > Cheers, > > > > Muhammad Shah > > _______________________________________________ > > Forum mailing list > > Forum at mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > From aueelis at gmail.com Tue May 27 11:56:54 2014 From: aueelis at gmail.com (Au Eelis) Date: Tue, 27 May 2014 12:56:54 +0200 Subject: [GAP Forum] Character Tables of Double Groups Message-ID: Dear Forum, my current field of work is the analysis of electronic band structures, which were calculated with spin-orbit coupling. To analyse such band structures, you need the double space groups and their character tables, to get information about the irreducible representations which transform like the corresponding bands. Unfortunately, I have difficulties, to get character tables, which correspond to the literature. An easy example would be the character table of the double group of C3v. In literature you find this character table very often and it looks like this: | E | 2C_3 | 3s_v | -E | -2C_3 | -3s_v | -------+-------+-------+-------+-------+-------+-------+ A_1 | 1 | 1 | 1 | 1 | 1 | 1 | A_2 | 1 | 1 | -1 | 1 | 1 | -1 | E | 2 | -1 | 0 | 2 | -1 | 0 | E_1/2 | 2 | 1 | 0 | -2 | -1 | 0 | 1E_3/2 | 1 | -1 | i | -1 | 1 | -i | 2E_3/2 | 1 | -1 | -i | -1 | 1 | i | Now I wanted to reproduce this character table with gap. At first, I create this group with gap using the threefold rotation around z and the reflection at the x-axis as generators (in representation U(2)): gap> rep:=[ > [[1/2, -Sqrt(-3)/2],[-Sqrt(-3)/2, 1/2]], > [[1, 0],[0, -1]] > ]; gap> h:=Group(rep); gap> Display(CharacterTable(h)); 2 2 2 1 2 1 2 3 1 . 1 . 1 1 1a 2a 3a 2b 6a 2c X.1 1 1 1 1 1 1 X.2 1 -1 1 -1 1 1 X.3 1 1 1 -1 -1 -1 X.4 1 -1 1 1 -1 -1 X.5 2 . -1 . 1 -2 X.6 2 . -1 . -1 2 As I'm not really familiar with gap, I don't know, how to extract the names of the irreducible representations and classes in this table, but I can see that X.1 -> A_1 X.2 -> A_2 X.5 -> E_1/2 X.6 -> E 1a -> E 2c -> -E 3a -> -2C_3 6a -> 2C_3 The big problem can be seen in the irreducible representations X.3/X.4 (or 1E_3/2 and 2E_3/2), where the literature predicts complex characters, while GAP shows non-complex values. At the moment, I don't know, where to look for the problem. My possible thoughts are: wrong generators, problem with the algorithms in GAP or wrong literature... Does anyone know, what's wrong here? Best regards, Stefan From dmitrii.pasechnik at cs.ox.ac.uk Tue May 27 13:09:18 2014 From: dmitrii.pasechnik at cs.ox.ac.uk (Dmitrii Pasechnik) Date: Tue, 27 May 2014 13:09:18 +0100 Subject: [GAP Forum] Character Tables of Double Groups In-Reply-To: References: Message-ID: <20140527120918.GA20592@cs.ox.ac.uk> On Tue, May 27, 2014 at 12:56:54PM +0200, Au Eelis wrote: > my current field of work is the analysis of electronic band structures, > which were calculated with spin-orbit coupling. To analyse such band > structures, you need the double space groups and their character tables, to > get information about the irreducible representations which transform like > the corresponding bands. > > Unfortunately, I have difficulties, to get character tables, which > correspond to the literature. An easy example would be the character table > of the double group of C3v. In literature you find this character table > very often and it looks like this: > > | E | 2C_3 | 3s_v | -E | -2C_3 | -3s_v | > -------+-------+-------+-------+-------+-------+-------+ > A_1 | 1 | 1 | 1 | 1 | 1 | 1 | > A_2 | 1 | 1 | -1 | 1 | 1 | -1 | > E | 2 | -1 | 0 | 2 | -1 | 0 | > E_1/2 | 2 | 1 | 0 | -2 | -1 | 0 | > 1E_3/2 | 1 | -1 | i | -1 | 1 | -i | > 2E_3/2 | 1 | -1 | -i | -1 | 1 | i | > > Now I wanted to reproduce this character table with gap. At first, I create > this group with gap using the threefold rotation around z and the > reflection at the x-axis as generators (in representation U(2)): > > gap> rep:=[ > > [[1/2, -Sqrt(-3)/2],[-Sqrt(-3)/2, 1/2]], > > [[1, 0],[0, -1]] > > ]; > gap> h:=Group(rep); > gap> Display(CharacterTable(h)); > > 2 2 2 1 2 1 2 > 3 1 . 1 . 1 1 > > 1a 2a 3a 2b 6a 2c > > X.1 1 1 1 1 1 1 > X.2 1 -1 1 -1 1 1 > X.3 1 1 1 -1 -1 -1 > X.4 1 -1 1 1 -1 -1 > X.5 2 . -1 . 1 -2 > X.6 2 . -1 . -1 2 [...] > The big problem can be seen in the irreducible representations X.3/X.4 (or > 1E_3/2 and 2E_3/2), where the literature predicts complex characters, while > GAP shows non-complex values. You constructed above a different group. The group you constructed is isomorphic to the dihedral group of order 12, i.e. the group of symmetries of the 6-gon. But the table you gave is from a different group of order 12, which does have cyclic Sylow 2-subgroups. We can browse the character tables of the 5 order 12 groups in GAP, as follows: for k in [1..5] do Display(CharacterTable(SmallGroup(12,k))); od; The group with the character table as you gave above is the one for k=1. It can be constructed as a matrix group as as follows: gg:=Group([ [ [ 0, -1 ], [ 1, 0 ] ], [ [ -1, 0 ], [ 0, -1 ] ], [ [ E(3), 0 ], [ 0, E(3)^2 ] ]]); Now we look at its character table (in GAP): gap> Display(CharacterTable(gg)); CT15 2 2 2 2 2 1 1 3 1 . . 1 1 1 1a 4a 4b 2a 6a 3a X.1 1 1 1 1 1 1 X.2 1 -1 -1 1 1 1 X.3 1 A -A -1 -1 1 X.4 1 -A A -1 -1 1 X.5 2 . . -2 1 -1 X.6 2 . . 2 -1 -1 A = -E(4) = -Sqrt(-1) = -i > > At the moment, I don't know, where to look for the problem. My possible > thoughts are: wrong generators, problem with the algorithms in GAP or wrong > literature... wrong generators in your case... HTH, Dmitrii From Jaco.Versfeld at wits.ac.za Tue May 27 15:39:08 2014 From: Jaco.Versfeld at wits.ac.za (Jaco Versfeld) Date: Tue, 27 May 2014 14:39:08 +0000 Subject: [GAP Forum] Piping data to a decoder in GAP Message-ID: Good day, I have a strange request - I am running bit error rate simulations in Matlab, but would like to compare my results to the list decoder of Sudan (implemented in the Guava package). Would it be possible to format my data from Matlab, and "pipe" it to GAP, on a per codeword basis? Also, I am actually interested in soft-decision decoding of RS codes, therefor I will be using modified multiplicity matrices, as per Koetter and Vardy's paper. Would it be possible to feed the list decoder with a modified multiplicity matrix? Kind Regards, Jaco _______________________________ Jaco Versfeld (D.Ing) Senior lecturer Centre for Telecommunications Access and Services School of Electrical and Information Engineering University of the Witwatersrand Johannesburg Tel: +27-11-717-7212 Email: jaco.versfeld at wits.ac.za web: http://school.eie.wits.ac.za/~versfeld
This communication is intended for the addressee only. It is confidential. If you have received this communication in error, please notify us immediately and destroy the original message. You may not copy or disseminate this communication without the permission of the University. Only authorised signatories are competent to enter into agreements on behalf of the University and recipients are thus advised that the content of this message may not be legally binding on the University and may contain the personal views and opinions of the author, which are not necessarily the views and opinions of The University of the Witwatersrand, Johannesburg. All agreements between the University and outsiders are subject to South African Law unless the University agrees in writing to the contrary.
From alexk at mcs.st-andrews.ac.uk Tue May 27 16:00:38 2014 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Tue, 27 May 2014 16:00:38 +0100 Subject: [GAP Forum] Piping data to a decoder in GAP In-Reply-To: References: Message-ID: Dear Jaco, I can't comment on Guava's functionality, but assuming that, say, you can do what you want in Guava by copying and pasting, and your question is about automation of the calculation and getting the result back into Matlab, then the answer is likely yes, using pipes or SCSCP protocol. Please see http://www.gap-system.org/Faq/faq.html#8.1. Specifically, since Matlab now includes MuPAD, you can use MuPAD OpenMath package to communicate with the GAP SCSCP server, see http://mupad.symcomp.org/ Hope this helps Alexander On 27 May 2014, at 15:39, Jaco Versfeld wrote: > Good day, > > I have a strange request - I am running bit error rate simulations in Matlab, but would like to compare my results to the list decoder of Sudan (implemented in the Guava package). Would it be possible to format my data from Matlab, and "pipe" it to GAP, on a per codeword basis? > > Also, I am actually interested in soft-decision decoding of RS codes, therefor I will be using modified multiplicity matrices, as per Koetter and Vardy's paper. Would it be possible to feed the list decoder with a modified multiplicity matrix? > > Kind Regards, > Jaco > > > _______________________________ > Jaco Versfeld (D.Ing) > Senior lecturer > Centre for Telecommunications Access and Services > School of Electrical and Information Engineering > University of the Witwatersrand > Johannesburg > > Tel: +27-11-717-7212 > Email: jaco.versfeld at wits.ac.za > web: http://school.eie.wits.ac.za/~versfeld > > > > > >
This communication is intended for the addressee only. It is confidential. If you have received this communication in error, please notify us immediately and destroy the original message. You may not copy or disseminate this communication without the permission of the University. Only authorised signatories are competent to enter into agreements on behalf of the University and recipients are thus advised that the content of this message may not be legally binding on the University and may contain the personal views and opinions of the author, which are not necessarily the views and opinions of The University of the Witwatersrand, Johannesburg. All agreements between the University and outsiders are subject to South African Law unless the University agrees in writing to the contrary.
> _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From dmitrii.pasechnik at cs.ox.ac.uk Tue May 27 16:24:27 2014 From: dmitrii.pasechnik at cs.ox.ac.uk (Dmitrii Pasechnik) Date: Tue, 27 May 2014 16:24:27 +0100 Subject: [GAP Forum] Piping data to a decoder in GAP In-Reply-To: References: Message-ID: <20140527152427.GA25386@cs.ox.ac.uk> On Tue, May 27, 2014 at 02:39:08PM +0000, Jaco Versfeld wrote: > I have a strange request - I am running bit error rate simulations in > Matlab, but would like to compare my results to the list decoder of > Sudan (implemented in the Guava package). Would it be possible to > format my data from Matlab, and "pipe" it to GAP, on a per codeword > basis? you might also use Sage (i.e. http://www.sagemath.org), which has both Matlab and GAP interfaces (from Python). See e.g. http://www.sagemath.org/doc/reference/interfaces/sage/interfaces/matlab.html and http://www.sagemath.org/doc/reference/interfaces/sage/interfaces/gap.html Note that also a lot of GAP's Guava functionality is already wrapped into proper Python classes. http://www.sagemath.org/doc/reference/coding/index.html HTH, Dima From alexk at mcs.st-andrews.ac.uk Wed May 28 10:29:29 2014 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Wed, 28 May 2014 10:29:29 +0100 Subject: [GAP Forum] GAP 4.7.5 release announcement Message-ID: <803CAC79-C79B-4578-9F01-AB8E367B3C8E@mcs.st-andrews.ac.uk> Dear GAP Forum, This is to announce the release of GAP 4.7.5. You can download GAP 4.7.5 from http://www.gap-system.org/Releases/ The GAP installer for Windows and the BOB installer for Linux and OS X listed at http://www.gap-system.org/Download/#alternatives are now providing GAP 4.7.5 as well. The overview of changes in GAP 4.7.5 versus GAP 4.7.4 is given below. Fixed bugs which could lead to incorrect results: * InstallValue cannot handle immediate values, characters or booleans for technical reasons. A check for such values was introduced to trigger an error message and prevent incorrect results caused by this. [Reported by Sebastian Gutsche] * KnowsDictionary and LookupDictionary methods for IsListLookupDictionary were using PositionFirstComponent; the latter is only valid on sorted lists, but in IsListLookupDictionary the underlying list is NOT sorted in general, leading to bogus results. Other fixed bugs: * A bug in DirectProductElementsFamily which used CanEasilyCompareElements instead of CanEasilySortElements. * Fixed wrong Infolevel message that caused a break loop for some automorphism group computations. * Fixed an error that sometimes caused a break loop in HallSubgroup. [Reported by Benjamin Sambale] * Fixed a rare error in computation of conjugacy classes of a finite group by homomorphic images, providing fallback to a default algorithm. * Fixed an error in the calculation of Frattini subgroup in the case of the trivial radical. * Several minor bugs were fixed in the documentation, kernel, and library code for transformations. * Fixed errors in NumberPerfectGroups and NumberPerfectLibraryGroups not being aware that there are no perfect groups of odd order. * Restored the ability to build GAP on OS X 10.4 and 10.5 which was accidentally broken in the previous GAP release by using the build option not supported by these versions. * Fixed some problems for ia64 and sparc architectures. [Reported by Bill Allombert and Volker Braun] In addition to the improved functionality and fixed bugs in the core GAP system, a new package "permut" by A.Ballester-Bolinches, E.Cosme-Ll?pez, and R.Esteban-Romero to deal with permutability in finite groups has been accepted by the GAP Council and added for the redistribution, and another 19 packages have been updated: Package name | Version | Date ----------------------+-------------+----------- AutoDoc | 2014.03.27 | 27/03/2014 Browse | 1.8.5 | 20/02/2014 cvec | 2.5.1 | 04/04/2014 Float | 0.5.18 | 27/01/2014 genss | 1.6.1 | 04/04/2014 GradedModules | 2014.02.25 | 25/02/2014 GradedRingForHomalg | 2014.02.04 | 04/02/2014 homalg | 2014.04.07 | 07/04/2014 IO | 4.3.1 | 04/04/2014 MatricesForHomalg | 2014.04.08 | 08/04/2014 nq | 2.5.1 | 02/04/2014 orb | 4.7.1 | 04/04/2014 permut | 1.01 | 15/04/2014 Polenta | 1.3.2 | 01/04/2014 RadiRoot | 2.7 | 09/04/2014 recog | 1.2.2 | 04/04/2014 recogbase | 1.2.2 | 04/04/2014 Semigroups | 2.0 | 17/04/2014 Smallsemi | 0.6.8 | 24/02/2014 ToolsForHomalg | 2014.04.10 | 10/04/2014 We encourage all users to upgrade to GAP 4.7.5. If you need any help or would like to report any problems, please do not hesitate to contact us at support at gap-system.org. Wishing you fun and success using GAP, The GAP Group From robert.wolstenholme08 at imperial.ac.uk Thu May 29 10:03:44 2014 From: robert.wolstenholme08 at imperial.ac.uk (Wolstenholme, Robert) Date: Thu, 29 May 2014 09:03:44 +0000 Subject: [GAP Forum] Isomorphism Classes of a Graph Message-ID: <5252654327565F489A4402B674A4F6AD9B3ECEC9@icexch-m1.ic.ac.uk> Is there a function in GAP/Grape that will return all isomorphism classes of a graph with N vertices (i.e. a single element from each class)? The function GraphIsomorphismRepresentatives (http://www.maths.qmul.ac.uk/~leonard/grape/manual/CHAP008.htm#SECT005) looks to be a candidate but it seems I may be having to input a very large list to get my desired result. I can see a potential inductive type method where if we know all isomorphism classes with k edges in total we only have to consider additional edges added to the graphs representing these classes to find the isomorphism classes with k+1 edges in total. Has anyone seen anything that has already been coded. Thanks From stefan at mcs.st-and.ac.uk Thu May 29 10:16:50 2014 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Thu, 29 May 2014 10:16:50 +0100 (BST) Subject: [GAP Forum] Isomorphism Classes of a Graph In-Reply-To: <5252654327565F489A4402B674A4F6AD9B3ECEC9@icexch-m1.ic.ac.uk> References: <5252654327565F489A4402B674A4F6AD9B3ECEC9@icexch-m1.ic.ac.uk> Message-ID: On Thu, May 29, 2014 10:03 am, Wolstenholme, Robert wrote: > Is there a function in GAP/Grape that will return all isomorphism classes of a graph > with N vertices (i.e. a single element from each class)? Is this what you are looking for?: http://www.gap-system.org/DevelopersPages/StefanKohl/gap-exercises/chap2.html#X8783A105786126E6 Hope this helps, Stefan Kohl From s.mazhar at newcastle.ac.uk Mon May 26 12:31:32 2014 From: s.mazhar at newcastle.ac.uk (Siddiqua Mazhar) Date: Mon, 26 May 2014 11:31:32 +0000 Subject: [GAP Forum] Free Vertices Message-ID: <18687a02ed9e440f9185cc36c2a3553c@AM3PR07MB324.eurprd07.prod.outlook.com> Dear Sir/Madam, Let x and y be a finite permutation representation, x:=((6,10,12,14,9)(4,7,11,13,8)); y:=((1,3,6,9,5,2,4)(8,13,14,10,11,7,12)); I want to find the sequence C here from these permutations as, C=[(1,3),(5,2)]; Here C are free vertices that means the points that are fixed under x and moved for y and are consecutive to each other. Let say 1 is fixed for x and 1^y=3 and then 3 is again fixed for x so we will add it in sequence c that i used in program c:=[j] and again 3^y=6 but 6 is not fixed for x so the loop will terminate. further I want to check other moved points of y that are free for x. Here 5 is fixed for x and moved for y, i.e. 5^y=2 and 2^x=2 so C will be C:=[5,2] because 2^y=4 and (4^x)<>4. so here 5 and 2 are consective points and 1 and 3 are consecutive points. this is what I have written in my previous email that 1 and 3 are fixed under x permutation and they are in y cylce next to each other, similarly, 5 and 2 are fixed under x and in y cycle they are next to each other moreover all of its subsequences. For this I tried this program in GAP that gives me only C:=[5,2] ,indeed i want to calculate other value [1,3] by doing the same program. The program I made as follows FindSequenceOfFreeVertices:=function(x,y) local j,c,next; for j in MovedPoints(y) do if j^x=j then c:=[j]; next:=j^y; while next^x=next do Add(c,next); next:=next^y; od; fi; od; Print("sequence of Free Vertices =",c,"\n"); end; I hope this program will be easier for you to understand my question. Thanks From dmitrii.pasechnik at cs.ox.ac.uk Thu May 29 12:53:17 2014 From: dmitrii.pasechnik at cs.ox.ac.uk (Dima Pasechnik) Date: Thu, 29 May 2014 12:53:17 +0100 Subject: [GAP Forum] Isomorphism Classes of a Graph In-Reply-To: <5252654327565F489A4402B674A4F6AD9B3ECEC9@icexch-m1.ic.ac.uk> References: <5252654327565F489A4402B674A4F6AD9B3ECEC9@icexch-m1.ic.ac.uk> Message-ID: <20140529115317.GA58274@nash.eduroam.oxuni.org.uk> On Thu, May 29, 2014 at 09:03:44AM +0000, Wolstenholme, Robert wrote: > Is there a function in GAP/Grape that will return all isomorphism > classes of a graph with N vertices (i.e. a single element from each > class)? > > The function GraphIsomorphismRepresentatives > (http://www.maths.qmul.ac.uk/~leonard/grape/manual/CHAP008.htm#SECT005) > looks to be a candidate but it seems I may be having to input a very > large list to get my desired result. > > I can see a potential inductive type method where if we know all > isomorphism classes with k edges in total we only have to consider > additional edges added to the graphs representing these classes to > find the isomorphism classes with k+1 edges in total. Has anyone > seen anything that has already been coded. If you don't mind using C programs (included within Grape, although not really interfaced with GAP) you can use geng, a C program which is a part of nauty by B.McKay. The advantage is that it is much faster than anything coded in GAP langauge for this purpose. It should not be too hard to import the output of geng into GAP/Grape. There are also ready to use databases of isomorphism classes of graphs on small number of vertices available, e.g. in Sage: http://sagemath.org/doc/reference/graphs/sage/graphs/graph_database.html HTH, Dmitrii From alexk at mcs.st-andrews.ac.uk Thu May 29 13:03:58 2014 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Thu, 29 May 2014 13:03:58 +0100 Subject: [GAP Forum] Free Vertices In-Reply-To: <18687a02ed9e440f9185cc36c2a3553c@AM3PR07MB324.eurprd07.prod.outlook.com> References: <18687a02ed9e440f9185cc36c2a3553c@AM3PR07MB324.eurprd07.prod.outlook.com> Message-ID: On 26 May 2014, at 12:31, Siddiqua Mazhar wrote: > Dear Sir/Madam, > > Let x and y be a finite permutation representation, > > x:=((6,10,12,14,9)(4,7,11,13,8)); > > y:=((1,3,6,9,5,2,4)(8,13,14,10,11,7,12)); > > I want to find the sequence C here from these permutations as, > > C=[(1,3),(5,2)]; > > Here C are free vertices that means the points that are fixed under x and moved for y and are consecutive to each other. Let say 1 is fixed for x and 1^y=3 and then 3 is again fixed for x so we will add it in sequence c that i used in program c:=[j] and again 3^y=6 but 6 is not fixed for x so the loop will terminate. further I want to check other moved points of y that are free for x. Here 5 is fixed for x and moved for y, i.e. 5^y=2 and 2^x=2 so C will be C:=[5,2] because 2^y=4 and (4^x)<>4. > > so here 5 and 2 are consective points and 1 and 3 are consecutive points. > > this is what I have written in my previous email that 1 and 3 are fixed under x permutation and they are in y cylce next to each other, similarly, 5 and 2 are fixed under x and in y cycle they are next to each other moreover all of its subsequences. > > For this I tried this program in GAP that gives me only C:=[5,2] ,indeed i want to calculate other value [1,3] by doing the same program. > > The program I made as follows > > FindSequenceOfFreeVertices:=function(x,y) > local j,c,next; > > for j in MovedPoints(y) do > if j^x=j then > c:=[j]; > next:=j^y; > > > > while next^x=next do > Add(c,next); > next:=next^y; > od; > fi; > od; > > > Print("sequence of Free Vertices =",c,"\n"); > end; > > I hope this program will be easier for you to understand my question. Thanks Perhaps the problem is that the list 'c' is created inside the 'for' loop, so only its last value will be printed? HTH Alexander From gesf02 at gmail.com Fri May 30 02:34:25 2014 From: gesf02 at gmail.com (Shao-Feng Ge) Date: Fri, 30 May 2014 10:34:25 +0900 (JST) Subject: [GAP Forum] find group with explicit representations of its generators Message-ID: Dear GAP users, I come to a situation that I have the explicit 3x3 real matrix representations of all generators and can prove that they span a finite group. But I don't know the name of this group and its overall structures. Is there any simple way or sample GAP code that I can use for this purpose? I'm a total new comer to GAP which seems to be the right tool that I need. Thanks! Shao-Feng From kntrichy at gmail.com Mon Jun 2 18:24:57 2014 From: kntrichy at gmail.com (Kannappan Sampath) Date: Mon, 2 Jun 2014 22:54:57 +0530 Subject: [GAP Forum] A Stack Exchange Site for Sage Message-ID: Hello GAP Users: I proposed a Stack Exchange site for Sage. GAP being shipped with Sage, all questions about GAP will be on-topic for this site. Please go and follow it; add example questions and vote up (down) questions that you think should be on-topic (resp. off-topic) for the upcoming site. http://area51.stackexchange.com/proposals/70511/sage?referrer=8adE6ec0VyqQCyB1kFgF7g2 Looking forward to your support and cooperation for the success of this adventure on Stack Exchange. PS. At the moment, while there is a GAP Support mailing list, searchability and linking dupes are all quite difficult. I think a Stackexchange site can ease this. While a stackexchange site will not replace this mailing list, we could encourage more focussed questions be asked on the StackExchange site thus creating a searchable database of questions and answers for further use. With Sincere Regards, Kannappan. From jaraujo at ptmat.fc.ul.pt Mon Jun 2 13:54:58 2014 From: jaraujo at ptmat.fc.ul.pt (Joao Araujo) Date: Mon, 2 Jun 2014 13:54:58 +0100 Subject: [GAP Forum] Conference in Computational Algebra Message-ID: *** Apologies if you receive multiple copies of this message *** WORKSHOP ON COMPUTATIONAL ALGEBRA 2014 21-23 JULY 2014 CENTRO DE ?LGEBRA DA UNIVERSIDADE DE LISBOA, PORTUGAL https://sites.google.com/site/compalg2014/ SUMMARY The aim of this workshop is to deepen the existing interactions between abstract algebra, symbolic computation and automated reasoning, and to contribute to their strengthening. The conference will be organized by the Centro de ?lgebra da Universidade de Lisboa (CAUL), with the participation of Faculdade de Ci?ncias da UL, Faculdade de Ci?ncias e Tecnologia da UNL and Universidade Aberta. INVITED SPEAKERS Alan Cain (New University of Lisbon, Portugal) Peter Cameron (University of St. Andrews, UK) Catarina Carvalho (University of Hertfordshire, UK) Timothy Gowers (University of Cambridge, UK) *** Michael Kinyon (University of Denver, USA) James D. Mitchell (University of Andrews, UK) Pedro Silva (University of Porto, Portugal) Mikhail Volkov (Ural Federal University, Russia) *** To be confirmed ORGANIZING COMMITTEE Gracinda Gomes, CAUL, DM-FCUL Jo?o Ara?jo, CAUL, Universidade Aberta Ant?nio Malheiro, CAUL, FCT-UNL. PROGRAM The planned program includes 50 minutes lectures by the invited speakers and 20 minutes contributed talks by the participants. REGISTRATION If you wish to participate in the workshop, please fill in the Registration Form . To present a communication, select that option in the form and send a title and an abstract to ca2014 at fc.ul.pt before the 1st of July. The registration fee is 35 euros. After finalizing your registration, proceed to payment. See the conditions on the website. For logistic reasons, the number of participants is limited, so please do register as soon as possible. TRAVEL INFORMATION We recommend to everyone coming from abroad flying to Lisbon's airport. Travel information, including information on accommodation, will be available on the conference website. From benjamin.sambale at gmail.com Thu Jun 5 09:07:46 2014 From: benjamin.sambale at gmail.com (Benjamin Sambale) Date: Thu, 05 Jun 2014 10:07:46 +0200 Subject: [GAP Forum] compiling float Message-ID: <53902552.3050704@gmail.com> Dear Forum, I just installed GAP 4.7.5. Usually, I compile some of the packages as well. However, this time I am unable to compile the "float-0.5.18" package. Apparently, it does not contain a "configure" file anymore (in contrast to version 0.5.17), but the readme refers to such a file. Is this supposed to be so? Best, Benjamin From alexk at mcs.st-andrews.ac.uk Thu Jun 5 10:01:06 2014 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Thu, 5 Jun 2014 10:01:06 +0100 Subject: [GAP Forum] compiling float In-Reply-To: <53902552.3050704@gmail.com> References: <53902552.3050704@gmail.com> Message-ID: Dear Benjamin, Thank you for reporting this - just to not while this will be investigated, that one could find individual archives of previous releases of GAP packages at the GAP ftp servers, for example, at ftp://ftp.gap-system.org/pub/gap/gap47/tar.gz/packages/ Best regards Alexander On 5 Jun 2014, at 09:07, Benjamin Sambale wrote: > Dear Forum, > > I just installed GAP 4.7.5. Usually, I compile some of the packages as well. However, this time I am unable to compile the "float-0.5.18" package. Apparently, it does not contain a "configure" file anymore (in contrast to version 0.5.17), but the readme refers to such a file. Is this supposed to be so? > > Best, > Benjamin > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From alice.niemeyer at uwa.edu.au Thu Jun 5 12:40:28 2014 From: alice.niemeyer at uwa.edu.au (Alice Niemeyer) Date: Thu, 05 Jun 2014 19:40:28 +0800 Subject: [GAP Forum] PERMUT package Message-ID: <5390572C.6060508@uwa.edu.au> Dear GAP Forum, it is my pleasure to announce that the PERMUT package has been accepted officially as a GAP package. The package has been written by Adolfo Ballester-Bolinches, Enric Cosme-Llopez and Ramon Esteban-Romero. The PERMUT package provides methods related to testing permutability in groups. In particular, the package allows to test related properties for subgroups specified by properties and provides functionality to test whether a group embeds into certain families of groups. The current version 1.01 of the package is distributed with the latest official GAP distribution 4.7.5, released on 28.5.2014. Please see http://gap-system.org/Packages/permut.html for more information on this GAP package. Best wishes, Alice Niemeyer From timmer at usc.edu Fri Jun 6 19:41:56 2014 From: timmer at usc.edu (Joseph Timmer) Date: Fri, 6 Jun 2014 11:41:56 -0700 Subject: [GAP Forum] Computational speed of irreducible characters Message-ID: Dear GAP forum, My question is about how GAP computes irreducible characters and if there are specific methods to use that will speed up computations. The groups are permutation groups and I give GAP a list of generators. I then need to know the irreducible characters of these groups. The groups are typically one of two types: (1) Small (order is less than 2000) and not a power of 2 (2) Small index inside Alternating or Symmetric Groups, so usually themselves are symmetric or alternating With these considerations, are there any "tricks" to speed up computations? Would it be faster to try and "identify" the group first, using StructureDescription (as the small index groups have very nice descriptions) for example, and then using group libraries? Thank you for any advice or feedback I may receive. Best, Joseph Timmer University of Southern California From marek at mitros.org Thu Jun 12 11:58:47 2014 From: marek at mitros.org (Marek Mitros) Date: Thu, 12 Jun 2014 12:58:47 +0200 Subject: [GAP Forum] Fusion of Conjugacy Classes Message-ID: Dear Forum, Can anyone comment on following problem with fusion of 6th maximal subgroup of Baby Monster group ? gap> bt:=CharacterTable("B"); CharacterTable( "B" ) gap> b6t:=CharacterTable("BM6"); CharacterTable( "(2^2xF4(2)):2" ) gap> fu:=FusionConjugacyClasses(b6t,bt); fail Fusion for remaining 29 maximal subgroups of B can be obtained. E.g. b7t:=CharacterTable("BM6"); FusionConjugacyClasses(b7t,bt); works fine. I am using GAP 4.7.4 on Windows 7. Regards, Marek Mitros From sam at Math.RWTH-Aachen.De Thu Jun 12 12:55:11 2014 From: sam at Math.RWTH-Aachen.De (Thomas Breuer) Date: Thu, 12 Jun 2014 13:55:11 +0200 Subject: [GAP Forum] Fusion of Conjugacy Classes In-Reply-To: References: Message-ID: <20140612115511.GA2742@gemma.math.rwth-aachen.de> Dear Forum, Marek Mitros wrote: > Can anyone comment on following problem with fusion of 6th maximal subgroup > of Baby Monster group ? > > gap> bt:=CharacterTable("B"); > CharacterTable( "B" ) > gap> b6t:=CharacterTable("BM6"); > CharacterTable( "(2^2xF4(2)):2" ) > gap> fu:=FusionConjugacyClasses(b6t,bt); > fail > > Fusion for remaining 29 maximal subgroups of B can be obtained. E.g. > b7t:=CharacterTable("BM6"); FusionConjugacyClasses(b7t,bt); > > works fine. I am using GAP 4.7.4 on Windows 7. The class fusions for the other 29 maximal subgroups are stored on the character tables, but this one is not. The reason why one fusion is missing is simply that I do not know it; the necessary conditions leave several nonequivalent possibilities. Up to now, all questions which I had about this maximal subgroup of the Baby Monster have been be answered by checking the possible fusions. Thus determining the fusion had low priority. All the best, Thomas From kurt.ewald at balbec.de Fri Jun 20 18:58:33 2014 From: kurt.ewald at balbec.de (Kurt Ewald) Date: Fri, 20 Jun 2014 19:58:33 +0200 Subject: [GAP Forum] Frobenius Groups Message-ID: <003901cf8cb1$40de1530$c29a3f90$@ewald@balbec.de> Hallo, does exist a Frobenius Group, which is neither Dihedral nor the Symmetricgroup(3) ) Best Regards Kurt Ewald From hebert.perez at gmail.com Sun Jun 22 13:22:21 2014 From: hebert.perez at gmail.com (=?UTF-8?B?SGViZXJ0IFDDqXJlei1Sb3PDqXM=?=) Date: Sun, 22 Jun 2014 14:22:21 +0200 Subject: [GAP Forum] Migrating from GAP 3 to GAP 4 Message-ID: Dear all, I have some old programs written in GAP 3, which I would like to translate into GAP 4. The programs work with finitely presented groups, or rather, with words on some abstract generators. For example, I have a program that encodes a presentation of the alternating group A_5: a:=AbstractGenerator("a"); b:=AbstractGenerator("b"); c:=AbstractGenerator("c"); Gens:=[a,b,c]; Rels:= [[a^3, IdWord], [b^2, IdWord], [c^2, IdWord], [b*a*b, a^2*b*a^2], [b*a^2*b, a*b*a], [c*a, a^2*c], [c*b*c, b*c*b], [c*b*a*c, b*c*b*a^2], [c*b*a^2*c, b*c*b*a]]; Obviously, GAP 4 does not recognize the function AbstractGenerator, nor the variable IdWord. I can solve the problem of the generators, but I still have the problem of the identity word. Is there any equivalent of IdWord in GAP 4? More generally, what would be the best way to translate all this into GAP 4? By the way, is it possible to run GAP 3 on Windows 7? Thank you very much in advance, and best regards. Hebert P?rez-Ros?s University of Lleida, Spain From hulpke at me.com Sun Jun 22 15:46:03 2014 From: hulpke at me.com (Alexander Hulpke) Date: Sun, 22 Jun 2014 08:46:03 -0600 Subject: [GAP Forum] Migrating from GAP 3 to GAP 4 In-Reply-To: References: Message-ID: <57350112-8C3A-46A7-B463-80A5C865410C@me.com> Dear Forum, On Jun 22, 2014, at 6:22 AM, Hebert P?rez-Ros?s wrote: > Dear all, > > I have some old programs written in GAP 3, which I would like to translate > into GAP 4. The programs work with finitely presented groups, or rather, > with words on some abstract generators. For example, I have a program that > encodes a presentation of the alternating group A_5: > > a:=AbstractGenerator("a"); > b:=AbstractGenerator("b"); > c:=AbstractGenerator("c"); > > Gens:=[a,b,c]; In GAP4 you would first create a free group: F:=FreeGroup("a","b","c"); and then get the generators as a:=F.1;b:=F.2;c:=F.3; or (quicker) call AssignGeneratorVariables(F); if you set IdWord:= One(F); your existing `Rels' assignment will work. Regards, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From hebert.perez at gmail.com Sun Jun 22 18:43:03 2014 From: hebert.perez at gmail.com (=?UTF-8?B?SGViZXJ0IFDDqXJlei1Sb3PDqXM=?=) Date: Sun, 22 Jun 2014 19:43:03 +0200 Subject: [GAP Forum] Migrating from GAP 3 to GAP 4 In-Reply-To: <57350112-8C3A-46A7-B463-80A5C865410C@me.com> References: <57350112-8C3A-46A7-B463-80A5C865410C@me.com> Message-ID: Thanks a lot. 2014-06-22 16:46 GMT+02:00 Alexander Hulpke : > Dear Forum, > > On Jun 22, 2014, at 6:22 AM, Hebert P?rez-Ros?s > wrote: > > Dear all, > > I have some old programs written in GAP 3, which I would like to translate > into GAP 4. The programs work with finitely presented groups, or rather, > with words on some abstract generators. For example, I have a program that > encodes a presentation of the alternating group A_5: > > a:=AbstractGenerator("a"); > b:=AbstractGenerator("b"); > c:=AbstractGenerator("c"); > > Gens:=[a,b,c]; > > > In GAP4 you would first create a free group: > > F:=FreeGroup("a","b","c"); > and then get the generators as > a:=F.1;b:=F.2;c:=F.3; > or (quicker) call > AssignGeneratorVariables(F); > if you set > IdWord:= One(F); > > your existing `Rels' assignment will work. > > Regards, > > Alexander Hulpke > > -- Colorado State University, Department of Mathematics, > Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA > email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 > http://www.math.colostate.edu/~hulpke > > > From s.mazhar at newcastle.ac.uk Sat Jun 21 19:19:16 2014 From: s.mazhar at newcastle.ac.uk (Siddiqua Mazhar) Date: Sat, 21 Jun 2014 18:19:16 +0000 Subject: [GAP Forum] Find Intersection of Sequence Message-ID: <54a4d061f33e42ceac48ffb7dbed8963@AM3PR07MB324.eurprd07.prod.outlook.com> Dear Sir/Madam, If we have a list like [[2,1],[5,2,1],[6,5,2,1],[9,10]] and I want to find the result in the form of [6,5,2,1].[9,10] and want to delete all those list that are contatined in the other. How may I progrme this I do like let FV:= [[2,1],[5,2,1],[6,5,2,1],[9,10]]; Intersection:=function(FV) local A,B,a; for A in FV do for B in FV do if Intersection(A,B)=B then a:=Position(FV,B); Unbind(FV[a]); fi; od; od; return FV; end; However, this program gives me empty list. Could you please guide me in this program. Thanks Regards Siddiqua From sam at Math.RWTH-Aachen.De Sun Jun 22 21:03:28 2014 From: sam at Math.RWTH-Aachen.De (Thomas Breuer) Date: Sun, 22 Jun 2014 22:03:28 +0200 Subject: [GAP Forum] Find Intersection of Sequence In-Reply-To: <54a4d061f33e42ceac48ffb7dbed8963@AM3PR07MB324.eurprd07.prod.outlook.com> References: <54a4d061f33e42ceac48ffb7dbed8963@AM3PR07MB324.eurprd07.prod.outlook.com> Message-ID: <20140622200328.GA16303@gemma.math.rwth-aachen.de> Dear Forum, Siddiqua Mazhar wrote: > If we have a list like [[2,1],[5,2,1],[6,5,2,1],[9,10]] and I want to find the result in the form of [6,5,2,1].[9,10] and want to delete all those list that are contatined in the other. How may I progrme this > > I do like let FV:= [[2,1],[5,2,1],[6,5,2,1],[9,10]]; > > Intersection:=function(FV) > local A,B,a; > for A in FV do > for B in FV do > if Intersection(A,B)=B then > a:=Position(FV,B); > Unbind(FV[a]); > fi; > od; > od; > > return FV; > end; > > However, this program gives me empty list. Could you please guide me in this program. The first problem is that the function should not be called 'Intersection'; note that this would overwrite the GAP function with this name, and then one would not be able to call this function inside. In fact, trying to read the above code into GAP would cause an error message because GAP's 'Intersection' is write protected. The second problem is that GAP's 'Intersection', when called with two lists, returns the *sorted* list of all those elements that appear in these two lists. Therefore, the condition 'Intersection( A, B ) = B' is *not* satisfied if 'B' is not sorted, even if all entries of 'B' appear in 'A'. (In particular, it is not true that the above function will return the empty list when it is called with the above list 'FV'.) The third problem is that if the condition would be replaced for example by 'Intersection( A, B ) = Set( B )' then the return value would really be an empty list, because the two for loops compare among others the intersection of 'A' and 'A' with 'Set( A )', and then 'A' gets kicked out from the list. (Perhaps the fourth problem is that the argument FV gets changed in place, which is probably not intended. If this behaviour is intended then there is no need to return a result.) All the best, Thomas From e.obrien at auckland.ac.nz Mon Jun 23 05:35:15 2014 From: e.obrien at auckland.ac.nz (Eamonn O'Brien) Date: Mon, 23 Jun 2014 16:35:15 +1200 Subject: [GAP Forum] Kalman Visiting Fellowship in Mathematics at the University of Auckland Message-ID: <53A7AE83.6080505@auckland.ac.nz> Dear Colleagues: I would be grateful if you can draw the attention of your colleagues to a new prestigious Visiting Fellowship available in mathematics at the University of Auckland. The purpose of the Kalman Visiting Fellowship is to enable a ?rising star? in mathematics and its applications to visit the University of Auckland and to participate in the intellectual life of the University. The Fellowship is for a person within 10 years of PhD. It is worth NZ$10,000, and can be spent on travel, accommodation, or other associated expenses. To apply, send the following to eadeansoffice at sfac.auckland.ac.nz: * a one page proposal of the research to be carried out; * a letter of invitation from your proposed host in the Department of Mathematics or other department at the University; * a CV (including qualifications, appointments, awards and publications); * the names and contact details of two potential referees. The closing date for applications is 5 September 2014. Informal enquiries may be addressed to Full details of the Fellowship can be found at http://www.science.auckland.ac.nz/en/about/notices/notices-2014/2014/06/kalman-visting-fellowship.html Best wishes. Eamonn O'Brien From dmitrii.pasechnik at cs.ox.ac.uk Thu Jun 26 10:52:55 2014 From: dmitrii.pasechnik at cs.ox.ac.uk (Dima Pasechnik) Date: Thu, 26 Jun 2014 10:52:55 +0100 Subject: [GAP Forum] a GAP-readable table of the primitive finite subgroups of GL(n, C), for n small? Message-ID: <20140626095255.GA88099@nash> Dear all, has onyone compiled such a list, which would incorporate the classically known lists due to Blichfeldt for n=4 (with corrections), etc? (in particular the case n=4 is a bit questionable, as there were repeated publications of incomplete lists in this case). Thanks, Dima PS. an irreducible representation of a finite group is called primitive if it is not induced from a representation of a subgroup. From pjc at mcs.st-and.ac.uk Thu Jun 26 12:41:23 2014 From: pjc at mcs.st-and.ac.uk (pjc at mcs.st-and.ac.uk) Date: Thu, 26 Jun 2014 12:41:23 +0100 (BST) Subject: [GAP Forum] a GAP-readable table of the primitive finite subgroups of GL(n, C), for n small? In-Reply-To: <20140626095255.GA88099@nash> References: <20140626095255.GA88099@nash> Message-ID: It may be worse than you thought. I just got this from Martin Roeteller: |Dear Peter, | |I was wrong in three ways: first of all it was not about the |classification of crystallographic groups, it was about the |finite subgroups of SU(n). And the dimension was not as |large as n=20, it was as small as n=3 (!!). And the |original classification was not due to Kneser, as I |thought, but was due to Blichfeldt. | |The paper is Ludl, "Comments on the classification of the |finite subgroups of SU(3)", J Phys A Math Theory 44:255204, |2011. Also on the arxiv at http://arxiv.org/abs/1101.2308 |and http://arxiv.org/abs/1310.3746. Apparently he found |missing subgroups, the smallest one being a split extension |of order 162. | |Best, |Martin > Dear all, > > has onyone compiled such a list, which would incorporate the > classically known lists due to Blichfeldt for n=4 (with corrections), > etc? > (in particular the case n=4 is a bit questionable, as there were > repeated publications of incomplete lists in this case). > > Thanks, > Dima > > PS. an irreducible representation of a finite group is called > primitive if it is not induced from a representation of a subgroup. > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From dmitrii.pasechnik at cs.ox.ac.uk Thu Jun 26 13:23:33 2014 From: dmitrii.pasechnik at cs.ox.ac.uk (Dima Pasechnik) Date: Thu, 26 Jun 2014 13:23:33 +0100 Subject: [GAP Forum] a GAP-readable table of the primitive finite subgroups of GL(n, C), for n small? In-Reply-To: References: <20140626095255.GA88099@nash> Message-ID: <20140626122333.GA88374@nash> On Thu, Jun 26, 2014 at 12:41:23PM +0100, pjc at mcs.st-and.ac.uk wrote: > It may be worse than you thought. I just got this from Martin Roeteller: > > |Dear Peter, > | > |I was wrong in three ways: first of all it was not about the > |classification of crystallographic groups, it was about the > |finite subgroups of SU(n). And the dimension was not as > |large as n=20, it was as small as n=3 (!!). And the > |original classification was not due to Kneser, as I > |thought, but was due to Blichfeldt. This seems to be a different story, as SU (rather than GU) adds complications, and as it's not restricted to primitive linear groups... > | > |The paper is Ludl, "Comments on the classification of the > |finite subgroups of SU(3)", J Phys A Math Theory 44:255204, > |2011. Also on the arxiv at http://arxiv.org/abs/1101.2308 > |and http://arxiv.org/abs/1310.3746. Apparently he found > |missing subgroups, the smallest one being a split extension > |of order 162. > | > |Best, > |Martin > > > > Dear all, > > > > has onyone compiled such a list, which would incorporate the > > classically known lists due to Blichfeldt for n=4 (with corrections), > > etc? > > (in particular the case n=4 is a bit questionable, as there were > > repeated publications of incomplete lists in this case). > > > > Thanks, > > Dima > > > > PS. an irreducible representation of a finite group is called > > primitive if it is not induced from a representation of a subgroup. From pabourdi at laas.fr Thu Jun 26 18:10:42 2014 From: pabourdi at laas.fr (Pierre-Alain BOURDIL) Date: Thu, 26 Jun 2014 19:10:42 +0200 Subject: [GAP Forum] Question on action homomorphism Message-ID: <53AC5412.1030302@laas.fr> Hi, Suppose the following groups and ActionHomomorphisms : gap> G:=Group((1,2)); gap> H := Group((3,4)); gap> hom := ActionHomomorphism(G,[[1,3],[2,4]],OnSets); gap> hom2 := ActionHomomorphism(H,[[1,3],[2,4]],OnSets); Asking for Image(hom), i get : gap> Image(hom); Group([ (1,2) ]) But when i try Image(hom2), i get : gap> Image(hom2); Group([ () ]) I can't figure out why the image of hom2 is an empty group, i expect a S_2 group for both homomorphism. Is anyone here can explain this ? + -- Pierre-Alain BOURDIL pabourdi at laas.fr pierre-alain.bourdil at fr.thalesgroup.com From hulpke at math.colostate.edu Thu Jun 26 22:04:08 2014 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu, 26 Jun 2014 15:04:08 -0600 Subject: [GAP Forum] Question on action homomorphism In-Reply-To: <53AC5412.1030302@laas.fr> References: <53AC5412.1030302@laas.fr> Message-ID: <7C753866-5295-4862-AF05-E8D29F7D616F@math.colostate.edu> Dear Gap-Forum, On Jun 26, 2014, at 6/26/14 11:10, Pierre-Alain BOURDIL wrote: > Suppose the following groups and ActionHomomorphisms : > gap> G:=Group((1,2)); > > gap> H := Group((3,4)); > > gap> hom := ActionHomomorphism(G,[[1,3],[2,4]],OnSets); > > gap> hom2 := ActionHomomorphism(H,[[1,3],[2,4]],OnSets); Neither of these are action homomorphisms, as the domain is not closed under the group (e.g. [2,3] is not in). We will improve the sanity tests for future versions so that an error message will be given instead of a wrong result. Regards, Alexander Hulpke > > Asking for Image(hom), i get : > gap> Image(hom); > Group([ (1,2) ]) > > But when i try Image(hom2), i get : > gap> Image(hom2); > Group([ () ]) > > > I can't figure out why the image of hom2 is an empty group, i expect a S_2 group for both homomorphism. Is anyone here can explain this ? > > + > > -- > Pierre-Alain BOURDIL > pabourdi at laas.fr > pierre-alain.bourdil at fr.thalesgroup.com > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From jaijinenedra at yahoo.co.in Fri Jun 27 16:07:01 2014 From: jaijinenedra at yahoo.co.in (Vivek Jain) Date: Fri, 27 Jun 2014 23:07:01 +0800 Subject: [GAP Forum] Defining New operation from the given group operation Message-ID: <1403881621.85432.YahooMailNeo@web190102.mail.sg3.yahoo.com> Dear All, Suppose that $G$ is a free group of rank 3. For $a,b$ in? $G$, we define a word $w(a,b):=a^2b^3$. If for? $a,b$ in $G$, we define a new binary operation "o" as $aob:=w(a,b)$, then is it possible to check the associativity/identity/inverse/commutativity of the new operation using GAP? with regards Vivek ? =========================== Vivek Kumar Jain Central University of Bihar Patna, India From ABachle at vub.ac.be Tue Jul 1 08:44:46 2014 From: ABachle at vub.ac.be (=?UTF-8?Q?Andreas_B=C3=A4chle?=) Date: Tue, 01 Jul 2014 09:44:46 +0200 Subject: [GAP Forum] Comparing character tables in GAP Message-ID: Dear all, I want to check whether two character tables are "equal" (in the sense that their irreducible characters coincide and also the corresponding power maps match, of course, everything up to permutation). According to Thomas Breuer's answer from 2000 (http://www.gap-system.org/ForumArchive/Breuer.1/Thomas.1/Re__Comp.8/1.html) there is no built in function to compare character tables in GAP, but one has to do the checks manually. Is this still the case? What would be the best way to do it? In particular, I want to recognize, for example, the two character tables CharacterTable("A4") and CharacterTable(AlternatingGroup(4)) as "equal". As I want to use this in a function, I want to automatize it as far as possible. In case only the "heads" of the character tables are known and I want to avoid to calculate the irreducibles (as the groups might be very large and the calculations needed can be done with induced characters), there is probably no hope to see if two character tables are tables of the same group, except if the attribute "UnderlyingGroup" is stored for both tables? Any help is greatly appreciated. Best regards, Andreas B?chle From hulpke at fastmail.fm Tue Jul 1 16:36:06 2014 From: hulpke at fastmail.fm (Alexander Hulpke) Date: Tue, 1 Jul 2014 09:36:06 -0600 Subject: [GAP Forum] Comparing character tables in GAP In-Reply-To: References: Message-ID: <45D35ADD-26EB-4D7F-839C-6D9630C4961B@fastmail.fm> Dear Forum, On Jul 1, 2014, at 7/1/14 1:44, Andreas B?chle wrote: > > I want to check whether two character tables are "equal" (in the sense that their irreducible characters coincide and also the corresponding power maps match, of course, everything up to permutation). According to Thomas Breuer's answer from 2000 (http://www.gap-system.org/ForumArchive/Breuer.1/Thomas.1/Re__Comp.8/1.html) there is no built in function to compare character tables in GAP, I think this is a misunderstanding. The archived email says that the only way to test such equivalence is by an explicit search for permutations, there is no cheaper test that would only need to check some properties without possibly testing for permutations. > but one has to do the checks manually. Is this still the case? What would be the best way to do it? In particular, I want to recognize, for example, the two character tables CharacterTable("A4") and CharacterTable(AlternatingGroup(4)) as "equal". As I want to use this in a function, I want to automatize it as far as possible. gap> c1:=CharacterTable("A4"); CharacterTable( "a4" ) gap> c2:=CharacterTable(AlternatingGroup(4)); CharacterTable( Alt( [ 1 .. 4 ] ) ) gap> TransformingPermutationsCharacterTables(c1,c2); rec( columns := (), group := Group([ (3,4) ]), rows := (2,3) ) The result tells you that the classes are already in correspondence, but characters 2 and 3 were swapped. > > In case only the "heads" of the character tables are known and I want to avoid to calculate the irreducibles (as the groups might be very large and the calculations needed can be done with induced characters), there is probably no hope to see if two character tables are tables of the same group, except if the attribute "UnderlyingGroup" is stored for both tables? Since there are Brauer Pairs you will never be able to determine group isomorphism based on equivalence of the character tables (or do I misunderstand the question)? Best, Alexander Hulpke From ABachle at vub.ac.be Tue Jul 1 19:14:54 2014 From: ABachle at vub.ac.be (=?UTF-8?Q?Andreas_B=C3=A4chle?=) Date: Tue, 01 Jul 2014 20:14:54 +0200 Subject: [GAP Forum] Comparing character tables in GAP In-Reply-To: <45D35ADD-26EB-4D7F-839C-6D9630C4961B@fastmail.fm> References: <45D35ADD-26EB-4D7F-839C-6D9630C4961B@fastmail.fm> Message-ID: <5ecb088ac755a9e7bfb627a59f29956c@imapproxy.vub.ac.be> Dear Alexander and John, dear Forum, thanks a lot for the helpful answers. I misinterpreted the function "TransformingPermutationsCharacterTables", as I thought it just performs the permutation on the rows and columns of the character table, but it also takes care of the power maps. Hence, this is exactly the function I was looking for with my first question. For the second question I had the following situation in mind: gap> c1 := CharacterTable(AlternatingGroup(6)); CharacterTable( Alt( [ 1 .. 6 ] ) ) gap> c2 := CharacterTable("A6") mod 2; BrauerTable( "A6", 2 ) So c1 and c2 are two character tables of the alternating group of degree 6. Is there a GAP-function checking if the two tables (ordinary character tables or Brauer tables) are tables of isomorphic groups? Or do I have to be lucky that for both tables the attribute UnderlyingGroup(-) is known (respectively UnderlyingGroup(OrdinaryTable(-)), if it is a Brauer table)? (I am aware of the possibility to call "CharacterTableWithStoredGroup" to attach a group to a character table, but I was wondering if this is not somehow done automatically for tables coming from the ATLAS?) Thanks again for your answers! Kind regards, Andreas On 2014-07-01 17:36, Alexander Hulpke wrote: > Dear Forum, > > On Jul 1, 2014, at 7/1/14 1:44, Andreas B?chle > wrote: >> >> I want to check whether two character tables are "equal" (in the >> sense that their irreducible characters coincide and also the >> corresponding power maps match, of course, everything up to >> permutation). According to Thomas Breuer's answer from 2000 >> (http://www.gap-system.org/ForumArchive/Breuer.1/Thomas.1/Re__Comp.8/1.html) >> there is no built in function to compare character tables in GAP, > > I think this is a misunderstanding. The archived email says that the > only way to test such equivalence is by an explicit search for > permutations, there is no cheaper test that would only need to check > some properties without possibly testing for permutations. > >> but one has to do the checks manually. Is this still the case? What >> would be the best way to do it? In particular, I want to recognize, >> for example, the two character tables CharacterTable("A4") and >> CharacterTable(AlternatingGroup(4)) as "equal". As I want to use this >> in a function, I want to automatize it as far as possible. > > gap> c1:=CharacterTable("A4"); > CharacterTable( "a4" ) > gap> c2:=CharacterTable(AlternatingGroup(4)); > CharacterTable( Alt( [ 1 .. 4 ] ) ) > gap> TransformingPermutationsCharacterTables(c1,c2); > rec( columns := (), group := Group([ (3,4) ]), rows := (2,3) ) > > The result tells you that the classes are already in correspondence, > but characters 2 and 3 were swapped. >> >> In case only the "heads" of the character tables are known and I want >> to avoid to calculate the irreducibles (as the groups might be very >> large and the calculations needed can be done with induced >> characters), there is probably no hope to see if two character tables >> are tables of the same group, except if the attribute >> "UnderlyingGroup" is stored for both tables? > > Since there are Brauer Pairs you will never be able to determine > group isomorphism based on equivalence of the character tables (or do > I misunderstand the question)? > > Best, > > > Alexander Hulpke From hulpke at math.colostate.edu Tue Jul 1 20:07:26 2014 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Tue, 1 Jul 2014 13:07:26 -0600 Subject: [GAP Forum] Comparing character tables in GAP In-Reply-To: <5ecb088ac755a9e7bfb627a59f29956c@imapproxy.vub.ac.be> References: <45D35ADD-26EB-4D7F-839C-6D9630C4961B@fastmail.fm> <5ecb088ac755a9e7bfb627a59f29956c@imapproxy.vub.ac.be> Message-ID: Dear Forum, > For the second question I had the following situation in mind: > > gap> c1 := CharacterTable(AlternatingGroup(6)); > CharacterTable( Alt( [ 1 .. 6 ] ) ) > gap> c2 := CharacterTable("A6") mod 2; > BrauerTable( "A6", 2 ) > > So c1 and c2 are two character tables of the alternating group of degree 6. Is there a GAP-function checking if the two tables (ordinary character tables or Brauer tables) are tables of isomorphic groups? Or do I have to be lucky that for both tables the attribute UnderlyingGroup(-) is known (respectively UnderlyingGroup(OrdinaryTable(-)), if it is a Brauer table)? If you get character tables (by name) from the character table library, tables are guaranteed to be consistent, same names mean the same group and class namings are consistent between ordinary and Brauer tables. But if you calculate one of the tables from a group your question actually would require a classification of all groups with these tables to ensure that they would have to be isomorphic (and could not be Brauer Pairs), so there is no such algorithm. (Of course in many cases theory will tell you that the groups are isomorphic, but this is impossible to put into an algorithm.) So in your example, if you set c1:=CharacterTable("A6"); you are fine, but as given there is no guarantee. Best, Alexander Hulpke > (I am aware of the possibility to call "CharacterTableWithStoredGroup" to attach a group to a character table, but I was wondering if this is not somehow done automatically for tables coming from the ATLAS?) > > Thanks again for your answers! > > Kind regards, > Andreas > > > On 2014-07-01 17:36, Alexander Hulpke wrote: >> Dear Forum, >> On Jul 1, 2014, at 7/1/14 1:44, Andreas B?chle wrote: >>> I want to check whether two character tables are "equal" (in the sense that their irreducible characters coincide and also the corresponding power maps match, of course, everything up to permutation). According to Thomas Breuer's answer from 2000 (http://www.gap-system.org/ForumArchive/Breuer.1/Thomas.1/Re__Comp.8/1.html) there is no built in function to compare character tables in GAP, >> I think this is a misunderstanding. The archived email says that the >> only way to test such equivalence is by an explicit search for >> permutations, there is no cheaper test that would only need to check >> some properties without possibly testing for permutations. >>> but one has to do the checks manually. Is this still the case? What would be the best way to do it? In particular, I want to recognize, for example, the two character tables CharacterTable("A4") and CharacterTable(AlternatingGroup(4)) as "equal". As I want to use this in a function, I want to automatize it as far as possible. >> gap> c1:=CharacterTable("A4"); >> CharacterTable( "a4" ) >> gap> c2:=CharacterTable(AlternatingGroup(4)); >> CharacterTable( Alt( [ 1 .. 4 ] ) ) >> gap> TransformingPermutationsCharacterTables(c1,c2); >> rec( columns := (), group := Group([ (3,4) ]), rows := (2,3) ) >> The result tells you that the classes are already in correspondence, >> but characters 2 and 3 were swapped. >>> In case only the "heads" of the character tables are known and I want to avoid to calculate the irreducibles (as the groups might be very large and the calculations needed can be done with induced characters), there is probably no hope to see if two character tables are tables of the same group, except if the attribute "UnderlyingGroup" is stored for both tables? >> Since there are Brauer Pairs you will never be able to determine >> group isomorphism based on equivalence of the character tables (or do >> I misunderstand the question)? >> Best, >> Alexander Hulpke From Mohamed.Barakat at ku.de Thu Jul 3 22:28:35 2014 From: Mohamed.Barakat at ku.de (Mohamed Barakat) Date: Thu, 3 Jul 2014 23:28:35 +0200 Subject: [GAP Forum] GAP Days 2014 Message-ID: <720cfa65-9fc0-4a7e-aceb-9f09b48a7d80@HUB2.rwth-ad.de> Dear all, we would like to announce the first GAP Days which will take place in Aachen during the last week of August (25-29), 2014. For details please visit the webpage of the meeting http://gapdays2014.coxeter.de/ Best wishes, Mohamed Barakat, Max Horn, and Frank L?beck. From lindnerw at t-online.de Sat Jul 5 16:41:05 2014 From: lindnerw at t-online.de (Dr. Wolfgang Lindner) Date: Sat, 5 Jul 2014 17:41:05 +0200 Subject: [GAP Forum] gap4r7 with GGAP using Windows Message-ID: <936AA675480F440DB9F45805FCA2933B@Petra> Dear Forum, I have installed the latest version of GAP4r7 for Windows. I also installed GGAP 1.9.8 as windows frontend. But GGAP is not able to start/run GAP. There was no problem with GGAP in my old version gap4r4 of GAP. Has anyone succeeded running GGAP and GAP in this version? Any hints are very welcome. hth Wolfgang ___________________________________________________________ Dr. Wolfgang Lindner . Stieglitzweg 6 . D-42799 Leichlingen LindnerW at t-online.de (0049) 02175 71163 From wclark at mail.usf.edu Sat Jul 5 18:20:41 2014 From: wclark at mail.usf.edu (W. Edwin Clark) Date: Sat, 5 Jul 2014 13:20:41 -0400 Subject: [GAP Forum] Hom(A,B) for small abelian groups A and B Message-ID: Can someone tell me how to use GAP to find the group Hom(A,B) for small abelian groups A and B? I would like to be able to identify Hom(A,B) as a group. Thanks, Edwin Clark From hulpke at fastmail.fm Sun Jul 6 02:05:41 2014 From: hulpke at fastmail.fm (Alexander Hulpke) Date: Sat, 5 Jul 2014 19:05:41 -0600 Subject: [GAP Forum] gap4r7 with GGAP using Windows In-Reply-To: <936AA675480F440DB9F45805FCA2933B@Petra> References: <936AA675480F440DB9F45805FCA2933B@Petra> Message-ID: <98CDC752-CE7C-4D3E-98C9-4F51DA65C061@fastmail.fm> Dear Forum, Wolfgang Lindner wrote, > I have installed the latest version of GAP4r7 for Windows. > I also installed GGAP 1.9.8 as windows frontend. > But GGAP is not able to start/run GAP. > There was no problem with GGAP in my old version gap4r4 of GAP. Alas, GAP 4.7 does not seem to be compatible with the GGAP shell and we are lacking Windows expertise to fix this. Sorry! Alexander Hulpke > > Has anyone succeeded running GGAP and GAP in this version? > Any hints are very welcome. > > hth > Wolfgang > ___________________________________________________________ > Dr. Wolfgang Lindner . Stieglitzweg 6 . D-42799 Leichlingen > LindnerW at t-online.de (0049) 02175 71163 > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From savicky at cs.cas.cz Wed Jul 16 15:39:06 2014 From: savicky at cs.cas.cz (Petr Savicky) Date: Wed, 16 Jul 2014 16:39:06 +0200 Subject: [GAP Forum] extensions of subgroups of a finite 2-group Message-ID: <20140716143906.GA4376@cs.cas.cz> Dear GAP Forum: Assume, G is a finite 2-group and A is its subgroup. The groups may be permutation groups or pc groups. I would like to construct all extensions B of A, such that [B:A] = 2. One way is to perform N := Normalizer(G, A); R := RightTransversal(N, A); L := []; for elm in R do if elm in A then continue; fi; if elm^2 in A then Add(L, ClosureGroup(A, elm)); fi; od; Is there a better way? Another question is as follows. Let G be a 2-group and H and A its subgroups, such that the intersection of H and A is trivial. Is it possible to determine in GAP, whether there is a subgroup B of G, such that B contains A and is a complement of H in G? I appreciate any help concerning these questions. Best regards, Petr Savicky. From msugandha.87 at gmail.com Thu Jul 17 07:29:39 2014 From: msugandha.87 at gmail.com (Sugandha Maheshwary) Date: Thu, 17 Jul 2014 11:59:39 +0530 Subject: [GAP Forum] Runtime Message-ID: How long shall I wait to get an output in GAP? At times, a program runs for hours (or even days) but their is no output or fail prompt. What is the maximum time that a command in GAP might take? Thanks Sugandha. From benjamin.sambale at gmail.com Thu Jul 17 07:43:29 2014 From: benjamin.sambale at gmail.com (Benjamin Sambale) Date: Thu, 17 Jul 2014 08:43:29 +0200 Subject: [GAP Forum] Runtime In-Reply-To: References: Message-ID: <53C77091.3070406@gmail.com> Infinity. Example: while true do od; However, you can use various Print commands so that you can see what your program is actually doing right now. For example: for i in [1..1000] do Print(i," "); ... Best, Benjamin Am 17.07.2014 08:29, schrieb Sugandha Maheshwary: > How long shall I wait to get an output in GAP? At times, a program runs for > hours (or even days) but their is no output or fail prompt. What is the > maximum time that a command in GAP might take? > > Thanks > > Sugandha. > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From samuel.lelievre at gmail.com Thu Jul 17 07:54:39 2014 From: samuel.lelievre at gmail.com (=?UTF-8?Q?Samuel_Leli=C3=A8vre?=) Date: Thu, 17 Jul 2014 02:54:39 -0400 Subject: [GAP Forum] Runtime In-Reply-To: References: Message-ID: Some commands will make GAP enter an infinite loop, and you will never get an answer. In such a case, it's better to stop GAP (by typing Ctrl-C), for many reasons: 1. It is better than letting the computer run out of memory, (here again for many reasons!). 2. When you interrupt GAP, the error message you get will give you precious information about what function is running at that time. You can then read the doc for that function to check what algorithms are being run. 3. Even better, when interrupted by Ctrl-C (just like when an error is encountered), GAP enters debugging mode, and you can investigate what function or method was being applied, what the arguments were, etc. If your computation involves several steps, or has loops such as "while" and "for" loops, then a good way to figure out what is going on is to add, as Benjamin suggests, print instructions inside your loops (or at key points of your computation) to print partial results and/or values of parameters and what operations are carried out. Samuel 2014-07-17 2:29 GMT-04:00 Sugandha Maheshwary : > How long shall I wait to get an output in GAP? At times, a program runs for > hours (or even days) but their is no output or fail prompt. What is the > maximum time that a command in GAP might take? > > Thanks > > Sugandha. > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From benjamin.sambale at gmail.com Thu Jul 17 07:54:41 2014 From: benjamin.sambale at gmail.com (Benjamin Sambale) Date: Thu, 17 Jul 2014 08:54:41 +0200 Subject: [GAP Forum] extensions of subgroups of a finite 2-group In-Reply-To: <20140716143906.GA4376@cs.cas.cz> References: <20140716143906.GA4376@cs.cas.cz> Message-ID: <53C77331.9070601@gmail.com> Dear Petr, I don't see how your first question is related to the group G. If you want ALL extensions of A with a group of order 2, you could use CyclicExtensions(A,2) from the GrpConst package. However, if A is small, it is much faster to run through the groups of order 2|A| in the small groups library and check which groups have maximal subgroups isomorphic to A (i.e. the same GroupID). I don't have any good advice concerning your second question. Best, Benjamin Am 16.07.2014 16:39, schrieb Petr Savicky: > Dear GAP Forum: > > Assume, G is a finite 2-group and A is its subgroup. > The groups may be permutation groups or pc groups. > I would like to construct all extensions B of A, such > that [B:A] = 2. > > One way is to perform > > N := Normalizer(G, A); > R := RightTransversal(N, A); > L := []; > for elm in R do > if elm in A then > continue; > fi; > if elm^2 in A then > Add(L, ClosureGroup(A, elm)); > fi; > od; > > Is there a better way? > > Another question is as follows. Let G be a 2-group > and H and A its subgroups, such that the intersection > of H and A is trivial. Is it possible to determine > in GAP, whether there is a subgroup B of G, such > that B contains A and is a complement of H in G? > > I appreciate any help concerning these questions. > > Best regards, > Petr Savicky. > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From savicky at cs.cas.cz Thu Jul 17 13:37:27 2014 From: savicky at cs.cas.cz (Petr Savicky) Date: Thu, 17 Jul 2014 14:37:27 +0200 Subject: [GAP Forum] extensions of subgroups of a finite 2-group In-Reply-To: <53C77331.9070601@gmail.com> References: <20140716143906.GA4376@cs.cas.cz> <53C77331.9070601@gmail.com> Message-ID: <20140717123727.GA8698@cs.cas.cz> On Thu, Jul 17, 2014 at 08:54:41AM +0200, Benjamin Sambale wrote: > Dear Petr, > > I don't see how your first question is related to the group G. If you > want ALL extensions of A with a group of order 2, you could use > CyclicExtensions(A,2) from the GrpConst package. However, if A is small, > it is much faster to run through the groups of order 2|A| in the small > groups library and check which groups have maximal subgroups isomorphic > to A (i.e. the same GroupID). Thank you for your reply. The extensions are considered as subgroups of G and the embedding is important, not only the isomorphism type. Consider the groups G := Group( [ (1,9)(2,10)(3,11)(4,12)(5,13)(6,14)(7,15)(8,16), (1,5)(2,6)(3,7)(4,8), (1,3)(2,4), (1,2) ] ); A := Group( [ (3,4)(5,8,6,7)(11,12)(13,14), (3,4), (1,3)(2,4)(7,8)(11,12)(15,16), (3,4)(7,8)(9,12,10,11)(13,15,14,16), (13,14)(15,16) ] ); Group G has order 32768, group A has order 256 and is isomorphic to SmallGroup(256, 27634). There are 19 extensions B of A inside G with the quotient group B/A = C_2. Using a precomputed list, they may be obtained as follows lst := [ (9,11,10,12)(13,15,14,16), (9,11)(10,12)(13,15)(14,16), (11,12)(15,16), (15,16), (11,12), (9,11)(10,12)(15,16), (11,12)(13,15)(14,16), (13,15)(14,16), (9,11)(10,12), (13,15,14,16), (9,11,10,12), (11,12)(13,15,14,16), (9,11,10,12)(15,16), (9,11)(10,12)(13,15,14,16), (9,11,10,12)(13,15)(14,16), (9,13)(10,14)(11,15)(12,16), (9,13)(10,14)(11,16)(12,15), (9,15)(10,16)(11,13)(12,14), (9,15,10,16)(11,14,12,13) ]; B := []; for elm in lst do Add(B, ClosureGroup(A, elm)); od; Some of these extensions are conjugate. For example, the groups B[16], ..., B[19] belong to the same conjugacy class. Is it possible to find these groups using the small groups library? I understand your suggestion as follows. Run through groups of order 512 in the library, compute all MaximalSubgroups() or ConjugacyClassesMaximalSubgroups() for each of them, then IdGroup() for each of the maximal subgroups and compare with IdGroup(A). Is this correct? If we want to identify a maximal subgroup of SmallGroup(512, i) in the library, is it possible to use somehow the fact that the group was obtained as a maximal subgroup of a group from the library? When the extensions of A are identified in the library, is it possible to find all their embeddings into G? Concerning the identification of the groups above, it is easy to identify A using IdGroup(A); [ 256, 27634 ] However, the groups B[i] have order 512 and I get an error for them IdGroup(B[1]); Error, the group identification for groups of size 512 is not available called from ( ) Is there a way, perhaps not a very efficient one, how to identify the groups of order 512 in the library? Best regards, Petr. From max at quendi.de Thu Jul 17 15:29:18 2014 From: max at quendi.de (Max Horn) Date: Thu, 17 Jul 2014 16:29:18 +0200 Subject: [GAP Forum] extensions of subgroups of a finite 2-group In-Reply-To: <20140716143906.GA4376@cs.cas.cz> References: <20140716143906.GA4376@cs.cas.cz> Message-ID: <3F917CE4-ACB8-494C-B645-244D03EB724F@quendi.de> Dear Petr, On 16.07.2014, at 16:39, Petr Savicky wrote: > Dear GAP Forum: > > Assume, G is a finite 2-group and A is its subgroup. > The groups may be permutation groups or pc groups. > I would like to construct all extensions B of A, such > that [B:A] = 2. I assume you meant "all extensions B *in G* of A...". > > One way is to perform > > N := Normalizer(G, A); > R := RightTransversal(N, A); > L := []; > for elm in R do > if elm in A then > continue; > fi; > if elm^2 in A then > Add(L, ClosureGroup(A, elm)); > fi; > od; > > Is there a better way? Yes, there is, at least asymptotically -- it will be slower for small examples, but faster for larger ones. Do this: 1. Compute the quotient H:=N_G(A)/A 2. Compute the conjugacy classes of involutions in H 3. For each involution in H, its preimage in N_G(A) resp. G is a group with the desired property, and this correspondence is bijective. Here is a direct implementation: N := Normalizer(G, A); hom := NaturalHomomorphismByNormalSubgroup(N, A); H := ImagesSource(hom); cc := ConjugacyClasses(H); L := []; for cl in cc do if Order(Representative(cl)) <> 2 then continue; fi; for elm in cl do elm := PreImagesRepresentative(hom, elm); Add(L, ClosureGroup(A, elm)); od; od; To test it, I took G:=GL(4,8); A1:=SylowSubgroup(G,2); # |H| = 2401 A2:=DerivedSubgroup(A1); # |H| = 1229312 For A1, with "your" method, it takes 0.9s on my system, and 1.1s with the conjugacy class method -- so it is slower there. But for A2, the conjugacy class method finished in in 3.7s, whereas "your" method took 493s. > > Another question is as follows. Let G be a 2-group > and H and A its subgroups, such that the intersection > of H and A is trivial. Is it possible to determine > in GAP, whether there is a subgroup B of G, such > that B contains A and is a complement of H in G? I am not aware of a direct method. When H is normal, maybe using ComplementClassesRepresentatives would help a bit, by reducing the problem to conjugacy classes of complements. All the best, Max From max at quendi.de Thu Jul 17 17:09:05 2014 From: max at quendi.de (Max Horn) Date: Thu, 17 Jul 2014 18:09:05 +0200 Subject: [GAP Forum] extensions of subgroups of a finite 2-group In-Reply-To: <20140717123727.GA8698@cs.cas.cz> References: <20140716143906.GA4376@cs.cas.cz> <53C77331.9070601@gmail.com> <20140717123727.GA8698@cs.cas.cz> Message-ID: <8B0C07D7-25A6-4D02-B697-0EA5963AA8D5@quendi.de> Dear Petr, I only saw your second email after writing my reply. On 17.07.2014, at 14:37, Petr Savicky wrote: > On Thu, Jul 17, 2014 at 08:54:41AM +0200, Benjamin Sambale wrote: >> Dear Petr, >> >> I don't see how your first question is related to the group G. If you >> want ALL extensions of A with a group of order 2, you could use >> CyclicExtensions(A,2) from the GrpConst package. However, if A is small, >> it is much faster to run through the groups of order 2|A| in the small >> groups library and check which groups have maximal subgroups isomorphic >> to A (i.e. the same GroupID). > > Thank you for your reply. The extensions are considered as subgroups > of G and the embedding is important, not only the isomorphism type. > Consider the groups > > G := Group( [ (1,9)(2,10)(3,11)(4,12)(5,13)(6,14)(7,15)(8,16), > (1,5)(2,6)(3,7)(4,8), (1,3)(2,4), (1,2) ] ); > > A := Group( [ (3,4)(5,8,6,7)(11,12)(13,14), (3,4), > (1,3)(2,4)(7,8)(11,12)(15,16), (3,4)(7,8)(9,12,10,11)(13,15,14,16), > (13,14)(15,16) ] ); > > Group G has order 32768, group A has order 256 and is isomorphic > to SmallGroup(256, 27634). Applying the two algorithms to this pair (G,A) takes approximately the same time for me -- in both case just a dozen milliseconds or so. > > There are 19 extensions B of A inside G with the quotient > group B/A = C_2. Indeed. > Some of these extensions are conjugate. For example, the groups > B[16], ..., B[19] belong to the same conjugacy class. Indeed. If you only want conjugacy classes of the extensions, a first step would be to adapt "my" algorithm by taking only one involution from each conjugacy class of the group H = N_G(A)/A. However, there can still be further groups which are conjugate in G (the classes of involutions in H may fuse when lifted to G etc.). [...] > Is there a way, perhaps not a very efficient one, how to identify > the groups of order 512 in the library? This can be done with the anupq package, and the following function (taken from the SCSCP package manual, chapter 7): IdGroup512ByCode := function( code ) local G, F, H; G := PcGroupCode( code, 512 ); F := PqStandardPresentation( G ); H := PcGroupFpGroup( F ); return IdStandardPresented512Group( H ); end; However, I am somewhat skeptical whether going this way is a good idea... but then we don't know much about the problem you want to solve (in particular: The groups you are interested in), so... Cheers, Max From savicky at cs.cas.cz Fri Jul 18 10:18:23 2014 From: savicky at cs.cas.cz (Petr Savicky) Date: Fri, 18 Jul 2014 11:18:23 +0200 Subject: [GAP Forum] extensions of subgroups of a finite 2-group In-Reply-To: <3F917CE4-ACB8-494C-B645-244D03EB724F@quendi.de> References: <20140716143906.GA4376@cs.cas.cz> <3F917CE4-ACB8-494C-B645-244D03EB724F@quendi.de> Message-ID: <20140718091823.GA29136@cs.cas.cz> On Thu, Jul 17, 2014 at 04:29:18PM +0200, Max Horn wrote: ... > On 16.07.2014, at 16:39, Petr Savicky wrote: .. > > Assume, G is a finite 2-group and A is its subgroup. > > The groups may be permutation groups or pc groups. > > I would like to construct all extensions B of A, such > > that [B:A] = 2. > > I assume you meant "all extensions B *in G* of A...". Yes. I am sorry for confusion. > > One way is to perform > > > > N := Normalizer(G, A); > > R := RightTransversal(N, A); > > L := []; > > for elm in R do > > if elm in A then > > continue; > > fi; > > if elm^2 in A then > > Add(L, ClosureGroup(A, elm)); > > fi; > > od; > > > > Is there a better way? > > Yes, there is, at least asymptotically -- it will be slower for small examples, but faster for larger ones. Do this: > > 1. Compute the quotient H:=N_G(A)/A > 2. Compute the conjugacy classes of involutions in H > 3. For each involution in H, its preimage in N_G(A) resp. G > is a group with the desired property, and this correspondence > is bijective. > > Here is a direct implementation: > > N := Normalizer(G, A); > hom := NaturalHomomorphismByNormalSubgroup(N, A); > H := ImagesSource(hom); > cc := ConjugacyClasses(H); > L := []; > for cl in cc do > if Order(Representative(cl)) <> 2 then > continue; > fi; > for elm in cl do > elm := PreImagesRepresentative(hom, elm); > Add(L, ClosureGroup(A, elm)); > od; > od; Thank you very much for this improvement. The purpose of the code is not listing all extensions of the specified type, but taking one at random from the uniform distribution. If the number of conjugacy classes is significantly smaller than the order of H, then the above approach may be much faster. It is sufficient to compute the sizes of the classes of the involutions, choose a class at random with the probability given by its relative size and then take an element from the uniform distribution on the class. I do not have an example of a group H = N_G(A)/A, where G is 2-group and the number of conjugacy classes of H is significantly smaller than the order of H. However, a direct construction of a 2-group H with this property is easy WP := Group( [ (1,2), (1,3)(2,4), (1,5)(2,6)(3,7)(4,8), ( 1, 9)( 2,10)( 3,11)( 4,12)( 5,13)( 6,14)( 7,15)( 8,16), ( 1,17)( 2,18)( 3,19)( 4,20)( 5,21)( 6,22)( 7,23)( 8,24) ( 9,25)(10,26)(11,27)(12,28)(13,29)(14,30)(15,31)(16,32) ] ); pciso := IsomorphismPcGroup(WP); H := Image(pciso, WP); CC := ConjugacyClasses(H); Print(Length(CC), " ", Size(H), "\n"); 26795 2147483648 This computation takes about 55 seconds on my computer, even together with a run through all classes in CC, which is omitted from the code above. The estimate of going through all elements of H, based on a partial run, is about 15 hours. > > Another question is as follows. Let G be a 2-group > > and H and A its subgroups, such that the intersection > > of H and A is trivial. Is it possible to determine > > in GAP, whether there is a subgroup B of G, such > > that B contains A and is a complement of H in G? > > I am not aware of a direct method. When H is normal, maybe using ComplementClassesRepresentatives would help a bit, by reducing the problem to conjugacy classes of complements. Thank you for your reply. The group H is a point stabilizer of a transitive action, so it is not normal. All the best, Petr. From tkohl at math.bu.edu Fri Jul 18 14:42:34 2014 From: tkohl at math.bu.edu (Tim Kohl) Date: Fri, 18 Jul 2014 09:42:34 -0400 (EDT) Subject: [GAP Forum] Runtime In-Reply-To: <53C77091.3070406@gmail.com> References: <53C77091.3070406@gmail.com> Message-ID: One thing to note about using Print for diagnostics is that sometimes the output may be buffered so that you don't always see the loop index as the loop is proceeding. In that instance the Display() command is a better option since it's not buffered and so you'll get 'real time' information. -Tim On Thu, 17 Jul 2014, Benjamin Sambale wrote: > Infinity. Example: while true do od; > > However, you can use various Print commands so that you can see what your > program is actually doing right now. For example: > > for i in [1..1000] do > Print(i," "); > ... > > > Best, > Benjamin > > Am 17.07.2014 08:29, schrieb Sugandha Maheshwary: > > How long shall I wait to get an output in GAP? At times, a program runs for > > hours (or even days) but their is no output or fail prompt. What is the > > maximum time that a command in GAP might take? > > > > Thanks > > > > Sugandha. > > _______________________________________________ > > Forum mailing list > > Forum at mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > From frank.luebeck at math.rwth-aachen.de Fri Jul 18 15:10:04 2014 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Fri, 18 Jul 2014 16:10:04 +0200 Subject: [GAP Forum] Runtime In-Reply-To: References: <53C77091.3070406@gmail.com> Message-ID: <20140718141004.GC31912@alkor.math.rwth-aachen.de> On Fri, Jul 18, 2014 at 09:42:34AM -0400, Tim Kohl wrote: > One thing to note about using Print for diagnostics is that sometimes > the output may be buffered so that you don't always see the loop index > as the loop is proceeding. In that instance the Display() command is > a better option since it's not buffered and so you'll get 'real time' > information. > > -Tim Dear Tim, dear Forum, By default GAP does some buffering (and line breaking magic) of the current output line. It may be useful to know that there is the "flush character" '\c' which flushes the output. Also, an explicit line break '\n' flushes the output. Compare the following loops: for i in [1..10] do Print(i, " "); Sleep(1); od; for i in [1..10] do Print(i, "\n"); Sleep(1); od; for i in [1..10] do Print(i, " \c"); Sleep(1); od; And finally a fancy variant: for i in [1..10] do Print(TextAttr.home,TextAttr.delline," i =",String(i,4)," \c"); Sleep(1); od; Print("\n"); Best regards, Frank -- /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Pontdriesch 14/16, \\\ 52062 Aachen, Germany /// E-mail: Frank.Luebeck at Math.RWTH-Aachen.De \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ From hatlam at gmail.com Wed Jul 23 22:19:29 2014 From: hatlam at gmail.com (Ha T. Lam) Date: Wed, 23 Jul 2014 17:19:29 -0400 Subject: [GAP Forum] RandomMat with really random source Message-ID: Dear GAP forum, I'm trying to generate random 2x2 matrices with entries from GF(947). Normally, I would just use RandomMat(2,2,GF(947)), but I want to get different results every time I start GAP. I found that RandomSource( r, dev ) from the io package ( http://www.gap-system.org/Manuals/pkg/io/doc/chap6.html) allows randomness from /dev/random, but I don't know how to use it as the random source for RandomMat. Any advice? Thank you, Ha From alexk at mcs.st-andrews.ac.uk Wed Jul 23 22:40:08 2014 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Wed, 23 Jul 2014 22:40:08 +0100 Subject: [GAP Forum] RandomMat with really random source In-Reply-To: References: Message-ID: <3122F2EA-1CC5-4F54-8BAE-F894716425B8@mcs.st-andrews.ac.uk> Dear Ha, On 23 Jul 2014, at 22:19, Ha T. Lam wrote: > Dear GAP forum, > > I'm trying to generate random 2x2 matrices with entries from GF(947). > Normally, I would just use RandomMat(2,2,GF(947)), but I want to get > different results every time I start GAP. I found that RandomSource( r, dev > ) from the io package ( > http://www.gap-system.org/Manuals/pkg/io/doc/chap6.html) allows randomness > from /dev/random, but I don't know how to use it as the random source for > RandomMat. Any advice? This is doable - first you have to create a real random source: gap> rs:=RandomSource(IsRealRandomSource,"random"); Then you may create a list of all elements of GF(947) and pick up elements from it using "Random": gap> gf:=AsList(GF(947));; gap> Random(rs,gf); Z(947)^42 gap> Random(rs,gf); Z(947)^817 Now you may take the code for RandomMat from the library and adjust it to say ReallyRandomMat which will use the approach above instead of calling Random( GF(947) ); There is a warning, however. If it may be enough for you to use dev/urandom instead of dev/random, then it is advised to go for the 'urandom' option. I remember once we were very puzzled by the slow performance of GAP on the server where dev/random was used to generate some random strings. It was not possible to reproduce the slowdown at all while using GAP interactively. Then we figured out what happened: dev/random needs some noise in the entropy pool, and it may block when the pool is empty to wait for some more events to happen. There was a plenty of events when one was sitting in front of the keyboard; however, that was not the case on the server when GAP was running as a daemon. So please be aware of this feature. Hope this helps, Alexander From hatlam at gmail.com Wed Jul 23 22:54:02 2014 From: hatlam at gmail.com (Ha T. Lam) Date: Wed, 23 Jul 2014 17:54:02 -0400 Subject: [GAP Forum] RandomMat with really random source In-Reply-To: <3122F2EA-1CC5-4F54-8BAE-F894716425B8@mcs.st-andrews.ac.uk> References: <3122F2EA-1CC5-4F54-8BAE-F894716425B8@mcs.st-andrews.ac.uk> Message-ID: Dear Alexander, On Wed, Jul 23, 2014 at 5:40 PM, Alexander Konovalov < alexk at mcs.st-andrews.ac.uk> wrote: > Dear Ha, > > On 23 Jul 2014, at 22:19, Ha T. Lam wrote: > > > Dear GAP forum, > > > > I'm trying to generate random 2x2 matrices with entries from GF(947). > > Normally, I would just use RandomMat(2,2,GF(947)), but I want to get > > different results every time I start GAP. I found that RandomSource( r, > dev > > ) from the io package ( > > http://www.gap-system.org/Manuals/pkg/io/doc/chap6.html) allows > randomness > > from /dev/random, but I don't know how to use it as the random source for > > RandomMat. Any advice? > > This is doable - first you have to create a real random source: > > gap> rs:=RandomSource(IsRealRandomSource,"random"); > > > Then you may create a list of all elements of GF(947) and pick up > elements from it using "Random": > > ?? > gap> gf:=AsList(GF(947));; > gap> Random(rs,gf); > Z(947)^42 > gap> Random(rs,gf); > Z(947)^817 > > Now you may take the code for RandomMat from the library and adjust it to > say ReallyRandomMat which will use the approach above instead of calling > Random( GF(947) ); > > There is a warning, however. If it may be enough for you to use dev/urandom > instead of dev/random, then it is advised to go for the 'urandom' option. > I remember once we were very puzzled by the slow performance of GAP on the > server where dev/random was used to generate some random strings. It was > not possible to reproduce the slowdown at all while using GAP > interactively. > Then we figured out what happened: dev/random needs some noise in the > entropy pool, and it may block when the pool is empty to wait for some more > events to happen. There was a plenty of events when one was sitting in > front > of the keyboard; however, that was not the case on the server when GAP was > running as a daemon. So please be aware of this feature. > > Hope this helps, > Alexander > ? > > ? T?hank you very much for the quick reply and the warning. I was trying to use 'random' instead of 'urandom' and was indeed puzzled by the speed decrease. In my code, I used ? List(GF(947)) instead of ? AsList(GF(947)). Do you know if this makes a difference? The manual only tells me that AsList gives roughly the same access time to elements. I am also worried about working with a larger prime, would this method create an in-memory list of all the elements? Is there anyway to do a sort of "lazy evaluation"? Thank you, Ha From alexk at mcs.st-andrews.ac.uk Wed Jul 23 23:12:28 2014 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Wed, 23 Jul 2014 23:12:28 +0100 Subject: [GAP Forum] RandomMat with really random source In-Reply-To: References: <3122F2EA-1CC5-4F54-8BAE-F894716425B8@mcs.st-andrews.ac.uk> Message-ID: <86C0E3E9-7C47-4653-97F2-C254B0AE5780@mcs.st-andrews.ac.uk> On 23 Jul 2014, at 22:54, Ha T. Lam wrote: > Dear Alexander, > > > On Wed, Jul 23, 2014 at 5:40 PM, Alexander Konovalov wrote: > Dear Ha, > > On 23 Jul 2014, at 22:19, Ha T. Lam wrote: > > > Dear GAP forum, > > > > I'm trying to generate random 2x2 matrices with entries from GF(947). > > Normally, I would just use RandomMat(2,2,GF(947)), but I want to get > > different results every time I start GAP. I found that RandomSource( r, dev > > ) from the io package ( > > http://www.gap-system.org/Manuals/pkg/io/doc/chap6.html) allows randomness > > from /dev/random, but I don't know how to use it as the random source for > > RandomMat. Any advice? > > This is doable - first you have to create a real random source: > > gap> rs:=RandomSource(IsRealRandomSource,"random"); > > > Then you may create a list of all elements of GF(947) and pick up > elements from it using "Random": > > ??gap> gf:=AsList(GF(947));; > gap> Random(rs,gf); > Z(947)^42 > gap> Random(rs,gf); > Z(947)^817 > > Now you may take the code for RandomMat from the library and adjust it to > say ReallyRandomMat which will use the approach above instead of calling > Random( GF(947) ); > > There is a warning, however. If it may be enough for you to use dev/urandom > instead of dev/random, then it is advised to go for the 'urandom' option. > I remember once we were very puzzled by the slow performance of GAP on the > server where dev/random was used to generate some random strings. It was > not possible to reproduce the slowdown at all while using GAP interactively. > Then we figured out what happened: dev/random needs some noise in the > entropy pool, and it may block when the pool is empty to wait for some more > events to happen. There was a plenty of events when one was sitting in front > of the keyboard; however, that was not the case on the server when GAP was > running as a daemon. So please be aware of this feature. > > Hope this helps, > Alexander > ? > ? > T?hank you very much for the quick reply and the warning. I was trying to use 'random' instead of 'urandom' and was indeed puzzled by the speed decrease. In my code, I used ?List(GF(947)) instead of ?AsList(GF(947)). Do you know if this makes a difference? The manual only tells me that AsList gives roughly the same access time to elements. There is some difference: AsList is an attribute and is not recomputed next time you call it: gap> f:=GF(947); GF(947) gap> AsList(f);;time; 4 gap> KnownAttributesOfObject(f); [ "Size", "Representative", "Enumerator", "AsList", "OneImmutable", "Characteristic", "GeneratorsOfDomain", "LeftActingDomain", "MultiplicativeNeutralElement", "GeneratorsOfRing", "GeneratorsOfRingWithOne", "Dimension", "DegreeOverPrimeField", "GeneratorsOfDivisionRing", "PrimitiveRoot" ] gap> AsList(f);;time; 0 OTOH, List is a function which will return new mutable list each time you call it. Just compare gap> l:=AsList(f);; gap> IsMutable(l); false with gap> l:=List(f);; gap> IsMutable(l); true It's not too expensive for GF(947) though, and I guess that next calls to List will somehow reuse existing AsList, but still is less efficient. My assumption is that "random vs urandom" contributes much more to the difference in performance in this case. With larger primes, keeping a list of all elements of GF(p) will became an obstacle, indeed. My suggestion would be to use Enumerator (see `?Enumerator'), which may return an element of the collection (the field in this case) by its position, for example: gap> rs:=RandomSource(IsRealRandomSource,"random"); gap> p:=NextPrimeInt(1000000); 1000003 gap> gf:=GF(p); GF(1000003) gap> enum:=Enumerator(gf); gap> n:=Random(rs,[1..Size(gf)]); 41332 gap> enum[n]; ZmodpZObj( 41331, 1000003 ) gap> n:=Random(rs,[1..Size(gf)]); 725956 gap> enum[n]; ZmodpZObj( 725955, 1000003 ) In this case you need to keep the range [1..Size(gf)] which is given just by the first and last elements instead of the whole list of elements of the field. Hope this will help. Best wishes Alexander > I am also worried about working with a larger prime, would this method create an in-memory list of all the elements? Is there anyway to do a sort of "lazy evaluation"? > > Thank you, > > Ha > From kurt.ewald at balbec.de Thu Jul 24 18:32:09 2014 From: kurt.ewald at balbec.de (Kurt Ewald) Date: Thu, 24 Jul 2014 19:32:09 +0200 Subject: [GAP Forum] WG: Ihr Buch "Konstruktion transitiver Permutationsgruppen" Message-ID: <002f01cfa765$326e7930$974b6b90$@ewald@balbec.de> Von: Kurt Ewald [mailto:kurt.ewald at balbec.de] Gesendet: Donnerstag, 24. Juli 2014 19:02 An: 'hulpke at math.colostate.edu' Betreff: Ihr Buch "Konstruktion transitiver Permutationsgruppen" Sehr geehrter Herr Hulpke, ich habe ? vielleicht f?lschlich ? angenommen, die Listen auf Seite 135 ff enthalten nur transitive Gruppen. Operation Typ 4, A4: G ist aber laut GAP und Maple intransitive. Mit freundlichen Gr??en Kurt Ewald From arashrafi at kashanu.ac.ir Fri Jul 25 12:46:14 2014 From: arashrafi at kashanu.ac.ir (arashrafi at kashanu.ac.ir) Date: Fri, 25 Jul 2014 16:16:14 +0430 (IRDT) Subject: [GAP Forum] Subgroups of a given order In-Reply-To: <24855093.29668.1406288592355.JavaMail.root@mail.kashanu.ac.ir> Message-ID: <7698245.29670.1406288774346.JavaMail.root@mail.kashanu.ac.ir> Dear GAP Forum Members, Suppose G is a group of a given order n and m is a divisor of n. I am interesting to the problem of computing all subgroups of G of order n. Please notice that if n is enough large, it is not efficient to first compute all subgroups of G and then obtain subgroups of order m. For example I need to the subgroups of order 32 in a group of order 1024. Any suggestions or comments will be highly appreciated. Regards, Alireza From alexk at mcs.st-andrews.ac.uk Fri Jul 25 14:54:22 2014 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Fri, 25 Jul 2014 14:54:22 +0100 Subject: [GAP Forum] Subgroups of a given order In-Reply-To: <7698245.29670.1406288774346.JavaMail.root@mail.kashanu.ac.ir> References: <7698245.29670.1406288774346.JavaMail.root@mail.kashanu.ac.ir> Message-ID: <98C687BE-164F-4AC5-87C8-F815F3EC88C9@mcs.st-andrews.ac.uk> Dear Alireza, On 25 Jul 2014, at 12:46, arashrafi at kashanu.ac.ir wrote: > > Dear GAP Forum Members, > > Suppose G is a group of a given order n and m is a divisor of n. I am > interesting to the problem of computing all subgroups of G of order n. > Please notice that if n is enough large, it is not efficient to first > compute all subgroups of G and then obtain subgroups of order m. For > example I need to the subgroups of order 32 in a group of order 1024. > Any suggestions or comments will be highly appreciated. > > Regards, Alireza Here there is a collection of links that may be useful: 7.7: How do I get the subgroups of my group? http://gap-system.org/Faq/faq.html#7.7 39.21 Specific Methods for Subgroup Lattice Computations http://gap-system.org/Manuals/doc/ref/chap39.html#X85E613D57F28AEFF In particular, for the case of a solvable group there is SubgroupsSolvableGroup with the optional argument which permits to specify the order of the group: gap> G:=DihedralGroup(1024); gap> l:=SubgroupsSolvableGroup(G,rec(consider:=ExactSizeConsiderFunction(32))); [ Group([ ]), Group([ f10 ]), Group([ f10, f9 ]), Group([ f10, f9, f8 ]), Group([ f10, f9, f8, f7 ]), Group([ f10, f9, f8, f7, f6 ]), Group([ f10, f9, f8, f7, f6, f5 ]), Group([ f10, f9, f8, f7, f6, f5, f4 ]), Group([ f10, f9, f8, f7, f6, f5, f4, f3 ]), Group([ f10, f9, f8, f7, f6, f5, f4, f3, f1 ]), Group([ f10, f9, f8, f7, f6, f5, f4, f1 ]), Group([ f10, f9, f8, f7, f6, f5, f1 ]), Group([ f10, f9, f8, f7, f6, f1 ]), Group([ f10, f9, f8, f7, f1 ]), Group([ f10, f9, f8, f7, f6, f5, f4, f3, f2 ]), Group([ f10, f9, f8, f7, f6, f5, f4, f3, f1*f2 ]), Group([ f10, f9, f8, f7, f6, f5, f4, f1*f2 ]), Group([ f10, f9, f8, f7, f6, f5, f1*f2 ]), Group([ f10, f9, f8, f7, f6, f1*f2 ]), Group([ f10, f9, f8, f7, f1*f2 ]), Group([ f10, f9, f8, f7, f6, f5, f4, f3, f1, f2 ]) ] gap> List(l,Size); [ 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 256, 128, 64, 32, 512, 512, 256, 128, 64, 32, 1024 ] This list is redundant by reasons explained below, so we have to filter out groups of order 32 from this list: gap> Filtered(l, g -> Size(g)=32); [ Group([ f10, f9, f8, f7, f6 ]), Group([ f10, f9, f8, f7, f1 ]), Group([ f10, f9, f8, f7, f1*f2 ]) ] - these are representatives of conjugacy classes of subgroups of order 32. SubgroupsSolvableGroup implements the algorithm published in [Hulpke, A., Computing subgroups invariant under a set of automorphisms, J. Symbolic Comput., 27 (4) (1999), 415?427] and computes subgroups of a solvable group G, using the homomorphism principle. It returns a list of representatives up to G-conjugacy. Just quoting the manual, "the 'consider' function does not provide a perfect filter. It is guaranteed that all subgroups fulfilling the condition are returned, but not all subgroups returned necessarily fulfill the condition." Anyhow, this is a little bit faster than computing all subgroups for the group from the example (and may be much more faster for other groups): gap> G:=DihedralGroup(1024); gap> l:=SubgroupsSolvableGroup(G,rec(consider:=ExactSizeConsiderFunction(32)));;time; 164 gap> G:=DihedralGroup(1024); gap> l:=SubgroupsSolvableGroup(G);;time; 226 gap> Hope this helps Alexander P.S. Perhaps in an interactive session I would be typing just the following: gap> G:=DihedralGroup(1024); gap> cc:=ConjugacyClassesSubgroups(G);; gap> Filtered(cc, c -> Size(Representative(c))=32); [ Group( [ f10, f9, f8, f7, f6 ] )^G, Group( [ f10, f9, f8, f7, f1*f2 ] )^G, Group( [ f10, f9, f8, f7, f1 ] )^G ] gap> From kurt.ewald at balbec.de Sun Jul 27 17:17:38 2014 From: kurt.ewald at balbec.de (Kurt Ewald) Date: Sun, 27 Jul 2014 18:17:38 +0200 Subject: [GAP Forum] Permutationgroups Message-ID: <002501cfa9b6$49381d30$dba85790$@ewald@balbec.de> Hallo, how can I construct a Permutationgroup with given Order and Degree. for instance: GroupOrder 12 and Degree 5, I found by accident G:=<(1,2,3),(1,5,2)> Best Regards Kurt Ewald From stefan at mcs.st-and.ac.uk Sun Jul 27 18:12:31 2014 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Sun, 27 Jul 2014 18:12:31 +0100 (BST) Subject: [GAP Forum] Permutationgroups In-Reply-To: <002501cfa9b6$49381d30$dba85790$@ewald@balbec.de> References: <002501cfa9b6$49381d30$dba85790$@ewald@balbec.de> Message-ID: On Sun, July 27, 2014 5:17 pm, Kurt Ewald wrote: > how can I construct a Permutationgroup with given Order and Degree. > > for instance: GroupOrder 12 and Degree 5, I found by accident > > G:=<(1,2,3),(1,5,2)> You can find all transitive permutation groups of order n and degree d <= 30 by AllTransitiveGroups(DegreeAction,d,Size,n); For example: gap> AllTransitiveGroups(DegreeAction,6,Size,60); [ L(6) = PSL(2,5) = A_5(6) ] gap> AllTransitiveGroups(DegreeAction,6,Size,72); [ F_36(6):2 = [S(3)^2]2 = S(3) wr 2 ] gap> AllTransitiveGroups(DegreeAction,8,Size,32); [ [1/4.cD(4)^2]2, 1/2[2^4]4, [4^2]2, E(8):E_4=[2^2]D(4), E(8):4=[1/4.eD(4)^2]2, [2^3]4, 1/2[2^4]E(4)=[1/4.dD(4)^2]2, E(8):D_4=[2^3]2^2 ] gap> AllTransitiveGroups(DegreeAction,24,Size,240); [ t24n570, t24n571, t24n572, t24n573, t24n574, t24n575, t24n576, t24n577, t24n578 ] The data is taken from the GAP Transitive Groups Library, cf. http://www.gap-system.org/Datalib/trans.html. If -- as your example suggests -- you are also interested in intransitive groups, you maybe need to do some programming yourself -- though for very small degrees you can simply use the following brute force approach: PermGroupsOfGivenDegreeAndOrder := function ( d, n ) return Filtered(List(ConjugacyClassesSubgroups(SymmetricGroup(d)), Representative), G->Size(G)=n); end; For example: gap> PermGroupsOfGivenDegreeAndOrder(6,12); [ Group([ (3,6,4), (3,4)(5,6) ]), Group([ (1,5,3)(2,6,4), (1,2)(3,4) ]), Group([ (1,3)(4,6), (1,4)(2,6)(3,5) ]), Group([ (5,6), (2,3)(4,6) ]) ] gap> List(last,Size); [ 12, 12, 12, 12 ] By the way -- your example does not have degree 5, since 4 is fixed: gap> DegreeAction(Group((1,2,3),(1,5,2))); 4 Hope this helps, Stefan Kohl ----------------------------------------------------------------------------- http://www.gap-system.org/DevelopersPages/StefanKohl/ ----------------------------------------------------------------------------- From tkohl at math.bu.edu Mon Jul 28 04:07:39 2014 From: tkohl at math.bu.edu (Tim Kohl) Date: Sun, 27 Jul 2014 23:07:39 -0400 (EDT) Subject: [GAP Forum] Permutationgroups In-Reply-To: References: <002501cfa9b6$49381d30$dba85790$@ewald@balbec.de> Message-ID: Another not quite as general set of examples may be obtained by computing right regular representations. For example, you can compute right regular representations of all the groups of order 16. R16:=List(AllSmallGroups(16),G->Action(G,AsList(G),OnRight)); which will all be transitive and fixed point free. (In particular, the degree will equal the order.) You can also take a given group G and return all sub-groups of a given order 'n' nallsub:=function(G,n) local i,j,t,A,cG; A:=[]; cG:=Filtered(ConjugacyClassesSubgroups(G),x->Size(Representative(x))=n); for i in [1..Size(cG)] do t := AsList(RightTransversal(G,Normalizer(G,cG[i][1]))); for j in [1..Size(t)] do AddSet(A,ConjugateGroup(cG[i][1],t[j])); od; od; return(A); end; So if the group you pass to this is one of the regular subgroups of degree=order=d then this will (potentially) churn out examples of order n On Sun, July 27, 2014 5:17 pm, Kurt Ewald wrote: > > > how can I construct a Permutationgroup with given Order and Degree. > > > > for instance: GroupOrder 12 and Degree 5, I found by accident > > > > G:=<(1,2,3),(1,5,2)> > > You can find all transitive permutation groups of order n and degree d <= 30 by > > AllTransitiveGroups(DegreeAction,d,Size,n); > > For example: > > gap> AllTransitiveGroups(DegreeAction,6,Size,60); > [ L(6) = PSL(2,5) = A_5(6) ] > gap> AllTransitiveGroups(DegreeAction,6,Size,72); > [ F_36(6):2 = [S(3)^2]2 = S(3) wr 2 ] > gap> AllTransitiveGroups(DegreeAction,8,Size,32); > [ [1/4.cD(4)^2]2, 1/2[2^4]4, [4^2]2, E(8):E_4=[2^2]D(4), E(8):4=[1/4.eD(4)^2]2, > [2^3]4, 1/2[2^4]E(4)=[1/4.dD(4)^2]2, E(8):D_4=[2^3]2^2 ] > gap> AllTransitiveGroups(DegreeAction,24,Size,240); > [ t24n570, t24n571, t24n572, t24n573, t24n574, t24n575, t24n576, t24n577, t24n578 ] > > The data is taken from the GAP Transitive Groups Library, > cf. http://www.gap-system.org/Datalib/trans.html. > > If -- as your example suggests -- you are also interested in > intransitive groups, you maybe need to do some programming yourself -- > though for very small degrees you can simply use the following > brute force approach: > > PermGroupsOfGivenDegreeAndOrder := function ( d, n ) > > return Filtered(List(ConjugacyClassesSubgroups(SymmetricGroup(d)), > Representative), > G->Size(G)=n); > end; > > For example: > > gap> PermGroupsOfGivenDegreeAndOrder(6,12); > [ Group([ (3,6,4), (3,4)(5,6) ]), Group([ (1,5,3)(2,6,4), (1,2)(3,4) ]), > Group([ (1,3)(4,6), (1,4)(2,6)(3,5) ]), Group([ (5,6), (2,3)(4,6) ]) ] > gap> List(last,Size); > [ 12, 12, 12, 12 ] > > By the way -- your example does not have degree 5, since 4 is fixed: > > gap> DegreeAction(Group((1,2,3),(1,5,2))); > 4 > > Hope this helps, > > Stefan Kohl > > ----------------------------------------------------------------------------- > http://www.gap-system.org/DevelopersPages/StefanKohl/ > ----------------------------------------------------------------------------- > > > > > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From jdixon1 at bell.net Thu Jul 24 14:57:56 2014 From: jdixon1 at bell.net (J DIXON) Date: Thu, 24 Jul 2014 09:57:56 -0400 Subject: [GAP Forum] RandomMat with really random source In-Reply-To: <86C0E3E9-7C47-4653-97F2-C254B0AE5780@mcs.st-andrews.ac.uk> References: <3122F2EA-1CC5-4F54-8BAE-F894716425B8@mcs.st-andrews.ac.uk> <86C0E3E9-7C47-4653-97F2-C254B0AE5780@mcs.st-andrews.ac.uk> Message-ID: The original question was: how can you produce a different series of "random" elements each time? Surely in this case it is enough to have a procedure (perhaps using RealRandomSource) to produce a new seed and then run the standard generator from there? - John Dixon On 23/07/2014 6:12 PM, Alexander Konovalov wrote: > On 23 Jul 2014, at 22:54, Ha T. Lam wrote: > >> Dear Alexander, >> >> >> On Wed, Jul 23, 2014 at 5:40 PM, Alexander Konovalov wrote: >> Dear Ha, >> >> On 23 Jul 2014, at 22:19, Ha T. Lam wrote: >> >>> Dear GAP forum, >>> >>> I'm trying to generate random 2x2 matrices with entries from GF(947). >>> Normally, I would just use RandomMat(2,2,GF(947)), but I want to get >>> different results every time I start GAP. I found that RandomSource( r, dev >>> ) from the io package ( >>> http://www.gap-system.org/Manuals/pkg/io/doc/chap6.html) allows randomness >>> from /dev/random, but I don't know how to use it as the random source for >>> RandomMat. Any advice? >> This is doable - first you have to create a real random source: >> >> gap> rs:=RandomSource(IsRealRandomSource,"random"); >> >> >> Then you may create a list of all elements of GF(947) and pick up >> elements from it using "Random": >> >> ??gap> gf:=AsList(GF(947));; >> gap> Random(rs,gf); >> Z(947)^42 >> gap> Random(rs,gf); >> Z(947)^817 >> >> Now you may take the code for RandomMat from the library and adjust it to >> say ReallyRandomMat which will use the approach above instead of calling >> Random( GF(947) ); >> >> There is a warning, however. If it may be enough for you to use dev/urandom >> instead of dev/random, then it is advised to go for the 'urandom' option. >> I remember once we were very puzzled by the slow performance of GAP on the >> server where dev/random was used to generate some random strings. It was >> not possible to reproduce the slowdown at all while using GAP interactively. >> Then we figured out what happened: dev/random needs some noise in the >> entropy pool, and it may block when the pool is empty to wait for some more >> events to happen. There was a plenty of events when one was sitting in front >> of the keyboard; however, that was not the case on the server when GAP was >> running as a daemon. So please be aware of this feature. >> >> Hope this helps, >> Alexander >> ? >> ? >> T?hank you very much for the quick reply and the warning. I was trying to use 'random' instead of 'urandom' and was indeed puzzled by the speed decrease. In my code, I used ?List(GF(947)) instead of ?AsList(GF(947)). Do you know if this makes a difference? The manual only tells me that AsList gives roughly the same access time to elements. > There is some difference: AsList is an attribute and is not recomputed next time you call it: > > gap> f:=GF(947); > GF(947) > gap> AsList(f);;time; > 4 > gap> KnownAttributesOfObject(f); > [ "Size", "Representative", "Enumerator", "AsList", "OneImmutable", > "Characteristic", "GeneratorsOfDomain", "LeftActingDomain", > "MultiplicativeNeutralElement", "GeneratorsOfRing", > "GeneratorsOfRingWithOne", "Dimension", "DegreeOverPrimeField", > "GeneratorsOfDivisionRing", "PrimitiveRoot" ] > gap> AsList(f);;time; > 0 > > OTOH, List is a function which will return new mutable list each time you call it. Just compare > > gap> l:=AsList(f);; > gap> IsMutable(l); > false > > with > > gap> l:=List(f);; > gap> IsMutable(l); > true > > It's not too expensive for GF(947) though, and I guess that next calls to List will somehow reuse existing AsList, but still is less efficient. My assumption is that "random vs urandom" contributes much more to the difference in performance in this case. With larger primes, keeping a list of all elements of GF(p) will became an obstacle, indeed. My suggestion would be to use Enumerator (see `?Enumerator'), which may return an element of the collection (the field in this case) by its position, for example: > > gap> rs:=RandomSource(IsRealRandomSource,"random"); > > gap> p:=NextPrimeInt(1000000); > 1000003 > gap> gf:=GF(p); > GF(1000003) > gap> enum:=Enumerator(gf); > > gap> n:=Random(rs,[1..Size(gf)]); > 41332 > gap> enum[n]; > ZmodpZObj( 41331, 1000003 ) > gap> n:=Random(rs,[1..Size(gf)]); > 725956 > gap> enum[n]; > ZmodpZObj( 725955, 1000003 ) > > In this case you need to keep the range [1..Size(gf)] which is given just by the first and last elements instead of the whole list of elements of the field. Hope this will help. > > Best wishes > Alexander > > > >> I am also worried about working with a larger prime, would this method create an in-memory list of all the elements? Is there anyway to do a sort of "lazy evaluation"? >> >> Thank you, >> >> Ha >> > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From yassine_guer at hotmail.fr Mon Jul 28 19:24:52 2014 From: yassine_guer at hotmail.fr (yassine Guerboussa) Date: Mon, 28 Jul 2014 19:24:52 +0100 Subject: [GAP Forum] Adjoint groups of finite rings Message-ID: Dear colleagues, Let R be the ring of integers modulo p^n, p a prime. Let S be the ideal of the polynomial ring R[X], generated by X^{p+1} and X^p+pX. Is it possible to do the following calculation in GAP : 1. Compute the invariants of the additive group of the ring T= XR[X]/S. 2. Compute the series of ideals T^2, T^3,..., T^p. 3. Compute the invariants of the adjoint group of T. Thanks in advance. From tkohl at math.bu.edu Tue Jul 29 04:18:22 2014 From: tkohl at math.bu.edu (Tim Kohl) Date: Mon, 28 Jul 2014 23:18:22 -0400 (EDT) Subject: [GAP Forum] Adjoint groups of finite rings In-Reply-To: References: Message-ID: Try this: http://www.gap-system.org/Packages/circle.html -T On Mon, 28 Jul 2014, yassine Guerboussa wrote: > Dear colleagues, > > Let R be the ring of integers modulo p^n, p a prime. > Let S be the ideal of the polynomial ring R[X], generated by X^{p+1} and X^p+pX. > > Is it possible to do the following calculation in GAP : > 1. Compute the invariants of the additive group of the ring T= XR[X]/S. > 2. Compute the series of ideals T^2, T^3,..., T^p. > 3. Compute the invariants of the adjoint group of T. > > Thanks in advance. > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From frank.luebeck at math.rwth-aachen.de Tue Jul 29 13:34:07 2014 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Tue, 29 Jul 2014 14:34:07 +0200 Subject: [GAP Forum] RandomMat with really random source In-Reply-To: References: <3122F2EA-1CC5-4F54-8BAE-F894716425B8@mcs.st-andrews.ac.uk> <86C0E3E9-7C47-4653-97F2-C254B0AE5780@mcs.st-andrews.ac.uk> Message-ID: <20140729123407.GF20030@alkor.math.rwth-aachen.de> On Thu, Jul 24, 2014 at 09:57:56AM -0400, J DIXON wrote: > The original question was: how can you produce a different series of > "random" elements each time? Surely in this case it is enough to > have a procedure (perhaps using RealRandomSource) to produce a new > seed and then run the standard generator from there? > - John Dixon Dear Forum, Yes, this is the right suggestion. You just need a session dependent seed to reset the global random number generator which is used by all Random-functions in the GAP library. Here is how you can do this: If you have the IO-package installed put this before your code for which you want a different random-behaviour in different GAP sessions: ##################################################################### LoadPackage("io"); # better make sure IO is loaded at startup Reset(GlobalMersenneTwister, Random(RandomSource(IsRealRandomSource, "urandom"), 1, 2^512));; ##################################################################### Alternatively, you may also find a trick without the IO-package. For example, on a Linux system you could do: ##################################################################### Reset(GlobalMersenneTwister, Int(Filtered(Concatenation(DirectoryContents("/proc")), IsDigitChar)));; ##################################################################### We do not do this by default because we believe that having GAP sessions reproducible, even if they involve some pseudo-random computations, is more useful for debugging. With best regards, Frank -- /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Pontdriesch 14/16, \\\ 52062 Aachen, Germany /// E-mail: Frank.Luebeck at Math.RWTH-Aachen.De \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ From stefan at mcs.st-and.ac.uk Tue Jul 29 14:06:02 2014 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Tue, 29 Jul 2014 14:06:02 +0100 (BST) Subject: [GAP Forum] RandomMat with really random source In-Reply-To: <20140729123407.GF20030@alkor.math.rwth-aachen.de> References: <3122F2EA-1CC5-4F54-8BAE-F894716425B8@mcs.st-andrews.ac.uk> <86C0E3E9-7C47-4653-97F2-C254B0AE5780@mcs.st-andrews.ac.uk> <20140729123407.GF20030@alkor.math.rwth-aachen.de> Message-ID: Dear Forum, On Tue, July 29, 2014 1:34 pm, Frank L?beck wrote: > On Thu, Jul 24, 2014 at 09:57:56AM -0400, J DIXON wrote: >> The original question was: how can you produce a different series of >> "random" elements each time? Surely in this case it is enough to >> have a procedure (perhaps using RealRandomSource) to produce a new >> seed and then run the standard generator from there? >> - John Dixon > > Dear Forum, > > Yes, this is the right suggestion. You just need a session dependent seed > to reset the global random number generator which is used by all > Random-functions in the GAP library. Here is how you can do this: > > If you have the IO-package installed put this before your code for which you > want a different random-behaviour in different GAP sessions: > > ##################################################################### > LoadPackage("io"); # better make sure IO is loaded at startup > Reset(GlobalMersenneTwister, > Random(RandomSource(IsRealRandomSource, "urandom"), 1, 2^512));; > ##################################################################### This depends on the purpose you need the random numbers for -- if it is for cryptographic purposes, this is NOT the right suggestion, as the Mersenne Twister is not a cryptographically secure pseudorandom number generator. -- Citing from Wikipedia (http://en.wikipedia.org/wiki/Mersenne_twister): > The algorithm in its native form is not suitable for cryptography > (i.e. it is not a CSPRNG). The reason is that observing a sufficient number > of iterations (624 in the case of MT19937, since this is the size of the > state vector from which future iterations are produced) allows one to > predict all future iterations. Best regards, Stefan ----------------------------------------------------------------------------- http://www.gap-system.org/DevelopersPages/StefanKohl/ ----------------------------------------------------------------------------- From lovepgroups at gmail.com Wed Jul 30 05:18:01 2014 From: lovepgroups at gmail.com (abdulhakeem alayiwola) Date: Wed, 30 Jul 2014 04:18:01 +0000 Subject: [GAP Forum] i need help on how to calculate the order of any automorphism group. Message-ID: I am new to this forum. I need somebody to help me in order to use sagee to calculate the order of automorphism of any group.thanks From kurt.ewald at balbec.de Wed Jul 30 18:02:45 2014 From: kurt.ewald at balbec.de (Kurt Ewald) Date: Wed, 30 Jul 2014 19:02:45 +0200 Subject: [GAP Forum] Simple question Message-ID: <000b01cfac18$15c86180$41592480$@ewald@balbec.de> Hallo, G:=Group((1,2),(1,2,3,4));; N:=Group((1,3)(2,4),(1,2)(3,4));; hom:=NaturalHomomorphismByNormalSubgroup((G),(N)); p:=FactorGroup((G)); Group([f1,f2]) How can I get this FactorGroup as a PermutationGroup? Best Regards Kurt Ewald From max at quendi.de Wed Jul 30 20:46:09 2014 From: max at quendi.de (Max Horn) Date: Wed, 30 Jul 2014 21:46:09 +0200 Subject: [GAP Forum] Simple question In-Reply-To: <000b01cfac18$15c86180$41592480$@ewald@balbec.de> References: <000b01cfac18$15c86180$41592480$@ewald@balbec.de> Message-ID: <9F5E8018-0D88-41BB-8C73-5C2D6502CAAE@quendi.de> Dear Kurt, > Am 30.07.2014 um 19:02 schrieb "Kurt Ewald" : > > Hallo, > > > > G:=Group((1,2),(1,2,3,4));; N:=Group((1,3)(2,4),(1,2)(3,4));; > > hom:=NaturalHomomorphismByNormalSubgroup((G),(N)); > > p:=FactorGroup((G)); > > Group([f1,f2]) > > How can I get this FactorGroup as a PermutationGroup? Image(IsomorphismPermGroup(G/N)); Cheers, Max > > > > Best Regards > > > > Kurt Ewald > > > > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From marek at mitros.org Thu Jul 31 11:36:26 2014 From: marek at mitros.org (Marek Mitros) Date: Thu, 31 Jul 2014 12:36:26 +0200 Subject: [GAP Forum] Installing cvec package Message-ID: Hello, I am trying to use the cvec package to have compressed matrices over GF(2). But I do not see much difference - see below example log from my GAP session. I have installed newest GAP 4.7.5. I have 8 GB memory and system Windows 7 (64-bit). I have read in cvec package documentation that I should recompile or configure it ... "For example you have to specify 32-bit or 64-bit mode correctly!". But I don't know how to do it. Regards, Marek gap> g:=AtlasGroup("B"); Print("Baby defined\n"); Baby defined gap> ge:=GeneratorsOfGroup(g); a:=ge[1]; b:=ge[2]; [ , ] gap> gap> LoadPackage("cvec"); # compressed vectors and matrices over finite fields true gap> ca:=CMat(a); cb:=CMat(b); gap> gap> MemoryUsage(a); 2519320 gap> MemoryUsage(ca); 2500728 From alexk at mcs.st-andrews.ac.uk Thu Jul 31 12:04:45 2014 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Thu, 31 Jul 2014 12:04:45 +0100 Subject: [GAP Forum] Installing cvec package In-Reply-To: References: Message-ID: Hello Marek, On 31 Jul 2014, at 11:36, Marek Mitros wrote: > Hello, > > I am trying to use the cvec package to have compressed matrices over GF(2). > But I do not see much difference - see below example log from my GAP > session. Whatever will be the answer on the question above, you do not have to worry much about the question below :) GAP for Windows is supplied with compiled cvec binary, which is built using the 32-bit Cygwin installation. So you're running the 32-bit version of GAP anyhow. I have no information at the moment what will happen if one will install 64-bit version of Cygwin and compile GAP and some packages there - hopefully it will work. If anyone would like to try, call these commands first: ./configure make cygwin and then to build some packages (with kernel modules) call cd pkg/Browse ./configure make cd .. cd cvec-* ./configure make cd .. cd edim ./configure make cd .. cd io-* ./configure make cd .. cd orb-* ./configure make Best wishes Alexander > > I have installed newest GAP 4.7.5. I have 8 GB memory and system Windows 7 > (64-bit). I have read in cvec package documentation that I should recompile > or configure it ... "For example you have to specify 32-bit or 64-bit mode > correctly!". But I don't know how to do it. > > Regards, > Marek > > > gap> g:=AtlasGroup("B"); Print("Baby defined\n"); > > > > Baby defined > > gap> ge:=GeneratorsOfGroup(g); a:=ge[1]; b:=ge[2]; > > [ , over GF2> ] > > > > > > gap> > > gap> LoadPackage("cvec"); # compressed vectors and matrices over finite > fields > > true > > gap> ca:=CMat(a); cb:=CMat(b); > > > > > > gap> > > gap> MemoryUsage(a); > > 2519320 > > gap> MemoryUsage(ca); > > 2500728 > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From steve.linton at st-andrews.ac.uk Thu Jul 31 12:29:52 2014 From: steve.linton at st-andrews.ac.uk (Stephen Linton) Date: Thu, 31 Jul 2014 12:29:52 +0100 Subject: [GAP Forum] Installing cvec package In-Reply-To: References: Message-ID: <68440FF4-B12D-418E-B54E-24462AA111B3@st-andrews.ac.uk> Dear GAP Forum, Marek Mitros asked: > > I am trying to use the cvec package to have compressed matrices over GF(2). > But I do not see much difference - see below example log from my GAP > session. > This isn?t really surprising. GAP already supports compressed matrices over fields of order up to 256. The cvec package does not achieve more compression for these fields, but (a) may have faster methods for some operations and/or a better interface and (b) also supports space and time efficient arithmetic for larger fields. In your particular case, the matrices have roughly 19 million entries and the memory usages you report are not much over 19 million bits, so there is not much saving to be had. Steve > > gap> g:=AtlasGroup("B"); Print("Baby defined\n"); > > > > Baby defined > > gap> ge:=GeneratorsOfGroup(g); a:=ge[1]; b:=ge[2]; > > [ , over GF2> ] > > > > > > gap> > > gap> LoadPackage("cvec"); # compressed vectors and matrices over finite > fields > > true > > gap> ca:=CMat(a); cb:=CMat(b); > > > > > > gap> > > gap> MemoryUsage(a); > > 2519320 > > gap> MemoryUsage(ca); > > 2500728 > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From marek at mitros.org Fri Aug 1 08:23:27 2014 From: marek at mitros.org (Marek Mitros) Date: Fri, 1 Aug 2014 09:23:27 +0200 Subject: [GAP Forum] Installing cvec package - and memory issue Message-ID: Thank you for the answers I have received. I have another related problem - maybe you can help. I am trying to generate 1240 elements of BM8.2D conjugacy class - 8th maximal subgroup of baby monster group. Here is the code I tried. The problem is that my GAP session disappeared before it reach 800 elements. I started GAP session with -o 6G option, GasmanLimits() function show that only 4 GB has been set as max option. Anyway it should be enough - 2.5 MB * 1240 = 3GB. First trial: ------------- g:=AtlasGroup("B"); Print("Baby defined\n"); g8:=AtlasSubgroup(g,8); Print ("BM8 defined\n"); ge:=GeneratorsOfGroup(g8); a:=ge[1]; b:=ge[2]; c:=(a*b*b*b*b)^21; #1240 size cg which generate [2^30] Print("### Phase 1: Creating 2D class\n\n\n"); c2:=[c]; repeat c0:=c^PseudoRandom(g8); if not c0 in c2 then Add(c2,c0); if Size(c2) mod 100 =0 then Print(Size(c2),"\n"); Print(StringTime(Runtime()), "\n"); fi; fi; until Size(c2)=800; # the speed is 7 elements per 1 minute, so after 1/2 hour we should have 200 elements Second trial - I used orb package and Enumerate function. Result is the same - last log entry is 700 size. g8:=AtlasSubgroup("B",8); Print ("BM8 defined\n"); ge:=GeneratorsOfGroup(g8); a:=ge[1]; b:=ge[2]; c:=(a*b*b*b*b)^21; #1240 size cg which generate [2^30] o := Orb([a,b],c,OnPoints); Print(StringTime(Runtime()), "\n"); for k in 40+100*[0..12] do Enumerate(o,k); Print(Size(o), " elements generated\n"); Print(StringTime(Runtime()), "\n"); od; Any advice ? Regards, Marek On Thu, Jul 31, 2014 at 1:29 PM, Stephen Linton < steve.linton at st-andrews.ac.uk> wrote: > Dear GAP Forum, > > Marek Mitros asked: > > > > > I am trying to use the cvec package to have compressed matrices over > GF(2). > > But I do not see much difference - see below example log from my GAP > > session. > > > > This isn?t really surprising. GAP already supports compressed matrices > over fields of order up to 256. The cvec package does not achieve more > compression for these fields, but (a) may have faster methods for some > operations and/or a better interface and (b) also supports space and time > efficient arithmetic for larger fields. > > In your particular case, the matrices have roughly 19 million entries and > the memory usages you report are not much over 19 million bits, so there is > not much saving to be had. > > Steve > > > > > > gap> g:=AtlasGroup("B"); Print("Baby defined\n"); > > > > generators> > > > > Baby defined > > > > gap> ge:=GeneratorsOfGroup(g); a:=ge[1]; b:=ge[2]; > > > > [ , matrix > > over GF2> ] > > > > > > > > > > > > gap> > > > > gap> LoadPackage("cvec"); # compressed vectors and matrices over finite > > fields > > > > true > > > > gap> ca:=CMat(a); cb:=CMat(b); > > > > > > > > > > > > gap> > > > > gap> MemoryUsage(a); > > > > 2519320 > > > > gap> MemoryUsage(ca); > > > > 2500728 > > _______________________________________________ > > Forum mailing list > > Forum at mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > > From dmitrii.pasechnik at cs.ox.ac.uk Fri Aug 1 09:32:02 2014 From: dmitrii.pasechnik at cs.ox.ac.uk (Dmitrii Pasechnik) Date: Fri, 1 Aug 2014 09:32:02 +0100 Subject: [GAP Forum] Installing cvec package - and memory issue In-Reply-To: References: Message-ID: <20140801083202.GA3883@cs.ox.ac.uk> On Fri, Aug 01, 2014 at 09:23:27AM +0200, Marek Mitros wrote: > Thank you for the answers I have received. > > I have another related problem - maybe you can help. > > I am trying to generate 1240 elements of BM8.2D conjugacy class - 8th > maximal subgroup of baby monster group. Here is the code I tried. The > problem is that my GAP session disappeared before it reach 800 elements. I > started GAP session with -o 6G option, GasmanLimits() function show that > only 4 GB has been set as max option. Anyway it should be enough - 2.5 MB * > 1240 = 3GB. IIRC, you are running this on Windows with Cygwin 32bit, and this just might be above the memory limits imposed by this environment. If you must stay on Windows, people reported success building GAP from source on 64-bit Cygwin. There it should be free from this. HTH, Dmitrii > > First trial: > ------------- > g:=AtlasGroup("B"); Print("Baby defined\n"); > g8:=AtlasSubgroup(g,8); Print ("BM8 defined\n"); > ge:=GeneratorsOfGroup(g8); a:=ge[1]; b:=ge[2]; > c:=(a*b*b*b*b)^21; #1240 size cg which generate [2^30] > Print("### Phase 1: Creating 2D class\n\n\n"); > c2:=[c]; > repeat c0:=c^PseudoRandom(g8); > if not c0 in c2 then > Add(c2,c0); if Size(c2) mod 100 =0 then Print(Size(c2),"\n"); > Print(StringTime(Runtime()), "\n"); fi; > fi; > until Size(c2)=800; # the speed is 7 elements per 1 minute, so > after 1/2 hour we should have 200 elements > Second trial - I used orb package and Enumerate function. Result is the > same - last log entry is 700 size. > > g8:=AtlasSubgroup("B",8); Print ("BM8 defined\n"); > ge:=GeneratorsOfGroup(g8); a:=ge[1]; b:=ge[2]; > c:=(a*b*b*b*b)^21; #1240 size cg which generate [2^30] > o := Orb([a,b],c,OnPoints); > Print(StringTime(Runtime()), "\n"); > for k in 40+100*[0..12] do > Enumerate(o,k); > Print(Size(o), " elements generated\n"); > Print(StringTime(Runtime()), "\n"); > od; > Any advice ? > > Regards, > Marek > > On Thu, Jul 31, 2014 at 1:29 PM, Stephen Linton < > steve.linton at st-andrews.ac.uk> wrote: > > > Dear GAP Forum, > > > > Marek Mitros asked: > > > > > > > > I am trying to use the cvec package to have compressed matrices over > > GF(2). > > > But I do not see much difference - see below example log from my GAP > > > session. > > > > > > > This isn?t really surprising. GAP already supports compressed matrices > > over fields of order up to 256. The cvec package does not achieve more > > compression for these fields, but (a) may have faster methods for some > > operations and/or a better interface and (b) also supports space and time > > efficient arithmetic for larger fields. > > > > In your particular case, the matrices have roughly 19 million entries and > > the memory usages you report are not much over 19 million bits, so there is > > not much saving to be had. > > > > Steve > > > > > > > > > > gap> g:=AtlasGroup("B"); Print("Baby defined\n"); > > > > > > > generators> > > > > > > Baby defined > > > > > > gap> ge:=GeneratorsOfGroup(g); a:=ge[1]; b:=ge[2]; > > > > > > [ , > matrix > > > over GF2> ] > > > > > > > > > > > > > > > > > > gap> > > > > > > gap> LoadPackage("cvec"); # compressed vectors and matrices over finite > > > fields > > > > > > true > > > > > > gap> ca:=CMat(a); cb:=CMat(b); > > > > > > > > > > > > > > > > > > gap> > > > > > > gap> MemoryUsage(a); > > > > > > 2519320 > > > > > > gap> MemoryUsage(ca); > > > > > > 2500728 > > > _______________________________________________ > > > Forum mailing list > > > Forum at mail.gap-system.org > > > http://mail.gap-system.org/mailman/listinfo/forum > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From kurt.ewald at balbec.de Sat Aug 2 09:22:20 2014 From: kurt.ewald at balbec.de (Kurt Ewald) Date: Sat, 2 Aug 2014 10:22:20 +0200 Subject: [GAP Forum] Homomorphism Message-ID: <001a01cfae2a$e18234e0$a4869ea0$@ewald@balbec.de> Hallo, s4 := Group((1,2,3,4),(1,2));; s3 := Group((1,2,3),(1,2));; hom := GroupHomomorphismByImages( s4 , s3, GeneratorsOfGroup(s4), [(1,2),(2,3)]; What is [(1,2),(2,3)] and how can I get this list in other examples? Best Regards Kurt Ewald From dmitrii.pasechnik at cs.ox.ac.uk Sat Aug 2 10:17:28 2014 From: dmitrii.pasechnik at cs.ox.ac.uk (Dima Pasechnik) Date: Sat, 2 Aug 2014 10:17:28 +0100 Subject: [GAP Forum] Homomorphism In-Reply-To: <53dca394.2216c20a.3c82.ffffdc92SMTPIN_ADDED_BROKEN@mx.google.com> References: <53dca394.2216c20a.3c82.ffffdc92SMTPIN_ADDED_BROKEN@mx.google.com> Message-ID: <20140802091726.GA3892@nash.cs.ox.ac.uk> On Sat, Aug 02, 2014 at 10:22:20AM +0200, Kurt Ewald wrote: > s4 := Group((1,2,3,4),(1,2));; s3 := Group((1,2,3),(1,2));; > > > > hom := GroupHomomorphismByImages( s4 , s3, GeneratorsOfGroup(s4), > [(1,2),(2,3)]; > > > > What is [(1,2),(2,3)] and how can I get this list in other examples? this is a list of generators of s3 so that the original generators of s4 are mapped to by hom. If you know the kernel of the homomorphism then you can create the quotient group: e.g. in this case set gap> h:=Subgroup(s4,[(1,2)(3,4),(1,3)(2,4)]);; gap> s3f:=s4/h;; # this creates a finitely presented group # or better you can do gap> hom1:=ActionHomomorphism(s4,RightCosets(s4,h),OnRight);; gap> Image(hom1); # this is S_3 in a regular representation HTH, Dmitrii > > > > Best Regards > > > > Kurt Ewald > > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From max at quendi.de Sat Aug 2 12:43:30 2014 From: max at quendi.de (Max Horn) Date: Sat, 2 Aug 2014 13:43:30 +0200 Subject: [GAP Forum] Homomorphism In-Reply-To: <001a01cfae2a$e18234e0$a4869ea0$@ewald@balbec.de> References: <001a01cfae2a$e18234e0$a4869ea0$@ewald@balbec.de> Message-ID: <27FFC586-97D5-4D06-B2E3-6CA173B3E432@quendi.de> > Am 02.08.2014 um 10:22 schrieb "Kurt Ewald" : > > Hallo, > > s4 := Group((1,2,3,4),(1,2));; s3 := Group((1,2,3),(1,2));; > > > > hom := GroupHomomorphismByImages( s4 , s3, GeneratorsOfGroup(s4), > [(1,2),(2,3)]; > > > > What is [(1,2),(2,3)] and how can I get this list in other examples? You already got a reply, but in addition I would also recommend reading the GAP manual entry on this, see http://www.gap-system.org/Manuals/doc/ref/chap40.html Cheers, Max > > > > Best Regards > > > > Kurt Ewald > > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From e.obrien at auckland.ac.nz Sat Aug 2 18:13:46 2014 From: e.obrien at auckland.ac.nz (Eamonn O'Brien) Date: Sun, 03 Aug 2014 05:13:46 +1200 Subject: [GAP Forum] Kalman Visiting Fellowship in Mathematics at the University of Auckland Message-ID: <53DD1C4A.8030406@auckland.ac.nz> Dear Colleagues: I would be grateful if you can draw the attention of your colleagues to a new prestigious Visiting Fellowship available in mathematics at the University of Auckland. The purpose of the Kalman Visiting Fellowship is to enable a ?rising star? in mathematics and its applications to visit the University of Auckland and to participate in the intellectual life of the University. The Fellowship is for a person within 10 years of PhD. It is worth NZ$10,000, and can be spent on travel, accommodation, or other associated expenses. To apply, send the following to eadeansoffice at sfac.auckland.ac.nz: * a one page proposal of the research to be carried out; * a letter of invitation from your proposed host in the Department of Mathematics or other department at the University; * a CV (including qualifications, appointments, awards and publications); * the names and contact details of two potential referees. The closing date for applications is 5 September 2014. Informal enquiries may be addressed to Full details of the Fellowship can be found at http://www.science.auckland.ac.nz/en/about/notices/notices-2014/2014/07/kalman-visting-fellowship.html Best wishes. Eamonn O'Brien From kurt.ewald at balbec.de Mon Aug 4 14:59:13 2014 From: kurt.ewald at balbec.de (Kurt Ewald) Date: Mon, 4 Aug 2014 15:59:13 +0200 Subject: [GAP Forum] Copy and Paste Message-ID: <000e01cfafec$45e4d100$d1ae7300$@ewald@balbec.de> Hallo, does exist the possibility to make Copy(from the Gap-Side) and Past( to a paper)? Best wishes Kurt Ewald From akinleye_sa at yahoo.com Mon Aug 4 23:02:29 2014 From: akinleye_sa at yahoo.com (Ayoola Akinleye) Date: Mon, 4 Aug 2014 15:02:29 -0700 Subject: [GAP Forum] My contact mail address is still akinleye_sa@yahoo.com Thank you Message-ID: <1407189749.15506.YahooMailAndroidMobile@web140202.mail.bf1.yahoo.com> Sent from Yahoo Mail on Android From e.obrien at auckland.ac.nz Tue Aug 5 07:43:15 2014 From: e.obrien at auckland.ac.nz (Eamonn O'Brien) Date: Tue, 05 Aug 2014 18:43:15 +1200 Subject: [GAP Forum] PhD scholarships in Math at University of Auckland In-Reply-To: References: Message-ID: <53E07D03.9070007@auckland.ac.nz> Dear Colleagues: I write to ask that you draw attention to potential applicants of various scholarship opportunities at Auckland for PhD students ? and particularly the new "Sir Vaughan Jones" PhD scholarship. The closing date is 30th August. Seewww.math.auckland.ac.nz/en/for/future-postgraduates/phd-scholarships.html and the email below for further details and links to other information. Best wishes. Eamonn On 27/03/2014, at 12:42, Marston Conder wrote: > > Dear pubbers > > This is just to let you know that if you have any students interested in coming to > the University of Auckland (New Zealand) to do a PhD, then we have a good number > of scholarship opportunities in place just now. > > These include a new "Sir Vaughan Jones" PhD scholarship, as well as others > funded from research grants. > > See www.math.auckland.ac.nz/en/for/future-postgraduates/phd-scholarships.html > for further details and links to other information. > > Also a colourful poster advertising the scholarships is available for download from > www.math.auckland.ac.nz/~conder/Auckland-PhDScholarships.pdf if you really > really want to help us advertise them. > > Academic staff in the Department with interests/expertise in group theory are > - Jianbei An > - Marston Conder > - Dimitri Leemans > - Alastair Litterick (postdoc) > - Ben Martin > - Eamonn O?Brien. > > See www.math.auckland.ac.nz/en/about/our-research/research-groups/algebra-and-combinatorics-research-group.html > for more details about our research interests and recent student projects. > > Best wishes > Marston Conder > > > From sven.reichard at tu-dresden.de Tue Aug 5 08:32:53 2014 From: sven.reichard at tu-dresden.de (Sven Reichard) Date: Tue, 05 Aug 2014 09:32:53 +0200 Subject: [GAP Forum] Copy and Paste In-Reply-To: <000e01cfafec$45e4d100$d1ae7300$@ewald@balbec.de> References: <000e01cfafec$45e4d100$d1ae7300$@ewald@balbec.de> Message-ID: <53E088A5.6080102@tu-dresden.de> Hello Kurt, copy and paste is something that is provided by the terminal that GAP runs in, or by the operating system. If your terminal or OS do not provide this functionality, GAP's 'LogTo' command might be useful; check the manual for details. Cheers, Sven Reichard. -- Institut f?r Algebra TU Dresden On 08/04/2014 03:59 PM, Kurt Ewald wrote: > Hallo, > > > > does exist the possibility > > to make Copy(from the Gap-Side) and Past( to a paper)? > > > > Best wishes > > > > Kurt Ewald > > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From stefan at mcs.st-and.ac.uk Tue Aug 5 11:46:43 2014 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Tue, 5 Aug 2014 11:46:43 +0100 (BST) Subject: [GAP Forum] Release of RCWA 3.7.0 Message-ID: Dear Forum, this is to announce the release of RCWA 3.7.0. The new version is available for download on the packages' homepage http://www.gap-system.org/DevelopersPages/StefanKohl/rcwa.html . 'RCWA' stands for [R]esidue-[C]lass-[W]ise [A]ffine groups, and the package permits computation in certain countable permutation groups acting on Z, Z^2 and other suitable rings. A short video illustrating the action of a specific example of a residue-class-wise affine group on Z^2 is available on YouTube here: https://www.youtube.com/watch?v=mIkoxzr0yAk For the full list of added and improved functionality in this and former versions, see the file rcwa/CHANGES in the distribution. If you use RCWA in some of your work, then please let me know. -- I am interested very much in any applications of this package. Also please let me know if you have problems with this package, if you wish to make comments or suggestions or if you find bugs. Wishing you fun and success using this package, Stefan Kohl ---------------------------------------------------------------------- http://www.gap-system.org/DevelopersPages/StefanKohl/ ---------------------------------------------------------------------- From bernhard.boehmler at googlemail.com Wed Aug 6 11:27:42 2014 From: bernhard.boehmler at googlemail.com (Bernhard Boehmler) Date: Wed, 6 Aug 2014 12:27:42 +0200 Subject: [GAP Forum] question concerning the GAP package qpa (find all ideals with a certain property) Message-ID: Dear GAP forum, I have the following question concerning the GAP package qpa. Let k be a fixed finite field and let Q be a fixed quiver. Let kQ denote the associated path algebra. Since k is finite, there are only finitely many admissible ideals I of kQ with the property I^u=0 for some fixed natural number u. I would like to know, if there is a way to tell qpa to find all such ideals, and, if so, how to do this. With other words, my input is: [k,Q,u] and the output should be a list containing all quiver algebras kQ/I as entries. Thanks for the help! From w_becker at hotmail.com Sun Aug 10 19:52:21 2014 From: w_becker at hotmail.com (Walter Becker) Date: Sun, 10 Aug 2014 10:52:21 -0800 Subject: [GAP Forum] downloads from GAP site Message-ID: I recently had the operating system changed from XP to Windows 7 (home edition) and also have Norton antivirus installed. Also Internet Explored version 11 is the browser. Previous to this I had no problems down-loading from GAP now I do. Is this problem found by others.? The installation was done for us by a local computer technician. I had to use Google chrome to get the latest version of GAP. Any comments? Walter Becker From w_becker at hotmail.com Sun Aug 10 19:59:11 2014 From: w_becker at hotmail.com (Walter Becker) Date: Sun, 10 Aug 2014 10:59:11 -0800 Subject: [GAP Forum] Running Gap on Windows 2000NT Message-ID: This is an odd question: Has anyone tried to use GAP on the old operating system Windows 2000NT? The interface menu-gap appears not to work on Windows 7 but I think it did on 2000Nt, Hence the interest. This NT machine is not connected to the Internet so downloads must be done on the windows 7 machine and this was a problem as well--see a previous GAP forum note. Walter Becker From dmitrii.pasechnik at cs.ox.ac.uk Mon Aug 11 09:59:33 2014 From: dmitrii.pasechnik at cs.ox.ac.uk (Dima Pasechnik) Date: Mon, 11 Aug 2014 09:59:33 +0100 Subject: [GAP Forum] Running Gap on Windows 2000NT In-Reply-To: References: Message-ID: <20140811085933.GB9445@nash.cs.ox.ac.uk> On Sun, Aug 10, 2014 at 10:59:11AM -0800, Walter Becker wrote: > This is an odd question: > > Has anyone tried to use GAP on the old > operating system Windows 2000NT? recent Cygwin (which is necessary to run GAP) is not tested on Windows 2000. The oldest Windows version supported is XP by Cygwin. This seems to imply that recent GAP might not work on Win2000. HTH, Dmitrii From dmitrii.pasechnik at cs.ox.ac.uk Mon Aug 11 10:03:45 2014 From: dmitrii.pasechnik at cs.ox.ac.uk (Dima Pasechnik) Date: Mon, 11 Aug 2014 10:03:45 +0100 Subject: [GAP Forum] downloads from GAP site In-Reply-To: References: Message-ID: <20140811090345.GC9445@nash.cs.ox.ac.uk> On Sun, Aug 10, 2014 at 10:52:21AM -0800, Walter Becker wrote: > I recently had the operating system changed from > XP to Windows 7 (home edition) and also have > Norton antivirus installed. Also Internet Explored version 11 > is the browser. > Previous to this I had no problems down-loading > from GAP now I do. Is this problem found by others.? > The installation was done for us by a local computer technician. > > I had to use Google chrome to get the latest version of > GAP. > > Any comments? well, indeed, use chrome or firefox. IE is known to be hostile towards zip archives, particularly ones containing executable code. (same applies to antivirus software in general, too) HTH, Dmitrii From dandextender1947 at gmail.com Sat Aug 16 01:02:19 2014 From: dandextender1947 at gmail.com (Dan D) Date: Fri, 15 Aug 2014 20:02:19 -0400 Subject: [GAP Forum] Brauer Character Table of PSL(2,16) mod 2 Message-ID: How shall I get the Brauer Character Table of PSL(2,16) mod 2 using GAP, or as a matter of fact for any group G mod p (p|o(G))? Thanks Dan From alexk at mcs.st-and.ac.uk Sun Aug 17 16:50:59 2014 From: alexk at mcs.st-and.ac.uk (alexk at mcs.st-and.ac.uk) Date: Sun, 17 Aug 2014 16:50:59 +0100 (BST) Subject: [GAP Forum] Brauer Character Table of PSL(2,16) mod 2 In-Reply-To: References: Message-ID: > How shall I get the Brauer Character Table of PSL(2,16) mod 2 using GAP, > or > as a matter of fact for any group G mod p (p|o(G))? > > Thanks > > Dan You have to ensure that CTblLib package is loaded (the default setting is that it is loaded with GAP, so hopefully this will be the case). Then do: gap> t:=CharacterTable("PSL(2,16)"); CharacterTable( "L2(16)" ) gap> t mod 2; BrauerTable( "L2(16)", 2 ) HTH, Alexander From sebastienpalcoux at yahoo.fr Sun Aug 17 19:18:49 2014 From: sebastienpalcoux at yahoo.fr (Palcoux Sebastien) Date: Sun, 17 Aug 2014 19:18:49 +0100 Subject: [GAP Forum] =?utf-8?q?The_next_generation_of_the_GAP_Data_Library?= =?utf-8?q?_=E2=80=9CTransitive_Permutation_Groups=E2=80=9D=3F?= Message-ID: <1408299529.3010.YahooMailNeo@web172406.mail.ir2.yahoo.com> Hi,?? The current GAP Data Library "Transitive Permutation Groups" contains the transitive permutation groups of degree up to 30 Question: The next generation of this Data Library will be with degree up to what? available when?? Best regards,Sebastien Palcoux From kurt.ewald at balbec.de Mon Aug 18 13:07:32 2014 From: kurt.ewald at balbec.de (Kurt Ewald) Date: Mon, 18 Aug 2014 14:07:32 +0200 Subject: [GAP Forum] Lattice Message-ID: <000d01cfbadc$fdde9cf0$f99bd6d0$@ewald@balbec.de> Hallo, Maple has 2 important commands Lattice(G) and DrawSubgroupLattice(G) Has gap a correspondent command? Best Regards Kurt Ewald From alexk at mcs.st-and.ac.uk Mon Aug 18 15:01:20 2014 From: alexk at mcs.st-and.ac.uk (alexk at mcs.st-and.ac.uk) Date: Mon, 18 Aug 2014 15:01:20 +0100 (BST) Subject: [GAP Forum] Lattice In-Reply-To: <000d01cfbadc$fdde9cf0$f99bd6d0$@ewald@balbec.de> References: <000d01cfbadc$fdde9cf0$f99bd6d0$@ewald@balbec.de> Message-ID: Dear Kurt, Yes, there is LatticeSubgroups to calculate it: http://www.gap-system.org/Manuals/doc/ref/chap39.html#X7B104E2C86166188 and you may use DotFileLatticeSubgroups to save the image to a file, or use the XGAP package (http://www.gap-system.org/Packages/xgap.html, does not work under Windows) to explore the lattice interactively (see e.g. the picture at http://www.gap-system.org/ukrgap/Examples/XGAP2.png Hope this helps, Alexander > Hallo, > > > > Maple has 2 important commands > > > > Lattice(G) and > > > > DrawSubgroupLattice(G) > > > > Has gap a correspondent command? > > > > Best Regards > > > > Kurt Ewald > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From pabourdi at laas.fr Mon Aug 18 16:17:10 2014 From: pabourdi at laas.fr (Pierre-Alain BOURDIL) Date: Mon, 18 Aug 2014 17:17:10 +0200 Subject: [GAP Forum] Converting a permutation to a list Message-ID: <53F218F6.4030708@laas.fr> Greetings, i'm looking for a function , say F, such that F((1,2,3)(5,6)) = [[1,2,3],[5,6]]. My goal is to use the output list as index to fetch string from a separate list (eg: ["a","b","c","d","e"]). I need to express permutation on the latter (eg: ("a","b","c")("d","e")) ) , do some computation using gap permutation group, and convert back the output of gap to permutation of these strings. I've seen PermList and ListPerm but it's not a cyclic notation. There's possibly better way to make a permutation acting on an ordred set of string but my point is the input/output with gap. -- Pierre-Alain BOURDIL pabourdi at laas.fr pierre-alain.bourdil at fr.thalesgroup.com From alexk at mcs.st-and.ac.uk Mon Aug 18 16:32:49 2014 From: alexk at mcs.st-and.ac.uk (alexk at mcs.st-and.ac.uk) Date: Mon, 18 Aug 2014 16:32:49 +0100 (BST) Subject: [GAP Forum] Converting a permutation to a list In-Reply-To: <53F218F6.4030708@laas.fr> References: <53F218F6.4030708@laas.fr> Message-ID: Dear Pierre, > Greetings, > > i'm looking for a function , say F, such that > > F((1,2,3)(5,6)) = [[1,2,3],[5,6]]. Try this: gap> CyclesOfTransformation(AsTransformation((1,2,3)(5,6))); [ [ 1, 2, 3 ], [ 4 ], [ 5, 6 ] ]gap> CyclesOfTransformation(AsTransformation((1,2,3)(5,6))); [ [ 1, 2, 3 ], [ 4 ], [ 5, 6 ] ] (This is available since GAP 4.7 so please make it sure you are using a fresh release) To convert such notation back see e.g. Jack Schmidt's reply here: http://math.stackexchange.com/questions/815071/list-vs-permutation-representation/815167#815167 Hope this helps Alexander > > My goal is to use the output list as index to fetch string from a > separate list (eg: ["a","b","c","d","e"]). I need to express > permutation on the latter (eg: ("a","b","c")("d","e")) ) , do some > computation using gap permutation group, and convert back the output of > gap to permutation of these strings. > > I've seen PermList and ListPerm but it's not a cyclic notation. There's > possibly better way to make a permutation acting on an ordred set of > string but my point is the input/output with gap. > > -- > Pierre-Alain BOURDIL > pabourdi at laas.fr > pierre-alain.bourdil at fr.thalesgroup.com > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From nikos.ap at gmail.com Mon Aug 18 16:40:08 2014 From: nikos.ap at gmail.com (Nikos Apostolakis) Date: Mon, 18 Aug 2014 11:40:08 -0400 Subject: [GAP Forum] Converting a permutation to a list In-Reply-To: <53F218F6.4030708@laas.fr> References: <53F218F6.4030708@laas.fr> Message-ID: On Mon, Aug 18, 2014 at 11:17 AM, Pierre-Alain BOURDIL wrote: > Greetings, > > i'm looking for a function , say F, such that > > F((1,2,3)(5,6)) = [[1,2,3],[5,6]]. > How about: gap> Cycles((1,2,3)(5,6), MovedPoints((1,2,3)(5,6))); [ [ 1, 2, 3 ], [ 5, 6 ] ] HTH, Nikos -- ?? ??????? ?? ?? ?????? ???????. ??? ?????? ???????? ????? ??????? ?????????????. The frivolous can call me frivolous. In serious matters I've always been most diligent. K. P. Kavafy From tkohl at math.bu.edu Mon Aug 18 16:44:38 2014 From: tkohl at math.bu.edu (Tim Kohl) Date: Mon, 18 Aug 2014 11:44:38 -0400 (EDT) Subject: [GAP Forum] Converting a permutation to a list In-Reply-To: <53F218F6.4030708@laas.fr> References: <53F218F6.4030708@laas.fr> Message-ID: gap> allsupports:=function(perm,n) return(Filtered(Cycles(perm,[1..n]),x->Size(x)>1));end; gap> allsupports((1,2,3)(5,6),6); [ [ 1, 2, 3 ], [ 5, 6 ] ] -T On Mon, 18 Aug 2014, Pierre-Alain BOURDIL wrote: > Greetings, > > i'm looking for a function , say F, such that > > F((1,2,3)(5,6)) = [[1,2,3],[5,6]]. > > My goal is to use the output list as index to fetch string from a separate > list (eg: ["a","b","c","d","e"]). I need to express permutation on the latter > (eg: ("a","b","c")("d","e")) ) , do some computation using gap permutation > group, and convert back the output of gap to permutation of these strings. > > I've seen PermList and ListPerm but it's not a cyclic notation. There's > possibly better way to make a permutation acting on an ordred set of string > but my point is the input/output with gap. > > -- Dr. Timothy Kohl | Desktop Services Specialist, Sr. Boston University| IT Help Center | IS&T 617.353.8203 | tkohl at bu.edu Listen. Learn. Lead. From jdm3 at st-and.ac.uk Mon Aug 18 17:03:35 2014 From: jdm3 at st-and.ac.uk (James Mitchell) Date: Mon, 18 Aug 2014 18:03:35 +0200 Subject: [GAP Forum] Converting a permutation to a list In-Reply-To: <582d9a4c07d84085b9d75b5f590c6c9f@UOS-DUN-CAS1.st-andrews.ac.uk> References: <53F218F6.4030708@laas.fr> <582d9a4c07d84085b9d75b5f590c6c9f@UOS-DUN-CAS1.st-andrews.ac.uk> Message-ID: Or without the extra function: gap> Cycles((1,2,3)(5,6), [1,2,3,5,6]); [ [ 1, 2, 3 ], [ 5, 6 ] ] or if p is you permutation: Cycles(p, MovedPoints(p)); On 18 August 2014 17:44, Tim Kohl wrote: > > > > gap> allsupports:=function(perm,n) return(Filtered(Cycles(perm,[1..n]),x->Size(x)>1));end; > > gap> allsupports((1,2,3)(5,6),6); > [ [ 1, 2, 3 ], [ 5, 6 ] ] > > -T > > > On Mon, 18 Aug 2014, Pierre-Alain BOURDIL wrote: > >> Greetings, >> >> i'm looking for a function , say F, such that >> >> F((1,2,3)(5,6)) = [[1,2,3],[5,6]]. >> >> My goal is to use the output list as index to fetch string from a separate >> list (eg: ["a","b","c","d","e"]). I need to express permutation on the latter >> (eg: ("a","b","c")("d","e")) ) , do some computation using gap permutation >> group, and convert back the output of gap to permutation of these strings. >> >> I've seen PermList and ListPerm but it's not a cyclic notation. There's >> possibly better way to make a permutation acting on an ordred set of string >> but my point is the input/output with gap. >> >> > > -- > Dr. Timothy Kohl | Desktop Services Specialist, Sr. > Boston University| IT Help Center | IS&T > 617.353.8203 | tkohl at bu.edu > Listen. Learn. Lead. > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum -- James Mitchell tinyurl.com/jdmitchell The University of St Andrews is a charity registered in Scotland : No SC013532 From hulpke at math.colostate.edu Mon Aug 18 17:31:40 2014 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Mon, 18 Aug 2014 10:31:40 -0600 Subject: [GAP Forum] =?windows-1252?q?The_next_generation_of_the_GAP_Data_?= =?windows-1252?q?Library_=93Transitive_Permutation_Groups=94=3F?= In-Reply-To: <1408299529.3010.YahooMailNeo@web172406.mail.ir2.yahoo.com> References: <1408299529.3010.YahooMailNeo@web172406.mail.ir2.yahoo.com> Message-ID: <9BCCC4A2-FED1-4805-8263-51B221D3E4B8@math.colostate.edu> Dear Forum, Dear Sebastien Palcoux, > The current GAP Data Library "Transitive Permutation Groups" contains the transitive permutation groups of degree up to 30 > > Question: The next generation of this Data Library will be with degree up to what? available when? It would help to know what degrees you are looking for. At this time I don't have any concrete plans for a ``new release'' of the data library. The transitive groups have been classified for degrees 32 by Cannon and Holt. The last time I asked they still wanted to test their data before releasing it. The total number of groups (over 2 million) also would make this a rather large database. I have lists for degrees 33,34,35 (but these are very easily done). Degree 36 seems to be borderline in that calculations take longer than our system administrator lets me keep a computer without rebooting. Best wishes, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From sebastienpalcoux at yahoo.fr Mon Aug 18 19:02:54 2014 From: sebastienpalcoux at yahoo.fr (Palcoux Sebastien) Date: Mon, 18 Aug 2014 19:02:54 +0100 Subject: [GAP Forum] =?utf-8?q?The_next_generation_of_the_GAP_Data_Library?= =?utf-8?q?_=E2=80=9CTransitive_Permutation_Groups=E2=80=9D=3F?= In-Reply-To: <9BCCC4A2-FED1-4805-8263-51B221D3E4B8@math.colostate.edu> References: <1408299529.3010.YahooMailNeo@web172406.mail.ir2.yahoo.com> <9BCCC4A2-FED1-4805-8263-51B221D3E4B8@math.colostate.edu> Message-ID: <1408384974.17412.YahooMailNeo@web172401.mail.ir2.yahoo.com> Dear Alexander Hulpke, I look the inclusions of finite groups with distributive lattice.??For more details, see the MO question: What's the ratio of inclusions of finite groups with a distributive lattice? (http://mathoverflow.net/q/178643/34538) Thanks to the GAP Data Library ?Transitive Permutation Groups?, we obtain that for the inclusionof index <= 31, this ratio is more than 70%. So such inclusions are the majority! I would like to know if this majority is a "small index" phenomenon, or if it's true in general. A computation beyond of index 31 could be even more relevant. Best regards, Sebastien Palcoux Le Lundi 18 ao?t 2014 18h33, Alexander Hulpke a ?crit : Dear Forum, Dear Sebastien Palcoux, > The current GAP Data Library "Transitive Permutation Groups" contains the transitive permutation groups of degree up to 30 > > Question: The next generation of this Data Library will be with degree up to what? available when?? It would help to know what degrees you are looking for. At this time I don't have any concrete plans for a ``new release'' of the data library. The transitive groups have been classified for degrees 32 by Cannon and Holt. The last time I asked they still wanted to test their data before releasing it. The total number of groups (over 2 million) also would make this a rather large database. I have lists for degrees 33,34,35 (but these are very easily done). Degree 36 seems to be borderline in that calculations take longer than our system administrator lets me keep a computer without rebooting. Best wishes, ? ? Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From maalawo at yahoo.com Mon Aug 18 21:40:56 2014 From: maalawo at yahoo.com (EniOluwafe, Michael) Date: Mon, 18 Aug 2014 13:40:56 -0700 Subject: [GAP Forum] Find all sugroups of dihedral groups of order 2^{n}, n =3, 4, ... Message-ID: <1408394456.91403.YahooMailNeo@web120701.mail.ne1.yahoo.com> Dear GAP Forum, ? Has anyone tried to use GAP to find all subgroups of dihedral groups of order ?2^{n}, n = 3, 4, ... ? ? Thanks?? for your help. Michael. From oyvind.solberg at math.ntnu.no Tue Aug 19 13:58:26 2014 From: oyvind.solberg at math.ntnu.no (=?ISO-8859-1?Q?=D8yvind_Solberg?=) Date: Tue, 19 Aug 2014 14:58:26 +0200 Subject: [GAP Forum] [GAP FORUM]: question concerning the GAP package qpa (find all, ideals with a certain property) In-Reply-To: References: Message-ID: <53F349F2.6080903@math.ntnu.no> > Message: 3 > Date: Wed, 6 Aug 2014 12:27:42 +0200 > From: Bernhard Boehmler > To:forum at gap-system.org > Subject: [GAP Forum] question concerning the GAP package qpa (find all > ideals with a certain property) > Message-ID: > > Content-Type: text/plain; charset=UTF-8 > > Dear GAP forum, > > I have the following question concerning the GAP package qpa. > > Let k be a fixed finite field and let Q be a fixed quiver. Let kQ denote > the associated path algebra. > > Since k is finite, there are only finitely many admissible ideals I of kQ > with the property I^u=0 for some fixed natural number u. > > I would like to know, if there is a way to tell qpa to find all such > ideals, and, if so, how to do this. > > With other words, my input is: [k,Q,u] and the output should be a list > containing all quiver algebras kQ/I as entries. > > Thanks for the help! Dear Bernhard and the GAP Forum, I am a little bit confused concerning "... admissible ideals I of kQ with the property I^u=0 for some fixed natural number u". Are you restricting to quivers without oriented cycles? Or are you thinking of quotients A=kQ/I, where I is an admissible ideal such that the radical of A, rad A, satisfies (rad A)^u = 0? I assume that you are considering the latter case. Let J be the ideal generated by the arrows in the path algebra kQ. Consider the ring R = kQ/J^u. This is a finite dimensional algebra. You are asking for all twosided ideals of R which is contained in J^2/J^u, or equivalently, all sub-bimodules of J^2/J^u, that is, all submodules of J^2/J^u as a module over the enveloping algebra R^e of R (that is, R\otimes_k R^\op, which can be constructed in QPA). So actually you are asking: given a module M over a finite dimensional quotient (in your case R^e) of a path algebra, find all the submodules of M. This, I think, can very soon become a CPU and a memory intensive undertaking, given the "correct" examples. However, in this situation one knows the simple modules, so one could inductively build all submodules from either constructing all maximal submodules of M or all simple submodules of M, where the situation which creates "problems" would be when the top or the socle of M is not a basic module. It should however be possible to write such an algorithm within QPA, but I don't know anybody having done it yet. So, to my knowledge there is no way to find all such ideals. I hope that these comments are helpful. Best wishes, Oeyvind Solberg. From gordon.royle at uwa.edu.au Wed Aug 20 02:48:42 2014 From: gordon.royle at uwa.edu.au (Gordon Royle) Date: Wed, 20 Aug 2014 09:48:42 +0800 Subject: [GAP Forum] =?windows-1252?q?The_next_generation_of_the_GAP_Data_?= =?windows-1252?q?Library_=93Transitive_Permutation_Groups=94=3F?= In-Reply-To: <1408299529.3010.YahooMailNeo@web172406.mail.ir2.yahoo.com> References: <1408299529.3010.YahooMailNeo@web172406.mail.ir2.yahoo.com> Message-ID: On 18 Aug 2014, at 2:18 am, Palcoux Sebastien > wrote: Hi, The current GAP Data Library "Transitive Permutation Groups" contains the transitive permutation groups of degree up to 30 Question: The next generation of this Data Library will be with degree up to what? available when? There are 2801324 transitive groups of degree 32 162 transitive groups of degree 33 115 transitive groups of degree 34 407 transtiive groups of degree 35 121279 transitive groups of degree 36 11 transitive groups of degree 37 89 transitive groups of degree 38 333 transitive groups of degree 39 and lots and lots of degree 40 Gordon Professor Gordon Royle School of Mathematics and Statistics University of Western Australia Gordon.Royle at uwa.edu.au From sebastienpalcoux at yahoo.fr Wed Aug 20 09:51:37 2014 From: sebastienpalcoux at yahoo.fr (Palcoux Sebastien) Date: Wed, 20 Aug 2014 09:51:37 +0100 Subject: [GAP Forum] =?utf-8?q?The_next_generation_of_the_GAP_Data_Library?= =?utf-8?q?_=E2=80=9CTransitive_Permutation_Groups=E2=80=9D=3F?= In-Reply-To: References: <1408299529.3010.YahooMailNeo@web172406.mail.ir2.yahoo.com> Message-ID: <1408524697.39945.YahooMailNeo@web172405.mail.ir2.yahoo.com> Thank you! Among these transitive groups $G$, how many (per degree) gives an inclusion $(G_1 \subset G)$ with a distributive lattice of intermediate subgroups?(that's my initial goal) S?bastien. Le Mercredi 20 ao?t 2014 3h48, Gordon Royle a ?crit : On 18 Aug 2014, at 2:18 am, Palcoux Sebastien wrote: Hi,?? > >The current GAP Data Library "Transitive Permutation Groups" contains the transitive permutation groups of degree up to 30 > >Question: The next generation of this Data Library will be with degree up to what? available when?? > There are 2801324 ?transitive groups of degree 32 162 transitive groups of degree 33 115 transitive groups of degree 34 407 transtiive groups of degree 35 121279 transitive groups of degree 36 11 transitive groups of degree 37 89 transitive groups of degree 38 333 transitive groups of degree 39 and lots and lots of degree 40 Gordon Professor Gordon Royle School of Mathematics and Statistics University of Western Australia Gordon.Royle at uwa.edu.au From tkohl at math.bu.edu Wed Aug 20 15:05:50 2014 From: tkohl at math.bu.edu (Tim Kohl) Date: Wed, 20 Aug 2014 10:05:50 -0400 (EDT) Subject: [GAP Forum] normalizers of normalizers of groups of order 64 Message-ID: Hi, I have computed (in GAP) regular representations of the 267 groups of order 64 and also computed the normalizers (holomorphs) of these groups in S_64. What I'm after now are the normalizers of *these* holomorphs, but there are 37 of them that I can't get my hands on. When I run these in the background, the Linux box reports a General Protection Fault in gap. However the process seems to be running, and has not grown larger than the amount of memory I allocated. The sizes of 36 of these 37 holomorphs I'm trying to compute the normalizer of are pure powers of 2 which probably only adds to their complexity, but I was able to get the other 230 without too much difficulty. Any ideas? Thanks. -Tim From max at quendi.de Wed Aug 20 20:37:15 2014 From: max at quendi.de (Max Horn) Date: Wed, 20 Aug 2014 21:37:15 +0200 Subject: [GAP Forum] normalizers of normalizers of groups of order 64 In-Reply-To: References: Message-ID: <9B18EB92-9792-421F-BAE0-28CB352F8149@quendi.de> Dear Tim, On 20.08.2014, at 16:05, Tim Kohl wrote: > > > Hi, > > I have computed (in GAP) regular representations of the 267 groups of order 64 and also computed > the normalizers (holomorphs) of these groups in S_64. > > What I'm after now are the normalizers of *these* holomorphs, but there are 37 of > them that I can't get my hands on. When I run these in the background, the Linux box > reports a General Protection Fault in gap. However the process seems to be running, and > has not grown larger than the amount of memory I allocated. > > The sizes of 36 of these 37 holomorphs I'm trying to compute the normalizer of are pure powers of 2 > which probably only adds to their complexity, but I was able to get the other 230 without too > much difficulty. I am not sure whether I understand you correctly: Are you saying that the difficulties arise in the case where the holomorph of a holomorph is a 2-group? In that case, the following might help: For those groups which are pure powers of 2, working with pc groups instead of permutation groups is much more efficient. We can exploit that the holomorph is just the semi-direct product of G with Aut(G): Holomorph := G -> SemidirectProduct(AutomorphismGroup(G), G); Now if G is a p-group, then the "autpgrp" package can compute its automorphism group quite effectively, as done in the following: # Get the groups of order 64 gs:=AllSmallGroups(64);; # Trick: force GAP to notice these are p-groups, so that the # efficient autpgrp methods are used. ForAll(gs,IsPGroup); # Compute the holomorphs. Takes about 30 seconds on my laptop. hs := List(gs, Holomorph);; # Now again force GAP to detect p-groups among the holomorphs Number(hs, IsPGroup); # 211 are p-groups, leaving 56 which are not # You want to compute the holomorphs of the groups in hs. # Whenever G is a p-group and Aut(G) is solvable, we can compute # the holomorph relatively efficiently: # Let's restrict to the p-groups. hsp:=Filtered(hs,IsPGroup);; # Compute their automorphism groups -- about 8 minutes on my laptop # Note that GAP stores these, so the following holomorph # computations can reuse them. I only do it separately to be able # to see which part of the computation takes what time. List(hsp, AutomorphismGroup);; # Compute the holomorphs for all G where Aut(G) is a solvable group ksp := []; for i in [1..Length(hsp)] do if IsBound(ksp[i]) then continue; fi; Print(i,": "); if not IsSolvableGroup(AutomorphismGroup(hsp[i])) then Print("Aut(G) is not solvable skipping\n"); continue; fi; ksp[i]:=Holomorph(hsp[i]); Print("|Hol(G)| = ", Size(ksp[i]), "\n"); od; This skipped just two groups and took another 8 minutes. Note that some of these groups we computed are not 2-groups. The reason I skipped over groups with non-solvable automorphism groups is that for these groups, GAP is forced to represent the result as a large degree permutation group, instead of a more efficient pc presentation; thus this is slow and uses tons of memory, so I didn't want to bother with it, esp. since (as I understand it) you are mainly interested in the groups where the end result is a 2-group. Hope that helps, Max From tkohl at math.bu.edu Wed Aug 20 21:15:57 2014 From: tkohl at math.bu.edu (Tim Kohl) Date: Wed, 20 Aug 2014 16:15:57 -0400 (EDT) Subject: [GAP Forum] normalizers of normalizers of groups of order 64 In-Reply-To: <9B18EB92-9792-421F-BAE0-28CB352F8149@quendi.de> References: <9B18EB92-9792-421F-BAE0-28CB352F8149@quendi.de> Message-ID: Hi, I'm loooking at certain G such that |G|=64 where if |HolG| is a (sizable) power of 2 then computing Normalizer(SymmetricGroup(64),HolG) is problematic. I'll try your idea with using pc-groups, I've generally been working with regular subgroups of S_n and their normalizers which are naturally isomorphic to HolG and then computing the normalizer of the holomorph within the same ambient S_n. Thanks. -T On Wed, 20 Aug 2014, Max Horn wrote: > Dear Tim, > > On 20.08.2014, at 16:05, Tim Kohl wrote: > > > > > > > Hi, > > > > I have computed (in GAP) regular representations of the 267 groups of order 64 and also computed > > the normalizers (holomorphs) of these groups in S_64. > > > > What I'm after now are the normalizers of *these* holomorphs, but there are 37 of > > them that I can't get my hands on. When I run these in the background, the Linux box > > reports a General Protection Fault in gap. However the process seems to be running, and > > has not grown larger than the amount of memory I allocated. > > > > The sizes of 36 of these 37 holomorphs I'm trying to compute the normalizer of are pure powers of 2 > > which probably only adds to their complexity, but I was able to get the other 230 without too > > much difficulty. > > I am not sure whether I understand you correctly: Are you saying that the difficulties arise in the case where the holomorph of a holomorph is a 2-group? In that case, the following might help: > > > For those groups which are pure powers of 2, working with pc groups instead of permutation groups is much more efficient. We can exploit that the holomorph is just the semi-direct product of G with Aut(G): > > Holomorph := G -> SemidirectProduct(AutomorphismGroup(G), G); > > > Now if G is a p-group, then the "autpgrp" package can compute its automorphism group quite effectively, as done in the following: > > > # Get the groups of order 64 > gs:=AllSmallGroups(64);; > > # Trick: force GAP to notice these are p-groups, so that the > # efficient autpgrp methods are used. > ForAll(gs,IsPGroup); > > # Compute the holomorphs. Takes about 30 seconds on my laptop. > hs := List(gs, Holomorph);; > > # Now again force GAP to detect p-groups among the holomorphs > Number(hs, IsPGroup); # 211 are p-groups, leaving 56 which are not > > # You want to compute the holomorphs of the groups in hs. > # Whenever G is a p-group and Aut(G) is solvable, we can compute > # the holomorph relatively efficiently: > > # Let's restrict to the p-groups. > hsp:=Filtered(hs,IsPGroup);; > > # Compute their automorphism groups -- about 8 minutes on my laptop > # Note that GAP stores these, so the following holomorph > # computations can reuse them. I only do it separately to be able > # to see which part of the computation takes what time. > List(hsp, AutomorphismGroup);; > > # Compute the holomorphs for all G where Aut(G) is a solvable group > ksp := []; > for i in [1..Length(hsp)] do > if IsBound(ksp[i]) then continue; fi; > Print(i,": "); > if not IsSolvableGroup(AutomorphismGroup(hsp[i])) then > Print("Aut(G) is not solvable skipping\n"); > continue; > fi; > ksp[i]:=Holomorph(hsp[i]); > Print("|Hol(G)| = ", Size(ksp[i]), "\n"); > od; > > This skipped just two groups and took another 8 minutes. > Note that some of these groups we computed are not 2-groups. The reason I > skipped over groups with non-solvable automorphism groups is that for these > groups, GAP is forced to represent the result as a large degree permutation > group, instead of a more efficient pc presentation; thus this is slow and > uses tons of memory, so I didn't want to bother with it, esp. since (as I > understand it) you are mainly interested in the groups where the end result > is a 2-group. > > > Hope that helps, > Max > > -- Dr. Timothy Kohl | Desktop Services Specialist, Sr. Boston University| IT Help Center | IS&T 617.353.8203 | tkohl at bu.edu Listen. Learn. Lead. From hulpke at math.colostate.edu Thu Aug 21 00:10:53 2014 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Wed, 20 Aug 2014 17:10:53 -0600 Subject: [GAP Forum] normalizers of normalizers of groups of order 64 In-Reply-To: References: Message-ID: Dear Forum, Dear Tim Kohl, > Hi, > > I have computed (in GAP) regular representations of the 267 groups of order 64 and also computed > the normalizers (holomorphs) of these groups in S_64. > > What I'm after now are the normalizers of *these* holomorphs, but there are 37 of > them that I can't get my hands on. The cost of a normalizer calculation is in 0-th approximation proportional to the index. Calculating normalizers in S_n naively thus becomes very expensive. To help with this, the code in GAP tries to descend immediately to a wreath product of groups of smaller degree by identifying a block system that must be fixed by the normalizer. So far the code in GAP only used the size of blocks as an invariant, which in your case doesn't always have a unique candidate. (So this is the reason for the slowness). One thing one can do about it easily is to use not only the block sizes, but also (as far as the transitive groups library is available) the type of the action on the blocks (and of a block stabilizer on its block). I will add such code to the next release. (I append the change done in lib/grpprmsya.gi, in case anyone is interested in a temporary patch.) Doing so helps with some, but not all cases, still leaving 14 groups. I think can get the remaining normalizers with other methods, but this is not yet code that would be releasable as a general method. Best, Alexander Hulpke BindGlobal("OneNormalizerfixedBlockSystem",function(G,dom) -local b, bl; +local b, bl,prop; + + # what properties can we find easily + prop:=function(s) + local p; + s:=Set(dom{s}); + p:=[Length(s)]; + + # type of action on blocks + if TRANS_AVAILABLE=true and Length(dom)/Length(s)<=TRANSDEGREES then + Add(p,TransitiveIdentification(Action(G,Orbit(G,s,OnSets),OnSets))); + fi; + + # type of action on blocks + if TRANS_AVAILABLE=true and Length(s)<=TRANSDEGREES then + Add(p,TransitiveIdentification(Action(Stabilizer(G,s,OnSets),s))); + fi; + + if Length(p)=1 then + return p[1]; + else + return p; + fi; + end; + if IsPrimeInt(Length(dom)) then # no need trying return fail; fi; b:=AllBlocks(Action(G,dom)); - bl:=Collected(List(b,Length)); + b:=ShallowCopy(b); + + #Print(List(b,Length),"\n"); + bl:=Collected(List(b,prop)); bl:=Filtered(bl,i->i[2]=1); if Length(bl)=0 then Info(InfoGroup,3,"No normalizerfixed block found"); return fail; fi; - b:=First(b,i->Length(i)=bl[1][1]); + b:=First(b,i->prop(i)=bl[1][1]); Info(InfoGroup,3,"Normalizerfixed block system blocksize ",Length(b)); return Set(Orbit(G,Set(dom{b}),OnSets)); end); From g6299304p at rezozer.net Fri Aug 22 14:43:07 2014 From: g6299304p at rezozer.net (Jerome BENOIT) Date: Fri, 22 Aug 2014 15:43:07 +0200 Subject: [GAP Forum] GAP server at St-Andrews Message-ID: <53F748EB.6040309@rezozer.net> Hello Folks, is the GAP server at St-Andrews ( chrystal.mcs.st-andrews.ac.uk ) still working ? Thanks in advance, Jerome From alexk at mcs.st-and.ac.uk Fri Aug 22 14:54:15 2014 From: alexk at mcs.st-and.ac.uk (Alexander KONOVALOV) Date: Fri, 22 Aug 2014 14:54:15 +0100 Subject: [GAP Forum] GAP server at St-Andrews In-Reply-To: <53F748EB.6040309@rezozer.net> References: <53F748EB.6040309@rezozer.net> Message-ID: <32972C1E-8B7B-43AA-A55E-4F20C73B6383@mcs.st-andrews.ac.uk> Hello Jerome, If you mean GAP SCSCP demo server, it?s up an running there. I?ve just tested that I can reach it (and actually I have a set up when I am notified automatically if it?s down). Could it be a firewall issue on your or our side? If this is what you?re trying to do, please confirm, and I will check that it?s not on our side. Thanks Alexander On 22 Aug 2014, at 14:43, Jerome BENOIT wrote: > Hello Folks, > > is the GAP server at St-Andrews ( chrystal.mcs.st-andrews.ac.uk ) still working ? > > Thanks in advance, > Jerome > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From g6299304p at rezozer.net Fri Aug 22 15:01:52 2014 From: g6299304p at rezozer.net (Jerome BENOIT) Date: Fri, 22 Aug 2014 16:01:52 +0200 Subject: [GAP Forum] GAP server at St-Andrews In-Reply-To: <32972C1E-8B7B-43AA-A55E-4F20C73B6383@mcs.st-andrews.ac.uk> References: <53F748EB.6040309@rezozer.net> <32972C1E-8B7B-43AA-A55E-4F20C73B6383@mcs.st-andrews.ac.uk> Message-ID: <53F74D50.6020209@rezozer.net> Hello Alexander, thanks for the prompt reply: so it might be a firewall issue on my side; I will let you know. On 22/08/14 15:54, Alexander KONOVALOV wrote: > Hello Jerome, > > If you mean GAP SCSCP demo server, it?s up an running there. I?ve just tested that I can > reach it (and actually I have a set up when I am notified automatically if it?s down). Could > it be a firewall issue on your or our side? If this is what you?re trying to do, please confirm, > and I will check that it?s not on our side. > > Thanks > Alexander Best wishes, Jerome > > > On 22 Aug 2014, at 14:43, Jerome BENOIT wrote: > >> Hello Folks, >> >> is the GAP server at St-Andrews ( chrystal.mcs.st-andrews.ac.uk ) still working ? >> >> Thanks in advance, >> Jerome >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum > From g6299304p at rezozer.net Fri Aug 22 15:41:42 2014 From: g6299304p at rezozer.net (Jerome BENOIT) Date: Fri, 22 Aug 2014 16:41:42 +0200 Subject: [GAP Forum] GAP server at St-Andrews In-Reply-To: <53F74D50.6020209@rezozer.net> References: <53F748EB.6040309@rezozer.net> <32972C1E-8B7B-43AA-A55E-4F20C73B6383@mcs.st-andrews.ac.uk> <53F74D50.6020209@rezozer.net> Message-ID: <53F756A6.9050909@rezozer.net> Hello Again, On 22/08/14 16:01, Jerome BENOIT wrote: > Hello Alexander, > > thanks for the prompt reply: so it might be a firewall issue on my > side; I will let you know. > > On 22/08/14 15:54, Alexander KONOVALOV wrote: >> Hello Jerome, >> >> If you mean GAP SCSCP demo server, it?s up an running there. I?ve >> just tested that I can reach it (and actually I have a set up when >> I am notified automatically if it?s down). Could it be a firewall >> issue on your or our side? If this is what you?re trying to do, >> please confirm, and I will check that it?s not on our side. Actually I can ping the server, but I cannot connect to it: I did not try before with my current setup, so I cannot say for sure that every is fine here. It would be nice if someone somewhere in the rest of the world can do a quick test. Thanks in advance, Jerome >> >> Thanks Alexander > > Best wishes, Jerome > >> >> >> On 22 Aug 2014, at 14:43, Jerome BENOIT >> wrote: >> >>> Hello Folks, >>> >>> is the GAP server at St-Andrews ( chrystal.mcs.st-andrews.ac.uk ) >>> still working ? >>> >>> Thanks in advance, Jerome >>> >>> _______________________________________________ Forum mailing >>> list Forum at mail.gap-system.org >>> http://mail.gap-system.org/mailman/listinfo/forum >> > > _______________________________________________ Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From alexk at mcs.st-and.ac.uk Fri Aug 22 16:31:35 2014 From: alexk at mcs.st-and.ac.uk (alexk at mcs.st-and.ac.uk) Date: Fri, 22 Aug 2014 16:31:35 +0100 (BST) Subject: [GAP Forum] GAP server at St-Andrews In-Reply-To: <53F756A6.9050909@rezozer.net> References: <53F748EB.6040309@rezozer.net> <32972C1E-8B7B-43AA-A55E-4F20C73B6383@mcs.st-andrews.ac.uk> <53F74D50.6020209@rezozer.net> <53F756A6.9050909@rezozer.net> Message-ID: > Hello Again, > > On 22/08/14 16:01, Jerome BENOIT wrote: >> Hello Alexander, >> >> thanks for the prompt reply: so it might be a firewall issue on my >> side; I will let you know. >> >> On 22/08/14 15:54, Alexander KONOVALOV wrote: >>> Hello Jerome, >>> >>> If you mean GAP SCSCP demo server, it?s up an running there. I?ve >>> just tested that I can reach it (and actually I have a set up when >>> I am notified automatically if it?s down). Could it be a firewall >>> issue on your or our side? If this is what you?re trying to do, >>> please confirm, and I will check that it?s not on our side. > > Actually I can ping the server, but I cannot connect to it: > I did not try before with my current setup, so I cannot say > for sure that every is fine here. > It would be nice if someone somewhere in the rest of the world > can do a quick test. In this case, here there are instructions: try to reproduce this, please gap> LoadPackage("scscp"); true gap> PingSCSCPservice("chrystal.mcs.st-andrews.ac.uk",26133); true gap> EvaluateBySCSCP("WS_Factorial",[10],"chrystal.mcs.st-andrews.ac.uk",26133); rec( attributes := [ [ "call_id", "chrystal.mcs.st-andrews.ac.uk.0.0.0.0:26133:6647:YCcKo4ZS" ] ], object := 3628800 ) gap> (of course, the package banner and the call ID may look differently) Thanks Alexander > > Thanks in advance, > Jerome > >>> >>> Thanks Alexander >> >> Best wishes, Jerome >> >>> >>> >>> On 22 Aug 2014, at 14:43, Jerome BENOIT >>> wrote: >>> >>>> Hello Folks, >>>> >>>> is the GAP server at St-Andrews ( chrystal.mcs.st-andrews.ac.uk ) >>>> still working ? >>>> >>>> Thanks in advance, Jerome >>>> >>>> _______________________________________________ Forum mailing >>>> list Forum at mail.gap-system.org >>>> http://mail.gap-system.org/mailman/listinfo/forum >>> >> >> _______________________________________________ Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum >> > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From g6299304p at rezozer.net Fri Aug 22 16:44:14 2014 From: g6299304p at rezozer.net (Jerome BENOIT) Date: Fri, 22 Aug 2014 17:44:14 +0200 Subject: [GAP Forum] GAP server at St-Andrews In-Reply-To: References: <53F748EB.6040309@rezozer.net> <32972C1E-8B7B-43AA-A55E-4F20C73B6383@mcs.st-andrews.ac.uk> <53F74D50.6020209@rezozer.net> <53F756A6.9050909@rezozer.net> Message-ID: <53F7654E.6040907@rezozer.net> Hi, On 22/08/14 17:31, alexk at mcs.st-and.ac.uk wrote: >> Hello Again, >> >> On 22/08/14 16:01, Jerome BENOIT wrote: >>> Hello Alexander, >>> >>> thanks for the prompt reply: so it might be a firewall issue on my >>> side; I will let you know. >>> >>> On 22/08/14 15:54, Alexander KONOVALOV wrote: >>>> Hello Jerome, >>>> >>>> If you mean GAP SCSCP demo server, it?s up an running there. I?ve >>>> just tested that I can reach it (and actually I have a set up when >>>> I am notified automatically if it?s down). Could it be a firewall >>>> issue on your or our side? If this is what you?re trying to do, >>>> please confirm, and I will check that it?s not on our side. >> >> Actually I can ping the server, but I cannot connect to it: >> I did not try before with my current setup, so I cannot say >> for sure that every is fine here. >> It would be nice if someone somewhere in the rest of the world >> can do a quick test. > > In this case, here there are instructions: try to reproduce this, please > > gap> LoadPackage("scscp"); > true I can reach this point. > gap> PingSCSCPservice("chrystal.mcs.st-andrews.ac.uk",26133); I cannot reach this one: it is freezing. > true > gap> > EvaluateBySCSCP("WS_Factorial",[10],"chrystal.mcs.st-andrews.ac.uk",26133); > rec( > attributes := > [ > [ "call_id", > "chrystal.mcs.st-andrews.ac.uk.0.0.0.0:26133:6647:YCcKo4ZS" > ] ], object := 3628800 ) > gap> > > > (of course, the package banner and the call ID may look differently) > > Thanks > Alexander Thanks, Jerome > > >> >> Thanks in advance, >> Jerome >> >>>> >>>> Thanks Alexander >>> >>> Best wishes, Jerome >>> >>>> >>>> >>>> On 22 Aug 2014, at 14:43, Jerome BENOIT >>>> wrote: >>>> >>>>> Hello Folks, >>>>> >>>>> is the GAP server at St-Andrews ( chrystal.mcs.st-andrews.ac.uk ) >>>>> still working ? >>>>> >>>>> Thanks in advance, Jerome >>>>> >>>>> _______________________________________________ Forum mailing >>>>> list Forum at mail.gap-system.org >>>>> http://mail.gap-system.org/mailman/listinfo/forum >>>> >>> >>> _______________________________________________ Forum mailing list >>> Forum at mail.gap-system.org >>> http://mail.gap-system.org/mailman/listinfo/forum >>> >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum >> > From g6299304p at rezozer.net Sat Aug 23 13:42:42 2014 From: g6299304p at rezozer.net (Jerome BENOIT) Date: Sat, 23 Aug 2014 14:42:42 +0200 Subject: [GAP Forum] GAP SCSCP server: proper termination Message-ID: <53F88C42.9060103@rezozer.net> Hello Forum ! What is the proper way to terminate a GAP SCSCP server ? In particular is there any SIG that terminates it cleanly ? Ad, in general, does GAP response to some special SIG ? Thanks in advance, Jerome From savicky at cs.cas.cz Wed Aug 27 14:00:09 2014 From: savicky at cs.cas.cz (Petr Savicky) Date: Wed, 27 Aug 2014 15:00:09 +0200 Subject: [GAP Forum] vertex-transitive non-Cayley graphs on 16 vertices Message-ID: <20140827130009.GA18725@cs.cas.cz> Dear GAP Forum: I am interested in vertex-transitive graphs on n=2^k vertices, which are not Cayley graphs. According to the available literature, such graphs exist for every k \ge 4. In particular, there are 8 such graphs for n=16. Are some of these graphs available in GAP or GRAPE package? I did not find any library of graphs in the base part of GAP and GRAPE web documentation. However, there may be additional resources, which I am not aware of. Thank you in advance for any information concerning these graphs. Petr Savicky. From l.h.soicher at qmul.ac.uk Wed Aug 27 15:39:26 2014 From: l.h.soicher at qmul.ac.uk (Leonard Soicher) Date: Wed, 27 Aug 2014 14:39:26 +0000 Subject: [GAP Forum] vertex-transitive non-Cayley graphs on 16 vertices In-Reply-To: <20140827130009.GA18725@cs.cas.cz> References: <20140827130009.GA18725@cs.cas.cz> Message-ID: <1409150366917.53681@qmul.ac.uk> Hi Petr, Although GRAPE contains functions to construct certain graphs (but not the graphs you are asking about), it does not contain a library of graphs. Regards, Leonard ________________________________________ From: forum-bounces at gap-system.org on behalf of Petr Savicky Sent: 27 August 2014 14:00 To: forum at gap-system.org Subject: [GAP Forum] vertex-transitive non-Cayley graphs on 16 vertices Dear GAP Forum: I am interested in vertex-transitive graphs on n=2^k vertices, which are not Cayley graphs. According to the available literature, such graphs exist for every k \ge 4. In particular, there are 8 such graphs for n=16. Are some of these graphs available in GAP or GRAPE package? I did not find any library of graphs in the base part of GAP and GRAPE web documentation. However, there may be additional resources, which I am not aware of. Thank you in advance for any information concerning these graphs. Petr Savicky. _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From gordon.royle at uwa.edu.au Thu Aug 28 02:16:05 2014 From: gordon.royle at uwa.edu.au (Gordon Royle) Date: Thu, 28 Aug 2014 09:16:05 +0800 Subject: [GAP Forum] vertex-transitive non-Cayley graphs on 16 vertices In-Reply-To: <20140827130009.GA18725@cs.cas.cz> References: <20140827130009.GA18725@cs.cas.cz> Message-ID: <3D6C35F1-914B-4874-94CA-51095B56F64C@uwa.edu.au> Data on transitive groups is available at http://staffhome.ecm.uwa.edu.au/~00013890/remote/trans/index.html Apologies for the constantly changing URL, but our university IT is constantly restructured? The file for noncay16 contains these lines Os`a`_HA_OA?OJGF?x?Hg O~a at OtJP?I_rAC at Gc@W_N O|qC?{eH_wbSKOQ[gdqC{ O~i]ED[ZGM_zK`KQ`TWRN OvytUFCFyNC{E\FeMHzP] O~z\dzEqjdngBlB]c\we~ O}rtt]]}NqL}VyL}FRyJ~ O~~~ffVm~[Pn^RFnh^xN Each line is a graph stored in a special format devised by Brendan McKay and called ?g6? or ?graph6?. The computer algebra system Sage (sagemath.org) can read g6 and then draw you a picture or whatever else you want, or you can download a g6 reader from Brendan?s own website. Enjoy Gordon On 27 Aug 2014, at 9:00 pm, Petr Savicky > wrote: Dear GAP Forum: I am interested in vertex-transitive graphs on n=2^k vertices, which are not Cayley graphs. According to the available literature, such graphs exist for every k \ge 4. In particular, there are 8 such graphs for n=16. Are some of these graphs available in GAP or GRAPE package? I did not find any library of graphs in the base part of GAP and GRAPE web documentation. However, there may be additional resources, which I am not aware of. Thank you in advance for any information concerning these graphs. Petr Savicky. _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum Professor Gordon Royle School of Mathematics and Statistics University of Western Australia Gordon.Royle at uwa.edu.au From msugandha.87 at gmail.com Fri Aug 29 08:22:25 2014 From: msugandha.87 at gmail.com (Sugandha Maheshwary) Date: Fri, 29 Aug 2014 12:52:25 +0530 Subject: [GAP Forum] Basic Query Message-ID: Hi, It is written in the introduction of GAP that it is free and open software. I wish to access programs (in GAP syntax) behind certain basic commands which are not part of any package. For example, Socle(G); IsMonomial(G); etc. I can find the acknowledgements and tutorials but not able to trace the exact programs behind these. I need to make certain changes for my use for which the programs are needed. Kindly help. I have been using Version 4.4.12(2008). Many Thanks. Sugandha From savicky at cs.cas.cz Fri Aug 29 08:35:55 2014 From: savicky at cs.cas.cz (Petr Savicky) Date: Fri, 29 Aug 2014 09:35:55 +0200 Subject: [GAP Forum] vertex-transitive non-Cayley graphs on 16 vertices In-Reply-To: <3D6C35F1-914B-4874-94CA-51095B56F64C@uwa.edu.au> References: <20140827130009.GA18725@cs.cas.cz> <3D6C35F1-914B-4874-94CA-51095B56F64C@uwa.edu.au> Message-ID: <20140829073555.GA25721@cs.cas.cz> On Thu, Aug 28, 2014 at 09:16:05AM +0800, Gordon Royle wrote: > Data on transitive groups is available at > > http://staffhome.ecm.uwa.edu.au/~00013890/remote/trans/index.html > > Apologies for the constantly changing URL, but our university IT is constantly restructured? > > The file for noncay16 contains these lines > > Os`a`_HA_OA?OJGF?x?Hg > O~a at OtJP?I_rAC at Gc@W_N > O|qC?{eH_wbSKOQ[gdqC{ > O~i]ED[ZGM_zK`KQ`TWRN > OvytUFCFyNC{E\FeMHzP] > O~z\dzEqjdngBlB]c\we~ > O}rtt]]}NqL}VyL}FRyJ~ > O~~~ffVm~[Pn^RFnh^xN > > Each line is a graph stored in a special format devised by Brendan McKay and called ?g6? or ?graph6?. > > The computer algebra system Sage (sagemath.org) can read g6 and then draw you a picture or whatever else you want, or you can download a g6 reader from Brendan?s own website. Thank you very much for this information. I installed Sage and computed the automorphism groups and the sets of the edges of these graphs. Petr Savicky. From caj21 at st-andrews.ac.uk Fri Aug 29 08:38:41 2014 From: caj21 at st-andrews.ac.uk (Christopher Jefferson) Date: Fri, 29 Aug 2014 07:38:41 +0000 Subject: [GAP Forum] Basic Query In-Reply-To: References: Message-ID: If you look in the ?lib? directory of your GAP installation, you will find the code to these methods. There are several different implementations of both Socle and IsMonomial, so be sure to not stop at the first one you find! In some cases following how GAP works can be complex, the function ?TraceMethods? is useful for finding out exactly what GAP code is being called in a particular program. Chris On 29/08/2014 09:22, "Sugandha Maheshwary" wrote: >Hi, >It is written in the introduction of GAP that it is free and open >software. >I wish to access programs (in GAP syntax) behind certain basic commands >which are not part of any package. For example, Socle(G); IsMonomial(G); >etc. I can find the acknowledgements and tutorials but not able to trace >the exact programs behind these. I need to make certain changes for my use >for which the programs are needed. Kindly help. > >I have been using Version 4.4.12(2008). > >Many Thanks. >Sugandha >_______________________________________________ >Forum mailing list >Forum at mail.gap-system.org >http://mail.gap-system.org/mailman/listinfo/forum From g6299304p at rezozer.net Fri Aug 29 09:57:11 2014 From: g6299304p at rezozer.net (Jerome BENOIT) Date: Fri, 29 Aug 2014 10:57:11 +0200 Subject: [GAP Forum] deactivate readline library Message-ID: <54004067.7050303@rezozer.net> Hello Forum, how can we deactivate the readline library ? Thanks in advance, Jerome From alexander.konovalov at st-andrews.ac.uk Fri Aug 29 10:20:14 2014 From: alexander.konovalov at st-andrews.ac.uk (Alexander Konovalov) Date: Fri, 29 Aug 2014 09:20:14 +0000 Subject: [GAP Forum] deactivate readline library In-Reply-To: <54004067.7050303@rezozer.net> References: <54004067.7050303@rezozer.net> Message-ID: Hello Jerome, perhaps this is what you are looking for ("3.1 Command Line Options? of the Reference manual): -E If your GAP installation uses the readline library for command line editing (see 6.9), this may be disabled by using -E option. This option may be repeated to toggle this behavior on and off. If your GAP installation does not use the readline library (you can check by IsBound(GAPInfo.UseReadline); if this is the case), this option will have no effect at all. HTH Alexander On 29 Aug 2014, at 09:57, Jerome BENOIT wrote: > Hello Forum, > > how can we deactivate the readline library ? > > Thanks in advance, > Jerome > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From alexander.konovalov at st-andrews.ac.uk Fri Aug 29 10:20:06 2014 From: alexander.konovalov at st-andrews.ac.uk (Alexander Konovalov) Date: Fri, 29 Aug 2014 09:20:06 +0000 Subject: [GAP Forum] deactivate readline library In-Reply-To: <54004067.7050303@rezozer.net> References: <54004067.7050303@rezozer.net> Message-ID: Hello Jerome, perhaps this is what you are looking for ("3.1 Command Line Options? of the Reference manual): -E If your GAP installation uses the readline library for command line editing (see 6.9), this may be disabled by using -E option. This option may be repeated to toggle this behavior on and off. If your GAP installation does not use the readline library (you can check by IsBound(GAPInfo.UseReadline); if this is the case), this option will have no effect at all. HTH Alexander On 29 Aug 2014, at 09:57, Jerome BENOIT wrote: > Hello Forum, > > how can we deactivate the readline library ? > > Thanks in advance, > Jerome > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From dmitrii.pasechnik at cs.ox.ac.uk Fri Aug 29 10:27:32 2014 From: dmitrii.pasechnik at cs.ox.ac.uk (Dima Pasechnik) Date: Fri, 29 Aug 2014 10:27:32 +0100 Subject: [GAP Forum] deactivate readline library In-Reply-To: <54004067.7050303@rezozer.net> References: <54004067.7050303@rezozer.net> Message-ID: <20140829092732.GA15121@nash.cs.ox.ac.uk> Hi, AFAIK, it's only possible to choose no readline at compilation time, there is no runtime switch for this. HTH Dima On Fri, Aug 29, 2014 at 10:57:11AM +0200, Jerome BENOIT wrote: > Hello Forum, > > how can we deactivate the readline library ? > > Thanks in advance, > Jerome > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From g6299304p at rezozer.net Fri Aug 29 10:45:18 2014 From: g6299304p at rezozer.net (Jerome BENOIT) Date: Fri, 29 Aug 2014 11:45:18 +0200 Subject: [GAP Forum] deactivate readline library In-Reply-To: References: <54004067.7050303@rezozer.net> Message-ID: <54004BAE.4010601@rezozer.net> Hi, thanks for the replies. On 29/08/14 11:20, Alexander Konovalov wrote: > Hello Jerome, > > perhaps this is what you are looking for ("3.1 Command Line Options? of the > Reference manual): > > -E > If your GAP installation uses the readline library for command line > editing (see 6.9), this may be disabled by using -E option. This > option may be repeated to toggle this behavior on and off. If your GAP > installation does not use the readline library (you can check by > IsBound(GAPInfo.UseReadline); if this is the case), this option will > have no effect at all. I looked the man page, the readline section in the Ref Manual, but not this section. What I really want is to make kill -INT working: the function syAnswerIntr in gap/src/sysfiles.c seems to catch SIGINT signals provided that the doingReadline is zero or that gap was not compiled with readline feature. A gap session launched with the -E option does not catch the SIGINT: is there a way to catch the SIGINT (without recompiling gap) ? Thanks in advance, Jerome > > > HTH > Alexander > > On 29 Aug 2014, at 09:57, Jerome BENOIT wrote: > >> Hello Forum, >> >> how can we deactivate the readline library ? >> >> Thanks in advance, >> Jerome >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum > From g6299304p at rezozer.net Fri Aug 29 11:00:18 2014 From: g6299304p at rezozer.net (Jerome BENOIT) Date: Fri, 29 Aug 2014 12:00:18 +0200 Subject: [GAP Forum] deactivate readline library In-Reply-To: <54004BAE.4010601@rezozer.net> References: <54004067.7050303@rezozer.net> <54004BAE.4010601@rezozer.net> Message-ID: <54004F32.8020104@rezozer.net> Hi Again, On 29/08/14 11:45, Jerome BENOIT wrote: > Hi, thanks for the replies. > > On 29/08/14 11:20, Alexander Konovalov wrote: >> Hello Jerome, >> >> perhaps this is what you are looking for ("3.1 Command Line Options? of the >> Reference manual): >> >> -E >> If your GAP installation uses the readline library for command line >> editing (see 6.9), this may be disabled by using -E option. This >> option may be repeated to toggle this behavior on and off. If your GAP >> installation does not use the readline library (you can check by >> IsBound(GAPInfo.UseReadline); if this is the case), this option will >> have no effect at all. > > I looked the man page, the readline section in the Ref Manual, but not this section. > > What I really want is to make kill -INT working: > > the function syAnswerIntr in gap/src/sysfiles.c seems to catch SIGINT signals > provided that the doingReadline is zero or that gap was not compiled with readline feature. > > A gap session launched with the -E option does not catch the SIGINT: > is there a way to catch the SIGINT (without recompiling gap) ? In fact I was looking for softly terminating a gap session by sending a signal: I guess that this kind a feature is not yet implemented. Thanks, Jerome > > Thanks in advance, > Jerome > >> >> >> HTH >> Alexander >> >> On 29 Aug 2014, at 09:57, Jerome BENOIT wrote: >> >>> Hello Forum, >>> >>> how can we deactivate the readline library ? >>> >>> Thanks in advance, >>> Jerome >>> >>> _______________________________________________ >>> Forum mailing list >>> Forum at mail.gap-system.org >>> http://mail.gap-system.org/mailman/listinfo/forum >> > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From dmitrii.pasechnik at cs.ox.ac.uk Fri Aug 29 11:16:26 2014 From: dmitrii.pasechnik at cs.ox.ac.uk (Dima Pasechnik) Date: Fri, 29 Aug 2014 11:16:26 +0100 Subject: [GAP Forum] deactivate readline library In-Reply-To: <54004F32.8020104@rezozer.net> References: <54004067.7050303@rezozer.net> <54004BAE.4010601@rezozer.net> <54004F32.8020104@rezozer.net> Message-ID: <20140829101626.GB15224@nash.cs.ox.ac.uk> On Fri, Aug 29, 2014 at 12:00:18PM +0200, Jerome BENOIT wrote: > > In fact I was looking for softly terminating a gap session by sending a signal: > I guess that this kind a feature is not yet implemented. by the way, are you aware of libGAP (https://bitbucket.org/vbraun/libgap)? It looks as if you try to have a way to control GAP from your application, and having it as a shared library might help... just in case, Dima > > Thanks, > Jerome > From samuel.lelievre at gmail.com Fri Aug 29 11:17:45 2014 From: samuel.lelievre at gmail.com (=?UTF-8?Q?Samuel_Leli=C3=A8vre?=) Date: Fri, 29 Aug 2014 12:17:45 +0200 Subject: [GAP Forum] vertex-transitive non-Cayley graphs on 16 vertices In-Reply-To: <3D6C35F1-914B-4874-94CA-51095B56F64C@uwa.edu.au> References: <20140827130009.GA18725@cs.cas.cz> <3D6C35F1-914B-4874-94CA-51095B56F64C@uwa.edu.au> Message-ID: 2014-08-28 03:16+02:00 Gordon Royle : > Data on transitive groups is available at > > http://staffhome.ecm.uwa.edu.au/~00013890/remote/trans/index.html > > Apologies for the constantly changing URL, but our university IT is constantly restructured? That would be nice data and code to have at recomputation.org. From g6299304p at rezozer.net Fri Aug 29 11:27:29 2014 From: g6299304p at rezozer.net (Jerome BENOIT) Date: Fri, 29 Aug 2014 12:27:29 +0200 Subject: [GAP Forum] deactivate readline library In-Reply-To: <20140829101626.GB15224@nash.cs.ox.ac.uk> References: <54004067.7050303@rezozer.net> <54004BAE.4010601@rezozer.net> <54004F32.8020104@rezozer.net> <20140829101626.GB15224@nash.cs.ox.ac.uk> Message-ID: <54005591.8020502@rezozer.net> Hi, On 29/08/14 12:16, Dima Pasechnik wrote: > On Fri, Aug 29, 2014 at 12:00:18PM +0200, Jerome BENOIT wrote: >> >> In fact I was looking for softly terminating a gap session by sending a signal: >> I guess that this kind a feature is not yet implemented. > > by the way, are you aware of libGAP (https://bitbucket.org/vbraun/libgap)? No, but it is good to know. > It looks as if you try to have a way to control GAP from your application, > and having it as a shared library might help... Indeed, but here I need to work only with the GAP material as distributed by the GAP team. Thanks, Jerome > > just in case, > Dima >> >> Thanks, >> Jerome >> From juergen.mueller at math.rwth-aachen.de Fri Aug 29 14:43:25 2014 From: juergen.mueller at math.rwth-aachen.de (Juergen Mueller) Date: Fri, 29 Aug 2014 15:43:25 +0200 Subject: [GAP Forum] Workshop CoGrAl2015 Announcement Message-ID: <20140829134325.GA31239@alkor.math.rwth-aachen.de> Dear colleagues, This is the first announcement of a forthcoming workshop entitled Computations in Groups and Algebras (CoGrAl2015) =================================== organised by Simon King, J?rgen M?ller, and Benjamin Sambale, and taking place at * Friedrich Schiller University Jena (Germany), * from Monday, February 16th, to Thursday, February 19th, 2015. The aim of the workshop is to shed some light on various recent aspects of finite group theory, with a particular view towards algorithms and computations. More specifically, we will focus on the following topics: * Cohomology of finite-dimensional algebras * Structure of p-groups and fusion systems * Block theory of finite groups Invited speakers are: (*) to be confirmed Jon Carlson (Athens, GA) David Craven(*) (Birmingham) Heiko Dietrich (Melbourne) Bettina Eick (Braunschweig) Graham Ellis (Galway) David Green (Jena) Ellen Henke (Aberdeen) Frank Himstedt (M?nchen) Max Horn (Gie?en) Gregor Kemper (M?nchen) Viktor Levandovskyy(*) (Aachen) Nadia Mazza (Lancaster) Eamonn O'Brien (Auckland) G?tz Pfeiffer (Galway) Peter Symonds (Manchester) For more details please visit the web page * http://cogral2015.uni-jena.de/. We would be very glad if this convinced you to visit Jena and to attend the workshop. We are looking forward to seeing you! With kind regards S.K., J.M., B.S. From quantum.algebra at algebra.at Sun Aug 31 16:18:15 2014 From: quantum.algebra at algebra.at (Quantum.Algebra) Date: Sun, 31 Aug 2014 17:18:15 +0200 Subject: [GAP Forum] Semidirect product Message-ID: <49D1CD869B604AFF99F00E172A1C7673@EmilArtin> Dear GAP forum, are the following versions of semidirect products isomorphic? Suppose N and S are groups, and h in Hom(S,Aut(N)) is a homomorphism from S to the automorphism group Aut(N) of N. Then we can define group operations on the cartesian product N*S = { (n,s) | n in N, s in S } in two ways: Right-sided version (as usual): (n,s)*(m,t) := (n*[h(s)](m), s*t), where h(s) in Aut(N), with inverse elements (n,s)^{-1} = ([h(t^{-1})](s^{-1}),t^{-1}). Left-sided version (rather unusual): (n,s)*(m,t) := ([h(t^{-1})](n)*m, s*t), where h(t^{-1}) in Aut(N), with inverse elements (n,s)^{-1} = ([h(t)](s^{-1}),t^{-1}). The operations are associative, with neutral element (1,1). For both group operations, N*1 is a normal subgroup of N*S and 1*S is a subgroup of N*S. Does the assigned homomorphism h determine a semidirect product structure on N*S uniquely ? Daniel C. Mayer From msugandha.87 at gmail.com Tue Sep 2 06:39:15 2014 From: msugandha.87 at gmail.com (Sugandha Maheshwary) Date: Tue, 2 Sep 2014 11:09:15 +0530 Subject: [GAP Forum] Regarding Modules Message-ID: Hi Is there any way of constructing modules by defining action. Abelian groups are free Z modules. How does GAP read abelian groups as Z modules? Also, If I have a normal subgroup H of G and I am interested in working with H as Z[G] module via conjugation action of G, how can this be done? G is a finite group. Any sort of idea towards this shall be quite helpful. Thanks. Sugandha Maheshwary From graham.ellis at nuigalway.ie Tue Sep 2 08:24:17 2014 From: graham.ellis at nuigalway.ie (Ellis, Grahamj) Date: Tue, 2 Sep 2014 07:24:17 +0000 Subject: [GAP Forum] Homological Perturbation Theory Workshop In-Reply-To: References: Message-ID: We are pleased to announce the Seventh de Br?n Workshop on Homological Perturbation Theory =============================================== 1-5 December 2014, NUI Galway, Ireland http://hamilton.nuigalway.ie/HPT/ The workshop aims to bring together those interested in homological perturbation theory, its applications, and related topics in geometry, topology and computer science. (For an overview of HPT see http://ncatlab.org/nlab/show/homological+perturbation+theory ) So far, speakers include: - Ronnie Brown (Bangor) - Vladimir Dotsenko (Dublin) - Alexander Engstr?m (Helsinki) - Domenico Fiorenza (Rome) (*) - J?nathan Heras (La Rioja) - Thomas H?ttemann (Belfast) (*) - Tornike Kadeshvili (Tbilisi) - Martin Markl (Prague) - Aniceto Murillo (M?laga) - Pawel Pilarczyk (IST Austria) - Alban Quadrat (Inria Saclay) - Alexander Rahm (Galway) - Ana Romero (La Rioja) - Francis Sergeraert (Grenoble) - Jim Stasheff (North Carolina) (**) - Andy Tonks (London Met) - Luk?? Vok??nek (Brno) (*) to be confirmed, (**) video lecture - & talks by PhD students There is financial support available for participating in the workshop, and there a some free slots for additional speakers. For more details please visit the homepage of the workshop at http://hamilton.nuigalway.ie/HPT/ The workshop is sponsored by - European Science Foundation (ACAT) - Science Foundation Ireland Science Foundation Ireland - National University of Ireland, Galway With kind regards, Mohamed Barakat (Kaiserlautern) Graham Ellis (Galway), Pedro Real (Seville) Julio Rubio (La Rioja) From gordon.royle at uwa.edu.au Wed Sep 3 03:35:47 2014 From: gordon.royle at uwa.edu.au (Gordon Royle) Date: Wed, 3 Sep 2014 10:35:47 +0800 Subject: [GAP Forum] Transitive groups Message-ID: <64EFF4B2-46C9-4C97-9726-66C46DC1EABE@uwa.edu.au> Dear GAP people Last month, I posted a list of numbers of transitive groups of degrees 32-39. There are 2801324 transitive groups of degree 32 162 transitive groups of degree 33 115 transitive groups of degree 34 407 transtiive groups of degree 35 121279 transitive groups of degree 36 11 transitive groups of degree 37 89 transitive groups of degree 38 333 transitive groups of degree 39 and lots and lots of degree 40 However, as Derek Holt has pointed out to me, I wrote down the wrong numbers for the easy cases of degree 38 and 39, where the correct numbers are 76 transitive groups of degree 38, 306 transitive groups of degree 39. On checking where the error arose, I realised that while there was nothing wrong with the computation, I was rushing too much at the time, and simply added up the numbers incorrectly. Derek has also confirmed the much more difficult number 121279 for transitive groups of degree 36 (which I added up correctly). More to come? Gordon Professor Gordon Royle School of Mathematics and Statistics University of Western Australia Gordon.Royle at uwa.edu.au From benjamin.sambale at gmail.com Fri Sep 5 06:37:15 2014 From: benjamin.sambale at gmail.com (Benjamin Sambale) Date: Fri, 05 Sep 2014 07:37:15 +0200 Subject: [GAP Forum] problem with OrthogonalEmbeddings Message-ID: <54094C0B.8050109@gmail.com> Dear GAP people, according to the manual, the command OrthogonalEmbeddings does the following: Given an integral symmetric matrix M, compute all integral matrices X such that X^tr X = M where X^tr denotes the transpose of X. The solution matrices X are given up to permutations and signs of their rows. If I do (with GAP 4.7.5) OrthogonalEmbeddings([[4]]), I only get one solution, namely X = [[2]]. However, there is another solution X = [[1],[1],[1],[1]] which is somehow missing! What is wrong here? Apparently, the implementation is quite old and based on a paper by Plesken from 1995. There is also an inaccuracy in the manual: It says: "the list L = [ x_1, x_2, ..., x_n ] of vectors that may be rows of a solution; these are exactly those vectors that fulfill the condition x_i ? gram^{-1} ? x_i^tr ? 1 (see ShortestVectors (25.6-2)), and we have gram = ?_{i = 1}^n x_i^tr ? x_i". The last equation is usually not true. The equation only holds for the set of vectors of a solution. Moreover, one should mention that the list of vectors is only up to signs. Thanks and best wishes, Benjamin * Englisch - erkannt * Englisch * Deutsch * Englisch * Deutsch From g6299304p at rezozer.net Tue Sep 9 22:41:06 2014 From: g6299304p at rezozer.net (Jerome BENOIT) Date: Tue, 09 Sep 2014 23:41:06 +0200 Subject: [GAP Forum] GAPDoc, BibTeX's names: quid Jr part ? Message-ID: <540F73F2.9010106@rezozer.net> Hello Forum, I am encountering issue with documentation generation for the GUAVA GAP package (with the lasted GAP Debian package with its gap-gapdoc companion on a Wheezy box and a Sid virtaul box (pbuilder)): it appears that the issue is caused by the Jr of the fifth name in the author entry of the last reference, aka TSSFC04: a closer look (Print within the gapdoc code itself) shows that the non ASCII char is introduced and ultimately introduces a `fail' that break the documentation composition. Is it a know issue ? Is there any workaround ? Any hint is welcome, Jerome From g6299304p at rezozer.net Tue Sep 9 23:54:59 2014 From: g6299304p at rezozer.net (Jerome BENOIT) Date: Wed, 10 Sep 2014 00:54:59 +0200 Subject: [GAP Forum] GAPDoc, BibTeX's names: quid Jr part ? COMPLEMENT In-Reply-To: <540F73F2.9010106@rezozer.net> References: <540F73F2.9010106@rezozer.net> Message-ID: <540F8543.6070809@rezozer.net> Hello Again, On 09/09/14 23:41, Jerome BENOIT wrote: > Hello Forum, > > I am encountering issue with documentation generation for the GUAVA GAP package > (with the lasted GAP Debian package with its gap-gapdoc companion on a Wheezy box > and a Sid virtaul box (pbuilder)): > it appears that the issue is caused by the Jr of the fifth name in the author entry > of the last reference, aka TSSFC04: a closer look (Print within the gapdoc code itself) > shows that the non ASCII char is introduced and ultimately introduces a `fail' that break > the documentation composition. Please find in attachment an expurged material that reproduce the bug. > > Is it a know issue ? Is there any workaround ? > > Any hint is welcome, > Jerome Thanks, Jerome > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > -------------- next part -------------- ## GAP script ## ## test command line: ## $ cat test.g | gap -A -T -q ## MakeGAPDocDoc(".","test",[],"test"); ## ## eos From g6299304p at rezozer.net Wed Sep 10 00:02:51 2014 From: g6299304p at rezozer.net (Jerome BENOIT) Date: Wed, 10 Sep 2014 01:02:51 +0200 Subject: [GAP Forum] GAPDoc, BibTeX's names: quid Jr part ? COMPLEMENT II In-Reply-To: <540F73F2.9010106@rezozer.net> References: <540F73F2.9010106@rezozer.net> Message-ID: <540F871B.7030200@rezozer.net> Hello Again (II), On 09/09/14 23:41, Jerome BENOIT wrote: > Hello Forum, > > I am encountering issue with documentation generation for the GUAVA GAP package > (with the lasted GAP Debian package with its gap-gapdoc companion on a Wheezy box > and a Sid virtaul box (pbuilder)): > it appears that the issue is caused by the Jr of the fifth name in the author entry > of the last reference, aka TSSFC04: a closer look (Print within the gapdoc code itself) > shows that the non ASCII char is introduced and ultimately introduces a `fail' that break > the documentation composition. Please find in attachment an expurged material that reproduces the bug. The material comes here within a compressed tarball. > > Is it a know issue ? Is there any workaround ? > > Any hint is welcome, > Jerome Thanks, Jerome > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From arikan at gazi.edu.tr Wed Sep 10 10:50:35 2014 From: arikan at gazi.edu.tr (=?utf-8?Q?Ahmet_Ar=C4=B1kan?=) Date: Wed, 10 Sep 2014 12:50:35 +0300 Subject: [GAP Forum] GAP on ipad Message-ID: <93DA3DFD-9825-4995-B8C7-AED0C17ADDDA@gazi.edu.tr> Dear forum, My question may be asked before. I wonder if GAP can be installed on ipad? If possible how? Best wishes, Ahmet Ar?kan From matan at svgalib.org Wed Sep 10 14:05:30 2014 From: matan at svgalib.org (Matan Ziv-Av) Date: Wed, 10 Sep 2014 16:05:30 +0300 (IDT) Subject: [GAP Forum] GAP on ipad In-Reply-To: <93DA3DFD-9825-4995-B8C7-AED0C17ADDDA@gazi.edu.tr> References: <93DA3DFD-9825-4995-B8C7-AED0C17ADDDA@gazi.edu.tr> Message-ID: On Wed, 10 Sep 2014, Ahmet Ar?kan wrote: > Dear forum, > > My question may be asked before. I wonder if GAP can be installed on ipad? If possible how? It is surely possible. The ipad runs a "unix like" system on an ARM cpu, and it is possible to run a shell on it. As far as I know, noone has done this (at least not publicly), so there is no installation package, or simple instructions how to do this, though. -- Matan. From darthandrus at gmail.com Wed Sep 10 17:15:43 2014 From: darthandrus at gmail.com (Ivan Andrus) Date: Wed, 10 Sep 2014 10:15:43 -0600 Subject: [GAP Forum] GAP on ipad In-Reply-To: References: <93DA3DFD-9825-4995-B8C7-AED0C17ADDDA@gazi.edu.tr> Message-ID: On Sep 10, 2014, at 7:05 AM, Matan Ziv-Av wrote: On Wed, 10 Sep 2014, Ahmet Ar?kan wrote: Dear forum, My question may be asked before. I wonder if GAP can be installed on ipad? If possible how? It is surely possible. The ipad runs a "unix like" system on an ARM cpu, and it is possible to run a shell on it. As far as I know, noone has done this (at least not publicly), so there is no installation package, or simple instructions how to do this, though. It?s probably not exactly what you are looking for, but I wrote an app [1] that connects to the Sage cell server. One feature it has is to be able to change from evaluating Sage to evaluating GAP (or GP, Maxima, R, etc.) either on a per-calculation basis or globally. The code is available [2]. There is a similar app for Android, but I don?t know any details about that one. -Ivan [1] https://itunes.apple.com/us/app/sage-math/id496492945 [2] https://bitbucket.org/gvol/sage-ios-app From john.mcdermott at st-andrews.ac.uk Thu Sep 11 15:04:37 2014 From: john.mcdermott at st-andrews.ac.uk (John McDermott) Date: Thu, 11 Sep 2014 14:04:37 +0000 Subject: [GAP Forum] Fwd: How to check solvability of quintic equation with elliptic functions. References: <875029.63224.qm@web101614.mail.kks.yahoo.co.jp> Message-ID: The following message was addressed to the Forum but temporarily held up for moderation. Please reply to the original sender (buynnnmmm1 at yahoo.co.jp) and the Forum, directly, rather than to me. John I found how to solvability check of equation without elliptic functions in Gap. IsSolvable(SymmetricGroup(5)); or DisplayCompositionSeries(SymmetricGroup(5)); How can I check solvability of quintic equation with elliptic functions in Gap? I would like to know it. Could you teach me that, or please tell me the URLs that are described it. buynnnmmm1 -- John McDermott Centre for Interdisciplinary Research in Computational Algebra University of St Andrews The University of St Andrews is a charity registered in Scotland : No SC013532 From hadi.hooshmand at gmail.com Thu Sep 11 18:22:39 2014 From: hadi.hooshmand at gmail.com (hadi Hooshmand) Date: Thu, 11 Sep 2014 21:52:39 +0430 Subject: [GAP Forum] Groups of order 192 Message-ID: Dear All, Let $G$ be a group of order 192 and $d$ a positive divisor of it . Is it true that there exists a subgroup of $G$ with order or index $d$? Is there any GAP code to check the question by an ordinary computer? Does anyone know the answer? Thanks in advance From stefan at mcs.st-and.ac.uk Thu Sep 11 18:41:49 2014 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Thu, 11 Sep 2014 18:41:49 +0100 (BST) Subject: [GAP Forum] Groups of order 192 In-Reply-To: References: Message-ID: On Thu, September 11, 2014 6:22 pm, hadi Hooshmand wrote: > Dear All, > > Let $G$ be a group of order 192 and $d$ a positive divisor of it . Is it > true > that there exists a subgroup of $G$ with order or index $d$? > > Is there any GAP code to check the question by an ordinary computer? > Does anyone know the answer? Just enter gap> check := n->ForAll(AllGroups(n), > G->ForAll(DivisorsInt(n), > d->Intersection([d,n/d], > List(ConjugacyClassesSubgroups(G), > cl->Size(Representative(cl))))<>[]));; gap> check(192); and have some patience. Hope this helps, Stefan Kohl ----------------------------------------------------------------------------- http://www.gap-system.org/DevelopersPages/StefanKohl/ ----------------------------------------------------------------------------- From D.F.Holt at warwick.ac.uk Thu Sep 11 19:53:04 2014 From: D.F.Holt at warwick.ac.uk (Derek Holt) Date: Thu, 11 Sep 2014 19:53:04 +0100 Subject: [GAP Forum] Groups of order 192 In-Reply-To: References: Message-ID: <20140911185304.GA7720@warwick.ac.uk> Dear Hadi, Dear GAP Forum, Since 192 = 3 X 2^6, for any divisor d of 192, either d or 192/d is a power of 2, so G has a subgroup of order d or of order 192/d by Sylow's Theorem. Best regards, Derek. On Thu, Sep 11, 2014 at 09:52:39PM +0430, hadi Hooshmand wrote: > Dear All, > > Let $G$ be a group of order 192 and $d$ a positive divisor of it . Is it > true > that there exists a subgroup of $G$ with order or index $d$? > > Is there any GAP code to check the question by an ordinary computer? > Does anyone know the answer? > > Thanks in advance > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From buynnnmmm1 at yahoo.co.jp Sun Sep 14 15:28:20 2014 From: buynnnmmm1 at yahoo.co.jp (buynnnmmm1 at yahoo.co.jp) Date: Sun, 14 Sep 2014 23:28:20 +0900 (JST) Subject: [GAP Forum] Please tell me the meaning (FreeGroup, GroupHomomorphismByImages and PreImagesRepresentative) of the set of functions to be used when solving the puzzle in GAP. Message-ID: <812330.27358.qm@web101609.mail.kks.yahoo.co.jp> Hello I cannot understand how to solve pazlles. ex. http://www.gap-system.org/Doc/Examples/rubik.html They use FreeGroup, then use GroupHomomorphismByImages, then use PreImagesRepresentative. Even when it is solved in the GAP of M12 puzzle an 15 puzzle, It was using the same function in the same procedure. I cannot understand these procedure. Could you tell me a simple example as can be seen what you are doing in more detail? Or please tell me the URL of the material more descriptive. buynnnmmm1 From buynnnmmm1 at yahoo.co.jp Mon Sep 15 05:06:05 2014 From: buynnnmmm1 at yahoo.co.jp (buynnnmmm1 at yahoo.co.jp) Date: Mon, 15 Sep 2014 13:06:05 +0900 (JST) Subject: [GAP Forum] IsomorphismTypeFiniteSimpleGroup results in an error. Message-ID: <865349.76439.qm@web101611.mail.kks.yahoo.co.jp> Hello. It is an error to try to do in the Gap4.7.5 IsomorphismTypeFiniteSimpleGroup of P.27 of http://sci.kj.yamagata-u.ac.jp/~waki/jpn/gap_docs/take_gap.pdf. gap> s8:=Group((1,2),(1,2,3,4,5,6,7,8)); Group([ (1,2), (1,2,3,4,5,6,7,8) ]) gap> a8:=CommutatorSubgroup(s8,s8); Group([ (1,3,2), (2,4,3), (2,3)(4,5), (2,4,6,5,3), (2,5,3)(4,7,6), (2,3)(5,6,8,7) ]) gap> elab:= Group( (1,2)(3,4)(5,6)(7,8), (1,3)(2,4)(5,7)(6,8),? (1,5)(2,6)(3,7)(4,8)); Group([ (1,2)(3,4)(5,6)(7,8), (1,3)(2,4)(5,7)(6,8), (1,5)(2,6)(3,7)(4,8) ]) gap> norm:= Normalizer( a8, elab );; gap> hom:=NaturalHomomorphismByNormalSubgroup( norm , elab ); gap> f := Image( hom ); Group([ (), (), (), (4,5)(6,7), (4,6)(5,7), (2,3)(6,7), (2,4)(3,5), (1,2)(5,6) ]) gap> IsomorphismTypeFiniteSimpleGroup( f ); Error, Variable: 'IsomorphismTypeFiniteSimpleGroup' must have a value not in any function at line 16 of *stdin* However, I should be able to get the following output: In P.27 of this PDF file. gap> IsomorphismTypeFiniteSimpleGroup( f ); rec( series := "L", parameter := [ 2, 7 ], name := "A(1,7) = L(2,7) ~ B(1,7) = O(3,7) ~ C(1,7) = S(2,7) ~ 2A(1,7) = U(2\ ,7) ~ A(2,2) = L(3,2)" ) Could you tell me how to solve this problem? How to use or probably been changed in accordance with the version up? Or bug or probably are mixedin Gap version up? ????????????????????????????????? buynnnmmm1 From alexk at mcs.st-andrews.ac.uk Mon Sep 15 10:25:04 2014 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Mon, 15 Sep 2014 10:25:04 +0100 Subject: [GAP Forum] IsomorphismTypeFiniteSimpleGroup results in an error. In-Reply-To: <865349.76439.qm@web101611.mail.kks.yahoo.co.jp> References: <865349.76439.qm@web101611.mail.kks.yahoo.co.jp> Message-ID: Hello, The correct name of this function is IsomorphismTypeInfoFiniteSimpleGroup. Using the input from the question, it produces the expected result: gap> IsomorphismTypeInfoFiniteSimpleGroup( f ); rec( name := "A(1,7) = L(2,7) ~ B(1,7) = O(3,7) ~ C(1,7) = S(2,7) ~ 2A(1,7) = U(2,7) ~ A(2,2) = L(3,2)", parameter := [ 2, 7 ], series := "L" ) gap> I don't know for sure if this is a typo or the function was renamed in GAP, but it could be the former - I can see IsomorphismTypeInfoFiniteSimpleGroup mentions dated back to 2003. It seems that the document you mention is dated 2002 and refers to GAP 4.2, so it is plausible that some examples are not reproducible and should be adapted to GAP 4.7. Most of such cases are covered in the Chapter "Replaced and Removed Command Names" of the GAP Reference manual (http://www.gap-system.org/Manuals/doc/ref/chap77.html), and in doubt please just ask. Best wishes Alexander P.S. It should be possible to produce GAP teaching materials in various languages using GAPDoc package, and run automated tests of their examples to check that they all still work with new versions of GAP. This will simplify their maintenance and their upgrading after major GAP releases. On 15 Sep 2014, at 05:06, buynnnmmm1 at yahoo.co.jp wrote: > > > Hello. > It is an error to try to do in the Gap4.7.5 IsomorphismTypeFiniteSimpleGroup of P.27 of http://sci.kj.yamagata-u.ac.jp/~waki/jpn/gap_docs/take_gap.pdf. > > gap> s8:=Group((1,2),(1,2,3,4,5,6,7,8)); > Group([ (1,2), (1,2,3,4,5,6,7,8) ]) > gap> a8:=CommutatorSubgroup(s8,s8); > Group([ (1,3,2), (2,4,3), (2,3)(4,5), (2,4,6,5,3), (2,5,3)(4,7,6), (2,3)(5,6,8,7) ]) > gap> elab:= Group( (1,2)(3,4)(5,6)(7,8), (1,3)(2,4)(5,7)(6,8), (1,5)(2,6)(3,7)(4,8)); > Group([ (1,2)(3,4)(5,6)(7,8), (1,3)(2,4)(5,7)(6,8), (1,5)(2,6)(3,7)(4,8) ]) > gap> norm:= Normalizer( a8, elab );; > gap> hom:=NaturalHomomorphismByNormalSubgroup( norm , elab ); > > gap> f := Image( hom ); > Group([ (), (), (), (4,5)(6,7), (4,6)(5,7), (2,3)(6,7), (2,4)(3,5), (1,2)(5,6) ]) > gap> IsomorphismTypeFiniteSimpleGroup( f ); > Error, Variable: 'IsomorphismTypeFiniteSimpleGroup' must have a value > not in any function at line 16 of *stdin* > > > However, I should be able to get the following output: In P.27 of this PDF file. > > gap> IsomorphismTypeFiniteSimpleGroup( f ); > rec( series := "L", parameter := [ 2, 7 ], > name := "A(1,7) = L(2,7) ~ B(1,7) = O(3,7) ~ C(1,7) = S(2,7) ~ > 2A(1,7) = U(2\ > ,7) ~ A(2,2) = L(3,2)" ) > > > Could you tell me how to solve this problem? > How to use or probably been changed in accordance with the version up? > Or bug or probably are mixedin Gap version up? > > > buynnnmmm1 > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From buynnnmmm1 at yahoo.co.jp Mon Sep 15 12:41:26 2014 From: buynnnmmm1 at yahoo.co.jp (buynnnmmm1 at yahoo.co.jp) Date: Mon, 15 Sep 2014 20:41:26 +0900 (JST) Subject: [GAP Forum] IsomorphismTypeFiniteSimpleGroup results in an error. In-Reply-To: References: <865349.76439.qm@web101611.mail.kks.yahoo.co.jp> Message-ID: <275285.77206.qm@web101604.mail.kks.yahoo.co.jp> Thank you very much for e-mail immediately. Thank you very much for your help. I was sure that even here can do it. gap> s8:=Group((1,2),(1,2,3,4,5,6,7,8)); Group([ (1,2), (1,2,3,4,5,6,7,8) ]) gap> a8:=CommutatorSubgroup(s8,s8); Group([ (1,3,2), (2,4,3), (3,5,4), (4,6,5), (5,7,6), (6,8,7) ]) gap> elab:= Group( (1,2)(3,4)(5,6)(7,8), (1,3)(2,4)(5,7)(6,8),? (1,5)(2,6)(3,7)(4,8)); Group([ (1,2)(3,4)(5,6)(7,8), (1,3)(2,4)(5,7)(6,8), (1,5)(2,6)(3,7)(4,8) ]) gap> norm:= Normalizer( a8, elab );; gap> hom:=NaturalHomomorphismByNormalSubgroup( norm , elab ); gap> f := Image( hom ); Group([ (), (), (), (4,5)(6,7), (4,6)(5,7), (2,3)(6,7), (2,4)(3,5), (1,2)(5,6) ]) gap> IsomorphismTypeInfoFiniteSimpleGroup( f ); rec( name := "A(1,7) = L(2,7) ~ B(1,7) = O(3,7) ~ C(1,7) = S(2,7) ~ 2A(1,7) = U(2,7) ~ A(2,2) = L(3,2)", parameter := [ 2, 7 ], ? series := "L" ) I've read http://www.gap-system.org/Manuals/doc/ref/chap77.html. Then, Http://www.math.niu.edu/help/math/gap4/ref/CHAP036.htm was hit when I net doing a keyword search for "IsomorphismTypeFiniteSimpleGroup". I was Written in the document with the "GAP 4 manual February 2000". It seems there was IsomorphismTypeInfoFiniteSimpleGroup function in GAP4 of the old version. This document, because it is updated on 2014/8/16 recently, I think the document author and not using "GAPDoc package". I leave the mail also "GAPDoc package" to the author. Thank you very much for your help! P.S. I resend same e-mail because I've forgotten cc column of mail (forum at gap-system.org). ?????????????????? buynnnmmm1 ----- Original Message ----- > From: Alexander Konovalov > To: buynnnmmm1 at yahoo.co.jp > Cc: "forum at gap-system.org" > Date: 2014/9/15, Mon 18:25 > Subject: Re: [GAP Forum] IsomorphismTypeFiniteSimpleGroup results in an error. > > Hello, > > The correct name of this function is IsomorphismTypeInfoFiniteSimpleGroup. Using > the input from the question, it produces the expected result: > > gap> IsomorphismTypeInfoFiniteSimpleGroup( f ); > rec( name := "A(1,7) = L(2,7) ~ B(1,7) = O(3,7) ~ C(1,7) = S(2,7) ~ 2A(1,7) > = U(2,7) ~ A(2,2) = L(3,2)", parameter := [ 2, 7 ], series := "L" > ) > gap> > > I don't know for sure if this is a typo or the function was renamed in GAP, > but it could be the former - I can see IsomorphismTypeInfoFiniteSimpleGroup > mentions dated back to 2003. It seems that the document you mention is dated > 2002 and refers to GAP 4.2, so it is plausible that some examples are not > reproducible and should be adapted to GAP 4.7. Most of such cases are covered in > the Chapter "Replaced and Removed Command Names" of the GAP Reference > manual (http://www.gap-system.org/Manuals/doc/ref/chap77.html), and in doubt > please just ask. > > Best wishes > Alexander > > P.S. It should be possible to produce GAP teaching materials in various > languages using GAPDoc package, and run automated tests of their examples to > check that they all still work with new versions of GAP. This will simplify > their maintenance and their upgrading after major GAP releases. > > > On 15 Sep 2014, at 05:06, buynnnmmm1 at yahoo.co.jp wrote: > >> >> >> Hello. >> It is an error to try to do in the Gap4.7.5 > IsomorphismTypeFiniteSimpleGroup of P.27 of > http://sci.kj.yamagata-u.ac.jp/~waki/jpn/gap_docs/take_gap.pdf. >> >> gap> s8:=Group((1,2),(1,2,3,4,5,6,7,8)); >> Group([ (1,2), (1,2,3,4,5,6,7,8) ]) >> gap> a8:=CommutatorSubgroup(s8,s8); >> Group([ (1,3,2), (2,4,3), (2,3)(4,5), (2,4,6,5,3), (2,5,3)(4,7,6), > (2,3)(5,6,8,7) ]) >> gap> elab:= Group( (1,2)(3,4)(5,6)(7,8), (1,3)(2,4)(5,7)(6,8),? > (1,5)(2,6)(3,7)(4,8)); >> Group([ (1,2)(3,4)(5,6)(7,8), (1,3)(2,4)(5,7)(6,8), (1,5)(2,6)(3,7)(4,8) ]) >> gap> norm:= Normalizer( a8, elab );; >> gap> hom:=NaturalHomomorphismByNormalSubgroup( norm , elab ); >> >> gap> f := Image( hom ); >> Group([ (), (), (), (4,5)(6,7), (4,6)(5,7), (2,3)(6,7), (2,4)(3,5), > (1,2)(5,6) ]) >> gap> IsomorphismTypeFiniteSimpleGroup( f ); >> Error, Variable: 'IsomorphismTypeFiniteSimpleGroup' must have a > value >> not in any function at line 16 of *stdin* >> >> >> However, I should be able to get the following output: In P.27 of this PDF > file. >> >> gap> IsomorphismTypeFiniteSimpleGroup( f ); >> rec( series := "L", parameter := [ 2, 7 ], >> name := "A(1,7) = L(2,7) ~ B(1,7) = O(3,7) ~ C(1,7) = S(2,7) ~ >> 2A(1,7) = U(2\ >> ,7) ~ A(2,2) = L(3,2)" ) >> >> >> Could you tell me how to solve this problem? >> How to use or probably been changed in accordance with the version up? >> Or bug or probably are mixedin Gap version up? >> >> >> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? buynnnmmm1 >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum > From buynnnmmm1 at yahoo.co.jp Mon Sep 15 12:54:46 2014 From: buynnnmmm1 at yahoo.co.jp (buynnnmmm1 at yahoo.co.jp) Date: Mon, 15 Sep 2014 20:54:46 +0900 (JST) Subject: [GAP Forum] off-list reply In-Reply-To: <20140915091025.GA12043@cs.cas.cz> References: <865349.76439.qm@web101611.mail.kks.yahoo.co.jp> <20140915091025.GA12043@cs.cas.cz> Message-ID: <493203.89926.qm@web101619.mail.kks.yahoo.co.jp> Thank you very much for e-mail immediately. Thank you very much for your help. > In the current version of GAP. there is a function > IsomorphismTypeInfoFiniteSimpleGroup(). May be, > this could be used instead of the function above. http://www.math.niu.edu/help/math/gap4/ref/CHAP036.htm was hit when I net doing a keyword search for "IsomorphismTypeFiniteSimpleGroup". I was written in the document with the "GAP 4 manual February 2000". It seems there was IsomorphismTypeInfoFiniteSimpleGroup function in GAP4 of the old version. > In your previous email, you mentioned solving puzzles. > Do you have a specific puzzle, which you would like > to solve using GAP? There is no puzzle I would liketo solve in the current GAP. Rubik's Cube 2x2 went well and try it for practice. I can not understandEssential part of that solving the puzzle. I have mail, because I would like to understand it. > ? http://www.gap-system.org/Manuals/doc/ref/chap37.html#X82E7EA7F7FD31EC3 > ? http://www.gap-system.org/Manuals/doc/ref/chap40.html#X81A7BB0F7D81B247 > ? http://www.gap-system.org/Manuals/doc/ref/chap32.html#X79BB1EC07C828667 I will read the manual again. Thank you very much for your help. ????????????????????? buynnnmmm1 ----- Original Message ----- > From: Petr Savicky > To: buynnnmmm1 at yahoo.co.jp > Cc: > Date: 2014/9/15, Mon 18:10 > Subject: Re: off-list reply > > Hello: > > This is an off-list reply. > >> It is an error to try to do in the Gap4.7.5 > IsomorphismTypeFiniteSimpleGroup >> of P.27 of http://sci.kj.yamagata-u.ac.jp/~waki/jpn/gap_docs/take_gap.pdf. > > I cannot read this file, since I do not have the > required Japanese Language Support in my computer. > >> gap> IsomorphismTypeFiniteSimpleGroup( f ); >> Error, Variable: 'IsomorphismTypeFiniteSimpleGroup' must have a > value >> not in any function at line 16 of *stdin* > > In the current version of GAP. there is a function > IsomorphismTypeInfoFiniteSimpleGroup(). May be, > this could be used instead of the function above. > > In your previous email, you mentioned solving puzzles. > Do you have a specific puzzle, which you would like > to solve using GAP? > > In the previous email, you asked for the use of FreeGroup, > GroupHomomorphismByImages and PreImagesRepresentative. > The functions are documented in the reference manual > available at > > ? http://www.gap-system.org/Manuals/doc/ref/chap37.html#X82E7EA7F7FD31EC3 > ? http://www.gap-system.org/Manuals/doc/ref/chap40.html#X81A7BB0F7D81B247 > ? http://www.gap-system.org/Manuals/doc/ref/chap32.html#X79BB1EC07C828667 > > Kind regards, > Petr Savicky. > From savicky at cs.cas.cz Mon Sep 15 13:38:45 2014 From: savicky at cs.cas.cz (Petr Savicky) Date: Mon, 15 Sep 2014 14:38:45 +0200 Subject: [GAP Forum] Please tell me the meaning (FreeGroup, GroupHomomorphismByImages and PreImagesRepresentative) of the set of functions to be used when solving the puzzle in GAP. In-Reply-To: <812330.27358.qm@web101609.mail.kks.yahoo.co.jp> References: <812330.27358.qm@web101609.mail.kks.yahoo.co.jp> Message-ID: <20140915123845.GA28046@cs.cas.cz> On Sun, Sep 14, 2014 at 11:28:20PM +0900, buynnnmmm1 at yahoo.co.jp wrote: > Hello > > I cannot understand how to solve pazlles. > ex. http://www.gap-system.org/Doc/Examples/rubik.html > > They use FreeGroup, then use GroupHomomorphismByImages, then use PreImagesRepresentative. The sequence of function calls used to find a solution for a Rubik's cube configuration in the above link is briefly explained also at 39.5 Expressing Group Elements as Words in Generators http://www.gap-system.org/Manuals/doc/ref/chap39.html#X7E19F92284F6684E Best regards, Petr Savicky. From buynnnmmm1 at yahoo.co.jp Mon Sep 15 14:08:03 2014 From: buynnnmmm1 at yahoo.co.jp (buynnnmmm1 at yahoo.co.jp) Date: Mon, 15 Sep 2014 22:08:03 +0900 (JST) Subject: [GAP Forum] Please tell me the meaning (FreeGroup, GroupHomomorphismByImages and PreImagesRepresentative) of the set of functions to be used when solving the puzzle in GAP. In-Reply-To: <20140915123845.GA28046@cs.cas.cz> References: <812330.27358.qm@web101609.mail.kks.yahoo.co.jp> <20140915123845.GA28046@cs.cas.cz> Message-ID: <911573.79222.qm@web101618.mail.kks.yahoo.co.jp> Thank you very much for your help! > The sequence of function calls used to find a solution > for a Rubik's cube configuration in the above link is > briefly explained also at > > ? 39.5 Expressing Group Elements as Words in Generators > ? http://www.gap-system.org/Manuals/doc/ref/chap39.html#X7E19F92284F6684E I started reading it. The first part is very easy to understand. I'll try also read the rest. I feel like I can understand what I would like to understand. I'll try to read well is a place that should be read in the manual that I had taught in the previous email. Thank you very much for letting me know the part to be read. buynnnmmm1 ----- Original Message ----- > From: Petr Savicky > To: buynnnmmm1 at yahoo.co.jp > Cc: GAP Forum > Date: 2014/9/15, Mon 21:38 > Subject: Re: [GAP Forum] Please tell me the meaning (FreeGroup, GroupHomomorphismByImages and PreImagesRepresentative) of the set of functions to be used when solving the puzzle in GAP. > > On Sun, Sep 14, 2014 at 11:28:20PM +0900, buynnnmmm1 at yahoo.co.jp wrote: >> Hello >> >> I cannot understand how to solve pazlles. >> ex. http://www.gap-system.org/Doc/Examples/rubik.html >> >> They use FreeGroup, then use GroupHomomorphismByImages, then use > PreImagesRepresentative. > > The sequence of function calls used to find a solution > for a Rubik's cube configuration in the above link is > briefly explained also at > > ? 39.5 Expressing Group Elements as Words in Generators > ? http://www.gap-system.org/Manuals/doc/ref/chap39.html#X7E19F92284F6684E > > Best regards, > Petr Savicky. > From alexk at mcs.st-andrews.ac.uk Mon Sep 15 18:46:30 2014 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Mon, 15 Sep 2014 18:46:30 +0100 Subject: [GAP Forum] IsomorphismTypeFiniteSimpleGroup results in an error. In-Reply-To: <275285.77206.qm@web101604.mail.kks.yahoo.co.jp> References: <865349.76439.qm@web101611.mail.kks.yahoo.co.jp> <275285.77206.qm@web101604.mail.kks.yahoo.co.jp> Message-ID: On 15 Sep 2014, at 12:41, buynnnmmm1 at yahoo.co.jp wrote: > Thank you very much for e-mail immediately. > Thank you very much for your help. > I was sure that even here can do it. You're welcome! Glad that this was helpful. > > gap> s8:=Group((1,2),(1,2,3,4,5,6,7,8)); > Group([ (1,2), (1,2,3,4,5,6,7,8) ]) > gap> a8:=CommutatorSubgroup(s8,s8); > Group([ (1,3,2), (2,4,3), (3,5,4), (4,6,5), (5,7,6), (6,8,7) ]) > gap> elab:= Group( (1,2)(3,4)(5,6)(7,8), (1,3)(2,4)(5,7)(6,8), (1,5)(2,6)(3,7)(4,8)); > Group([ (1,2)(3,4)(5,6)(7,8), (1,3)(2,4)(5,7)(6,8), (1,5)(2,6)(3,7)(4,8) ]) > gap> norm:= Normalizer( a8, elab );; > gap> hom:=NaturalHomomorphismByNormalSubgroup( norm , elab ); > > gap> f := Image( hom ); > Group([ (), (), (), (4,5)(6,7), (4,6)(5,7), (2,3)(6,7), (2,4)(3,5), (1,2)(5,6) ]) > gap> IsomorphismTypeInfoFiniteSimpleGroup( f ); > rec( name := "A(1,7) = L(2,7) ~ B(1,7) = O(3,7) ~ C(1,7) = S(2,7) ~ 2A(1,7) = U(2,7) ~ A(2,2) = L(3,2)", parameter := [ 2, 7 ], > series := "L" ) > > I've read http://www.gap-system.org/Manuals/doc/ref/chap77.html. > Then, Http://www.math.niu.edu/help/math/gap4/ref/CHAP036.htm was hit when I net doing a keyword search for "IsomorphismTypeFiniteSimpleGroup". This NIU-hosted copy of GAP manuals refers to some version of GAP that was around in 2000. At that time it was not uncommon to host mirrors of GAP distribution, and many places were also serving a copy GAP documentation for local users to help with slow connections or internet blackouts. Many places stopped doing this when the network became faster and reliable, so my conjecture would be that most of the copies of GAP manuals that may be found outside the main GAP website are actually outdated (until recently, GAP website still provided HTML version of GAP 3 manuals, and now they are only available in a tar.gz archive to prevent search engines pointing to GAP 3 manuals which may cause even more confusion trying them in GAP 4). Anyhow, you do not need to search for the GAP Documentation in the Internet, since it is included in your GAP installation, and GAP provides a command-line functionality to search in it using the ? (question mark) operator or ?? (double question mark). For example, you might have tried to find the exact match with '?': gap> ?IsomorphismTypeFiniteSimpleGroup Help: no matching entry found and then decide to try with '??' to find all search index entries that contain a given substring, like here: gap> ??IsomorphismType Help: several entries match this topic - type ?2 to get match [2] [1] Reference: IsomorphismTypeInfoFiniteSimpleGroup [2] Reference: IsomorphismTypeInfoFiniteSimpleGroup (for a group) [3] Reference: IsomorphismTypeInfoFiniteSimpleGroup (for a group order) [4] Reference: IsomorphismTypeInfoFiniteSimpleGroup (for a character table) or like here: gap> ??FiniteSimpleGroup Help: several entries match this topic - type ?2 to get match [2] [1] Reference: IsomorphismTypeInfoFiniteSimpleGroup [2] Reference: IsomorphismTypeInfoFiniteSimpleGroup (for a group) [3] Reference: IsomorphismTypeInfoFiniteSimpleGroup (for a group order) [4] Reference: IsomorphismTypeInfoFiniteSimpleGroup (for a character table) Now you may type ?1 to see the 1st entry, etc. Also, the command SetHelpViewer (you may try to see its description by entering ?SetHelpViewer) can be used to use nicer display methods for the online help (for example, I normally set the viewer to my preferred HTML browser). Furthermore, if you wish to use the external search engine, then the GAP website offers its own search tool at http://www.gap-system.org/search.html. Using it, you may e.g. search only in Gap Forum Archives or in the Gap 4 Manual. Also, you may ask Google to search only within the GAP website by adding "site:www.gap-system.org" in the search form after your search input. > I was Written in the document with the "GAP 4 manual February 2000". > It seems there was IsomorphismTypeInfoFiniteSimpleGroup function in GAP4 of the old version. > > This document, because it is updated on 2014/8/16 recently, Could this be a typo? I can't read it, but page two of the PDF file has timestamp 02/08/16 and this can't be 2016 yet. And also http://sci.kj.yamagata-u.ac.jp/~waki/jpn/gap_docs/ says this file is from 2003. We could add a link to this document to the page http://www.gap-system.org/Doc/Teaching/teaching.html (which already lists another teaching material in Japanese) if someone will suggest a description. It seems that most of examples still will work. > I think the document author and not using "GAPDoc package". I think too - GAPDoc-based manuals have their recognisable style. Using Unicode fonts, in principle one should be able to create GAPDoc-based documents in Japanese. Best wishes Alexander > I leave the mail also "GAPDoc package" to the author. > > > Thank you very much for your help! > > P.S. > I resend same e-mail because I've forgotten cc column of mail (forum at gap-system.org). > > buynnnmmm1 > > > > > ----- Original Message ----- >> From: Alexander Konovalov >> To: buynnnmmm1 at yahoo.co.jp >> Cc: "forum at gap-system.org" >> Date: 2014/9/15, Mon 18:25 >> Subject: Re: [GAP Forum] IsomorphismTypeFiniteSimpleGroup results in an error. >> >> Hello, >> >> The correct name of this function is IsomorphismTypeInfoFiniteSimpleGroup. Using >> the input from the question, it produces the expected result: >> >> gap> IsomorphismTypeInfoFiniteSimpleGroup( f ); >> rec( name := "A(1,7) = L(2,7) ~ B(1,7) = O(3,7) ~ C(1,7) = S(2,7) ~ 2A(1,7) >> = U(2,7) ~ A(2,2) = L(3,2)", parameter := [ 2, 7 ], series := "L" >> ) >> gap> >> >> I don't know for sure if this is a typo or the function was renamed in GAP, >> but it could be the former - I can see IsomorphismTypeInfoFiniteSimpleGroup >> mentions dated back to 2003. It seems that the document you mention is dated >> 2002 and refers to GAP 4.2, so it is plausible that some examples are not >> reproducible and should be adapted to GAP 4.7. Most of such cases are covered in >> the Chapter "Replaced and Removed Command Names" of the GAP Reference >> manual (http://www.gap-system.org/Manuals/doc/ref/chap77.html), and in doubt >> please just ask. >> >> Best wishes >> Alexander >> >> P.S. It should be possible to produce GAP teaching materials in various >> languages using GAPDoc package, and run automated tests of their examples to >> check that they all still work with new versions of GAP. This will simplify >> their maintenance and their upgrading after major GAP releases. >> >> >> On 15 Sep 2014, at 05:06, buynnnmmm1 at yahoo.co.jp wrote: >> >>> >>> >>> Hello. >>> It is an error to try to do in the Gap4.7.5 >> IsomorphismTypeFiniteSimpleGroup of P.27 of >> http://sci.kj.yamagata-u.ac.jp/~waki/jpn/gap_docs/take_gap.pdf. >>> >>> gap> s8:=Group((1,2),(1,2,3,4,5,6,7,8)); >>> Group([ (1,2), (1,2,3,4,5,6,7,8) ]) >>> gap> a8:=CommutatorSubgroup(s8,s8); >>> Group([ (1,3,2), (2,4,3), (2,3)(4,5), (2,4,6,5,3), (2,5,3)(4,7,6), >> (2,3)(5,6,8,7) ]) >>> gap> elab:= Group( (1,2)(3,4)(5,6)(7,8), (1,3)(2,4)(5,7)(6,8), >> (1,5)(2,6)(3,7)(4,8)); >>> Group([ (1,2)(3,4)(5,6)(7,8), (1,3)(2,4)(5,7)(6,8), (1,5)(2,6)(3,7)(4,8) ]) >>> gap> norm:= Normalizer( a8, elab );; >>> gap> hom:=NaturalHomomorphismByNormalSubgroup( norm , elab ); >>> >>> gap> f := Image( hom ); >>> Group([ (), (), (), (4,5)(6,7), (4,6)(5,7), (2,3)(6,7), (2,4)(3,5), >> (1,2)(5,6) ]) >>> gap> IsomorphismTypeFiniteSimpleGroup( f ); >>> Error, Variable: 'IsomorphismTypeFiniteSimpleGroup' must have a >> value >>> not in any function at line 16 of *stdin* >>> >>> >>> However, I should be able to get the following output: In P.27 of this PDF >> file. >>> >>> gap> IsomorphismTypeFiniteSimpleGroup( f ); >>> rec( series := "L", parameter := [ 2, 7 ], >>> name := "A(1,7) = L(2,7) ~ B(1,7) = O(3,7) ~ C(1,7) = S(2,7) ~ >>> 2A(1,7) = U(2\ >>> ,7) ~ A(2,2) = L(3,2)" ) >>> >>> >>> Could you tell me how to solve this problem? >>> How to use or probably been changed in accordance with the version up? >>> Or bug or probably are mixedin Gap version up? >>> >>> >>> buynnnmmm1 >>> >>> _______________________________________________ >>> Forum mailing list >>> Forum at mail.gap-system.org >>> http://mail.gap-system.org/mailman/listinfo/forum >> From buynnnmmm1 at yahoo.co.jp Mon Sep 15 22:17:16 2014 From: buynnnmmm1 at yahoo.co.jp (buynnnmmm1 at yahoo.co.jp) Date: Tue, 16 Sep 2014 06:17:16 +0900 (JST) Subject: [GAP Forum] IsomorphismTypeFiniteSimpleGroup results in an error. References: <865349.76439.qm@web101611.mail.kks.yahoo.co.jp> <275285.77206.qm@web101604.mail.kks.yahoo.co.jp> Message-ID: <902809.69206.qm@web101610.mail.kks.yahoo.co.jp> Thank you very much for your help. > This NIU-hosted copy of GAP manuals refers to some version of GAP that was > around in 2000. At that time it was not uncommon to host mirrors of GAP > distribution, and many places were also serving a copy GAP documentation for > local users to help with slow connections or internet blackouts. Many places > stopped doing this when the network became faster and reliable, so my conjecture > would be that most of the copies of GAP manuals that may be found outside the > main GAP website are actually outdated (until recently, GAP website still > provided HTML version of GAP 3 manuals, and now they are only available in a > tar.gz archive to prevent search engines pointing to GAP 3 manuals which may > cause even more confusion trying them in GAP 4). > > Anyhow, you do not need to search for the GAP Documentation in the Internet, > since it is included in your GAP installation, and GAP provides a command-line > functionality to search in it using the ? (question mark) operator or ?? (double > question mark). For example, you might have tried to find the exact match with > '?': > > gap> ?IsomorphismTypeFiniteSimpleGroup? ? > Help: no matching entry found > > and then decide to try with '??' to find all search index entries that > contain a given substring, like here: > > > gap> ??IsomorphismType? ? ? ? ? ? ? ? > Help: several entries match this topic - type ?2 to get match [2] > > [1] Reference: IsomorphismTypeInfoFiniteSimpleGroup > [2] Reference: IsomorphismTypeInfoFiniteSimpleGroup (for a group) > [3] Reference: IsomorphismTypeInfoFiniteSimpleGroup (for a group order) > [4] Reference: IsomorphismTypeInfoFiniteSimpleGroup (for a character table) > > > or like here: > > > gap> ??FiniteSimpleGroup? ? ? ? ? ? ? > Help: several entries match this topic - type ?2 to get match [2] > > [1] Reference: IsomorphismTypeInfoFiniteSimpleGroup > [2] Reference: IsomorphismTypeInfoFiniteSimpleGroup (for a group) > [3] Reference: IsomorphismTypeInfoFiniteSimpleGroup (for a group order) > [4] Reference: IsomorphismTypeInfoFiniteSimpleGroup (for a character table) > > > Now you may type ?1 to see the 1st entry, etc. Also, the command SetHelpViewer > (you may try to see its description by entering ?SetHelpViewer) can be used to > use nicer display methods for the online help (for example, I normally set the > viewer to my preferred HTML browser). > > Furthermore, if you wish to use the external search engine, then the GAP website > offers its own search tool at http://www.gap-system.org/search.html. Using it, > you may e.g. search only in Gap Forum Archives or in the Gap 4 Manual. Also, you > may ask Google to search only within the GAP website by adding > "site:www.gap-system.org" in the search form after your search input. Thank you very much for your description of how to use the help function of detailed GAP and how to search only within the GAP website with Google search Engine. > Could this be a typo? I can't read it, but page two of the PDF file has > timestamp 02/08/16 and this can't be 2016 yet. And also > http://sci.kj.yamagata-u.ac.jp/~waki/jpn/gap_docs/ says this file is from 2003. > > We could add a link to this document to the page > http://www.gap-system.org/Doc/Teaching/teaching.html (which already lists > another teaching material in Japanese) if someone will suggest a description. It > seems that most of examples still will work. > >>? I think the document author and not using "GAPDoc package". > > I think too - GAPDoc-based manuals have their recognisable style. Using Unicode > fonts, in principle one should be able to create GAPDoc-based documents in > Japanese. I was accidentally mistaken for 2014 at the beginning of the PDF file from was written with "heisei" 14 year. "Heisei" is the Japanese era calendar scheme numbers years from the accession of the current emperor. That pdf document was old. I have sent a mail to the email address it is written in the first page of the pdf document, but it did not reach. So I've emailed the university to which the pdf author belongs. Thank you very much for your help. P.S. I resend same e-mail because I also have forgotten cc column of mail (forum at mail.gap-system.org). buynnnmmm1 ----- Original Message ----- > From: Alexander Konovalov > To: buynnnmmm1 at yahoo.co.jp > Cc: "forum at gap-system.org" > Date: 2014/9/16, Tue 02:46 > Subject: Re: [GAP Forum] IsomorphismTypeFiniteSimpleGroup results in an error. > > On 15 Sep 2014, at 12:41, buynnnmmm1 at yahoo.co.jp wrote: > >>? Thank you very much for e-mail immediately. >>? Thank you very much for your help. >>? I was sure that even here can do it. > > You're welcome! Glad that this was helpful. >> >>? gap> s8:=Group((1,2),(1,2,3,4,5,6,7,8)); >>? Group([ (1,2), (1,2,3,4,5,6,7,8) ]) >>? gap> a8:=CommutatorSubgroup(s8,s8); >>? Group([ (1,3,2), (2,4,3), (3,5,4), (4,6,5), (5,7,6), (6,8,7) ]) >>? gap> elab:= Group( (1,2)(3,4)(5,6)(7,8), (1,3)(2,4)(5,7)(6,8),? > (1,5)(2,6)(3,7)(4,8)); >>? Group([ (1,2)(3,4)(5,6)(7,8), (1,3)(2,4)(5,7)(6,8), (1,5)(2,6)(3,7)(4,8) ]) >>? gap> norm:= Normalizer( a8, elab );; >>? gap> hom:=NaturalHomomorphismByNormalSubgroup( norm , elab ); >>? >>? gap> f := Image( hom ); >>? Group([ (), (), (), (4,5)(6,7), (4,6)(5,7), (2,3)(6,7), (2,4)(3,5), > (1,2)(5,6) ]) >>? gap> IsomorphismTypeInfoFiniteSimpleGroup( f ); >>? rec( name := "A(1,7) = L(2,7) ~ B(1,7) = O(3,7) ~ C(1,7) = S(2,7) ~ > 2A(1,7) = U(2,7) ~ A(2,2) = L(3,2)", parameter := [ 2, 7 ], >> ?? series := "L" ) >> >>? I've read http://www.gap-system.org/Manuals/doc/ref/chap77.html. >>? Then, Http://www.math.niu.edu/help/math/gap4/ref/CHAP036.htm was hit when I > net doing a keyword search for "IsomorphismTypeFiniteSimpleGroup". > > This NIU-hosted copy of GAP manuals refers to some version of GAP that was > around in 2000. At that time it was not uncommon to host mirrors of GAP > distribution, and many places were also serving a copy GAP documentation for > local users to help with slow connections or internet blackouts. Many places > stopped doing this when the network became faster and reliable, so my conjecture > would be that most of the copies of GAP manuals that may be found outside the > main GAP website are actually outdated (until recently, GAP website still > provided HTML version of GAP 3 manuals, and now they are only available in a > tar.gz archive to prevent search engines pointing to GAP 3 manuals which may > cause even more confusion trying them in GAP 4). > > Anyhow, you do not need to search for the GAP Documentation in the Internet, > since it is included in your GAP installation, and GAP provides a command-line > functionality to search in it using the ? (question mark) operator or ?? (double > question mark). For example, you might have tried to find the exact match with > '?': > > gap> ?IsomorphismTypeFiniteSimpleGroup? ? > Help: no matching entry found > > and then decide to try with '??' to find all search index entries that > contain a given substring, like here: > > > gap> ??IsomorphismType? ? ? ? ? ? ? ? > Help: several entries match this topic - type ?2 to get match [2] > > [1] Reference: IsomorphismTypeInfoFiniteSimpleGroup > [2] Reference: IsomorphismTypeInfoFiniteSimpleGroup (for a group) > [3] Reference: IsomorphismTypeInfoFiniteSimpleGroup (for a group order) > [4] Reference: IsomorphismTypeInfoFiniteSimpleGroup (for a character table) > > > or like here: > > > gap> ??FiniteSimpleGroup? ? ? ? ? ? ? > Help: several entries match this topic - type ?2 to get match [2] > > [1] Reference: IsomorphismTypeInfoFiniteSimpleGroup > [2] Reference: IsomorphismTypeInfoFiniteSimpleGroup (for a group) > [3] Reference: IsomorphismTypeInfoFiniteSimpleGroup (for a group order) > [4] Reference: IsomorphismTypeInfoFiniteSimpleGroup (for a character table) > > > Now you may type ?1 to see the 1st entry, etc. Also, the command SetHelpViewer > (you may try to see its description by entering ?SetHelpViewer) can be used to > use nicer display methods for the online help (for example, I normally set the > viewer to my preferred HTML browser). > > Furthermore, if you wish to use the external search engine, then the GAP website > offers its own search tool at http://www.gap-system.org/search.html. Using it, > you may e.g. search only in Gap Forum Archives or in the Gap 4 Manual. Also, you > may ask Google to search only within the GAP website by adding > "site:www.gap-system.org" in the search form after your search input. > >>? I was Written in the document with the "GAP 4 manual February > 2000". >>? It seems there was IsomorphismTypeInfoFiniteSimpleGroup function in GAP4 of > the old version. >> >>? This document, because it is updated on 2014/8/16 recently, > > Could this be a typo? I can't read it, but page two of the PDF file has > timestamp 02/08/16 and this can't be 2016 yet. And also > http://sci.kj.yamagata-u.ac.jp/~waki/jpn/gap_docs/ says this file is from 2003. > > We could add a link to this document to the page > http://www.gap-system.org/Doc/Teaching/teaching.html (which already lists > another teaching material in Japanese) if someone will suggest a description. It > seems that most of examples still will work. > >>? I think the document author and not using "GAPDoc package". > > I think too - GAPDoc-based manuals have their recognisable style. Using Unicode > fonts, in principle one should be able to create GAPDoc-based documents in > Japanese. > > Best wishes > Alexander > > > >>? I leave the mail also "GAPDoc package" to the author. >> >> >>? Thank you very much for your help! >> >>? P.S. >>? I resend same e-mail because I've forgotten cc column of mail > (forum at gap-system.org). >> >> ? ? ? ? ? ? ? ? ? ? buynnnmmm1 >> >> >> >> >>? ----- Original Message ----- >>>? From: Alexander Konovalov >>>? To: buynnnmmm1 at yahoo.co.jp >>>? Cc: "forum at gap-system.org" >>>? Date: 2014/9/15, Mon 18:25 >>>? Subject: Re: [GAP Forum] IsomorphismTypeFiniteSimpleGroup results in an > error. >>> >>>? Hello, >>> >>>? The correct name of this function is > IsomorphismTypeInfoFiniteSimpleGroup. Using >>>? the input from the question, it produces the expected result: >>> >>>? gap> IsomorphismTypeInfoFiniteSimpleGroup( f ); >>>? rec( name := "A(1,7) = L(2,7) ~ B(1,7) = O(3,7) ~ C(1,7) = S(2,7) > ~ 2A(1,7) >>>? = U(2,7) ~ A(2,2) = L(3,2)", parameter := [ 2, 7 ], series := > "L" >>>? ) >>>? gap> >>> >>>? I don't know for sure if this is a typo or the function was renamed > in GAP, >>>? but it could be the former - I can see > IsomorphismTypeInfoFiniteSimpleGroup >>>? mentions dated back to 2003. It seems that the document you mention is > dated >>>? 2002 and refers to GAP 4.2, so it is plausible that some examples are > not >>>? reproducible and should be adapted to GAP 4.7. Most of such cases are > covered in >>>? the Chapter "Replaced and Removed Command Names" of the GAP > Reference >>>? manual (http://www.gap-system.org/Manuals/doc/ref/chap77.html), and in > doubt >>>? please just ask. >>> >>>? Best wishes >>>? Alexander >>> >>>? P.S. It should be possible to produce GAP teaching materials in various > >>>? languages using GAPDoc package, and run automated tests of their > examples to >>>? check that they all still work with new versions of GAP. This will > simplify >>>? their maintenance and their upgrading after major GAP releases. >>> >>> >>>? On 15 Sep 2014, at 05:06, buynnnmmm1 at yahoo.co.jp wrote: >>> >>>> >>>> >>>>? Hello. >>>>? It is an error to try to do in the Gap4.7.5 >>>? IsomorphismTypeFiniteSimpleGroup of P.27 of >>>? http://sci.kj.yamagata-u.ac.jp/~waki/jpn/gap_docs/take_gap.pdf. >>>> >>>>? gap> s8:=Group((1,2),(1,2,3,4,5,6,7,8)); >>>>? Group([ (1,2), (1,2,3,4,5,6,7,8) ]) >>>>? gap> a8:=CommutatorSubgroup(s8,s8); >>>>? Group([ (1,3,2), (2,4,3), (2,3)(4,5), (2,4,6,5,3), (2,5,3)(4,7,6), >>>? (2,3)(5,6,8,7) ]) >>>>? gap> elab:= Group( (1,2)(3,4)(5,6)(7,8), (1,3)(2,4)(5,7)(6,8),? >>>? (1,5)(2,6)(3,7)(4,8)); >>>>? Group([ (1,2)(3,4)(5,6)(7,8), (1,3)(2,4)(5,7)(6,8), > (1,5)(2,6)(3,7)(4,8) ]) >>>>? gap> norm:= Normalizer( a8, elab );; >>>>? gap> hom:=NaturalHomomorphismByNormalSubgroup( norm , elab ); >>>>? >>>>? gap> f := Image( hom ); >>>>? Group([ (), (), (), (4,5)(6,7), (4,6)(5,7), (2,3)(6,7), (2,4)(3,5), > >>>? (1,2)(5,6) ]) >>>>? gap> IsomorphismTypeFiniteSimpleGroup( f ); >>>>? Error, Variable: 'IsomorphismTypeFiniteSimpleGroup' must > have a >>>? value >>>>? not in any function at line 16 of *stdin* >>>> >>>> >>>>? However, I should be able to get the following output: In P.27 of > this PDF >>>? file. >>>> >>>>? gap> IsomorphismTypeFiniteSimpleGroup( f ); >>>>? rec( series := "L", parameter := [ 2, 7 ], >>>>? name := "A(1,7) = L(2,7) ~ B(1,7) = O(3,7) ~ C(1,7) = S(2,7) ~ >>>>? 2A(1,7) = U(2\ >>>>? ,7) ~ A(2,2) = L(3,2)" ) >>>> >>>> >>>>? Could you tell me how to solve this problem? >>>>? How to use or probably been changed in accordance with the version > up? >>>>? Or bug or probably are mixedin Gap version up? >>>> >>>> >>>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? buynnnmmm1 >>>> >>>>? _______________________________________________ >>>>? Forum mailing list >>>>? Forum at mail.gap-system.org >>>>? http://mail.gap-system.org/mailman/listinfo/forum >>> > From sophiane at gmx.de Tue Sep 16 17:20:24 2014 From: sophiane at gmx.de (SY) Date: Tue, 16 Sep 2014 18:20:24 +0200 Subject: [GAP Forum] Merge two gap files Message-ID: <000601cfd1ca$1ef8bb10$5cea3130$@de> Dear Gap forum, i would like to merge two files. I try to solve a problem with two computers and need to merge the results. Thanks From sophiane at gmx.de Tue Sep 16 17:21:29 2014 From: sophiane at gmx.de (SY) Date: Tue, 16 Sep 2014 18:21:29 +0200 Subject: [GAP Forum] Merge two files Message-ID: <000b01cfd1ca$4593d930$d0bb8b90$@de> Dear Gap forum, i would like to merge two files. I try to solve a problem with two computers and need to merge the results. Thanks From buynnnmmm1 at yahoo.co.jp Tue Sep 16 22:29:35 2014 From: buynnnmmm1 at yahoo.co.jp (buynnnmmm1 at yahoo.co.jp) Date: Wed, 17 Sep 2014 06:29:35 +0900 (JST) Subject: [GAP Forum] Is there a simple way to view the source of the function (ex. IsSolvable)? Message-ID: <931685.59404.qm@web101608.mail.kks.yahoo.co.jp> Dear GAP forum, Because I would like to read the source of IsSolvable function, I was able to find by looking at the source of GAP4 using grep. Source of IsSolvable is defined in the "lib/grp.gi" and "lib/grp.gd". Noticing that easy to find if grep function name the files whose name ends with .gd, and went to examine the function So who is called from IsSolved function. ( DerivedSeries, DerivedSubgroup, ClosureSubgroupNC, ClosureGroup, NormalClosure, TrivialSubgroup ,Comm ....) However, this procedure is troublesome. I tried looking for using the http://www.gap-system.org/search.html the reference manual. I found FilenameFunc function in http://www.gap-system.org/Manuals/doc/ref/chap5.html. But I got following output. gap> FilenameFunc(IsSolvable); fail So, I would like to know how to see source of functions (ex. IsSolvable) more easier. Or I would like to know how to get path of the file the function has been defined. Does anyone have any idea how I can do it more easizer. With best regards From buynnnmmm1 at yahoo.co.jp Tue Sep 16 22:52:44 2014 From: buynnnmmm1 at yahoo.co.jp (buynnnmmm1 at yahoo.co.jp) Date: Wed, 17 Sep 2014 06:52:44 +0900 (JST) Subject: [GAP Forum] Is it possible to step through the program, like GNU GDB debugger, against built-in functions(ex. DerivedSubgroup, ClosureSubgroupNC )? Message-ID: <71991.35739.qm@web101616.mail.kks.yahoo.co.jp> Dear GAP forum, Is it possible to set break points against built-in functions (ex. DerivedSubgroup)?? Is it possible to step through the program, like GNU GDB debugger, against built-in functions(ex. DerivedSubgroup, ClosureSubgroupNC )? Because I am a beginner the group theory , I would to examine in detail what functions are doing in what procedure . I check http://www.gap-system.org/Manuals/doc/ref/chap7.html, but I cannot find the function that set break points or step through the function. With best regards From steve.linton at st-andrews.ac.uk Tue Sep 16 22:53:50 2014 From: steve.linton at st-andrews.ac.uk (Stephen Linton) Date: Tue, 16 Sep 2014 22:53:50 +0100 Subject: [GAP Forum] Is there a simple way to view the source of the function (ex. IsSolvable)? In-Reply-To: <931685.59404.qm@web101608.mail.kks.yahoo.co.jp> References: <931685.59404.qm@web101608.mail.kks.yahoo.co.jp> Message-ID: <4788270F-3C0A-483E-AF39-785F1590F515@st-andrews.ac.uk> The thing is that IsSolvable is not really a single function, it is an Operation. An Operation in GAP is a collection of functions called Methods that can be used to compute the result for different kinds of objects. You can get the actual Method applied to particular objects via ?ApplicableMethod?. For instance: gap> g := SymmetricGroup(5); Sym( [ 1 .. 5 ] ) gap> ApplicableMethod(IsSolvableGroup,[g]); function( G ) ... end gap> f := last; function( G ) ... end gap> Print(f); function ( G ) local pcgs; pcgs := TryPcgsPermGroup( G, false, false, true ); if IsPcgs( pcgs ) then SetIndicesEANormalSteps( pcgs, pcgs!.permpcgsNormalSteps ); SetIsPcgsElementaryAbelianSeries( pcgs, true ); if not HasPcgs( G ) then SetPcgs( G, pcgs ); fi; if not HasPcgsElementaryAbelianSeries( G ) then SetPcgsElementaryAbelianSeries( G, pcgs ); fi; return true; else return false; fi; return; end gap> FilenameFunc(f); "/Users/sal/HG/gap/lib/grpperm.gi" gap> StartlineFunc(f); 1221 So the Method that would apply to this particular group is found in grpperm.gi starting at line 1221 (in my development version of GAP). Steve On 16 Sep 2014, at 22:29, buynnnmmm1 at yahoo.co.jp wrote: > Dear GAP forum, > > Because I would like to read the source of IsSolvable function, I was able to find by looking at the source of GAP4 using grep. > > Source of IsSolvable is defined in the "lib/grp.gi" and "lib/grp.gd". > Noticing that easy to find if grep function name the files whose name ends with .gd, and went to examine the function So who is called from IsSolved function. ( DerivedSeries, DerivedSubgroup, ClosureSubgroupNC, ClosureGroup, NormalClosure, TrivialSubgroup ,Comm ....) > > > However, this procedure is troublesome. > > > I tried looking for using the http://www.gap-system.org/search.html the reference manual. > > I found FilenameFunc function in http://www.gap-system.org/Manuals/doc/ref/chap5.html. > > But I got following output. > > gap> FilenameFunc(IsSolvable); > fail > > So, I would like to know how to see source of functions (ex. IsSolvable) more easier. > Or I would like to know how to get path of the file the function has been defined. > > Does anyone have any idea how I can do it more easizer. > > > With best regards > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From buynnnmmm1 at yahoo.co.jp Tue Sep 16 23:30:53 2014 From: buynnnmmm1 at yahoo.co.jp (buynnnmmm1 at yahoo.co.jp) Date: Wed, 17 Sep 2014 07:30:53 +0900 (JST) Subject: [GAP Forum] Is there a simple way to view the source of the function (ex. IsSolvable)? In-Reply-To: <4788270F-3C0A-483E-AF39-785F1590F515@st-andrews.ac.uk> References: <931685.59404.qm@web101608.mail.kks.yahoo.co.jp> <4788270F-3C0A-483E-AF39-785F1590F515@st-andrews.ac.uk> Message-ID: <343242.69507.qm@web101614.mail.kks.yahoo.co.jp> Dear Stephen Linton, Thank you very much for your help! Thanks to you very much , it is now very easy to see the source of the built-in Methods. I try it immediately in the way that you taught me. With best regards ----- Original Message ----- > From: Stephen Linton > To: buynnnmmm1 at yahoo.co.jp > Cc: GAP Forum > Date: 2014/9/17, Wed 06:53 > Subject: Re: [GAP Forum] Is there a simple way to view the source of the function (ex. IsSolvable)? > >T he thing is that IsSolvable is not really a single function, it is an > Operation. > > An Operation in GAP is a collection of functions called Methods that can be used > to compute the > result for different kinds of objects. > > You can get the actual Method applied to particular objects via > ?ApplicableMethod?. For instance: > > gap> g := SymmetricGroup(5); > Sym( [ 1 .. 5 ] ) > gap> ApplicableMethod(IsSolvableGroup,[g]); > function( G ) ... end > gap> f := last; > function( G ) ... end > gap> Print(f); > function ( G ) > ? ? local? pcgs; > ? ? pcgs := TryPcgsPermGroup( G, false, false, true ); > ? ? if IsPcgs( pcgs )? then > ? ? ? ? SetIndicesEANormalSteps( pcgs, pcgs!.permpcgsNormalSteps ); > ? ? ? ? SetIsPcgsElementaryAbelianSeries( pcgs, true ); > ? ? ? ? if not HasPcgs( G )? then > ? ? ? ? ? ? SetPcgs( G, pcgs ); > ? ? ? ? fi; > ? ? ? ? if not HasPcgsElementaryAbelianSeries( G )? then > ? ? ? ? ? ? SetPcgsElementaryAbelianSeries( G, pcgs ); > ? ? ? ? fi; > ? ? ? ? return true; > ? ? else > ? ? ? ? return false; > ? ? fi; > ? ? return; > end > gap> FilenameFunc(f); > "/Users/sal/HG/gap/lib/grpperm.gi" > gap> StartlineFunc(f); > 1221 > > So the Method that would apply to this particular group is found in grpperm.gi > starting at line 1221 (in my development version of GAP). > > ??? Steve > > > > On 16 Sep 2014, at 22:29, buynnnmmm1 at yahoo.co.jp wrote: > >> Dear GAP forum, >> >> Because I would like to read the source of IsSolvable function, I was able > to find by looking at the source of GAP4 using grep. >> >> Source of IsSolvable is defined in the "lib/grp.gi" and > "lib/grp.gd". >> Noticing that easy to find if grep function name the files whose name ends > with .gd, and went to examine the function So who is called from IsSolved > function. ( DerivedSeries, DerivedSubgroup, ClosureSubgroupNC, ClosureGroup, > NormalClosure, TrivialSubgroup ,Comm ....) >> >> >> However, this procedure is troublesome. >> >> >> I tried looking for using the http://www.gap-system.org/search.html the > reference manual. >> >> I found FilenameFunc function in > http://www.gap-system.org/Manuals/doc/ref/chap5.html. >> >> But I got following output. >> >> gap> FilenameFunc(IsSolvable); >> fail >> >> So, I would like to know how to see source of functions (ex. IsSolvable) > more easier. >> Or I would like to know how to get path of the file the function has been > defined. >> >> Does anyone have any idea how I can do it more easizer. >> >> >> With best regards >> >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum > From buynnnmmm1 at yahoo.co.jp Wed Sep 17 00:17:07 2014 From: buynnnmmm1 at yahoo.co.jp (buynnnmmm1 at yahoo.co.jp) Date: Wed, 17 Sep 2014 08:17:07 +0900 (JST) Subject: [GAP Forum] Is there a simple way to view the source of the function (ex. IsSolvable)? In-Reply-To: References: <931685.59404.qm@web101608.mail.kks.yahoo.co.jp> <4788270F-3C0A-483E-AF39-785F1590F515@st-andrews.ac.uk> Message-ID: <207708.3280.qm@web101612.mail.kks.yahoo.co.jp> Dear Stefan Kohl, It's wonderful! It's great! Thank you very much for your help! P.S. I resent same e-mail, because I forgot cc:. With best regards ----- Original Message ----- > From: Stefan Kohl > To: Stephen Linton > Cc: buynnnmmm1 at yahoo.co.jp; support at gap-system.org > Date: 2014/9/17, Wed 08:05 > Subject: Re: [GAP Forum] Is there a simple way to view the source of the function (ex. IsSolvable)? > > On Tue, September 16, 2014 10:53 pm, Stephen Linton wrote: >> The thing is that IsSolvable is not really a single function, it is an > Operation. >> >> An Operation in GAP is a collection of functions called Methods that can be > used to >> compute the result for different kinds of objects. >> >> You can get the actual Method applied to particular objects via > ?ApplicableMethod?. For >> instance: >> >> gap> g := SymmetricGroup(5); >> Sym( [ 1 .. 5 ] ) >> gap> ApplicableMethod(IsSolvableGroup,[g]); >> function( G ) ... end >> gap> f := last; >> function( G ) ... end >> gap> Print(f); >> function ( G ) >> ? ? local? pcgs; >> ? ? pcgs := TryPcgsPermGroup( G, false, false, true ); >> ? ? if IsPcgs( pcgs )? then >> ? ? ? ? SetIndicesEANormalSteps( pcgs, pcgs!.permpcgsNormalSteps ); >> ? ? ? ? SetIsPcgsElementaryAbelianSeries( pcgs, true ); >> ? ? ? ? if not HasPcgs( G )? then >> ? ? ? ? ? ? SetPcgs( G, pcgs ); >> ? ? ? ? fi; >> ? ? ? ? if not HasPcgsElementaryAbelianSeries( G )? then >> ? ? ? ? ? ? SetPcgsElementaryAbelianSeries( G, pcgs ); >> ? ? ? ? fi; >> ? ? ? ? return true; >> ? ? else >> ? ? ? ? return false; >> ? ? fi; >> ? ? return; >> end >> gap> FilenameFunc(f); >> "/Users/sal/HG/gap/lib/grpperm.gi" >> gap> StartlineFunc(f); >> 1221 >> >> So the Method that would apply to this particular group is found in > grpperm.gi starting >> at line 1221 (in my development version of GAP). > > A slightly more direct approach is with PageSource: > > gap> PageSource(ApplicableMethod(IsSolvableGroup,[SymmetricGroup(5)])); > Showing source in /cygdrive/c/GAP/GAP4R7/lib/grpperm.gi (from line 1216) > ############################################################################# > ## > #M? IsSolvableGroup( )? . . . . . . . . . . . . . . . .? solvability > test > ## > InstallMethod( IsSolvableGroup,"for permgrp", true, [ IsPermGroup ], > 0, > function(G) > local pcgs; > ? pcgs:=TryPcgsPermGroup( G, false, false, true ); > ? if IsPcgs(pcgs) then > ? ? SetIndicesEANormalSteps(pcgs,pcgs!.permpcgsNormalSteps); > ? ? SetIsPcgsElementaryAbelianSeries(pcgs,true); > ? ? if not HasPcgs(G) then > ? ? ? SetPcgs(G,pcgs); > ? ? fi; > ? ? if not HasPcgsElementaryAbelianSeries(G) then > ? ? ? SetPcgsElementaryAbelianSeries(G,pcgs); > ? ? fi; > ? ? return true; > ? else > ? ? return false; > ? fi; > end); > > ? ? Stefan > From alexk at mcs.st-andrews.ac.uk Wed Sep 17 12:19:35 2014 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Wed, 17 Sep 2014 12:19:35 +0100 Subject: [GAP Forum] Is it possible to step through the program, like GNU GDB debugger, against built-in functions(ex. DerivedSubgroup, ClosureSubgroupNC )? In-Reply-To: <71991.35739.qm@web101616.mail.kks.yahoo.co.jp> References: <71991.35739.qm@web101616.mail.kks.yahoo.co.jp> Message-ID: <41051A9E-938E-4BD7-B959-35C827833CB7@mcs.st-andrews.ac.uk> On 16 Sep 2014, at 22:52, buynnnmmm1 at yahoo.co.jp wrote: > Dear GAP forum, > > Is it possible to set break points against built-in functions (ex. DerivedSubgroup)? > > Is it possible to step through the program, like GNU GDB debugger, against built-in functions(ex. DerivedSubgroup, ClosureSubgroupNC )? > > Because I am a beginner the group theory , I would to examine in detail what functions are doing in what procedure . > > I check http://www.gap-system.org/Manuals/doc/ref/chap7.html, but I cannot find the function that set break points or step through the function. No, there is no such functionality, but there are workarounds and alternatives. First, you can add the line like Error("Break point some text which you want to display..."); in the code, and then you will be able to investigate local variables from the break loop - see http://www.gap-system.org/Manuals/doc/ref/chap6.html Second, you already know from your previous post how to find the code of the function. Since GAP is an interpreted language, you may try to paste the code of the function into your session line by line and see what happens. Finally, YMMV (your mileage may vary): looking at the method below for IsSolvableGroup itself will likely not give an insight into the solvability of groups, it will just point to some other procedure: > gap> g := SymmetricGroup(5); > Sym( [ 1 .. 5 ] ) > gap> ApplicableMethod(IsSolvableGroup,[g]); > function( G ) ... end > gap> f := last; > function( G ) ... end > gap> Print(f); > function ( G ) > local pcgs; > pcgs := TryPcgsPermGroup( G, false, false, true ); > if IsPcgs( pcgs ) then > SetIndicesEANormalSteps( pcgs, pcgs!.permpcgsNormalSteps ); > SetIsPcgsElementaryAbelianSeries( pcgs, true ); > if not HasPcgs( G ) then > SetPcgs( G, pcgs ); > fi; > if not HasPcgsElementaryAbelianSeries( G ) then > SetPcgsElementaryAbelianSeries( G, pcgs ); > fi; > return true; > else > return false; > fi; > return; > end What is does is that it calls TryPcgsPermGroup and then checks if it returns the object which is IsPcgs (polycyclic generating system, see http://www.gap-system.org/Manuals/doc/ref/chap45.html). If that calculation is not successful, the group is not solvable, otherwise it is. Now you may be interested to find the (undocumented!) function TryPcgsPermGroup which does the actual job, see for any comments in the code, etc. Best wishes Alexander From buynnnmmm1 at yahoo.co.jp Wed Sep 17 13:57:56 2014 From: buynnnmmm1 at yahoo.co.jp (buynnnmmm1 at yahoo.co.jp) Date: Wed, 17 Sep 2014 21:57:56 +0900 (JST) Subject: [GAP Forum] Is it possible to step through the program, like GNU GDB debugger, against built-in functions(ex. DerivedSubgroup, ClosureSubgroupNC )? In-Reply-To: <41051A9E-938E-4BD7-B959-35C827833CB7@mcs.st-andrews.ac.uk> References: <71991.35739.qm@web101616.mail.kks.yahoo.co.jp> <41051A9E-938E-4BD7-B959-35C827833CB7@mcs.st-andrews.ac.uk> Message-ID: <541990.91675.qm@web101619.mail.kks.yahoo.co.jp> Dear Alexander Konovalov, Thank you very much for your help. I will be able to do what I would like to do with the way you taught me, embeded Err("Message")s in codes. > What is does is that it calls TryPcgsPermGroup and then checks if it returns the > object which is IsPcgs (polycyclic generating system, see > http://www.gap-system.org/Manuals/doc/ref/chap45.html). If that calculation is > not successful, the group is not solvable, otherwise it is. Now you may be > interested to find the (undocumented!) function TryPcgsPermGroup which does the > actual job, see for any comments in the code, etc. I have not try to read the source TryPcgsPermGroup and IsPcgs yet. Source code of IsSolvable was also included in the lib / grp.gi and lib / grp.gd. It is very easy to understand for me. myIsSolvable:=function ( x ) ?? local? d; ?? d := DerivedSeries( x ); ?? return IsTrivial( d[Size( d )] ); end gap> List([1..30], x -> myIsSolvable(SymmetricGroup(x))) = List([1..30], x -> IsSolvable(SymmetricGroup(x))); true For Symmetric Group, the same results have been obtained. So I'm going to try to do withmyIsSolvable function that uses the DerivedSeries function. There was a difference of more than twice the run time to IsSolvable of built-in and myIsSolvable Taking the profile. Built-in IsSolved Would has become the source code I hard to understand in order to increase the execution speed? gap> ProfileGlobalFunctions( true ); gap> ProfileOperationsAndMethods( true ); gap> List( [1..30], x -> IsSolvable(SymmetricGroup(x))) ; [ true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, ? false, false, false, false, false, false, false, false, false, false, false ] gap> ProfileGlobalFunctions( false ); gap> ProfileOperationsAndMethods( false ); gap> DisplayProfile(); ? count? self/ms? chld/ms? stor/kb? chld/kb? package? function???????????????????????????????????????????????????????????????????? ???? 56??????? 0?????? 32??????? 6????? 786? GAP????? TryPcgsPermGroup???????????????????????????????????????????????????????????? ???? 56??????? 0?????? 32??????? 9????? 794? (oprt.)? IsSolvableGroup????????????????????????????????????????????????????????????? ???? 30??????? 0?????? 32??????? 0????? 804? (oprt.)? IsSolvable?????????????????????????????????????????????????????????????????? ???? 28??????? 0?????? 32??????? 0????? 794? GAP????? IsSolvableGroup: for permgrp???????????????????????????????????????????????? ?156491?????? 40??????? 0????? 741?????? 15? (oprt.)? Add????????????????????????????????????????????????????????????????????????? ????? 3?????? 52??????? 0?????? 70??????? 0?????????? SortParallel: for two dense and mutable lists??????????????????????????????? ??? 574?????? 16?????? 40???? 2043????? 988? GAP????? List???????????????????????????????????????????????????????????????????????? ????? 4??????? 4?????? 80?????? 96????? 213? (oprt.)? Sortex?????????????????????????????????????????????????????????????????????? ????? 4?????? 60?????? 52?????? 72?????? 70? (oprt.)? SortParallel???????????????????????????????????????????????????????????????? ?? 2028????? 272??????? 0??????? 0??????? 0? (oprt.)? Position???????????????????????????????????????????????????????????????????? ????????????? 72????????????? 2324??????????????????? OTHER??????????????????????????????????????????????????????????????????????? ???????????? 516????????????? 5365??????????????????? TOTAL??????????????????????????????????????????????????????????????????????? gap> ProfileGlobalFunctions( true ); gap> ProfileOperationsAndMethods( true ); gap> List( [1..30], x -> myIsSolvable(SymmetricGroup(x))) ; [ true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, ? false, false, false, false, false, false, false, false, false, false, false ] gap> ProfileGlobalFunctions( false ); gap> ProfileOperationsAndMethods( false ); gap> DisplayProfile(); ? count? self/ms? chld/ms? stor/kb? chld/kb? package? function???????????????????????????????????????????????????????????????????? ? 11686??????? 0??????? 0??????? 0??????? 0?????????? CanComputeIsSubset: default: no, unless identical??????????????????????????? ? 12708??????? 4??????? 4????? 198??????? 0? GAP????? IsOne: for a multiplicative-element-with-one???????????????????????????????? ? 18151??????? 8??????? 4??????? 0??????? 0? (oprt.)? Tester(IsAssociative)??????????????????????????????????????????????????????? ? 12708?????? 20??????? 0??????? 0????? 198? (oprt.)? IsOne??????????????????????????????????????????????????????????????????????? ? 15776?????? 12??????? 4??????? 0??????? 0?????????? OneImmutable: system getter????????????????????????????????????????????????? ? 21144?????? 16??????? 4?????? 29??????? 0?????????? GeneratorsOfMagmaWithInverses: system getter???????????????????????????????? ? 17646?????? 12?????? 12?????? 18????? 173? (oprt.)? Representative: for magma-with-one with known one??????????????????????????? ??? 382??????? 0?????? 32??????? 5????? 269? (oprt.)? Setter(ParentAttr)?????????????????????????????????????????????????????????? ? 21144?????? 16?????? 16?????? 18?????? 29? (oprt.)? FreeGeneratorsOfFpGroup: for a free group??????????????????????????????????? ????? 1??????? 0?????? 32?????? 70?????? 70? GAP????? Sortex: for a mutable list?????????????????????????????????????????????????? ?? 3391??????? 8?????? 24?????? 92????? 191? GAP????? SmallestMovedPoint: for a collection of permutations???????????????????????? ??? 382??????? 0?????? 32??????? 7?????? 12? GAP????? Setter(ParentAttr): method that calls 'UseSubsetRelation'??????????????????? ?? 8681??????? 4?????? 40??????? 0????? 337? (oprt.)? SmallestMovedPoint?????????????????????????????????????????????????????????? ? 43634?????? 16?????? 36???? 1985????? 382? GAP????? ForAll?????????????????????????????????????????????????????????????????????? ?185602?????? 52??????? 0????? 863??????? 2? (oprt.)? Add????????????????????????????????????????????????????????????????????????? ??? 757?????? 44?????? 16?????? 17??????? 0? GAP????? UseSubsetRelation: default method that checks maintenances and then returns * ??? 757??????? 0?????? 60??????? 7?????? 17? (oprt.)? UseSubsetRelation??????????????????????????????????????????????????????????? ? 53823?????? 68??????? 4??? 11517??????? 0? GAP????? InverseRepresentative??????????????????????????????????????????????????????? ????? 3?????? 76??????? 0?????? 70??????? 0?????????? SortParallel: for two dense and mutable lists??????????????????????????????? ?? 9945?????? 20?????? 72????? 194??? 12950? GAP????? in: for a permutation, and a permutation group?????????????????????????????? ?? 5564?????? 44?????? 60???? 3915???? 2410? GAP????? ChooseNextBasePoint????????????????????????????????????????????????????????? ????? 4??????? 0????? 108????? 113????? 254? (oprt.)? Sortex?????????????????????????????????????????????????????????????????????? ?224034????? 116??????? 0??????? 0??????? 0? (oprt.)? NumberOp: for a dense list?????????????????????????????????????????????????? ?? 5564?????? 84?????? 60????? 498????? 168? GAP????? AddGeneratorsExtendSchreierTree????????????????????????????????????????????? ????? 5?????? 76?????? 76????? 113?????? 70? (oprt.)? SortParallel???????????????????????????????????????????????????????????????? ? 12526????? 280??????? 4??????? 0??????? 0? (oprt.)? Position???????????????????????????????????????????????????????????????????? ? 94315????? 472??????? 8??? 89804??????? 0? GAP????? SiftedPermutation??????????????????????????????????????????????????????????? ? 5564????? 184????? 804???? 8789??? 94952? GAP????? StabChainStrong????????????????????????????????????????????????????????????? ??? 265??????? 8???? 1104?????? 77?? 107182? GAP????? ClosureGroup: permgroup, elements, options?????????????????????????????????? ??? 265??????? 4???? 1112??????? 0?? 107259? (oprt.)? ClosureGroup???????????????????????????????????????????????????????????????? ???? 62??????? 0???? 1296??????? 0?? 122301? (oprt.)? DerivedSubgroup????????????????????????????????????????????????????????????? ???? 56?????? 12???? 1284????? 162?? 122086? GAP????? DerivedSubgroup: permgrps??????????????????????????????????????????????????? ???? 30??????? 0???? 1316??????? 5?? 122489? GAP????? DerivedSeriesOfGroup: generic method for groups????????????????????????????? ???? 30??????? 0???? 1316??????? 0?? 122505? (oprt.)? DerivedSeries??????????????????????????????????????????????????????????????? ???? 30??????? 0???? 1316??????? 0?? 122505? (oprt.)? DerivedSeriesOfGroup???????????????????????????????????????????????????????? ???? 26?????? 36???? 1324???? 2853?? 122729? GAP????? List???????????????????????????????????????????????????????????????????????? ???????????? 160????????????? 6531??????????????????? OTHER??????????????????????????????????????????????????????????????????????? ??????????? 1852??????????? 127963??????????????????? TOTAL??????????????????????????????????????????????????????????????????????? With best regards buynnnmmm1 ----- Original Message ----- > From: Alexander Konovalov > To: buynnnmmm1 at yahoo.co.jp > Cc: GAP Forum > Date: 2014/9/17, Wed 20:19 > Subject: Re: [GAP Forum] Is it possible to step through the program, like GNU GDB debugger, against built-in functions(ex. DerivedSubgroup, ClosureSubgroupNC )? > > On 16 Sep 2014, at 22:52, buynnnmmm1 at yahoo.co.jp wrote: > >> Dear GAP forum, >> >> Is it possible to set break points against built-in functions (ex. > DerivedSubgroup)?? >> >> Is it possible to step through the program, like GNU GDB debugger, against > built-in functions(ex. DerivedSubgroup, ClosureSubgroupNC )? >> >> Because I am a beginner the group theory , I would to examine in detail > what functions are doing in what procedure . >> >> I check http://www.gap-system.org/Manuals/doc/ref/chap7.html, but I cannot > find the function that set break points or step through the function. > > No, there is no such functionality, but there are workarounds and alternatives. > > First, you can add the line like > > Error("Break point some text which you want to display..."); > > in the code, and then you will be able to investigate local variables from the > break loop - see http://www.gap-system.org/Manuals/doc/ref/chap6.html > > Second, you already know from your previous post how to find the code of the > function. Since GAP is an interpreted language, you may try to paste the code of > the function into your session line by line and see what happens. > > Finally, YMMV (your mileage may vary): looking at the method below for > IsSolvableGroup itself will likely not give an insight into the solvability of > groups, it will just point to some other procedure: > >> gap> g := SymmetricGroup(5); >> Sym( [ 1 .. 5 ] ) >> gap> ApplicableMethod(IsSolvableGroup,[g]); >> function( G ) ... end >> gap> f := last; >> function( G ) ... end >> gap> Print(f); >> function ( G ) >> ? ? local? pcgs; >> ? ? pcgs := TryPcgsPermGroup( G, false, false, true ); >> ? ? if IsPcgs( pcgs )? then >> ? ? ? ? SetIndicesEANormalSteps( pcgs, pcgs!.permpcgsNormalSteps ); >> ? ? ? ? SetIsPcgsElementaryAbelianSeries( pcgs, true ); >> ? ? ? ? if not HasPcgs( G )? then >> ? ? ? ? ? ? SetPcgs( G, pcgs ); >> ? ? ? ? fi; >> ? ? ? ? if not HasPcgsElementaryAbelianSeries( G )? then >> ? ? ? ? ? ? SetPcgsElementaryAbelianSeries( G, pcgs ); >> ? ? ? ? fi; >> ? ? ? ? return true; >> ? ? else >> ? ? ? ? return false; >> ? ? fi; >> ? ? return; >> end > > > What is does is that it calls TryPcgsPermGroup and then checks if it returns the > object which is IsPcgs (polycyclic generating system, see > http://www.gap-system.org/Manuals/doc/ref/chap45.html). If that calculation is > not successful, the group is not solvable, otherwise it is. Now you may be > interested to find the (undocumented!) function TryPcgsPermGroup which does the > actual job, see for any comments in the code, etc. > > Best wishes > Alexander > From alexk at mcs.st-andrews.ac.uk Wed Sep 17 14:07:19 2014 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Wed, 17 Sep 2014 14:07:19 +0100 Subject: [GAP Forum] Is it possible to step through the program, like GNU GDB debugger, against built-in functions(ex. DerivedSubgroup, ClosureSubgroupNC )? In-Reply-To: <541990.91675.qm@web101619.mail.kks.yahoo.co.jp> References: <71991.35739.qm@web101616.mail.kks.yahoo.co.jp> <41051A9E-938E-4BD7-B959-35C827833CB7@mcs.st-andrews.ac.uk> <541990.91675.qm@web101619.mail.kks.yahoo.co.jp> Message-ID: On 17 Sep 2014, at 13:57, buynnnmmm1 at yahoo.co.jp wrote: > Dear Alexander Konovalov, > > Thank you very much for your help. > I will be able to do what I would like to do with the way you taught me, embeded Err("Message")s in codes. > >> What is does is that it calls TryPcgsPermGroup and then checks if it returns the >> object which is IsPcgs (polycyclic generating system, see >> http://www.gap-system.org/Manuals/doc/ref/chap45.html). If that calculation is >> not successful, the group is not solvable, otherwise it is. Now you may be >> interested to find the (undocumented!) function TryPcgsPermGroup which does the >> actual job, see for any comments in the code, etc. > > > I have not try to read the source TryPcgsPermGroup and IsPcgs yet. > > Source code of IsSolvable was also included in the lib / grp.gi and lib / grp.gd. > It is very easy to understand for me. > > myIsSolvable:=function ( x ) > local d; > d := DerivedSeries( x ); > return IsTrivial( d[Size( d )] ); > end > > > gap> List([1..30], x -> myIsSolvable(SymmetricGroup(x))) = List([1..30], x -> IsSolvable(SymmetricGroup(x))); > true > > For Symmetric Group, the same results have been obtained. > So I'm going to try to do withmyIsSolvable function that uses the DerivedSeries function. > > There was a difference of more than twice the run time to IsSolvable of built-in and myIsSolvable Taking the profile. > > Built-in IsSolved Would has become the source code I hard to understand in order to increase the execution speed? > > Not really - the method for IsSolvable did not evolve from the code similar to myIsSolvable at all. Perhaps the key is to read about GAP method selection and learn the concept of methods as bundles of functions: http://www.gap-system.org/Manuals/doc/tut/chap8.html#X7AEED9AB824CD4DA - that is, IsSolvable(G) will select the best available method to apply to G, taking into account what's known about G at the moment. With myIsSolvable, you enforce the calculation of DerivedSeries, while some of the methods may need not to know the derived series at all to give an answer. The profile below just illustrates this, since the number of methods involved in the calls to GAP's IsSolvable is much smaller. Best wishes Alexander > gap> ProfileGlobalFunctions( true ); > gap> ProfileOperationsAndMethods( true ); > gap> List( [1..30], x -> IsSolvable(SymmetricGroup(x))) ; > [ true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, > false, false, false, false, false, false, false, false, false, false, false ] > gap> ProfileGlobalFunctions( false ); > gap> ProfileOperationsAndMethods( false ); > gap> DisplayProfile(); > count self/ms chld/ms stor/kb chld/kb package function > 56 0 32 6 786 GAP TryPcgsPermGroup > 56 0 32 9 794 (oprt.) IsSolvableGroup > 30 0 32 0 804 (oprt.) IsSolvable > 28 0 32 0 794 GAP IsSolvableGroup: for permgrp > 156491 40 0 741 15 (oprt.) Add > 3 52 0 70 0 SortParallel: for two dense and mutable lists > 574 16 40 2043 988 GAP List > 4 4 80 96 213 (oprt.) Sortex > 4 60 52 72 70 (oprt.) SortParallel > 2028 272 0 0 0 (oprt.) Position > 72 2324 OTHER > 516 5365 TOTAL > gap> ProfileGlobalFunctions( true ); > gap> ProfileOperationsAndMethods( true ); > gap> List( [1..30], x -> myIsSolvable(SymmetricGroup(x))) ; > [ true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, > false, false, false, false, false, false, false, false, false, false, false ] > gap> ProfileGlobalFunctions( false ); > gap> ProfileOperationsAndMethods( false ); > gap> DisplayProfile(); > count self/ms chld/ms stor/kb chld/kb package function > 11686 0 0 0 0 CanComputeIsSubset: default: no, unless identical > 12708 4 4 198 0 GAP IsOne: for a multiplicative-element-with-one > 18151 8 4 0 0 (oprt.) Tester(IsAssociative) > 12708 20 0 0 198 (oprt.) IsOne > 15776 12 4 0 0 OneImmutable: system getter > 21144 16 4 29 0 GeneratorsOfMagmaWithInverses: system getter > 17646 12 12 18 173 (oprt.) Representative: for magma-with-one with known one > 382 0 32 5 269 (oprt.) Setter(ParentAttr) > 21144 16 16 18 29 (oprt.) FreeGeneratorsOfFpGroup: for a free group > 1 0 32 70 70 GAP Sortex: for a mutable list > 3391 8 24 92 191 GAP SmallestMovedPoint: for a collection of permutations > 382 0 32 7 12 GAP Setter(ParentAttr): method that calls 'UseSubsetRelation' > 8681 4 40 0 337 (oprt.) SmallestMovedPoint > 43634 16 36 1985 382 GAP ForAll > 185602 52 0 863 2 (oprt.) Add > 757 44 16 17 0 GAP UseSubsetRelation: default method that checks maintenances and then returns * > 757 0 60 7 17 (oprt.) UseSubsetRelation > 53823 68 4 11517 0 GAP InverseRepresentative > 3 76 0 70 0 SortParallel: for two dense and mutable lists > 9945 20 72 194 12950 GAP in: for a permutation, and a permutation group > 5564 44 60 3915 2410 GAP ChooseNextBasePoint > 4 0 108 113 254 (oprt.) Sortex > 224034 116 0 0 0 (oprt.) NumberOp: for a dense list > 5564 84 60 498 168 GAP AddGeneratorsExtendSchreierTree > 5 76 76 113 70 (oprt.) SortParallel > 12526 280 4 0 0 (oprt.) Position > 94315 472 8 89804 0 GAP SiftedPermutation > 5564 184 804 8789 94952 GAP StabChainStrong > 265 8 1104 77 107182 GAP ClosureGroup: permgroup, elements, options > 265 4 1112 0 107259 (oprt.) ClosureGroup > 62 0 1296 0 122301 (oprt.) DerivedSubgroup > 56 12 1284 162 122086 GAP DerivedSubgroup: permgrps > 30 0 1316 5 122489 GAP DerivedSeriesOfGroup: generic method for groups > 30 0 1316 0 122505 (oprt.) DerivedSeries > 30 0 1316 0 122505 (oprt.) DerivedSeriesOfGroup > 26 36 1324 2853 122729 GAP List > 160 6531 OTHER > 1852 127963 TOTAL > > > With best regards > buynnnmmm1 > > > > ----- Original Message ----- >> From: Alexander Konovalov >> To: buynnnmmm1 at yahoo.co.jp >> Cc: GAP Forum >> Date: 2014/9/17, Wed 20:19 >> Subject: Re: [GAP Forum] Is it possible to step through the program, like GNU GDB debugger, against built-in functions(ex. DerivedSubgroup, ClosureSubgroupNC )? >> >> On 16 Sep 2014, at 22:52, buynnnmmm1 at yahoo.co.jp wrote: >> >>> Dear GAP forum, >>> >>> Is it possible to set break points against built-in functions (ex. >> DerivedSubgroup)? >>> >>> Is it possible to step through the program, like GNU GDB debugger, against >> built-in functions(ex. DerivedSubgroup, ClosureSubgroupNC )? >>> >>> Because I am a beginner the group theory , I would to examine in detail >> what functions are doing in what procedure . >>> >>> I check http://www.gap-system.org/Manuals/doc/ref/chap7.html, but I cannot >> find the function that set break points or step through the function. >> >> No, there is no such functionality, but there are workarounds and alternatives. >> >> First, you can add the line like >> >> Error("Break point some text which you want to display..."); >> >> in the code, and then you will be able to investigate local variables from the >> break loop - see http://www.gap-system.org/Manuals/doc/ref/chap6.html >> >> Second, you already know from your previous post how to find the code of the >> function. Since GAP is an interpreted language, you may try to paste the code of >> the function into your session line by line and see what happens. >> >> Finally, YMMV (your mileage may vary): looking at the method below for >> IsSolvableGroup itself will likely not give an insight into the solvability of >> groups, it will just point to some other procedure: >> >>> gap> g := SymmetricGroup(5); >>> Sym( [ 1 .. 5 ] ) >>> gap> ApplicableMethod(IsSolvableGroup,[g]); >>> function( G ) ... end >>> gap> f := last; >>> function( G ) ... end >>> gap> Print(f); >>> function ( G ) >>> local pcgs; >>> pcgs := TryPcgsPermGroup( G, false, false, true ); >>> if IsPcgs( pcgs ) then >>> SetIndicesEANormalSteps( pcgs, pcgs!.permpcgsNormalSteps ); >>> SetIsPcgsElementaryAbelianSeries( pcgs, true ); >>> if not HasPcgs( G ) then >>> SetPcgs( G, pcgs ); >>> fi; >>> if not HasPcgsElementaryAbelianSeries( G ) then >>> SetPcgsElementaryAbelianSeries( G, pcgs ); >>> fi; >>> return true; >>> else >>> return false; >>> fi; >>> return; >>> end >> >> >> What is does is that it calls TryPcgsPermGroup and then checks if it returns the >> object which is IsPcgs (polycyclic generating system, see >> http://www.gap-system.org/Manuals/doc/ref/chap45.html). If that calculation is >> not successful, the group is not solvable, otherwise it is. Now you may be >> interested to find the (undocumented!) function TryPcgsPermGroup which does the >> actual job, see for any comments in the code, etc. >> >> Best wishes >> Alexander >> From steve.linton at st-andrews.ac.uk Wed Sep 17 14:18:34 2014 From: steve.linton at st-andrews.ac.uk (Stephen Linton) Date: Wed, 17 Sep 2014 14:18:34 +0100 Subject: [GAP Forum] Is it possible to step through the program, like GNU GDB debugger, against built-in functions(ex. DerivedSubgroup, ClosureSubgroupNC )? In-Reply-To: <541990.91675.qm@web101619.mail.kks.yahoo.co.jp> References: <71991.35739.qm@web101616.mail.kks.yahoo.co.jp> <41051A9E-938E-4BD7-B959-35C827833CB7@mcs.st-andrews.ac.uk> <541990.91675.qm@web101619.mail.kks.yahoo.co.jp> Message-ID: On 17 Sep 2014, at 13:57, buynnnmmm1 at yahoo.co.jp wrote: > > myIsSolvable:=function ( x ) > local d; > d := DerivedSeries( x ); > return IsTrivial( d[Size( d )] ); > end > > > gap> List([1..30], x -> myIsSolvable(SymmetricGroup(x))) = List([1..30], x -> IsSolvable(SymmetricGroup(x))); > true > > For Symmetric Group, the same results have been obtained. > So I'm going to try to do withmyIsSolvable function that uses the DerivedSeries function. > > There was a difference of more than twice the run time to IsSolvable of built-in and myIsSolvable Taking the profile. > > Built-in IsSolved Would has become the source code I hard to understand in order to increase the execution speed? > Performance is one consideration, of course. Another is making use of already computing information about the group when possible. Still another is computing data structures that are likely to be useful for further computations. The GAP library function, having found a group to be solvable will also have constructed a data structure called a Pcgs (PolyCyclic Generating System) which can be used to greatly speed up many further computations with the group. Steve From buynnnmmm1 at yahoo.co.jp Wed Sep 17 14:51:29 2014 From: buynnnmmm1 at yahoo.co.jp (buynnnmmm1 at yahoo.co.jp) Date: Wed, 17 Sep 2014 22:51:29 +0900 (JST) Subject: [GAP Forum] Is it possible to step through the program, like GNU GDB debugger, against built-in functions(ex. DerivedSubgroup, ClosureSubgroupNC )? In-Reply-To: References: <71991.35739.qm@web101616.mail.kks.yahoo.co.jp> <41051A9E-938E-4BD7-B959-35C827833CB7@mcs.st-andrews.ac.uk> <541990.91675.qm@web101619.mail.kks.yahoo.co.jp> Message-ID: <779571.61580.qm@web101613.mail.kks.yahoo.co.jp> Dear Alexander Konovalov, Thank you very much for your help. > Not really - the method for IsSolvable did not evolve from the code similar to > myIsSolvable at all. > > Perhaps the key is to read about GAP method selection and learn the concept of > methods as bundles of functions: > > http://www.gap-system.org/Manuals/doc/tut/chap8.html#X7AEED9AB824CD4DA > > - that is, IsSolvable(G) will select the best available method to apply to G, > taking into account what's known about G at the moment. With myIsSolvable, > you enforce the calculation of DerivedSeries, while some of the methods may need > not to know the derived series at all to give an answer. The profile below just > illustrates this, since the number of methods involved in the calls to GAP's > IsSolvable is much smaller. IsSolvable in lib/grp.gi is the same as the method for determining whether or not solvable group I have learned . I'll try to understand that the method for determining whether or not solvable group I have learned is the same the built-in IsSolvable function. I think it will be the good study of group theory . I'll try to be able to understand "Operations and Methods of GAP" with the document, too. Thank you very much for your help. With best regards buynnnmmm1 ----- Original Message ----- > From: Alexander Konovalov > To: buynnnmmm1 at yahoo.co.jp > Cc: GAP Forum > Date: 2014/9/17, Wed 22:07 > Subject: Re: [GAP Forum] Is it possible to step through the program, like GNU GDB debugger, against built-in functions(ex. DerivedSubgroup, ClosureSubgroupNC )? > > > On 17 Sep 2014, at 13:57, buynnnmmm1 at yahoo.co.jp wrote: > >>??Dear Alexander Konovalov, >> >>??Thank you very much for your help. >>??I will be able to do what I would like to do with the way you taught me, > embeded Err("Message")s in codes. >> >>>??What is does is that it calls TryPcgsPermGroup and then checks if it > returns the >>>??object which is IsPcgs (polycyclic generating system, see >>>??http://www.gap-system.org/Manuals/doc/ref/chap45.html). If that > calculation is >>>??not successful, the group is not solvable, otherwise it is. Now you may > be >>>??interested to find the (undocumented!) function TryPcgsPermGroup which > does the >>>??actual job, see for any comments in the code, etc. >> >> >>??I have not try to read the source TryPcgsPermGroup and IsPcgs yet. >> >>??Source code of IsSolvable was also included in the lib / grp.gi and lib / > grp.gd. >>??It is very easy to understand for me. >> >>??myIsSolvable:=function ( x ) >> ? ? local? d; >> ? ? d := DerivedSeries( x ); >> ? ? return IsTrivial( d[Size( d )] ); >>??end >> >> >>??gap> List([1..30], x -> myIsSolvable(SymmetricGroup(x))) = > List([1..30], x -> IsSolvable(SymmetricGroup(x))); >>??true >> >>??For Symmetric Group, the same results have been obtained. >>??So I'm going to try to do withmyIsSolvable function that uses the > DerivedSeries function. >> >>??There was a difference of more than twice the run time to IsSolvable of > built-in and myIsSolvable Taking the profile. >> >>??Built-in IsSolved Would has become the source code I hard to understand in > order to increase the execution speed? >> >> > > Not really - the method for IsSolvable did not evolve from the code similar to > myIsSolvable at all. > > Perhaps the key is to read about GAP method selection and learn the concept of > methods as bundles of functions: > > http://www.gap-system.org/Manuals/doc/tut/chap8.html#X7AEED9AB824CD4DA > > - that is, IsSolvable(G) will select the best available method to apply to G, > taking into account what's known about G at the moment. With myIsSolvable, > you enforce the calculation of DerivedSeries, while some of the methods may need > not to know the derived series at all to give an answer. The profile below just > illustrates this, since the number of methods involved in the calls to GAP's > IsSolvable is much smaller. > > Best wishes > Alexander > > > > > >>??gap> ProfileGlobalFunctions( true ); >>??gap> ProfileOperationsAndMethods( true ); >>??gap> List( [1..30], x -> IsSolvable(SymmetricGroup(x))) ; >>??[ true, true, true, true, false, false, false, false, false, false, false, > false, false, false, false, false, false, false, false, >> ???false, false, false, false, false, false, false, false, false, false, > false ] >>??gap> ProfileGlobalFunctions( false ); >>??gap> ProfileOperationsAndMethods( false ); >>??gap> DisplayProfile(); >> ???count? self/ms? chld/ms? stor/kb? chld/kb? package? function? ? ? ? ? ? ? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ? ? 56? ? ? ? 0? ? ???32? ? ? ? 6? ? ? 786? GAP? ? ? TryPcgsPermGroup? ? ? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ? ? 56? ? ? ? 0? ? ???32? ? ? ? 9? ? ? 794? (oprt.)? IsSolvableGroup? ? ? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ? ? 30? ? ? ? 0? ? ???32? ? ? ? 0? ? ? 804? (oprt.)? IsSolvable? ? ? ? ? ? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ? ? 28? ? ? ? 0? ? ???32? ? ? ? 0? ? ? 794? GAP? ? ? IsSolvableGroup: for > permgrp? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? 156491? ? ???40? ? ? ? 0? ? ? 741? ? ???15? (oprt.)? Add? ? ? ? ? ? ? ? ? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ? ???3? ? ???52? ? ? ? 0? ? ???70? ? ? ? 0? ? ? ? ???SortParallel: for two > dense and mutable lists? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ???574? ? ???16? ? ???40? ???2043? ? ? 988? GAP? ? ? List? ? ? ? ? ? ? ? ? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ? ???4? ? ? ? 4? ? ???80? ? ???96? ? ? 213? (oprt.)? Sortex? ? ? ? ? ? ? ? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ? ???4? ? ???60? ? ???52? ? ???72? ? ???70? (oprt.)? SortParallel? ? ? ? ? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ? 2028? ? ? 272? ? ? ? 0? ? ? ? 0? ? ? ? 0? (oprt.)? Position? ? ? ? ? ? ? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ? ? ? ? ? ???72? ? ? ? ? ? ? 2324? ? ? ? ? ? ? ? ? ? OTHER? ? ? ? ? ? ? ? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ? ? ? ? ? ? 516? ? ? ? ? ? ? 5365? ? ? ? ? ? ? ? ? ? TOTAL? ? ? ? ? ? ? ? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >>??gap> ProfileGlobalFunctions( true ); >>??gap> ProfileOperationsAndMethods( true ); >>??gap> List( [1..30], x -> myIsSolvable(SymmetricGroup(x))) ; >>??[ true, true, true, true, false, false, false, false, false, false, false, > false, false, false, false, false, false, false, false, >> ???false, false, false, false, false, false, false, false, false, false, > false ] >>??gap> ProfileGlobalFunctions( false ); >>??gap> ProfileOperationsAndMethods( false ); >>??gap> DisplayProfile(); >> ???count? self/ms? chld/ms? stor/kb? chld/kb? package? function? ? ? ? ? ? ? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ???11686? ? ? ? 0? ? ? ? 0? ? ? ? 0? ? ? ? 0? ? ? ? ???CanComputeIsSubset: > default: no, unless identical? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ???12708? ? ? ? 4? ? ? ? 4? ? ? 198? ? ? ? 0? GAP? ? ? IsOne: for a > multiplicative-element-with-one? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ???18151? ? ? ? 8? ? ? ? 4? ? ? ? 0? ? ? ? 0? (oprt.)? > Tester(IsAssociative)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ???12708? ? ???20? ? ? ? 0? ? ? ? 0? ? ? 198? (oprt.)? IsOne? ? ? ? ? ? ? ? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ???15776? ? ???12? ? ? ? 4? ? ? ? 0? ? ? ? 0? ? ? ? ???OneImmutable: system > getter? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ???21144? ? ???16? ? ? ? 4? ? ???29? ? ? ? 0? ? ? ? ? > GeneratorsOfMagmaWithInverses: system getter? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ???17646? ? ???12? ? ???12? ? ???18? ? ? 173? (oprt.)? Representative: for > magma-with-one with known one? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ???382? ? ? ? 0? ? ???32? ? ? ? 5? ? ? 269? (oprt.)? Setter(ParentAttr)? ? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ???21144? ? ???16? ? ???16? ? ???18? ? ???29? (oprt.)? > FreeGeneratorsOfFpGroup: for a free group? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ? ???1? ? ? ? 0? ? ???32? ? ???70? ? ???70? GAP? ? ? Sortex: for a mutable > list? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ? 3391? ? ? ? 8? ? ???24? ? ???92? ? ? 191? GAP? ? ? SmallestMovedPoint: > for a collection of permutations? ? ? ? ? ? ? ? ? ? ? ? >> ? ???382? ? ? ? 0? ? ???32? ? ? ? 7? ? ???12? GAP? ? ? Setter(ParentAttr): > method that calls 'UseSubsetRelation'? ? ? ? ? ? ? ? ? ? >> ? ? 8681? ? ? ? 4? ? ???40? ? ? ? 0? ? ? 337? (oprt.)? SmallestMovedPoint? ? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ???43634? ? ???16? ? ???36? ???1985? ? ? 382? GAP? ? ? ForAll? ? ? ? ? ? ? ? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? 185602? ? ???52? ? ? ? 0? ? ? 863? ? ? ? 2? (oprt.)? Add? ? ? ? ? ? ? ? ? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ???757? ? ???44? ? ???16? ? ???17? ? ? ? 0? GAP? ? ? UseSubsetRelation: > default method that checks maintenances and then returns * >> ? ???757? ? ? ? 0? ? ???60? ? ? ? 7? ? ???17? (oprt.)? UseSubsetRelation? ? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ???53823? ? ???68? ? ? ? 4? ? 11517? ? ? ? 0? GAP? ? ? > InverseRepresentative? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ? ???3? ? ???76? ? ? ? 0? ? ???70? ? ? ? 0? ? ? ? ???SortParallel: for two > dense and mutable lists? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ? 9945? ? ???20? ? ???72? ? ? 194? ? 12950? GAP? ? ? in: for a > permutation, and a permutation group? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ? 5564? ? ???44? ? ???60? ???3915? ???2410? GAP? ? ? ChooseNextBasePoint? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ? ???4? ? ? ? 0? ? ? 108? ? ? 113? ? ? 254? (oprt.)? Sortex? ? ? ? ? ? ? ? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? 224034? ? ? 116? ? ? ? 0? ? ? ? 0? ? ? ? 0? (oprt.)? NumberOp: for a dense > list? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ? 5564? ? ???84? ? ???60? ? ? 498? ? ? 168? GAP? ? ? > AddGeneratorsExtendSchreierTree? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ? ???5? ? ???76? ? ???76? ? ? 113? ? ???70? (oprt.)? SortParallel? ? ? ? ? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ???12526? ? ? 280? ? ? ? 4? ? ? ? 0? ? ? ? 0? (oprt.)? Position? ? ? ? ? ? ? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ???94315? ? ? 472? ? ? ? 8? ? 89804? ? ? ? 0? GAP? ? ? SiftedPermutation? ? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ???5564? ? ? 184? ? ? 804? ???8789? ? 94952? GAP? ? ? StabChainStrong? ? ? ? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ???265? ? ? ? 8? ???1104? ? ???77???107182? GAP? ? ? ClosureGroup: > permgroup, elements, options? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ???265? ? ? ? 4? ???1112? ? ? ? 0???107259? (oprt.)? ClosureGroup? ? ? ? ? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ? ? 62? ? ? ? 0? ???1296? ? ? ? 0???122301? (oprt.)? DerivedSubgroup? ? ? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ? ? 56? ? ???12? ???1284? ? ? 162???122086? GAP? ? ? DerivedSubgroup: > permgrps? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ? ? 30? ? ? ? 0? ???1316? ? ? ? 5???122489? GAP? ? ? DerivedSeriesOfGroup: > generic method for groups? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ? ? 30? ? ? ? 0? ???1316? ? ? ? 0???122505? (oprt.)? DerivedSeries? ? ? ? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ? ? 30? ? ? ? 0? ???1316? ? ? ? 0???122505? (oprt.)? DerivedSeriesOfGroup? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ? ? 26? ? ???36? ???1324? ???2853???122729? GAP? ? ? List? ? ? ? ? ? ? ? ? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ? ? ? ? ? ? 160? ? ? ? ? ? ? 6531? ? ? ? ? ? ? ? ? ? OTHER? ? ? ? ? ? ? ? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> ? ? ? ? ? ???1852? ? ? ? ? ? 127963? ? ? ? ? ? ? ? ? ? TOTAL? ? ? ? ? ? ? ? > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >> >> >>??With best regards >>??buynnnmmm1 >> >> >> >>??----- Original Message ----- >>>??From: Alexander Konovalov >>>??To: buynnnmmm1 at yahoo.co.jp >>>??Cc: GAP Forum >>>??Date: 2014/9/17, Wed 20:19 >>>??Subject: Re: [GAP Forum] Is it possible to step through the program, > like GNU GDB debugger, against built-in functions(ex. DerivedSubgroup, > ClosureSubgroupNC )? >>> >>>??On 16 Sep 2014, at 22:52, buynnnmmm1 at yahoo.co.jp wrote: >>> >>>>??Dear GAP forum, >>>> >>>>??Is it possible to set break points against built-in functions (ex. >>>??DerivedSubgroup)?? >>>> >>>>??Is it possible to step through the program, like GNU GDB debugger, > against >>>??built-in functions(ex. DerivedSubgroup, ClosureSubgroupNC )? >>>> >>>>??Because I am a beginner the group theory , I would to examine in > detail >>>??what functions are doing in what procedure . >>>> >>>>??I check http://www.gap-system.org/Manuals/doc/ref/chap7.html, but I > cannot >>>??find the function that set break points or step through the function. >>> >>>??No, there is no such functionality, but there are workarounds and > alternatives. >>> >>>??First, you can add the line like >>> >>>??Error("Break point some text which you want to display..."); >>> >>>??in the code, and then you will be able to investigate local variables > from the >>>??break loop - see http://www.gap-system.org/Manuals/doc/ref/chap6.html >>> >>>??Second, you already know from your previous post how to find the code > of the >>>??function. Since GAP is an interpreted language, you may try to paste > the code of >>>??the function into your session line by line and see what happens. >>> >>>??Finally, YMMV (your mileage may vary): looking at the method below for >>>??IsSolvableGroup itself will likely not give an insight into the > solvability of >>>??groups, it will just point to some other procedure: >>> >>>>??gap> g := SymmetricGroup(5); >>>>??Sym( [ 1 .. 5 ] ) >>>>??gap> ApplicableMethod(IsSolvableGroup,[g]); >>>>??function( G ) ... end >>>>??gap> f := last; >>>>??function( G ) ... end >>>>??gap> Print(f); >>>>??function ( G ) >>>> ? ? ? local? pcgs; >>>> ? ? ? pcgs := TryPcgsPermGroup( G, false, false, true ); >>>> ? ? ? if IsPcgs( pcgs )? then >>>> ? ? ? ? ? SetIndicesEANormalSteps( pcgs, pcgs!.permpcgsNormalSteps > ); >>>> ? ? ? ? ? SetIsPcgsElementaryAbelianSeries( pcgs, true ); >>>> ? ? ? ? ? if not HasPcgs( G )? then >>>> ? ? ? ? ? ? ? SetPcgs( G, pcgs ); >>>> ? ? ? ? ? fi; >>>> ? ? ? ? ? if not HasPcgsElementaryAbelianSeries( G )? then >>>> ? ? ? ? ? ? ? SetPcgsElementaryAbelianSeries( G, pcgs ); >>>> ? ? ? ? ? fi; >>>> ? ? ? ? ? return true; >>>> ? ? ? else >>>> ? ? ? ? ? return false; >>>> ? ? ? fi; >>>> ? ? ? return; >>>>??end >>> >>> >>>??What is does is that it calls TryPcgsPermGroup and then checks if it > returns the >>>??object which is IsPcgs (polycyclic generating system, see >>>??http://www.gap-system.org/Manuals/doc/ref/chap45.html). If that > calculation is >>>??not successful, the group is not solvable, otherwise it is. Now you may > be >>>??interested to find the (undocumented!) function TryPcgsPermGroup which > does the >>>??actual job, see for any comments in the code, etc. >>> >>>??Best wishes >>>??Alexander >>> > From buynnnmmm1 at yahoo.co.jp Wed Sep 17 15:05:03 2014 From: buynnnmmm1 at yahoo.co.jp (buynnnmmm1 at yahoo.co.jp) Date: Wed, 17 Sep 2014 23:05:03 +0900 (JST) Subject: [GAP Forum] Is it possible to step through the program, like GNU GDB debugger, against built-in functions(ex. DerivedSubgroup, ClosureSubgroupNC )? In-Reply-To: References: <71991.35739.qm@web101616.mail.kks.yahoo.co.jp> <41051A9E-938E-4BD7-B959-35C827833CB7@mcs.st-andrews.ac.uk> <541990.91675.qm@web101619.mail.kks.yahoo.co.jp> Message-ID: <114971.21143.qm@web101610.mail.kks.yahoo.co.jp> Dear Stephen Linton, Thank you very much for your help. > Performance is one consideration, of course. Another is making use of already > computing information about the group when possible. Still another is computing > data structures that are likely to be useful for further computations. The GAP > library function, having found a group to be solvable will also have constructed > a data structure called a Pcgs (PolyCyclic Generating System) which can be used > to greatly speed up many further computations with the group. I am interesting in "PolyCyclic Generating System". So I'll try to read the source . Although it is doubtful whether I can do understand it. What you have told me is , seems to me to lower the difficulty of reading the source . Thank you very much for letting me know clearly the point and Pcgs. With best regards buynnnmmm1 ----- Original Message ----- > From: Stephen Linton > To: buynnnmmm1 at yahoo.co.jp > Cc: Alexander Konovalov ; GAP Forum > Date: 2014/9/17, Wed 22:18 > Subject: Re: [GAP Forum] Is it possible to step through the program, like GNU GDB debugger, against built-in functions(ex. DerivedSubgroup, ClosureSubgroupNC )? > > > On 17 Sep 2014, at 13:57, buynnnmmm1 at yahoo.co.jp wrote: >> >>??myIsSolvable:=function ( x ) >> ? ? local? d; >> ? ? d := DerivedSeries( x ); >> ? ? return IsTrivial( d[Size( d )] ); >>??end >> >> >>??gap> List([1..30], x -> myIsSolvable(SymmetricGroup(x))) = > List([1..30], x -> IsSolvable(SymmetricGroup(x))); >>??true >> >>??For Symmetric Group, the same results have been obtained. >>??So I'm going to try to do withmyIsSolvable function that uses the > DerivedSeries function. >> >>??There was a difference of more than twice the run time to IsSolvable of > built-in and myIsSolvable Taking the profile. >> >>??Built-in IsSolved Would has become the source code I hard to understand in > order to increase the execution speed? >> > > > Performance is one consideration, of course. Another is making use of already > computing information about the group when possible. Still another is computing > data structures that are likely to be useful for further computations. The GAP > library function, having found a group to be solvable will also have constructed > a data structure called a Pcgs (PolyCyclic Generating System) which can be used > to greatly speed up many further computations with the group. > > ??? Steve > From e.obrien at auckland.ac.nz Wed Sep 17 21:37:28 2014 From: e.obrien at auckland.ac.nz (Eamonn O'Brien) Date: Thu, 18 Sep 2014 08:37:28 +1200 Subject: [GAP Forum] A response to the September 12 blog by Igor Pak Message-ID: <5419F108.2060706@auckland.ac.nz> Dear Forum, On Sep 12, Igor Pak posted a blog entitled "How NOT to reference papers". A link to the original post is https://archive.today/IXYfZ The current updated version is http://igorpak.wordpress.com/2014/09/12/how-not-to-reference-papers/ The blog states: > I am going to tell a story of one paper and its authors which > misrepresented my paper and refused to acknowledge the fact. It?s > also a story about the section editor of Journal of Algebra which > published that paper and then ignored my complaints. As an observer (and unsolicited recipient) of all of the related correspondence during the past 8 months, I prepared a detailed response to the blog's claims. On September 17, I posted the following comment to the blog: > A comprehensive record of the related interchange between Professor > Pak and (i) Professor Niemeyer [one of the authors discussed in the > blog] and (ii) Editors of the Journal of Algebra, together with a > brief commentary by me on claims made here, is available at > www.math.auckland.ac.nz/~obrien/response.pdf Professor Pak responded later on the 17th as follows: > I saw your comment, but did not allow it. My blog post became > outrageously popular with thousands of people reading it, and dozens > commenting on it. Since some of the comments are rather ridiculous > (some giving thumbs up, welcoming me to some anti-establishment crowd, > while some claiming libel, chauvinism, etc.) I prohibited all of them > on the blog. I regret this decision by Igor, since I believe that the matter under discussion can best be understood and assessed by others by making the entire content of the email exchange available publicly. The extracts used in the blog are often selective and devoid of context. Hence I take the unusual action of sending this email to advise those interested that my planned post - with some material over which Professor Pak asserts his copyright deleted at his formal request -- is available at www.math.auckland.ac.nz/~obrien/response.pdf I provide the link to the original blog because the public version has been edited by Professor Pak to reflect information learned from his reading my proposed response. Best wishes. Eamonn O'Brien From alexk at mcs.st-andrews.ac.uk Wed Sep 17 22:19:55 2014 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Wed, 17 Sep 2014 22:19:55 +0100 Subject: [GAP Forum] Is it possible to step through the program, like GNU GDB debugger, against built-in functions(ex. DerivedSubgroup, ClosureSubgroupNC )? In-Reply-To: <779571.61580.qm@web101613.mail.kks.yahoo.co.jp> References: <71991.35739.qm@web101616.mail.kks.yahoo.co.jp> <41051A9E-938E-4BD7-B959-35C827833CB7@mcs.st-andrews.ac.uk> <541990.91675.qm@web101619.mail.kks.yahoo.co.jp> <779571.61580.qm@web101613.mail.kks.yahoo.co.jp> Message-ID: On 17 Sep 2014, at 14:51, buynnnmmm1 at yahoo.co.jp wrote: > Dear Alexander Konovalov, > > Thank you very much for your help. > >> Not really - the method for IsSolvable did not evolve from the code similar to >> myIsSolvable at all. >> >> Perhaps the key is to read about GAP method selection and learn the concept of >> methods as bundles of functions: >> >> http://www.gap-system.org/Manuals/doc/tut/chap8.html#X7AEED9AB824CD4DA >> >> - that is, IsSolvable(G) will select the best available method to apply to G, >> taking into account what's known about G at the moment. With myIsSolvable, >> you enforce the calculation of DerivedSeries, while some of the methods may need >> not to know the derived series at all to give an answer. The profile below just >> illustrates this, since the number of methods involved in the calls to GAP's >> IsSolvable is much smaller. > > IsSolvable in lib/grp.gi is the same as the method for determining whether or not solvable group I have learned . > I'll try to understand that the method for determining whether or not solvable group I have learned is the same the built-in IsSolvable function. > I think it will be the good study of group theory . > I'll try to be able to understand "Operations and Methods of GAP" with the document, too. > Thank you very much for your help. > > With best regards > buynnnmmm1 Note also that several lines above there is an immediate method which expresses the famous Feit?Thompson theorem stating that any group of odd order is solvable: InstallImmediateMethod( IsSolvableGroup, IsGroup and HasSize, 10, function( G ) G:= Size( G ); if IsInt( G ) and G mod 2 = 1 then return true; fi; TryNextMethod(); end ); The method to which you refer is generic, as its description says - like a fallback method that is deemed to work for any group: InstallMethod( IsSolvableGroup, "generic method for groups", [ IsGroup ], function ( G ) local S; # derived series of # compute the derived series of S := DerivedSeriesOfGroup( G ); # the group is solvable if the derived series reaches the trivial group return IsTrivial( S[ Length( S ) ] ); end ); You may trace how the method selection works adding the optional argument "full". For example, for S(3) the method ``IsSolvableGroup: for permgrp'' will be used quite early: gap> ApplicableMethod(IsSolvableGroup,[SymmetricGroup(3)],"full"); #I Searching Method for IsSolvableGroup with 1 arguments: #I Total: 11 entries #I Method 1: ``IsSolvableGroup: system getter'', value: 2*SUM_FLAGS+21 #I - 1st argument needs [ "Tester(IsSolvableGroup)" ] #I Method 2: ``IsSolvableGroup: handled by nice monomorphism: Attribute'', value: 360 #I - 1st argument needs [ "IsHandledByNiceMonomorphism", "Tester(IsHandledByNiceMonomorphism)" ] #I Method 3: ``IsSolvableGroup: for permgrp'', value: 48 #I Function Body: function ( G ) local pcgs; pcgs := TryPcgsPermGroup( G, false, false, true ); if IsPcgs( pcgs ) then SetIndicesEANormalSteps( pcgs, pcgs!.permpcgsNormalSteps ); SetIsPcgsElementaryAbelianSeries( pcgs, true ); if not HasPcgs( G ) then SetPcgs( G, pcgs ); fi; if not HasPcgsElementaryAbelianSeries( G ) then SetPcgsElementaryAbelianSeries( G, pcgs ); fi; return true; else return false; fi; return; endfunction( G ) ... end gap> To give an example of a group for which method selection descends to the fallback method, let's construct a dihedral group of order 16 as a finitely presented group: gap> f:=FreeGroup("x","y"); gap> r:=ParseRelators(GeneratorsOfGroup(f),"x^8=y^2=1,yxy=x^-1"); [ x^8, y^2, (x^-1*y^-1)^2 ] gap> G:=f/r; Now after some information about other available methods, the last one is precisely the generic method: gap> ApplicableMethod(IsSolvableGroup,[G],"full"); #I Searching Method for IsSolvableGroup with 1 arguments: #I Total: 11 entries #I Method 1: ``IsSolvableGroup: system getter'', value: 2*SUM_FLAGS+21 #I - 1st argument needs [ "Tester(IsSolvableGroup)" ] #I Method 2: ``IsSolvableGroup: handled by nice monomorphism: Attribute'', value: 360 #I - 1st argument needs [ "IsHandledByNiceMonomorphism", "Tester(IsHandledByNiceMonomorphism)" ] #I Method 3: ``IsSolvableGroup: for permgrp'', value: 48 #I - 1st argument needs [ "CategoryCollections(IsPerm)" ] #I Method 4: ``IsSolvableGroup: for AffineCrystGroup, via PointGroup'', value: 43 #I - 1st argument needs [ "IsAffineCrystGroupOnLeftOrRight", "Tester(IsAffineCrystGroupOnLeftOrRight)" ] #I Method 5: ``IsSolvableGroup: for rational matrix groups (Polenta)'', value: 40 #I - 1st argument needs [ "IsRationalMatrixGroup", "Tester(IsRationalMatrixGroup)" ] #I Method 6: ``IsSolvableGroup: for matrix groups over a finte field (Polenta)'', value: 38 #I - 1st argument needs [ "CategoryCollections(CategoryCollections(CategoryCollections(IsNearAdditiveElementWithIn\ verse)))", "CategoryCollections(CategoryCollections(CategoryCollections(IsAdditiveElement)))", "CategoryCollections(CategoryCollections(CategoryCollections(IsMultiplicativeElement)))\ ", "CategoryCollections(CategoryCollections(CategoryCollections(IsFFE)))" ] #I Method 7: ``IsSolvableGroup: fallback method to test conditions'', value: 38 #I - 1st argument needs [ "CategoryCollections(CategoryCollections(CategoryCollections(IsNearAdditiveElementWithIn\ verse)))", "CategoryCollections(CategoryCollections(CategoryCollections(IsAdditiveElement)))", "CategoryCollections(CategoryCollections(CategoryCollections(IsMultiplicativeElement)))\ ", "CategoryCollections(CategoryCollections(CategoryCollections(IsCyclotomic)))" ] #I Method 8: ``IsSolvableGroup'', value: 27 #I - 1st argument needs [ "Tester(Size)" ] #I Method 9: ``IsSolvableGroup: for direct products'', value: 26 #I - 1st argument needs [ "Tester(DirectProductInfo)" ] #I Method 10: ``IsSolvableGroup: generic method for groups'', value: 25 #I Function Body: function ( G ) local S; S := DerivedSeriesOfGroup( G ); return IsTrivial( S[Length( S )] ); endfunction( G ) ... end However, if you create D_16 as permutation group, ApplicableMethod will return the same ``IsSolvableGroup: for permgrp'' as for S(3) above: gap> G:=Group([ (1,2,3,4,5,6,7,8), (2,8)(3,7)(4,6) ]); Group([ (1,2,3,4,5,6,7,8), (2,8)(3,7)(4,6) ]) gap> ApplicableMethod(IsSolvableGroup,[G],"full"); ... #I Method 3: ``IsSolvableGroup: for permgrp'', value: 48 #I Function Body: function ( G ) local pcgs; pcgs := TryPcgsPermGroup( G, false, false, true ); ... so as you may see, different methods may be used dependently on how the group is represented. Hope that clarifies some more details! Alexander From buynnnmmm1 at yahoo.co.jp Thu Sep 18 02:47:06 2014 From: buynnnmmm1 at yahoo.co.jp (buynnnmmm1 at yahoo.co.jp) Date: Thu, 18 Sep 2014 10:47:06 +0900 (JST) Subject: [GAP Forum] Is it possible to step through the program, like GNU GDB debugger, against built-in functions(ex. DerivedSubgroup, ClosureSubgroupNC )? In-Reply-To: References: <71991.35739.qm@web101616.mail.kks.yahoo.co.jp> <41051A9E-938E-4BD7-B959-35C827833CB7@mcs.st-andrews.ac.uk> <541990.91675.qm@web101619.mail.kks.yahoo.co.jp> <779571.61580.qm@web101613.mail.kks.yahoo.co.jp> Message-ID: <997376.61311.qm@web101614.mail.kks.yahoo.co.jp> Dear Alexander Konovalov, Thank you very much for? your description with some execution examples! I tried to run Copy and paste the example of you.It's very interesting. I have not read the document you taught me yet, but I understand the point. I think that is similar to polymorphism of object-oriented programming languages. I was easier to read the document and source codes thanks to your explanation. Thank you very much. With best regards buynnnmmm1 ----- Original Message ----- > From: Alexander Konovalov > To: buynnnmmm1 at yahoo.co.jp > Cc: GAP Forum > Date: 2014/9/18, Thu 06:19 > Subject: Re: [GAP Forum] Is it possible to step through the program, like GNU GDB debugger, against built-in functions(ex. DerivedSubgroup, ClosureSubgroupNC )? > > > On 17 Sep 2014, at 14:51, buynnnmmm1 at yahoo.co.jp wrote: > >>??Dear Alexander Konovalov, >> >>??Thank you very much for your help. >> >>>??Not really - the method for IsSolvable did not evolve from the code > similar to >>>??myIsSolvable at all. >>> >>>??Perhaps the key is to read about GAP method selection and learn the > concept of >>>??methods as bundles of functions: >>> >>>??http://www.gap-system.org/Manuals/doc/tut/chap8.html#X7AEED9AB824CD4DA >>> >>>??- that is, IsSolvable(G) will select the best available method to apply > to G, >>>??taking into account what's known about G at the moment. With > myIsSolvable, >>>??you enforce the calculation of DerivedSeries, while some of the methods > may need >>>??not to know the derived series at all to give an answer. The profile > below just >>>??illustrates this, since the number of methods involved in the calls to > GAP's >>>??IsSolvable is much smaller. >> >>??IsSolvable in lib/grp.gi is the same as the method for determining whether > or not solvable group I have learned . >>??I'll try to understand that the method for determining whether or not > solvable group I have learned is the same the built-in IsSolvable function. >>??I think it will be the good study of group theory . >>??I'll try to be able to understand "Operations and Methods of > GAP" with the document, too. >>??Thank you very much for your help. >> >>??With best regards >>??buynnnmmm1 > > Note also that several lines above there is an immediate method which > expresses the famous Feit?Thompson theorem stating that any group of > odd order is solvable: > > > InstallImmediateMethod( IsSolvableGroup, IsGroup and HasSize, 10, > ? ? function( G ) > ? ? G:= Size( G ); > ? ? if IsInt( G ) and G mod 2 = 1 then > ? ? ? return true; > ? ? fi; > ? ? TryNextMethod(); > ? ? end ); > > > The method to which you refer is generic, as its description says - like a > fallback method that is deemed to work for any group: > > > InstallMethod( IsSolvableGroup, > ? ? "generic method for groups", > ? ? [ IsGroup ], > ? ? function ( G ) > ? ? local???S;? ? ? ? ? # derived series of > > ? ? # compute the derived series of > ? ? S := DerivedSeriesOfGroup( G ); > > ? ? # the group is solvable if the derived series reaches the trivial group > ? ? return IsTrivial( S[ Length( S ) ] ); > ? ? end ); > > > You may trace how the method selection works adding the optional argument > "full". > For example, for S(3) the method ``IsSolvableGroup: for permgrp'' will > be used > quite early: > > gap> ApplicableMethod(IsSolvableGroup,[SymmetricGroup(3)],"full"); > #I? Searching Method for IsSolvableGroup with 1 arguments: > #I? Total: 11 entries > #I? Method 1: ``IsSolvableGroup: system getter'', value: 2*SUM_FLAGS+21 > #I???- 1st argument needs [ "Tester(IsSolvableGroup)" ] > #I? Method 2: ``IsSolvableGroup: handled by nice monomorphism: > Attribute'', value: 360 > #I???- 1st argument needs [ "IsHandledByNiceMonomorphism", > ? "Tester(IsHandledByNiceMonomorphism)" ] > #I? Method 3: ``IsSolvableGroup: for permgrp'', value: 48 > #I? Function Body: > function ( G ) > ? ? local? pcgs; > ? ? pcgs := TryPcgsPermGroup( G, false, false, true ); > ? ? if IsPcgs( pcgs )? then > ? ? ? ? SetIndicesEANormalSteps( pcgs, pcgs!.permpcgsNormalSteps ); > ? ? ? ? SetIsPcgsElementaryAbelianSeries( pcgs, true ); > ? ? ? ? if not HasPcgs( G )? then > ? ? ? ? ? ? SetPcgs( G, pcgs ); > ? ? ? ? fi; > ? ? ? ? if not HasPcgsElementaryAbelianSeries( G )? then > ? ? ? ? ? ? SetPcgsElementaryAbelianSeries( G, pcgs ); > ? ? ? ? fi; > ? ? ? ? return true; > ? ? else > ? ? ? ? return false; > ? ? fi; > ? ? return; > endfunction( G ) ... end > gap> > > To give an example of a group for which method selection descends to the > fallback method, let's construct a dihedral group of order 16 as a finitely > presented group: > > gap> f:=FreeGroup("x","y"); > > gap> r:=ParseRelators(GeneratorsOfGroup(f),"x^8=y^2=1,yxy=x^-1"); > [ x^8, y^2, (x^-1*y^-1)^2 ] > gap> G:=f/r; > > > Now after some information about other available methods, > the last one is precisely the generic method: > > gap> ApplicableMethod(IsSolvableGroup,[G],"full"); > #I? Searching Method for IsSolvableGroup with 1 arguments: > #I? Total: 11 entries > #I? Method 1: ``IsSolvableGroup: system getter'', value: 2*SUM_FLAGS+21 > #I???- 1st argument needs [ "Tester(IsSolvableGroup)" ] > #I? Method 2: ``IsSolvableGroup: handled by nice monomorphism: > Attribute'', value: 360 > #I???- 1st argument needs [ "IsHandledByNiceMonomorphism", > ? "Tester(IsHandledByNiceMonomorphism)" ] > #I? Method 3: ``IsSolvableGroup: for permgrp'', value: 48 > #I???- 1st argument needs [ "CategoryCollections(IsPerm)" ] > #I? Method 4: ``IsSolvableGroup: for AffineCrystGroup, via PointGroup'', > value: 43 > #I???- 1st argument needs [ "IsAffineCrystGroupOnLeftOrRight", > ? "Tester(IsAffineCrystGroupOnLeftOrRight)" ] > #I? Method 5: ``IsSolvableGroup: for rational matrix groups (Polenta)'', > value: 40 > #I???- 1st argument needs [ "IsRationalMatrixGroup", > "Tester(IsRationalMatrixGroup)" ] > #I? Method > 6: ``IsSolvableGroup: for matrix groups over a finte field (Polenta)'', > value: 38 > #I???- 1st argument needs > [ > ? > "CategoryCollections(CategoryCollections(CategoryCollections(IsNearAdditiveElementWithIn\ > verse)))", > ? > "CategoryCollections(CategoryCollections(CategoryCollections(IsAdditiveElement)))", > > ? > "CategoryCollections(CategoryCollections(CategoryCollections(IsMultiplicativeElement)))\ > ", > "CategoryCollections(CategoryCollections(CategoryCollections(IsFFE)))" > ] > #I? Method 7: ``IsSolvableGroup: fallback method to test conditions'', > value: 38 > #I???- 1st argument needs > [ > ? > "CategoryCollections(CategoryCollections(CategoryCollections(IsNearAdditiveElementWithIn\ > verse)))", > ? > "CategoryCollections(CategoryCollections(CategoryCollections(IsAdditiveElement)))", > > ? > "CategoryCollections(CategoryCollections(CategoryCollections(IsMultiplicativeElement)))\ > ", > "CategoryCollections(CategoryCollections(CategoryCollections(IsCyclotomic)))" > ] > #I? Method 8: ``IsSolvableGroup'', value: 27 > #I???- 1st argument needs [ "Tester(Size)" ] > #I? Method 9: ``IsSolvableGroup: for direct products'', value: 26 > #I???- 1st argument needs [ "Tester(DirectProductInfo)" ] > #I? Method 10: ``IsSolvableGroup: generic method for groups'', value: 25 > #I? Function Body: > function ( G ) > ? ? local? S; > ? ? S := DerivedSeriesOfGroup( G ); > ? ? return IsTrivial( S[Length( S )] ); > endfunction( G ) ... end > > However, if you create D_16 as permutation group, ApplicableMethod > will return the same ``IsSolvableGroup: for permgrp'' as for S(3) > above: > > gap> G:=Group([ (1,2,3,4,5,6,7,8), (2,8)(3,7)(4,6) ]); > Group([ (1,2,3,4,5,6,7,8), (2,8)(3,7)(4,6) ]) > gap> ApplicableMethod(IsSolvableGroup,[G],"full"); > ... > #I? Method 3: ``IsSolvableGroup: for permgrp'', value: 48 > #I? Function Body: > function ( G ) > ? ? local? pcgs; > ? ? pcgs := TryPcgsPermGroup( G, false, false, true ); > > ... > > so as you may see, different methods may be used dependently on how the > group is represented. Hope that clarifies some more details! > > Alexander > From alexk at mcs.st-andrews.ac.uk Thu Sep 18 11:27:16 2014 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Thu, 18 Sep 2014 11:27:16 +0100 Subject: [GAP Forum] Is it possible to step through the program, like GNU GDB debugger, against built-in functions(ex. DerivedSubgroup, ClosureSubgroupNC )? In-Reply-To: <997376.61311.qm@web101614.mail.kks.yahoo.co.jp> References: <71991.35739.qm@web101616.mail.kks.yahoo.co.jp> <41051A9E-938E-4BD7-B959-35C827833CB7@mcs.st-andrews.ac.uk> <541990.91675.qm@web101619.mail.kks.yahoo.co.jp> <779571.61580.qm@web101613.mail.kks.yahoo.co.jp> <997376.61311.qm@web101614.mail.kks.yahoo.co.jp> Message-ID: On 18 Sep 2014, at 02:47, buynnnmmm1 at yahoo.co.jp wrote: > Dear Alexander Konovalov, > > Thank you very much for your description with some execution examples! > > I tried to run Copy and paste the example of you.It's very interesting. > > I have not read the document you taught me yet, but I understand the point. > I think that is similar to polymorphism of object-oriented programming languages. Yes, precisely! This is dynamic polymorphism. The method selected depends on types of all arguments, and objects may change their type during their lifetime. For example, if there is a faster algorithm for a group for which it is known that is has some attribute X, you may install a generic method for IsGroup and a specific for IsGroup and HasX. Then for a group without X a generic method will be called, while for the group for which X is known a specific method will be called. This will not automatically enforce the calculation of X which may be expensive. This may be seen in the method that implements the Feit?Thompson theorem from my mail yesterday: InstallImmediateMethod( IsSolvableGroup, IsGroup and HasSize, 10, function( G ) G:= Size( G ); if IsInt( G ) and G mod 2 = 1 then return true; fi; TryNextMethod(); end ); - it will be applied (automatically, since it is *immediate*) only if the Size is already known, what is checked with HasSize. You might be interested in the following paper which describes this in more details: @inproceedings{Breuer:1998:GTS:281508.281540, author = {Breuer, Thomas and Linton, Steve}, title = {The GAP 4 Type System: Organising Algebraic Algorithms}, booktitle = {Proceedings of the 1998 International Symposium on Symbolic and Algebraic Computation}, series = {ISSAC '98}, year = {1998}, isbn = {1-58113-002-3}, location = {Rostock, Germany}, pages = {38--45}, numpages = {8}, url = {http://doi.acm.org/10.1145/281508.281540}, doi = {10.1145/281508.281540}, acmid = {281540}, publisher = {ACM}, address = {New York, NY, USA}, } Best wishes Alexander From buynnnmmm1 at yahoo.co.jp Thu Sep 18 21:08:49 2014 From: buynnnmmm1 at yahoo.co.jp (buynnnmmm1 at yahoo.co.jp) Date: Fri, 19 Sep 2014 05:08:49 +0900 (JST) Subject: [GAP Forum] Is it possible to step through the program, like GNU GDB debugger, against built-in functions(ex. DerivedSubgroup, ClosureSubgroupNC )? In-Reply-To: References: <71991.35739.qm@web101616.mail.kks.yahoo.co.jp> <41051A9E-938E-4BD7-B959-35C827833CB7@mcs.st-andrews.ac.uk> <541990.91675.qm@web101619.mail.kks.yahoo.co.jp> <779571.61580.qm@web101613.mail.kks.yahoo.co.jp> <997376.61311.qm@web101614.mail.kks.yahoo.co.jp> Message-ID: <933575.54628.qm@web101608.mail.kks.yahoo.co.jp> Dear Alexander Konovalov, Thank you very much for your help! > Yes, precisely! This is dynamic polymorphism. The method selected depends on > types of all arguments, and objects may change their type during their lifetime. > > For example, if there is a faster algorithm for a group for which it is known > that is has some attribute X, you may install a generic method for IsGroup and > a specific for IsGroup and HasX. Then for a group without X a generic method > will be called, while for the group for which X is known a specific method will > be called. This will not automatically enforce the calculation of X which may > be expensive. > > This may be seen in the method that implements the Feit?Thompson theorem from > my mail yesterday: > > InstallImmediateMethod( IsSolvableGroup, IsGroup and HasSize, 10, > ? function( G ) > ? G:= Size( G ); > ? if IsInt( G ) and G mod 2 = 1 then > ? ? return true; > ? fi; > ? TryNextMethod(); > ? end ); > > - it will be applied (automatically, since it is *immediate*) only if the Size > is already known, what is checked with HasSize. Thank you very much for explanation, I can understand it because your explanation is great. I am re-createing the myIsSolvable for practice. $ grep IsSolvable /usr/share/gap/lib/* | grep Declare There was codes of IsSolvable family also in "lib/overload.g" and "lib/ctbl.gd". And,I made a myIsSolvable with the Feit-Thompson theorem. But, I do not write the source code here, because It has some bugs. > You might be interested in the following paper which describes this in more > details: > > @inproceedings{Breuer:1998:GTS:281508.281540, > author = {Breuer, Thomas and Linton, Steve}, > title = {The GAP 4 Type System: Organising Algebraic Algorithms}, > booktitle = {Proceedings of the 1998 International Symposium on Symbolic and > Algebraic Computation}, > series = {ISSAC '98}, > year = {1998}, > isbn = {1-58113-002-3}, > location = {Rostock, Germany}, > pages = {38--45}, > numpages = {8}, > url = {http://doi.acm.org/10.1145/281508.281540}, > doi = {10.1145/281508.281540}, > acmid = {281540}, > publisher = {ACM}, > address = {New York, NY, USA}, > } Thank you very much for this information. With best regards buynnnmmm1 ----- Original Message ----- > From: Alexander Konovalov > To: buynnnmmm1 at yahoo.co.jp > Cc: GAP Forum > Date: 2014/9/18, Thu 19:27 > Subject: Re: [GAP Forum] Is it possible to step through the program, like GNU GDB debugger, against built-in functions(ex. DerivedSubgroup, ClosureSubgroupNC )? > > > On 18 Sep 2014, at 02:47, buynnnmmm1 at yahoo.co.jp wrote: > >> Dear Alexander Konovalov, >> >> Thank you very much for? your description with some execution examples! >> >> I tried to run Copy and paste the example of you.It's very interesting. >> >> I have not read the document you taught me yet, but I understand the point. >> I think that is similar to polymorphism of object-oriented programming > languages. > > Yes, precisely! This is dynamic polymorphism. The method selected depends on > types of all arguments, and objects may change their type during their lifetime. > > For example, if there is a faster algorithm for a group for which it is known > that is has some attribute X, you may install a generic method for IsGroup and > a specific for IsGroup and HasX. Then for a group without X a generic method > will be called, while for the group for which X is known a specific method will > be called. This will not automatically enforce the calculation of X which may > be expensive. > > This may be seen in the method that implements the Feit?Thompson theorem from > my mail yesterday: > > InstallImmediateMethod( IsSolvableGroup, IsGroup and HasSize, 10, > ? function( G ) > ? G:= Size( G ); > ? if IsInt( G ) and G mod 2 = 1 then > ? ? return true; > ? fi; > ? TryNextMethod(); > ? end ); > > - it will be applied (automatically, since it is *immediate*) only if the Size > is already known, what is checked with HasSize. > > You might be interested in the following paper which describes this in more > details: > > @inproceedings{Breuer:1998:GTS:281508.281540, > author = {Breuer, Thomas and Linton, Steve}, > title = {The GAP 4 Type System: Organising Algebraic Algorithms}, > booktitle = {Proceedings of the 1998 International Symposium on Symbolic and > Algebraic Computation}, > series = {ISSAC '98}, > year = {1998}, > isbn = {1-58113-002-3}, > location = {Rostock, Germany}, > pages = {38--45}, > numpages = {8}, > url = {http://doi.acm.org/10.1145/281508.281540}, > doi = {10.1145/281508.281540}, > acmid = {281540}, > publisher = {ACM}, > address = {New York, NY, USA}, > } > > Best wishes > Alexander > From sam at Math.RWTH-Aachen.De Wed Sep 24 09:34:08 2014 From: sam at Math.RWTH-Aachen.De (Thomas Breuer) Date: Wed, 24 Sep 2014 10:34:08 +0200 Subject: [GAP Forum] problem with OrthogonalEmbeddings In-Reply-To: <54094C0B.8050109@gmail.com> References: <54094C0B.8050109@gmail.com> Message-ID: <20140924083408.GA31081@gemma.math.rwth-aachen.de> Dear GAP Forum, Benjamin Sambale had reported a bug in the GAP function 'OrthogonalEmbeddings'. Indeed, the GAP implementation that is available for about 20 years is not correct, some solutions may be missing from the result. A corrected version of the function can be found at http://www.math.rwth-aachen.de/~Thomas.Breuer/gapfix/fix_orthemb_4_7_5 The fix may become available in one of the next GAP releases. Benjamin had also mentioned a problem with the documentation of the function; this will then be fixed as well. All the best, Thomas P.S.: Wrong results occur in the following situation: - Setup: Suppose that the matrix $A$ is given as the argument of the function, that is, we are interested in all integral matrices $X$ such that $X X^{tr} = A$ holds. Further suppose that there are $m$ vectors (up to sign) that can occur as the columns of the solution matrices $X$. Each solution is described by the vector (called $\iota$ in the underlying paper) of multiplicities of these $m$ vectors. - Technical description: The algorithm enumerates the relevant coefficient vectors in reverse lexicographical order, and the bug in the program has the effect that the following illegal shortcut happens. Whenever the $(m-1)$-th coefficient shall be decreased by $1$ during the enumeration, it is erroneously set to zero, and also the $(m-2)$-th coefficient gets decreased by $1$. Thus all those solutions with given coefficients of the first $m-2$ vectors are skipped for which the $(m-1)$-th vector does not occur with the maximal possible multiplicity. - Conceptual description: The error strikes whenever solutions exist that differ only w. r. t. the multiplicities of the last two vectors, in other words, if a solution is not determined already by the multiplicities of the first $m-2$ vectors. In this situation, all those solutions are missing for which the $(m-1)$-th coefficient is smaller than the maximal value. Additionally, if a solution is determined by the multiplicities of the first $m-2$ vectors then it is missing if the coefficient of the $(m-1)$-th vector is smaller than the maximal possible value for it, as is computed by the algorithm in this situation. - Examples: 1. In Benjamin's example, we have $A = [ [ 4 ] ]$, $m = 2$, and the possible vectors are $x_1 = [ 2 ]$ and $x_2 = [ 1 ]$. The current function finds the solution with the coefficient vector $[ 1, 0 ]$ but not the one with the vector $[ 0, 4 ]$. 2. In the case $A = [ [ 1, 0 ], [ 0, 4 ] ]$, we have $m = 3$ and $x_1 = [ 1, 0 ]$, $x_2 = [ 0, 2 ]$, $x_3 = [ 0, 1 ]$. The coefficient vector $[ 1, 1, 0 ]$ is found but the vector $[ 1, 0, 4 ]$ is not. 3. In the case $A = [ [ 4, 0 ], [ 0, 1 ] ]$, we have $m = 3$ and $x_1 = [ 2, 0 ]$, $x_2 = [ 0, 1 ]$, $x_3 = [ 1, 0 ]$. In this case, the two solutions $[ 1, 1, 0 ]$ and $[ 0, 1, 4 ]$ are found. On Fri, Sep 05, 2014 at 07:37:15AM +0200, Benjamin Sambale wrote: > Dear GAP people, > > according to the manual, the command OrthogonalEmbeddings does the > following: Given an integral symmetric matrix M, compute all integral > matrices X such that X^tr X = M where X^tr denotes the transpose of X. > The solution matrices X are given up to permutations and signs of their > rows. > > If I do (with GAP 4.7.5) OrthogonalEmbeddings([[4]]), I only get one > solution, namely X = [[2]]. However, there is another solution X = > [[1],[1],[1],[1]] which is somehow missing! What is wrong here? > Apparently, the implementation is quite old and based on a paper by > Plesken from 1995. > > There is also an inaccuracy in the manual: It says: "the list L = [ x_1, > x_2, ..., x_n ] of vectors that may be rows of a solution; these are > exactly those vectors that fulfill the condition x_i ? gram^{-1} ? > x_i^tr ? 1 (see ShortestVectors (25.6-2)), and we have gram = ?_{i = > 1}^n x_i^tr ? x_i". > > The last equation is usually not true. The equation only holds for the > set of vectors of a solution. Moreover, one should mention that the list > of vectors is only up to signs. > > Thanks and best wishes, > Benjamin From tesleft at hotmail.com Wed Sep 24 10:21:13 2014 From: tesleft at hotmail.com (Lee Martin CCNP) Date: Wed, 24 Sep 2014 17:21:13 +0800 Subject: [GAP Forum] which function of dictionary can use polynomial or function as key Message-ID: Hi would like to use rational function as key in dictionary like table function in maple which function is a dictionary can use function as key and value as list to store ideals. Regards, Martin From tesleft at hotmail.com Wed Sep 24 11:06:29 2014 From: tesleft at hotmail.com (Lee Martin CCNP) Date: Wed, 24 Sep 2014 18:06:29 +0800 Subject: [GAP Forum] how to use the hilbert function after loadpackage singular Message-ID: Hi LoadPackage("singular");onelist := Tuples([0,1,0,1,0,1],3);onelist2 := [];Append( onelist2, onelist );Append( onelist2, onelist );Append( onelist2, onelist );matrixlist := Tuples(onelist2,3); ring r = 0,(x,y,z),lp;ideal i = y3+x2,x2y+x2z2,x3-z9,z4-y2-xz;ideal j = stdhilb(i); j; R1:= PolynomialRing( Rationals, ["x","y","z"] : new );;x:=IndeterminatesOfPolynomialRing(R1)[1];y:=IndeterminatesOfPolynomialRing(R1)[2];z:=IndeterminatesOfPolynomialRing(R1)[3];f1:=y^3+x^2;f2:=x^2*y+x^2*z^2;f3:=x^3-z^9;f4:=z^4-y^2-xz;stdhilb([f1,f2,f3,f4]); <- got error at here Regards, Martin From tesleft at hotmail.com Wed Sep 24 11:12:31 2014 From: tesleft at hotmail.com (Lee Martin CCNP) Date: Wed, 24 Sep 2014 18:12:31 +0800 Subject: [GAP Forum] how to do matrix multiplication of polynomial for input as ideal after load singular package Message-ID: Hi, LoadPackage("singular");onelist := Tuples([0,1,0,1,0,1],3);onelist2 := [];Append( onelist2, onelist );Append( onelist2, onelist );Append( onelist2, onelist );matrixlist := Tuples(onelist2,3); R1:= PolynomialRing( Rationals, ["x","y","z"] : new );;x:=IndeterminatesOfPolynomialRing(R1)[1];y:=IndeterminatesOfPolynomialRing(R1)[2];z:=IndeterminatesOfPolynomialRing(R1)[3]; hello:=Matrix([[x,y,z]])*Matrix(matrixlist[1]); <- got error at here Regards, Martin From alexk at mcs.st-andrews.ac.uk Wed Sep 24 11:13:32 2014 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Wed, 24 Sep 2014 11:13:32 +0100 Subject: [GAP Forum] how to use the hilbert function after loadpackage singular In-Reply-To: References: Message-ID: <662F1054-CD45-451D-89F4-25B3EF718F3A@mcs.st-andrews.ac.uk> Hi Martin, It's always useful to include the error messages in such reports. What is the error message that is displayed? What is 'stdhilb' - there is no such function in GAP and packages redistributed with it. HTH Alexander On 24 Sep 2014, at 11:06, Lee Martin CCNP wrote: > Hi > > LoadPackage("singular");onelist := Tuples([0,1,0,1,0,1],3);onelist2 := [];Append( onelist2, onelist );Append( onelist2, onelist );Append( onelist2, onelist );matrixlist := Tuples(onelist2,3); > > ring r = 0,(x,y,z),lp;ideal i = y3+x2,x2y+x2z2,x3-z9,z4-y2-xz;ideal j = stdhilb(i); j; > R1:= PolynomialRing( Rationals, ["x","y","z"] : new );;x:=IndeterminatesOfPolynomialRing(R1)[1];y:=IndeterminatesOfPolynomialRing(R1)[2];z:=IndeterminatesOfPolynomialRing(R1)[3];f1:=y^3+x^2;f2:=x^2*y+x^2*z^2;f3:=x^3-z^9;f4:=z^4-y^2-xz;stdhilb([f1,f2,f3,f4]); <- got error at here > Regards, > Martin > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From tesleft at hotmail.com Wed Sep 24 13:01:46 2014 From: tesleft at hotmail.com (Lee Martin CCNP) Date: Wed, 24 Sep 2014 20:01:46 +0800 Subject: [GAP Forum] how to use the hilbert function after loadpackage singular In-Reply-To: <662F1054-CD45-451D-89F4-25B3EF718F3A@mcs.st-andrews.ac.uk> References: , <662F1054-CD45-451D-89F4-25B3EF718F3A@mcs.st-andrews.ac.uk> Message-ID: Hi http://www.gap-system.org/Manuals/pkg/singular/doc/chap1.html#X795A815178AA90C7 in manual of singular interface in gap system i can not find the function name for hilbert function it seems can use function with singular package, what is the function name of hilbert function in gap system? and how to use to use it? Regards, Martin > Subject: Re: [GAP Forum] how to use the hilbert function after loadpackage singular > From: alexk at mcs.st-andrews.ac.uk > Date: Wed, 24 Sep 2014 11:13:32 +0100 > CC: forum at gap-system.org > To: tesleft at hotmail.com > > Hi Martin, > > It's always useful to include the error messages in such reports. > What is the error message that is displayed? What is 'stdhilb' - > there is no such function in GAP and packages redistributed with it. > > HTH > Alexander > > > On 24 Sep 2014, at 11:06, Lee Martin CCNP wrote: > > > Hi > > > > LoadPackage("singular");onelist := Tuples([0,1,0,1,0,1],3);onelist2 := [];Append( onelist2, onelist );Append( onelist2, onelist );Append( onelist2, onelist );matrixlist := Tuples(onelist2,3); > > > > ring r = 0,(x,y,z),lp;ideal i = y3+x2,x2y+x2z2,x3-z9,z4-y2-xz;ideal j = stdhilb(i); j; > > R1:= PolynomialRing( Rationals, ["x","y","z"] : new );;x:=IndeterminatesOfPolynomialRing(R1)[1];y:=IndeterminatesOfPolynomialRing(R1)[2];z:=IndeterminatesOfPolynomialRing(R1)[3];f1:=y^3+x^2;f2:=x^2*y+x^2*z^2;f3:=x^3-z^9;f4:=z^4-y^2-xz;stdhilb([f1,f2,f3,f4]); <- got error at here > > Regards, > > Martin > > _______________________________________________ > > Forum mailing list > > Forum at mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > From hulpke at math.colostate.edu Wed Sep 24 16:13:52 2014 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Wed, 24 Sep 2014 09:13:52 -0600 Subject: [GAP Forum] how to do matrix multiplication of polynomial for input as ideal after load singular package In-Reply-To: References: Message-ID: <834F24CE-9087-4294-9CBA-577042002F01@math.colostate.edu> Dear Forum, On Sep 24, 2014, at 9/24/14 4:12, Lee Martin CCNP wrote: > Hi, > LoadPackage("singular");onelist := Tuples([0,1,0,1,0,1],3);onelist2 := [];Append( onelist2, onelist );Append( onelist2, onelist );Append( onelist2, onelist );matrixlist := Tuples(onelist2,3); > R1:= PolynomialRing( Rationals, ["x","y","z"] : new );;x:=IndeterminatesOfPolynomialRing(R1)[1];y:=IndeterminatesOfPolynomialRing(R1)[2];z:=IndeterminatesOfPolynomialRing(R1)[3]; > hello:=Matrix([[x,y,z]])*Matrix(matrixlist[1]); <- got error at here I'm not sure what `Matrix' is supposed to do. If you call: hello:=[[x,y,z]]*matrixlist[1]; everything works fine. Regards, Alexander Hulpke From hulpke at math.colostate.edu Wed Sep 24 16:27:04 2014 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Wed, 24 Sep 2014 09:27:04 -0600 Subject: [GAP Forum] which function of dictionary can use polynomial or function as key In-Reply-To: References: Message-ID: <8661B544-6612-4B9A-905A-A0E811375014@math.colostate.edu> Dear Forum, On Sep 24, 2014, at 9/24/14 3:21, Lee Martin CCNP wrote: > would like to use rational function as key in dictionary like table function in maple > which function is a dictionary can use function as key and value as list to store ideals. Lookup dictionaries currently work with rational functions, e.g: gap> R:=PolynomialRing(Rationals,["x","y","z"]);AssignGeneratorVariables(R); Rationals[x,y,z] #I Assigned the global variables [ x, y, z ] gap> d:=NewDictionary(x,true); gap> AddDictionary(d,x,1); gap> AddDictionary(d,y,2); gap> LookupDictionary(d,x); 1 gap> LookupDictionary(d,z); fail gap> AddDictionary(d,x/y,2); gap> LookupDictionary(d,z); fail gap> LookupDictionary(d,x/y); 2 Instead of numbers you should be able to store arbitrary associated information. However internally lists will be made immutable, so if your ideal list is expected to grow you would need to keep a separate (mutable) list of the ideal lists, storing only an index in the dictionary. I note that gap> RepresentationsOfObject(d); [ "IsComponentObjectRep", "IsDictionaryDefaultRep", "IsListDictionary", "IsListLookupDictionary", "IsSortDictionary", "IsSortLookupDictionary" ] this currently uses sorted lists internally and not yet hashing. To enable hashing, one would have to add a method for SparseHashKey for rational functions, which currently is not on the list of features. Best, Alexander Hulpke > Regards, > Martin > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From tesleft at hotmail.com Wed Sep 24 17:00:40 2014 From: tesleft at hotmail.com (Lee Martin CCNP) Date: Thu, 25 Sep 2014 00:00:40 +0800 Subject: [GAP Forum] how to use the hilbert function after loadpackage singular In-Reply-To: References: , , <662F1054-CD45-451D-89F4-25B3EF718F3A@mcs.st-andrews.ac.uk>, Message-ID: Hi Alexander, How to list all function available in the singular package? Regards, Martin > From: tesleft at hotmail.com > To: alexk at mcs.st-andrews.ac.uk > Date: Wed, 24 Sep 2014 20:01:46 +0800 > CC: forum at gap-system.org > Subject: Re: [GAP Forum] how to use the hilbert function after loadpackage singular > > Hi > http://www.gap-system.org/Manuals/pkg/singular/doc/chap1.html#X795A815178AA90C7 > in manual of singular interface in gap system > i can not find the function name for hilbert function > it seems can use function with singular package, what is the function name of hilbert function in gap system? and how to use to use it? > Regards, > Martin > > > Subject: Re: [GAP Forum] how to use the hilbert function after loadpackage singular > > From: alexk at mcs.st-andrews.ac.uk > > Date: Wed, 24 Sep 2014 11:13:32 +0100 > > CC: forum at gap-system.org > > To: tesleft at hotmail.com > > > > Hi Martin, > > > > It's always useful to include the error messages in such reports. > > What is the error message that is displayed? What is 'stdhilb' - > > there is no such function in GAP and packages redistributed with it. > > > > HTH > > Alexander > > > > > > On 24 Sep 2014, at 11:06, Lee Martin CCNP wrote: > > > > > Hi > > > > > > LoadPackage("singular");onelist := Tuples([0,1,0,1,0,1],3);onelist2 := [];Append( onelist2, onelist );Append( onelist2, onelist );Append( onelist2, onelist );matrixlist := Tuples(onelist2,3); > > > > > > ring r = 0,(x,y,z),lp;ideal i = y3+x2,x2y+x2z2,x3-z9,z4-y2-xz;ideal j = stdhilb(i); j; > > > R1:= PolynomialRing( Rationals, ["x","y","z"] : new );;x:=IndeterminatesOfPolynomialRing(R1)[1];y:=IndeterminatesOfPolynomialRing(R1)[2];z:=IndeterminatesOfPolynomialRing(R1)[3];f1:=y^3+x^2;f2:=x^2*y+x^2*z^2;f3:=x^3-z^9;f4:=z^4-y^2-xz;stdhilb([f1,f2,f3,f4]); <- got error at here > > > Regards, > > > Martin > > > _______________________________________________ > > > Forum mailing list > > > Forum at mail.gap-system.org > > > http://mail.gap-system.org/mailman/listinfo/forum > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From degraaf at science.unitn.it Wed Sep 24 17:34:34 2014 From: degraaf at science.unitn.it (Willem de Graaf) Date: Wed, 24 Sep 2014 18:34:34 +0200 Subject: [GAP Forum] how to use the hilbert function after loadpackage singular In-Reply-To: References: <662F1054-CD45-451D-89F4-25B3EF718F3A@mcs.st-andrews.ac.uk> Message-ID: Dear Martin, Forum, The "singular" package provides direct access to only few functions of Singular. The main function is GroebnerBasis, for computing Groebner bases. One can try using other functions by using SingularInterface of the singular package. The manual of the singular package explains how to use it. Best wishes, Willem de Graaf On Wed, Sep 24, 2014 at 2:01 PM, Lee Martin CCNP wrote: > Hi > > http://www.gap-system.org/Manuals/pkg/singular/doc/chap1.html#X795A815178AA90C7 > in manual of singular interface in gap system > i can not find the function name for hilbert function > it seems can use function with singular package, what is the function name > of hilbert function in gap system? and how to use to use it? > Regards, > Martin > > > Subject: Re: [GAP Forum] how to use the hilbert function after > loadpackage singular > > From: alexk at mcs.st-andrews.ac.uk > > Date: Wed, 24 Sep 2014 11:13:32 +0100 > > CC: forum at gap-system.org > > To: tesleft at hotmail.com > > > > Hi Martin, > > > > It's always useful to include the error messages in such reports. > > What is the error message that is displayed? What is 'stdhilb' - > > there is no such function in GAP and packages redistributed with it. > > > > HTH > > Alexander > > > > > > On 24 Sep 2014, at 11:06, Lee Martin CCNP wrote: > > > > > Hi > > > > > > LoadPackage("singular");onelist := Tuples([0,1,0,1,0,1],3);onelist2 := > [];Append( onelist2, onelist );Append( onelist2, onelist );Append( > onelist2, onelist );matrixlist := Tuples(onelist2,3); > > > > > > ring r = 0,(x,y,z),lp;ideal i = y3+x2,x2y+x2z2,x3-z9,z4-y2-xz;ideal j > = stdhilb(i); j; > > > R1:= PolynomialRing( Rationals, ["x","y","z"] : new > );;x:=IndeterminatesOfPolynomialRing(R1)[1];y:=IndeterminatesOfPolynomialRing(R1)[2];z:=IndeterminatesOfPolynomialRing(R1)[3];f1:=y^3+x^2;f2:=x^2*y+x^2*z^2;f3:=x^3-z^9;f4:=z^4-y^2-xz;stdhilb([f1,f2,f3,f4]); > <- got error at here > > > Regards, > > > Martin > > > _______________________________________________ > > > Forum mailing list > > > Forum at mail.gap-system.org > > > http://mail.gap-system.org/mailman/listinfo/forum > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From tesleft at hotmail.com Wed Sep 24 17:42:14 2014 From: tesleft at hotmail.com (Lee Martin CCNP) Date: Thu, 25 Sep 2014 00:42:14 +0800 Subject: [GAP Forum] how to use the hilbert function after loadpackage singular In-Reply-To: References: , <662F1054-CD45-451D-89F4-25B3EF718F3A@mcs.st-andrews.ac.uk>, , Message-ID: Hi Willem, i find it. I will try them tomorrow since i am not sure whether parameter is "poly". SingularLibrary( "standard.lib" );I:= Ideal( R, [f1,f2,f3,f4] );;SingularInterface( "stdhilb", [ f1,f2,f3,f4 ], "def");SingularInterface( "stdhilb", [ f1,f2,f3,f4 ], "poly"); Regards, Martin Date: Wed, 24 Sep 2014 18:34:34 +0200 Subject: Re: [GAP Forum] how to use the hilbert function after loadpackage singular From: degraaf at science.unitn.it To: tesleft at hotmail.com CC: forum at gap-system.org Dear Martin, Forum, The "singular" package provides direct access to only few functions of Singular. The main function is GroebnerBasis, for computing Groebner bases. One can try using other functions by using SingularInterface of the singular package. The manual of the singular package explains how to use it. Best wishes, Willem de Graaf On Wed, Sep 24, 2014 at 2:01 PM, Lee Martin CCNP wrote: Hi http://www.gap-system.org/Manuals/pkg/singular/doc/chap1.html#X795A815178AA90C7 in manual of singular interface in gap system i can not find the function name for hilbert function it seems can use function with singular package, what is the function name of hilbert function in gap system? and how to use to use it? Regards, Martin > Subject: Re: [GAP Forum] how to use the hilbert function after loadpackage singular > From: alexk at mcs.st-andrews.ac.uk > Date: Wed, 24 Sep 2014 11:13:32 +0100 > CC: forum at gap-system.org > To: tesleft at hotmail.com > > Hi Martin, > > It's always useful to include the error messages in such reports. > What is the error message that is displayed? What is 'stdhilb' - > there is no such function in GAP and packages redistributed with it. > > HTH > Alexander > > > On 24 Sep 2014, at 11:06, Lee Martin CCNP wrote: > > > Hi > > > > LoadPackage("singular");onelist := Tuples([0,1,0,1,0,1],3);onelist2 := [];Append( onelist2, onelist );Append( onelist2, onelist );Append( onelist2, onelist );matrixlist := Tuples(onelist2,3); > > > > ring r = 0,(x,y,z),lp;ideal i = y3+x2,x2y+x2z2,x3-z9,z4-y2-xz;ideal j = stdhilb(i); j; > > R1:= PolynomialRing( Rationals, ["x","y","z"] : new );;x:=IndeterminatesOfPolynomialRing(R1)[1];y:=IndeterminatesOfPolynomialRing(R1)[2];z:=IndeterminatesOfPolynomialRing(R1)[3];f1:=y^3+x^2;f2:=x^2*y+x^2*z^2;f3:=x^3-z^9;f4:=z^4-y^2-xz;stdhilb([f1,f2,f3,f4]); <- got error at here > > Regards, > > Martin > > _______________________________________________ > > Forum mailing list > > Forum at mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From tesleft at hotmail.com Wed Sep 24 18:06:30 2014 From: tesleft at hotmail.com (Lee Martin CCNP) Date: Thu, 25 Sep 2014 01:06:30 +0800 Subject: [GAP Forum] how many memory needed to run a full combination of matrix with element 0 and 1 In-Reply-To: References: , <662F1054-CD45-451D-89F4-25B3EF718F3A@mcs.st-andrews.ac.uk>, , , Message-ID: Hi how many memory needed to run the code below? do gap system have memory limit when run the code below ? since got out of memory in maple, i try full combination in gap system in 32bit virtual machine my notebook has 8GB ram and assign 2 GB to 4 GB ram for virtual machine then i know that 64bit do not have memory limit, then i plan and wait to buy a intel 61 cores for more than 128GB ram in future if i meet memory limit tomorrow. it is just full combination of ideals, i can not imagine how much memory need for full combination of modules and whether can run with 61 cores onelist := Tuples([0,1,0,1,0,1],3);onelist2 := [];Append( onelist2, onelist );Append( onelist2, onelist );Append( onelist2, onelist );matrixlist := Tuples(onelist2,3); ideallist2 := [];Append( ideallist2, matrixlist );Append( ideallist2, matrixlist );Append( ideallist2, matrixlist );ideallist := Tuples(ideallist2,3); ___________________________________________actually i expect to try onelist := Tuples([0,1,0,1,0,1,0,1],4);onelist := Tuples([0,1,0,1,0,1,0,1,0,1],5); onelist := Tuples([0,1,2,0,1,2,0,1,2],3);onelist := Tuples([0,1,2,0,1,2,0,1,2,0,1,2],4);onelist := Tuples([0,1,2,0,1,2,0,1,2,0,1,2,0,1,2],5); for above code too Regards, Martin From alexk at mcs.st-andrews.ac.uk Wed Sep 24 21:51:37 2014 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Wed, 24 Sep 2014 21:51:37 +0100 Subject: [GAP Forum] how many memory needed to run a full combination of matrix with element 0 and 1 In-Reply-To: References: , <662F1054-CD45-451D-89F4-25B3EF718F3A@mcs.st-andrews.ac.uk>, , , Message-ID: <61005AF8-DD0D-4F8F-8DFB-6EC2D7FD5E42@mcs.st-andrews.ac.uk> Just a partial answer: you may find useful the following commands: 1) NrTuples which will tell you the number of tuples without generating the whole list 2) MemoryUsage which will may tell you the memory needed for a single sample tuple. Both are documented, so please see the manual for examples. Also, see IteratorOfTuples - this allows to enumerate them without generating a full list. Alexander On 24 Sep 2014, at 18:06, Lee Martin CCNP wrote: > Hi > how many memory needed to run the code below? > do gap system have memory limit when run the code below ? > since got out of memory in maple, i try full combination in gap system in 32bit virtual machine > my notebook has 8GB ram and assign 2 GB to 4 GB ram for virtual machine > then i know that 64bit do not have memory limit, then i plan and wait to buy a intel 61 cores for more than 128GB ram in future if i meet memory limit tomorrow. > it is just full combination of ideals, i can not imagine how much memory need for full combination of modules and whether can run with 61 cores > onelist := Tuples([0,1,0,1,0,1],3);onelist2 := [];Append( onelist2, onelist );Append( onelist2, onelist );Append( onelist2, onelist );matrixlist := Tuples(onelist2,3); > ideallist2 := [];Append( ideallist2, matrixlist );Append( ideallist2, matrixlist );Append( ideallist2, matrixlist );ideallist := Tuples(ideallist2,3); > ___________________________________________actually i expect to try onelist := Tuples([0,1,0,1,0,1,0,1],4);onelist := Tuples([0,1,0,1,0,1,0,1,0,1],5); > onelist := Tuples([0,1,2,0,1,2,0,1,2],3);onelist := Tuples([0,1,2,0,1,2,0,1,2,0,1,2],4);onelist := Tuples([0,1,2,0,1,2,0,1,2,0,1,2,0,1,2],5); > for above code too > Regards, > Martin > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From alexk at mcs.st-andrews.ac.uk Wed Sep 24 22:08:32 2014 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Wed, 24 Sep 2014 22:08:32 +0100 Subject: [GAP Forum] how many memory needed to run a full combination of matrix with element 0 and 1 In-Reply-To: References: , <662F1054-CD45-451D-89F4-25B3EF718F3A@mcs.st-andrews.ac.uk>, , , Message-ID: <5EB38C0C-4E3D-4D33-A740-681208D4DCCA@mcs.st-andrews.ac.uk> P.S. Please also note that these two commands return the same output: gap> Tuples([0,1],4); [ [ 0, 0, 0, 0 ], [ 0, 0, 0, 1 ], [ 0, 0, 1, 0 ], [ 0, 0, 1, 1 ], [ 0, 1, 0, 0 ], [ 0, 1, 0, 1 ], [ 0, 1, 1, 0 ], [ 0, 1, 1, 1 ], [ 1, 0, 0, 0 ], [ 1, 0, 0, 1 ], [ 1, 0, 1, 0 ], [ 1, 0, 1, 1 ], [ 1, 1, 0, 0 ], [ 1, 1, 0, 1 ], [ 1, 1, 1, 0 ], [ 1, 1, 1, 1 ] ] gap> Tuples([0,1,0,1,0,1,0,1],4); [ [ 0, 0, 0, 0 ], [ 0, 0, 0, 1 ], [ 0, 0, 1, 0 ], [ 0, 0, 1, 1 ], [ 0, 1, 0, 0 ], [ 0, 1, 0, 1 ], [ 0, 1, 1, 0 ], [ 0, 1, 1, 1 ], [ 1, 0, 0, 0 ], [ 1, 0, 0, 1 ], [ 1, 0, 1, 0 ], [ 1, 0, 1, 1 ], [ 1, 1, 0, 0 ], [ 1, 1, 0, 1 ], [ 1, 1, 1, 0 ], [ 1, 1, 1, 1 ] ] so you either may specify a set of values, or you may have in mind something different. BW, Alexander On 24 Sep 2014, at 18:06, Lee Martin CCNP wrote: > Hi > how many memory needed to run the code below? > do gap system have memory limit when run the code below ? > since got out of memory in maple, i try full combination in gap system in 32bit virtual machine > my notebook has 8GB ram and assign 2 GB to 4 GB ram for virtual machine > then i know that 64bit do not have memory limit, then i plan and wait to buy a intel 61 cores for more than 128GB ram in future if i meet memory limit tomorrow. > it is just full combination of ideals, i can not imagine how much memory need for full combination of modules and whether can run with 61 cores > onelist := Tuples([0,1,0,1,0,1],3);onelist2 := [];Append( onelist2, onelist );Append( onelist2, onelist );Append( onelist2, onelist );matrixlist := Tuples(onelist2,3); > ideallist2 := [];Append( ideallist2, matrixlist );Append( ideallist2, matrixlist );Append( ideallist2, matrixlist );ideallist := Tuples(ideallist2,3); > ___________________________________________actually i expect to try onelist := Tuples([0,1,0,1,0,1,0,1],4);onelist := Tuples([0,1,0,1,0,1,0,1,0,1],5); > onelist := Tuples([0,1,2,0,1,2,0,1,2],3);onelist := Tuples([0,1,2,0,1,2,0,1,2,0,1,2],4);onelist := Tuples([0,1,2,0,1,2,0,1,2,0,1,2,0,1,2],5); > for above code too > Regards, > Martin > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From tesleft at hotmail.com Thu Sep 25 08:20:57 2014 From: tesleft at hotmail.com (Lee Martin CCNP) Date: Thu, 25 Sep 2014 15:20:57 +0800 Subject: [GAP Forum] how many memory needed to run a full combination of matrix with element 0 and 1 In-Reply-To: <5EB38C0C-4E3D-4D33-A740-681208D4DCCA@mcs.st-andrews.ac.uk> References: , <662F1054-CD45-451D-89F4-25B3EF718F3A@mcs.st-andrews.ac.uk>, , , , <5EB38C0C-4E3D-4D33-A740-681208D4DCCA@mcs.st-andrews.ac.uk> Message-ID: Hi Alexander, out of memory, how to install 64 bit version of gap system i remembered i installed rsync binary installer in the past. when i search download, i can not find 64 bit. LoadPackage("singular");onelist := Tuples([0,1,0,1,0,1],3);onelist2 := [];Append( onelist2, onelist );Append( onelist2, onelist );Append( onelist2, onelist );matrixlist := Tuples(onelist2,3);matrixlist2 := [];Append( matrixlist2, matrixlist );Append( matrixlist2, matrixlist );Append( matrixlist2, matrixlist );ideallist := Tuples(matrixlist2,3);gap> ideallist := Tuples(matrixlist2,3);Error, exceeded the permitted memory (`-o' command line option) in tup[i] := l; called from TuplesK( set, k, [ ], 1 ) called from( ) called from read-eval loop at line 67 of *stdin*you can 'return;' Regards, Martin > Subject: Re: [GAP Forum] how many memory needed to run a full combination of matrix with element 0 and 1 > From: alexk at mcs.st-andrews.ac.uk > Date: Wed, 24 Sep 2014 22:08:32 +0100 > CC: forum at gap-system.org > To: tesleft at hotmail.com > > P.S. Please also note that these two commands return the same output: > > gap> Tuples([0,1],4); > [ [ 0, 0, 0, 0 ], [ 0, 0, 0, 1 ], [ 0, 0, 1, 0 ], [ 0, 0, 1, 1 ], > [ 0, 1, 0, 0 ], [ 0, 1, 0, 1 ], [ 0, 1, 1, 0 ], [ 0, 1, 1, 1 ], > [ 1, 0, 0, 0 ], [ 1, 0, 0, 1 ], [ 1, 0, 1, 0 ], [ 1, 0, 1, 1 ], > [ 1, 1, 0, 0 ], [ 1, 1, 0, 1 ], [ 1, 1, 1, 0 ], [ 1, 1, 1, 1 ] ] > gap> Tuples([0,1,0,1,0,1,0,1],4); > [ [ 0, 0, 0, 0 ], [ 0, 0, 0, 1 ], [ 0, 0, 1, 0 ], [ 0, 0, 1, 1 ], > [ 0, 1, 0, 0 ], [ 0, 1, 0, 1 ], [ 0, 1, 1, 0 ], [ 0, 1, 1, 1 ], > [ 1, 0, 0, 0 ], [ 1, 0, 0, 1 ], [ 1, 0, 1, 0 ], [ 1, 0, 1, 1 ], > [ 1, 1, 0, 0 ], [ 1, 1, 0, 1 ], [ 1, 1, 1, 0 ], [ 1, 1, 1, 1 ] ] > > so you either may specify a set of values, or you may have in mind something different. > > BW, > Alexander > > > > > On 24 Sep 2014, at 18:06, Lee Martin CCNP wrote: > > > Hi > > how many memory needed to run the code below? > > do gap system have memory limit when run the code below ? > > since got out of memory in maple, i try full combination in gap system in 32bit virtual machine > > my notebook has 8GB ram and assign 2 GB to 4 GB ram for virtual machine > > then i know that 64bit do not have memory limit, then i plan and wait to buy a intel 61 cores for more than 128GB ram in future if i meet memory limit tomorrow. > > it is just full combination of ideals, i can not imagine how much memory need for full combination of modules and whether can run with 61 cores > > onelist := Tuples([0,1,0,1,0,1],3);onelist2 := [];Append( onelist2, onelist );Append( onelist2, onelist );Append( onelist2, onelist );matrixlist := Tuples(onelist2,3); > > ideallist2 := [];Append( ideallist2, matrixlist );Append( ideallist2, matrixlist );Append( ideallist2, matrixlist );ideallist := Tuples(ideallist2,3); > > ___________________________________________actually i expect to try onelist := Tuples([0,1,0,1,0,1,0,1],4);onelist := Tuples([0,1,0,1,0,1,0,1,0,1],5); > > onelist := Tuples([0,1,2,0,1,2,0,1,2],3);onelist := Tuples([0,1,2,0,1,2,0,1,2,0,1,2],4);onelist := Tuples([0,1,2,0,1,2,0,1,2,0,1,2,0,1,2],5); > > for above code too > > Regards, > > Martin > > _______________________________________________ > > Forum mailing list > > Forum at mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > From tesleft at hotmail.com Thu Sep 25 08:22:51 2014 From: tesleft at hotmail.com (Lee Martin CCNP) Date: Thu, 25 Sep 2014 15:22:51 +0800 Subject: [GAP Forum] how to use the hilbert function after loadpackage singular In-Reply-To: References: , , <662F1054-CD45-451D-89F4-25B3EF718F3A@mcs.st-andrews.ac.uk>, , , , , Message-ID: Hi Willem, got error after a series of trial of hilbert function R1:= PolynomialRing( Rationals, ["x","y","z"] : new );;SingularSetBaseRing(R1);x:=IndeterminatesOfPolynomialRing(R1)[1];y:=IndeterminatesOfPolynomialRing(R1)[2];z:=IndeterminatesOfPolynomialRing(R1)[3];f1:=y^3+x^2;f2:=x^2*y+x^2*z^2;f3:=x^3-z^9;f4:=z^4-y^2-x*z; gap> I:= Ideal( R1, [f1,f2,f3,f4] );gap> SingularInterface( "stdhilb", I, "ideal");Error, no method found! For debugging hints type ?Recovery from NoMethodFoundError, no 1st choice method found for `Length' on 1 arguments called fromLength( arguments ) called from( ) called from read-eval loop at line 49 of *stdin*you can 'quit;' to quit to outer loop, oryou can 'return;' to continuebrk> quit;gap> SingularInterface( "stdhilb", [ f1,f2,f3,f4 ], "def"); ? `poly`(Id(1)) = `ideal` is not supported ? expected `poly` = `poly` ? expected `poly` = `matrix` ? error occurred in or before standard.lib::stdhilb line 304: ` return(slimgb(i));` ? leaving standard.lib::stdhilb#I Singular output of type "none"No output from Singular""gap> gap> SingularInterface( "stdhilb", [ f1,f2,f3,f4 ], "poly"); ? `poly`(Id(1)) = `ideal` is not supported ? expected `poly` = `poly` ? expected `poly` = `matrix` ? error occurred in or before standard.lib::stdhilb line 304: ` return(slimgb(i));` ? leaving standard.lib::stdhilb0gap> SingularInterface( "stdhilb", [ f1,f2,f3,f4 ], "poly"); ? `poly`(Id(1)) = `ideal` is not supported ? expected `poly` = `poly` ? expected `poly` = `matrix` ? error occurred in or before standard.lib::stdhilb line 304: ` return(slimgb(i));` ? leaving standard.lib::stdhilb0gap> SingularInterface( "stdhilb", [ f1,f2,f3,f4 ], "matrix"); ? `poly`(Id(1)) = `ideal` is not supported ? expected `poly` = `poly` ? expected `poly` = `matrix` ? error occurred in or before standard.lib::stdhilb line 304: ` return(slimgb(i));` ? leaving standard.lib::stdhilb[ [ 0 ] ]gap> SingularInterface( "stdhilb", f1, "def");Error, no method found! For debugging hints type ?Recovery from NoMethodFoundError, no 1st choice method found for `Length' on 1 arguments called fromLength( arguments ) called from( ) called from read-eval loop at line 54 of *stdin*you can 'quit;' to quit to outer loop, oryou can 'return;' to continuebrk> quit;gap> stdhilb([f1,f2,f3,f4]);Error, Variable: 'stdhilb' must have a valuenot in any function at line 55 of *stdin*gap> stdhilb(I);Error, Variable: 'stdhilb' must have a valuenot in any function at line 56 of *stdin*gap> SingularInterface( "stdhilb", Matrix([[ f1, f2, f3, f4 ]]), "matrix");Error, no method found! For debugging hints type ?Recovery from NoMethodFoundError, no 1st choice method found for `Matrix' on 1 arguments called from( ) called from read-eval loop at line 59 of *stdin*you can 'quit;' to quit to outer loop, oryou can 'return;' to continuebrk> quit;gap> SingularInterface( "stdhilb", Matrix([ f1, f2, f3, f4 ]), "matrix");Error, no method found! For debugging hints type ?Recovery from NoMethodFoundError, no 1st choice method found for `Matrix' on 1 arguments called from( ) called from read-eval loop at line 59 of *stdin*you can 'quit;' to quit to outer loop, oryou can 'return;' to continue Regards, Martin > From: tesleft at hotmail.com > To: degraaf at science.unitn.it > Date: Thu, 25 Sep 2014 00:42:14 +0800 > CC: forum at gap-system.org > Subject: Re: [GAP Forum] how to use the hilbert function after loadpackage singular > > Hi Willem, > i find it. I will try them tomorrow since i am not sure whether parameter is "poly". > > SingularLibrary( "standard.lib" );I:= Ideal( R, [f1,f2,f3,f4] );;SingularInterface( "stdhilb", [ f1,f2,f3,f4 ], "def");SingularInterface( "stdhilb", [ f1,f2,f3,f4 ], "poly"); > Regards, > Martin > > Date: Wed, 24 Sep 2014 18:34:34 +0200 > Subject: Re: [GAP Forum] how to use the hilbert function after loadpackage singular > From: degraaf at science.unitn.it > To: tesleft at hotmail.com > CC: forum at gap-system.org > > Dear Martin, Forum, > > > The "singular" package provides direct access to only few functions of Singular. > The main function is GroebnerBasis, for computing Groebner bases. > One can try using other functions by using SingularInterface of the singular package. > The manual of the singular package explains how to use it. > > Best wishes, > > Willem de Graaf > > > > On Wed, Sep 24, 2014 at 2:01 PM, Lee Martin CCNP wrote: > Hi > > http://www.gap-system.org/Manuals/pkg/singular/doc/chap1.html#X795A815178AA90C7 > > in manual of singular interface in gap system > > i can not find the function name for hilbert function > > it seems can use function with singular package, what is the function name of hilbert function in gap system? and how to use to use it? > > Regards, > > Martin > > > > > Subject: Re: [GAP Forum] how to use the hilbert function after loadpackage singular > > > From: alexk at mcs.st-andrews.ac.uk > > > Date: Wed, 24 Sep 2014 11:13:32 +0100 > > > CC: forum at gap-system.org > > > To: tesleft at hotmail.com > > > > > > Hi Martin, > > > > > > It's always useful to include the error messages in such reports. > > > What is the error message that is displayed? What is 'stdhilb' - > > > there is no such function in GAP and packages redistributed with it. > > > > > > HTH > > > Alexander > > > > > > > > > On 24 Sep 2014, at 11:06, Lee Martin CCNP wrote: > > > > > > > Hi > > > > > > > > LoadPackage("singular");onelist := Tuples([0,1,0,1,0,1],3);onelist2 := [];Append( onelist2, onelist );Append( onelist2, onelist );Append( onelist2, onelist );matrixlist := Tuples(onelist2,3); > > > > > > > > ring r = 0,(x,y,z),lp;ideal i = y3+x2,x2y+x2z2,x3-z9,z4-y2-xz;ideal j = stdhilb(i); j; > > > > R1:= PolynomialRing( Rationals, ["x","y","z"] : new );;x:=IndeterminatesOfPolynomialRing(R1)[1];y:=IndeterminatesOfPolynomialRing(R1)[2];z:=IndeterminatesOfPolynomialRing(R1)[3];f1:=y^3+x^2;f2:=x^2*y+x^2*z^2;f3:=x^3-z^9;f4:=z^4-y^2-xz;stdhilb([f1,f2,f3,f4]); <- got error at here > > > > Regards, > > > > Martin > > > > _______________________________________________ > > > > Forum mailing list > > > > Forum at mail.gap-system.org > > > > http://mail.gap-system.org/mailman/listinfo/forum > > > > > > > _______________________________________________ > > Forum mailing list > > Forum at mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From tesleft at hotmail.com Thu Sep 25 08:27:54 2014 From: tesleft at hotmail.com (Lee Martin CCNP) Date: Thu, 25 Sep 2014 15:27:54 +0800 Subject: [GAP Forum] which function of dictionary can use polynomial or function as key In-Reply-To: <8661B544-6612-4B9A-905A-A0E811375014@math.colostate.edu> References: , <8661B544-6612-4B9A-905A-A0E811375014@math.colostate.edu> Message-ID: Hi Alexander, How to edit the value of dictionary?How to append a function to a list which is a value of dictionary? Regards, Martin > Subject: Re: [GAP Forum] which function of dictionary can use polynomial or function as key > From: hulpke at math.colostate.edu > Date: Wed, 24 Sep 2014 09:27:04 -0600 > CC: forum at gap-system.org > To: tesleft at hotmail.com > > Dear Forum, > > On Sep 24, 2014, at 9/24/14 3:21, Lee Martin CCNP wrote: > > > would like to use rational function as key in dictionary like table function in maple > > which function is a dictionary can use function as key and value as list to store ideals. > > Lookup dictionaries currently work with rational functions, e.g: > > gap> R:=PolynomialRing(Rationals,["x","y","z"]);AssignGeneratorVariables(R); > Rationals[x,y,z] > #I Assigned the global variables [ x, y, z ] > > gap> d:=NewDictionary(x,true); > > gap> AddDictionary(d,x,1); > gap> AddDictionary(d,y,2); > gap> LookupDictionary(d,x); > 1 > gap> LookupDictionary(d,z); > fail > gap> AddDictionary(d,x/y,2); > gap> LookupDictionary(d,z); > fail > gap> LookupDictionary(d,x/y); > 2 > > Instead of numbers you should be able to store arbitrary associated information. However internally lists will be made immutable, so if your ideal list is expected to grow you would need to keep a separate (mutable) list of the ideal lists, storing only an index in the dictionary. > > I note that > > gap> RepresentationsOfObject(d); > [ "IsComponentObjectRep", "IsDictionaryDefaultRep", "IsListDictionary", > "IsListLookupDictionary", "IsSortDictionary", "IsSortLookupDictionary" ] > > this currently uses sorted lists internally and not yet hashing. To enable hashing, one would have to add a method for SparseHashKey for rational functions, which currently is not on the list of features. > > Best, > > Alexander Hulpke > > > > Regards, > > Martin > > _______________________________________________ > > Forum mailing list > > Forum at mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > From tesleft at hotmail.com Thu Sep 25 08:39:38 2014 From: tesleft at hotmail.com (Lee Martin CCNP) Date: Thu, 25 Sep 2014 15:39:38 +0800 Subject: [GAP Forum] how many memory needed to run a full combination of matrix with element 0 and 1 In-Reply-To: References: , , <662F1054-CD45-451D-89F4-25B3EF718F3A@mcs.st-andrews.ac.uk>, , , , , , , , , <5EB38C0C-4E3D-4D33-A740-681208D4DCCA@mcs.st-andrews.ac.uk>, Message-ID: Hi Alexander, after find an machine which seems installed with configure in the past, then i re compile it, got error after installed m4 sudo ./configure ABI=64sudo make config.status: creating Makefileconfig.status: creating extern/Makefileconfig.status: creating config.h( cd bin/x86_64-unknown-linux-gnu-gcc-default64/extern ; make TARGET='x86_64-unknown-linux-gnu' BASECC='gcc' ABI='64' ABI_CFLAGS='-m64' CC='gcc' GMP_VER='5.0.5' MAKE_GMP='gmp' CONFIGNAME='default64' )make[1]: Entering directory `/usr/local/lib/gap4r5/bin/x86_64-unknown-linux-gnu-gcc-default64/extern' Building GMP. Logging to bin/x86_64-unknown-linux-gnu-gcc-default64/extern/gmp-5.0.5/build_log. Please wait... Installing GMP in bin/x86_64-unknown-linux-gnu-gcc-default64/extern/gmp-5.0.5/. Logging to bin/x86_64-unknown-linux-gnu-gcc-default64/extern/gmp-5.0.5/build_log. Please wait... make[1]: *** [gmp] Error 2make[1]: Leaving directory `/usr/local/lib/gap4r5/bin/x86_64-unknown-linux-gnu-gcc-default64/extern'make: *** [extern] Error 2mmartin at ubuntu:/usr/local/lib/gap4r5$ Regards, Martin > From: tesleft at hotmail.com > To: alexk at mcs.st-andrews.ac.uk > Date: Thu, 25 Sep 2014 15:20:57 +0800 > CC: forum at gap-system.org > Subject: Re: [GAP Forum] how many memory needed to run a full combination of matrix with element 0 and 1 > > Hi Alexander, > out of memory, how to install 64 bit version of gap system > i remembered i installed rsync binary installer in the past. when i search download, i can not find 64 bit. > > LoadPackage("singular");onelist := Tuples([0,1,0,1,0,1],3);onelist2 := [];Append( onelist2, onelist );Append( onelist2, onelist );Append( onelist2, onelist );matrixlist := Tuples(onelist2,3);matrixlist2 := [];Append( matrixlist2, matrixlist );Append( matrixlist2, matrixlist );Append( matrixlist2, matrixlist );ideallist := Tuples(matrixlist2,3);gap> ideallist := Tuples(matrixlist2,3);Error, exceeded the permitted memory (`-o' command line option) in tup[i] := l; called from TuplesK( set, k, [ ], 1 ) called from( ) called from read-eval loop at line 67 of *stdin*you can 'return;' > Regards, > Martin > > > > > Subject: Re: [GAP Forum] how many memory needed to run a full combination of matrix with element 0 and 1 > > From: alexk at mcs.st-andrews.ac.uk > > Date: Wed, 24 Sep 2014 22:08:32 +0100 > > CC: forum at gap-system.org > > To: tesleft at hotmail.com > > > > P.S. Please also note that these two commands return the same output: > > > > gap> Tuples([0,1],4); > > [ [ 0, 0, 0, 0 ], [ 0, 0, 0, 1 ], [ 0, 0, 1, 0 ], [ 0, 0, 1, 1 ], > > [ 0, 1, 0, 0 ], [ 0, 1, 0, 1 ], [ 0, 1, 1, 0 ], [ 0, 1, 1, 1 ], > > [ 1, 0, 0, 0 ], [ 1, 0, 0, 1 ], [ 1, 0, 1, 0 ], [ 1, 0, 1, 1 ], > > [ 1, 1, 0, 0 ], [ 1, 1, 0, 1 ], [ 1, 1, 1, 0 ], [ 1, 1, 1, 1 ] ] > > gap> Tuples([0,1,0,1,0,1,0,1],4); > > [ [ 0, 0, 0, 0 ], [ 0, 0, 0, 1 ], [ 0, 0, 1, 0 ], [ 0, 0, 1, 1 ], > > [ 0, 1, 0, 0 ], [ 0, 1, 0, 1 ], [ 0, 1, 1, 0 ], [ 0, 1, 1, 1 ], > > [ 1, 0, 0, 0 ], [ 1, 0, 0, 1 ], [ 1, 0, 1, 0 ], [ 1, 0, 1, 1 ], > > [ 1, 1, 0, 0 ], [ 1, 1, 0, 1 ], [ 1, 1, 1, 0 ], [ 1, 1, 1, 1 ] ] > > > > so you either may specify a set of values, or you may have in mind something different. > > > > BW, > > Alexander > > > > > > > > > > On 24 Sep 2014, at 18:06, Lee Martin CCNP wrote: > > > > > Hi > > > how many memory needed to run the code below? > > > do gap system have memory limit when run the code below ? > > > since got out of memory in maple, i try full combination in gap system in 32bit virtual machine > > > my notebook has 8GB ram and assign 2 GB to 4 GB ram for virtual machine > > > then i know that 64bit do not have memory limit, then i plan and wait to buy a intel 61 cores for more than 128GB ram in future if i meet memory limit tomorrow. > > > it is just full combination of ideals, i can not imagine how much memory need for full combination of modules and whether can run with 61 cores > > > onelist := Tuples([0,1,0,1,0,1],3);onelist2 := [];Append( onelist2, onelist );Append( onelist2, onelist );Append( onelist2, onelist );matrixlist := Tuples(onelist2,3); > > > ideallist2 := [];Append( ideallist2, matrixlist );Append( ideallist2, matrixlist );Append( ideallist2, matrixlist );ideallist := Tuples(ideallist2,3); > > > ___________________________________________actually i expect to try onelist := Tuples([0,1,0,1,0,1,0,1],4);onelist := Tuples([0,1,0,1,0,1,0,1,0,1],5); > > > onelist := Tuples([0,1,2,0,1,2,0,1,2],3);onelist := Tuples([0,1,2,0,1,2,0,1,2,0,1,2],4);onelist := Tuples([0,1,2,0,1,2,0,1,2,0,1,2,0,1,2],5); > > > for above code too > > > Regards, > > > Martin > > > _______________________________________________ > > > Forum mailing list > > > Forum at mail.gap-system.org > > > http://mail.gap-system.org/mailman/listinfo/forum > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From tesleft at hotmail.com Thu Sep 25 09:39:03 2014 From: tesleft at hotmail.com (Lee Martin CCNP) Date: Thu, 25 Sep 2014 16:39:03 +0800 Subject: [GAP Forum] how many memory needed to run a full combination of matrix with element 0 and 1 In-Reply-To: References: , ,,<662F1054-CD45-451D-89F4-25B3EF718F3A@mcs.st-andrews.ac.uk>, ,,, , , , , , , , , , , <5EB38C0C-4E3D-4D33-A740-681208D4DCCA@mcs.st-andrews.ac.uk>, , , Message-ID: Hi Alexander, i download the latest version of gap and succeed to compile and install with 64 bit versionsudo ./configure ABI=64it is not running virtual machine, it is run as dual boot with window. it has its real partition.however, it still return error, exceed permitted memory. Regards, Martin > From: tesleft at hotmail.com > To: alexk at mcs.st-andrews.ac.uk > Date: Thu, 25 Sep 2014 15:39:38 +0800 > CC: forum at gap-system.org > Subject: Re: [GAP Forum] how many memory needed to run a full combination of matrix with element 0 and 1 > > Hi Alexander, > after find an machine which seems installed with configure in the past, > then i re compile it, got error after installed m4 sudo ./configure ABI=64sudo make > config.status: creating Makefileconfig.status: creating extern/Makefileconfig.status: creating config.h( cd bin/x86_64-unknown-linux-gnu-gcc-default64/extern ; make TARGET='x86_64-unknown-linux-gnu' BASECC='gcc' ABI='64' ABI_CFLAGS='-m64' CC='gcc' GMP_VER='5.0.5' MAKE_GMP='gmp' CONFIGNAME='default64' )make[1]: Entering directory `/usr/local/lib/gap4r5/bin/x86_64-unknown-linux-gnu-gcc-default64/extern' > Building GMP. Logging to bin/x86_64-unknown-linux-gnu-gcc-default64/extern/gmp-5.0.5/build_log. Please wait... > > Installing GMP in bin/x86_64-unknown-linux-gnu-gcc-default64/extern/gmp-5.0.5/. Logging to bin/x86_64-unknown-linux-gnu-gcc-default64/extern/gmp-5.0.5/build_log. Please wait... > make[1]: *** [gmp] Error 2make[1]: Leaving directory `/usr/local/lib/gap4r5/bin/x86_64-unknown-linux-gnu-gcc-default64/extern'make: *** [extern] Error 2mmartin at ubuntu:/usr/local/lib/gap4r5$ > Regards, > Martin > > From: tesleft at hotmail.com > > To: alexk at mcs.st-andrews.ac.uk > > Date: Thu, 25 Sep 2014 15:20:57 +0800 > > CC: forum at gap-system.org > > Subject: Re: [GAP Forum] how many memory needed to run a full combination of matrix with element 0 and 1 > > > > Hi Alexander, > > out of memory, how to install 64 bit version of gap system > > i remembered i installed rsync binary installer in the past. when i search download, i can not find 64 bit. > > > > LoadPackage("singular");onelist := Tuples([0,1,0,1,0,1],3);onelist2 := [];Append( onelist2, onelist );Append( onelist2, onelist );Append( onelist2, onelist );matrixlist := Tuples(onelist2,3);matrixlist2 := [];Append( matrixlist2, matrixlist );Append( matrixlist2, matrixlist );Append( matrixlist2, matrixlist );ideallist := Tuples(matrixlist2,3);gap> ideallist := Tuples(matrixlist2,3);Error, exceeded the permitted memory (`-o' command line option) in tup[i] := l; called from TuplesK( set, k, [ ], 1 ) called from( ) called from read-eval loop at line 67 of *stdin*you can 'return;' > > Regards, > > Martin > > > > > > > > > Subject: Re: [GAP Forum] how many memory needed to run a full combination of matrix with element 0 and 1 > > > From: alexk at mcs.st-andrews.ac.uk > > > Date: Wed, 24 Sep 2014 22:08:32 +0100 > > > CC: forum at gap-system.org > > > To: tesleft at hotmail.com > > > > > > P.S. Please also note that these two commands return the same output: > > > > > > gap> Tuples([0,1],4); > > > [ [ 0, 0, 0, 0 ], [ 0, 0, 0, 1 ], [ 0, 0, 1, 0 ], [ 0, 0, 1, 1 ], > > > [ 0, 1, 0, 0 ], [ 0, 1, 0, 1 ], [ 0, 1, 1, 0 ], [ 0, 1, 1, 1 ], > > > [ 1, 0, 0, 0 ], [ 1, 0, 0, 1 ], [ 1, 0, 1, 0 ], [ 1, 0, 1, 1 ], > > > [ 1, 1, 0, 0 ], [ 1, 1, 0, 1 ], [ 1, 1, 1, 0 ], [ 1, 1, 1, 1 ] ] > > > gap> Tuples([0,1,0,1,0,1,0,1],4); > > > [ [ 0, 0, 0, 0 ], [ 0, 0, 0, 1 ], [ 0, 0, 1, 0 ], [ 0, 0, 1, 1 ], > > > [ 0, 1, 0, 0 ], [ 0, 1, 0, 1 ], [ 0, 1, 1, 0 ], [ 0, 1, 1, 1 ], > > > [ 1, 0, 0, 0 ], [ 1, 0, 0, 1 ], [ 1, 0, 1, 0 ], [ 1, 0, 1, 1 ], > > > [ 1, 1, 0, 0 ], [ 1, 1, 0, 1 ], [ 1, 1, 1, 0 ], [ 1, 1, 1, 1 ] ] > > > > > > so you either may specify a set of values, or you may have in mind something different. > > > > > > BW, > > > Alexander > > > > > > > > > > > > > > > On 24 Sep 2014, at 18:06, Lee Martin CCNP wrote: > > > > > > > Hi > > > > how many memory needed to run the code below? > > > > do gap system have memory limit when run the code below ? > > > > since got out of memory in maple, i try full combination in gap system in 32bit virtual machine > > > > my notebook has 8GB ram and assign 2 GB to 4 GB ram for virtual machine > > > > then i know that 64bit do not have memory limit, then i plan and wait to buy a intel 61 cores for more than 128GB ram in future if i meet memory limit tomorrow. > > > > it is just full combination of ideals, i can not imagine how much memory need for full combination of modules and whether can run with 61 cores > > > > onelist := Tuples([0,1,0,1,0,1],3);onelist2 := [];Append( onelist2, onelist );Append( onelist2, onelist );Append( onelist2, onelist );matrixlist := Tuples(onelist2,3); > > > > ideallist2 := [];Append( ideallist2, matrixlist );Append( ideallist2, matrixlist );Append( ideallist2, matrixlist );ideallist := Tuples(ideallist2,3); > > > > ___________________________________________actually i expect to try onelist := Tuples([0,1,0,1,0,1,0,1],4);onelist := Tuples([0,1,0,1,0,1,0,1,0,1],5); > > > > onelist := Tuples([0,1,2,0,1,2,0,1,2],3);onelist := Tuples([0,1,2,0,1,2,0,1,2,0,1,2],4);onelist := Tuples([0,1,2,0,1,2,0,1,2,0,1,2,0,1,2],5); > > > > for above code too > > > > Regards, > > > > Martin > > > > _______________________________________________ > > > > Forum mailing list > > > > Forum at mail.gap-system.org > > > > http://mail.gap-system.org/mailman/listinfo/forum > > > > > > > _______________________________________________ > > Forum mailing list > > Forum at mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From steve.linton at st-andrews.ac.uk Thu Sep 25 09:54:36 2014 From: steve.linton at st-andrews.ac.uk (Stephen Linton) Date: Thu, 25 Sep 2014 09:54:36 +0100 Subject: [GAP Forum] how many memory needed to run a full combination of matrix with element 0 and 1 In-Reply-To: References: , , , <662F1054-CD45-451D-89F4-25B3EF718F3A@mcs.st-andrews.ac.uk>, , , , , , , , , , , , , , <5EB38C0C-4E3D-4D33-A740-681208D4DCCA@mcs.st-andrews.ac.uk>, , , Message-ID: Can you explain precisely what it is you are trying to calculate? It may be that the size and therefore memory requirement of the answer can be easily estimated. Steve On 25 Sep 2014, at 09:39, Lee Martin CCNP wrote: > Hi Alexander, > i download the latest version of gap and succeed to compile and install with 64 bit versionsudo ./configure ABI=64it is not running virtual machine, it is run as dual boot with window. it has its real partition.however, it still return error, exceed permitted memory. > Regards, > Martin From tesleft at hotmail.com Thu Sep 25 10:22:43 2014 From: tesleft at hotmail.com (Lee Martin CCNP) Date: Thu, 25 Sep 2014 17:22:43 +0800 Subject: [GAP Forum] how many memory needed to run a full combination of matrix with element 0 and 1 In-Reply-To: References: , ,,<662F1054-CD45-451D-89F4-25B3EF718F3A@mcs.st-andrews.ac.uk>, ,,, , , , , , , , , , , <5EB38C0C-4E3D-4D33-A740-681208D4DCCA@mcs.st-andrews.ac.uk>, , , , Message-ID: Hi expect to classifying all combination of ideals with hilbert function since i discover some ideals have common hilbert function which means ideal 1polynomial 1polynomial 2polynomial 3 ideal 2polynomial 1polynomial 2polynomial 4 ideal 3polynomial 1polynomial 3polynomial 4 ideal 4polynomial 2polynomial 3polynomial 4 ideal 1, ideal 2, ideal 3, ideal 4 have common hilbert function which means that these polynomials come from one common axiom then i have a conjecture to classify all combination with hilbert function as key in dictionary and see whether have 2 different hibert function have same polynomial, if no, it means it really can classify and would like to see whether hilbert function only classify for only one form polynomial/(1-z)^n and then each polynomials can convert back into matrix group and further convert to an axiom. Regards, Martin > Subject: Re: [GAP Forum] how many memory needed to run a full combination of matrix with element 0 and 1 > From: steve.linton at st-andrews.ac.uk > Date: Thu, 25 Sep 2014 09:54:36 +0100 > CC: alexk at mcs.st-andrews.ac.uk; forum at gap-system.org > To: tesleft at hotmail.com > > Can you explain precisely what it is you are trying to calculate? It may be that the size and therefore memory requirement of the answer can be easily estimated. > > Steve > > On 25 Sep 2014, at 09:39, Lee Martin CCNP wrote: > > > Hi Alexander, > > i download the latest version of gap and succeed to compile and install with 64 bit versionsudo ./configure ABI=64it is not running virtual machine, it is run as dual boot with window. it has its real partition.however, it still return error, exceed permitted memory. > > Regards, > > Martin > From tesleft at hotmail.com Thu Sep 25 15:45:17 2014 From: tesleft at hotmail.com (Lee Martin CCNP) Date: Thu, 25 Sep 2014 22:45:17 +0800 Subject: [GAP Forum] how many memory needed to run a full combination of matrix with element 0 and 1 In-Reply-To: References: , , , , <662F1054-CD45-451D-89F4-25B3EF718F3A@mcs.st-andrews.ac.uk>, , , , , , , , , , ,,, ,,, , ,,<5EB38C0C-4E3D-4D33-A740-681208D4DCCA@mcs.st-andrews.ac.uk>, , , , , , , , , Message-ID: Hi I will try to get full combination of index of the list of matrix instead of combination of list of matrix directly tomorrow hope use to use less memory. Regards, Martin > From: tesleft at hotmail.com > To: steve.linton at st-andrews.ac.uk > Date: Thu, 25 Sep 2014 17:22:43 +0800 > CC: forum at gap-system.org > Subject: Re: [GAP Forum] how many memory needed to run a full combination of matrix with element 0 and 1 > > Hi > expect to classifying all combination of ideals with hilbert function > since i discover > some ideals have common hilbert function which means > ideal 1polynomial 1polynomial 2polynomial 3 > ideal 2polynomial 1polynomial 2polynomial 4 > ideal 3polynomial 1polynomial 3polynomial 4 > ideal 4polynomial 2polynomial 3polynomial 4 > ideal 1, ideal 2, ideal 3, ideal 4 have common hilbert function which means that these polynomials come from one common axiom > then i have a conjecture to classify all combination with hilbert function as key in dictionary > and see whether have 2 different hibert function have same polynomial, if no, it means it really can classify > and would like to see whether hilbert function only classify for only one form polynomial/(1-z)^n > and then each polynomials can convert back into matrix group and further convert to an axiom. > Regards, > Martin > > > Subject: Re: [GAP Forum] how many memory needed to run a full combination of matrix with element 0 and 1 > > From: steve.linton at st-andrews.ac.uk > > Date: Thu, 25 Sep 2014 09:54:36 +0100 > > CC: alexk at mcs.st-andrews.ac.uk; forum at gap-system.org > > To: tesleft at hotmail.com > > > > Can you explain precisely what it is you are trying to calculate? It may be that the size and therefore memory requirement of the answer can be easily estimated. > > > > Steve > > > > On 25 Sep 2014, at 09:39, Lee Martin CCNP wrote: > > > > > Hi Alexander, > > > i download the latest version of gap and succeed to compile and install with 64 bit versionsudo ./configure ABI=64it is not running virtual machine, it is run as dual boot with window. it has its real partition.however, it still return error, exceed permitted memory. > > > Regards, > > > Martin > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From hulpke at math.colostate.edu Thu Sep 25 15:52:48 2014 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu, 25 Sep 2014 08:52:48 -0600 Subject: [GAP Forum] which function of dictionary can use polynomial or function as key, how many memory In-Reply-To: References: , <8661B544-6612-4B9A-905A-A0E811375014@math.colostate.edu> Message-ID: <47708838-074A-410E-8412-ADF0CE041E57@math.colostate.edu> Dear Lee Martin, [I suggest that further discussion on these issues is not sent to the forum@, mail address, which copies to hundreds of subscribers, but to support@] > How to edit the value of dictionary? > How to append a function to a list which is a value of dictionary? The values of a dictionary are immutable and cannot be changed (cleanly), so this is not possible. Concerning the memory problems you reported, did you by any chance get the error message: exceeded the permitted memory (`-o' command line option) If so, you can find a description under http://mail.gap-system.org/pipermail/forum/2010/002986.html Regards, Alexander Hulpke > > Regards, > > Martin > > > Subject: Re: [GAP Forum] which function of dictionary can use polynomial or function as key > > From: hulpke at math.colostate.edu > > Date: Wed, 24 Sep 2014 09:27:04 -0600 > > CC: forum at gap-system.org > > To: tesleft at hotmail.com > > > > Dear Forum, > > > > On Sep 24, 2014, at 9/24/14 3:21, Lee Martin CCNP wrote: > > > > > would like to use rational function as key in dictionary like table function in maple > > > which function is a dictionary can use function as key and value as list to store ideals. > > > > Lookup dictionaries currently work with rational functions, e.g: > > > > gap> R:=PolynomialRing(Rationals,["x","y","z"]);AssignGeneratorVariables(R); > > Rationals[x,y,z] > > #I Assigned the global variables [ x, y, z ] > > > > gap> d:=NewDictionary(x,true); > > > > gap> AddDictionary(d,x,1); > > gap> AddDictionary(d,y,2); > > gap> LookupDictionary(d,x); > > 1 > > gap> LookupDictionary(d,z); > > fail > > gap> AddDictionary(d,x/y,2); > > gap> LookupDictionary(d,z); > > fail > > gap> LookupDictionary(d,x/y); > > 2 > > > > Instead of numbers you should be able to store arbitrary associated information. However internally lists will be made immutable, so if your ideal list is expected to grow you would need to keep a separate (mutable) list of the ideal lists, storing only an index in the dictionary. > > > > I note that > > > > gap> RepresentationsOfObject(d); > > [ "IsComponentObjectRep", "IsDictionaryDefaultRep", "IsListDictionary", > > "IsListLookupDictionary", "IsSortDictionary", "IsSortLookupDictionary" ] > > > > this currently uses sorted lists internally and not yet hashing. To enable hashing, one would have to add a method for SparseHashKey for rational functions, which currently is not on the list of features. > > > > Best, > > > > Alexander Hulpke > > > > > > > Regards, > > > Martin > > > _______________________________________________ > > > Forum mailing list > > > Forum at mail.gap-system.org > > > http://mail.gap-system.org/mailman/listinfo/forum > > From tesleft at hotmail.com Thu Sep 25 18:03:01 2014 From: tesleft at hotmail.com (Lee Martin CCNP) Date: Fri, 26 Sep 2014 01:03:01 +0800 Subject: [GAP Forum] which function of dictionary can use polynomial or function as key, how many memory In-Reply-To: <47708838-074A-410E-8412-ADF0CE041E57@math.colostate.edu> References: , <8661B544-6612-4B9A-905A-A0E811375014@math.colostate.edu> , <47708838-074A-410E-8412-ADF0CE041E57@math.colostate.edu> Message-ID: Hi 26 Sep 2014, +8:00, 14:00-15:00 i will try type return;to continue run the command.and i suddenly have an idea to do combination of index which means using a sequence of number [1..Len(matrixlist)]to calculate the full combination of ideal listi guess it may be possible to run successfully. Regards, Martin > Subject: Re: [GAP Forum] which function of dictionary can use polynomial or function as key, how many memory > From: hulpke at math.colostate.edu > Date: Thu, 25 Sep 2014 08:52:48 -0600 > CC: forum at gap-system.org > To: tesleft at hotmail.com > > Dear Lee Martin, > > [I suggest that further discussion on these issues is not sent to the forum@, mail address, which copies to hundreds of subscribers, but to support@] > > > How to edit the value of dictionary? > > How to append a function to a list which is a value of dictionary? > > The values of a dictionary are immutable and cannot be changed (cleanly), so this is not possible. > > Concerning the memory problems you reported, did you by any chance get the error message: > exceeded the permitted memory (`-o' command line option) > > If so, you can find a description under > > http://mail.gap-system.org/pipermail/forum/2010/002986.html > > Regards, > > Alexander Hulpke > > > > > > Regards, > > > > Martin > > > > > Subject: Re: [GAP Forum] which function of dictionary can use polynomial or function as key > > > From: hulpke at math.colostate.edu > > > Date: Wed, 24 Sep 2014 09:27:04 -0600 > > > CC: forum at gap-system.org > > > To: tesleft at hotmail.com > > > > > > Dear Forum, > > > > > > On Sep 24, 2014, at 9/24/14 3:21, Lee Martin CCNP wrote: > > > > > > > would like to use rational function as key in dictionary like table function in maple > > > > which function is a dictionary can use function as key and value as list to store ideals. > > > > > > Lookup dictionaries currently work with rational functions, e.g: > > > > > > gap> R:=PolynomialRing(Rationals,["x","y","z"]);AssignGeneratorVariables(R); > > > Rationals[x,y,z] > > > #I Assigned the global variables [ x, y, z ] > > > > > > gap> d:=NewDictionary(x,true); > > > > > > gap> AddDictionary(d,x,1); > > > gap> AddDictionary(d,y,2); > > > gap> LookupDictionary(d,x); > > > 1 > > > gap> LookupDictionary(d,z); > > > fail > > > gap> AddDictionary(d,x/y,2); > > > gap> LookupDictionary(d,z); > > > fail > > > gap> LookupDictionary(d,x/y); > > > 2 > > > > > > Instead of numbers you should be able to store arbitrary associated information. However internally lists will be made immutable, so if your ideal list is expected to grow you would need to keep a separate (mutable) list of the ideal lists, storing only an index in the dictionary. > > > > > > I note that > > > > > > gap> RepresentationsOfObject(d); > > > [ "IsComponentObjectRep", "IsDictionaryDefaultRep", "IsListDictionary", > > > "IsListLookupDictionary", "IsSortDictionary", "IsSortLookupDictionary" ] > > > > > > this currently uses sorted lists internally and not yet hashing. To enable hashing, one would have to add a method for SparseHashKey for rational functions, which currently is not on the list of features. > > > > > > Best, > > > > > > Alexander Hulpke > > > > > > > > > > Regards, > > > > Martin > > > > _______________________________________________ > > > > Forum mailing list > > > > Forum at mail.gap-system.org > > > > http://mail.gap-system.org/mailman/listinfo/forum > > > > From tesleft at hotmail.com Fri Sep 26 10:56:11 2014 From: tesleft at hotmail.com (Lee Martin CCNP) Date: Fri, 26 Sep 2014 17:56:11 +0800 Subject: [GAP Forum] can gap system use in aws.amazon free trial account In-Reply-To: References: , , <8661B544-6612-4B9A-905A-A0E811375014@math.colostate.edu>, , , <47708838-074A-410E-8412-ADF0CE041E57@math.colostate.edu>, Message-ID: Hi Alexander, i only have one 8GB computer which is a notebook, but it can not install ubuntu (dual boot with window)after download 64 bit ubuntu in virtual box and assign 5018GB ram and then compile gap 64 bit got error after only tuples number instead of tuples a list of matrix, then i type return; and wait for a long time, still not have response. i guess that i either buy a new computer or use aws.amazon can gap system install in aws.amazon after sign up free trial i haven't signed up yet since i do not know whether it auto deduct my money after free trial period is the linux in amazon that can be used to install gap system? Length of idealindexlist2 = 1536*3 onelist := Tuples([0,1,0,1,0,1],3);onelist2 := [];Append( onelist2, onelist );Append( onelist2, onelist );Append( onelist2, onelist );matrixlist := Tuples(onelist2,3);matrixlist2 := [];Append( matrixlist2, matrixlist );Append( matrixlist2, matrixlist );Append( matrixlist2, matrixlist );indexlist := [1..Length(matrixlist2)];Append( idealindexlist2, indexlist );Append( idealindexlist2, indexlist );Append( idealindexlist2, indexlist );idealindexlist := Tuples(idealindexlist2,3); gap> idealindexlist := Tuples(idealindexlist2,3);Error, exceeded the permitted memory (`-o' command line option) in tup := ShallowCopy( tup ); called from TuplesK( set, k - 1, tup, i + 1 ) called fromTuplesK( set, k - 1, tup, i + 1 ) called fromTuplesK( set, k - 1, tup, i + 1 ) called fromTuplesK( set, k, [ ], 1 ) called from( ) called from read-eval loop at line 42 of *stdin*you can 'return;' then i type return; after brk>become brk>return; Regards, Martin > From: tesleft at hotmail.com > To: hulpke at math.colostate.edu > Date: Fri, 26 Sep 2014 01:03:01 +0800 > CC: forum at gap-system.org > Subject: Re: [GAP Forum] which function of dictionary can use polynomial or function as key, how many memory > > Hi > 26 Sep 2014, +8:00, 14:00-15:00 > > i will try > type > return;to continue run the command.and i suddenly have an idea to do combination of index which means using a sequence of number [1..Len(matrixlist)]to calculate the full combination of ideal listi guess it may be possible to run successfully. > Regards, > Martin > > > Subject: Re: [GAP Forum] which function of dictionary can use polynomial or function as key, how many memory > > From: hulpke at math.colostate.edu > > Date: Thu, 25 Sep 2014 08:52:48 -0600 > > CC: forum at gap-system.org > > To: tesleft at hotmail.com > > > > Dear Lee Martin, > > > > [I suggest that further discussion on these issues is not sent to the forum@, mail address, which copies to hundreds of subscribers, but to support@] > > > > > How to edit the value of dictionary? > > > How to append a function to a list which is a value of dictionary? > > > > The values of a dictionary are immutable and cannot be changed (cleanly), so this is not possible. > > > > Concerning the memory problems you reported, did you by any chance get the error message: > > exceeded the permitted memory (`-o' command line option) > > > > If so, you can find a description under > > > > http://mail.gap-system.org/pipermail/forum/2010/002986.html > > > > Regards, > > > > Alexander Hulpke > > > > > > > > > > Regards, > > > > > > Martin > > > > > > > Subject: Re: [GAP Forum] which function of dictionary can use polynomial or function as key > > > > From: hulpke at math.colostate.edu > > > > Date: Wed, 24 Sep 2014 09:27:04 -0600 > > > > CC: forum at gap-system.org > > > > To: tesleft at hotmail.com > > > > > > > > Dear Forum, > > > > > > > > On Sep 24, 2014, at 9/24/14 3:21, Lee Martin CCNP wrote: > > > > > > > > > would like to use rational function as key in dictionary like table function in maple > > > > > which function is a dictionary can use function as key and value as list to store ideals. > > > > > > > > Lookup dictionaries currently work with rational functions, e.g: > > > > > > > > gap> R:=PolynomialRing(Rationals,["x","y","z"]);AssignGeneratorVariables(R); > > > > Rationals[x,y,z] > > > > #I Assigned the global variables [ x, y, z ] > > > > > > > > gap> d:=NewDictionary(x,true); > > > > > > > > gap> AddDictionary(d,x,1); > > > > gap> AddDictionary(d,y,2); > > > > gap> LookupDictionary(d,x); > > > > 1 > > > > gap> LookupDictionary(d,z); > > > > fail > > > > gap> AddDictionary(d,x/y,2); > > > > gap> LookupDictionary(d,z); > > > > fail > > > > gap> LookupDictionary(d,x/y); > > > > 2 > > > > > > > > Instead of numbers you should be able to store arbitrary associated information. However internally lists will be made immutable, so if your ideal list is expected to grow you would need to keep a separate (mutable) list of the ideal lists, storing only an index in the dictionary. > > > > > > > > I note that > > > > > > > > gap> RepresentationsOfObject(d); > > > > [ "IsComponentObjectRep", "IsDictionaryDefaultRep", "IsListDictionary", > > > > "IsListLookupDictionary", "IsSortDictionary", "IsSortLookupDictionary" ] > > > > > > > > this currently uses sorted lists internally and not yet hashing. To enable hashing, one would have to add a method for SparseHashKey for rational functions, which currently is not on the list of features. > > > > > > > > Best, > > > > > > > > Alexander Hulpke > > > > > > > > > > > > > Regards, > > > > > Martin > > > > > _______________________________________________ > > > > > Forum mailing list > > > > > Forum at mail.gap-system.org > > > > > http://mail.gap-system.org/mailman/listinfo/forum > > > > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From dmitrii.pasechnik at cs.ox.ac.uk Fri Sep 26 11:39:46 2014 From: dmitrii.pasechnik at cs.ox.ac.uk (Dima Pasechnik) Date: Fri, 26 Sep 2014 11:39:46 +0100 Subject: [GAP Forum] can gap system use in aws.amazon free trial account In-Reply-To: References: <8661B544-6612-4B9A-905A-A0E811375014@math.colostate.edu> <47708838-074A-410E-8412-ADF0CE041E57@math.colostate.edu> Message-ID: <20140926103946.GA16544@nash.cs.ox.ac.uk> On Fri, Sep 26, 2014 at 05:56:11PM +0800, Lee Martin CCNP wrote: > i only have one 8GB computer which is a notebook, but it can not install ubuntu (dual boot with window)after download 64 bit ubuntu in virtual box and assign 5018GB ram and then compile gap 64 bit > got error after only tuples number instead of tuples a list of matrix, > then i type return; and wait for a long time, still not have response. > i guess that i either buy a new computer or use aws.amazon > can gap system install in aws.amazon after sign up free trial > i haven't signed up yet since i do not know whether it auto deduct my money after free trial period > is the linux in amazon that can be used to install gap system? it should be possible (you'd get a rather slow VM with low RAM), but a much better option would be using https://cloud.sagemath.com/ (despite the name, it has basically a full terminal emulator under Linux, where you can compile and run things, just as you'd do on AWS) HTH, Dmitrii From tesleft at hotmail.com Fri Sep 26 11:44:29 2014 From: tesleft at hotmail.com (Lee Martin CCNP) Date: Fri, 26 Sep 2014 18:44:29 +0800 Subject: [GAP Forum] can gap system use in aws.amazon free trial account In-Reply-To: <20140926103946.GA16544@nash.cs.ox.ac.uk> References: , <8661B544-6612-4B9A-905A-A0E811375014@math.colostate.edu>, , <47708838-074A-410E-8412-ADF0CE041E57@math.colostate.edu>, , , <20140926103946.GA16544@nash.cs.ox.ac.uk> Message-ID: Hi Dima, after sign up accounthttps://cloud.sagemath.com after choose sage worksheet, it can be clicked run got error when run the gap code, how to use gap in sage ?4806265d-576d-40a7-b051-a7ec5bee7e34s?onelist := Tuples([0,1,0,1,0,1],3);onelist2 := [];Append( onelist2, onelist );Append( onelist2, onelist );Append( onelist2, onelist );matrixlist := Tuples(onelist2,3);matrixlist2 := [];Append( matrixlist2, matrixlist );Append( matrixlist2, matrixlist );Append( matrixlist2, matrixlist );indexlist := [1..Length(matrixlist2)];Append( idealindexlist2, indexlist );Append( idealindexlist2, indexlist );Append( idealindexlist2, indexlist );idealindexlist := Tuples(idealindexlist2,3);?522470bb-571a-42a2-8dc1-30fd9cbc8bab?{"stderr":"Error in lines 1-1\nTraceback (most recent call last):\n File \"/projects/a9ac2134-d2dd-4f96-82d2-ac3dec2e6811/.sagemathcloud/sage_server.py\", line 828, in execute\n exec compile(block+'\\n', '', 'single') in namespace, locals\n File \"\", line 1\n onelist := Tuples([Integer(0),Integer(1),Integer(0),Integer(1),Integer(0),Integer(1)],Integer(3));\n ^\nSyntaxError: invalid syntax\n"}??a5363944-97cc-450c-83c9-190a122f8943? Regards, Martin > Date: Fri, 26 Sep 2014 11:39:46 +0100 > From: dmitrii.pasechnik at cs.ox.ac.uk > To: tesleft at hotmail.com > CC: hulpke at math.colostate.edu; forum at gap-system.org > Subject: Re: [GAP Forum] can gap system use in aws.amazon free trial account > > On Fri, Sep 26, 2014 at 05:56:11PM +0800, Lee Martin CCNP wrote: > > i only have one 8GB computer which is a notebook, but it can not install ubuntu (dual boot with window)after download 64 bit ubuntu in virtual box and assign 5018GB ram and then compile gap 64 bit > > got error after only tuples number instead of tuples a list of matrix, > > then i type return; and wait for a long time, still not have response. > > i guess that i either buy a new computer or use aws.amazon > > can gap system install in aws.amazon after sign up free trial > > i haven't signed up yet since i do not know whether it auto deduct my money after free trial period > > is the linux in amazon that can be used to install gap system? > it should be possible (you'd get a rather slow VM with low RAM), > but a much better option would be using > https://cloud.sagemath.com/ > > (despite the name, it has basically a full terminal emulator under Linux, where > you can compile and run things, just as you'd do on AWS) > > HTH, > Dmitrii From dmitrii.pasechnik at cs.ox.ac.uk Fri Sep 26 12:06:48 2014 From: dmitrii.pasechnik at cs.ox.ac.uk (Dima Pasechnik) Date: Fri, 26 Sep 2014 12:06:48 +0100 Subject: [GAP Forum] can gap system use in aws.amazon free trial account In-Reply-To: References: <8661B544-6612-4B9A-905A-A0E811375014@math.colostate.edu> <47708838-074A-410E-8412-ADF0CE041E57@math.colostate.edu> <20140926103946.GA16544@nash.cs.ox.ac.uk> Message-ID: <20140926110648.GB16544@nash.cs.ox.ac.uk> On Fri, Sep 26, 2014 at 06:44:29PM +0800, Lee Martin CCNP wrote: > Hi Dima, > after sign up accounthttps://cloud.sagemath.com > after choose sage worksheet, choose "terminal", not a "worksheet". Then typing gap at the terminal prompt starts a GAP session: ~$ gap ????????? GAP, Version 4.7.5 of 24-May-2014 (free software, GPL) ? GAP ? http://www.gap-system.org ????????? Architecture: x86_64-unknown-linux-gnu-gcc-default64 Libs used: gmp, readline Loading the library and packages ... Components: trans 1.0, prim 2.1, small* 1.0, id* 1.0 Packages: Alnuth 3.0.0, AtlasRep 1.5.0, AutPGrp 1.6, CTblLib 1.2.2, FactInt 1.5.3, GAPDoc 1.5.1, LAGUNA 3.6.4, Polycyclic 2.11, TomLib 1.2.4 Try '?help' for help. See also '?copyright' and '?authors' gap> > it can be clicked run got error when run the gap code, how to use gap in sage HTH, Dmitrii From tesleft at hotmail.com Fri Sep 26 12:26:28 2014 From: tesleft at hotmail.com (Lee Martin CCNP) Date: Fri, 26 Sep 2014 19:26:28 +0800 Subject: [GAP Forum] can gap system use in aws.amazon free trial account In-Reply-To: <20140926110648.GB16544@nash.cs.ox.ac.uk> References: , <8661B544-6612-4B9A-905A-A0E811375014@math.colostate.edu>, , <47708838-074A-410E-8412-ADF0CE041E57@math.colostate.edu>, , , <20140926103946.GA16544@nash.cs.ox.ac.uk>, , <20140926110648.GB16544@nash.cs.ox.ac.uk> Message-ID: Hi Dima, How to install Singular for gap system to use in the terminal of sage? gap> LoadPackage("singular");failgap> exit> ;Error, Variable: 'exit' must have a valuenot in any function at line 3 of *stdin*gap> quit;~$ ls2014-09-26-184002.sagews 2014-09-26-191814.term~$ wget http://www.mathamatik.uni-kl.de/%7emschulze/repo/RPM-GPG-KEY-Singlar--2014-09-26 11:23:46-- http://www.mathamatik.uni-kl.de/%7emschulze/repo/RPM-GPG-KEY-SinglarResolving www.mathamatik.uni-kl.de (www.mathamatik.uni-kl.de)... failed: Name or service not known.wget: unable to resolve host address ?www.mathamatik.uni-kl.de?~$ wget http://www.mathematik.uni-kl.de/%7emschulze/repo/RPM-GPG-KEY-Singlar--2014-09-26 11:24:02-- http://www.mathematik.uni-kl.de/%7emschulze/repo/RPM-GPG-KEY-SinglarResolving www.mathematik.uni-kl.de (www.mathematik.uni-kl.de)... 131.246.164.55Connecting to www.mathematik.uni-kl.de (www.mathematik.uni-kl.de)|131.246.164.55|:80... connected.HTTP request sent, awaiting response... 404 Not Found2014-09-26 11:24:05 ERROR 404: Not Found. ~$ wget http://www.mathematik.uni-kl.de/%7emschulze/repo/RPM-GPG-KEY-Singlar Regards, Martin > Date: Fri, 26 Sep 2014 12:06:48 +0100 > From: dmitrii.pasechnik at cs.ox.ac.uk > To: tesleft at hotmail.com > CC: hulpke at math.colostate.edu; forum at gap-system.org > Subject: Re: [GAP Forum] can gap system use in aws.amazon free trial account > > On Fri, Sep 26, 2014 at 06:44:29PM +0800, Lee Martin CCNP wrote: > > Hi Dima, > > after sign up accounthttps://cloud.sagemath.com > > after choose sage worksheet, > > choose "terminal", not a "worksheet". > Then typing gap at the terminal prompt starts a GAP session: > > ~$ gap > ????????? GAP, Version 4.7.5 of 24-May-2014 (free software, GPL) > ? GAP ? http://www.gap-system.org > ????????? Architecture: x86_64-unknown-linux-gnu-gcc-default64 > Libs used: gmp, readline > Loading the library and packages ... > Components: trans 1.0, prim 2.1, small* 1.0, id* 1.0 > Packages: Alnuth 3.0.0, AtlasRep 1.5.0, AutPGrp 1.6, CTblLib 1.2.2, FactInt 1.5.3, GAPDoc 1.5.1, LAGUNA 3.6.4, Polycyclic 2.11, TomLib 1.2.4 > Try '?help' for help. See also '?copyright' and '?authors' > gap> > > > it can be clicked run got error when run the gap code, how to use gap in sage > > HTH, > Dmitrii > From tesleft at hotmail.com Fri Sep 26 12:29:00 2014 From: tesleft at hotmail.com (Lee Martin CCNP) Date: Fri, 26 Sep 2014 19:29:00 +0800 Subject: [GAP Forum] can gap system use in aws.amazon free trial account In-Reply-To: References: , , <8661B544-6612-4B9A-905A-A0E811375014@math.colostate.edu>, , , , <47708838-074A-410E-8412-ADF0CE041E57@math.colostate.edu>, , , , , , <20140926103946.GA16544@nash.cs.ox.ac.uk>, , , , <20140926110648.GB16544@nash.cs.ox.ac.uk>, Message-ID: Hi Dima, how to paste code to terminal for quick?now i have to type code Regards, Martin > From: tesleft at hotmail.com > To: dmitrii.pasechnik at cs.ox.ac.uk > Date: Fri, 26 Sep 2014 19:26:28 +0800 > CC: forum at gap-system.org > Subject: Re: [GAP Forum] can gap system use in aws.amazon free trial account > > > > > Hi Dima, > How to install Singular for gap system to use in the terminal of sage? > > gap> LoadPackage("singular");failgap> exit> ;Error, Variable: 'exit' must have a valuenot in any function at line 3 of *stdin*gap> quit;~$ ls2014-09-26-184002.sagews 2014-09-26-191814.term~$ wget http://www.mathamatik.uni-kl.de/%7emschulze/repo/RPM-GPG-KEY-Singlar--2014-09-26 11:23:46-- http://www.mathamatik.uni-kl.de/%7emschulze/repo/RPM-GPG-KEY-SinglarResolving www.mathamatik.uni-kl.de (www.mathamatik.uni-kl.de)... failed: Name or service not known.wget: unable to resolve host address ?www.mathamatik.uni-kl.de?~$ wget http://www.mathematik.uni-kl.de/%7emschulze/repo/RPM-GPG-KEY-Singlar--2014-09-26 11:24:02-- http://www.mathematik.uni-kl.de/%7emschulze/repo/RPM-GPG-KEY-SinglarResolving www.mathematik.uni-kl.de (www.mathematik.uni-kl.de)... 131.246.164.55Connecting to www.mathematik.uni-kl.de (www.mathematik.uni-kl.de)|131.246.164.55|:80... connected.HTTP request sent, awaiting response... 404 Not Found2014-09-26 11:24:05 ERROR 404: Not Found. ~$ wget http://www.mathematik.uni-kl.de/%7emschulze/repo/RPM-GPG-KEY-Singlar > Regards, > Martin > > > Date: Fri, 26 Sep 2014 12:06:48 +0100 > > From: dmitrii.pasechnik at cs.ox.ac.uk > > To: tesleft at hotmail.com > > CC: hulpke at math.colostate.edu; forum at gap-system.org > > Subject: Re: [GAP Forum] can gap system use in aws.amazon free trial account > > > > On Fri, Sep 26, 2014 at 06:44:29PM +0800, Lee Martin CCNP wrote: > > > Hi Dima, > > > after sign up accounthttps://cloud.sagemath.com > > > after choose sage worksheet, > > > > choose "terminal", not a "worksheet". > > Then typing gap at the terminal prompt starts a GAP session: > > > > ~$ gap > > ????????? GAP, Version 4.7.5 of 24-May-2014 (free software, GPL) > > ? GAP ? http://www.gap-system.org > > ????????? Architecture: x86_64-unknown-linux-gnu-gcc-default64 > > Libs used: gmp, readline > > Loading the library and packages ... > > Components: trans 1.0, prim 2.1, small* 1.0, id* 1.0 > > Packages: Alnuth 3.0.0, AtlasRep 1.5.0, AutPGrp 1.6, CTblLib 1.2.2, FactInt 1.5.3, GAPDoc 1.5.1, LAGUNA 3.6.4, Polycyclic 2.11, TomLib 1.2.4 > > Try '?help' for help. See also '?copyright' and '?authors' > > gap> > > > > > it can be clicked run got error when run the gap code, how to use gap in sage > > > > HTH, > > Dmitrii > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From dmitrii.pasechnik at cs.ox.ac.uk Fri Sep 26 12:41:56 2014 From: dmitrii.pasechnik at cs.ox.ac.uk (Dima Pasechnik) Date: Fri, 26 Sep 2014 12:41:56 +0100 Subject: [GAP Forum] can gap system use in aws.amazon free trial account In-Reply-To: References: <8661B544-6612-4B9A-905A-A0E811375014@math.colostate.edu> <47708838-074A-410E-8412-ADF0CE041E57@math.colostate.edu> <20140926103946.GA16544@nash.cs.ox.ac.uk> <20140926110648.GB16544@nash.cs.ox.ac.uk> Message-ID: <20140926114156.GA17550@nash.cs.ox.ac.uk> On Fri, Sep 26, 2014 at 07:26:28PM +0800, Lee Martin CCNP wrote: > How to install Singular for gap system to use in the terminal of sage? Perhaps the easiest is to get the complete GAP source distribution from gap-system.org (say, by doing, at the terminal prompt, wget http://www.gap-system.org/pub/gap/gap47/tar.bz2/gap4r7p5_2014_05_24-20_02.tar.bz2) and compile it, as described in GAP docs on gap-system.org. It includes the package in question. HTH, Dmitrii From dmitrii.pasechnik at cs.ox.ac.uk Fri Sep 26 12:51:30 2014 From: dmitrii.pasechnik at cs.ox.ac.uk (Dima Pasechnik) Date: Fri, 26 Sep 2014 12:51:30 +0100 Subject: [GAP Forum] can gap system use in aws.amazon free trial account In-Reply-To: References: <8661B544-6612-4B9A-905A-A0E811375014@math.colostate.edu> <47708838-074A-410E-8412-ADF0CE041E57@math.colostate.edu> <20140926103946.GA16544@nash.cs.ox.ac.uk> <20140926110648.GB16544@nash.cs.ox.ac.uk> Message-ID: <20140926115130.GB17550@nash.cs.ox.ac.uk> On Fri, Sep 26, 2014 at 07:29:00PM +0800, Lee Martin CCNP wrote: > how to paste code to terminal for quick?now i have to type code Depends upon your browser, OS, etc. On Chrome under Linux I can just cut/paste with the mouse. (I'm not even sure it works on IE at all) But perhaps the best is to upload files into the project from your machine (click on New somewhere in the top left corner) and read them into the GAP session. (you also can create/edit files in the project using the built-in editor/file browser) HTH, Dmitrii From tesleft at hotmail.com Fri Sep 26 19:47:49 2014 From: tesleft at hotmail.com (Lee Martin CCNP) Date: Sat, 27 Sep 2014 02:47:49 +0800 Subject: [GAP Forum] how to get variables in symbolic expression In-Reply-To: <20140926114156.GA17550@nash.cs.ox.ac.uk> References: , <8661B544-6612-4B9A-905A-A0E811375014@math.colostate.edu>, , <47708838-074A-410E-8412-ADF0CE041E57@math.colostate.edu>, , , <20140926103946.GA16544@nash.cs.ox.ac.uk>, , <20140926110648.GB16544@nash.cs.ox.ac.uk>, , <20140926114156.GA17550@nash.cs.ox.ac.uk> Message-ID: Hi maple can use op(1, poly) how to do similar things in gap? [ [ y, z, x+z ] ] poly1 := 0;for j in Length(prepoly1[1]) do poly1 := poly1 + prepoly1[1][3] become y + z + x*z Regards, Martin From tesleft at hotmail.com Sun Sep 28 10:02:09 2014 From: tesleft at hotmail.com (Lee Martin CCNP) Date: Sun, 28 Sep 2014 17:02:09 +0800 Subject: [GAP Forum] how to convert symbolic expression into a list of terms In-Reply-To: References: , , <8661B544-6612-4B9A-905A-A0E811375014@math.colostate.edu>, , , , <47708838-074A-410E-8412-ADF0CE041E57@math.colostate.edu>, , , , , , <20140926103946.GA16544@nash.cs.ox.ac.uk>, , , , <20140926110648.GB16544@nash.cs.ox.ac.uk>, , , , <20140926114156.GA17550@nash.cs.ox.ac.uk>, Message-ID: Hi i finally change to use 3 for loop instead of using Tuples, allow duplicate but i have a final difficulty in get a list of terms in symbolic expression for i in prepoly1[1][3] do Print(i);od; do not know how to get a list of terms of expression such as x+z^2; how to convert to a list [x, z^2] for for loop to get each terms? mkdir maplecode./bin/gap.sh -o 16g GAPInfo.CommandLineOptions.o;"16g" onelist := Tuples([0,1,0,1,0,1],3);onelist2 := [];Append( onelist2, onelist );Append( onelist2, onelist );Append( onelist2, onelist );matrixlist := Tuples(onelist2,3);matrixlist2 := [];Append( matrixlist2, matrixlist );Append( matrixlist2, matrixlist );Append( matrixlist2, matrixlist );LoadPackage("singular");R1:= PolynomialRing( Rationals, ["x","y","z"] : new );;SetTermOrdering(R1,"lp");SingularSetBaseRing(R1);x:=IndeterminatesOfPolynomialRing(R1)[1];;y:=IndeterminatesOfPolynomialRing(R1)[2];;z:=IndeterminatesOfPolynomialRing(R1)[3];;prepoly1 := [[x,y,z]]*matrixlist2[idealindexlist[1][1]];prepoly2 := [[x,y,z]]*matrixlist2[idealindexlist[1][2]];prepoly3 := [[x,y,z]]*matrixlist2[idealindexlist[1][3]];prepoly1 := [[x,y,z]]*matrixlist2[100];poly1 := 0;for j in Length(prepoly1[1]) do poly1 := poly1 + prepoly1[1][3]; pp := rec(prepoly1[1][3]); for i in prepoly1[1][3] do Print(i);od; pp.string for j in [1..3] do AppendTo(Concatenation(Concatenation("./maplecode/gapexport",String(j)),String(j)), j);od; AppendTo("./gapexport", "T := table();\n");for j in [1..Length(matrixlist2)] do for k in [1..Length(matrixlist2)] do for i in [1..Length(matrixlist2)] do for j in [1..3] do for k in [1..3] do for i in [1..3] do prepoly1 := [[x,y,z]]*matrixlist2[idealindexlist[i][1]]; prepoly2 := [[x,y,z]]*matrixlist2[idealindexlist[i][2]]; prepoly3 := [[x,y,z]]*matrixlist2[idealindexlist[i][3]]; I:= Ideal( R1, [prepoly1, prepoly2, prepoly3] ); S:=SingularInterface( "stdhilb", [I], "ideal"); HF := GeneratorsOfIdeal(S); AppendTo(Concatenation("./maplecode/gapexport",String(j)), "if not assigned(T["); AppendTo(Concatenation("./maplecode/gapexport",String(j)), HF); AppendTo(Concatenation("./maplecode/gapexport",String(j)), "]) then"); AppendTo(Concatenation("./maplecode/gapexport",String(j)),"\n"); AppendTo(Concatenation("./maplecode/gapexport",String(j)), "T["); AppendTo(Concatenation("./maplecode/gapexport",String(j)), HF); AppendTo(Concatenation("./maplecode/gapexport",String(j)), "] := [op(T["); AppendTo(Concatenation("./maplecode/gapexport",String(j)), HF); AppendTo(Concatenation("./maplecode/gapexport",String(j)), "]),["); AppendTo(Concatenation("./maplecode/gapexport",String(j)), prepoly1); AppendTo(Concatenation("./maplecode/gapexport",String(j)), ","); AppendTo(Concatenation("./maplecode/gapexport",String(j)), prepoly2); AppendTo(Concatenation("./maplecode/gapexport",String(j)), ","); AppendTo(Concatenation("./maplecode/gapexport",String(j)), prepoly3); AppendTo(Concatenation("./maplecode/gapexport",String(j)), "]];\n"); AppendTo(Concatenation("./maplecode/gapexport",String(j)), "end if;\n"); Regards, Martin > From: tesleft at hotmail.com > To: forum at gap-system.org > Date: Sat, 27 Sep 2014 02:47:49 +0800 > Subject: [GAP Forum] how to get variables in symbolic expression > > Hi > maple can use op(1, poly) > how to do similar things in gap? > [ [ y, z, x+z ] ] > poly1 := 0;for j in Length(prepoly1[1]) do poly1 := poly1 + prepoly1[1][3] > become y + z + x*z > Regards, > Martin > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From tesleft at hotmail.com Sun Sep 28 11:14:02 2014 From: tesleft at hotmail.com (Lee Martin CCNP) Date: Sun, 28 Sep 2014 18:14:02 +0800 Subject: [GAP Forum] how to convert symbolic expression into a list of terms In-Reply-To: References: , ,,<8661B544-6612-4B9A-905A-A0E811375014@math.colostate.edu>, ,,, ,,<47708838-074A-410E-8412-ADF0CE041E57@math.colostate.edu>, ,,, ,,, ,,<20140926103946.GA16544@nash.cs.ox.ac.uk>, ,,, ,,<20140926110648.GB16544@nash.cs.ox.ac.uk>, ,,, , , <20140926114156.GA17550@nash.cs.ox.ac.uk>, , , Message-ID: Hi, I succeed with the following code. for j in [1..3] do for k in [1..3] do for i in [1..3] do prepoly1 := [[x,y,z]]*matrixlist2[j]; prepoly2 := [[x,y,z]]*matrixlist2[k]; prepoly3 := [[x,y,z]]*matrixlist2[i]; poly1 := 0; for j in [1..Length(prepoly1[1])] do zz:=1; for i in SplitString(String(prepoly1[1][j]), "+" ) do zz:=zz*EvalString(i); od; if zz <> 1 then poly1 := poly1 + zz; fi; od; poly2 := 0; for j in [1..Length(prepoly2[1])] do zz:=1; for i in SplitString(String(prepoly2[1][j]), "+" ) do zz:=zz*EvalString(i); od; if zz <> 1 then poly2 := poly2 + zz; fi; od; poly3 := 0; for j in [1..Length(prepoly3[1])] do zz:=1; for i in SplitString(String(prepoly3[1][j]), "+" ) do zz:=zz*EvalString(i); od; if zz <> 1 then poly3 := poly3 + zz; fi; od; if poly1 <> 0 and poly2 <> 0 and poly3 <> 0 then I:= Ideal( R1, [poly1, poly2, poly3] ); S:=SingularInterface( "stdhilb", [I], "ideal"); HF := GeneratorsOfIdeal(S); Print(HF); AppendTo(Concatenation("./maplecode/gapexport",String(j)), "if not assigned(T"); AppendTo(Concatenation("./maplecode/gapexport",String(j)), HF); AppendTo(Concatenation("./maplecode/gapexport",String(j)), ") then"); AppendTo(Concatenation("./maplecode/gapexport",String(j)),"\n"); AppendTo(Concatenation("./maplecode/gapexport",String(j)), "T"); AppendTo(Concatenation("./maplecode/gapexport",String(j)), HF); AppendTo(Concatenation("./maplecode/gapexport",String(j)), " := [op(T"); AppendTo(Concatenation("./maplecode/gapexport",String(j)), HF); AppendTo(Concatenation("./maplecode/gapexport",String(j)), "),"); AppendTo(Concatenation("./maplecode/gapexport",String(j)), poly1); AppendTo(Concatenation("./maplecode/gapexport",String(j)), ","); AppendTo(Concatenation("./maplecode/gapexport",String(j)), poly2); AppendTo(Concatenation("./maplecode/gapexport",String(j)), ","); AppendTo(Concatenation("./maplecode/gapexport",String(j)), poly3); AppendTo(Concatenation("./maplecode/gapexport",String(j)), "];\n"); AppendTo(Concatenation("./maplecode/gapexport",String(j)), "end if;\n"); fi; od; od;od; Regards, Martin > From: tesleft at hotmail.com > To: forum at gap-system.org > Date: Sun, 28 Sep 2014 17:02:09 +0800 > Subject: [GAP Forum] how to convert symbolic expression into a list of terms > > Hi > i finally change to use 3 for loop instead of using Tuples, allow duplicate > but i have a final difficulty in get a list of terms in symbolic expression > for i in prepoly1[1][3] do Print(i);od; > do not know how to get a list of terms of expression such as x+z^2; > how to convert to a list [x, z^2] for for loop to get each terms? > > mkdir maplecode./bin/gap.sh -o 16g > GAPInfo.CommandLineOptions.o;"16g" > onelist := Tuples([0,1,0,1,0,1],3);onelist2 := [];Append( onelist2, onelist );Append( onelist2, onelist );Append( onelist2, onelist );matrixlist := Tuples(onelist2,3);matrixlist2 := [];Append( matrixlist2, matrixlist );Append( matrixlist2, matrixlist );Append( matrixlist2, matrixlist );LoadPackage("singular");R1:= PolynomialRing( Rationals, ["x","y","z"] : new );;SetTermOrdering(R1,"lp");SingularSetBaseRing(R1);x:=IndeterminatesOfPolynomialRing(R1)[1];;y:=IndeterminatesOfPolynomialRing(R1)[2];;z:=IndeterminatesOfPolynomialRing(R1)[3];;prepoly1 := [[x,y,z]]*matrixlist2[idealindexlist[1][1]];prepoly2 := [[x,y,z]]*matrixlist2[idealindexlist[1][2]];prepoly3 := [[x,y,z]]*matrixlist2[idealindexlist[1][3]];prepoly1 := [[x,y,z]]*matrixlist2[100];poly1 := 0;for j in Length(prepoly1[1]) do poly1 := poly1 + prepoly1[1][3]; > pp := rec(prepoly1[1][3]); > for i in prepoly1[1][3] do Print(i);od; > > pp.string > for j in [1..3] do AppendTo(Concatenation(Concatenation("./maplecode/gapexport",String(j)),String(j)), j);od; > AppendTo("./gapexport", "T := table();\n");for j in [1..Length(matrixlist2)] do for k in [1..Length(matrixlist2)] do for i in [1..Length(matrixlist2)] do > for j in [1..3] do for k in [1..3] do for i in [1..3] do prepoly1 := [[x,y,z]]*matrixlist2[idealindexlist[i][1]]; prepoly2 := [[x,y,z]]*matrixlist2[idealindexlist[i][2]]; prepoly3 := [[x,y,z]]*matrixlist2[idealindexlist[i][3]]; I:= Ideal( R1, [prepoly1, prepoly2, prepoly3] ); S:=SingularInterface( "stdhilb", [I], "ideal"); HF := GeneratorsOfIdeal(S); AppendTo(Concatenation("./maplecode/gapexport",String(j)), "if not assigned(T["); AppendTo(Concatenation("./maplecode/gapexport",String(j)), HF); AppendTo(Concatenation("./maplecode/gapexport",String(j)), "]) then"); AppendTo(Concatenation("./maplecode/gapexport",String(j)),"\n"); AppendTo(Concatenation("./maplecode/gapexport",String(j)), "T["); AppendTo(Concatenation("./maplecode/gapexport",String(j)), HF); AppendTo(Concatenation("./maplecode/gapexport",String(j)), "] := [op(T["); AppendTo(Concatenation("./maplecode/gapexport",String(j)), HF); AppendTo(Concatenation("./maplecode/gapexport",String(j)), "]),["); AppendTo(Concatenation("./maplecode/gapexport",String(j)), prepoly1); AppendTo(Concatenation("./maplecode/gapexport",String(j)), ","); AppendTo(Concatenation("./maplecode/gapexport",String(j)), prepoly2); AppendTo(Concatenation("./maplecode/gapexport",String(j)), ","); AppendTo(Concatenation("./maplecode/gapexport",String(j)), prepoly3); AppendTo(Concatenation("./maplecode/gapexport",String(j)), "]];\n"); AppendTo(Concatenation("./maplecode/gapexport",String(j)), "end if;\n"); > Regards, > Martin > > From: tesleft at hotmail.com > > To: forum at gap-system.org > > Date: Sat, 27 Sep 2014 02:47:49 +0800 > > Subject: [GAP Forum] how to get variables in symbolic expression > > > > Hi > > maple can use op(1, poly) > > how to do similar things in gap? > > [ [ y, z, x+z ] ] > > poly1 := 0;for j in Length(prepoly1[1]) do poly1 := poly1 + prepoly1[1][3] > > become y + z + x*z > > Regards, > > Martin > > _______________________________________________ > > Forum mailing list > > Forum at mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From tesleft at hotmail.com Sun Sep 28 11:44:47 2014 From: tesleft at hotmail.com (Lee Martin CCNP) Date: Sun, 28 Sep 2014 18:44:47 +0800 Subject: [GAP Forum] which function of gap can display the result of hilbert function of Singular? In-Reply-To: References: , , <8661B544-6612-4B9A-905A-A0E811375014@math.colostate.edu>, , , , <47708838-074A-410E-8412-ADF0CE041E57@math.colostate.edu>, , , , , , <20140926103946.GA16544@nash.cs.ox.ac.uk>, , , , <20140926110648.GB16544@nash.cs.ox.ac.uk>, , , , <20140926114156.GA17550@nash.cs.ox.ac.uk>, Message-ID: Hi I:= Ideal( R1, [x*y+x*z, x*y+x*y*z+x, x*z+x*y*z+x] );S:=SingularInterface( "stdhilb", [I], "ideal");HF := GeneratorsOfIdeal(S); which function of gap can display the result of hilbert function ? because above result should be1/(1-x)^2; Regards, Martin From tesleft at hotmail.com Tue Sep 30 12:57:45 2014 From: tesleft at hotmail.com (Lee Martin CCNP) Date: Tue, 30 Sep 2014 19:57:45 +0800 Subject: [GAP Forum] what are the application of creating algebra In-Reply-To: References: , ,,<8661B544-6612-4B9A-905A-A0E811375014@math.colostate.edu>, ,,, ,,<47708838-074A-410E-8412-ADF0CE041E57@math.colostate.edu>, ,,, ,,, ,,<20140926103946.GA16544@nash.cs.ox.ac.uk>, ,,, ,,<20140926110648.GB16544@nash.cs.ox.ac.uk>, ,,, , , <20140926114156.GA17550@nash.cs.ox.ac.uk>, , , Message-ID: Hi , http://www.gap-system.org/Manuals/doc/tut/chap6.html#X7DDBF6F47A2E021C 1. How to define a new multiplication of algebra with A:= Algebra( Rationals, [ m1, m2 ] ); 2. What is the example of code below for traditional multiplication rule? A:= Algebra( Rationals, [ m1, m2 ] ); 3. Which interesting conditions do we search for after created a new algebra? 4. Which reference book teach the skills related above questions ? 5. How to create factorization for the newly created algebra ? Regards, Martin From tesleft at hotmail.com Tue Sep 30 13:08:47 2014 From: tesleft at hotmail.com (Lee Martin CCNP) Date: Tue, 30 Sep 2014 20:08:47 +0800 Subject: [GAP Forum] what are the application of creating algebra In-Reply-To: References: , , , , <8661B544-6612-4B9A-905A-A0E811375014@math.colostate.edu>, , , , , , , , <47708838-074A-410E-8412-ADF0CE041E57@math.colostate.edu>, , , , , , , , , , , , <20140926103946.GA16544@nash.cs.ox.ac.uk>, , , , , , , , <20140926110648.GB16544@nash.cs.ox.ac.uk>, , , , , , , , <20140926114156.GA17550@nash.cs.ox.ac.uk>, , , , , , Message-ID: Hi Moreover, do it need to create some operations for newly created algebra after defined multiplication? i see that there are two m1 and m2 in example of chapter 6 in tutorial, does it mean that there can be 2 kinds of multiplication defined? is the second parameter [m1, m2] only for defined multiplication? Regards, Martin > From: tesleft at hotmail.com > To: forum at gap-system.org > Date: Tue, 30 Sep 2014 19:57:45 +0800 > Subject: [GAP Forum] what are the application of creating algebra > > Hi , > http://www.gap-system.org/Manuals/doc/tut/chap6.html#X7DDBF6F47A2E021C > 1. How to define a new multiplication of algebra with > A:= Algebra( Rationals, [ m1, m2 ] ); > 2. What is the example of code below for traditional multiplication rule? > A:= Algebra( Rationals, [ m1, m2 ] ); > 3. Which interesting conditions do we search for after created a new algebra? > 4. Which reference book teach the skills related above questions ? > 5. How to create factorization for the newly created algebra ? > Regards, > Martin > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From steve.linton at st-andrews.ac.uk Tue Sep 30 13:56:31 2014 From: steve.linton at st-andrews.ac.uk (Stephen Linton) Date: Tue, 30 Sep 2014 13:56:31 +0100 Subject: [GAP Forum] what are the application of creating algebra In-Reply-To: References: , , , , <8661B544-6612-4B9A-905A-A0E811375014@math.colostate.edu>, , , , , , , , <47708838-074A-410E-8412-ADF0CE041E57@math.colostate.edu>, , , , , , , , , , , , <20140926103946.GA16544@nash.cs.ox.ac.uk>, , , , , , , , <20140926110648.GB16544@nash.cs.ox.ac.uk>, , , , , , , , <20140926114156.GA17550@nash.cs.ox.ac.uk>, , , , , , Message-ID: Dear Lee, Please could you direct questions like this to GAP Support mailing list support at gap-system.org. The forum is for announcements and enquiries of general interest, but is not intended for large numbers of ?how do I do this? questions of this kind. Steve On 30 Sep 2014, at 13:08, Lee Martin CCNP wrote: > Hi > Moreover, do it need to create some operations for newly created algebra after defined multiplication? > i see that there are two m1 and m2 in example of chapter 6 in tutorial, does it mean that there can be 2 kinds of multiplication defined? > is the second parameter [m1, m2] only for defined multiplication? > Regards, > Martin >> From: tesleft at hotmail.com >> To: forum at gap-system.org >> Date: Tue, 30 Sep 2014 19:57:45 +0800 >> Subject: [GAP Forum] what are the application of creating algebra >> >> Hi , >> http://www.gap-system.org/Manuals/doc/tut/chap6.html#X7DDBF6F47A2E021C >> 1. How to define a new multiplication of algebra with >> A:= Algebra( Rationals, [ m1, m2 ] ); >> 2. What is the example of code below for traditional multiplication rule? >> A:= Algebra( Rationals, [ m1, m2 ] ); >> 3. Which interesting conditions do we search for after created a new algebra? >> 4. Which reference book teach the skills related above questions ? >> 5. How to create factorization for the newly created algebra ? >> Regards, >> Martin >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From Bill.Allombert at math.u-bordeaux.fr Wed Sep 10 17:45:49 2014 From: Bill.Allombert at math.u-bordeaux.fr (Bill Allombert) Date: Wed, 10 Sep 2014 16:45:49 -0000 Subject: [GAP Forum] GAP on ipad In-Reply-To: References: <93DA3DFD-9825-4995-B8C7-AED0C17ADDDA@gazi.edu.tr> Message-ID: <20140910164006.GB12551@yellowpig> On Wed, Sep 10, 2014 at 04:05:30PM +0300, Matan Ziv-Av wrote: > On Wed, 10 Sep 2014, Ahmet Ar?kan wrote: > > >Dear forum, > > > >My question may be asked before. I wonder if GAP can be installed on ipad? If possible how? > > It is surely possible. The ipad runs a "unix like" system on an ARM > cpu, and it is possible to run a shell on it. As far as I know, > noone has done this (at least not publicly), so there is no > installation package, or simple instructions how to do this, though. For what is worth, this how it was done for PARI/GP so maybe a similar procedure could work with GAP (both being math programs running in a terminal in a unix environment). Note that this is dated June 2010 and that the first step is to jailbreak your phone. Cheers, Bill. From jjm at mcs.st-and.ac.uk Wed Oct 1 10:19:31 2014 From: jjm at mcs.st-and.ac.uk (John McDermott) Date: Wed, 1 Oct 2014 10:19:31 +0100 Subject: [GAP Forum] GAP on ipad In-Reply-To: <20140910164006.GB12551@yellowpig> References: <93DA3DFD-9825-4995-B8C7-AED0C17ADDDA@gazi.edu.tr> <20140910164006.GB12551@yellowpig> Message-ID: Apologies for the delay to Bill's message. I missed it during a sweep of mails for moderation done just after it sent and just discovered it today. John On 10 Sep 2014, at 17:40, Bill Allombert wrote: > On Wed, Sep 10, 2014 at 04:05:30PM +0300, Matan Ziv-Av wrote: >> On Wed, 10 Sep 2014, Ahmet Ar?kan wrote: >> >>> Dear forum, >>> >>> My question may be asked before. I wonder if GAP can be installed on ipad? If possible how? >> >> It is surely possible. The ipad runs a "unix like" system on an ARM >> cpu, and it is possible to run a shell on it. As far as I know, >> noone has done this (at least not publicly), so there is no >> installation package, or simple instructions how to do this, though. > > For what is worth, this how it was done for PARI/GP so maybe a similar > procedure could work with GAP (both being math programs running in a terminal > in a unix environment). > > > > Note that this is dated June 2010 and that the first step is to jailbreak your > phone. > > Cheers, > Bill. > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum -- John McDermott Centre for Interdisciplinary Research in Computational Algebra University of St Andrews The University of St Andrews is a charity registered in Scotland : No SC013532 From k.mackenzie at sheffield.ac.uk Wed Oct 1 10:19:38 2014 From: k.mackenzie at sheffield.ac.uk (KCHM) Date: Wed, 1 Oct 2014 10:19:38 +0100 Subject: [GAP Forum] GAP on ipad In-Reply-To: References: <93DA3DFD-9825-4995-B8C7-AED0C17ADDDA@gazi.edu.tr> <20140910164006.GB12551@yellowpig> Message-ID: <20141001091938.GC11590@TQD> In the October 2014 issue of `Linux Format' there are instructions on how to install an independent Linux distribution on an android phone, without doing a full scale root. If this works (I haven't tried it myself) it should mean that one can run GAP within one's own Linux (not the android incarnation) on the phone. Kirill On Wed, Oct 01, 2014 at 10:19:31AM +0100, John McDermott wrote: > Apologies for the delay to Bill's message. I missed it during a sweep of mails for moderation done just after it sent and just discovered it today. > > John > > > On 10 Sep 2014, at 17:40, Bill Allombert wrote: > > > On Wed, Sep 10, 2014 at 04:05:30PM +0300, Matan Ziv-Av wrote: > >> On Wed, 10 Sep 2014, Ahmet Ar?kan wrote: > >> > >>> Dear forum, > >>> > >>> My question may be asked before. I wonder if GAP can be installed on ipad? If possible how? > >> > >> It is surely possible. The ipad runs a "unix like" system on an ARM > >> cpu, and it is possible to run a shell on it. As far as I know, > >> noone has done this (at least not publicly), so there is no > >> installation package, or simple instructions how to do this, though. > > > > For what is worth, this how it was done for PARI/GP so maybe a similar > > procedure could work with GAP (both being math programs running in a terminal > > in a unix environment). > > > > > > > > Note that this is dated June 2010 and that the first step is to jailbreak your > > phone. > > > > Cheers, > > Bill. > > > > _______________________________________________ > > Forum mailing list > > Forum at mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > From Bill.Allombert at math.u-bordeaux1.fr Wed Oct 1 11:02:34 2014 From: Bill.Allombert at math.u-bordeaux1.fr (Bill Allombert) Date: Wed, 1 Oct 2014 12:02:34 +0200 Subject: [GAP Forum] GAP on ipad In-Reply-To: <20141001091938.GC11590@TQD> References: <93DA3DFD-9825-4995-B8C7-AED0C17ADDDA@gazi.edu.tr> <20140910164006.GB12551@yellowpig> <20141001091938.GC11590@TQD> Message-ID: <20141001100234.GB20868@yellowpig> On Wed, Oct 01, 2014 at 10:19:38AM +0100, KCHM wrote: > In the October 2014 issue of `Linux Format' there are instructions on > how to install an independent Linux distribution on an android phone, > without doing a full scale root. If this works (I haven't tried it > myself) it should mean that one can run GAP within one's own Linux > (not the android incarnation) on the phone. Apple iPhones are significantly more closed than Android phones. Indeed you can run PARI/GP on an Android phone without rooting it: It should not be hard to cross-compile GAP for Android and run it in an Android shell. Cheers, Bill From tesleft at hotmail.com Wed Oct 1 13:47:01 2014 From: tesleft at hotmail.com (Lee Martin CCNP) Date: Wed, 1 Oct 2014 20:47:01 +0800 Subject: [GAP Forum] which function of dictionary can use polynomial or function as key In-Reply-To: References: , , <8661B544-6612-4B9A-905A-A0E811375014@math.colostate.edu>, Message-ID: Hi Alexander, I figure out how to edit value of dictionary which is a list.I notice that it can overwrite the original value, make use of this property and use union can solve this. AddDictionary(d,x^2+2*x, []);AddDictionary(d,x^2+2*x,Union(LookupDictionary(d,x^2+2*x), [y+1]));AddDictionary(d,x^2+2*x,Union(LookupDictionary(d,x^2+2*x), [y+x]));aa := LookupDictionary(d,x^2+2*x); Regards, Martin > From: tesleft at hotmail.com > To: hulpke at math.colostate.edu > Date: Thu, 25 Sep 2014 15:27:54 +0800 > CC: forum at gap-system.org > Subject: Re: [GAP Forum] which function of dictionary can use polynomial or function as key > > Hi Alexander, > How to edit the value of dictionary?How to append a function to a list which is a value of dictionary? > Regards, > Martin > > Subject: Re: [GAP Forum] which function of dictionary can use polynomial or function as key > > From: hulpke at math.colostate.edu > > Date: Wed, 24 Sep 2014 09:27:04 -0600 > > CC: forum at gap-system.org > > To: tesleft at hotmail.com > > > > Dear Forum, > > > > On Sep 24, 2014, at 9/24/14 3:21, Lee Martin CCNP wrote: > > > > > would like to use rational function as key in dictionary like table function in maple > > > which function is a dictionary can use function as key and value as list to store ideals. > > > > Lookup dictionaries currently work with rational functions, e.g: > > > > gap> R:=PolynomialRing(Rationals,["x","y","z"]);AssignGeneratorVariables(R); > > Rationals[x,y,z] > > #I Assigned the global variables [ x, y, z ] > > > > gap> d:=NewDictionary(x,true); > > > > gap> AddDictionary(d,x,1); > > gap> AddDictionary(d,y,2); > > gap> LookupDictionary(d,x); > > 1 > > gap> LookupDictionary(d,z); > > fail > > gap> AddDictionary(d,x/y,2); > > gap> LookupDictionary(d,z); > > fail > > gap> LookupDictionary(d,x/y); > > 2 > > > > Instead of numbers you should be able to store arbitrary associated information. However internally lists will be made immutable, so if your ideal list is expected to grow you would need to keep a separate (mutable) list of the ideal lists, storing only an index in the dictionary. > > > > I note that > > > > gap> RepresentationsOfObject(d); > > [ "IsComponentObjectRep", "IsDictionaryDefaultRep", "IsListDictionary", > > "IsListLookupDictionary", "IsSortDictionary", "IsSortLookupDictionary" ] > > > > this currently uses sorted lists internally and not yet hashing. To enable hashing, one would have to add a method for SparseHashKey for rational functions, which currently is not on the list of features. > > > > Best, > > > > Alexander Hulpke > > > > > > > Regards, > > > Martin > > > _______________________________________________ > > > Forum mailing list > > > Forum at mail.gap-system.org > > > http://mail.gap-system.org/mailman/listinfo/forum > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From s.mazhar at newcastle.ac.uk Thu Oct 2 15:13:27 2014 From: s.mazhar at newcastle.ac.uk (Siddiqua Mazhar (PGR)) Date: Thu, 2 Oct 2014 14:13:27 +0000 Subject: [GAP Forum] Sublists of list Message-ID: <22d1d9ab6ac441b9b6d1447fffb5e62b@AM3PR07MB324.eurprd07.prod.outlook.com> Dear Sir/Madam, My question is, if I have a list like a:=[[1,2,4,6,11],[12,23,19,17,15]] then how can I find the sublists of this list in GAP that are in the same order of the elements as it has been placed in the list. For instance I want to find the result in this form result:= [1,2],[2,4],[4,6],[6,11],[11,1],[1,2,4],[2,4,6],[4,6,11],[6,11,1],[11,1,2],[1,2,4,6],[2,4,6,11],[12,23],[23,19],[19,17],[17,15],[15,12],[12,23,19],[23,19,17],[19,17,15],[17,15,12],[15,12,23][12,23,19,17],[23,19,17,15]; Kind regards Siddiqua From steve.linton at st-andrews.ac.uk Thu Oct 2 16:06:41 2014 From: steve.linton at st-andrews.ac.uk (Stephen Linton) Date: Thu, 2 Oct 2014 16:06:41 +0100 Subject: [GAP Forum] Sublists of list In-Reply-To: <22d1d9ab6ac441b9b6d1447fffb5e62b@AM3PR07MB324.eurprd07.prod.outlook.com> References: <22d1d9ab6ac441b9b6d1447fffb5e62b@AM3PR07MB324.eurprd07.prod.outlook.com> Message-ID: There is no built-in function that does exactly what you want, so you will need to write a short program to do this. There are lots of ways to do that, some are shorter than others, some more readable, some more efficient. Here is one solution: sl := function ( l ) local ll; ll := Concatenation( l, l ); return Concatenation( List( [ 1 .. Length( l ) ], function ( i ) return List( [ i + 1 .. i + Length( l ) - 2 ], function ( j ) return ll{[ i .. j ]}; end ); end ) ); end; Then sl2 := l->Concatenation(List(l,sl)); I suggest you have a look at the reference manual especially chapter http://www.gap-system.org/Manuals/doc/ref/chap0.html especially chapters 4 and 21. If you need further assistance you can contact GAP support on support at gap-system.org. Steve On 2 Oct 2014, at 15:13, Siddiqua Mazhar (PGR) wrote: > Dear Sir/Madam, > > My question is, if I have a list like > > a:=[[1,2,4,6,11],[12,23,19,17,15]] > > then how can I find the sublists of this list in GAP that are in the same order of the elements as it has been placed in the list. For instance I want to find the result in this form > > result:= [1,2],[2,4],[4,6],[6,11],[11,1],[1,2,4],[2,4,6],[4,6,11],[6,11,1],[11,1,2],[1,2,4,6],[2,4,6,11],[12,23],[23,19],[19,17],[17,15],[15,12],[12,23,19],[23,19,17],[19,17,15],[17,15,12],[15,12,23][12,23,19,17],[23,19,17,15]; > > > Kind regards > Siddiqua > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From tkohl at math.bu.edu Thu Oct 2 17:11:57 2014 From: tkohl at math.bu.edu (Tim Kohl) Date: Thu, 2 Oct 2014 12:11:57 -0400 (EDT) Subject: [GAP Forum] Sublists of list In-Reply-To: <22d1d9ab6ac441b9b6d1447fffb5e62b@AM3PR07MB324.eurprd07.prod.outlook.com> References: <22d1d9ab6ac441b9b6d1447fffb5e62b@AM3PR07MB324.eurprd07.prod.outlook.com> Message-ID: Hello, If I understand correctly, you want all sublists of sizes 2..(Size of list - 1) with 'wrapping' to include cases like [11,1] and [6,11,1] etc. Here is some code which seems to work. Note that your 'result' is missing a few cases which I think you meant to include. gap> a:=[[1,2,4,6,11],[12,23,19,17,15]]; [ [ 1, 2, 4, 6, 11 ], [ 12, 23, 19, 17, 15 ] ] gap> xa:=[];;xa[1]:=ShallowCopy(a[1]);;xa[2]:=ShallowCopy(a[2]);;xa[1][Size(a[1])+1]:=a[1][1];;xa[2][Size(a[2])+1]:=a[2][1];; gap> na1:=Size(a[1]);;for slsize in [2..na1-1] do I:=[1..slsize]; for j in [0..na1-slsize+1] do Print(List(I,k->xa[1][k+j]),"\n");od;od; [ 1, 2 ] [ 2, 4 ] [ 4, 6 ] [ 6, 11 ] [ 11, 1 ] [ 1, 2, 4 ] [ 2, 4, 6 ] [ 4, 6, 11 ] [ 6, 11, 1 ] [ 1, 2, 4, 6 ] [ 2, 4, 6, 11 ] [ 4, 6, 11, 1 ] gap> na2:=Size(a[2]);;for slsize in [2..na2-1] do I:=[1..slsize]; for j in [0..na2-slsize+1] do Print(List(I,k->xa[2][k+j]),"\n");od;od; [ 12, 23 ] [ 23, 19 ] [ 19, 17 ] [ 17, 15 ] [ 15, 12 ] [ 12, 23, 19 ] [ 23, 19, 17 ] [ 19, 17, 15 ] [ 17, 15, 12 ] [ 12, 23, 19, 17 ] [ 23, 19, 17, 15 ] [ 19, 17, 15, 12 ] Hope this helps. -Tim Kohl Boston University On Thu, 2 Oct 2014, Siddiqua Mazhar (PGR) wrote: > Dear Sir/Madam, > > My question is, if I have a list like > > a:=[[1,2,4,6,11],[12,23,19,17,15]] > > then how can I find the sublists of this list in GAP that are in the same order of the elements as it has been placed in the list. For instance I want to find the result in this form > > result:= [1,2],[2,4],[4,6],[6,11],[11,1],[1,2,4],[2,4,6],[4,6,11],[6,11,1],[11,1,2],[1,2,4,6],[2,4,6,11],[12,23],[23,19],[19,17],[17,15],[15,12],[12,23,19],[23,19,17],[19,17,15],[17,15,12],[15,12,23][12,23,19,17],[23,19,17,15]; > > > Kind regards > Siddiqua > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > -- From douglaspardoewilson at gmail.com Thu Oct 9 00:02:55 2014 From: douglaspardoewilson at gmail.com (Douglas Wilson) Date: Wed, 8 Oct 2014 16:02:55 -0700 Subject: [GAP Forum] Using the GAP language as an ordinary programming language Message-ID: I've been using Python, and therefore have access to Sage, which includes an interface to GAP. So I can write a Python program that, via Sage, will let me evaluate an expression using GAP. That seems a very round-about way of using GAP, and is limited to single expressions. What I'd really like to do is run a GAP language program from the command line. I can pass a saved workspace to GAP on the command line, which will be used in the subsequent interactive session, but that is not the same thing. I realize that the GAP is oriented towards interactive sessions in a workspace, but surely there are ways around that. For example, Smalltalk used to be the same way, but GNU Smalltalk will allow you to specify a program from the command line, which it will then run and exit. One motive for asking this is straightforward. For me, hi-tech means making the best use of the underlying science. Modern computer hardware uses a lot of technology based on physics, and is therefore hi-tech. Almost all modern computer software makes little use at all of mathematics, and therefore is actually quite lo-tech, however sophisticated it may seem to the user. The future of software, in my opinion will inevitably involve more and more use of mathematics. For that purpose, there should be a highly mathematical computer programming language. And behold, there is: the GAP language. Except for the ability to create Graphical User Interfaces, it is functionally complete and can do anything more ordinary languages can. That single deficiency could be remedied easily be interfacing with a simple windowing system, like Tk, as Python does. I'm not much interested in writing GUI programs myself, just ones to work from the command line. My own work is actually quite mathematical, and I would like to be able to do things like specifying a group by a presentation, identifying it, and working with it in the usual way. But I don't want to do it interactively, nor do I want to be loading up saved workspaces all the time. I just want to use the GAP language like any other one. Perhaps this capability already exists. If so, I can fine no documentation of it in the reference manual. Perhaps you could point me to some. If it doesn't exist yet, could it be provided somehow? dpw http://DouglasPardoeWilson.SocialTechnology.ca/ From steve.linton at st-andrews.ac.uk Thu Oct 9 00:39:05 2014 From: steve.linton at st-andrews.ac.uk (Stephen Linton) Date: Thu, 9 Oct 2014 00:39:05 +0100 Subject: [GAP Forum] Using the GAP language as an ordinary programming language In-Reply-To: References: Message-ID: I can?t speak for using GAP via SAGE, but if you run GAP from the command line you can specify files on the command line which are read and executed in the order you give them. Alternatively you can use the Read function to load a file of code defining new functions and then use them interactively. If this isn?t what you need, feel free to get back to us. Steve On 9 Oct 2014, at 00:02, Douglas Wilson wrote: > I've been using Python, and therefore have > access to Sage, which includes an interface > to GAP. So I can write a Python program > that, via Sage, will let me evaluate an > expression using GAP. > > That seems a very round-about way of > using GAP, and is limited to single > expressions. What I'd really like to do is > run a GAP language program from the > command line. I can pass a saved workspace > to GAP on the command line, which will > be used in the subsequent interactive session, > but that is not the same thing. > > I realize that the GAP is oriented towards > interactive sessions in a workspace, but surely > there are ways around that. For example, > Smalltalk used to be the same way, but > GNU Smalltalk will allow you to specify > a program from the command line, which > it will then run and exit. > > One motive for asking this is straightforward. > For me, hi-tech means making the best use > of the underlying science. Modern computer > hardware uses a lot of technology based on > physics, and is therefore hi-tech. Almost > all modern computer software makes little > use at all of mathematics, and therefore is > actually quite lo-tech, however sophisticated > it may seem to the user. > > The future of software, in my opinion will > inevitably involve more and more use of > mathematics. For that purpose, there should > be a highly mathematical computer > programming language. And behold, > there is: the GAP language. Except > for the ability to create Graphical User > Interfaces, it is functionally complete > and can do anything more ordinary > languages can. That single deficiency > could be remedied easily be interfacing > with a simple windowing system, like Tk, > as Python does. I'm not much interested > in writing GUI programs myself, just > ones to work from the command line. > > My own work is actually quite mathematical, > and I would like to be able to do things > like specifying a group by a presentation, > identifying it, and working with it in the > usual way. But I don't want to do it > interactively, nor do I want to be loading > up saved workspaces all the time. I just > want to use the GAP language like any > other one. > > Perhaps this capability already exists. > If so, I can fine no documentation of it > in the reference manual. Perhaps you > could point me to some. If it doesn't > exist yet, could it be provided somehow? > > dpw > > http://DouglasPardoeWilson.SocialTechnology.ca/ > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From tkohl at math.bu.edu Thu Oct 9 02:02:54 2014 From: tkohl at math.bu.edu (Tim Kohl) Date: Wed, 8 Oct 2014 21:02:54 -0400 Subject: [GAP Forum] Using the GAP language as an ordinary programming language In-Reply-To: References: Message-ID: You can create GAP scripts, the convention being to call such a script myprogram.g for example and be sure to include the command quit; as the last line, and with this you can do something like gap < myprogram.g which will allow you to see the script run ( and to see if it got stuck at an error ) or if your sure of the correctness just do gap < myprogram.g > myprogram.out where the .out file has the output. -Tim K. Sent from my iPhone > On Oct 8, 2014, at 7:02 PM, Douglas Wilson wrote: > > I've been using Python, and therefore have > access to Sage, which includes an interface > to GAP. So I can write a Python program > that, via Sage, will let me evaluate an > expression using GAP. > > That seems a very round-about way of > using GAP, and is limited to single > expressions. What I'd really like to do is > run a GAP language program from the > command line. I can pass a saved workspace > to GAP on the command line, which will > be used in the subsequent interactive session, > but that is not the same thing. > > I realize that the GAP is oriented towards > interactive sessions in a workspace, but surely > there are ways around that. For example, > Smalltalk used to be the same way, but > GNU Smalltalk will allow you to specify > a program from the command line, which > it will then run and exit. > > One motive for asking this is straightforward. > For me, hi-tech means making the best use > of the underlying science. Modern computer > hardware uses a lot of technology based on > physics, and is therefore hi-tech. Almost > all modern computer software makes little > use at all of mathematics, and therefore is > actually quite lo-tech, however sophisticated > it may seem to the user. > > The future of software, in my opinion will > inevitably involve more and more use of > mathematics. For that purpose, there should > be a highly mathematical computer > programming language. And behold, > there is: the GAP language. Except > for the ability to create Graphical User > Interfaces, it is functionally complete > and can do anything more ordinary > languages can. That single deficiency > could be remedied easily be interfacing > with a simple windowing system, like Tk, > as Python does. I'm not much interested > in writing GUI programs myself, just > ones to work from the command line. > > My own work is actually quite mathematical, > and I would like to be able to do things > like specifying a group by a presentation, > identifying it, and working with it in the > usual way. But I don't want to do it > interactively, nor do I want to be loading > up saved workspaces all the time. I just > want to use the GAP language like any > other one. > > Perhaps this capability already exists. > If so, I can fine no documentation of it > in the reference manual. Perhaps you > could point me to some. If it doesn't > exist yet, could it be provided somehow? > > dpw > > http://DouglasPardoeWilson.SocialTechnology.ca/ > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From savicky at cs.cas.cz Thu Oct 9 09:29:07 2014 From: savicky at cs.cas.cz (Petr Savicky) Date: Thu, 9 Oct 2014 10:29:07 +0200 Subject: [GAP Forum] Using the GAP language as an ordinary programming language In-Reply-To: References: Message-ID: <20141009082907.GA26277@cs.cas.cz> On Wed, Oct 08, 2014 at 04:02:55PM -0700, Douglas Wilson wrote: > I've been using Python, and therefore have > access to Sage, which includes an interface > to GAP. So I can write a Python program > that, via Sage, will let me evaluate an > expression using GAP. > > That seems a very round-about way of > using GAP, and is limited to single > expressions. What I'd really like to do is > run a GAP language program from the > command line. Under Linux, it is possible to use a shell script to start a gap program and pass some input from the command line to it. For example, if script.sh is #!/bin/bash /somepath/gap << EOF parameter := $1; Read("program.g"); EOF then the shell command ./script.sh 123 starts GAP and runs parameter := 123; Read("program.g"); Best wishes, Petr Savicky. From s.mazhar at newcastle.ac.uk Fri Oct 10 13:11:50 2014 From: s.mazhar at newcastle.ac.uk (Siddiqua Mazhar (PGR)) Date: Fri, 10 Oct 2014 12:11:50 +0000 Subject: [GAP Forum] Comparison of Length of Lists of list Message-ID: <111bfbdea64d4302bc89350ff5f22f17@AM3PR07MB324.eurprd07.prod.outlook.com> Dear Sir/Madam, If I have a list let say a:=[[1,2,3],[4,5],[6,7,8,9],[10,11,12,],[13,14],[15,16,17,18]]; I want to find the list of maximum length in it, or collection of list of max length from above For instance, result:=[[6,7,8,9],[15,16,17,18]]; how can i find this result? here is one algorithm that I tried, I know something is wrong in here. this is why it is not compiling >Comparison:=function(a) >local i,k; >k:=[]; > for i in [1..Length(a)] do > repeat > if Length(a[i]) Add(k,a[i+1]); > else > Add(k,a[i]); > fi; > until (i+1)=Length(a); > od; >return k; >end; Many thanks. Kind regards Siddiqua From s.mazhar at newcastle.ac.uk Fri Oct 10 13:59:02 2014 From: s.mazhar at newcastle.ac.uk (Siddiqua Mazhar (PGR)) Date: Fri, 10 Oct 2014 12:59:02 +0000 Subject: [GAP Forum] Comparison of Length of Lists of list Message-ID: <2553bc5c5c514844bb58e842916ea15c@AM3PR07MB324.eurprd07.prod.outlook.com> Dear Sir/Madam, Here I made changes in my previous email, sorry for inconvinience If I have a list let say a:=[[1,2,3],[4,5],[6,7,8,9],[10,11,12,],[13,14],[15,16,17,18]]; I want to find the list of maximum length in it, or collection of list of max length from above For instance, result:=[[6,7,8,9],[15,16,17,18]]; how can i find this result? here is one algorithm that I tried >Comparison:=function(a) >local i,k; >k:=[]; > for i in [1..(Length(a)-1)] do > if Length(a[i]) Add(k,a[i+1]); > elif not a[i] in k then > Add(k,a[i]); > fi; > od; >return k; >end; This program works, however , what if two list are of same length next to each other? for instance a:=[[1,2,3],[4,5],[6,7],[8,9,10]]? want this result:=[1,2,3],[8,9,10] or if a:=[[1,2],[3,4],[5,6]] in this case the result wouldl be the same as a because every list are of same length. Many thanks. Kind regards Siddiqua From caj21 at st-andrews.ac.uk Fri Oct 10 15:10:38 2014 From: caj21 at st-andrews.ac.uk (Christopher Jefferson) Date: Fri, 10 Oct 2014 14:10:38 +0000 Subject: [GAP Forum] Comparison of Length of Lists of list Message-ID: I would switch to doing this in two passes: First get the length of the longest sublist: Maximum(List(l, x -> Length(x)); Then get the lists of that length: Filtered(l, x -> Length(x)=4); If you aren't familiar with these notations (they are worth learning), you could write out some loops instead: maxlen := 0; for i in [1..Length(l)] do maxlen := Maximum(maxlen, Length(l[i])); od; k := []; for i in [1..Length(l)] do if Length(l[i]) = maxlen then Add(k, l[i]); fi; od; Or, we could loop directly over the members of l: maxlen := 0; for i in l do maxlen := Maximum(maxlen, Length(i)); od; k := []; for i in l do if Length(i) = maxlen then Add(k, i); fi; od; On 10/10/2014 13:59, "Siddiqua Mazhar (PGR)" wrote: >Dear Sir/Madam, > Here I made changes in my previous email, sorry for inconvinience > >If I have a list let say >a:=[[1,2,3],[4,5],[6,7,8,9],[10,11,12,],[13,14],[15,16,17,18]]; > >I want to find the list of maximum length in it, or collection of list of >max length from above > >For instance, result:=[[6,7,8,9],[15,16,17,18]]; how can i find this >result? > >here is one algorithm that I tried > >>Comparison:=function(a) >>local i,k; >>k:=[]; >> for i in [1..(Length(a)-1)] do >> if Length(a[i])> Add(k,a[i+1]); >> elif not a[i] in k then >> Add(k,a[i]); >> fi; >> od; >>return k; >>end; > >This program works, however , what if two list are of same length next to >each other? >for instance a:=[[1,2,3],[4,5],[6,7],[8,9,10]]? > >want this result:=[1,2,3],[8,9,10] > >or if a:=[[1,2],[3,4],[5,6]] in this case the result wouldl be the same >as a because every list are of same length. > >Many thanks. > >Kind regards >Siddiqua >_______________________________________________ >Forum mailing list >Forum at mail.gap-system.org >http://mail.gap-system.org/mailman/listinfo/forum From giuzzi at ing.unibs.it Tue Oct 14 19:36:17 2014 From: giuzzi at ing.unibs.it (Luca Giuzzi) Date: Tue, 14 Oct 2014 20:36:17 +0200 Subject: [GAP Forum] Replace Global Function Message-ID: Dear Forum, I would like to replace a function defined by DeclareGlobalFunction/InstallGlobalFunction Unfortunately, the object installed by InstallGlobalFunction is read-only, and Unbind also fails. Is there any way to mark the object as replaceable? [I understand that global functions are supposed to be immutable; however in my very specific case it would be convenient to be able to replace what I defined in order to ease debugging] Regards, lg From hulpke at math.colostate.edu Tue Oct 14 21:45:50 2014 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Tue, 14 Oct 2014 14:45:50 -0600 Subject: [GAP Forum] Replace Global Function References: <2FE24258-CEF5-478D-98AD-A27BF9E74686@math.colostate.edu> Message-ID: Dear Forum, Dear Luca Giuzzi, > I would like to replace a function defined by > DeclareGlobalFunction/InstallGlobalFunction > Unfortunately, the object installed by InstallGlobalFunction is read-only, and > Unbind also fails. > Is there any way to mark the object as replaceable? Assuming you know what you are doing (replacing some functions can lead to weird errors), MakeReadWriteGlobal("TheFunction"); (note: String, not variable!) will remove write protection from TheFunction and allow you to overwrite it. MakeReadOnlyGlobal is the inverse operation. If the issue is simply with reading in a file, using Reread instead of Read will allow a second call to `InstallGlobalFunction' to overwrite the first instance. Best wishes, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From L.H.Soicher at qmul.ac.uk Wed Oct 15 15:33:25 2014 From: L.H.Soicher at qmul.ac.uk (Leonard Soicher) Date: Wed, 15 Oct 2014 15:33:25 +0100 Subject: [GAP Forum] Using the GAP language as an ordinary programming language In-Reply-To: References: Message-ID: <20141015143325.GA15975@maths.qmul.ac.uk> Dear Forum, On Wed, Oct 08, 2014 at 09:02:54PM -0400, Tim Kohl wrote: > You can create GAP scripts, the convention being to call such a script > myprogram.g for example and > be sure to include the command > > quit; > > as the last line, > and with this you can do something like > > gap < myprogram.g > > which will allow you to see the script run ( and to see if it got stuck at an error ) or if your sure of the correctness just do > > gap < myprogram.g > myprogram.out > > where the .out file has the output. This is essentially what I would do, as well as having LogTo("myprogram.log"); as the first line of myprogram.g in order for myprogram.log to be a log-file showing the GAP input followed by its corresponding output, in the order executed. Leonard > > -Tim K. > > Sent from my iPhone > > > On Oct 8, 2014, at 7:02 PM, Douglas Wilson wrote: > > > > I've been using Python, and therefore have > > access to Sage, which includes an interface > > to GAP. So I can write a Python program > > that, via Sage, will let me evaluate an > > expression using GAP. > > > > That seems a very round-about way of > > using GAP, and is limited to single > > expressions. What I'd really like to do is > > run a GAP language program from the > > command line. I can pass a saved workspace > > to GAP on the command line, which will > > be used in the subsequent interactive session, > > but that is not the same thing. > > > > I realize that the GAP is oriented towards > > interactive sessions in a workspace, but surely > > there are ways around that. For example, > > Smalltalk used to be the same way, but > > GNU Smalltalk will allow you to specify > > a program from the command line, which > > it will then run and exit. > > > > One motive for asking this is straightforward. > > For me, hi-tech means making the best use > > of the underlying science. Modern computer > > hardware uses a lot of technology based on > > physics, and is therefore hi-tech. Almost > > all modern computer software makes little > > use at all of mathematics, and therefore is > > actually quite lo-tech, however sophisticated > > it may seem to the user. > > > > The future of software, in my opinion will > > inevitably involve more and more use of > > mathematics. For that purpose, there should > > be a highly mathematical computer > > programming language. And behold, > > there is: the GAP language. Except > > for the ability to create Graphical User > > Interfaces, it is functionally complete > > and can do anything more ordinary > > languages can. That single deficiency > > could be remedied easily be interfacing > > with a simple windowing system, like Tk, > > as Python does. I'm not much interested > > in writing GUI programs myself, just > > ones to work from the command line. > > > > My own work is actually quite mathematical, > > and I would like to be able to do things > > like specifying a group by a presentation, > > identifying it, and working with it in the > > usual way. But I don't want to do it > > interactively, nor do I want to be loading > > up saved workspaces all the time. I just > > want to use the GAP language like any > > other one. > > > > Perhaps this capability already exists. > > If so, I can fine no documentation of it > > in the reference manual. Perhaps you > > could point me to some. If it doesn't > > exist yet, could it be provided somehow? > > > > dpw > > > > http://DouglasPardoeWilson.SocialTechnology.ca/ > > _______________________________________________ > > Forum mailing list > > Forum at mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From steve.linton at st-andrews.ac.uk Fri Oct 17 03:06:11 2014 From: steve.linton at st-andrews.ac.uk (Stephen Linton) Date: Thu, 16 Oct 2014 22:06:11 -0400 Subject: [GAP Forum] Comparison of Length of Lists of list In-Reply-To: References: Message-ID: If performance is critical, you can do it in one pass, but it?s a little more complicated maxlen := -1; bestlists := []; for x in l do if Length(x) > maxlen then bestlists := [x]; maxlen := Length(x); elif Length(x) = maxlen then Add(bestlists, x); fi; od; At the end of this bestlists will be what you want. Chris?s code is much simpler and easier though. Steve On 10 Oct 2014, at 10:10, Christopher Jefferson wrote: > I would switch to doing this in two passes: > > First get the length of the longest sublist: > > Maximum(List(l, x -> Length(x)); > > Then get the lists of that length: > > Filtered(l, x -> Length(x)=4); > > If you aren't familiar with these notations (they are worth learning), you > could write out some loops instead: > > maxlen := 0; > for i in [1..Length(l)] do > maxlen := Maximum(maxlen, Length(l[i])); > od; > > k := []; > for i in [1..Length(l)] do > if Length(l[i]) = maxlen then > Add(k, l[i]); > fi; > od; > > > > Or, we could loop directly over the members of l: > > maxlen := 0; > for i in l do > maxlen := Maximum(maxlen, Length(i)); > od; > > k := []; > for i in l do > if Length(i) = maxlen then > Add(k, i); > fi; > od; > > > > On 10/10/2014 13:59, "Siddiqua Mazhar (PGR)" > wrote: > >> Dear Sir/Madam, >> Here I made changes in my previous email, sorry for inconvinience >> >> If I have a list let say >> a:=[[1,2,3],[4,5],[6,7,8,9],[10,11,12,],[13,14],[15,16,17,18]]; >> >> I want to find the list of maximum length in it, or collection of list of >> max length from above >> >> For instance, result:=[[6,7,8,9],[15,16,17,18]]; how can i find this >> result? >> >> here is one algorithm that I tried >> >>> Comparison:=function(a) >>> local i,k; >>> k:=[]; >>> for i in [1..(Length(a)-1)] do >>> if Length(a[i])>> Add(k,a[i+1]); >>> elif not a[i] in k then >>> Add(k,a[i]); >>> fi; >>> od; >>> return k; >>> end; >> >> This program works, however , what if two list are of same length next to >> each other? >> for instance a:=[[1,2,3],[4,5],[6,7],[8,9,10]]? >> >> want this result:=[1,2,3],[8,9,10] >> >> or if a:=[[1,2],[3,4],[5,6]] in this case the result wouldl be the same >> as a because every list are of same length. >> >> Many thanks. >> >> Kind regards >> Siddiqua >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From anvita21 at gmail.com Fri Oct 17 12:38:24 2014 From: anvita21 at gmail.com (Anvita) Date: Fri, 17 Oct 2014 08:38:24 -0300 Subject: [GAP Forum] ElementaryDivisorsMat for empty matrices Message-ID: Dear Forum, It would be nice if ElementaryDivisorsMat[Destructive] could handle empty matrices, viz. [], [[]], [[],[]], ... and return an empty list instead of an error. This may sound like a trifle, but it sometimes leads to unexpected crashes when used in a program. Thank you. Anvita gap> ElementaryDivisorsMat(Integers,[]); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `ElementaryDivisorsMat' on 1 arguments called from ( ) called from read-eval loop at line 2916 of *stdin* you can 'quit;' to quit to outer loop, or you can 'return;' to continue From luca.giuzzi at gmail.com Fri Oct 24 14:43:27 2014 From: luca.giuzzi at gmail.com (Luca Giuzzi) Date: Fri, 24 Oct 2014 15:43:27 +0200 Subject: [GAP Forum] binary arithmetic Message-ID: Dear Forum, I have been working with some elements defined over a large finite field (K=GF(2^20), actually) and I have a few questions. 1) does there exist a "proper" way to obtain a vector representation (any representation is fine) for elements of K over the ground field? I have successfully used the idiom x![1] for x in K, but I suspect that this is more of an implementation detail than what is supposed to be used. 2) In any case ended up working with sets of vectors of GF(2)^20. I would have liked to be able to represent each vector as an integer (this is easy) and to implement the sum of any two of them as a xor between their representatives. I have not been able to find a xor operation being exposed (not even in the cvec package). Am I missing something? [actually, I ended up writing an external program to perform the checks I was interested in] With many thanks and kind regards, lg From steve.linton at st-andrews.ac.uk Fri Oct 31 09:24:36 2014 From: steve.linton at st-andrews.ac.uk (Stephen Linton) Date: Fri, 31 Oct 2014 09:24:36 +0000 Subject: [GAP Forum] binary arithmetic In-Reply-To: References: Message-ID: Dear GAP Forum, On 24 Oct 2014, at 14:43, Luca Giuzzi wrote: > Dear Forum, > I have been working with some elements defined over a large finite > field (K=GF(2^20), actually) and I have a few questions. > > 1) does there exist a "proper" way to obtain a vector representation > (any representation is fine) for elements of K over the ground field? > I have successfully used the idiom x![1] for x in K, but I suspect > that this is more of an implementation detail than what is supposed to > be used. The ?proper" way is to make a basis of the field (considered as a vector space) and then ask for the coefficients of an element with respect to this basis: gap> k := GF(2,20); GF(2^20) gap> z := Random(k); 1+z+z2+z4+z5+z6+z7+z8+z11+z14+z15+z16+z17+z18 gap> b := Basis(k); CanonicalBasis( GF(2^20) ) gap> Coefficients(b,z); gap> > > 2) In any case ended up working with sets of vectors of GF(2)^20. I > would have liked to be able to represent each vector as an integer > (this is easy) and to implement the sum of any two of them as a xor > between their representatives. I have not been able to find a xor > operation being exposed (not even in the cvec package). Am I missing > something? > [actually, I ended up writing an external program to perform the > checks I was interested in] The addition operation for compressed vectors over GF(2) reduces to bitwise xor behind the scenes, although there will still be some overhead associated with method selection, dereferencing the objects to find the bits to xor, etc. Adding bitwise operations for integers has been on our wish list for a while, though. I also notice that there is no xor operation for Blists (lists of Booleans, represented as bit lists) which seems like an oversight. Steve > > With many thanks and kind regards, > lg > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From alexk at mcs.st-andrews.ac.uk Tue Nov 4 10:12:43 2014 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Tue, 4 Nov 2014 10:12:43 +0000 Subject: [GAP Forum] Software is fundamental to research - show your support! Message-ID: [Apologies if you received this information more than once] Dear GAP Forum, The Software Sustainability Institute (http://www.software.ac.uk/) had recently initiated the petition to show that software is fundamental to research: research software should be treated as part of the research infrastructure, and if the fundamental role that software plays in research would be overlooked, then an ability to conduct research will be jeopardised. Some more motivation behind the petition is explained here: http://www.software.ac.uk/blog/2014-10-31-researchers-both-rely-software-and-overlook-it I suggest you to have a look, and if you agree, then please consider signing it too. The petition could be signed here: http://bit.ly/SoftwareIsFundamental Please also help to spread the word about the petition by forwarding this email to anyone who may be interested. If you use Twitter, then you may also retweet this tweet: https://twitter.com/gap_system/status/529576262332063744 Thank you, Alexander From graham.ellis at nuigalway.ie Tue Nov 4 14:52:02 2014 From: graham.ellis at nuigalway.ie (Ellis, Grahamj) Date: Tue, 4 Nov 2014 14:52:02 +0000 Subject: [GAP Forum] PhD studies at Galway In-Reply-To: References: , , , , , Message-ID: Dear GAP Forum, The National University of Ireland, Galway has launched its Hardiman PhD scholarships application process, with closing date 21 November 2014. Details can be found at http://www.nuigalway.ie/hardiman-scholarships/ . Potential PhD supervisors with research interests in computational algebra include: Graham Ellis Dane Flannery Niall Madden Michael McGettrick Goetz Pfeiffer Emil Skoldberg Anyone interesting in applying for PhD funding should contact one of the above. Contact information is listed at http://maths.nuigalway.ie/people/ . Other sources of PhD funding with later closing dates are - the Irish Research Council scholarships http://research.ie/funding/postgraduate-funding - NUI Galway College of Science scholarships http://www.nuigalway.ie/science/research.html . Best, Graham School of Mathematics, Statistics & Applied Mathematics National University of Ireland, Galway University Road, Galway Ireland http://hamilton.nuigalway.ie tel: 091 493011 From kkostousov at gmail.com Thu Oct 30 10:48:12 2014 From: kkostousov at gmail.com (=?UTF-8?B?0JrQvtGB0YLQvtGD0YHQvtCyINCa0LjRgNC40LvQuw==?=) Date: Thu, 30 Oct 2014 15:48:12 +0500 Subject: [GAP Forum] Sequence of equal words in FpGroups Message-ID: Hello, Suppose I have the FpGroup G=. In this group a*b*a^2*b*a*b=a*b^2*a*b=a^2*b=b holds. If I build this group in Gap: gap>F:=FreeGroup("a", "b"); gap>AssignGeneratorVariables(F); gap>G:=F/[a^2,b^2]; gap>AssignGeneratorVariables(G); and ask if gap>a*b^2*a*b=b the Gap answers gap>true Can I obtain the whole sequence of equal words a*b*a^2*b*a*b, a*b^2*a*b, a^2*b, b, using Gap? Kirill Kostousov From sooolato at hotmail.com Tue Nov 4 13:13:02 2014 From: sooolato at hotmail.com (sooolato) Date: Tue, 4 Nov 2014 13:13:02 +0000 Subject: [GAP Forum] Hilbert series for invariants Message-ID: Dear GAP forum, I have two questions: How can we compute Hilbert series for an invariant ring K[V]^G in the modular case since we cannot use Molien's formula? If we have Hilbert series for an invariant ring and we have a set of invariants {x_1, .... , x_n} that we suspect it is a complete generating set, how can we compute Hilbert series for K [x_1, ..., x_n} in order to know it is a generating set or not? Thank you Salorita From roblot at math.univ-lyon1.fr Fri Nov 7 12:17:15 2014 From: roblot at math.univ-lyon1.fr (Xavier Roblot) Date: Fri, 7 Nov 2014 13:17:15 +0100 Subject: [GAP Forum] Explicit membership for ideals of group rings Message-ID: <106B57A2-4AC4-44F9-89C6-308EAD306C64@math.univ-lyon1.fr> Dear all, I would like to know how to obtain the explicit decomposition of some element of an ideal of a group ring expressed on the generators of this ideal. More precisely, assume that QG is a group ring with G a finite group (in my case, constructed as the quotient of a free group) and that a1, a2 and b are elements of QG. I can do the following: gap> I = a1*QG + a2*QG;; gap> b in I; true This tells me that b is in the ideal generated by a1 and a2. Is there a way to obtain the explicit decomposition of b in terms of a1 and a2? Thanks for your help, X.-F. Roblot From ljj198123 at 126.com Mon Nov 10 12:39:12 2014 From: ljj198123 at 126.com (=?GBK?B?wfW9qL78?=) Date: Mon, 10 Nov 2014 20:39:12 +0800 (CST) Subject: [GAP Forum] structure constant of Fi23 Message-ID: <26af60d0.1403f.14999b713e5.Coremail.ljj198123@126.com> Dear forum, I need the structure constant of the Fisher group Fi23. The "ClassMultiplicationCoefficient(tbl,7,7,62)" returns an Error. (where tbl:=CharacterTable(SimpleGroup("Fi23"))) I know maybe the group is too large. Is there a method to get it? All the best, Jianjun Liu From benjamin.sambale at gmail.com Mon Nov 10 12:47:46 2014 From: benjamin.sambale at gmail.com (Benjamin) Date: Mon, 10 Nov 2014 13:47:46 +0100 Subject: [GAP Forum] structure constant of Fi23 In-Reply-To: <26af60d0.1403f.14999b713e5.Coremail.ljj198123@126.com> References: <26af60d0.1403f.14999b713e5.Coremail.ljj198123@126.com> Message-ID: <5460B3F2.1060300@gmail.com> Dear Jianjun, use tbl:=CharacterTable("Fi23"); (I get 4690 as structure constant.) Best, Benjamin On 10.11.2014 13:39, ??? wrote: > Dear forum, > > I need the structure constant of the Fisher group Fi23. > The "ClassMultiplicationCoefficient(tbl,7,7,62)" returns an Error. (where tbl:=CharacterTable(SimpleGroup("Fi23"))) > I know maybe the group is too large. > Is there a method to get it? > > All the best, > Jianjun Liu > > > > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From arikan at gazi.edu.tr Fri Nov 14 11:59:51 2014 From: arikan at gazi.edu.tr (=?utf-8?Q?Ahmet_Ar=C4=B1kan?=) Date: Fri, 14 Nov 2014 13:59:51 +0200 Subject: [GAP Forum] Direct product Message-ID: <8487221E-55EF-408D-B039-6F84BE211603@gazi.edu.tr> Dear Forum, Can we calculate the external direct product \mathbb{Z}_{25}\oplus \mathbb{Z}_5 in GAP not considering isomorphic copies of them in symmetric groups. We follow Rainbolt&Gallian notes with a group of students in this semester and we will ask some questions along the way. Thank you Ahmet Ar?kan iPad'imden g?nderildi From alexk at mcs.st-andrews.ac.uk Fri Nov 14 13:33:26 2014 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Fri, 14 Nov 2014 13:33:26 +0000 Subject: [GAP Forum] Direct product In-Reply-To: <8487221E-55EF-408D-B039-6F84BE211603@gazi.edu.tr> References: <8487221E-55EF-408D-B039-6F84BE211603@gazi.edu.tr> Message-ID: <02954B7C-DB88-4323-A34F-B8F6794D48FB@mcs.st-andrews.ac.uk> Dear Ahmet, Perhaps this is what you need then? gap> DirectProduct(CyclicGroup(25),CyclicGroup(5)); gap> G:=DirectProduct(CyclicGroup(25),CyclicGroup(5)); gap> StructureDescription(G); "C25 x C5" gap> Projection(G,1); Pcgs([ f1, f2, f3 ]) -> [ f1, f2, of ... ] gap> StructureDescription(Image(Projection(G,1))); "C25" gap> StructureDescription(Image(Projection(G,2))); "C5" HTH Alexander On 14 Nov 2014, at 11:59, Ahmet Ar?kan wrote: > Dear Forum, > Can we calculate the external direct product \mathbb{Z}_{25}\oplus > \mathbb{Z}_5 in GAP not considering isomorphic copies of them in symmetric groups. > > We follow Rainbolt&Gallian notes with a group of students in this semester and we will ask some questions along the way. > > Thank you > Ahmet Ar?kan > > > iPad'imden g?nderildi > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From moritz.schmitt at gmail.com Wed Nov 19 12:38:21 2014 From: moritz.schmitt at gmail.com (Moritz Schmitt) Date: Wed, 19 Nov 2014 13:38:21 +0100 Subject: [GAP Forum] Cryst and CrystCat Message-ID: Dear all, To get a crystallographic group from the databases in Cryst and CrystCat we have two commands available: S := SpaceGroupIT(dim, nr) and S := SpaceGroupBBNWZ(dim, nr). In both cases, what we get is a matrix group in GL(dim+1, Q). How can I find out the basis that is used for this representation? Is that given by InternalBasis(S) which should be the same as TranslationBasis(S)? I have read the documentation of both packages but find it still impossible to answer this fundamental question. So any help from someone more knowledgeable will be greatly appreciated. Best, Moritz From gaehler at math.uni-bielefeld.de Wed Nov 19 14:41:09 2014 From: gaehler at math.uni-bielefeld.de (Franz Gaehler) Date: Wed, 19 Nov 2014 15:41:09 +0100 Subject: [GAP Forum] Cryst and CrystCat In-Reply-To: References: Message-ID: <20141119144109.GA20751@math.uni-bielefeld.de> Dear Moritz > To get a crystallographic group from the databases in Cryst and > CrystCat we have two commands available: > > S := SpaceGroupIT(dim, nr) > > and > > S := SpaceGroupBBNWZ(dim, nr). > > In both cases, what we get is a matrix group in GL(dim+1, Q). > > How can I find out the basis that is used for this representation? Is > that given by InternalBasis(S) which should be the same as > TranslationBasis(S)? > > I have read the documentation of both packages but find it still > impossible to answer this fundamental question. So any help from > someone more knowledgeable will be greatly appreciated. There is no simple answer, I'm afraid. These packages are about algebra, not geometry. Each space group type is given as a representative of an affine conjugacy class of (affine) matrix groups. Choosing a representative has of course to do with choosing an origin and a basis of affine space. The space group tables included in Cryst and CrystCat come from the International Tables of Crystallography (IT) and from the book of Brown et al. The short answer is, that our choice of basis and origin is exactly the same as in those sources. Crystallographers call the choice of a basis and origin a "setting", and for each space group type they have one or two standard settings, which are described in the IT. SpaceGroupIT returns a space group in one of those standard settings. If there are two, one can choose which one with an optional third parameter. Roughly speaking, crystallographers like to work with a highly symmetric basis, even if this basis does not generate the full translation lattice. For instance, cubic crystals are always expressed with an orthogonal basis, even if the crystal is face centered. TranslationBasis then determines some basis (always the same) of the full translation lattice (with respect to the original basis), which in the face centered cubic case will contain also vectors with half-integer components. InternalBasis also contains a basis of the translation lattice, but should be used only for internal purposes. SpaceGroupBBNWZ returns each space group in the representation chosen in the BBNWZ book. These groups are always expressed with a basis of the full lattice of translation symmetries, so that TranslationBasis here always returns the standard basis of Z^d. How this lattice looks like geometrically is discussed to some extent in the book, but is not part of the package. This is probably not the answer you wanted to hear, but if you want to know more about the geometry of the basis chosen, you will have to look up the original sources. Best regards, Franz _____________________________________________________________________________ Dr. Franz G?hler Phone +49 521 / 106 3876 Faculty of Mathematics Fax +49 521 / 106 153876 Bielefeld University Email gaehler at math.uni-bielefeld.de D-33615 Bielefeld http://www.math.uni-bielefeld.de/~gaehler/ From J.Howie at hw.ac.uk Thu Nov 20 10:20:15 2014 From: J.Howie at hw.ac.uk (Jim Howie) Date: Thu, 20 Nov 2014 10:20:15 +0000 Subject: [GAP Forum] Assistant Professor position at Heriot-Watt Message-ID: <546DC05F.5010309@hw.ac.uk> Dear Colleagues, Please excuse any multiple postings. Heriot-Watt University is currently advertising an assistant professorship in mathematics. Details at http://www.hw.ac.uk/about/careers/job-opportunities/assistant-professor-mathematics-19449.htm Please pass this on to anyone who may be interested. Regards, Jim Howie ----- We invite research leaders and ambitious early career researchers to join us in leading and driving research in key inter-disciplinary themes. Please see www.hw.ac.uk/researchleaders for further information and how to apply. Heriot-Watt University is a Scottish charity registered under charity number SC000278. From alexk at mcs.st-andrews.ac.uk Fri Nov 21 11:00:20 2014 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Fri, 21 Nov 2014 11:00:20 +0000 Subject: [GAP Forum] GAP 4.7.6 release announcement Message-ID: Dear GAP Forum, This is to announce the release of GAP 4.7.6, which could be downloaded from http://www.gap-system.org/Releases/ One of the new features is that Windows users may now use the standard installer http://www.gap-system.org/pub/gap/gap47/exe/gap4r7p6_2014_11_15-20_02.exe which became an official format for the GAP distribution for Windows. Alternative installers for Linux and OS X (BOB and GAP Rsync) will be updated later in due course. The overview of changes in GAP 4.7.6 versus GAP 4.7.5 is given below. Fixed bugs which could lead to incorrect results: * A bug that may cause ShortestVectors to return an incomplete list. [Reported by Florian Beye] * A bug that may lead to incorrect results and infinite loops when GAP is compiled without GMP support using gcc 4.9. * A bug that may cause OrthogonalEmbeddings to return an incomplete result. [Reported by Benjamin Sambale] Fixed bugs that could lead to break loops: * ClosureGroup should be used instead of in case there is no parent group, otherwise some calculations such as e.g. NormalSubgroups may fail. [Reported by Dmitrii Pasechnik] * Fixed a line in the code that used a hard-coded identity permutation, not a generic identity element of a group. [Reported by Toshio Sumi] * Fixed a problem in the new code for calculating maximal subgroups that caused a break loop for some groups from the transitive groups library. [Reported by Petr Savicky] * Fixed a problem in ClosureSubgroup not accepting some groups without Parent. [Reported by Inneke van Gelder] Other fixed bugs: * Eliminated a number of compiler warnings detected with some newer versions of C compilers. * Some minor bugs in the transformation and partial permutation code and documentation were resolved. In addition to the improved functionality and fixed bugs in the core GAP system, GAP 4.7.6 includes 25 updates of GAP packages: Package name | Version | Date ------------------------------------------------ AutoDoc | 2014.08.21 | 21/08/2014 Browse | 1.8.6 | 15/08/2014 Congruence | 1.1.1 | 28/10/2014 cvec | 2.5.3 | 08/11/2014 Example | 3.4.5 | 28/10/2014 Float | 0.6.2 | 29/08/2014 genss | 1.6.2 | 24/09/2014 GradedModules | 2014.09.17 | 17/09/2014 GradedRingForHomalg | 2014.08.27 | 27/08/2014 homalg | 2014.09.14 | 14/09/2014 IO | 4.4.4 | 10/11/2014 LAGUNA | 3.7.0 | 11/11/2014 LiePRing | 1.6 | 08/11/2013 LocalizeRingForHomalg | 2014.08.27 | 27/08/2014 MatricesForHomalg | 2014.08.26 | 26/08/2014 ModIsom | 2.3.2 | 04/07/2014 Modules | 2014.07.02 | 02/07/2014 orb | 4.7.3 | 08/11/2014 RCWA | 3.7.0 | 21/07/2014 recog | 1.2.3 | 24/09/2014 recogbase | 1.2.3 | 24/09/2014 ResClasses | 3.4.0 | 21/07/2014 Semigroups | 2.1.1 | 09/09/2014 UnitLib | 3.2.0 | 11/11/2014 Wedderga | 4.7.1 | 07/11/2014 ================================================ We encourage all users to upgrade to GAP 4.7.6. If you need any help or would like to report any problems, please do not hesitate to contact us at support at gap-system.org. Wishing you fun and success using GAP, The GAP Group P.S. You may also find some GAP related news on Twitter: http://twitter.com/gap_system From harshaarora.2008 at gmail.com Sun Nov 23 10:41:15 2014 From: harshaarora.2008 at gmail.com (Harsha Arora) Date: Sun, 23 Nov 2014 16:11:15 +0530 Subject: [GAP Forum] Getting problem in structure description of a subgroup In-Reply-To: References: Message-ID: Dear Sir I have written code to get autocenter of a group , that is collection of all those elements in G which are fixed by all automorphisms of G, like center of G as centeral elements are fixed by all inner automorphisms of G . I have got the output. But i m not getting the structure description of the subgroup. I am getting the message no method is installed. Can i get the code of how to find center of a group and derived subgroup of a group. With regards Harsha From alexk at mcs.st-andrews.ac.uk Mon Nov 24 11:29:58 2014 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Mon, 24 Nov 2014 11:29:58 +0000 Subject: [GAP Forum] Getting problem in structure description of a subgroup In-Reply-To: References: Message-ID: Dear Harsha, On 23 Nov 2014, at 10:41, Harsha Arora wrote: > Dear Sir > > I have written code to get autocenter of a group , that is collection of > all those elements in G which are fixed by all automorphisms of G, like > center of G as centeral elements are fixed by all inner automorphisms of G > . I have got the output. But i m not getting the structure description of > the subgroup. It's hard to answer this without seeing the exact calculation. Is it the case that you are trying to call 'StructureDescription' on a list of elements and not on a group they generate? > I am getting the message no method is installed. Can i get > the code of how to find center of a group and derived subgroup of a group. Yes - see 'Centre' and 'DerivedSubgroup' HTH Alexander From alexk at mcs.st-andrews.ac.uk Tue Nov 25 09:37:36 2014 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Tue, 25 Nov 2014 09:37:36 +0000 Subject: [GAP Forum] Acceptance of the GAP package ModIsom Message-ID: Dear GAP Forum, it is my great pleasure to announce that the ModIsom package for computing automorphisms and checking isomorphisms for modular group algebras of finite p-groups has been officially accepted as GAP package. The package is authored by Bettina Eick (Braunschweig, Germany). It contains various methods for computing with nilpotent associative algebras. In particular, it contains a method to determine the automorphism group and to test isomorphism of such algebras over finite fields and of modular group algebras of finite p-groups. Furthermore, it contains a nilpotent quotient algorithm for finitely presented associative algebras and a method to determine Kurosh algebras. The package in its current version 2.3.2 is already contained in the latest official GAP distribution 4.7.6 which was released on 15.11.2014. It is maintained by Bettina Eick and myself, and has a public issue tracker on Bitbucket at https://bitbucket.org/gap-system/modisom/issues See http://www.gap-system.org/Packages/modisom.html for further information on this GAP package. Best regards, Alexander From L.H.Soicher at qmul.ac.uk Tue Nov 25 10:01:42 2014 From: L.H.Soicher at qmul.ac.uk (Leonard Soicher) Date: Tue, 25 Nov 2014 10:01:42 +0000 Subject: [GAP Forum] Announcing the LiePRing package Message-ID: <20141125100142.GA32547@maths.qmul.ac.uk> Dear Forum Members, It is my pleasure to announce the officially accepted LiePRing (version 1.6) package for GAP, now available in the newly released GAP 4.7.6. The LiePRing package is authored by Michael Vaughan-Lee (Oxford) and Bettina Eick (Braunschweig), and on behalf of the GAP Council, I thank them for this contribution to GAP. The LiePRing package gives access to the database of Lie p-rings of order at most p^7, as determined by Mike Newman, Eamonn O'Brien and Michael Vaughan-Lee, and provides some functionality to work with these Lie p-rings. LiePRing makes use of the LieRing package. The LiePRing package can be downloaded from its GAP webpage: http://www.gap-system.org/Packages/liepring.html where you can also find PDF documentation. Leonard Soicher From pabourdi at laas.fr Thu Nov 27 16:18:03 2014 From: pabourdi at laas.fr (Pierre-Alain BOURDIL) Date: Thu, 27 Nov 2014 17:18:03 +0100 Subject: [GAP Forum] CanonicalRightCosetElements on a rightransversal of a subgroup of a dihedral group Message-ID: <54774EBB.5010904@laas.fr> Dear GAP Forum, i have an issue related to a right coset representative on a dihedral group. Is there a explanation for such an error ? gap> L:=DihedralGroup(IsPermGroup,10);; gap> S25:=Stabilizer(L,[2,5],OnSets);; gap> RT25:=RightTransversal(L,S25);; gap> List(RT25); [ (), (1,5,4,3,2), (1,4,2,5,3), (1,2)(3,5), (1,3,5,2,4) ] gap> CanonicalRightCosetElement(RT25,(1,4,2,5,3)); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `CanonicalRightCosetElement' on 2 arguments called from ( ) called from read-eval loop at line 75 of *stdin* you can 'quit;' to quit to outer loop, or you can 'return;' to continue regards -- Pierre-Alain BOURDIL pabourdi at laas.fr pierre-alain.bourdil at fr.thalesgroup.com From burkhard at hoefling.name Thu Nov 27 16:46:53 2014 From: burkhard at hoefling.name (=?iso-8859-1?Q?Burkhard_H=F6fling?=) Date: Thu, 27 Nov 2014 17:46:53 +0100 Subject: [GAP Forum] CanonicalRightCosetElements on a rightransversal of a subgroup of a dihedral group In-Reply-To: <54774EBB.5010904@laas.fr> References: <54774EBB.5010904@laas.fr> Message-ID: <69B626A6-222C-4ADA-82E2-827AC0BBCF6F@hoefling.name> On 27 Nov 2014, at 17:18, Pierre-Alain BOURDIL wrote: > gap> CanonicalRightCosetElement(RT25,(1,4,2,5,3)); The first argument of CanonicalRightCosetElement is the subgroup itself (not the transversal): gap> CanonicalRightCosetElement(S25,(1,4,2,5,3)); (1,4)(2,3) Cheers Burkhard. From jeanclaudearbaut at orange.fr Tue Dec 2 18:29:16 2014 From: jeanclaudearbaut at orange.fr (Jean-Claude Arbaut) Date: Tue, 02 Dec 2014 19:29:16 +0100 Subject: [GAP Forum] Bitwise operators Message-ID: <547E04FC.1090706@orange.fr> Hello all, There was a question a few years ago about bitwise operators in GAP - in february 2010, see here: http://mail.gap-system.org/pipermail/forum/2010/002701.html At that time, it seems GAP didn't have these, I wonder if things have changed since. If so, could somebody point me to the manual for them? Otherwise, here is an attempt to convince the reader they are indeed necessary. The answer back then was that the representation was not consistent with bitwise operators. However, these operators are defined on the integers, independently of any representation. Like addition, subtraction, multiplication, and division. They just happen to be easier to compute when the numbers are written in binary, but it should not be a concern. For example, languages such as Python, Common Lisp or Mathematica implement bitwise operators on big integers, without a problem. Now, there may be some reasons to want them in GAP. "Groups, Algorithms, Programming"? But many algorithms use bitwise operators. Anderson's Bit Twiddling Hacks (https://graphics.stanford.edu/~seander/bithacks.html) and Warren's book Hacker's Delight show many examples usable at the assembly programming level. Their use to compute Gray code is also rather well known (http://en.wikipedia.org/wiki/Gray_code#Converting_to_and_from_Gray_code). Here is another example I found recently (another well known application, it seems): when implementing Lucas-Lehmer test for Mersenne primes, it's possible to eliminate division and replace it with a few bitwise ops. See here for example: http://rosettacode.org/wiki/Talk:Lucas-Lehmer_test#Speeding_things_up The speed is highly improved, as one might guess (bitwise ops are usually O(n), division is much harder). Now, I hope I have shown some good reasons to include bitwise operators in the language, if they are not already here :-) Best regards, Jean-Claude Arbaut From moritz.schmitt at gmail.com Wed Dec 3 15:59:38 2014 From: moritz.schmitt at gmail.com (Moritz Schmitt) Date: Wed, 3 Dec 2014 16:59:38 +0100 Subject: [GAP Forum] Computing eigenvalues with multiplicities Message-ID: Dear all, Let's assume we are given an integer matrix like m := [ [ 1, 0, 0 ], [ 0, -1, 0 ], [ 0, 0, 1 ] ] How do we compute all eigenvalues of m with multiplicities? If I use the command Eigenvalues(Rationals, m); I only get as output [1,-1] but actually need something like [1,1,-1]. I browsed GAP's manual but didn't find anything. Thanks in advance. Moritz From jeanclaudearbaut at orange.fr Wed Dec 3 18:12:15 2014 From: jeanclaudearbaut at orange.fr (Jean-Claude Arbaut) Date: Wed, 03 Dec 2014 19:12:15 +0100 Subject: [GAP Forum] Computing eigenvalues with multiplicities In-Reply-To: References: Message-ID: <547F527F.3000308@orange.fr> To get the multiplicities, you may use List(Eigenspaces(Rationals, m), Dimension); Since it uses the output of the function Eigenvalues, the lists should have the same order (unless the algorithm is randomized...). However, it's maybe to much work for GAP to get only the multiplicites. Then you can check the code for function Eigenvalues in gap4r7\lib\matrix.gi and adapt it to your needs: Eigenvalues actually calls GeneralisedEigenvalues, which returns a Set(Factors(...)). Here the factors are gap> Factors(UnivariatePolynomialRing(Rationals), MinimalPolynomial(Rationals, m, 1)); [ x_1-1, x_1+1 ] If you replace MinimalPolynomial with CharacteristicPolynomial, you get gap> Factors(UnivariatePolynomialRing(Rationals), CharacteristicPolynomial(Rationals, m)); [ x_1-1, x_1-1, x_1+1 ] Then you can recover the multiplicities. HTH, Jean-Claude Arbaut Le 03/12/2014 16:59, Moritz Schmitt a ?crit : > Dear all, > > Let's assume we are given an integer matrix like > > m := [ [ 1, 0, 0 ], [ 0, -1, 0 ], [ 0, 0, 1 ] ] > > How do we compute all eigenvalues of m with multiplicities? If I use the command > > Eigenvalues(Rationals, m); > > I only get as output > > [1,-1] > > but actually need something like [1,1,-1]. I browsed GAP's manual but > didn't find anything. > > Thanks in advance. > > Moritz > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From m.fayers at qmul.ac.uk Fri Dec 5 20:58:48 2014 From: m.fayers at qmul.ac.uk (Matt Fayers) Date: Fri, 5 Dec 2014 20:58:48 +0000 Subject: [GAP Forum] Strange behaviour with Union - possible bug? Message-ID: <54821C88.2040402@qmul.ac.uk> Dear GAP forum, I am experiencing some strange behaviour with GAP's Union function: the command Union([2],[3],[5,1..1]); returns [2,3] rather than the expected [1,2,3,5]. (If I do Union([2],[3],[5,1]) or Union([2],[5,1..1]) the behaviour is as expected.) Any ideas? I'm running GAP 4.7.5 on Linux (because that's the version that comes with my Linux distribution); I apologise if this has already been resolved in a more recent version. Best wishes, Matt Fayers. ____________________________________________________________________ Matthew Fayers School of Mathematical Sciences Queen Mary University of London Mile End Road London E1 4NS 020 7882 5479 www.maths.qmul.ac.uk.~mf/ ____________________________________________________________________ From caj21 at st-andrews.ac.uk Fri Dec 5 21:47:25 2014 From: caj21 at st-andrews.ac.uk (Christopher Jefferson) Date: Fri, 5 Dec 2014 21:47:25 +0000 Subject: [GAP Forum] Strange behaviour with Union - possible bug? In-Reply-To: <54821C88.2040402@qmul.ac.uk> References: <54821C88.2040402@qmul.ac.uk> Message-ID: There is indeed a bug here, and one which remains in the current version it seems. Thanks for reporting it. The bug is in the "JoinRanges" method. I am investigating further. Chris On 05/12/2014 21:58, "Matt Fayers" wrote: >Dear GAP forum, > >I am experiencing some strange behaviour with GAP's Union function: the >command > >Union([2],[3],[5,1..1]); > >returns > >[2,3] > >rather than the expected [1,2,3,5]. (If I do > >Union([2],[3],[5,1]) > >or > >Union([2],[5,1..1]) > >the behaviour is as expected.) > >Any ideas? I'm running GAP 4.7.5 on Linux (because that's the version >that comes with my Linux distribution); I apologise if this has already >been resolved in a more recent version. > >Best wishes, >Matt Fayers. >____________________________________________________________________ > >Matthew Fayers >School of Mathematical Sciences >Queen Mary University of London >Mile End Road >London >E1 4NS >020 7882 5479 >www.maths.qmul.ac.uk.~mf/ >____________________________________________________________________ > >_______________________________________________ >Forum mailing list >Forum at mail.gap-system.org >http://mail.gap-system.org/mailman/listinfo/forum From caj21 at st-andrews.ac.uk Fri Dec 5 22:35:14 2014 From: caj21 at st-andrews.ac.uk (Christopher Jefferson) Date: Fri, 5 Dec 2014 22:35:14 +0000 Subject: [GAP Forum] Strange behaviour with Union - possible bug? In-Reply-To: <54821C88.2040402@qmul.ac.uk> References: <54821C88.2040402@qmul.ac.uk> Message-ID: Hi Matt, There is indeed a bug in GAP, to do with downward running ranges. I believe this can be fixed by adding the following lines to the start of the 'JoinRanges' method (which is at line 2538 of file lib/coll.gi on my machine), but not this fix is not completely tested yet. # Make ranges run upwards if da < 0 then x:=a1;a1:=a0;a0:=x;da:=-da; fi; if db < 0 then x:=b1;b1:=b0;b0:=x;db:=-db; fi; I am currently testing this fix carefully, and making sure there are no similar bugs. Chris On 05/12/2014 21:58, "Matt Fayers" wrote: >Dear GAP forum, > >I am experiencing some strange behaviour with GAP's Union function: the >command > >Union([2],[3],[5,1..1]); > >returns > >[2,3] > >rather than the expected [1,2,3,5]. (If I do > >Union([2],[3],[5,1]) > >or > >Union([2],[5,1..1]) > >the behaviour is as expected.) > >Any ideas? I'm running GAP 4.7.5 on Linux (because that's the version >that comes with my Linux distribution); I apologise if this has already >been resolved in a more recent version. > >Best wishes, >Matt Fayers. >____________________________________________________________________ > >Matthew Fayers >School of Mathematical Sciences >Queen Mary University of London >Mile End Road >London >E1 4NS >020 7882 5479 >www.maths.qmul.ac.uk.~mf/ >____________________________________________________________________ > >_______________________________________________ >Forum mailing list >Forum at mail.gap-system.org >http://mail.gap-system.org/mailman/listinfo/forum From arikan at gazi.edu.tr Wed Dec 10 07:03:07 2014 From: arikan at gazi.edu.tr (AHMET ARIKAN) Date: Wed, 10 Dec 2014 09:03:07 +0200 (EET) Subject: [GAP Forum] InputLogTo command In-Reply-To: Message-ID: <1553220344.172721.1418194987940.JavaMail.root@gazi.edu.tr> Dear Forum, We have received the following message after completing InputLogTo("orderFrequency"); process. But anyway orderFrequence command works. We wonder the reason of the message. In addition, while we were using LogTo command to save the works, some of the student's computers did not save the rest of the notes after the error message. Why? Thank you for your help Ahmet Arikan ------------------------- ... gap> Read("orderFrequency"); Error, InputLogTo: can not close the logfile in CLOSE_INPUT_LOG_TO( ); called from ( ) called from read-eval loop at line 7 of orderFrequency gap> orderFrequency(G[1]); [Order of elements Number of that order]=[ [ 1, 1 ], [ 2, 1 ], [ 3, 2 ], [ 4, 2 ], [ 6, 2 ], [ 8, 12 ], [ 12, 4 ] ] ---------------------------- From arikan at gazi.edu.tr Wed Dec 10 17:46:48 2014 From: arikan at gazi.edu.tr (AHMET ARIKAN) Date: Wed, 10 Dec 2014 19:46:48 +0200 (EET) Subject: [GAP Forum] InputLogTo command Message-ID: <1209667833.317911.1418233608444.JavaMail.root@gazi.edu.tr> Dear Forum, We have received the following message after completing InputLogTo("orderFrequency"); process. But anyway orderFrequence command works. We wonder the reason of the message. In addition, while we were using LogTo command to save the works, some of the student's computers did not save the rest of the notes after the error message. Why? Thank you for your help Ahmet Arikan ------------------------- ... gap> Read("orderFrequency"); Error, InputLogTo: can not close the logfile in CLOSE_INPUT_LOG_TO( ); called from ( ) called from read-eval loop at line 7 of orderFrequency gap> orderFrequency(G[1]); [Order of elements Number of that order]=[ [ 1, 1 ], [ 2, 1 ], [ 3, 2 ], [ 4, 2 ], [ 6, 2 ], [ 8, 12 ], [ 12, 4 ] ] ---------------------------- From alexk at mcs.st-andrews.ac.uk Wed Dec 10 20:52:50 2014 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Wed, 10 Dec 2014 20:52:50 +0000 Subject: [GAP Forum] InputLogTo command In-Reply-To: <1209667833.317911.1418233608444.JavaMail.root@gazi.edu.tr> References: <1209667833.317911.1418233608444.JavaMail.root@gazi.edu.tr> Message-ID: Dear Ahmet, On 10 Dec 2014, at 17:46, AHMET ARIKAN wrote: > > Dear Forum, > > We have received the following message after completing InputLogTo("orderFrequency"); process. Do you mean InputLogTo or Read as shown below? Anyhow, it's hard to say anything without knowing what's in the content of "orderFrequency" file. You may paste its content in your reply, but do not attach it as a file - Forum software blocks attachments. Also note note that InputLogTo and LogTo cannot be used at the same time. Hope this gives some clues, Alexander > But anyway orderFrequence command works. We wonder the reason of the message. In addition, while we were using LogTo command to save the works, some of the student's computers did not save the rest of the notes after the error message. Why? > > Thank you for your help > > Ahmet Arikan > > ------------------------- > ... > gap> Read("orderFrequency"); > Error, InputLogTo: can not close the logfile in > CLOSE_INPUT_LOG_TO( ); called from > ( ) > called from read-eval loop at line 7 of orderFrequency > gap> orderFrequency(G[1]); > [Order of elements Number of that order]=[ [ 1, 1 ], [ 2, 1 ], [ 3, 2 ], > [ 4, 2 ], [ 6, 2 ], [ 8, 12 ], [ 12, 4 ] ] > > ---------------------------- > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From graham.ellis at nuigalway.ie Wed Dec 10 21:22:05 2014 From: graham.ellis at nuigalway.ie (Ellis, Grahamj) Date: Wed, 10 Dec 2014 21:22:05 +0000 Subject: [GAP Forum] Acceptance of the GAP package Congruence Message-ID: Dear Forum Members, I am very pleased to announce that the GAP package Congruence (version 1.1.1) has been officially accepted as a package for GAP, and is included in the latest GAP 4.7.6 release. The package is authored by Ann Dooms, Eric Jespers, Alexander Konovalov and Helena Verrill, and is maintained by Alexander Konovalov. On behalf of the GAP Council I wish to thank the authors for this contribution to GAP. The Congruence package provides functions for constructing several types of canonical congruence subgroups in SL_2(Z), as well as intersections of a finite number of such subgroups. Furthermore, it implements the algorithm for generating Farey symbols for congruence subgroups and using them to produce a system of independent generators for these subgroups The Congruence package can be downloaded from its GAP webpage http://www.gap-system.org/Packages/congruence.html where PDF documentation is available. All the best, Graham School of Mathematics, Statistics & Applied Mathematics National University of Ireland, Galway University Road, Galway Ireland http://hamilton.nuigalway.ie tel: 091 493011 From harshaarora.2008 at gmail.com Sat Dec 13 13:46:39 2014 From: harshaarora.2008 at gmail.com (Harsha Arora) Date: Sat, 13 Dec 2014 19:16:39 +0530 Subject: [GAP Forum] How to get code of an operation Message-ID: Dear sir I want to know about the method to get code of an operation like issimple isabelian center etc. With regards Harsha From alexk at mcs.st-andrews.ac.uk Sat Dec 13 14:45:56 2014 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Sat, 13 Dec 2014 14:45:56 +0000 Subject: [GAP Forum] How to get code of an operation In-Reply-To: References: Message-ID: <400740AA-7F71-4849-A966-49FE92E3D06B@mcs.st-andrews.ac.uk> Dear Harsha, please see this GAP Forum thread: http://mail.gap-system.org/pipermail/forum/2014/004665.html which answers your question. Best wishes Alexander On 13 Dec 2014, at 13:46, Harsha Arora wrote: > Dear sir > > I want to know about the method to get code of an operation like issimple > isabelian center etc. > With regards > Harsha > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From shinyasakai at 163.com Sat Dec 13 15:57:49 2014 From: shinyasakai at 163.com (=?GBK?B?0e643w==?=) Date: Sat, 13 Dec 2014 23:57:49 +0800 (CST) Subject: [GAP Forum] Use GAP3 program ( especially the package CHIEVE) for computing the h-polynomials of Lusztig Message-ID: <2388ab0c.8b44.14a445ec5bd.Coremail.shinyasakai@163.com> I know about the computation of Kazhdan-Lusztig basis and change between "T" and "C"-basis using GAP3. But how can I compute the $h$-polynomials as defined in $$c_xc_y = \sum_{z \in W}h_{x,y,z}c_z,$$ for any $x,y,z$ in a Coxeter group $W$, using GAP3? Or, how can I compute the $f$-polynomials as defined in $$T_xT_y = \sum_{z \in W}f_{x,y,z}T_z.$$ using GAP3? This is the first time I send an email to this forum, so please forgive me if there is any improperness.in my language or manner. Thanks. From shinyasakai at 163.com Sun Dec 14 16:18:01 2014 From: shinyasakai at 163.com (=?GBK?B?0e643w==?=) Date: Mon, 15 Dec 2014 00:18:01 +0800 (CST) Subject: [GAP Forum] Can GAP3 program ( especially the package CHIEVE) deal with arbitrary Coxeter groups? Message-ID: <302a4654.16451.14a4997a208.Coremail.shinyasakai@163.com> In the mannual, I only see examples concerning finite Coxeter groups. Then, can GAP3 deal with arbitrary Coxeter groups, for example, affine Weyl groups, or Coxeter groups in which the multiplication of two simple reflections has infinite order? Thank you very much. From jean.michel at imj-prg.fr Sun Dec 14 01:08:57 2014 From: jean.michel at imj-prg.fr (Jean Michel) Date: Sun, 14 Dec 2014 02:08:57 +0100 Subject: [GAP Forum] Use GAP3 program ( especially the package CHIEVE) for computing the h-polynomials of Lusztig In-Reply-To: <2388ab0c.8b44.14a445ec5bd.Coremail.shinyasakai@163.com> References: <2388ab0c.8b44.14a445ec5bd.Coremail.shinyasakai@163.com> Message-ID: <20141214010855.GA11225@imj-prg.fr> Hello, > I know about the computation of Kazhdan-Lusztig basis and change between "T" and "C"-basis using GAP3. But how can I compute the $h$-polynomials as defined in > $$c_xc_y = \sum_{z \in W}h_{x,y,z}c_z,$$ > for any $x,y,z$ in a Coxeter group $W$, using GAP3? > Or, how can I compute the $f$-polynomials as defined in > $$T_xT_y = \sum_{z \in W}f_{x,y,z}T_z.$$ > using GAP3? It is straightforward to do what you want: gap> W:=CoxeterGroup("A",3);q:=X(Rationals);q.name:="q"; CoxeterGroup("A",3) X(Rationals) "q" gap> H:=Hecke(W,q^2,q);C:=Basis(H,"C");;T:=Basis(H,"T");; Hecke(A3,q^2,q) gap> a:=T(1,2)^2; q^2T(2,1)+(q^2-1)T(1,2,1) gap> a.coeff; [ q^2, q^2 - 1 ] gap> Coefficient(a,[2,1]); q^2 gap> Coefficient(a,[1,2,1]); q^2 - 1 gap> b:=C(1,2)^2; C(1,2)+(-q-q^-1)C(1,2,1) gap> b.coeff; [ -q - q^(-1), q^0 ] gap> Coefficient(b,[1,2,1]); -q - q^(-1) Best regards, ------------------------------------------------------------------------------ Jean MICHEL, Groupes et representations, IMJ-PRG UMR7586 tel.(33)157279144 Bureau 639 Bat. Sophie Germain Case 7012 - 75205 PARIS Cedex 13 From jean.michel at imj-prg.fr Sun Dec 14 22:50:28 2014 From: jean.michel at imj-prg.fr (Jean Michel) Date: Mon, 15 Dec 2014 06:50:28 +0800 Subject: [GAP Forum] Can GAP3 program ( especially the package CHIEVE) deal with arbitrary Coxeter groups? In-Reply-To: <302a4654.16451.14a4997a208.Coremail.shinyasakai@163.com> References: <302a4654.16451.14a4997a208.Coremail.shinyasakai@163.com> Message-ID: <20141214225026.GA9841@imj-prg.fr> On Mon, Dec 15, 2014 at 12:18:01AM +0800, ?? wrote: > In the mannual, I only see examples concerning finite Coxeter groups. > Then, can GAP3 deal with arbitrary Coxeter groups, for example, affine > Weyl groups, or Coxeter groups in which the multiplication of two simple > reflections has infinite order? CHEVIE can work with arbitrary Coxeter groups. In the manual, look at the functions CoxeterGroupByCoxeterMatrix CoxeterGroupByCartanMatrix Affine Best regards. ------------------------------------------------------------------------------ Jean MICHEL, Groupes et representations, IMJ-PRG UMR7586 tel.(33)157279144 Bureau 639 Bat. Sophie Germain Case 7012 - 75205 PARIS Cedex 13 From alexander.konovalov at st-andrews.ac.uk Fri Dec 19 11:15:31 2014 From: alexander.konovalov at st-andrews.ac.uk (Alexander Konovalov) Date: Fri, 19 Dec 2014 11:15:31 +0000 Subject: [GAP Forum] OpenMath package In-Reply-To: <32E2A08B-D99C-4D28-B220-A07F23C8C37F@mykolab.com> References: <32E2A08B-D99C-4D28-B220-A07F23C8C37F@mykolab.com> Message-ID: <84680596-2C85-4CA3-B16A-5BF32F0EC0D1@st-andrews.ac.uk> Hello Sandeep, You have to compile the IO package. I presume you did not compile packages at all - if this is the case, you may use InstPackages.sh script linked from http://www.gap-system.org/Releases/index.html to to them at once. HTH Alexander On 19 Dec 2014, at 11:07, Sandeep Murthy wrote: > Hi > > I am having some issues with OpenMath on GAP 4.7.6. I recently > installed 4.7.6 on my machine (running OS X 10.10.1) by compiling > from source. It appears OpenMath is installed automatically > with the GAP installation (in /Applications/GAP/gap4r7/pkg/openmath), > and GAPDoc is also installed. > > But the package test > > /Applications/GAP/gap4r7/pkg/openmath/tst/testall.g > > fails. I have attached the output. It appears the package cannot > be loaded: > > gap> LoadPackage( "openmath" ); > fail > > I haven?t had problems with other packages and I ran the GAP > installation test and it seems to be fine. > > I would appreciate some help with making openmath work. Thanks in > advance. > > Sandeep Murthy > s.murthy at mykolab.com > > From harshaarora.2008 at gmail.com Sun Dec 28 06:20:33 2014 From: harshaarora.2008 at gmail.com (Harsha Arora) Date: Sun, 28 Dec 2014 11:50:33 +0530 Subject: [GAP Forum] (no subject) Message-ID: Dear Sir I have written code to get autocenter of a group , that is collection of all those elements in G which are fixed by all automorphisms of G, like center of G as centeral elements are fixed by all inner automorphisms of G . I have got the output. But i m not getting the structure description of the subgroup. I am getting the message no method is installed. I also want to know the way to feed a group with generators and relation. Autocenter:=function(G) local aut,auts,L; aut:=AutomorphismGroup(G); L:=Filtered(AsList(G),g->ForAll(AsList(aut), auts->Image(auts,g)=g)); return(L); end; function( G ) ... end Autocenter(CyclicGroup(4)); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `AsList' on 2 arguments Autocenter(CyclicGroup(4)); [ of ..., f2 ] StructureDescription(Autocenter(CyclicGroup(4))); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `StructureDescription' on 1 arguments IsSubgroup(CyclicGroup(4),Autocenter(CyclicGroup(4))); false ALTERNATIVE WAY IS image:=function(G,g) local L,aut,auts,i,j; aut:=AutomorphismGroup(G); L:=[]; for auts in aut do AddSet(L, Image(auts,g));od; return(L); end; function( G, g ) ... end autc:=function(G) local H; H:=Filtered(G, g->Size(image(G,g)=1)); return(H); end; function( G ) ... end autc(CyclicGroup(4)); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `Size' on 1 arguments. PLEASE SOLVE MY PROBLEM. With regards Harsha From harshaarora.2008 at gmail.com Sun Dec 28 06:25:55 2014 From: harshaarora.2008 at gmail.com (Harsha Arora) Date: Sun, 28 Dec 2014 11:55:55 +0530 Subject: [GAP Forum] to get correction in code. Message-ID: Dear Sir I have written code to get autocenter of a group , that is collection of all those elements in G which are fixed by all automorphisms of G, like center of G as centeral elements are fixed by all inner automorphisms of G . I have got the output. But i m not getting the structure description of the subgroup. I am getting the message no method is installed. I also want to know the way to feed a group with generators and relation. Autocenter:=function(G) local aut,auts,L; aut:=AutomorphismGroup(G); L:=Filtered(AsList(G),g->ForAll(AsList(aut), auts->Image(auts,g)=g)); return(L); end; function( G ) ... end Autocenter(CyclicGroup(4)); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `AsList' on 2 arguments Autocenter(CyclicGroup(4)); [ of ..., f2 ] StructureDescription(Autocenter(CyclicGroup(4))); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `StructureDescription' on 1 arguments IsSubgroup(CyclicGroup(4),Autocenter(CyclicGroup(4))); false ALTERNATIVE WAY IS image:=function(G,g) local L,aut,auts,i,j; aut:=AutomorphismGroup(G); L:=[]; for auts in aut do AddSet(L, Image(auts,g));od; return(L); end; function( G, g ) ... end autc:=function(G) local H; H:=Filtered(G, g->Size(image(G,g)=1)); return(H); end; function( G ) ... end autc(CyclicGroup(4)); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `Size' on 1 arguments. PLEASE SOLVE MY PROBLEM. With regards Harsha __ From steve.linton at st-andrews.ac.uk Sun Dec 28 08:26:19 2014 From: steve.linton at st-andrews.ac.uk (Stephen Linton) Date: Sun, 28 Dec 2014 08:26:19 +0000 Subject: [GAP Forum] to get correction in code. In-Reply-To: References: Message-ID: <4D33909F-53AE-4167-A5A2-DDBBAE9A31D5@st-andrews.ac.uk> Dear Harsha, Your Autocenter function returns a list of the elements of the autocenter, but GAP distinguishes between a simple list of elements and a group. The AsGroup operation will turn such a list into an actual group object (if the elements of the list form a group, as they do here). gap> Autocenter(CyclicGroup(4)); [ of ..., f2 ] gap> AsGroup(last); gap> StructureDescription(last); ?C2" A couple of remarks that might be useful if you want to deal with larger groups: There are certainly more efficient methods of computing the autocenter for larger groups. For instance you could start with the Centre of the group and then intersect it with the fixed subgroups of a set of generators for the outer automorphism groups. Secondly, be aware of the limits of StructureDescription. For instance there are non-isomorphic groups with the same StructureDescription. Finally, to construct a finitely presented group, follow the documentation at http://www.gap-system.org/Manuals/doc/ref/chap47.html#X7AA982637E90B35A Steve > On 28 Dec 2014, at 06:25, Harsha Arora wrote: > > Dear Sir > > I have written code to get autocenter of a group , that is collection of > all those elements in G which are fixed by all automorphisms of G, like > center of G as centeral elements are fixed by all inner automorphisms of G > . I have got the output. But i m not getting the structure description of > the subgroup. I am getting the message no method is installed. I also > want to know the way to feed a group with generators and relation. > > Autocenter:=function(G) > > local aut,auts,L; > > aut:=AutomorphismGroup(G); > > L:=Filtered(AsList(G),g->ForAll(AsList(aut), auts->Image(auts,g)=g)); > > return(L); > > end; > > > function( G ) ... end > > Autocenter(CyclicGroup(4)); > > Error, no method found! For debugging hints type ?Recovery from > NoMethodFound > > Error, no 1st choice method found for `AsList' on 2 arguments > > Autocenter(CyclicGroup(4)); > > [ of ..., f2 ] > > StructureDescription(Autocenter(CyclicGroup(4))); > > Error, no method found! For debugging hints type ?Recovery from > NoMethodFound > > Error, no 1st choice method found for `StructureDescription' on 1 arguments > > IsSubgroup(CyclicGroup(4),Autocenter(CyclicGroup(4))); > > false > ALTERNATIVE WAY IS > > image:=function(G,g) > > local L,aut,auts,i,j; > > aut:=AutomorphismGroup(G); > > L:=[]; > > for auts in aut do > > AddSet(L, Image(auts,g));od; > > return(L); > > end; > > function( G, g ) ... end > > autc:=function(G) > > local H; > > H:=Filtered(G, g->Size(image(G,g)=1)); > > return(H); > > end; > > function( G ) ... end > > autc(CyclicGroup(4)); > > Error, no method found! For debugging hints type ?Recovery from > NoMethodFound > > Error, no 1st choice method found for `Size' on 1 arguments. > > > PLEASE SOLVE MY PROBLEM. > > With regards > Harsha > __ > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From klajok at interia.pl Mon Dec 29 17:27:14 2014 From: klajok at interia.pl (Daniel Blazewicz) Date: Mon, 29 Dec 2014 18:27:14 +0100 Subject: [GAP Forum] GaloisType is running very long Message-ID: Dear GAP forum, I was executing GaloisType method for several irreducible polynomials of the form x^12+ax+b to find solvable examples. And my loop "hung" at x^12+63*x-450. After 2 days I decided to break the execution. FYI, I use 4 years old laptop with ~2GHz CPU. Do you know if it is expected that GaloisType method can take days (weeks?) for polynomials of 12th degree? GAP forum audience is relatively big. Perhaps someone has an experience in this area... The only information I found was 1) http://mail.gap-system.org/pipermail/forum/2006/001456.html : "Also the type returned by `GaloisType' is proven correct -- at the cost that such a test might take very long for certain polynomials." 2) http://www.gap-system.org/Manuals/doc/ref/chap66.html : "This function is provided for rational polynomials of degree up to 15. However, in some cases the required calculations become unfeasibly large. For a few polynomials of degree 14, a complete discrimination is not yet possible, as it would require computations, that are not feasible with current factoring methods." Best regards, Daniel B?a?ewicz From hulpke at math.colostate.edu Mon Dec 29 18:11:34 2014 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Mon, 29 Dec 2014 11:11:34 -0700 Subject: [GAP Forum] GaloisType is running very long In-Reply-To: References: Message-ID: Dear Forum, Dear Daniel Blazewicz, > I was executing GaloisType method for several irreducible polynomials of the form x^12+ax+b to find solvable examples. And my loop "hung" at x^12+63*x-450. After 2 days I decided to break the execution. FYI, I use 4 years old laptop with ~2GHz CPU. Do you know if it is expected that GaloisType method can take days (weeks?) for polynomials of 12th degree? Yes and No. Why No: In your case there actually is a minor bug (a routine for approximating a root iterates between two approximations without stopping). This will be fixed in the next release. Thank you very much for reporting it. (I append the (pathetic -- it shows my lack of knowledge of numerical analysis) routine if you want an immediate patch.) What I would recommend for a search like yours is to call ProbabilityShapes on the polynomial first. If it returns S_n (or A_n) as only possibilities -- and this will happen in most cases -- the result is correct and you presumably can eliminate the polynomial. Why Yes: If you happen upon a polynomial whose Galois group is M_{12} the certificate for distinguishing it from A_{12} is very expensive. Such a calculation will possibly take weeks. (ProbabilityShapes should be done always quickly, but does not guarantee that a Galois group cannot be larger.) Best wishes, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke BindGlobal("ApproximateRoot",function(arg) local r,e,f,x,nf,lf,c,store,letzt; r:=arg[1]; e:=arg[2]; store:= e<=10 and IsInt(r) and 0<=r and r<=100; if store and IsBound(APPROXROOTS[e]) and IsBound(APPROXROOTS[e][r+1]) then return APPROXROOTS[e][r+1]; fi; if Length(arg)>2 then f:=arg[3]; else f:=10; fi; x:=RootInt(NumeratorRat(r),e)/RootInt(DenominatorRat(r),e); nf:=r; c:=0; letzt:=[]; repeat lf:=nf; Add(letzt,x); x:=ApproxRational(1/e*((e-1)*x+r/(x^(e-1))),f+6); nf:=AbsInt(x^e-r); if nf=0 then c:=6; else if nf>lf then lf:=nf/lf; else lf:=lf/nf; fi; if lf<2 then c:=c+1; else c:=0; fi; fi; # until 3 times no improvement until c>2 or x in letzt; if store then if not IsBound(APPROXROOTS[e]) then APPROXROOTS[e]:=[]; fi; APPROXROOTS[e][r+1]:=x; fi; return x; end); From klajok at interia.pl Mon Dec 29 19:38:35 2014 From: klajok at interia.pl (Daniel Blazewicz) Date: Mon, 29 Dec 2014 20:38:35 +0100 Subject: [GAP Forum] GaloisType is running very long In-Reply-To: References: Message-ID: Thank you very much for immediate answer and code fix. Seems your patch works fine. Best wishes, Daniel B?a?ewicz Od: "Alexander Hulpke" Do: "Daniel Blazewicz" ; Wys?ane: 19:12 Poniedzia?ek 2014-12-29 Temat: Re: [GAP Forum] GaloisType is running very long > Dear Forum, Dear Daniel Blazewicz, > > > I was executing GaloisType method for several irreducible polynomials of the form x^12+ax+b to find solvable examples. And my loop "hung" at x^12+63*x-450. After 2 days I decided to break the execution. FYI, I use 4 years old laptop with ~2GHz CPU. Do you know if it is expected that GaloisType method can take days (weeks?) for polynomials of 12th degree? > > Yes and No. > > Why No: > In your case there actually is a minor bug (a routine for approximating a root iterates between two approximations without stopping). This will be fixed in the next release. Thank you very much for reporting it. (I append the (pathetic -- it shows my lack of knowledge of numerical analysis) routine if you want an immediate patch.) > > What I would recommend for a search like yours is to call > ProbabilityShapes > on the polynomial first. If it returns S_n (or A_n) as only possibilities -- and this will happen in most cases -- the result is correct and you presumably can eliminate the polynomial. > > Why Yes: > If you happen upon a polynomial whose Galois group is M_{12} the certificate for distinguishing it from A_{12} is very expensive. Such a calculation will possibly take weeks. (ProbabilityShapes should be done always quickly, but does not guarantee that a Galois group cannot be larger.) > > Best wishes, > > Alexander Hulpke > > -- Colorado State University, Department of Mathematics, > Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA > email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 > http://www.math.colostate.edu/~hulpke > > > BindGlobal("ApproximateRoot",function(arg) > local r,e,f,x,nf,lf,c,store,letzt; > r:=arg[1]; > e:=arg[2]; > > store:= e<=10 and IsInt(r) and 0<=r and r<=100; > if store and IsBound(APPROXROOTS[e]) and IsBound(APPROXROOTS[e][r+1]) > then return APPROXROOTS[e][r+1]; > fi; > > if Length(arg)>2 then > f:=arg[3]; > else > f:=10; > fi; > x:=RootInt(NumeratorRat(r),e)/RootInt(DenominatorRat(r),e); > nf:=r; > c:=0; > letzt:=[]; > repeat > lf:=nf; > Add(letzt,x); > x:=ApproxRational(1/e*((e-1)*x+r/(x^(e-1))),f+6); > nf:=AbsInt(x^e-r); > if nf=0 then > c:=6; > else > if nf>lf then > lf:=nf/lf; > else > lf:=lf/nf; > fi; > if lf<2 then > c:=c+1; > else > c:=0; > fi; > fi; > # until 3 times no improvement > until c>2 or x in letzt; > if store then > if not IsBound(APPROXROOTS[e]) then > APPROXROOTS[e]:=[]; > fi; > APPROXROOTS[e][r+1]:=x; > fi; > return x; > end); > > > > > From shubh at cub.ac.in Tue Dec 30 12:01:18 2014 From: shubh at cub.ac.in (Shubh Narayan Singh (Assistant Professor, Mathematics)) Date: Tue, 30 Dec 2014 17:31:18 +0530 Subject: [GAP Forum] Error in DisplayHolonomyComponents command Message-ID: Dear GAP forum, I was checking the output with the command given in* SgpDec* (Holonomy Decomposition): gap> DisplayHolonomyComponents(Skeleton(Semigroup( [Transformation([1,1,2,3,5,4]), Transformation([3,4,1,6,1,5])]))); But, I am getting an error instead of known output given in* SgpDec* (Holonomy Decomposition). I would appreciate some help in finding error with the given command. Thanks in advance. -- -- *Sincerely,* *Shubh Narayan Singh* *-----------------------------------------------------Shubh Narayan Singh, Ph.D.Assistant Professor * *Department of MathematicsCentral University of BiharPatna - 800 014-----------------------------------------* *e-mail: shubh at cub.ac.in * *Mob: +91- 8404934146* From A.Egri-Nagy at uws.edu.au Tue Dec 30 21:31:30 2014 From: A.Egri-Nagy at uws.edu.au (Attila Egri-Nagy) Date: Tue, 30 Dec 2014 21:31:30 +0000 Subject: [GAP Forum] Error in DisplayHolonomyComponents command In-Reply-To: References: Message-ID: <69382961F8159B43A0CA0A5F6F75DD495C3A229D@HELM.AD.UWS.EDU.AU> Dear Shubh Narayan Singh, Since the issue seems to be specific to the SgpDec package it would be really helpful if you could report the error by creating a new issue here: https://bitbucket.org/egri-nagy/sgpdec/issues?status=new&status=open or if that is not possible, just send me an email. In any case, please include the full error message, without that it is almost impossible to guess what went wrong. Thanks! best wishes, Attila ________________________________________ From: forum-bounces at gap-system.org [forum-bounces at gap-system.org] on behalf of Shubh Narayan Singh (Assistant Professor, Mathematics) [shubh at cub.ac.in] Sent: Tuesday, December 30, 2014 11:01 PM To: forum at gap-system.org Subject: [GAP Forum] Error in DisplayHolonomyComponents command Dear GAP forum, I was checking the output with the command given in* SgpDec* (Holonomy Decomposition): gap> DisplayHolonomyComponents(Skeleton(Semigroup( [Transformation([1,1,2,3,5,4]), Transformation([3,4,1,6,1,5])]))); But, I am getting an error instead of known output given in* SgpDec* (Holonomy Decomposition). I would appreciate some help in finding error with the given command. Thanks in advance. -- -- *Sincerely,* *Shubh Narayan Singh* *-----------------------------------------------------Shubh Narayan Singh, Ph.D.Assistant Professor * *Department of MathematicsCentral University of BiharPatna - 800 014-----------------------------------------* *e-mail: shubh at cub.ac.in * *Mob: +91- 8404934146* _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum