From cohenj02 at tartarus.uwa.edu.au Sat Jan 1 07:34:58 2005 From: cohenj02 at tartarus.uwa.edu.au (Jonathan Cohen) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] Metrics for large and small permutation groups. In-Reply-To: References: Message-ID: Hi Javaid and Forum, > So what is the interpretation of "large groups"? This requires a bit of terminology. Let G be a permutation group acting on a set X. A *base* for G is a finite sequence of points from X whose stabiliser in G is trivial. An *infinite family* of permutation groups is called *small base* if the minimal length of a base is polylogarithmic in the degree. What this means is that there are positive constants a and b such that each group G in the family of degree n admits a base of length a*log^b(n). If not, then the family is called *large base*. Examples: -- The symmetric groups are large base, since the minimal base length is n-1 -- The cyclic groups are small base, since every cyclic groups admits a bse of length 1 -- The non-alternating finite simple groups are small base (this follows from a result of cameron) The *primitive* large base groups are the subgroups of wreath products S_n wr S_m which contain (A_n)^m, where the wreath product is in its product action and the action of S_n is on k-element subsets of {1,2,...,n} - this follows from cameron's result. Liebeck later sharpened the result to show that every other primitive group admits a base of length at 9log(n). Praeger and Shalev have lifted this result to *qusiprimitive groups*, that is, groups all of whose minimal normal subgroups are transitive. Bamberg has lifted it to *innately transitive* groups, that is, groups which have at least one transitive minimal normal subgroup. As far as I am aware, the question for transitive groups (or broader classes) remains open. *Large* means *large base* and *small* means *small base*. One often abuses the definition and refers to individual groups as small/large when it is clear what infinite family they belong to. References: Peter J. cameron Finite permutation groups and finite simple groups. Bull. London Math. Soc. 13(1)1--22, 1981 Martin W. Liebeck. On minimal degrees and base sizes of primitive permutation groups. Arch. Math (basel), 43(1):11-15, 1984 Cheryl E. Praeger and Aner Shalev. Bounds on finite quasiprimitive permutation groups. J. Aust. Math. Soc., 71(2):243-258, 2001 John Bamberg. Bounds and quotient actions of innately transitive groups, to appear in the J. Aust. Math. Soc. Available from: http://www.maths.uwa.edu.au/~john.bam/research/inntrans.html Jon -- http://www.maths.uwa.edu.au/~cohenj02 From dfh at maths.warwick.ac.uk Sat Jan 1 11:49:52 2005 From: dfh at maths.warwick.ac.uk (Derek Holt) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] Metrics for large and small permutation groups. In-Reply-To: References: Message-ID: <20050101114952.GA1225@maths.warwick.ac.uk> Dear GAP Forum Jonathan Cohen has helpfully provided a helpful and informative description of small and large base groups. But, since today is a holiday for the New Year, let me append a couple of quibbles! On Sat, Jan 01, 2005 at 03:34:58PM +0800, Jonathan Cohen wrote: > Hi Javaid and Forum, > > > So what is the interpretation of "large groups"? > > This requires a bit of terminology. Let G be a permutation group > acting on a set X. A *base* for G is a finite sequence of points from > X whose stabiliser in G is trivial. An *infinite family* of > permutation groups is called *small base* if the minimal length of a > base is polylogarithmic in the degree. What this means is that there > are positive constants a and b such that each group G in the > family of degree n admits a base of length a*log^b(n). If not, then > the family is called *large base*. > > Examples: > -- The symmetric groups are large base, since the minimal base length is > n-1 You have just said that "large base" applies to families of permutation groups rather than to individual groups, so presumably you mean that the family of symmetric groups { S_n | n in N } *is* small base. > -- The cyclic groups are small base, since every cyclic groups admits > a base of length 1 You have not specified a family of permutation groups here. The cyclic group generated by (1,2)(3,4,5) has no base of length 1 . > -- The non-alternating finite simple groups are small base (this > follows from a result of cameron) The non-alternating finite simple groups form a family of (isomorphism classes of) abstract groups rather than a family of permutation groups. Presumably you are saying here that the family of all equivalence classes of permutation representations of all non-alternating finite simple groups is a small base family? > The *primitive* large base groups are the subgroups of wreath products > S_n wr S_m which contain (A_n)^m, where the wreath product is in its > product action and the action of S_n is on k-element subsets of > {1,2,...,n} - this follows from cameron's result. Again, it is not immediately clear how to formulate the above statement in terms of families of groups. > Liebeck later sharpened the result to show that every other primitive > group admits a base of length at 9log(n). Praeger and Shalev have > lifted this result to *qusiprimitive groups*, that is, groups all of whose > minimal normal subgroups are transitive. Bamberg has lifted it to > *innately transitive* groups, that is, groups which have at least one > transitive minimal normal subgroup. > > As far as I am aware, the question for transitive groups (or broader > classes) remains open. *Large* means *large base* and *small* means > *small base*. One often abuses the definition and refers to individual > groups as small/large when it is clear what infinite family they > belong to. It seems to me, on balance, that this particular abuse is a bad idea and leads to confusion. Happy New Year, Derek Holt. > References: > > Peter J. cameron Finite permutation groups and finite simple groups. > Bull. London Math. Soc. 13(1)1--22, 1981 > > Martin W. Liebeck. On minimal degrees and base sizes of primitive > permutation groups. Arch. Math (basel), 43(1):11-15, 1984 > > Cheryl E. Praeger and Aner Shalev. Bounds on finite quasiprimitive > permutation groups. J. Aust. Math. Soc., 71(2):243-258, 2001 > > John Bamberg. Bounds and quotient actions of innately transitive > groups, to appear in the J. Aust. Math. Soc. Available from: > http://www.maths.uwa.edu.au/~john.bam/research/inntrans.html > > Jon > > -- > http://www.maths.uwa.edu.au/~cohenj02 > > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From cohenj02 at tartarus.uwa.edu.au Sat Jan 1 19:52:25 2005 From: cohenj02 at tartarus.uwa.edu.au (Jonathan Cohen) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] Metrics for large and small permutation groups. In-Reply-To: <20050101114952.GA1225@maths.warwick.ac.uk> References: <20050101114952.GA1225@maths.warwick.ac.uk> Message-ID: Hi Forum, Let me try and clear up some of Derek Holt's concerns, now that I am over my "holiday cheer" :) > You have just said that "large base" applies to families of permutation groups > rather than to individual groups, Yes, sorry, I had slipped into abusing the definition already. >so presumably you mean that the family of > symmetric groups { S_n | n in N } *is* small base. It is large base. > > -- The cyclic groups are small base, since every cyclic groups admits > > a base of length 1 > > You have not specified a family of permutation groups here. > The cyclic group generated by (1,2)(3,4,5) has no base of length 1 . Yes, a silly slip on my part, I should have specified the cyclic groups that act regularly (or all semiregular groups for that matter). > > -- The non-alternating finite simple groups are small base (this > > follows from a result of cameron) > > The non-alternating finite simple groups form a family of (isomorphism > classes of) abstract groups rather than a family of permutation groups. > Presumably you are saying here that the family of all equivalence classes of > permutation representations of all non-alternating finite simple groups > is a small base family? I mean the family of all permutation representations of all non-alternating finite simple groups. I am not quite sure how you are taking the equivalence classes. The reading {G | G is a permutation representation of H} could lead to trouble, since the minimal base length of a member of the class will most likely vary according to the representation. > > The *primitive* large base groups are the subgroups of wreath products > > S_n wr S_m which contain (A_n)^m, where the wreath product is in its > > product action and the action of S_n is on k-element subsets of > > {1,2,...,n} - this follows from cameron's result. > > Again, it is not immediately clear how to formulate the above statement > in terms of families of groups. One way is to generate lots of families by fixing k and letting n and m vary (so one family for each choice of k). One can show that such a family is large base. However, I cannot see how to do it without fixing k since, in that case, we may pick (for example) the subfamily where k=n-1. I omitted an interesting sidenote in my previous message. All of the cited results require CFSG, however, Pyber provided a completely elementary proof for the case of doubly transitive permutation groups. His paper is: L. Pyber. On the orders of doubly transitive permutation groups, elementary estimates. J. Combin. Theory Ser. A, 62(2):361-366, 1993. Jon -- http://www.maths.uwa.edu.au/~cohenj02 From Dursun.Bulutoglu at afit.edu Sun Jan 2 02:38:59 2005 From: Dursun.Bulutoglu at afit.edu (Bulutoglu Dursun A Civ AFIT/ENC) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] An Equation over a finite filed involving one of the primitive elements. Message-ID: <039A0DCC3D66EE4AB9AF11E119287F150183F2@ms-afit-04.afit.edu> Dear Gap Forum, I would like to first thank you for your help before. Now I am trying to solve the following problem: Let x be a primitive element of GF(p^n) for n>=0. Then x can not satisfy an equation of the form: x^r-A((p^n-1)/4)x+A((p^n-1)/4)-1=0 where 0= > Dear Gap Forum, > I would like to first thank you for your help before. > Now I am trying to solve the following problem: > > Let x be a primitive element of GF(p^n) for n>=0. > Then x can not satisfy an equation of the form: > >x^r-A((p^n-1)/4)x+A((p^n-1)/4)-1=0 where 0=A is a non-zero constant in GF(p^n). > > Is c=A((p^n-1)/4) a constant, so you are trying to solve x^r-c*x+c-1=0 in GF(p^n)? That is right. I should have stated the problem like that as A can be any constant. Sorry about that. So now the problem is: If x is a primitive element in GF(p^n) it can not solve an equation of the form x^r-c*x+c-1=0 in GF(p^n) for any non-zero constant c. Dursun. >Observe that r=0 or r=p^n-1 implies x=1. I would greatly appreciate it >if someone could give me an insight how this problem could be solved. >Dursun. >_______________________________________________ >Forum mailing list >Forum@mail.gap-system.org >http://mail.gap-system.org/mailman/listinfo/forum > > > From LindnerW at t-online.de Sun Jan 2 10:44:16 2005 From: LindnerW at t-online.de (Wolfgang Lindner) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] graph-theoretic routines References: <039A0DCC3D66EE4AB9AF11E119287F150183F2@ms-afit-04.afit.edu> Message-ID: <1Cl3Dc-0wGRUm0@fwd00.sul.t-online.com> Dear GAP-list, I think about to use GAP for teaching some graph-theoretic algorithms like Dijkstra, Prim or Ford-Fulkerson. In Leonard H. Soicher's GRAPE I found appropriate data structures/constructors for graphs, but (as far as I could see) no code for those algos. Im use WinXP, so I can't use xgap for graphical representations, too. Instead I will use the attached Java-applett. (The data structure there is Mathematica code compatible. I know about Skiena's Combinatorica.m but it is not possible for me to use Mathematica in class.) My question is: are there some experiences or small prototypical GAP-code available for some of the algo's above? Any hints would be very welcome. Sincerly with best whishes for 2005 Wolfgang Lindner -- Staedtisches Gymnasium, Stockhauserstr. 13, D-42929 Wermelskirchen Homepage: http://www.lo-net.de/home/wolfgangLindner -------------- next part -------------- From mschaps at macs.biu.ac.il Sun Jan 2 11:08:03 2005 From: mschaps at macs.biu.ac.il (Malka Schaps) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] hypertext index to group presentations and char. tables Message-ID: An index to the 1000 solvable groups of order up to 100 is available at: http://www.cs.biu.ac.il/~mschaps/DATA/database.html. Mary Schaps From Guillermo.Moreno-Socias at math.uvsq.fr Sun Jan 2 16:50:51 2005 From: Guillermo.Moreno-Socias at math.uvsq.fr (Guillermo MORENO-SOCIAS) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] Galois group In-Reply-To: <20041206102010.GA92696@math.uvsq.fr> References: <20041206102010.GA92696@math.uvsq.fr> Message-ID: <20050102165051.GA34242@math.uvsq.fr> On Mon, Dec 06, 2004 at 11:20:10AM +0100, Guillermo MORENO-SOCIAS wrote: > I am not (yet) familiar with Gap4. I have the following question > from a friend: How to compute the Galois group of X^8-2? It seems to > be an order 16 group, but which one? It is not D_8. Although rather late, I wish to thank all those who kindly answered this question. Happy New Year! Guillermo Moreno-Socias From vdabbagh at math.carleton.ca Tue Jan 4 07:36:03 2005 From: vdabbagh at math.carleton.ca (Vahid Dabbaghian-Abdoly) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] Character values on Sylow subgroups Message-ID: Dear Gap Forum, Using the Gap character table library, is it possible to compute character values of a group G on a Sylow subgroup of G? In particular I am looking for character values of the groups "L4(4)" and "L4(5)" on Sylow 2-subgroup and Sylow 5-subgroup, respectively. Regards, Vahid From Dursun.Bulutoglu at afit.edu Tue Jan 4 22:56:23 2005 From: Dursun.Bulutoglu at afit.edu (Bulutoglu Dursun A Civ AFIT/ENC) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] Frequencies in a list Message-ID: <039A0DCC3D66EE4AB9AF11E119287F15193A1F@ms-afit-04.afit.edu> A non-text attachment was scrubbed... Name: not available Type: multipart/alternative Size: 245 bytes Desc: not available Url : http://mail.gap-system.org/pipermail/forum/attachments/20050104/4f9fcaed/attachment.bin From rm43 at evansville.edu Wed Jan 5 00:23:38 2005 From: rm43 at evansville.edu (Robert F. Morse) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] Frequencies in a list In-Reply-To: <039A0DCC3D66EE4AB9AF11E119287F15193A1F@ms-afit-04.afit.edu> References: <039A0DCC3D66EE4AB9AF11E119287F15193A1F@ms-afit-04.afit.edu> Message-ID: <41DB338A.8040805@evansville.edu> Bulutoglu Dursun A Civ AFIT/ENC wrote: > Dear Gap Forum; > I was wondering whether there is a function in GAP that does the > following: > > Input: a list of numbers > Output: the numbers in the list sorted from small to large and > the frequencies at which they appear in the list. > Dursun. Dear Dursun, Use the Collected command (see, Chapter 21.20 of the reference manual). Example: gap> Collected([1,1,1,1,1,1,2,2,-1,-1]); [ [ -1, 2 ], [ 1, 6 ], [ 2, 2 ] ] Regards, Robert F. Morse From thomas.breuer at math.rwth-aachen.de Thu Jan 6 08:58:23 2005 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] Character values on Sylow subgroups Message-ID: Dear GAP Forum, Vahid Dabbaghian-Abdoly wrote > Using the Gap character table library, is it possible to > compute character values of a group G on a Sylow subgroup of G? > In particular I am looking for character values of the groups > "L4(4)" and "L4(5)" on Sylow 2-subgroup and Sylow 5-subgroup, > respectively. If I understand the question right then the aim is to restrict characters of G to the character table of a Sylow p-subgroup P of G. If the character table of P is needed but not available in the GAP Character Table Library --which is the case for the two groups G in question-- then first one has to produce the character table of P, presumably from a representation of P. As has been mentioned in the answer by Mowsey to the GAP Forum, computing the character table of a moderately sized p-group with GAP's standard methods is easy. The problem is then to determine the class fusion between the table that was computed from P and the library table of G. The combinatorial approach used by the GAP function `PossibleClassFusions' is not suitable for this situation, and as far as I know, no description of the class representatives in the library table of G in terms of standard generators of G is available. What one can try in this situation is either to compute the character table of G from the group (which in this case requires extensions of the standard methods for being efficient) or to divide the problem into smaller problems. If one is interested in restricting characters of G = L4(4) to its Sylow 2-subgroup P then using the intermediate group N_G(P) solves the problem. Here is a GAP session for this example (which needed less than a minute on my computer). gap> g:= PSL(4,4);; gap> s:= SylowSubgroup( g, 2 );; gap> n:= Normalizer( g, s );; gap> tg:= CharacterTable( "L4(4)" );; gap> ts:= CharacterTable( s );; gap> tn:= CharacterTable( n );; gap> sfusn:= FusionConjugacyClasses( ts, tn );; gap> nfusg:= PossibleClassFusions( tn, tg );; gap> sfusg:= Set( List( nfusg, map -> map{ sfusn } ) );; gap> Length( sfusg ); 1 Now for example the decomposition of the first nontrivial irreducible character of G into irreducibles of P can be computed as follows. gap> chi:= Irr( tg )[2]; Character( CharacterTable( "L4(4)" ), [ 84, 20, 4, 21, 21, 9, 6, 4, 0, -1, -1, 4, 4, -1, 5, 5, 5, 5, 1, 2, 0, 0, 0, 0, -1, -1, 0, 0, 1, 1, 4, 4, 4, 4, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ] ) gap> rest:= chi{ sfusg[1] }; [ 84, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 4, 4, 4, 4, 4, 4, 20, 4, 4, 4, 4, 4, 4, 20, 4, 4, 4, 4, 4, 4, 20, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 20, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 20, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 20, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 20, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 20, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0 ] gap> MatScalarProducts( ts, Irr( ts ), [ rest ] ); [ [ 3, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ] ] (For G = L4(5) and p = 5, the only difference is that the class fusion is not uniquely determined but only unique up to table automorphisms of the character tables in question; one ends up with a list of 16 equivalent possibilities.) All the best, Thomas From joyner.david at comcast.net Thu Jan 6 13:43:01 2005 From: joyner.david at comcast.net (joyner.david@comcast.net) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] Finding roots of a polynomial Message-ID: <010620051343.20217.41DD40650001D8EA00004EF922070032010B07900E0BD29D0A02970106@comcast.net> ++++++++++++++++++++++++++++++++++++++++++++++++++ Here's an example p:=3; n:=4; F:=GF(p^n); c:=Random(F); r:=2; x:=X(F,1); f:=x^r-c*x+c-1; F_f:=FieldExtension( F, f ); alpha:=RootOfDefiningPolynomial(F_f); #alpha is the desired root. ########## Another solution: RootOfPolynomial:=function(f,R) local F0,Ff,a; F0:=CoefficientsRing(R); Ff:=FieldExtension(F0,f); a:=RootOfDefiningPolynomial(Ff); return a; end; # example: p:=3; n:=4; F:=GF(p^n); c:=Random(F); r:=2; x:=X(F,1); f:=x^r-c*x+c-1; R:=PolynomialRing( F, [ x ]); a:=RootOfPolynomial(f,R); # check: Value(f,[x],[a]); Hope this helps. +++++++++++++++++++++++++++++++++++++++++++++++++++ Bulutoglu Dursun A Civ AFIT/ENC wrote: > Dear Gap Forum, > I would like to first thank you for your help before. > Now I am trying to solve the following problem: > Solve an equation of the form x^r-c*x+c-1=0 in GF(p^n) for any non-zero constant c. > > Dursun. > Dear Gap Forum; > I was wondering whether there is a function in GAP that does the > following: > > Input: a list of numbers > Output: the numbers in the list sorted from small to large and > the frequencies at which they appear in the list. > Dursun. > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From mmarco at unizar.es Thu Jan 6 13:58:43 2005 From: mmarco at unizar.es (mmarco@unizar.es) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] check ideal membership through singular interface Message-ID: <1105019923.41dd44139ddfa@webmail.unizar.es> We need to check if certains polynomials (that we construct with gap) are in a given ideal or not. So i used the singular interface to compute groebner basis of the ideal and the normal form of these ideals with respect to it. But the problems when i need to study the output back in gap: i am unable to check if the output is zero or not. Even when the result is zero, (and gap shows it as zero), it still considers it as a diferent object. Is there any way to convert this output to regular gap polynomials? From frank.luebeck at math.rwth-aachen.de Thu Jan 6 16:09:27 2005 From: frank.luebeck at math.rwth-aachen.de (Frank Luebeck) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] An Equation over a finite field involving one of the primitive elements. Message-ID: On Sat, 1 Jan 2005, Bulutoglu Dursun A Civ AFIT/ENC wrote: >> x^r-A((p^n-1)/4)x+A((p^n-1)/4)-1=0 where 0=> A is a non-zero constant in GF(p^n). >> >> > Is c=A((p^n-1)/4) a constant, so you are trying to solve x^r-c*x+c-1=0 > in GF(p^n)? > > That is right. I should have stated the problem like that as A can be > any constant. Sorry about that. > So now the problem is: If x is a primitive element in GF(p^n) it can not > solve an equation of the form x^r-c*x+c-1=0 in GF(p^n) for any non-zero > constant c. Dear Dursun, This statement is not true. Try the following in GAP: x := Z(3^2); Order(x); c := Z(3^2)^3; x^7 - c*x + c-1; You could use GAP for checking such statements in some examples. Here the function findexample := function(p, n) local y, primelts, z, i, r, c, pol, test; y := Indeterminate(GF(p^n), 1); primelts := Filtered(GF(p^n), x-> Order(x)=p^n-1);; for r in [0..p^n-1] do z := Z(p^n); for i in [0..p^n-2] do c := z^i; pol := y^r - c*y +(c-1); test := Filtered(primelts, a-> IsZero(Value(pol, a))); if Length(test) > 0 then Print("r=",r," c=",c," #solutions=",Length(test), "(",test,")\n"); fi; od; od; end; gives you plenty of further counterexamples to your statement. Best regards, Frank /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck@Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ -------------- next part -------------- From joyner.david at comcast.net Fri Jan 7 11:35:48 2005 From: joyner.david at comcast.net (joyner.david@comcast.net) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] Finding roots of a polynomial Message-ID: <010720051135.10007.41DE74140003B26C0000271722058844840B07900E0BD29D0A02970106@comcast.net> Dear GAP Forum: Frank Luebeck gave one answer to Dursun's question. Here is an answer to a related, more general question. ++++++++++++++++++++++++++++++++++++++++++++++++++ Here's an example p:=3; n:=4; F:=GF(p^n); c:=Random(F); r:=2; x:=X(F,1); f:=x^r-c*x+c-1; F_f:=FieldExtension( F, f ); alpha:=RootOfDefiningPolynomial(F_f); #alpha is the desired root. ########## Another solution: RootOfPolynomial:=function(f,R) local F0,Ff,a; F0:=CoefficientsRing(R); Ff:=FieldExtension(F0,f); a:=RootOfDefiningPolynomial(Ff); return a; end; # example: p:=3; n:=4; F:=GF(p^n); c:=Random(F); r:=2; x:=X(F,1); f:=x^r-c*x+c-1; R:=PolynomialRing( F, [ x ]); a:=RootOfPolynomial(f,R); # check: Value(f,[x],[a]); # example where F is not finite: F:=Rationals; x:=X(F,1); f:=x^2+x+1; R:=PolynomialRing( F, [ x ]); a:=RootOfPolynomial(f,R); # check: Value(f,[x],[a]); Hope this helps. +++++++++++++++++++++++++++++++++++++++++++++++++++ Bulutoglu Dursun A Civ AFIT/ENC wrote: > Dear Gap Forum, > I would like to first thank you for your help before. > Now I am trying to solve the following problem: > Solve an equation of the form x^r-c*x+c-1=0 in GF(p^n) for any non-zero constant c. > > Dursun. > Dear Gap Forum; > I was wondering whether there is a function in GAP that does the > following: > > Input: a list of numbers > Output: the numbers in the list sorted from small to large and > the frequencies at which they appear in the list. > Dursun. > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From Dursun.Bulutoglu at afit.edu Mon Jan 10 02:04:14 2005 From: Dursun.Bulutoglu at afit.edu (Bulutoglu Dursun A Civ AFIT/ENC) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] A problem Message-ID: <039A0DCC3D66EE4AB9AF11E119287F15193CFE@ms-afit-04.afit.edu> A non-text attachment was scrubbed... Name: not available Type: multipart/alternative Size: 668 bytes Desc: not available Url : http://mail.gap-system.org/pipermail/forum/attachments/20050109/e103bf21/attachment.bin From beick at tu-bs.de Mon Jan 10 16:18:55 2005 From: beick at tu-bs.de (Bettina Eick) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] reza orfi-p group with some propertise In-Reply-To: <20041231175912.69255.qmail@web53402.mail.yahoo.com> Message-ID: Dear GAP Forum, Dear Reza Orfi, the group enclosed below is of the type you want to have, I think. Also enclosed below is a short GAP programm which can be used to find groups of your desired type. It is based on the ANUPQ share package which can be used to list p-groups systematically. Best wishes, Bettina ############################################################################# A group of order 3^7 with the following polycyclic presentation: g1 ^ 3 = id g2 ^ 3 = id g3 ^ 3 = g6^2*g7^2 g4 ^ 3 = g7^2 g5 ^ 3 = g7 g6 ^ 3 = id g7 ^ 3 = id g2 ^ g1 = g2*g3 g3 ^ g1 = g3*g4 g3 ^ g2 = g3*g5 g4 ^ g1 = g4*g6 g4 ^ g2 = g4*g6 g4 ^ g3 = g4*g7^2 g5 ^ g1 = g5*g6*g7 g5 ^ g2 = g5*g6*g7^2 g5 ^ g3 = g5*g7^2 g6 ^ g1 = g6*g7 g6 ^ g2 = g6*g7^2 Then G' = Phi(G) = < g3, .., g7 >, Z(G) = < g4 g5^2 g6 > is cyclic of order 9, and the coclass of G is 2. ############################################################################# RequirePackage("anupq"); CoclassPGroup := function( G ) return Length(Factors(Size(G))) - Length(LowerCentralSeries(G))+1; end; TryPrime := function(p) local i, todo, news, H, desc, K; todo := [AbelianGroup([p,p])]; i := 2; while true do i := i+1; Print("start layer ",i," with ",Length(todo)," groups \n"); news := []; for H in todo do if CoclassPGroup(H) = 1 then desc := PqDescendants( H : Stepsize := [1,2] ); desc := Filtered(desc,x->Index(x,DerivedSubgroup(x))=p^2); for K in desc do if AbelianInvariants(Center(K)) = [p^2] and CoclassPGroup(K) = 2 then return K; fi; od; Append(news, Filtered( desc, IsCapable )); Print("\n"); fi; if CoclassPGroup(H) = 2 then desc := PqDescendants( H : Stepsize := 1 ); desc := Filtered(desc, x->Index(x,DerivedSubgroup(x))=p^2); for K in desc do if AbelianInvariants(Center(K)) = [p^2] then return K; fi; od; Append(news, Filtered( desc, IsCapable )); Print("\n"); fi; od; todo := StructuralCopy(news); if Length(todo) = 0 then return; fi; od; end; From Dursun.Bulutoglu at afit.edu Mon Jan 10 18:50:19 2005 From: Dursun.Bulutoglu at afit.edu (Bulutoglu Dursun A Civ AFIT/ENC) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] A problem Message-ID: <039A0DCC3D66EE4AB9AF11E119287F152380CD@ms-afit-04.afit.edu> Dear GAP Forum: In the below problem there was an error in the statement The following is the corrected version of the problem: Let Z_p be the finite field with p>7 elements. Let A be a subset of Z_p^*={1,2,3,...p-1} with (p-1)/2 elements. Let A=A_1UA_2 and the intersection between A_1 and A_2 be the empty set. Furthermore A_1={y_1, y_1+1, y_1+2 ... y_1+s_1} A_2={y_2, y_2+1, y_2+2 ... y_2+s_2} where s_1+s_2+2=(p-1)/2 For any non-zero constant c in Z_p let cA={c*a_1,c*a_2, ..., c*a_(p-1)/2} where A={a_1,a_2,...a_(p-1)/2}=A_1UA_2 Assume that for some nonzero c' (p-1)/2>=|c'A intersect A|>=(p-3)/2 then show that c' has to be +1 or -1 in Z_p. I thank you for your attention. Dursun. _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From Dursun.Bulutoglu at afit.edu Tue Jan 11 20:43:10 2005 From: Dursun.Bulutoglu at afit.edu (Bulutoglu Dursun A Civ AFIT/ENC) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] A problem simplified Message-ID: <039A0DCC3D66EE4AB9AF11E119287F152381E0@ms-afit-04.afit.edu> Dear Gap Forum: Dear GAP Forum; I reduced my problem to the following simpler problem: Let Z_p={0,1,2,...p-1} be the finite field with p elements and x be a primitive element. Also let A={1,2,3,...,(p-1)/2} and B={1,x,x^2,...,x^(p-3)/2} be subsets of Z_p^* then A can not be equal to B for p>7. I was wondering if you have any ideas how this could be solved. Thanks in advance. Dursun. From jdixon at math.carleton.ca Tue Jan 11 22:15:50 2005 From: jdixon at math.carleton.ca (John Dixon) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum]re: A problem simplified In-Reply-To: <039A0DCC3D66EE4AB9AF11E119287F152381E0@ms-afit-04.afit.edu> References: <039A0DCC3D66EE4AB9AF11E119287F152381E0@ms-afit-04.afit.edu> Message-ID: <41E45016.1010808@math.carleton.ca> Bulutoglu Dursun A Civ AFIT/ENC wrote: > Dear GAP Forum; > I reduced my problem to the following simpler problem: > Let Z_p={0,1,2,...p-1} be the finite field with p elements and x > be a primitive element. > Also let A={1,2,3,...,(p-1)/2} and B={1,x,x^2,...,x^(p-3)/2} be > subsets of Z_p^* then A can not be equal to B for p>7. > I was wondering if you have any ideas how this could be solved. Summing the elements in A gives (p^2-1)/4 = -1/4 and summing the elements in B gives (x^((p-1)/2)-1)/(x-1) = -2/(x-1) since x is a quadratic nonresidue. Thus A = B would imply x = 9 which is impossible since a primitive root (for p > 2) cannot be a square. John D. Dixon From costanti at science.unitn.it Tue Jan 11 22:26:25 2005 From: costanti at science.unitn.it (Marco Costantini) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] A problem simplified In-Reply-To: <039A0DCC3D66EE4AB9AF11E119287F152381E0@ms-afit-04.afit.edu> References: <039A0DCC3D66EE4AB9AF11E119287F152381E0@ms-afit-04.afit.edu> Message-ID: <200501112326.25224.costanti@science.unitn.it> Dear Dursun Bulutoglu, try the following code: for p in [ 3, 5, 7, 11, 13, 17, 19, 23, 29 ] do F := GaloisField( p ); x := PrimitiveRoot( F ); u := One( F ); A := List( [1..(p-1)/2], a -> u*a ); B := List( [0..(p-3)/2], a -> x^a ); Print (p, " ", Set(A) = Set(B), "\n" ); od; It produces: 3 true 5 true 7 true 11 false 13 false 17 false 19 false 23 false 29 false Best regards, Marco Costantini On Tuesday 11 January 2005 21:43, Bulutoglu Dursun A Civ AFIT/ENC wrote: > I reduced my problem to the following simpler problem: > Let Z_p={0,1,2,...p-1} be the finite field with p elements and x > be a primitive element. > Also let A={1,2,3,...,(p-1)/2} and B={1,x,x^2,...,x^(p-3)/2} be > subsets of Z_p^* then A can not be equal to B for p>7. > I was wondering if you have any ideas how this could be solved. From gapforum at mowsey.org Tue Jan 11 23:52:31 2005 From: gapforum at mowsey.org (Mowsey) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] A problem simplified Message-ID: <200501112357.j0BNvYxt017851@gap-system.org> I looked over John D. Dixon's solution and Marco Costantini's code, and noticed that the solution suggested p=7 should not work while the code indicated it did. There was a tiny error in the solution, but it can be easily fixed: For A={1,2,3,...,(p-1)/2}, Sum(A) = ( (1 + (p-1)/2)*(p-1)/2 ) / 2 = (p^2-1)/8. Previously the result was reported as (p^2-1)/4. When the sum is taken mod p, one gets Sum(A) = -1/8. The argument continues then as Sum(B) = (x^( (p-3)/2 + 1) - 1) / (x-1) = ( x^( (p-1)/2 ) - 1 ) / ( x - 1 ) and since x has order p-1, this is = (-1 - 1)/(x-1) = -2/(x-1). If A=B, then Sum(A)=Sum(B) and -1/8 = -2/(x-1), so x-1=16 and x=17. Previosuly the conclusion had been x=9 which was a contradiction, but no longer. The method can be continued however to finish. We consider Sum(A^3) = 1^3 + 2^3 + ... + ((p-1)/2)^3 = (p^2-1)^2/64 = 1/64 mod p. Sum(B^3) = 1^3 + x^3 + x^6 + ... x^(((p-3)/2)^3) = ( (x^3)^((p-1)/2) - 1 ) / (x^3 - 1) = ((-1)^3 - 1)/(x^3 - 1) = -2/(x^3-1). Equating Sum(A^3)=Sum(B^3), we get 1/64 = -2/(x^3-1) and x^3 - 1 = -128 and x^3 = -127. Hence if p is such that A = B, then x = 17 mod p and x^3 = -127 mod p. This just says 17^3 = -127 mod p, so p divides 5040 = 2^4*3^2*5*7, and p can only be 2, 3, 5, or 7. > I reduced my problem to the following simpler problem: > Let Z_p={0,1,2,...p-1} be the finite field with p elements and x > be a primitive element. > Also let A={1,2,3,...,(p-1)/2} and B={1,x,x^2,...,x^(p-3)/2} be > subsets of Z_p^* then A can not be equal to B for p>7. > I was wondering if you have any ideas how this could be solved. From Dursun.Bulutoglu at afit.edu Wed Jan 12 18:38:24 2005 From: Dursun.Bulutoglu at afit.edu (Bulutoglu Dursun A Civ AFIT/ENC) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] A problem simplified Message-ID: <039A0DCC3D66EE4AB9AF11E119287F152382A6@ms-afit-04.afit.edu> Thank you very much for this solution. I thought about summing the elements in A and B and taking the products of elements in A and B but not summing the cubes of the elements in A and B. Dursun. -----Original Message----- From: forum-bounces@gap-system.org [mailto:forum-bounces@gap-system.org] On Behalf Of Mowsey Sent: Tuesday, January 11, 2005 6:53 PM To: Bulutoglu Dursun A Civ AFIT/ENC; forum@gap-system.org Subject: Re: [GAP Forum] A problem simplified I looked over John D. Dixon's solution and Marco Costantini's code, and noticed that the solution suggested p=7 should not work while the code indicated it did. There was a tiny error in the solution, but it can be easily fixed: For A={1,2,3,...,(p-1)/2}, Sum(A) = ( (1 + (p-1)/2)*(p-1)/2 ) / 2 = (p^2-1)/8. Previously the result was reported as (p^2-1)/4. When the sum is taken mod p, one gets Sum(A) = -1/8. The argument continues then as Sum(B) = (x^( (p-3)/2 + 1) - 1) / (x-1) = ( x^( (p-1)/2 ) - 1 ) / ( x - 1 ) and since x has order p-1, this is = (-1 - 1)/(x-1) = -2/(x-1). If A=B, then Sum(A)=Sum(B) and -1/8 = -2/(x-1), so x-1=16 and x=17. Previosuly the conclusion had been x=9 which was a contradiction, but no longer. The method can be continued however to finish. We consider Sum(A^3) = 1^3 + 2^3 + ... + ((p-1)/2)^3 = (p^2-1)^2/64 = 1/64 mod p. Sum(B^3) = 1^3 + x^3 + x^6 + ... x^(((p-3)/2)^3) = ( (x^3)^((p-1)/2) - 1 ) / (x^3 - 1) = ((-1)^3 - 1)/(x^3 - 1) = -2/(x^3-1). Equating Sum(A^3)=Sum(B^3), we get 1/64 = -2/(x^3-1) and x^3 - 1 = -128 and x^3 = -127. Hence if p is such that A = B, then x = 17 mod p and x^3 = -127 mod p. This just says 17^3 = -127 mod p, so p divides 5040 = 2^4*3^2*5*7, and p can only be 2, 3, 5, or 7. > I reduced my problem to the following simpler problem: > Let Z_p={0,1,2,...p-1} be the finite field with p elements and x > be a primitive element. > Also let A={1,2,3,...,(p-1)/2} and B={1,x,x^2,...,x^(p-3)/2} be > subsets of Z_p^* then A can not be equal to B for p>7. > I was wondering if you have any ideas how this could be solved. _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From laurent.bartholdi at epfl.ch Wed Jan 12 18:56:20 2005 From: laurent.bartholdi at epfl.ch (Laurent Bartholdi) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] Post-doctoral position in group theory/algebra at EPFL Message-ID: Dear Collegues, Would you be so kind as to diffuse the following job offer? --------------------------------------------------------------------- The Chair of Algebra and Discrete Mathematics of the Swiss Institute of Technology at Lausanne (EPFL) invites applications for a full-time postdoctoral position. It would start on September 1st, 2005 and last 1 year, with the possibility of extending it for a second year. In addition to research, duties include teaching within the framework of the Mathematics Section of the EPFL. The salary class is 18, i.e. approximately 75k CHF/year (65k US$/year). Candidates must have completed their PhD within the last four years, and have shown promise of excellence in research in group theory or algebra. In particular, candidates interested in computational algebra (GAP, MAGMA, ...) are welcome. Applications, including curriculum vitae, statement of teaching experience, publication list, and research plan, must be submitted, either in paper or in electronic format (postscript, PDF), by February 28th, to Professor Laurent Bartholdi EPFL, B?timent BCH, CH-1015 Lausanne, Switzerland laurent.bartholdi@epfl.ch For further information concerning EPFL, see http://mad.epfl.ch/ http://igat.epfl.ch/ http://sma.epfl.ch/ http://www.epfl.ch/ -- Laurent Bartholdi \ laurent.bartholdiepflch EPFL, IGAT, B?timent BCH \ T?l?phone: +41 21-6930380 CH-1015 Lausanne, Switzerland \ Fax: +41 21-6930385 From Dursun.Bulutoglu at afit.edu Fri Jan 14 01:37:05 2005 From: Dursun.Bulutoglu at afit.edu (Bulutoglu Dursun A Civ AFIT/ENC) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] A problem simplified generalization Message-ID: <039A0DCC3D66EE4AB9AF11E119287F152383DA@ms-afit-04.afit.edu> Dear GAP Forum; I am trying to generalize the result I stated before as follows: Let Z_p={0,1,2,...p-1} be the finite field with p elements and x be a primitive element. Let r be some positive integer. Also let A={1,2,3,...,(p-1)/2} and B={x^r,x^(r+1),x^(r+2),...,x^(r+(p-3)/2)} be subsets of Z_p^* then A can not be equal to B for p>7. Using the equations Sum(A)=Sum(B) and Sum(A^3)=Sum(B^3) I was able to show that x has to satisfy 11x^2+10x+11=0 in Z_p Using the equation Sum(A^5)=Sum(B^5) with the above two equations I got (Assuming that I did not make an algebra mistake) the equation: (3*2^12+1)+(3*2^12-4)x+(3*2^12+6)x^2+(3*2^12-4)x^3+(3*2^12+1)x^4=0 in Z_p. The proof should come from equalities of the form Sum(A^k)=Sum(B^k) as the values of Sum(A^k),Sum(B^k) for k=1,2,3...p-2 completely determine the distribution of the elements of A and B respectively. (For k=2 and 4 I get Sum(A^k)=Sum(B^k)=0 which are not useful). I was wondering what your ideas are on this. Thanks in advance, your ideas have been very helpful. Dursun. -----Original Message----- From: forum-bounces@gap-system.org [mailto:forum-bounces@gap-system.org] On Behalf Of Mowsey Sent: Tuesday, January 11, 2005 6:53 PM To: Bulutoglu Dursun A Civ AFIT/ENC; forum@gap-system.org Subject: Re: [GAP Forum] A problem simplified I looked over John D. Dixon's solution and Marco Costantini's code, and noticed that the solution suggested p=7 should not work while the code indicated it did. There was a tiny error in the solution, but it can be easily fixed: For A={1,2,3,...,(p-1)/2}, Sum(A) = ( (1 + (p-1)/2)*(p-1)/2 ) / 2 = (p^2-1)/8. Previously the result was reported as (p^2-1)/4. When the sum is taken mod p, one gets Sum(A) = -1/8. The argument continues then as Sum(B) = (x^( (p-3)/2 + 1) - 1) / (x-1) = ( x^( (p-1)/2 ) - 1 ) / ( x - 1 ) and since x has order p-1, this is = (-1 - 1)/(x-1) = -2/(x-1). If A=B, then Sum(A)=Sum(B) and -1/8 = -2/(x-1), so x-1=16 and x=17. Previosuly the conclusion had been x=9 which was a contradiction, but no longer. The method can be continued however to finish. We consider Sum(A^3) = 1^3 + 2^3 + ... + ((p-1)/2)^3 = (p^2-1)^2/64 = 1/64 mod p. Sum(B^3) = 1^3 + x^3 + x^6 + ... x^(((p-3)/2)^3) = ( (x^3)^((p-1)/2) - 1 ) / (x^3 - 1) = ((-1)^3 - 1)/(x^3 - 1) = -2/(x^3-1). Equating Sum(A^3)=Sum(B^3), we get 1/64 = -2/(x^3-1) and x^3 - 1 = -128 and x^3 = -127. Hence if p is such that A = B, then x = 17 mod p and x^3 = -127 mod p. This just says 17^3 = -127 mod p, so p divides 5040 = 2^4*3^2*5*7, and p can only be 2, 3, 5, or 7. > I reduced my problem to the following simpler problem: > Let Z_p={0,1,2,...p-1} be the finite field with p elements and x > be a primitive element. > Also let A={1,2,3,...,(p-1)/2} and B={1,x,x^2,...,x^(p-3)/2} be > subsets of Z_p^* then A can not be equal to B for p>7. > I was wondering if you have any ideas how this could be solved. _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From wdj at usna.edu Sun Jan 16 14:29:47 2005 From: wdj at usna.edu (David Joyner) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] GUAVA 2.0 patch Message-ID: <41EA7A5B.4020809@usna.edu> Hello GAP Forum: In a posting to this Forum last month I announced a new version of the GAP error-correcting codes package, GUAVA 2.0. It was pointed out by Bjoern Assmann that it only works under the development version of GAP, whose release date is some ways away. This posting is to announce a patched version of GUAVA 2.0 which should work under the current version of GAP. It is posted on the GUAVA web page http://cadigweb.ew.usna.edu/~wdj/gap/GUAVA/ In the "patch", all GUAVA 1.9 functions work and all the new GUAVA 2.0 functions work, except for MinimumDistanceRandom. The small number of people who want that function should try to get the CVS version of GAP http://www.math.rwth-aachen.de/homes/GAP/Info4/cvs.html (If that is not possible, please contact me and I will try to supply the necessary GAP kernel functions which you can use to recompile GAP.) My apologies for any inconvenience. If there are any problems, please let me know. - David Joyner From Michael.Hartley at nottingham.edu.my Fri Jan 14 02:36:39 2005 From: Michael.Hartley at nottingham.edu.my (Michael Hartley) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] Tietze Message-ID: [**** EDIT -- FORUM ADMINISTRATOR ****] Subject was "Re: Forum Digest, Vol 14, Issue 4". Changed above for clarity. [END] I've looked through the functions relating to relations and Tietze Transformations. However, I can't find anything that will take a presentation object and give GAP the actual relators within it (TzPrintRelators() gives *me* the relators, but not GAP). I have a large list of permutation groups, and I want to do the following for each group (actually, each generating set) in the list : grp := Group(gens); pres := PresentationViaCosetTable(grp); rels := GetRelatorsSomehow(pres); <-- need help here if (MyTest(rels)) then Print("the group generated by ",gens," passes my test \n"); fi; Any advice? Does the function I want actually exist? Specifically, I want to check that there doesn't exist a relator using all the generators of the group. Yours, Mike H... [*** MESSAGE EDITED TO REMOVE FORUM DIGEST BELOW THIS POINT -- FORUM ADMINISTRATOR ****] From hulpke at math.colostate.edu Fri Jan 14 18:09:26 2005 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] Re: Tietze Message-ID: <200501141809.j0EI9QtM013088@schur.math.colostate.edu> Dear GAP-Forum, Michael Hartley wrote: > I've looked through the functions relating to relations and Tietze > Transformations. However, I can't find anything that will take a > presentation object and give GAP the actual relators within it > (TzPrintRelators() gives *me* the relators, but not GAP). I have a large > list of permutation groups, and I want to do the following for each group > (actually, each generating set) in the list : > grp := Group(gens); > pres := PresentationViaCosetTable(grp); > rels := GetRelatorsSomehow(pres); <-- need help here > if (MyTest(rels)) then > Print("the group generated by ",gens," passes my test \n"); > fi; > > Any advice? Does the function I want actually exist? Specifically, I want > to check that there doesn't exist a relator using all the generators of the > group. You could use: grp2:=FpGroupPresentation(pres); rels:=RelatorsOfFpGroup(grp2); Note that the free generators are FreeGeneratorsOfGroup(grp2); Alternatively, you could use hom:=IsomorphismFpGroupByGenerators(grp,gens); grp2:=Image(grp); which does a slightly different kind of rewriting in one call. I hope this is of help, Alexander Hulpke PS: Given that the Forum email goes to hundreds of people I would suggest that when replying to a ``digest'' mail to delete the irrelevant contents of the digest as well as changing the subject line. _______________________________________________ Support mailing list Support@gap-system.org http://mail.gap-system.org/mailman/listinfo/support From Dursun.Bulutoglu at afit.edu Tue Jan 18 16:57:50 2005 From: Dursun.Bulutoglu at afit.edu (Bulutoglu Dursun A Civ AFIT/ENC) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] A problem simplified Message-ID: <039A0DCC3D66EE4AB9AF11E119287F15238531@ms-afit-04.afit.edu> Dear Gap Forum; I further reduced my problem to the following problem: Let Z_p be the finite field with p elements then there exists some N such that for all p>N the interval [-(p+1)/4, (p-1)/4] contains a generator of Z_p^*. I was wondering if anybody knows a result like this in number theory either in the form of a conjecture or a Theorem. Thank you very much. Dursun. From wdj at usna.edu Wed Jan 19 12:14:59 2005 From: wdj at usna.edu (David Joyner) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] GAP and emacs Message-ID: <41EE4F43.7040504@usna.edu> Hello GAP Forum: Is there anyone who runs GAP in emacs on this list? If so, please respond off-list. The emacs mode in the cvs version seems to be out-of-date and I have some questions about it. - David From wh at icparc.ic.ac.uk Sun Jan 23 08:16:21 2005 From: wh at icparc.ic.ac.uk (wh@icparc.ic.ac.uk) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] Local search? Message-ID: <20050123081621.GA14728@tempest.icparc.ic.ac.uk> Dear GAP Forum, Are any of you aware of any software (GAP or otherwise) or literature regarding using local search to find a group element with certain properties? I am interested in using such techniques, so any such software or literature would be useful to me. By local search I mean techniques along the lines of starting with a more-or-less random element that does not have the desired properties, moving to a "nearby"/similar element that might be closer to having the desired properties, and repeating until one either finds an element that meets the requirements or gives up. (Examples of such techniques include hill climbing, tabu search, greedy randomised adaptive search procedures (GRASPs), and possibly simulated annealing and genetic algorithms.) Basically, I want to do a relatively quick check to see whether I can find such an element, but I don't care too much if I fail to find one, even if one exists. Cheers, Warwick From wdj at usna.edu Tue Jan 25 20:38:31 2005 From: wdj at usna.edu (David Joyner) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] GAP interface program web pages Message-ID: <41F6AE47.8080906@usna.edu> Hello GAP Forum: 2. I've written up some web pages which I think explain in simple terms how to use some of the programs useful for making GAP easier and/or nicer to interface. If they are useful, great. If you have comments, I'd be happy to hear them. 2. The new web pages: (a) Frank Luebeck's ReadNC GAP program allows the reading into GAP of programs with multi-line comments: http://cadigweb.ew.usna.edu/~wdj/gap/read_no_comments.html (b) To run gap in emacs or xemacs (linux/unix only) see: http://cadigweb.ew.usna.edu/~wdj/gap/gap_emacs.html (c) To run GAP in color, see: http://cadigweb.ew.usna.edu/~wdj/gap/gap_colors.html 3. I'd be interested to know if anyone gets GAP to run in emacs in windows using intructions analogous to 2(b). - David Joyner From s.delossantos at amena.com Sun Jan 30 16:33:20 2005 From: s.delossantos at amena.com (Sergio De Los Santos) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] Compiling GAP under Windows 2000 and mingw. Message-ID: <48ca3460c1.460c148ca3@amena.com> Hello all. My intention is to build a Visual Basic Interface mainly to pacakage GUAVA. I'm not any expert in programming, but my idea is to build some DLL with C source and call functions from Visual Basic. Is it possible? I have researched for a while and found this: http://www.gap-system.org/ForumArchive/Pasechni.1/Dmitrii.1/using_GA.1/1.html that says it is not "easy" or mainly impossible to use C source as a C library. Should I try? I can't even compile it under Windows 2000 using mingw. I get lots of errors. Basicly, I'm trying to follow this pages way: http://www.gap-system.org/ForumArchive/Hirbawi.1/Jacob.1/RE__Trou.1/1.html of course the program has changed a lot since 1993, and it is not that way anymore. I use it as an "idea". Some files, like c_oper1.c, just shows lots of errors... Even if I fix some of then, and using a "hand edited" config.h, there are always missing symbols or even syntax errors on this and other file compilations. I would appreciate some indications about compiling under Windows 2000 using mingw. By the way, while compiling system.c, I always get this error: d:\Tools\mingw\bin>gcc -c .\src\system.c src/system.c:136: parse error before '=' token wich is this line. const Char * SyArchitecture = SYS_ARCH; I don't know why. I think once i get some dll files with the importan functions, to build an interface is not difficult at all. If it is impossible I would use pipes to pass parameters to gap.exe, but, first of all I would like to be able to build my own exe file. Any kind of advise or indication would be considered and appreciated. Thanks a lot. From d.v.pasechnik at uvt.nl Sun Jan 30 18:43:09 2005 From: d.v.pasechnik at uvt.nl (Dima Pasechnik) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] Compiling GAP under Windows 2000 and mingw. In-Reply-To: <48ca3460c1.460c148ca3@amena.com> References: <48ca3460c1.460c148ca3@amena.com> Message-ID: <20050130184309.GA1482@babbage.lan> Dear Forum, On Sun, Jan 30, 2005 at 05:33:20PM +0100, Sergio De Los Santos wrote: > My intention is to build a Visual Basic Interface mainly to pacakage GUAVA. I'm not any expert in programming, but my idea is to build some DLL with C source and call functions from Visual Basic. [...] > I can't even compile it under Windows 2000 using mingw. I get lots of errors. Certainly. Compiling with mingw will not differ from compiling using a native Windows C compiler. Mingw does not know Posix, and GAP does not know anything about Win32 system calls; it runs under Windows using Cygwin (not to be confused with mingw). Cygwin takes the job of translating Posix system calls made by GAP into Win32 calls. While porting GAP to use native Win32 calls is doable, basically src/system.c is the only place that needs lots of changes, it is certainly a nontrivial and time-consuming task. (and one needs to be a bit of an expert in programming to do this, IMHO) Perhaps easier is to build GAP as a DLL, using Cygwin, and call this DLL from VB. Why would you insist on VB? Can you use something like XGAP instead? It should be easier, and will run not only on Windows... > I think once i get some dll files with the importan functions, to build an interface is not difficult at all. If it is impossible I would use pipes to pass parameters to gap.exe, but, first of all I would like to be able to build my own exe file. > use Cygwin for this. After running configure, edit Makefile to replace ocurrences of "strip gap" with "strip gap.exe". Then make will run without errors. HTH, Dmitrii From gzabl at yahoo.com Wed Feb 2 19:24:26 2005 From: gzabl at yahoo.com (Gary Zablackis) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] GAP interface program web pages In-Reply-To: <41F6AE47.8080906@usna.edu> Message-ID: <20050202192426.36076.qmail@web53007.mail.yahoo.com> Hello, David I was able to run GAP in emacs and in xemacs using the instructions in 2(b). I have the CYGWIN development environment installed on my machine and used the (x)emacs that comes with that. I have not used emacs before, so I have not done much with it, yet. I hope to spend some time with the docs next week to see how it works. I will be downloading NTEmacs today to see how that works. The only problem I had was in attempting to use colors.gap with (x)emacs (both are X programs in the CYGWIN distribution). The default terminal settings used by X under CYGWIN do not process the escape sequences (although they are handled properly under normal Windows and non-X CYGWIN). If I have the time, I will attempt to get that working soon, too. If you have any questions about my setup, please feel free to ask. Gary Zablackis David Joyner wrote: ... (b) To run gap in emacs or xemacs (linux/unix only) see: http://cadigweb.ew.usna.edu/~wdj/gap/gap_emacs.html ... 3. I'd be interested to know if anyone gets GAP to run in emacs in windows using intructions analogous to 2(b). - David Joyner _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum --------------------------------- Do you Yahoo!? Yahoo! Search presents - Jib Jab's 'Second Term' From sal at dcs.st-and.ac.uk Fri Feb 4 14:01:14 2005 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] Local search? In-Reply-To: <20050123081621.GA14728@tempest.icparc.ic.ac.uk> References: <20050123081621.GA14728@tempest.icparc.ic.ac.uk> Message-ID: <20050204140114.7e8ab400@localhost.localdomain> Dear GAP Forum, On Sun, 23 Jan 2005 09:16:21 +0100 wh@icparc.ic.ac.uk wrote: > Dear GAP Forum, > > Are any of you aware of any software (GAP or otherwise) or literature > regarding using local search to find a group element with certain properties? > I am interested in using such techniques, so any such software or literature > would be useful to me. > > By local search I mean techniques along the lines of starting with a > more-or-less random element that does not have the desired properties, > moving to a "nearby"/similar element that might be closer to having the > desired properties, and repeating until one either finds an element that > meets the requirements or gives up. (Examples of such techniques include > hill climbing, tabu search, greedy randomised adaptive search procedures > (GRASPs), and possibly simulated annealing and genetic algorithms.) > > Basically, I want to do a relatively quick check to see whether I can find > such an element, but I don't care too much if I fail to find one, even if > one exists. > The only work anyone has been able to think of in this direction is some work by the Magnus group in New York on using genetic algorithms to do computations with finitely-presented groups. A. D. Miasnikov\ and\ A. G. Myasnikov, in {\it Computational and experimental group theory}, 89--114, Contemp. Math., 349, Amer. Math. Soc., Providence, RI, 2004; MR2077761 A. D. Miasnikov, Internat. J. Algebra Comput. {\bf 9} (1999), no.~6, 671--686; MR1727164 (2001k:20067) I have been involved in some discussions of this idea with Warwick on another mailing list. For the interest if the forum, and in case anyone else can contribute, we're interested in methods that attempt to solve problems in permutation groups that would normally require a backtrack search, such as "is there a g \in G which maps a set S of points into another set T (possibly larger)". We're interested in methods that have a reasonable chance of returning a positive solution quickly, if there is one, but we can tolerate some chance of error. Steve Linton -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From gzabl at yahoo.com Fri Feb 4 20:18:20 2005 From: gzabl at yahoo.com (Gary Zablackis) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] Fwd: Re: GAP and (x)emacs (for Dr Joyner) Message-ID: <20050204201821.2765.qmail@web53002.mail.yahoo.com> David, Messages FROM yahoo addresses are also being blocked, so I am forwarding this to the forum to allow it to reach you. Gary Zablackis wrote: Date: Fri, 4 Feb 2005 12:12:15 -0800 (PST) From: Gary Zablackis Subject: Re: To: William Joyner David, I will be checking out NTEmacs this weekend. I have not had time yet to check out how to get the colors to work in the Cygwin (x)emacs programs; that may take a little longer to determine. A desktop icon linking to a .bat (or .cmd) file can be created in Windows by right-clicking on the desktop and selecting "new->shortcut" and then pointing to the location of the file. It is also possible to create a link programmatically. If you like, I can send you the code (in the form of a script or in the form of a c++ source file). Sincerely, Gary Zablackis William Joyner wrote: Hope this works - something is blocking email to yahoo addresses. First, thanks very much! ... Before adding anything to the web pages I'm curious how NTemacs does or if you discover any changes which need to be made to get it to work. I'm also wondering if a windows desktop icon linking to a bat file can be created, analogously to linux, which launches gap within NTemacs after a double mouse click. I'm also curious if colors.gap works in NTemacs. --------------------------------- Do you Yahoo!? Yahoo! Search presents - Jib Jab's 'Second Term' __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From gurican at dcs.fmph.uniba.sk Mon Feb 7 16:04:10 2005 From: gurican at dcs.fmph.uniba.sk (Jaroslav Gurican) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] Article f C.C.Sims Message-ID: <200502071604.j17G4CU24379@alpha.dcs.fmph.uniba.sk> Dear GAP forum, I would like to have a copy of original article of C.C.Sims: Computational methods in the study of permutation groups. In John Leech, editor, Computational Problems in Abstract Algebra, Proc. Conf. Oxford, 1967, pages 169--183. Pergamon Press, Oxford, 1970. I cannot find it in local and nearby libraries. Can some good soul send me (maybe scanned gifs) a copy of this article? If yes, please respond to my direct mail address: gurican@fmph.uniba.sk not to GAP-Forum. Thanks in advance. Jaroslav Gurican -- From wdj at usna.edu Wed Feb 9 17:00:13 2005 From: wdj at usna.edu (David Joyner) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] gap2latex parser Message-ID: <420A419D.2020109@usna.edu> Hi GAP Forum: I've written a very simple python program which takes a file obtained from the GAP LogTo command and converts into a latex file. You must have the python binary installed in \usr\bin (on a linux/unix setup). However, if you have the windows version of python then it presumably works with some editing. The file with an example in on the page http://cadigweb.ew.usna.edu/~wdj/gap/ if you are interested. If there are any comments, please email me at wdj@usna.edu. Thanks. - David Joyner From laurent.bartholdi at epfl.ch Thu Feb 10 22:52:07 2005 From: laurent.bartholdi at epfl.ch (Laurent Bartholdi) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] bugs? Message-ID: hi y'all, a bunch of strange things happened to me these last days when i played around with gap. i use a fairly recent version from cvs (don't remember when i updated it last): gap> A := GroupRing(GF(5),SymmetricGroup(4)); gap> 3*A.1; (Z(5)^3)*(1,2,3,4) gap> 3/4*A.1; Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `PROD' on 2 arguments called from gap> 3*A.1/4; Z(5)*(1,2,3,4) gap> A.1*3/4; Z(5)*(1,2,3,4) --------------------------------------------------- gap> L := LeftIdeal(A,[A.1+A.1^2+A.1^3+A.1^4]);; B := Basis(L);; gap> IsList(B); true gap> Concatenation([A.1],B); AppendList: must be a small list (not a object (component)) at Append( res, arg[i] ); called from ( ) called from read-eval-loop ... gap> Concatenation([A.1],Elements(B)); [ (Z(241)^0)*(1,2,3,4), ... ] gap> Concatenation([A.1],B); [ (Z(241)^0)*(1,2,3,4), ... ] gap> -- -- Laurent Bartholdi \ laurent.bartholdiepflch EPFL, IGAT, B?timent BCH \ T?l?phone: +41 21-6930380 CH-1015 Lausanne, Switzerland \ Fax: +41 21-6930385 -------------- next part -------------- From nea at diamond.boisestate.edu Sun Feb 13 03:27:16 2005 From: nea at diamond.boisestate.edu (Nikos Apostolakis) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] Running gap in emacs Message-ID: <20050213032716.GA30990@hypathia.boisestate.edu> Hello, I tried to run gap in an emacs buffer and I came across the following problem. The help function is not working. Instead I get the error "Buffer *Help* is read only". I get a similar method when I try to use ( M- ) in a buffer in gap-mode, namely "Buffer *Completions* is read only". Completion is working in the gap-process buffer so I think that the problem is in the function "gap-completions-filter" defined in the file gap-process.el. Is anybody else having the same problems? Any fixes? Thanks for any help Nikos -- 1 2 2 3 1 2 2 3 \ / \ / \ \ / Nikos Apostolakis / \ <------> / Visiting Professor \ / / \ Department of Mathematics \ / \ Boise State University / \ / \ 2 3 1 3 2 3 1 3 From cbr773 at yahoo.com Sun Feb 13 08:17:37 2005 From: cbr773 at yahoo.com (comptel) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] Finite fields Message-ID: <20050213081738.65912.qmail@web50208.mail.yahoo.com> hi, I I have some doubts on finite fields. Can anyone answer the following question? we wish to encode the message using F32... Define the cumulative degree of a polynomial to be the sum of degrees of its monomials. a)How many irreducible polynomials of degree 5 over Z/2Z are there? what are they? b) Let Y be a root of the irreducible polynomial of degree 5 of lowest cumulative degree. Then { 1,Y,Y^2,Y^3,Y^4} forms a basis for F32 over Z/2Z. Writing each element of F32 as a 5 tuple with respect to this basis, find all the powers of Y. c) We encode message (numbers between 0 and 31) by raising it Y to that power and then returning the five-bit binary representation we get when writing this element as a 5-tuple with respect to {1,Y,Y^2,Y^3,Y^4}.If 19 is the result m then what number was initially sent?. can anyone help ?. --------------------------------- Do you Yahoo!? Yahoo! Search presents - Jib Jab's 'Second Term' From gzabl at yahoo.com Mon Feb 14 17:25:55 2005 From: gzabl at yahoo.com (Gary Zablackis) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] Running gap in emacs In-Reply-To: <20050213032716.GA30990@hypathia.boisestate.edu> Message-ID: <20050214172555.5502.qmail@web53003.mail.yahoo.com> Dear Nikos, I ran into the same problem with the help buffer the other day and was able to fix it by using the mouse on the bar that separates the help window from the window above (or below) it. I do not have emacs on the machine that I am working on at the moment, but if you need further information, I will check this out at home this evening and email you more complete instructions. I will also look into the gap*.el files to see if there is a fix possible there. Sincerely, Gary Zablackis Nikos Apostolakis wrote: Hello, I tried to run gap in an emacs buffer and I came across the following problem. The help function is not working. Instead I get the error "Buffer *Help* is read only". I get a similar method when I try to use ( M- ) in a buffer in gap-mode, namely "Buffer *Completions* is read only". Completion is working in the gap-process buffer so I think that the problem is in the function "gap-completions-filter" defined in the file gap-process.el. Is anybody else having the same problems? Any fixes? Thanks for any help Nikos -- 1 2 2 3 1 2 2 3 \ / \ / \ \ / Nikos Apostolakis / \ <------> / Visiting Professor \ / / \ Department of Mathematics \ / \ Boise State University / \ / \ 2 3 1 3 2 3 1 3 --------------------------------- Do you Yahoo!? Yahoo! Search presents - Jib Jab's 'Second Term' From nea at diamond.boisestate.edu Tue Feb 15 07:37:54 2005 From: nea at diamond.boisestate.edu (Nikos Apostolakis) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] Running gap in emacs In-Reply-To: <20050214172555.5502.qmail@web53003.mail.yahoo.com> References: <20050213032716.GA30990@hypathia.boisestate.edu> <20050214172555.5502.qmail@web53003.mail.yahoo.com> Message-ID: <20050215073754.GC30990@hypathia.boisestate.edu> On Mon, Feb 14, 2005 at 09:25:55AM -0800, Gary Zablackis wrote: > Dear Nikos, > > I ran into the same problem with the help buffer the other day and was able to fix it by using the mouse on the bar that separates the help window from the window above (or below) it. I do not have emacs on the machine that I am working on at the moment, but if you need further information, I will check this out at home this evening and email you more complete instructions. > I will also look into the gap*.el files to see if there is a fix possible there. Thanks for your replay. Yes please do email me your solution to this problem. By searching some more I found that this problem is rather old. There is question about it posted in the GAP forum in 1998: http://www.gap-system.org/ForumArchive/Rickard.1/Jeremy.1/gap-proc.1/1.html By playing some with emacs (including editing the file gap-process.el) I *once* managed to convince emacs to let gap write into buffer *Help*, however since I wasn't very systematic about it I am not sure how to repeat this. In any case, in the next help command the problem did reappear so whatever I did wsa not the solution. > > Sincerely, > Gary Zablackis > -- 1 2 2 3 1 2 2 3 \ / \ / \ \ / Nikos Apostolakis / \ <------> / Visiting Professor \ / / \ Department of Mathematics \ / \ Boise State University / \ / \ 2 3 1 3 2 3 1 3 From barracrw at for.mat.bham.ac.uk Tue Feb 15 13:41:49 2005 From: barracrw at for.mat.bham.ac.uk (Richard Barraclough) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] Finite fields In-Reply-To: <20050213081738.65912.qmail@web50208.mail.yahoo.com> Message-ID: > hi, > I > I have some doubts on finite fields. Can anyone answer the following question? > > we wish to encode the message using F32... Define the cumulative degree of a > polynomial to be the sum of degrees of its monomials. > > a)How many irreducible polynomials of degree 5 over Z/2Z are there? > what are they? You can use GAP to find this out easily, F := FiniteField(2); x := Indeterminate(F); V := FullRowSpace(F,5); for v in V do f := x^5; for i in [1..5] do f := f + v[i]*x^(i-1); od; if IsIrreducible(f) then Print(f,"\n"); fi; od; > > > b) > Let Y be a root of the irreducible polynomial of degree 5 of lowest cumulative > degree. Then { 1,Y,Y^2,Y^3,Y^4} forms a basis for F32 over Z/2Z. Writing each > element of F32 as a 5 tuple with respect to this basis, find all the powers > of Y. Lets say our polynomial is x^5 + x^3 + 1 So 1 -> 10000 Y -> 01000 Y^4 -> 00001 Y^5 -> 10010 Let A := [[0,0,0,0,0],[1,0,0,0,0],[0,1,0,0,0],[0,0,1,0,0],[0,0,0,1,0]]*Z(2); When we multiply a vector by A it shifts all co-ordinates to the right and fills the left with zeros, i.e., bit shift. So multiplying a vector by A is the same as multiplying the corresponding F32 number by Y except that we have to sort out what happens when our vectors overflow at the right. If the 5th co-ordinate (the one corresponding to Y^4) is 1, then we shall add 10010 after bit shifting, because 10010 corresponds to Y^5. So, Y^6 = (Y^5)A = 01001 Y^7 = (Y^6)A + 10010 = 10110 Y^8 = (Y^7)A = 01011 Y^9 = (Y^8)A + 10010 = 10111 Y^10 = (Y^9)A + 10010 = 11001 etc. This is an easy way to build a lookup table for encoding/decoding. > c) We encode message (numbers between 0 and 31) by raising it Y to that power > and then returning the five-bit binary representation we get when writing this > element as a 5-tuple with respect to {1,Y,Y^2,Y^3,Y^4}.If 19 is the result > then what number was initially sent?. 19 -> 11001 which happens to correspond to Y^10. Wouldn't it be OK just to send the un-encoded message? I can't see how this coding can correct any errors. Regards, Richard Barraclough From Dursun.Bulutoglu at afit.edu Wed Feb 16 19:43:29 2005 From: Dursun.Bulutoglu at afit.edu (Bulutoglu Dursun A Civ AFIT/ENC) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] Speed of GAP Message-ID: <039A0DCC3D66EE4AB9AF11E119287F154E61BE@ms-afit-04.afit.edu> Dear Gap Forum, I was wondering how GAP compares to C in terms of speed. Is GAP slower processing through large loops? Is there a programming style in GAP that can improve the speed at which jobs are done? For example in some high level programming languages avoiding loops as much as possible is recommended to boost speed. Is GAP much slower when the data it processes through is large? I have a GAP code running for a week now and it still has not finished. I have a feeling that it would have run much faster with C. Dursun. From justpasha at gmail.com Fri Feb 18 08:44:13 2005 From: justpasha at gmail.com (Pasha Zusmanovich) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] addition of linear mappings Message-ID: <4215AADD.12CCF5EB@gmail.com> Dear people, I am trying to add two linear mappings. gap> GAPInfo.Version; "4.4.4" gap> V := VectorSpace (Rationals, [[1,0],[0,1]]); gap> A := LeftModuleHomomorphismByImagesNC (V, V, Basis(V), [[1,0],[0,0]]); SemiEchelonBasis( , [ [ 1, 0 ], [ 0, 1 ] ] ) -> [ [ 1, 0 ], [ 0, 0 ] ] gap> B := LeftModuleHomomorphismByImagesNC (V, V, Basis(V), [[0,0],[0,1]]); SemiEchelonBasis( , [ [ 1, 0 ], [ 0, 1 ] ] ) -> [ [ 0, 0 ], [ 0, 1 ] ] So far, so good. gap> A + B; Error, and must have same (pre)image called from ( ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> Indeed, Image(A) does not coincide with Image(B), but is it needed to be able to add two mappings? Image(A) and Image(B) are guaranteed to be subspaces of V, so their elements can be added safely. If one removes the corresponding checks from lib/vspchom.gi (lines with ImagesSource( map1 ) <> ImagesSource( map2 ) in two places), everything works like a charm: gap> A + B; SemiEchelonBasis( , [ [ 1, 0 ], [ 0, 1 ] ] ) -> [ [ 1, 0 ], [ 0, 1 ] ] Am I missing something? Thanks, Pasha. From hebert at csd.uo.edu.cu Fri Feb 18 16:18:02 2005 From: hebert at csd.uo.edu.cu (hebert@csd.uo.edu.cu) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] Speed of GAP In-Reply-To: <039A0DCC3D66EE4AB9AF11E119287F154E61BE@ms-afit-04.afit.edu> References: <039A0DCC3D66EE4AB9AF11E119287F154E61BE@ms-afit-04.afit.edu> Message-ID: <1090.172.16.151.81.1108743482.squirrel@server> > Dear Gap Forum, > I was wondering how GAP compares to C in terms of speed. > Is GAP slower processing through large loops? > Is there a programming style in GAP that can improve the speed at which > jobs are done? For example in some high level programming languages > avoiding loops as much as possible is recommended to boost speed. > Is GAP much slower when the data it processes through is large? > I have a GAP code running for a week now and it still has not finished. > I have a feeling that it would have run much faster with C. > Dursun. I don't know about your particular situation, but usually when such problems arise, they simply cannot be solved by changing the programming language. If you're lucky you could slice the running time of your program by a constant factor. Your description reveals that either your problem is essentially intractable or you must look for a better algorithm. A personal anecdote: I had a GAP program that computed the number of elements of a finitely presented monoids in several hours; after careful considerations I found a better algorithm that could do the same work in milliseconds. Good luck, Hebert. > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From gzabl at yahoo.com Fri Feb 18 17:07:14 2005 From: gzabl at yahoo.com (Gary Zablackis) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] Running gap in emacs In-Reply-To: <20050215073754.GC30990@hypathia.boisestate.edu> Message-ID: <20050218170714.24795.qmail@web53004.mail.yahoo.com> Dear Nikos, I will be looking into this problem over the weekend. Would you let me know what version of emacs your are using and on which operating system you are running? Thank you, Gary Zablackis Nikos Apostolakis wrote: Thanks for your replay. Yes please do email me your solution to this problem. By searching some more I found that this problem is rather old. There is question about it posted in the GAP forum in 1998: http://www.gap-system.org/ForumArchive/Rickard.1/Jeremy.1/gap-proc.1/1.html By playing some with emacs (including editing the file gap-process.el) I *once* managed to convince emacs to let gap write into buffer *Help*, however since I wasn't very systematic about it I am not sure how to repeat this. In any case, in the next help command the problem did reappear so whatever I did wsa not the solution. > > Sincerely, > Gary Zablackis > -- 1 2 2 3 1 2 2 3 \ / \ / \ \ / Nikos Apostolakis / \ <------> / Visiting Professor \ / / \ Department of Mathematics \ / \ Boise State University / \ / \ 2 3 1 3 2 3 1 3 __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From Dursun.Bulutoglu at afit.edu Fri Feb 18 19:21:21 2005 From: Dursun.Bulutoglu at afit.edu (Bulutoglu Dursun A Civ AFIT/ENC) Date: Fri Apr 8 15:25:47 2005 Subject: [GAP Forum] Speed of GAP Message-ID: <039A0DCC3D66EE4AB9AF11E119287F154E63C7@ms-afit-04.afit.edu> My experience is that MATLAB is slower than C by a factor of 2 or 3. Also R, (a statistical language) is 10 times slower than C. In general higher level languages (languages that have a lot of overhead) are slower than lower level languages like C or Fortran. My question was how GAP compares to C in terms of speed. I am assuming that GAP is a higher level language as one does not have to define everything like in C. Also programming style can make a difference in higher level languages. In R it is recommended that the user should avoid for loops as much as possible as for loops in R become intangible when they are large. Dursun. > Dear Gap Forum, > I was wondering how GAP compares to C in terms of speed. > Is GAP slower processing through large loops? > Is there a programming style in GAP that can improve the speed at which > jobs are done? For example in some high level programming languages > avoiding loops as much as possible is recommended to boost speed. > Is GAP much slower when the data it processes through is large? > I have a GAP code running for a week now and it still has not finished. > I have a feeling that it would have run much faster with C. > Dursun. I don't know about your particular situation, but usually when such problems arise, they simply cannot be solved by changing the programming language. If you're lucky you could slice the running time of your program by a constant factor. Your description reveals that either your problem is essentially intractable or you must look for a better algorithm. A personal anecdote: I had a GAP program that computed the number of elements of a finitely presented monoids in several hours; after careful considerations I found a better algorithm that could do the same work in milliseconds. Good luck, Hebert. > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From nea at diamond.boisestate.edu Fri Feb 18 23:38:35 2005 From: nea at diamond.boisestate.edu (Nikos Apostolakis) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] Running gap in emacs In-Reply-To: <20050218170714.24795.qmail@web53004.mail.yahoo.com> References: <20050215073754.GC30990@hypathia.boisestate.edu> <20050218170714.24795.qmail@web53004.mail.yahoo.com> Message-ID: <20050218233835.GF24259@hypathia.boisestate.edu> On Fri, Feb 18, 2005 at 09:07:14AM -0800, Gary Zablackis wrote: > Dear Nikos, > > I will be looking into this problem over the weekend. > Would you let me know what version of emacs your are using and on which operating system you are running? > Dear Gary, In my office I run GNU emacs 21.2.1 on a RedHat 9 and in my home I run GNU emacs 21.3.1 on a Debian testing/unstable. In both of these machines I get the same problem. Thanks again Nikos > Thank you, > Gary Zablackis > > > Nikos Apostolakis wrote: > Thanks for your replay. > > Yes please do email me your solution to this problem. By > searching some more I found that this problem is rather > old. There is question about it posted in the GAP forum in 1998: > > http://www.gap-system.org/ForumArchive/Rickard.1/Jeremy.1/gap-proc.1/1.html > > By playing some with emacs (including editing the file > gap-process.el) I *once* managed to convince emacs to let gap > write into buffer *Help*, however since I wasn't very systematic > about it I am not sure how to repeat this. In any case, in the > next help command the problem did reappear so whatever I did wsa > not the solution. > > > > > Sincerely, > > Gary Zablackis > > From sal at dcs.st-and.ac.uk Sat Feb 19 19:17:59 2005 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] Re: Speed of GAP Message-ID: <20050219191759.6e5cc39a@localhost.localdomain> Dear GAP Forum, Dursun Bulutoglu asked: > I was wondering how GAP compares to C in terms of speed. > Is GAP slower processing through large loops? > Is there a programming style in GAP that can improve the speed at which > jobs are done? For example in some high level programming languages > avoiding loops as much as possible is recommended to boost speed. > Is GAP much slower when the data it processes through is large? > I have a GAP code running for a week now and it still has not finished. > I have a feeling that it would have run much faster with C. There is no really simple answer to this question, it depends very much on what you are doing. Code in which most the time is spent doing simple arithmetic, array accesses, data structure manipulation, and so on is perhaps 3 to 10 times slower in GAP than C, due mainly to the additional overheads from the memory management and the interpreter, but this is extremely variable. Code of this kind can benefit significantly from compilation using the "gac" GAP to C compiler (see section 3.7 of the reference manual). As soon as you do something which calls upon the slightly higher level capabilities of the GAP kernel, such as vector arithmetic, the overhead of using GAP drops away dramatically. The overhead of simple loops such as for i in [1..10000] do .... od is very small. Special code in the interpreter detects this case and essentially performs the equivalent C loop. On the other hand it will be quite a lot faster to do w := u+ v; than for i in [1..Length(u)] do w[i] := u[i]+ v[i]; od; since the former will use a kernel routine to do all the additions instead of interpreting each one separately. Without seeing your code it is difficult to say more. Steve Linton -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From Dursun.Bulutoglu at afit.edu Sun Feb 20 17:28:11 2005 From: Dursun.Bulutoglu at afit.edu (Bulutoglu Dursun A Civ AFIT/ENC) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] Re: Speed of GAP Message-ID: <039A0DCC3D66EE4AB9AF11E119287F154E6424@ms-afit-04.afit.edu> I was wondering, if I compiled my GAP code using GAC is there a guarantee that it will run as fast as the C version of my code? Dursun. Dear GAP Forum, Dursun Bulutoglu asked: > I was wondering how GAP compares to C in terms of speed. > Is GAP slower processing through large loops? > Is there a programming style in GAP that can improve the speed at which > jobs are done? For example in some high level programming languages > avoiding loops as much as possible is recommended to boost speed. > Is GAP much slower when the data it processes through is large? > I have a GAP code running for a week now and it still has not finished. > I have a feeling that it would have run much faster with C. There is no really simple answer to this question, it depends very much on what you are doing. Code in which most the time is spent doing simple arithmetic, array accesses, data structure manipulation, and so on is perhaps 3 to 10 times slower in GAP than C, due mainly to the additional overheads from the memory management and the interpreter, but this is extremely variable. Code of this kind can benefit significantly from compilation using the "gac" GAP to C compiler (see section 3.7 of the reference manual). As soon as you do something which calls upon the slightly higher level capabilities of the GAP kernel, such as vector arithmetic, the overhead of using GAP drops away dramatically. The overhead of simple loops such as for i in [1..10000] do .... od is very small. Special code in the interpreter detects this case and essentially performs the equivalent C loop. On the other hand it will be quite a lot faster to do w := u+ v; than for i in [1..Length(u)] do w[i] := u[i]+ v[i]; od; since the former will use a kernel routine to do all the additions instead of interpreting each one separately. Without seeing your code it is difficult to say more. Steve Linton -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From Dursun.Bulutoglu at afit.edu Sun Feb 20 18:03:10 2005 From: Dursun.Bulutoglu at afit.edu (Bulutoglu Dursun A Civ AFIT/ENC) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] Speed of GAP Message-ID: <039A0DCC3D66EE4AB9AF11E119287F154E6425@ms-afit-04.afit.edu> I was wondering, if I compiled my GAP code using GAC is there a guarantee that it will run as fast as the C version of my code? Dursun. Dear GAP Forum, Dursun Bulutoglu asked: > I was wondering how GAP compares to C in terms of speed. > Is GAP slower processing through large loops? > Is there a programming style in GAP that can improve the speed at which > jobs are done? For example in some high level programming languages > avoiding loops as much as possible is recommended to boost speed. > Is GAP much slower when the data it processes through is large? > I have a GAP code running for a week now and it still has not finished. > I have a feeling that it would have run much faster with C. There is no really simple answer to this question, it depends very much on what you are doing. Code in which most the time is spent doing simple arithmetic, array accesses, data structure manipulation, and so on is perhaps 3 to 10 times slower in GAP than C, due mainly to the additional overheads from the memory management and the interpreter, but this is extremely variable. Code of this kind can benefit significantly from compilation using the "gac" GAP to C compiler (see section 3.7 of the reference manual). As soon as you do something which calls upon the slightly higher level capabilities of the GAP kernel, such as vector arithmetic, the overhead of using GAP drops away dramatically. The overhead of simple loops such as for i in [1..10000] do .... od is very small. Special code in the interpreter detects this case and essentially performs the equivalent C loop. On the other hand it will be quite a lot faster to do w := u+ v; than for i in [1..Length(u)] do w[i] := u[i]+ v[i]; od; since the former will use a kernel routine to do all the additions instead of interpreting each one separately. Without seeing your code it is difficult to say more. Steve Linton From thomas.breuer at math.rwth-aachen.de Wed Feb 23 12:21:12 2005 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] bugs? Message-ID: Dear GAP Forum, Laurent Bartholdi has reported the following GAP bugs. > gap> A := GroupRing(GF(5),SymmetricGroup(4)); > > gap> 3*A.1; > (Z(5)^3)*(1,2,3,4) > gap> 3/4*A.1; > Error, no method found! For debugging hints type ?Recovery from NoMethodFou= > nd > Error, no 1st choice method found for `PROD' on 2 arguments called from > gap> 3*A.1/4; > Z(5)*(1,2,3,4) > gap> A.1*3/4; > Z(5)*(1,2,3,4) > --------------------------------------------------- > gap> L := LeftIdeal(A,[A.1+A.1^2+A.1^3+A.1^4]);; B := Basis(L);; > gap> IsList(B); > true > gap> Concatenation([A.1],B); > AppendList: must be a small list (not a object (component)) at > Append( res, arg[i] ); > called from > ( ) called from read-eval-loop > .. > gap> Concatenation([A.1],Elements(B)); > [ (Z(241)^0)*(1,2,3,4), ... ] > gap> Concatenation([A.1],B); > [ (Z(241)^0)*(1,2,3,4), ... ] The first problem is due to a missing method for multiplying group ring elements with rationals. As the example shows, multiplication and division by integers works, so there is clearly no reason why multiplication with rationals should not be supported. The necessary method installations for a quick fix are appended below. The second problem is due to a too restrictive method for `Append'. Fixing this will require a change to the GAP kernel, but a preliminary workaround for the example above (and others) is appended below. Thanks very much for the report. All the best, Thomas InstallMethod( \*, "for magma ring element, and rational", [ IsElementOfMagmaRingModuloRelations, IsRat ], ElmTimesRingElm ); InstallMethod( \*, "for rational, and magma ring element", [ IsRat, IsElementOfMagmaRingModuloRelations ], RingElmTimesElm ); InstallImmediateMethod( IsSmallList, IsBasis and HasBasisVectors and IsAttributeStoringRep, 0, function( B ) B:= BasisVectors( B ); if HasIsSmallList( B ) then return IsSmallList( B ); fi; TryNextMethod(); end ); InstallImmediateMethod( IsSmallList, IsBasis and HasUnderlyingLeftModule and IsAttributeStoringRep, 0, function( B ) B:= UnderlyingLeftModule( B ); if HasDimension( B ) then return Dimension( B ) <= MAX_SIZE_LIST_INTERNAL; fi; TryNextMethod(); end ); From thomas.breuer at math.rwth-aachen.de Wed Feb 23 12:24:07 2005 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] addition of linear mappings Message-ID: Dear GAP Forum, Pasha Zusmanovich wrote > I am trying to add two linear mappings. > > gap> GAPInfo.Version; > "4.4.4" > gap> V := VectorSpace (Rationals, [[1,0],[0,1]]); > > gap> A := LeftModuleHomomorphismByImagesNC (V, V, Basis(V), > [[1,0],[0,0]]); > SemiEchelonBasis( , > [ [ 1, 0 ], [ 0, 1 ] ] ) -> [ [ 1, 0 ], [ 0, 0 ] ] > gap> B := LeftModuleHomomorphismByImagesNC (V, V, Basis(V), > [[0,0],[0,1]]); > SemiEchelonBasis( , > [ [ 1, 0 ], [ 0, 1 ] ] ) -> [ [ 0, 0 ], [ 0, 1 ] ] > > So far, so good. > > gap> A + B; > Error, and must have same (pre)image called from > ( ) called from read-eval-loop > Entering break read-eval-print loop ... > you can 'quit;' to quit to outer loop, or > you can 'return;' to continue > brk> > > Indeed, Image(A) does not coincide with Image(B), but is it needed to be > able to add two mappings? Image(A) and Image(B) are guaranteed to be > subspaces of V, so their elements can be added safely. If one removes > the corresponding checks from lib/vspchom.gi (lines with > > ImagesSource( map1 ) <> ImagesSource( map2 ) > > in two places), everything works like a charm: > > gap> A + B; > SemiEchelonBasis( , > [ [ 1, 0 ], [ 0, 1 ] ] ) -> [ [ 1, 0 ], [ 0, 1 ] ] > > Am I missing something? The observation is correct, the check for equal images is nonsense. (In fact other methods are installed for this situation which would return the mapping in question, but they are not called.) This problem will be fixed in the next version. Thanks very much for this report. All the best, Thomas From dutour at liga.ens.fr Thu Feb 24 11:38:07 2005 From: dutour at liga.ens.fr (Mathieu Dutour) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] Stabilizer problem Message-ID: <20050224113807.GA52448@orge.ens.fr> Dear Gap Forum, I am computing with Integral Matrix Groups in GAP. The set on which those groups act is n-uples [x_1, ...., x_n] with 0<=x_i<1 The action of the matrix Group on this set is ActionMod1:=function(eVect, eMat) return List(OnPoints(eVect, eMat), x-> (NumeratorRat(x) mod DenominatorRat(x))/Denominator(x) ); end; Using that action, I want to use function Stabilizer and RepresentativeAction. Most of the time those functions works perfectly and I have no complaint. However, in some cases, the computation fails by lack of memory (for example in dimension 15 with the symmetry group of Lambda15 of order 41287680) Those cases arise when the stabilizer groups to be computed are small. What causes such problems? What possible solutions may be available? Mathieu -- Mathieu Dutour Sikiric Researcher in Math Tel. (+972)2 65 84 103 and Computer Science Fax. (+972)2 56 30 702 Einstein Institute of Mathematics E-mail: Mathieu.Dutour@ens.fr Hebrew University of Jerusalem http://www.liga.ens.fr/~dutour Israel From mjoao at classic.univ-ab.pt Fri Feb 25 14:35:54 2005 From: mjoao at classic.univ-ab.pt (Joao Araujo) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] Direct product of semigroups In-Reply-To: <20050224113807.GA52448@orge.ens.fr> References: <20050224113807.GA52448@orge.ens.fr> Message-ID: I would like to compute the automorphism group of a direct product of (two) semigroups. Is it possible to do that with GAP? I thank in advance any help. Joao From laurent.bartholdi at epfl.ch Sun Feb 27 13:57:12 2005 From: laurent.bartholdi at epfl.ch (Laurent Bartholdi) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] performance of GAP Message-ID: hi there, prompted by a question on this forum [how does GAP perform compared to C code], i did the following experiment: gap> L := List([1..10^7],SignInt);; time; 4890 gap> L := List([1..10^7],i->SignInt(i));; time; 7330 gap> L := [];; for i in [1..10^7] do Add(L,SignInt(i)); od; time; 5480 I would naively have expected all 3 timings to be the same. is there a general rule of "fastest coding style": avoid creating function objects, but use the primitive "List()" as often as possible? be happy, laurent -- -- Laurent Bartholdi \ laurent.bartholdiepflch EPFL, IGAT, B?timent BCH \ T?l?phone: +41 21-6930380 CH-1015 Lausanne, Switzerland \ Fax: +41 21-6930385 From sal at dcs.st-and.ac.uk Sun Feb 27 15:39:39 2005 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] Speed of GAP In-Reply-To: <039A0DCC3D66EE4AB9AF11E119287F154E6425@ms-afit-04.afit.edu> References: <039A0DCC3D66EE4AB9AF11E119287F154E6425@ms-afit-04.afit.edu> Message-ID: <20050227153939.227e3336@localhost.localdomain> Dear GAP Forum On Sun, 20 Feb 2005 13:03:10 -0500 "Bulutoglu Dursun A Civ AFIT/ENC" wrote: > I was wondering, if I compiled my GAP code using GAC is there a > guarantee that it will run as fast as the C version of my code? > Dursun. > No, I am afraid not. It is hard to be more precise without knowing what your code is doing, but in general GAC will no produce code that runs as fast as native C code. On the other hand, the compiled code can still draw on the full resources of the GAP kernel and library, which stand-alone C code cannot. Steve -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From dutour at liga.ens.fr Mon Feb 28 08:01:20 2005 From: dutour at liga.ens.fr (Mathieu Dutour) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] Cosets and intersection Message-ID: <20050228080120.GA82914@orge.ens.fr> Dear Gap forum, Suppose that xH is a right coset and G is a group. Then the intersection of xH and G is: --either emptyset [ ] --or a right coset of the form y (H inter G) One may want that the corresponding gap command take this into account, but this is not the case: V:=RightCoset(SymmetricGroup(4), (4,5)); Intersection(SymmetricGroup(5), V); returns a list of 24 elements. Is there a way to avoid the creation of a list? As a matter of fact, I just want to know if the intersection is empty or not and if not to have one element in the intersection. Mathieu -- Mathieu Dutour Sikiric Researcher in Math Tel. (+972)2 65 84 103 and Computer Science Fax. (+972)2 56 30 702 Einstein Institute of Mathematics E-mail: Mathieu.Dutour@ens.fr Hebrew University of Jerusalem http://www.liga.ens.fr/~dutour Israel From jjm at dcs.st-and.ac.uk Tue Mar 1 09:51:47 2005 From: jjm at dcs.st-and.ac.uk (John McDermott) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] Fwd: Speed of GAP Message-ID: Begin forwarded message: > From: Alexander Hulpke > Date: 28 February 2005 17:27:25 GMT > To: gap-forum@gap-system.org > Subject: Re: Speed of GAP > > Dear GAP Forum, > > D. Bulutoglu asked: > >> I was wondering, if I compiled my GAP code using GAC is there a >> guarantee that it will run as fast as the C version of my code? > > There is no guarantee as you are comparing very different things. > (In particular it is often possible to improve runtime at the cost of > modularity or portability.) > > Not knowing your application also makes guessing hard, but here are > some > rules of thumb: > > If you can write everything you need in C (which in particular means > that > you have no need for the functionality provided by GAP beyond the basic > programming language, or that you are willing to recode all of this on > your > own in C) good C code is likely faster. In examples I have observed C > being > faster by a factor of between 10 and 1000 than pure GAP code. (As soon > as > notable time is spent in GAP kernel routines, such as matrix > multiplication or permutation multiplication the factor drops down to > under > 10.) > > Using the `gac' compiler will reduce this factor (again only > considering > code that does not use GAP kernel routines) to around 3 to 100. > > On the other hand coding in GAP is (at least for me) easily a similar > factor > faster than coding in C. > > If you need GAP functionality and you *must* have the speed of C your > best > bet is likely to have `gac' produce C code and then to hand > optimize/rewrite > this code. > > Finally I'd like to strongly second the opinion expressed already that > algorithmic improvements are likey to get you much further as any > programming tricks will ever do. > > All the best, > > Alexander Hulpke > > -- Colorado State University, Department of Mathematics, > Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA > email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 > http://www.math.colostate.edu/~hulpke > > -- John McDermott Computing Officer & Purchase Officer School of Computer Science University of St Andrews North Haugh, St Andrews, Fife KY16 9SX tel +44 1334 463252 mob +44 7941 507531 From jjm at dcs.st-and.ac.uk Tue Mar 1 09:52:50 2005 From: jjm at dcs.st-and.ac.uk (John McDermott) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] Fwd: stabilizer problem Message-ID: Begin forwarded message: > From: Alexander Hulpke > Date: 28 February 2005 18:30:42 GMT > To: gap-forum@gap-system.org > Subject: Re: stabilizer problem > > Dear Gap Forum, > > Mathieu Dutour wrote: > >> I am computing with Integral Matrix Groups in GAP. > >> The action of the matrix Group on this set is > [...] >> Using that action, I want to use function Stabilizer > [...] >> However, in some cases, the computation fails by lack of >> memory (for example in dimension 15 with the symmetry group >> of Lambda15 of order 41287680) Those cases arise when the >> stabilizer groups to be computed are small. > > Unless the group is a permutation group acting on points, sets, > elements or > subgroups (in which case a backtrack algorithm is used) the > calculation of a > stabilizer (or representative) usually works by enumerating the orbit. > > If the stabilizer is small this orbit is large and this can cause you > running out of memory. > > The only way around it (apart from getting more memory or recoding to > save > storage space) is to reduce the stabilizer computation into smaller > steps by > finding an intermediate subgroup U such that Stab > Typically such an U can be found as stabilizer under another > ``coarser'' > action. Sometimes it can be written down from the structure of the > domain > (say a subspace stabilizer in GL), sometimes it is found by > considering an > action that is not necessarily faithful (projective action, reduction > modulo > a prime or similar). Which action to use concretely will depend very > much on > the concrete case. > > In your situation, considering reduction modulo a prime that does not > occur > in the denominators might be a first approach. > > Best wishes, > > Alexander Hulpke > > -- Colorado State University, Department of Mathematics, > Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA > email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 > http://www.math.colostate.edu/~hulpke > > -- John McDermott Computing Officer & Purchase Officer School of Computer Science University of St Andrews North Haugh, St Andrews, Fife KY16 9SX tel +44 1334 463252 mob +44 7941 507531 From wdj at usna.edu Tue Mar 1 14:57:21 2005 From: wdj at usna.edu (David Joyner) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] Re: [GAP Support] using gap from another program In-Reply-To: References: Message-ID: <422482D1.2080101@usna.edu> Nicolas: A very simple example of a python-gap interface is at http://cadigweb.ew.usna.edu/~wdj/gap/ I don't know java, but perhaps that example will help you. I'm cross-posting to the Forum, in case there might be other GAP users interested as well. - David Joyner ++++++++++++++++++++++++++++ Nicolas Demoulin wrote: > Hi, > I am a student in computer science from University College Cork and I am > doing a project on Symmetry Breaking in CSP. I have already used gap but > what I would like to do know is to insert gap in my main program which > is written in Java. And I saw in the faq that : > > "What you can do is to run GAP in a child process and communicate with > it using pipes, pseudo-ttys, UNIX FIFOs or some similar device. We have > done this successfully in a number of projects, and you can contact the > support list for more detailed advice if you want to go down this route" > > So if you can give me advice or examples of communication between gap > and another program, it will help me very much. > > Thank you to have taken time to read me > Best Regards > > Nicolas Demoulin > > _________________________________________________________________ > Nouveau MSN Hotmail : cr?ez une adresse @hotmail.fr qui vous ressemble ! > http://www.msn.fr/newmsnhotmail > > _______________________________________________ > Support mailing list > Support@gap-system.org > http://mail.gap-system.org/mailman/listinfo/support From laurent.bartholdi at epfl.ch Tue Mar 1 15:43:52 2005 From: laurent.bartholdi at epfl.ch (Laurent Bartholdi) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] musings on the empty set Message-ID: hi, i'm writing some code which occasionally constructs vector spaces of dimension 0, and i'm a bit surprised to see that these have to be handled specially. to wit: gap> VectorSpace(GF(2),[]); Error, no method found! For debugging hints type ?Recovery from NoMethodFound ... gap> VectorSpace(GF(2),[Zero(r)]); # r is an (infinite-dimensional) ring over GF(2) now, a bit worse: gap> NullspaceMat([[0],[0]]); # zero map: Z^2 -> Z^1 [ [ 1, 0 ], [ 0, 1 ] ] gap> NullspaceMat([[],[]]); # zero map: Z^2 -> Z^0 Error, no method found! For debugging hints type ?Recovery from NoMethodFound i agree that there are simple workarounds for the above problems; it would just make my code shorter and simpler if they could be handled by GAP. best, laurent -- Laurent Bartholdi \ laurent.bartholdiepflch EPFL, IGAT, B?timent BCH \ T?l?phone: +41 21-6930380 CH-1015 Lausanne, Switzerland \ Fax: +41 21-6930385 From ally at dcs.gla.ac.uk Tue Mar 1 17:26:37 2005 From: ally at dcs.gla.ac.uk (Alastair Donaldson) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] Re: [GAP Support] using gap from another program In-Reply-To: <422482D1.2080101@usna.edu> References: <422482D1.2080101@usna.edu> Message-ID: I use GAP from JAVA by launching GAP in quiet mode as a slave process, then communicating with GAP using a buffered writer (which GAP thinks is standard input) and a buffered reader (which is where GAP's standard output goes to). Here's a trivial bit of JAVA code which will print out the size of the group generated by (1,2)(3,4) and (5,6): try { // Launch GAP in 'quiet' mode Process p = Runtime.getRuntime().exec("/usr/local/data/group_files/newinstall/gap-linux -L gapworkspace -q"); BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(p.getOutputStream())); // Send something to GAP bw.write("G := Group((1,2)(3,4),(5,6));;\n"; bw.write("Size(G);\n"); bw.flush(); // You need to do this before you can read anything back from GAP System.out.println("The size of the group is " + br.readLine()); } catch (Exception e) { System.out.println("Error executing GAP"); System.out.println(e); e.printStackTrace(); System.out.println(br.readLine()); System.exit(1); } } I have some more complex examples where my JAVA program does some real computation using GAP. I've found it really tricky to get GAP to synchronise with my programs since GAP can produce rather unpredictable output sometimes. -Alastair On Tue, 1 Mar 2005, David Joyner wrote: > Nicolas: > > A very simple example of a python-gap interface is at > http://cadigweb.ew.usna.edu/~wdj/gap/ > I don't know java, but perhaps that example will help you. > > I'm cross-posting to the Forum, in case there might be > other GAP users interested as well. > > - David Joyner > > ++++++++++++++++++++++++++++ > > > > Nicolas Demoulin wrote: > > Hi, > > I am a student in computer science from University College Cork and I am > > doing a project on Symmetry Breaking in CSP. I have already used gap but > > what I would like to do know is to insert gap in my main program which > > is written in Java. And I saw in the faq that : > > > > "What you can do is to run GAP in a child process and communicate with > > it using pipes, pseudo-ttys, UNIX FIFOs or some similar device. We have > > done this successfully in a number of projects, and you can contact the > > support list for more detailed advice if you want to go down this route" > > > > So if you can give me advice or examples of communication between gap > > and another program, it will help me very much. > > > > Thank you to have taken time to read me > > Best Regards > > > > Nicolas Demoulin > > > > _________________________________________________________________ > > Nouveau MSN Hotmail : cr?ez une adresse @hotmail.fr qui vous ressemble ! > > http://www.msn.fr/newmsnhotmail > > > > _______________________________________________ > > Support mailing list > > Support@gap-system.org > > http://mail.gap-system.org/mailman/listinfo/support > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From jalal_molavi at yahoo.com Wed Mar 2 12:59:15 2005 From: jalal_molavi at yahoo.com (jalal molavi) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] semigroup of some order Message-ID: <20050302125915.95262.qmail@web42107.mail.yahoo.com> Dear gap- forum. I have a question . Is there any classification about semigroup such as group. in the other hand how many semigroups are there of size n where n is natural number. i need all semigroups of size less than 10. if any one have usefull information i am very thankful to know that. Best regards. --------------------------------- Yahoo! Messenger - Communicate instantly..."Ping" your friends today! Download Messenger Now From costanti at science.unitn.it Wed Mar 2 14:40:13 2005 From: costanti at science.unitn.it (Marco Costantini) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] semigroup of some order In-Reply-To: <20050302125915.95262.qmail@web42107.mail.yahoo.com> References: <20050302125915.95262.qmail@web42107.mail.yahoo.com> Message-ID: <200503021540.13136.costanti@science.unitn.it> Dear jalal molav, there is some information and some links at http://mathworld.wolfram.com/Semigroup.html : "The numbers of nonisomorphic semigroups of orders 1, 2, ... are 1, 5, 24, 188, 1915, ... (Sloane's A027851)." Best regards, Marco Costantini On Wednesday 02 March 2005 13:59, jalal molavi wrote: > Is there any classification about semigroup such as group. > in the other hand how many semigroups are there of size n > where n is natural number. > i need all semigroups of size less than 10. > if any one have usefull information i am very thankful to know that. From Goetz.Pfeiffer at NUIGalway.ie Wed Mar 2 15:13:28 2005 From: Goetz.Pfeiffer at NUIGalway.ie (Goetz Pfeiffer) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] semigroup of some order In-Reply-To: <20050302125915.95262.qmail@web42107.mail.yahoo.com> References: <20050302125915.95262.qmail@web42107.mail.yahoo.com> Message-ID: <20050302151327.GA19383@congres-043.epfl.ch> Dear jalal molavi, dear GAP Forum, according to S. Satoh, K. Yama\ and\ M. Tokizawa, Semigroup Forum {\bf 49} (1994), no.~1, 7--29; MR1272859 (95i:20080) there are $1,843,120,128$ non-equivalent semigroups of order 8. Enjoy! Goetz Pfeiffer On Wed, Mar 02, 2005 at 12:59:15PM +0000, jalal molavi wrote: > Dear gap- forum. > I have a question . > Is there any classification about semigroup such as group. > in the other hand how many semigroups are there of size n > where n is natural number. > i need all semigroups of size less than 10. > if any one have usefull information i am very thankful to know that. > Best regards. > > > --------------------------------- > Yahoo! Messenger - Communicate instantly..."Ping" your friends today! Download Messenger Now > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum ------------------------------------------------------------------------- Goetz.Pfeiffer@NUIGalway.ie http://schmidt.nuigalway.ie/~goetz/ National University of Ireland, Galway. phone +353-91-49-3591 From Jean-Eric.Pin at liafa.jussieu.fr Wed Mar 2 16:31:30 2005 From: Jean-Eric.Pin at liafa.jussieu.fr (Jean-Eric Pin) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] semigroup of some order In-Reply-To: <20050302125915.95262.qmail@web42107.mail.yahoo.com> References: <20050302125915.95262.qmail@web42107.mail.yahoo.com> Message-ID: Dear Jalal Molavi, To my knowledge, only the number of non-isomorphic commutative semigroups of order <= 10 is known. See Pierre Antoine Grillet, Computing Finite Commutative Semigroups: Part II Semigroup Forum 67, Number 2, 2003, 159-184 (and Part III, 185-204) For general semigroups, the larger known order seems to be 8 Semigroups of order 8, S. Satoh, K. Yama, and M. Tokizawa. Semigroup Forum 49, 1994, pages 7-29. Best regards, Jean-Eric Pin At 12:59 +0000 2/03/05, jalal molavi wrote: >Dear gap- forum. >I have a question . >Is there any classification about semigroup such as group. >in the other hand how many semigroups are there of size n >where n is natural number. >i need all semigroups of size less than 10. >if any one have usefull information i am very thankful to know that. >Best regards. From jmcd at dcs.st-and.ac.uk Fri Mar 4 10:16:41 2005 From: jmcd at dcs.st-and.ac.uk (John McDermott) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] Fwd: [GAP Support] char Table and LLL Message-ID: <3070bc50cb92d1feb8c9e1e843069eac@dcs.st-and.ac.uk> This was sent to the Support list and was intended for the Forum as well, but was mis-addressed: Begin forwarded message: > From: "Previtali Andrea" > Date: 3 March 2005 18:16:15 GMT > To: , , > > Cc: Subject: [GAP Support] char Table and LLL > > Dear Thomas, > I'm trying to get the character table of PSp(4,9) using your > suggestions but > I get a weird answer: > > tbl:= rec();; > tbl.Size:=74;; > tbl.UnderlyingCharacteristic:= 0;; > tbl.SizesConjugacyClasses:= [ 1, 3321, 298890, 3280, 3280, 236160, > 295200, 597780, 597780, 26900100, 478224, 478224, 478224, 478224, > 34432128, > 265680, 265680, 5313600, 5313600, 10627200, > 23911200, 597780, 597780, 21520080, 21520080, 53800200, 21254400, > 21254400, > 478224, 478224, 17216064, 17216064, 21520080, 21520080, 34432128, > 23911200, > 23911200, > 47822400, 19128960, 19128960, 19128960, 19128960, 38257920, 38257920, > 43040160, 43040160, 43040160, 43040160, 23911200, 23911200, 23911200, > 23911200, 19128960, > 19128960, 19128960, 19128960, 43040160, 43040160, 43040160, 43040160, > 43040160, 43040160, 43040160, 43040160, 41990400, 41990400, 41990400, > 41990400, 41990400, > 41990400, 41990400, 41990400, 41990400, 41990400 ];; > tbl.OrdersClassRepresentatives:= [ 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, > 5, 5, 5, > 5, 5, 6, 6, 6, 6, 6, 6, 8, 8, 8, 8, 8, 9, 9, 10, 10, 10, 10, 10, 10, > 10, 12, > 12, 12, 15, 15, 15, 15, 15, 15, 20, 20, 20, > 20, 24, 24, 24, 24, 30, 30, 30, 30, 40, 40, 40, 40, 40, 40, 40, 40, > 41, 41, > 41, 41, 41, 41, 41, 41, 41, 41 ];; > tbl.Identifier:= "PSp(4,9)";; # for printing > ConvertToLibraryCharacterTableNC( tbl );; > vecs:=[ > [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, > 1, 1, > 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, > 1, 1, 1, > 1, 1, 1, > 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], > [ 369, -31, 9, 45, 45, 9, 0, 1, 9, 1, 9, -1, -1, 9, -1, 5, 5, -4, > -4, 5, > 0, 1, 1, -1, -1, 1, 0, 0, 9, 9, -1, -1, -1, -1, -1, 1, 1, 0, 0, 0, 0, > 0, -1, > -1, -1, > 1, -1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, -1, -1, -1, -1, 1, 0, > 0, 0, 0, > 0, 0, 0, 0, 0, 0 ], > [ 450, 50, 10, 45, 45, 0, 9, 10, 10, 2, 0, 0, 0, 0, 0, 5, 5, 5, 5, > -4, 1, > 10, 10, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, > 0, 0, > 0, 0, > 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, > -1, -1, > -1, -1, -1, -1 ] > > ] > ;; > LLL( tbl, vecs ); > > PRODUCES THIS ANSWER !!!!!!! > > rec( irreducibles := [ ], remainders := [ VirtualCharacter( > CharacterTable( > "PSp(4,9)" ), [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, > 1, 1, > 1, > 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, > 1, 1, > 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, > 1, 1, 1, > 1, > 1, 1, 1, 1 ] ), VirtualCharacter( CharacterTable( "PSp(4,9)" > ), [ > 369, -31, 9, 45, 45, 9, 0, 1, 9, 1, -1, 9, 9, -1, -1, 5, 5, -4, -4, 5, > 0, 1, > 1, > -1, -1, 1, 0, 0, 9, 9, -1, -1, -1, -1, -1, 1, 1, 0, 0, 0, 0, > 0, -1, > -1, 1, -1, 1, -1, 1, 1, 1, 1, 0, 0, 0, 0, -1, 1, 1, 1, -1, -1, 1, -1, > 0, 0, > 0, > 0, 0, 0, 0, 0, 0, 0 ] ), VirtualCharacter( CharacterTable( > "PSp(4,9)" ), [ 450, 50, 10, 45, 45, 0, 9, 10, 10, 2, 0, 0, 0, 0, 0, > 5, 5, 5, > 5, -4, 1, > 10, 10, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, > 0, 0, 0, > 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, > -1, > -1, > -1, -1, -1, -1, -1, -1 ] ), VirtualCharacter( CharacterTable( > "PSp(4,9)" ), [ 820, 20, -20, 91, 91, 10, 10, 8, 0, 0, 0, 10, 10, 0, > 0, 11, > 11, 2, 2, > 2, -2, 10, 10, 0, 0, -2, 1, 1, 10, 10, 0, 0, 0, 0, 0, -1, > -1, 0, 1, > 1, 1, 1, 0, 0, -2, 0, -2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, > 0, 0, > 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ) ], norms := [ 860803200/37, > 860803200/37, 860803200/37, 860803200/37 ] ) > > WHILE > > > List([1..3],x->List([1..3],y->Sum(List([1..74],i- > >SizesConjugacyClasses(tbl)[ > i]*vecs[x][i]*vecs[y][i])))); > > PRoVIDES > > > [ [ 1721606400, 0, 0 ], [ 0, 1721606400, 0 ], [ 0, 0, 1721606400 ] ] > > proving that vecs is a piece of an orthonormal basis for class > functions of > PSp(4,9) (whose order is 1721606400) > > I'm really puzzled by the norm assigned to all v in vecs, in > particular to > the one correspondign to the trivial character of G. > > > If you have any hint why this happens, please let me know. > > bye > > > > _______________________________________________ > Support mailing list > Support@gap-system.org > http://mail.gap-system.org/mailman/listinfo/support > > -- John McDermott Computing Officer & Purchase Officer School of Computer Science University of St Andrews North Haugh, St Andrews, Fife KY16 9SX tel +44 1334 463252 mob +44 7941 507531 From l.h.soicher at qmul.ac.uk Fri Mar 4 11:36:35 2005 From: l.h.soicher at qmul.ac.uk (Leonard Soicher) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] Maths/CS/EE Academic Felowships at QMUL Message-ID: <20050304113635.GA17104@mrcpc02.maths.qmul.ac.uk> Dear GAP-Forum, The following jobs may be of interest to you, especially if you are on the Maths/CS interface. Note that the closing date is very soon. Best wishes, Leonard Academic fellowships at Queen Mary, University of London -------------------------------------------------------- The College has just advertised three inter-disciplinary academic fellowships in Mathematics, Computer Science and Electrical Engineering. These are positions which would normally lead to permanent appointments. The advertisement, posted in 16 February, can be found at http://www.admin.qmul.ac.uk/humanresources/vacancies/academic/ The closing date is 9 March, and the salary in the range GBP 25777-38017. Please circulate this announcement! From sal at dcs.st-and.ac.uk Fri Mar 4 14:34:18 2005 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] GAP Headquarters replaced by four GAP Centres Message-ID: <20050304143418.377b6696@localhost.localdomain> Dear GAP Forum, The GAP Council and the GAP developers have agreed that status and responsibilities of "GAP Headquarters" should be passed to an equal collaboration of a number of " Centres", where there is permanent staff involvement and an element of collective or organisational commitment; while fully recognising the vital contributions of many individuals outside those Centres. The Centres will work together, with outside individuals, to sustain and develop GAP, concentrating in particular on coordination and on those tasks which are not naturally a part of anyone's research programme, but are needed "for the general good". To these ends, the Centres may set up Working Groups, made up as appropriate of Centre representatives and/or invited individuals, to perform particular tasks and reach decisions on particular questions. At the present time (February 2005), Centres in the following places have agreed to cooperate in this way: * Aachen, * Braunschweig, * Fort Collins, and * St Andrews. This list may change, if new Centres emerge, or existing ones withdraw. Representatives of all the Centres can be contacted via the usual support email address support@gap-system.org. Some further details, including links to Centres' web sites and some of the types of activities the Centres expect to undertake will appear on the GAP web site shortly. Steve Linton Edmund Robertson -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From thomas.breuer at math.rwth-aachen.de Tue Mar 8 09:32:31 2005 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] Fwd: [GAP Support] char Table and LLL Message-ID: Dear GAP Forum, Andrea Previtali wrote > I'm trying to get the character table of PSp(4,9) using your > suggestions but > I get a weird answer: > > tbl:= rec();; > tbl.Size:=74;; > tbl.UnderlyingCharacteristic:= 0;; > tbl.SizesConjugacyClasses:= [ 1, 3321, 298890, 3280, 3280, 236160, > [...] > ConvertToLibraryCharacterTableNC( tbl );; > vecs:=[ > [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, > [...] > ] > ;; > LLL( tbl, vecs ); > > PRODUCES THIS ANSWER !!!!!!! > > rec( irreducibles := [ ], remainders := [ VirtualCharacter( > [...] > 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ) ], norms := [ 860803200/37, > 860803200/37, 860803200/37, 860803200/37 ] ) The problem is that the `Size' attribute of a character table refers to the order of the underlying group and not to the dimension of the matrix of irreducible characters; the value is used in the computations of scalar products of characters for this table. In fact, many of those attributes and properties of groups for which the value can be computed from the information in the character table object are defined also for character tables. (See the chapter "Character Tables" in the GAP Reference Manual, in particular the section "Attributes and Properties of Character Tables".) All the best, Thomas From danaf at fea.st Tue Mar 8 16:13:32 2005 From: danaf at fea.st (Dan Rossul) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] Urgent Issue on GAP... Message-ID: <1110298412.1969.217837658@webmail.messagingengine.com> Dear all, When I try the command: gap> g:=Group((1)(2)(3,4)); Syntax error: ) expected I suppose GAP should understand (1)(2)(3,4) = (3,4) Of course if gap> gap> g:=Group((3,4)); Group([ (3,4) ]) It is prefectly fine..... I am not sure if GAP doesn't understand (1)(2)(3,4) = (3,4) or it is a real Syntax error: ) expected, if Syntax error where should I add the )? Thanks all Best Regards, Dan From justin at mac.com Tue Mar 8 16:45:31 2005 From: justin at mac.com (Justin Walker) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] Urgent Issue on GAP... In-Reply-To: <1110298412.1969.217837658@webmail.messagingengine.com> References: <1110298412.1969.217837658@webmail.messagingengine.com> Message-ID: Hi, all, On Mar 8, 2005, at 8:13, Dan Rossul wrote: > When I try the command: > > gap> g:=Group((1)(2)(3,4)); > Syntax error: ) expected On input, "(1)(2)..." is invalid. The parser expects a '*' to be used; juxtaposition does not mean "group operation". In addition, it appears that the GAP engine would prefer that you not mention "1"-cycles (your example with inserted '*'s causes more serious complaints). Regards, Justin -- Justin C. Walker, Curmudgeon-At-Large * Institute for General Semantics | If you're not confused, | You're not paying attention *--------------------------------------*-------------------------------* From Sergei.Haller at math.uni-giessen.de Tue Mar 8 17:19:46 2005 From: Sergei.Haller at math.uni-giessen.de (Sergei Haller) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] Urgent Issue on GAP... In-Reply-To: <1110298412.1969.217837658@webmail.messagingengine.com> References: <1110298412.1969.217837658@webmail.messagingengine.com> Message-ID: On Tue, 8 Mar 2005, Dan Rossul (DR) wrote: DR> gap> g:=Group((1)(2)(3,4)); DR> Syntax error: ) expected DR> DR> I suppose GAP should understand (1)(2)(3,4) = (3,4) seems that GAP interprets (1) as the integer 1 in parenthesis: gap> (1) in Integers; true gap> (1) in SymmetricGroup(4); false on the other hand, an expression like "(3,4)(1)" is interpreted in the way you expect it. for your purpose, you might try something like "PermList([1,2,4,3]);" DR> [...] if Syntax error where should I add the )? if you read the full error message: gap> g:=Group((1)(2)(3,4)); Syntax error: ) expected g:=Group((1)(2)(3,4)); ^ gap> then you can see an arrow pointing to the expected position. Sergei -- -------------------------------------------------------------------- -?) eMail: Sergei.Haller@math.uni-giessen.de /\\ -------------------------------------------------------------------- _\_V Be careful of reading health books, you might die of a misprint. -- Mark Twain From danaf at fea.st Tue Mar 8 17:40:37 2005 From: danaf at fea.st (Dan Rossul) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] Urgent Issue on GAP... In-Reply-To: References: <1110298412.1969.217837658@webmail.messagingengine.com> Message-ID: <1110303637.10931.217846200@webmail.messagingengine.com> Yes I dont understand why (3,4)(1) would be fine not (1)(3,4) Is there any method to make (1)(3,4) executable, no error in GAP? thanks! ----- Original message ----- From: "Sergei Haller" To: forum@gap-system.org Date: Tue, 8 Mar 2005 18:19:46 +0100 (CET) Subject: Re: [GAP Forum] Urgent Issue on GAP... On Tue, 8 Mar 2005, Dan Rossul (DR) wrote: DR> gap> g:=Group((1)(2)(3,4)); DR> Syntax error: ) expected DR> DR> I suppose GAP should understand (1)(2)(3,4) = (3,4) seems that GAP interprets (1) as the integer 1 in parenthesis: gap> (1) in Integers; true gap> (1) in SymmetricGroup(4); false on the other hand, an expression like "(3,4)(1)" is interpreted in the way you expect it. for your purpose, you might try something like "PermList([1,2,4,3]);" DR> [...] if Syntax error where should I add the )? if you read the full error message: gap> g:=Group((1)(2)(3,4)); Syntax error: ) expected g:=Group((1)(2)(3,4)); ^ gap> then you can see an arrow pointing to the expected position. Sergei -- -------------------------------------------------------------------- -?) eMail: Sergei.Haller@math.uni-giessen.de /\\ -------------------------------------------------------------------- _\_V Be careful of reading health books, you might die of a misprint. -- Mark Twain _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From Sergei.Haller at math.uni-giessen.de Tue Mar 8 18:10:42 2005 From: Sergei.Haller at math.uni-giessen.de (Sergei Haller) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] Urgent Issue on GAP... In-Reply-To: References: <1110298412.1969.217837658@webmail.messagingengine.com> Message-ID: On Tue, 8 Mar 2005, Justin Walker (JW) wrote: JW> On Mar 8, 2005, at 8:13, Dan Rossul wrote: JW> JW> > When I try the command: JW> > JW> > gap> g:=Group((1)(2)(3,4)); JW> > Syntax error: ) expected JW> JW> On input, "(1)(2)..." is invalid. The parser expects a '*' to be used; JW> juxtaposition does not mean "group operation". well, it does for permutations, so (3,4)(5,6) or (3,4)(2) are perfectly valid. The thing is that GAP seems to interpret the command line from left to right and decides that the first object in (1)(2)(3,4) is an integer, the second object is (2), an integer, too, but juxtaposition of integers in parentheses is not accepted. if you use * then (1)*(3,4) is fine, since right hand side is a permutation, the left hand side (1) is interpreted as the identity permutation in parentheses. So 1*(3,4) works as well. Here, (2)*(3,4) does not work, since (2) is interpreted as an integer and (3,4) as a permutation. Back to the original question: As Dan pointed out, the input like Group((3,4)) does work. Why would you like to use Group((1)(2)(3,4))? is the permutation (1)(2)(3,4) generated by some function? If yes, you might consider using something like PermList([1,2,4,3]); as I wrote in my last post. Best regards, Sergei -- -------------------------------------------------------------------- -?) eMail: Sergei.Haller@math.uni-giessen.de /\\ -------------------------------------------------------------------- _\_V Be careful of reading health books, you might die of a misprint. -- Mark Twain From justin at mac.com Tue Mar 8 20:05:47 2005 From: justin at mac.com (Justin Walker) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] Urgent Issue on GAP... In-Reply-To: References: <1110298412.1969.217837658@webmail.messagingengine.com> Message-ID: <6fd1cb87a14868df4b805dc28988ad57@mac.com> On Mar 8, 2005, at 10:10, Sergei Haller wrote: > On Tue, 8 Mar 2005, Justin Walker (JW) wrote: > > JW> On Mar 8, 2005, at 8:13, Dan Rossul wrote: > JW> > JW> > When I try the command: > JW> > > JW> > gap> g:=Group((1)(2)(3,4)); > JW> > Syntax error: ) expected > JW> > JW> On input, "(1)(2)..." is invalid. The parser expects a '*' to be > used; > JW> juxtaposition does not mean "group operation". > > well, it does for permutations, so (3,4)(5,6) or (3,4)(2) are perfectly > valid. Yes, but no :-} The two examples you show can be interpreted two ways: - (3,4)(5,6) is a single permutation, a pair of disjoint 2-cycles - (3,4)(5,6) is the product of two 2-cycles and I believe that GAP takes the former view, given this: gap> (1,2)(3,2); Permutation: cycles must be disjoint and duplicate-free gap> (1,2)*(3,2); (1,3,2) My interpretation of all this is that you must use '*' for the group operation; and "(1)" is not a valid permutation. I'm sure there's more to this story, but I don't have the time to actually RTFM :-} > The thing is that GAP seems to interpret the command line from left to > right and decides that the first object in (1)(2)(3,4) is an integer, > the > second object is (2), an integer, too, but juxtaposition of integers in > parentheses is not accepted. > > if you use * then (1)*(3,4) is fine, since right hand side is a > permutation, the left hand side (1) is interpreted as the identity > permutation in parentheses. So 1*(3,4) works as well. > > Here, (2)*(3,4) does not work, since (2) is interpreted as an integer > and > (3,4) as a permutation. To get much farther, I think a session with the doc is needed. This is what I see: gap> (1)^(1,2); 2 gap> (1)^(1); 1 gap> (1)^(2); 1 so "(2)" is certainly a permutation at some level. > Back to the original question: > > As Dan pointed out, the input like Group((3,4)) does work. > Why would you like to use Group((1)(2)(3,4))? Just to be clear: Dan was the original poster; he pointed out that the former worked, and asked why the latter did not. Regards, Justin -- Justin C. Walker, Curmudgeon-At-Large * Institute for General Semantics | When LuteFisk is outlawed | Only outlaws will have | LuteFisk *--------------------------------------*-------------------------------* From Sergei.Haller at math.uni-giessen.de Wed Mar 9 08:02:05 2005 From: Sergei.Haller at math.uni-giessen.de (Sergei Haller) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] Urgent Issue on GAP... In-Reply-To: <6fd1cb87a14868df4b805dc28988ad57@mac.com> References: <1110298412.1969.217837658@webmail.messagingengine.com> <6fd1cb87a14868df4b805dc28988ad57@mac.com> Message-ID: On Tue, 8 Mar 2005, Justin Walker (JW) wrote: JW> I see: JW> gap> (1)^(1,2); JW> 2 JW> gap> (1)^(1); JW> 1 JW> gap> (1)^(2); JW> 1 JW> JW> so "(2)" is certainly a permutation at some level. yes, as in (3,4)(2). JW> > Back to the original question: JW> > JW> > As Dan pointed out, the input like Group((3,4)) does work. JW> > Why would you like to use Group((1)(2)(3,4))? JW> JW> Just to be clear: Dan was the original poster; he pointed out that the JW> former worked, and asked why the latter did not. sorry for beeng not precise here, but this last question was addressed to Dan. Best regards, Sergei -- -------------------------------------------------------------------- -?) eMail: Sergei.Haller@math.uni-giessen.de /\\ -------------------------------------------------------------------- _\_V Be careful of reading health books, you might die of a misprint. -- Mark Twain From sal at dcs.st-and.ac.uk Wed Mar 9 09:28:48 2005 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] Permutation Literals Message-ID: <20050309092848.2b1d54e7@localhost.localdomain> Dear GAP Forum, Dan Rossul asked: > When I try the command: > > gap> g:=Group((1)(2)(3,4)); > Syntax error: ) expected > > I suppose GAP should understand (1)(2)(3,4) = (3,4) > > Of course if > > gap> gap> g:=Group((3,4)); > Group([ (3,4) ]) > > It is prefectly fine..... > > I am not sure if GAP doesn't understand (1)(2)(3,4) = (3,4) or it is a > real Syntax error: ) expected, if Syntax error where should I add the )? The problem is that GAP cannot distinguish the use of parentheses to denote a one-cycle from their use to enclose an expression, so, since you never really need one-cycles, it usually assumes that parentheses without a comma inside enclose an expression. Thus the parser reads Group((1) as the start of an expression denoting a group generated by the integer 1 and expects, in fact, either a "," followed by the next generator, or a ")" ending the call of Group. When it finds a "(" it is confused. You are, in fact, not allowed to make a group of integers or rational numbers, for other reasons, but the stage in the system which enforces that rule has not yet been reached. So, anyway, one-cycles are not supposed to be allowed in permutation expressions. As has been pointed out, they are actually accepted, when they are not the first cycle in the permutation, as in (3,4)(1). This is an accident, and could even be regarded as a bug. By this point, the parser is certain that it is reading a permutation and so cannot be "distracted" by other possibilities. (1)*(3,4) is equivalent to 1*(3,4) and is also accepted, since almost any object can be multiplied by the integer 1, leaving it unchanged. (2)*(3,4) fails, because it is equivalent to 2*(3,4), which is meaningless. There is no way to make GAP read something like (1)(2)(3,4) as a permutation of four cycles, short of reading it as a string and parsing it by hand, but it is also hard to see in what situation you would need to do this. If you are writing the expression by hand, you can simply omit the 1-cycles. If a programme is generating the expression, you are probably better off with PermList([1,2,4,3]). We will amend the documentation to make this situation clearer. Steve -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From rashid at jinnah.edu.pk Thu Mar 10 04:50:26 2005 From: rashid at jinnah.edu.pk (Rashid Ali) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] Subgroup of PcGroup Message-ID: Dear GAP Forum I am working on computation of self connected Transversals. In order to display elements of transversals in an order in powers of I used its PolyCyclic group. The groups that i am working on are 2-group [(2x2x2)x2]x7 of order 112, 3-group [(3x3)x3]x4 of order 108 and 4-group [(4x4x4)x4]x7 of order 1792. The problem is solved for 2-group by using following commands in GAP: gap> F:=FreeGroup("b","u","v","w","z");; gap> AssignGeneratorVariables(F);; gap> rels:=[b^7,u^2,v^2,w^2,z^2,Comm(u,b)/(v*u),Comm(v,b)/(v*w),Comm(w,b)/(u*v*w),Comm(z,b),Comm(v,u),Comm(w,u),Comm(w,v),Comm(z,v),Comm(z,w)];; gap> G:=F/rels; gap> OG:=Order(G); 112 gap> Gpol:=PcGroupFpGroup(G); gap> OGpol:=Order(Gpol); 112 gap> AssignGeneratorVariables(Gpol); gap> Hpol:=Subgroup(Gpol,[u,v,w*z]); Group([ u, v, w*z ]) gap> OH:=Order(Hpol); 8 And then I found 64 self-connected transversals and 256 H-connected transversals. But when I used these commands for 3-group, the last command and all other command related to the subgroup of PcGroup G return an error message given bellow: gap> F:=FreeGroup( "b","u","v", "z");; gap> AssignGeneratorVariables(F);; gap>relators:=[b^4,u^3,v^3,z^3,u^b*v, v^b/u, Comm(u,v),Comm(u,z),Comm(v,z),Comm(b,z)];; gap> G:=F/relators;; gap> OG:=Order(G); 108 gap> Gpoly:=PcGroupFpGroup(G); gap> AssignGeneratorVariables(Gpoly);; gap> Hpoly:=Subgroup(Gpoly,[u,v*z]); Group([ u, v*z ]) gap> OH:=Order(Hpoly); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 2nd choice method found for `InducedPcgsByGeneratorsNC' on 2 argumen\ ts called from InducedPcgsByGeneratorsNC( pcgs, gens ) called from InducedPcgsByGenerators( pa, GeneratorsOfGroup( grp ) ) called from Pcgs( grp ) called from ( ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> Although GAP calculates order of the generators of subgroup H i.e. Order(u) = 3 and Order(v*z) =3, but it cannot calculate order of H. Could you please help me how to resolve this problem or suggest me some other possibility for writing elements of the transversals in some systematic order for example in ascending positive powers of 'b'. Thank You Rashid Ali From kohl at mathematik.uni-stuttgart.de Thu Mar 10 11:19:48 2005 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] Subgroup of PcGroup In-Reply-To: References: Message-ID: <42302D54.6080207@mathematik.uni-stuttgart.de> Dear Forum, Rashid Ali wrote: > I am working on computation of self connected Transversals. > > In order to display elements of transversals in an order in powers > of I used its PolyCyclic group. The groups that i am working on are > 2-group [(2x2x2)x2]x7 of order 112, 3-group [(3x3)x3]x4 of order 108 > and 4-group [(4x4x4)x4]x7 of order 1792. > > The problem is solved for 2-group by using following commands in GAP: > > gap> F:=FreeGroup("b","u","v","w","z");; > gap> AssignGeneratorVariables(F);; > gap> rels:=[b^7,u^2,v^2,w^2,z^2,Comm(u,b)/(v*u),Comm(v,b)/(v*w), > Comm(w,b)/(u*v*w),Comm(z,b),Comm(v,u),Comm(w,u),Comm(w,v), > Comm(z,v),Comm(z,w)];; > gap> G:=F/rels; > > gap> OG:=Order(G); > 112 > gap> Gpol:=PcGroupFpGroup(G); > > gap> OGpol:=Order(Gpol); > 112 > gap> AssignGeneratorVariables(Gpol); > gap> Hpol:=Subgroup(Gpol,[u,v,w*z]); > Group([ u, v, w*z ]) > gap> OH:=Order(Hpol); > 8 > And then I found 64 self-connected transversals and > 256 H-connected transversals. > > But when I used these commands for 3-group, the last command and > all other command related to the subgroup of PcGroup G return > an error message given below: > > gap> F:=FreeGroup( "b","u","v", "z");; > gap> AssignGeneratorVariables(F);; > gap> relators:=[b^4,u^3,v^3,z^3,u^b*v, v^b/u, Comm(u,v),Comm(u,z),Comm(v,z),Comm(b,z)];; > gap> G:=F/relators;; > gap> OG:=Order(G); > 108 > gap> Gpoly:=PcGroupFpGroup(G); > > gap> AssignGeneratorVariables(Gpoly);; > gap> Hpoly:=Subgroup(Gpoly,[u,v*z]); > Group([ u, v*z ]) > gap> OH:=Order(Hpoly); > Error, no method found! For debugging hints type ?Recovery from NoMethodFound > Error, no 2nd choice method found for `InducedPcgsByGeneratorsNC' on 2 argumen\ > ts called from > InducedPcgsByGeneratorsNC( pcgs, gens ) called from > InducedPcgsByGenerators( pa, GeneratorsOfGroup( grp ) ) called from > Pcgs( grp ) called from > ( ) called from read-eval-loop > Entering break read-eval-print loop ... > you can 'quit;' to quit to outer loop, or > you can 'return;' to continue > brk> > Although GAP calculates order of the generators of subgroup H i.e. > Order(u) = 3 and Order(v*z) =3, but it cannot calculate order of H. > > Could you please help me how to resolve this problem or suggest > me some other possibility for writing elements of the transversals > in some systematic order for example in ascending positive powers of 'b'. After issueing the command Gpoly:=PcGroupFpGroup(G); GAP prints the following warning (of course unless you have switched off warnings by SetInfoLevel(InfoWarning,0)): #I You are creating a Pc group with non-prime relative orders. #I Many algorithms require prime relative orders. #I Use `RefinedPcGroup' to convert. This gives you a hint on what to do. Your example works if you proceed as follows: gap> F := FreeGroup("b","u","v","z");; gap> AssignGeneratorVariables(F);; gap> relators := [b^4,u^3,v^3,z^3,u^b*v,v^b/u,Comm(u,v),Comm(u,z),Comm(v,z),Comm(b,z)];; gap> G := F/relators;; gap> OG := Size(G); 108 gap> Gpoly := PcGroupFpGroup(G); #I You are creating a Pc group with non-prime relative orders. #I Many algorithms require prime relative orders. #I Use `RefinedPcGroup' to convert. gap> AssignGeneratorVariables(Gpoly);; gap> Gpoly_r := RefinedPcGroup(Gpoly); gap> phi := IsomorphismRefinedPcGroup(Gpoly); [ b, b^2, u, v, z ] -> Pcgs([ f1, f2, f3, f4, f5 ]) gap> Hpoly := Subgroup(Gpoly_r,[Image(phi,u),Image(phi,v*z)]); Group([ f3, f4*f5 ]) gap> OH := Size(Hpoly); 9 Hope this helps, Stefan Kohl From gapforum at mowsey.org Thu Mar 10 11:45:10 2005 From: gapforum at mowsey.org (gapforum@mowsey.org) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] Subgroup of PcGroup Message-ID: <200503101141.j2ABftYI025670@gap-system.org> It can be frustrating working with finite solvable groups given by presentations in GAP. Most of the algorithms are only available when the presenation is a pc-presentation in which each element has prime relative order (this is called a *refined* pc-presentation). Here is a refined presentation for your group. Notice all that was required was a generator to act as a place holder for b^2. However, one must also calculate its action on the other generators. F:=FreeGroup( "b", "b2", "u", "v", "z");; AssignGeneratorVariables(F);; relators:=[b^2/b2, b2^2, u^3, v^3, z^3, u^b*v, v^b/u, u^b2*u, v^b2*v, Comm(b2,z), Comm(u,v), Comm(u,z), Comm(v,z), Comm(b,z)];; G:=F/relators;; OG:=Order(G); Gpoly:=PcGroupFpGroup(G);; AssignGeneratorVariables(Gpoly);; Hpoly:=Subgroup(Gpoly,[u,v*z]);; OH:=Order(Hpoly); GAP also provides the function IsomorphismRefinedPcGroup which takes a PcGroup and returns an isomorphism to a refined PcGroup. You then use the isomorphism to transfer all of your questions to the refined group. Here is your previous example slightly modified: F:=FreeGroup( "b", "u", "v", "z");; AssignGeneratorVariables(F);; relators:=[b^4, u^3, v^3, z^3, u^b*v, v^b/u, Comm(u,v), Comm(u,z), Comm(v,z), Comm(b,z)];; G:=F/relators;; OG:=Order(G); Gpoly:=PcGroupFpGroup(G);; AssignGeneratorVariables(Gpoly);; Hpoly:=Subgroup(Gpoly,[u,v*z]);; f:=IsomorphismRefinedPcGroup(Gpoly); Href:=Image(f,Hpoly); OH:=Order(Href); p.s. The warning Stephen Kohl mentioned will be in the next release of GAP, but was not in the 4.4.4 release. From jamesm at mcs.st-and.ac.uk Mon Mar 14 19:23:22 2005 From: jamesm at mcs.st-and.ac.uk (James Mitchell) Date: Fri Apr 8 15:25:48 2005 Subject: [GAP Forum] Re: Semigroups question (fwd) Message-ID: ---------- Forwarded message ---------- Date: Fri, 11 Mar 2005 00:32:58 +0000 (GMT) From: James Mitchell To: mjoao@classic.univ-ab.pt Subject: Re: Semigroups question Dear Joao, [...] The answer is: yes you could calculate this automorphism group, but as far as I know there is no clever way of doing it. You would simply have to make all the mappings from the direct product to itself and then check which are automorphisms and which are not. If the direct product has even a very small size, then this could be an unfeasibly large calculation. Does this answer your question? Best, James > >Date: Fri, 25 Feb 2005 14:35:54 +0000 (WET) > >From: Joao Araujo > >To: forum@gap-system.org > >Subject: [GAP Forum] Direct product of semigroups > > > > > >I would like to compute the automorphism group of a direct product of > >(two) semigroups. Is it possible to do that with GAP? > > > >I thank in advance any help. > > > >Joao > From Michael.Hartley at nottingham.edu.my Wed Mar 16 05:56:11 2005 From: Michael.Hartley at nottingham.edu.my (Michael Hartley) Date: Fri Apr 8 15:25:49 2005 Subject: [GAP Forum] fatal error in IdSmallGroup Message-ID: Dear GAP users. I am running a GAP program that works on about 45Mb of data. I got the following error - Error, IdSmallGroup: fatal Error. Please mail group to Hans-Ulrich.Besche@math.rwth-aachen.de called from ID_GROUP_FUNCS[inforec.func]( G, inforec ) called from IdGroup( Group( pp ) ) called from PolyID( pp ) called from PolyURL( pp, depth - 1 ) called from PolyURL( pp, depth - 1 ) called from ... Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> Unfortunately, nobody replied when I emailed the given email address. Some more output... brk> G; brk> pp; [ (1,3)(2,4)(5,7)(6,8)(9,11)(10,12)(13,15)(14,16)(17,19)(18,20)(21,23)(22, 24)(25,27)(26,28)(29,31)(30,32)(33,35)(34,36)(37,39)(38,40)(41,43)(42, 44)(45,91)(46,92)(47,89)(48,90)(49,95)(50,96)(51,93)(52,94)(53,99)(54, 100)(55,97)(56,98)(57,103)(58,104)(59,101)(60,102)(61,107)(62,108)(63, 105)(64,106)(65,111)(66,112)(67,109)(68,110)(69,115)(70,116)(71,113)(72, 114)(73,119)(74,120)(75,117)(76,118)(77,123)(78,124)(79,121)(80,122)(81, 127)(82,128)(83,125)(84,126)(85,131)(86,132)(87,129)(88,130), (1,9)(2,10)(3,12)(4,11)(7,8)(13,41)(14,42)(15,44)(16,43)(17,37)(18,38)(19, 40)(20,39)(21,33)(22,34)(23,36)(24,35)(25,29)(26,30)(27,32)(28,31)(45, 53)(46,54)(47,56)(48,55)(51,52)(57,85)(58,86)(59,88)(60,87)(61,81)(62, 82)(63,84)(64,83)(65,77)(66,78)(67,80)(68,79)(69,73)(70,74)(71,76)(72, 75)(89,97)(90,98)(91,100)(92,99)(95,96)(101,129)(102,130)(103,132)(104, 131)(105,125)(106,126)(107,128)(108,127)(109,121)(110,122)(111,124)(112, 123)(113,117)(114,118)(115,120)(116,119), (1,5)(2,8)(3,7)(4,6)(9,41)(10,44)(11,43)(12,42)(13,37)(14,40)(15,39)(16, 38)(17,33)(18,36)(19,35)(20,34)(21,29)(22,32)(23,31)(24,30)(26,28)(45, 49)(46,52)(47,51)(48,50)(53,85)(54,88)(55,87)(56,86)(57,81)(58,84)(59, 83)(60,82)(61,77)(62,80)(63,79)(64,78)(65,73)(66,76)(67,75)(68,74)(70, 72)(89,93)(90,96)(91,95)(92,94)(97,129)(98,132)(99,131)(100,130)(101, 125)(102,128)(103,127)(104,126)(105,121)(106,124)(107,123)(108,122)(109, 117)(110,120)(111,119)(112,118)(114,116) ] brk> GeneratorsOfGroup(G); [ (1,3)(2,4)(5,7)(6,8)(9,11)(10,12)(13,15)(14,16)(17,19)(18,20)(21,23)(22, 24)(25,27)(26,28)(29,31)(30,32)(33,35)(34,36)(37,39)(38,40)(41,43)(42, 44)(45,91)(46,92)(47,89)(48,90)(49,95)(50,96)(51,93)(52,94)(53,99)(54, 100)(55,97)(56,98)(57,103)(58,104)(59,101)(60,102)(61,107)(62,108)(63, 105)(64,106)(65,111)(66,112)(67,109)(68,110)(69,115)(70,116)(71,113)(72, 114)(73,119)(74,120)(75,117)(76,118)(77,123)(78,124)(79,121)(80,122)(81, 127)(82,128)(83,125)(84,126)(85,131)(86,132)(87,129)(88,130), (1,9)(2,10)(3,12)(4,11)(7,8)(13,41)(14,42)(15,44)(16,43)(17,37)(18,38)(19, 40)(20,39)(21,33)(22,34)(23,36)(24,35)(25,29)(26,30)(27,32)(28,31)(45, 53)(46,54)(47,56)(48,55)(51,52)(57,85)(58,86)(59,88)(60,87)(61,81)(62, 82)(63,84)(64,83)(65,77)(66,78)(67,80)(68,79)(69,73)(70,74)(71,76)(72, 75)(89,97)(90,98)(91,100)(92,99)(95,96)(101,129)(102,130)(103,132)(104, 131)(105,125)(106,126)(107,128)(108,127)(109,121)(110,122)(111,124)(112, 123)(113,117)(114,118)(115,120)(116,119), (1,5)(2,8)(3,7)(4,6)(9,41)(10,44)(11,43)(12,42)(13,37)(14,40)(15,39)(16, 38)(17,33)(18,36)(19,35)(20,34)(21,29)(22,32)(23,31)(24,30)(26,28)(45, 49)(46,52)(47,51)(48,50)(53,85)(54,88)(55,87)(56,86)(57,81)(58,84)(59, 83)(60,82)(61,77)(62,80)(63,79)(64,78)(65,73)(66,76)(67,75)(68,74)(70, 72)(89,93)(90,96)(91,95)(92,94)(97,129)(98,132)(99,131)(100,130)(101, 125)(102,128)(103,127)(104,126)(105,121)(106,124)(107,123)(108,122)(109, 117)(110,120)(111,119)(112,118)(114,116) ] brk> IdGroup(Group(pp)); Error, IdSmallGroup: fatal Error. Please mail group to Hans-Ulrich.Besche@math.rwth-aachen.de called from ID_GROUP_FUNCS[inforec.func]( G, inforec ) called from Error( "IdSmallGroup: fatal Error. Please mail group to\n", "Hans-Ulrich.Besche@math.rwth-aachen.de" ); called from ID_GROUP_FUNCS[inforec.func]( G, inforec ) called from IdGroup( Group( pp ) ) called from PolyID( pp ) called from ... Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk_02> However, the bizarre thing is that if I put the generators into a new GAP process, everything works ok : gap> $)(21,23)(22, > 24)(25,27)(26,28)(29,31)(30,32)(33,35)(34,36)(37,39)(38,40)(41,43)(42, > 44)(45,91)(46,92)(47,89)(48,90)(49,95)(50,96)(51,93)(52,94)(53,99)(54, > 100)(55,97)(56,98)(57,103)(58,104)(59,101)(60,102)(61,107)(62,108)(63, > $)(72, > $)(81, > 127)(82,128)(83,125)(84,126)(85,131)(86,132)(87,129)(88,130), > $)(19, > 40)(20,39)(21,33)(22,34)(23,36)(24,35)(25,29)(26,30)(27,32)(28,31)(45, > 53)(46,54)(47,56)(48,55)(51,52)(57,85)(58,86)(59,88)(60,87)(61,81)(62, > 82)(63,84)(64,83)(65,77)(66,78)(67,80)(68,79)(69,73)(70,74)(71,76)(72, > 75)(89,97)(90,98)(91,100)(92,99)(95,96)(101,129)(102,130)(103,132)(104, > $(112, > 123)(113,117)(114,118)(115,120)(116,119), > (1,5)(2,8)(3,7)(4,6)(9,41)(10,44)(11,43)(12,42)(13,37)(14,40)(15,39)(16, > 38)(17,33)(18,36)(19,35)(20,34)(21,29)(22,32)(23,31)(24,30)(26,28)(45, > 49)(46,52)(47,51)(48,50)(53,85)(54,88)(55,87)(56,86)(57,81)(58,84)(59, > 83)(60,82)(61,77)(62,80)(63,79)(64,78)(65,73)(66,76)(67,75)(68,74)(70, > 72)(89,93)(90,96)(91,95)(92,94)(97,129)(98,132)(99,131)(100,130)(101, > $(109, > 117)(110,120)(111,119)(112,118)(114,116) ]; [ (1,3)(2,4)(5,7)(6,8)(9,11)(10,12)(13,15)(14,16)(17,19)(18,20)(21,23)(22, 24)(25,27)(26,28)(29,31)(30,32)(33,35)(34,36)(37,39)(38,40)(41,43)(42, 44)(45,91)(46,92)(47,89)(48,90)(49,95)(50,96)(51,93)(52,94)(53,99)(54, 100)(55,97)(56,98)(57,103)(58,104)(59,101)(60,102)(61,107)(62,108)(63, 105)(64,106)(65,111)(66,112)(67,109)(68,110)(69,115)(70,116)(71,113)(72, 114)(73,119)(74,120)(75,117)(76,118)(77,123)(78,124)(79,121)(80,122)(81, 127)(82,128)(83,125)(84,126)(85,131)(86,132)(87,129)(88,130), (1,9)(2,10)(3,12)(4,11)(7,8)(13,41)(14,42)(15,44)(16,43)(17,37)(18,38)(19, 40)(20,39)(21,33)(22,34)(23,36)(24,35)(25,29)(26,30)(27,32)(28,31)(45, 53)(46,54)(47,56)(48,55)(51,52)(57,85)(58,86)(59,88)(60,87)(61,81)(62, 82)(63,84)(64,83)(65,77)(66,78)(67,80)(68,79)(69,73)(70,74)(71,76)(72, 75)(89,97)(90,98)(91,100)(92,99)(95,96)(101,129)(102,130)(103,132)(104, 131)(105,125)(106,126)(107,128)(108,127)(109,121)(110,122)(111,124)(112, 123)(113,117)(114,118)(115,120)(116,119), (1,5)(2,8)(3,7)(4,6)(9,41)(10,44)(11,43)(12,42)(13,37)(14,40)(15,39)(16, 38)(17,33)(18,36)(19,35)(20,34)(21,29)(22,32)(23,31)(24,30)(26,28)(45, 49)(46,52)(47,51)(48,50)(53,85)(54,88)(55,87)(56,86)(57,81)(58,84)(59, 83)(60,82)(61,77)(62,80)(63,79)(64,78)(65,73)(66,76)(67,75)(68,74)(70, 72)(89,93)(90,96)(91,95)(92,94)(97,129)(98,132)(99,131)(100,130)(101, 125)(102,128)(103,127)(104,126)(105,121)(106,124)(107,123)(108,122)(109, 117)(110,120)(111,119)(112,118)(114,116) ] gap> IdGroup(Group(pp)); [ 528, 162 ] gap> This is Gap 4.3fix5 under Windows. However, I have had IdGroup crash under similar circumstances in Gap 4.4.3 under Linux. Any ideas what I should do? How can I email the group to Hans-Ulrich.Besche ? Yours, Mike H... -------------- next part -------------- BEGIN:VCARD VERSION:2.1 X-GWTYPE:USER FN:Michael Hartley ORG:University of Nottingham;Computer Science and IT EMAIL;WORK;PREF;NGW:Michael.Hartley@nottingham.edu.my N:Hartley;Michael END:VCARD From beick at tu-bs.de Wed Mar 16 09:55:15 2005 From: beick at tu-bs.de (Bettina Eick) Date: Fri Apr 8 15:25:49 2005 Subject: [GAP Forum] fatal error in IdSmallGroup In-Reply-To: Message-ID: Dear GAP forum, Dear Michael, > Error, IdSmallGroup: fatal Error. Please mail group to > Hans-Ulrich.Besche@math.rwth-aachen.de called from > ID_GROUP_FUNCS[inforec.func]( G, inforec ) called from > IdGroup( Group( pp ) ) called from > PolyID( pp ) called from > PolyURL( pp, depth - 1 ) called from > PolyURL( pp, depth - 1 ) called from > ... > Entering break read-eval-print loop ... > you can 'quit;' to quit to outer loop, or > you can 'return;' to continue > brk> > > Unfortunately, nobody replied when I emailed the given email address. Thanks for the hint on the e-mail address. The e-mail address is indeed outdated and we will replace it by Hans Ulrich's current e-mail address in the next release. As to your problem: when I copy and paste `pp' into gap then I get the following: gap> G := Group(pp); gap> IdGroup(G); [ 528, 162 ] So the problem is not just a bug in IdGroup. I cannot tell without further details what the problem is. Is your program running for a long time before it crashes? And does the programm have long code? Can you perhaps pass the code to me so that I can run it? In any case, I suggest that we discuss the problem further in private e-mails. I can also pass your e-mail on to Hans Ulrich, but it is not clear to me that this is a problem with IdGroup and hence I am not sure that he will deal with it. Best wishes, Bettina From gzabl at yahoo.com Tue Mar 15 18:08:23 2005 From: gzabl at yahoo.com (Gary Zablackis) Date: Fri Apr 8 15:25:49 2005 Subject: [GAP Forum] Updated gap-process.el Message-ID: <20050315180823.80437.qmail@web53003.mail.yahoo.com> Dear GAP Support Team, I have appended to this message an updated gap-process.el (/GAP4r4/etc/emacs) that fixes a couple of problems with GAP help mode and GAP tab completion mode in GAP 4.4.4 (and some earlier versions of GAP). The additions I have made have a comment at the end of each line that begins ";;GEZ:" I have deleted some lines from the original, and if you need a version with them included and marked, I will be happy to send them to you. David Joyner has already put the changed code up on his web site. I hope that this will be of use for other GAP users. Sincerely, Gary Zablackis ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Begin update gap-process.el ;; ;; Running a GAP session in an Emacs buffer, based on comint-mode. ;; ;; Michael Smith smith@pell.anu.edu.au ;; Australian National University ;; February 1993 ;; ;;! version 1.50, 15:44 Thu 22 Apr 1993 ;;! ;; ;; A modification and extension of the GAP mode of Goetz Pfeiffer. ;; ;; Uses comint-mode instead of shell-mode (which means you must have the ;; comint package installed). ;; ;; Command completion is available ("TAB"). Output to separate *Completions* ;; buffer instead of GAP session. ;; ;; Help is available at any time by pressing "?". Output to *Help* buffer. ;; ;; The comint package provides command input history (with searching), ;; resend previous line etc. ;; ;; To install, put this file somewhere in your load path, preferably byte ;; compile it, and add the following line to your .emacs: ;; ;; (autoload 'gap "gap-process" "*Run GAP" t) ;; ;; You can also have GAP start up in a particular directory by setting ;; gap-directory; for example: ;; ;; (setq gap-directory "~/gap") ;; ;; To run GAP, just type "M-x gap". ;; ;; To run GAP with contents of current buffer as initial input use a prefix ;; arg, "C-u M-x gap" (this is still a bit of a hack, so use with caution). ;; ;; Note that while a GAP process is running in the *gap* buffer, the commands ;; gap-complete and gap-help can be bound to keys in other buffers to issue ;; commands to the running GAP process. ;; ;;! ---------------------------------------------------------------------- ;;! v1.50 - ;;! * Fixed problem of disappearing output when point not in *gap* buffer. ;;! Also ensure that output scrolls if visible in window. ;;! v1.20 - ;;! * Allow switching to existing process buffer if it exists, also piping ;;! current buffer into it if prefix arg. ;;! v1.12 - ;;! * Included "brk>" in prompt-regexp. How could I forget this! ;;! v1.10 - ;;! * Now gap-complete-double-cols controls formatting of completions buff. ;;! v1.08 - ;;! * Fixed gap-prompt-regexp so that a > in line would not be confused. ;;! v1.07 - ;;! * Fixed cosmetic problem with *help* output. Now instead of stripping ;;! all the ^H and ^M from the output, leave it unchanged and tidy up ;;! buffer after help output has finished. ;;! v1.06 - ;;! * Fixed bug in gap-ident-around-point that caused non-word characters ;;! to end up in the extracted identifier. ;;! v1.05 - ;;! * Added C-l to call comint-previous-similar-input, which is almost ;;! the same as the GAP C-l previous input command. Moved recenter ;;! to C-c C-l to make room. (require 'comint) (defvar gap-executable "/usr/local/algebra/bin/gap" "* The GAP executable.") (defvar gap-start-options (list "-b" ;;"-l" "/usr/local/algebra/gap3.2/lib/" "-m" "2m") "* The list of initial GAP options.") (defvar gap-prompt-regexp "\\(.*\\(gap\\|brk\\)>\\|^>\\) *" "* Regexp used by Newline command in GAP mode to match prompt.") (defvar gap-directory nil "* If this is non-nil, change to this directory before running GAP. Otherwise will just use the default directory of the new *GAP* buffer.") (defvar gap-process-beep nil "* Only beep when GAP asks if this is non-nil.") (defvar gap-complete-double-cols t "* Controls final formatting of the GAP completions buffer. If t and buffer is currently shown with more than 80 columns and not enough lines, then make the list double columned. If not nil or t, then always make the completions list double columnes.") (defvar gap-process-map nil) (if gap-process-map nil (setq gap-process-map (copy-keymap comint-mode-map)) (define-key gap-process-map "\C-m" 'gap-send) (define-key gap-process-map "\t" 'gap-complete) (define-key gap-process-map "?" 'gap-help) (define-key gap-process-map "\C-l" 'comint-previous-similar-input) (define-key gap-process-map "\C-c\C-l" 'recenter) ) (defvar gap-send-state nil "Variable used by filter to trap echos and completion in GAP output") (defvar gap-syntax-table nil "Syntax table used while in gap mode.") (if gap-syntax-table () (setq gap-syntax-table (make-syntax-table)) (modify-syntax-entry ?. "w" gap-syntax-table) ;; . is part of identifiers (modify-syntax-entry ?# "<" gap-syntax-table) ;; # starts comment (modify-syntax-entry ?\n ">" gap-syntax-table) ;; newline ends comment ) (defvar gap-completion-ident nil "Stores identifier that GAP is completing") (defvar gap-process-buffer nil "Points to a running gap session.") (defvar gap-pending-input nil "Holds input to feed slowly to GAP when starting with buffer as input.") (defvar gap-pending-pointer nil) (defun gap-running-p nil (and gap-process-buffer (get-buffer-process gap-process-buffer) (eq (process-status (get-buffer-process gap-process-buffer)) 'run))) (defun gap (&optional send-buffer) "* Start up a GAP session in a comint-mode buffer. With prefix arg, send the contents of the current buffer to the GAP session as initial standard input. Switch to existing *gap* buffer if process is already running, also sending current buffer if prefix arg." (interactive "P") (if (not (gap-running-p)) (let (proc) (setq gap-pending-input (if send-buffer (buffer-string) nil)) (setq gap-pending-pointer 0) (setq gap-process-buffer (get-start-process gap-executable nil (if gap-directory (expand-file-name gap-directory) nil) gap-start-options)) (setq proc (get-buffer-process gap-process-buffer)) (gap-process-mode) (if (not send-buffer) (set-process-filter proc 'gap-output-filter) (set-process-filter proc 'gap-startfile-filter))) (if send-buffer (let (proc) (setq gap-pending-input (buffer-string)) (setq gap-pending-pointer 0) (setq proc (get-buffer-process gap-process-buffer)) (set-process-filter proc 'gap-startfile-filter) (comint-send-string proc "\n"))) (switch-to-buffer gap-process-buffer))) (defun gap-process-mode () "Major mode for interacting with Gap. Provides special support for the help system (hit ? anytime for help on symbol under point) and completion (TAB). Consult the help for comint-mode for a list of special comint features. Prefix the ? by C-q to insert a ? in the buffer instead of callig help. ? gap-help TAB gap-complete C-l comint-previous-similar-input (C-c C-l for recenter)" (interactive) (comint-mode) (make-local-variable 'comint-prompt-regexp) (setq comint-prompt-regexp gap-prompt-regexp) (make-local-variable 'comint-eol-on-send) (setq comint-eol-on-send t) (setq major-mode 'gap-process-mode) (setq mode-name "Gap") (set-syntax-table gap-syntax-table) (use-local-map gap-process-map) (setq gap-send-state 'normal)) (defun gap-send () "Send input to GAP." (interactive "*") (setq gap-send-state 'echo) (comint-send-input)) (defun gap-startfile-filter (proc string) "This function is the output filter for the GAP process while there is still initial standard input to pipe into the process. To avoid problems with overflowing input buffers, this function sends the next line of input when it thinks GAP is waiting for it (using gap-prompt-regexp)." (let ((cbuf (current-buffer))) (set-buffer (process-buffer proc)) (goto-char (point-max)) (insert (string-strip-chars string "\C-h\C-g\C-m")) (set-marker (process-mark proc) (point)) (if (and gap-process-beep (string-match "\C-g" string)) (beep)) (save-excursion (beginning-of-line) (if (looking-at (concat ".*" gap-prompt-regexp "$")) (let ((x (string-match "\n" (substring gap-pending-input gap-pending-pointer)))) (if x (progn (comint-send-string proc (substring gap-pending-input gap-pending-pointer (+ 1 x gap-pending-pointer))) (setq gap-pending-pointer (+ 1 x gap-pending-pointer))) (set-process-filter proc 'gap-output-filter) (gap-process-mode) (comint-send-string proc (substring gap-pending-input gap-pending-pointer)) (setq gap-pending-input nil))))) (set-buffer cbuf))) (defun gap-output-filter (proc string) "This function handles the output from a GAP process most of the time. It depends on the variable gap-send-state to determine which of three possible output states GAP is in: 'normal for output that should be shown, 'echo for the GAP echoing of the last command (suppressed), and 'completing when GAP will be trying to complete a symbol before point." (let ((cbuf (current-buffer))) (cond ((eq gap-send-state 'normal) (set-buffer (process-buffer proc)) (scrolling-process-filter proc (string-strip-chars string "\C-g\C-h\C-m")) (set-marker (process-mark proc) (point))) ((eq gap-send-state 'echo) (set-buffer (process-buffer proc)) (let ((x (string-match "\n" string))) (if x (progn (setq gap-send-state 'normal) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; NOTE: this section is only needed for NTEmacs ; (insert (string-strip-chars string ;;GEZ: NTEmacs: get back 1st line of output ; "\C-g\C-h\C-m")) ;;GEZ: NTEmacs: get back 1st line of output ;; NOTE: end NTEmacs specific code ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (insert (string-strip-chars (substring string (+ x 1)) ;;GEZ: original "\C-g\C-h\C-m")) ;;GEZ: original (set-marker (process-mark proc) (point)))))) ((eq gap-send-state 'completing) (let ((x (string-match "\C-g" string))) (if x ;; GAP beeped on completing: now ask for all completions (progn (if gap-process-beep (beep)) (insert (string-strip-chars string " \C-h\C-g\C-m")) (gap-complete t) (setq gap-send-state 'normal)) (insert (string-strip-chars string " \C-h\C-g\C-m")))))) (set-buffer cbuf))) (defun gap-help-filter (proc string) "This output filter pipes the output of a help command into a *Help* buffer. It must handle the -- page, next line, back,

back line, quit -- prompts, ;; GEZ: GAP 4.4.x strip them and send spaces to continue ;; GEZ: GAP 4.4.x the output until it is done." (let ((cbuf (current-buffer))) (set-buffer "*Help*") (setq buffer-read-only nil) ;; GEZ: so we can put help info into the buffer (goto-char (point-max)) (insert string) (beginning-of-line) (if (re-search-forward " -- page, next line, back,

back line, quit --" nil t ) ;;GEZ: Add to handle GAP 4.4.x output (progn (delete-region (match-beginning 0) (point)) (comint-send-string proc " "))) ;;NOTE: tell GAP to continue with next page ;(if (looking-at gap-prompt-regexp) ;;GEZ: original (if (looking-at (concat gap-prompt-regexp "$")) ;;GEZ: make sure get the end of it all (progn (delete-region (point) (point-max)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; NOTE: this section is only needed for NTEmacs (goto-char (point-min)) (while (re-search-forward "gap: 'ioctl' could not turn off raw mode!\n" nil t) (replace-match "")) ;; NOTE: end NTEmacs specific code ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (goto-char (point-min)) (while (re-search-forward "^\\( *\^H\\)\\|\\(\C-m\\)" nil t) ;;GEZ: get rid of ^H ^H and ^M (replace-match "")) (set-process-filter proc 'gap-output-filter))) (set-buffer cbuf))) (defun gap-completions-filter (proc string) "This output filter pipes the list of all completions of a symbol into a *Completions* buffer." (let ((cbuf (current-buffer))) (set-buffer "*Completions*") (setq buffer-read-only nil) ;; GEZ: so we can put completions into the buffer (goto-char (point-max)) (insert (string-strip-chars string "\C-g\C-m\C-h")) (beginning-of-line) (if (looking-at (concat gap-prompt-regexp ".*" gap-completion-ident (make-string (length gap-completion-ident) (string-to-char " ")))) (progn (delete-region (point) (point-max)) (let ((win (get-buffer-window (current-buffer))) (lines (count-lines (point-min) (point))) p1 rect) (if (not (and gap-complete-double-cols (or (and win (> lines (window-height win)) (> (window-width win) 79)) (not (eq gap-complete-double-cols t))))) nil (forward-line (- 1 (/ lines 2))) (beginning-of-line) (setq p1 (point)) (goto-char (point-max)) (insert (make-string (- 39 (move-to-column 39)) ? )) (setq rect (delete-extract-rectangle p1 (point))) (goto-char (point-min)) (forward-line 1) (insert (make-string (- 39 (move-to-column 39)) ? )) (insert-rectangle rect))) (set-process-filter proc 'gap-output-filter))) (set-buffer cbuf))) (defun gap-complete (&optional full) "Complete the partial identifier preceeding point. With arg, send two TABs to GAP to get a full list of the completions." (interactive "*") (let ((process (get-buffer-process gap-process-buffer))) (if (not (gap-running-p)) (error "No GAP process running in buffer %s" gap-process-buffer)) (if (not (looking-at "\\>")) (if (not (re-search-forward "\\>" nil t)) (error "Complete what?"))) (setq gap-completion-ident (gap-ident-around-point)) (if (not full) (progn ;; delete partial identifier from input line (delete-backward-char (length gap-completion-ident)) ;; ask for completion and clear input line (setq gap-send-state 'completing) (process-send-string process (concat gap-completion-ident "\t\C-x"))) (setq gap-send-state 'normal) (unwind-protect (progn (with-output-to-temp-buffer "*Completions*" (print-help-return-message)) (set-process-filter process 'gap-completions-filter) (process-send-string process (concat gap-completion-ident "\t\t\C-x"))))))) (defun gap-ident-around-point () "Return the identifier around the point as a string." (save-excursion (let (beg) (if (not (looking-at "\\(\\>\\|\\w\\)")) "" (re-search-backward "\\<" nil t) (setq beg (point)) (re-search-forward "\\>" nil t) (buffer-substring beg (point)))))) (defun gap-help (topic arg) "Display GAP help about TOPIC in the *Help* buffer." (interactive (let ((enable-recursive-minibuffers t) (try-word (gap-ident-around-point)) val) (if (string-equal try-word "gap>") (setq val (read-string "GAP topic: ")) (setq val (read-string (format "GAP topic (default %s): " try-word))) (if (string-equal val "") (setq val try-word))) (list val current-prefix-arg))) (let ((process (get-buffer-process gap-process-buffer))) (if (not (gap-running-p)) (error "No gap process running in buffer %s" gap-process-buffer)) (unwind-protect (progn (with-output-to-temp-buffer "*Help*" (print-help-return-message)) (set-process-filter process 'gap-help-filter) (process-send-string process (concat "?" topic "\n")))))) (defun get-start-process (progm &optional name dir args startfile) "Run program PROGM in buffer *NAME* (or if NAME is nil use *PROGM*). Optionally sets the default directory. If already running, just switch. Has a optional list ARGS of command line arguments, and file STARTFILE containing initial standard input to process." (interactive) (require 'comint) (setq name (or name (file-name-nondirectory progm))) (setq buffname (concat "*" name "*")) (cond ((not (comint-check-proc buffname)) (let ((buff (get-buffer-create buffname))) (set-buffer buff) (switch-to-buffer buff) (if dir (cd dir)) (apply 'make-comint name progm startfile args))) (t (switch-to-buffer buffname) (get-buffer buffname)))) (defun string-strip-chars (string strip) "Take STRING and remove characters in STRIP" (while (> (length strip) 0) (let ((pos 0)) (setq pos (string-match (substring strip 0 1) string pos)) (while (not (eq pos nil)) (setq string (concat (substring string 0 pos) (substring string (+ pos 1)))) (setq pos (string-match (substring strip 0 1) string pos))) (setq strip (substring strip 1)))) string) ;; Jim Thompson's scrolling output filter (defun scrolling-process-filter (proc str) "Handle all output from the process PROC. If the process buffer is visible, try to keep the end on screen." (let ((obuf (current-buffer))) (set-buffer (process-buffer proc)) ;this IS needed (save-excursion (goto-char (process-mark proc)) (insert-before-markers str)) (set-buffer obuf))) ;; Local Variables: ;; mode:Emacs-Lisp ;; mode:outline-minor ;; Install-Name: "/usr/local/emacs-18.59/site-lisp/mjs/gap-process.el" ;; Install-Copy: "/usr/home/ftp/pub/gnu/elisp/gap-process.el" ;; Install-Byte-Compile: t ;; outline-regexp:"^\\(;;!\\|(def\\)" ;; eval: (hide-body) ;; End: __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From w_becker at hotmail.com Sat Mar 19 22:30:54 2005 From: w_becker at hotmail.com (Walter Becker) Date: Fri Apr 8 15:25:49 2005 Subject: [GAP Forum] groups of order 8p^3 Message-ID: The number of groups of order 8p^3 is partially given in the small groups library. One finds from there and elsewhere that p=3 there are 177 groups p=5 there are 199 groups ======same as for all p=5mod(8) p=7 there are 152 groups and for p=3 mod(4) there are 145 cases Question what is the number for p = 1 mod(8). Nylen gives for this 239, but this is probably incorrect. Comments Walter Becker From apapath at gmail.com Mon Mar 28 22:32:47 2005 From: apapath at gmail.com (Tasos Papathanasiou) Date: Fri Apr 8 15:25:49 2005 Subject: [GAP Forum] Problem with win xp installation and gbasis computations Message-ID: <2f9d5a680503281332d5ad04a@mail.gmail.com> Dear Sir or Madam, i am a new user of GAP.I tried to install it on Windows XP operating system.After installing the main archive gap4r4p4 and packages-2005_03_18-11_47_UTC in the specified folders i don't know where to install the other 2 packages:xtom1r1 and tools4r4p2.I also want to ask where can i find information about computing Groebner Basis and solving polynomial Systems. yourw sincerely Tasos From costanti at science.unitn.it Tue Mar 29 13:56:41 2005 From: costanti at science.unitn.it (Marco Costantini) Date: Fri Apr 8 15:25:49 2005 Subject: [GAP Forum] Problem with win xp installation and gbasis computations In-Reply-To: <2f9d5a680503281332d5ad04a@mail.gmail.com> References: <2f9d5a680503281332d5ad04a@mail.gmail.com> Message-ID: <200503291456.41686.costanti@science.unitn.it> Dear Tasos, On Monday 28 March 2005 23:32, Tasos Papathanasiou wrote: > i am a new user of GAP. Welcome! > I tried to install it on Windows XP operating > system.After installing the main archive gap4r4p4 and > packages-2005_03_18-11_47_UTC in the specified folders i don't know > where to install the other 2 packages:xtom1r1 and tools4r4p2. Someone else will answer about these problems privately. However, for any problem about installing Gap, feel free to write to support@gap-system.org . Note also that even without these two packages, all the other parts of Gap are expected to work correctly. > I also > want to ask where can i find information about computing Groebner > Basis and solving polynomial Systems. My suggestion about computing Groebner Basis and solving polynomial Systems in Gap is to use the Gap package "singular", which is included in the packages that you have already installed. (I'm going to release a new version of the package "singular" soon, and that will be announced in the Gap-forum. Before that, you can get an up-to-date version of the documentation at http://www-math.science.unitn.it/~costanti/manual.pdf .) All the best, Marco Costantini From apapath at gmail.com Wed Mar 30 01:45:39 2005 From: apapath at gmail.com (Tasos Papathanasiou) Date: Fri Apr 8 15:25:49 2005 Subject: [GAP Forum] polynomial system solving Message-ID: <2f9d5a68050329164520ab268b@mail.gmail.com> Dear sir or madam, I would really appreciate it if anyone could help me find the less comlicated method to solve polynomial systems using GAP.Thank you. Tasos From hulpke at math.colostate.edu Thu Mar 31 19:48:08 2005 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri Apr 8 15:25:49 2005 Subject: [GAP Forum] polynomial system solving Message-ID: <200503311848.j2VIm82c019640@schur.math.colostate.edu> Dear Tasos Papathanasiou, Dear GAP-Forum, > I would really appreciate it if anyone could help me find the less > comlicated method to solve polynomial systems using GAP.Thank you. Not knowing what your mathematical background or your application is makes it a bit hard to give a suitable response: If solving a system of polynomial equations is your only application, I would not recommend to use GAP, but a dedicated system. If you need to do it as part of a longer calculation in GAP, you might be able to use the built-in Gr"oebner bases, however: - There is no ``solve'' command or ``less complicated method''. You will have to build a Lexicographic Gr"obner basis and from there proceed ``by hand''. To see examples on how to use the `GroebnerBasis' command, you can get the online help via ?GroebnerBasis I would look at a textbook (e.g. Cox, Little, OShea: Ideals, Varieties and Algorithms) for a description of this second step. There is no specific facility in GAP to help with this. - The Gr"obner basis functionality in GAP is rather basic and mainly intended to help with teaching (computational) algebra. If your polynomial system is complicated GAP might take very long to calculate. (You might be able to use the `Singular' package to interface to the singular system to speed up calculations, but personally I have no experience with using it under Windows.) Best wishes, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From d.v.pasechnik at uvt.nl Thu Mar 31 23:29:15 2005 From: d.v.pasechnik at uvt.nl (Dima Pasechnik) Date: Fri Apr 8 15:25:49 2005 Subject: [GAP Forum] polynomial system solving In-Reply-To: <200503311848.j2VIm82c019640@schur.math.colostate.edu> References: <200503311848.j2VIm82c019640@schur.math.colostate.edu> Message-ID: <20050331222915.GA4541@babbage.lan> Dear GAP-Forum, On Thu, Mar 31, 2005 at 11:48:08AM -0700, Alexander Hulpke wrote: > > I would really appreciate it if anyone could help me find the less > > comlicated method to solve polynomial systems using GAP.Thank you. > > Not knowing what your mathematical background or your application is makes > it a bit hard to give a suitable response: > > If solving a system of polynomial equations is your only application, I > would not recommend to use GAP, but a dedicated system. > > If you need to do it as part of a longer calculation in GAP, you might be > able to use the built-in Gr"oebner bases, however: one can presumably use the "vector enumeration" capabilities too, instead of the Groebner basis. This will give the regular representation of the ring modulo the ideal. Then one can find a basis of common eigenvectors; in this basis the matrices representing variables of the ring will be diagonal, and the solutions will be readily available as the eigenvalues for each eigenvector. Certainly, one will need the ideal to be 0-dimensional, but otherwise it makes little sense to talk about solving anyway, at least for infinite fields. I don't know how much less efficient this is than the Groebner basis approach. Has anyone ever done any serious experiments (or theory?) in this respect? In the non-commutative case vector enumeration behaves as bad as Todd-Coxeter, but in the commutative case, I don't know. I might be even willing to look into this... Best, Dmitrii --- Dr. D.V. Pasechnik E&OR/FEB Tilburg University P.O. Box 90153 5000 LE Tilburg The Netherlands http://center.uvt.nl/staff/pasechnik/ From m.newman at qmul.ac.uk Tue Apr 5 16:49:57 2005 From: m.newman at qmul.ac.uk (mike newman) Date: Fri Apr 8 15:25:49 2005 Subject: [GAP Forum] Identical objects that are indices (not lists) ? Message-ID: Hi, I am a new GAP user, and am wondering if it is possible to have the nifty feature of identical lists extend to simple objects (ie: variables that have no subobjects), or failing that, something like what in C might be called a pointer. Specifically, I wish to operate on the elements of a matrix in two slightly different cases: 1) operate only on those indices (i,j) where i<=j 2) operate on all indices (i,j) So, my simplified GAP fantasy-code looks like: abc := function(A,flag) local i,j,jj; if flag then jj := PleaseMakeIdenticalCopy(i); # ?!? else jj := 1; fi for i in [1..d] do for j in [jj..d] do # various_functions(i, j, A[i][j]) # same for both cases od; od; end; Thus if flag=true, then jj and i would in fact be the same object (initially unset, of course); otherwise, jj is just a variable whose value is 1. Making jj be a pointer would work too, but I find no mention of pointers or anything similar in the GAP manual. Simply typing in two different versions of function will of course work, but seems dangerous from the point of view of maintenance (the body may change over time but always be independent of which case). I can think of other ways of accomplishing this with various degrees of (in)elegance, but the "identical object" scenario seems so perfect... Is there some nice GAP way to accomplish this? For what it's worth, this is a somewhat time-critical section of code, so I would prefer not to introduce too large a decision structure if possible. comments appreciated, Mike Newman From rm43 at evansville.edu Tue Apr 5 19:42:27 2005 From: rm43 at evansville.edu (Robert F. Morse) Date: Fri Apr 8 15:25:49 2005 Subject: [GAP Forum] Identical objects that are indices (not lists) ? In-Reply-To: References: Message-ID: <4252DC13.1030000@evansville.edu> mike newman wrote: > Specifically, I wish to operate on the elements of a matrix in two > slightly different cases: > 1) operate only on those indices (i,j) where i<=j > 2) operate on all indices (i,j) > > So, my simplified GAP fantasy-code looks like: > > abc := function(A,flag) > local i,j,jj; > > if flag then > jj := PleaseMakeIdenticalCopy(i); # ?!? > else > jj := 1; > fi > > for i in [1..d] do for j in [jj..d] do > # various_functions(i, j, A[i][j]) > # same for both cases > od; od; > end; > Here is a possibility: abc := function(A,flag) local i,j,d; d := Length(A); if not flag then for i in [1..d] do for j in [1..d] do # various_functions(i, j, A[i][j]) # same for both cases od; od; else for i in [1..d] do for j in [i..d] do # various_functions(i, j, A[i][j]) # same for both cases od; od; fi; end; If your application is time critical this structure give exactly d^2 steps and exactly (d^2+d)/2 steps in the second case. gap> abc([1..10000],true); gap> time; 1156 gap> abc([1..10000],false); gap> time; 2307 If you don't mind calling a function then abc := function(A,flag) local i,j,d,f; d := Length(A); f := function(x) if flag then return x; else return 1; fi; end; for i in [1..d] do for j in [f(i)..d] do # various_functions(i, j, A[i][j]) # same for both cases od; od; end; There is a a bit of overhead with the function call but I would say it probably it is minimal. gap> abc([1..10000],true); gap> time; 1161 gap> abc([1..10000],false); gap> time; 2315 Regards, Robert F. Morse From wh at icparc.ic.ac.uk Wed Apr 6 08:07:49 2005 From: wh at icparc.ic.ac.uk (wh@icparc.ic.ac.uk) Date: Fri Apr 8 15:25:49 2005 Subject: [GAP Forum] Identical objects that are indices (not lists) ? In-Reply-To: References: Message-ID: <20050406070749.GA9710@tempest.icparc.ic.ac.uk> Hi, Since the identical lists feature is the kind of thing you're looking for, could you not just use that? I.e. use a couple of length 1 lists. E.g.: abc := function(A,flag) local i,j,ii,jj; ii := []; if flag then jj := ii; else jj := [1]; fi for i in [1..d] do ii[1] := i; for j in [jj[1]..d] do # various_functions(i, j, A[i][j]) # same for both cases od; od; end; If you're only referring to i once or twice in the body of the loop it might be more efficient to drop the "ii[1] := i" and replace all occurrences of i by ii[1]. Cheers, Warwick From muntyan at math.tamu.edu Wed Apr 6 12:22:24 2005 From: muntyan at math.tamu.edu (Yevgen Muntyan) Date: Fri Apr 8 15:25:49 2005 Subject: [GAP Forum] Front end for GAP Message-ID: <4253C670.4010007@math.tamu.edu> Hi all, Please take a look at http://ggap.sourceforge.net . This is a front end for GAP. It works on linux and windows (and in theory on many other systems except cygwin), has menus and toolbars. Also, there is simple built-in text editor. ggap has built-in python interpreter and a GAP package for it. This combination allows interaction between GAP and python (it's not synchronous, but it's not that bad), so it's possible to do many funny things from GAP. Basically, there is one main GAP function - GGAP_SEND_STRING(), which sends given string to ggap and this string gets executed in python interpreter; feedback is also possible via simple GAP console input. So, please try it. Any comments/questions/bug reports are welcome. The program is very far from being 'ready', yet it's already usable. Regards, Yevgen Muntyan From muntyan at math.tamu.edu Wed Apr 6 15:03:51 2005 From: muntyan at math.tamu.edu (Yevgen Muntyan) Date: Fri Apr 8 15:25:49 2005 Subject: [GAP Forum] Front end for GAP In-Reply-To: <4253EA57.6030101@usna.edu> References: <4253C670.4010007@math.tamu.edu> <4253EA57.6030101@usna.edu> Message-ID: <4253EC47.8070708@math.tamu.edu> David Joyner wrote: > > Thanks! But it doesn't compile on suse 9.1. > Bad :( Could you please send me output (in private mail) or talk to me over irc now? #gtk+ channel at irc.freenode.net, my nick is 'muntyan'. > I have both python 2.4 and 2.3.3. > How do I get it to use python 2.3.3 instead of 2.4? './configure --with-python=2.3' should do it. Thank you, Yevgen From muntyan at math.tamu.edu Thu Apr 7 19:09:23 2005 From: muntyan at math.tamu.edu (Yevgen Muntyan) Date: Fri Apr 8 15:25:49 2005 Subject: [GAP Forum] Front end for GAP In-Reply-To: <4253C670.4010007@math.tamu.edu> References: <4253C670.4010007@math.tamu.edu> Message-ID: <42557753.9060507@math.tamu.edu> Hi everybody, Thanks to David Joyner, I found (and fixed) million bugs on amd64 in addition to his problems. Now ggap builds on amd64 linux and on SunOS 5.9. Also I updated web page and installation instructions a bit, it seems not everyone can read my mind. So, please get the new version from http://ggap.sourceforge.net . Hope it will work for somebody :) This program is in its early stage, I need your feedback and ideas about what this program should do. Feature requests are very welcome, as well as bug reports (there are many). Thank you, Yevgen Muntyan From muntyan at math.tamu.edu Thu Apr 7 19:21:07 2005 From: muntyan at math.tamu.edu (Yevgen Muntyan) Date: Fri Apr 8 15:25:49 2005 Subject: [GAP Forum] Front end for GAP In-Reply-To: <42547CA4.5030707@comcast.net> References: <4253C670.4010007@math.tamu.edu> <4253EA57.6030101@usna.edu> <4253EC47.8070708@math.tamu.edu> <4253F5CA.4020102@usna.edu> <4253FAB7.6040104@math.tamu.edu> <42540970.8040105@usna.edu> <42541573.2060906@math.tamu.edu> <42541970.3000005@usna.edu> <42541F6B.9010308@math.tamu.edu> <42544131.805@comcast.net> <425441FE.5050709@math.tamu.edu> <42547CA4.5030707@comcast.net> Message-ID: <42557A13.5090506@math.tamu.edu> David Joyner wrote: > Just wanted to let you know that the 0.5.1 vesion also installs > on an amd64-bit pc running 64-bit suse 9.1. > However, it is not consistent with the color.gap file, > which I have in my .gaprc file. (The color codes > don't translate correctly.) Yes, the terminal does not understand colors. It's two-color at the moment. I plan to make this terminal more like normal terminal emulators, but now it's just plans. Actually what I am really going to do is to add something like syntax highlighting, as in the editor; so that it will possible to highlight expressions or gap prompt, or whatever, without gap code. Thank you very much for your efforts in installing ggap, you really helped me a lot. Yevgen From muntyan at math.tamu.edu Thu Apr 7 19:31:10 2005 From: muntyan at math.tamu.edu (Yevgen Muntyan) Date: Fri Apr 8 15:25:49 2005 Subject: [GAP Forum] Front end for GAP In-Reply-To: <8f8d6cbf346d2bfc4dbbaa951b3a86f5@math.byu.edu> References: <4253C670.4010007@math.tamu.edu> <8f8d6cbf346d2bfc4dbbaa951b3a86f5@math.byu.edu> Message-ID: <42557C6E.2020606@math.tamu.edu> Ivan Andrus wrote: > It seems to compile and install okay on OS X 10.3.8, Could you please tell me how do you get gtk so I could try it? At the moment I have access to some OSX servers, but they don't have gtk installed and I have no idea how to do things on mac. > except that when I run it, it never seems to finish loading. The GUI > comes up, but not GAP. (see screen shot). I can open up a text > editor, and the python console, the about box, etc, but when I press > the prefs button, it pauses for a while and then gives a segmentation > fault. > > I would be more than willing to try anything that you think might > help. I do have a custom shell script which I invoke as gap. Could > this be a problem? Custom shell script may be a problem probably (though it should not), but ggap should not crash in first place. Please try the new version from http://ggap.sourceforge.net/ , I hope it solves the problem. Though who knows? You see, GTK libraries which are used in ggap are not officially ported to Mac OS X, so that crash may be my bug or library bug (I hope it was my bug). > Where does it store what executable should be run as GAP? GGAP stores it in its settings, and you enter it in the Preferences dialog. When it will stop crashing, you should be able to set gap executable (or shell script) in the preferences. Thank you, Yevgen P.S. Maybe you know about IRC? From muntyan at math.tamu.edu Thu Apr 7 20:40:12 2005 From: muntyan at math.tamu.edu (Yevgen Muntyan) Date: Fri Apr 8 15:25:49 2005 Subject: [GAP Forum] Front end for GAP In-Reply-To: <4255868C.7040501@comcast.net> References: <4253C670.4010007@math.tamu.edu> <4253EA57.6030101@usna.edu> <4253EC47.8070708@math.tamu.edu> <4253F5CA.4020102@usna.edu> <4253FAB7.6040104@math.tamu.edu> <42540970.8040105@usna.edu> <42541573.2060906@math.tamu.edu> <42541970.3000005@usna.edu> <42541F6B.9010308@math.tamu.edu> <42544131.805@comcast.net> <425441FE.5050709@math.tamu.edu> <42547CA4.5030707@comcast.net> <42557A13.5090506@math.tamu.edu> <4255868C.7040501@comcast.net> Message-ID: <42558C9C.5030806@math.tamu.edu> David Joyner wrote: > You are very welcome! It looks like a serious programming > project. Because of compilation time? ;) But yes, I am going to improve ggap and maintain it for at least following couple of years. I have big plans for GAP + Python (it's related to my work). I have spent already so much time on this program, that I won't give up. > I suggest you request to make ggap an official GAP package > http://www.gap-system.org/Packages/packages.html > There is a refereeing process > http://www.gap-system.org/Contacts/submit.html I think this can wait until the program will be really working and usable. > Looking forward to the next version of ggap! So does it work for you? Do you use it? I really wish to hear what would you like to have in this program, and what you don't like in it. If something in ggap prevents from using it, I want to fix it as soon as possible. Thank you, Yevgen From sal at dcs.st-and.ac.uk Thu Apr 7 21:26:01 2005 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Fri Apr 8 15:25:49 2005 Subject: [GAP Forum] Identical objects that are indices (not lists) ? Message-ID: <20050407212601.29523d88@localhost.localdomain> Dear GAP Forum, Mike Newman from QMUL asked: > I am a new GAP user, and am wondering if it is possible to have the nifty > feature of identical lists extend to simple objects (ie: variables that > have no subobjects), or failing that, something like what in C might be > called a pointer. > > Specifically, I wish to operate on the elements of a matrix in two > slightly different cases: > 1) operate only on those indices (i,j) where i<=j > 2) operate on all indices (i,j) > > So, my simplified GAP fantasy-code looks like: > > abc := function(A,flag) > local i,j,jj; > > if flag then > jj := PleaseMakeIdenticalCopy(i); # ?!? > else > jj := 1; > fi > > for i in [1..d] do for j in [jj..d] do > # various_functions(i, j, A[i][j]) > # same for both cases > od; od; > end; > > Thus if flag=true, then jj and i would in fact be the same object > (initially unset, of course); otherwise, jj is just a variable whose value > is 1. > > > Making jj be a pointer would work too, but I find no mention of pointers > or anything similar in the GAP manual. Simply typing in two different > versions of function will of course work, but seems dangerous from the > point of view of maintenance (the body may change over time but always be > independent of which case). I can think of other ways of accomplishing > this with various degrees of (in)elegance, but the "identical object" > scenario seems so perfect... > > Is there some nice GAP way to accomplish this? For what it's worth, this > is a somewhat time-critical section of code, so I would prefer not to > introduce too large a decision structure if possible. There is a no notion in GAP equivalent to a pointer to an integer, and I can't see an easy way to implement what you want without either duplicating the contents of the loops or checking flag or calling a function inside the outer loop. Robert Morse has suggested a solution based on duplicating the loop content and one based on a function. A slight variation of the function-based soltuion which moves the check of flag outside the function is: abc := function(A,flag) local i,j,d,f; d := Length(A); if flag then f := i->i; else f := i->1; fi; for i in [1..d] do for j in [f(i)..d] do What I would recommend though is the simpler: abc := function(A,flag) local i,j,jj; for i in [1..d] do if flag then jj := i; else jj := 1; fi; for j in [jj..d] do Although this conditional is executed d times, the cost of it will be pretty small. If your "various functions" in the loop are at all non-trivial they will certainly dominate the cost of the conditionals and loops. Steve -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From muntyan at math.tamu.edu Thu Apr 7 22:31:07 2005 From: muntyan at math.tamu.edu (Yevgen Muntyan) Date: Fri Apr 8 15:25:49 2005 Subject: [GAP Forum] Front end for GAP In-Reply-To: <42559FD8.6000905@comcast.net> References: <4253C670.4010007@math.tamu.edu> <4253EA57.6030101@usna.edu> <4253EC47.8070708@math.tamu.edu> <4253F5CA.4020102@usna.edu> <4253FAB7.6040104@math.tamu.edu> <42540970.8040105@usna.edu> <42541573.2060906@math.tamu.edu> <42541970.3000005@usna.edu> <42541F6B.9010308@math.tamu.edu> <42544131.805@comcast.net> <425441FE.5050709@math.tamu.edu> <42547CA4.5030707@comcast.net> <42557A13.5090506@math.tamu.edu> <4255868C.7040501@comcast.net> <42558C9C.5030806@math.tamu.edu> <42559FD8.6000905@comcast.net> Message-ID: <4255A69B.4050302@math.tamu.edu> David Joyner wrote: > I'm curious what work you are doing which involves GAP and python... > I am learning python myself... This is some group theory stuff, mixed with dynamic systems theory. I need to draw certain graphs, calculate spectra of certain matrices, and draw those spectra. At the moment I'm using scilab for this, but it's pretty inconvenient - I just starting scilab using Exec function; plus scilab can't write graphs as I want. So I am writing a graphics library and python module for it, and I will glue all of this together using ggap (there already exist python modules for numeric calculations). Also I am going to write some dialogs for my professor, so that he can use GAP - teaching him to use command line is more difficult :) You know, python is very powerful and easily extendable, so you can do different things using it - work with databases, internet, or create gui things, etc. You already can do things like: write a function in gap which opens a dialog, that dialog does something, and pastes something into the gap console. In next version I will make some demo of this, something like what xgap does. > Since you asked, I actually have at least 3 versions of GAP on this PC. > (A CVS 64-bit-compiled version, a CVS 32-bit-compiled version, > and an "old" version ie one that anyone can download from the web.) > I prefer that ggap have a ".ggaprc file" so that I can tell ggap which > gap script I want it to load. Is that possible? Yes, you can set how to start GAP in Preferences dialog; ggap stores its settings in ~/.ggaprc file. You can specify rc file using -f command line option, e.g. 'ggap -f some_other_rc'. This works if you compiled ggap with gtk of version 2.6 or newer (implementation details, you know). Actually I didn't think someone will want to use command line options. To test if it works, do 'ggap --help'; if it says something, everything is fine, otherwise it can't read command line options. I will make a command line option specifying how to start gap, like ggap -g "my_favorite_gap -blah -blah". Or it's better to allow multiple gap command line setting, so you choose it in menu or something? What do you think? > Also, the gap script takes a large number of arguments - you can even > load > gap using a workspace. Does ggap allow this? Once I was thinking to add option of loading workspace, it's still in the Preferences dialog (though it doesn't do anything). Do you think it would be useful? This is part of a big problem, actually. I can easily start gap from my program in any way I wish, but it's hard to design gui for this. And I don't want to put million things which are hard to use or not used at all in the program. Yevgen From muntyan at math.tamu.edu Thu Apr 7 23:11:41 2005 From: muntyan at math.tamu.edu (Yevgen Muntyan) Date: Fri Apr 8 15:25:49 2005 Subject: [GAP Forum] Front end for GAP In-Reply-To: References: <4253C670.4010007@math.tamu.edu> <8f8d6cbf346d2bfc4dbbaa951b3a86f5@math.byu.edu> <42557C6E.2020606@math.tamu.edu> Message-ID: <4255B01D.1030400@math.tamu.edu> Ivan Andrus wrote: > I use Fink and Fink Commander > to install lots of UNIX > applications almost painlessly. Fink is based on Debian's package > manager and is quite nice. I can't remember if you need administrator > privileges or not though, so it may not be an option. Thanks, I'll try. > I tried the new version (which claims to be 0.5.2 even though the tar > file claimed to be 0.5.1). Are you sure? It's really surprising. I checked and grepped the source, seems to be 0.5.1. Not that it's very important, but.. > I get the same behavior, but this time I got some error messages > printed to the console which may be of some use. I have included them > at the bottom of this email in hopes that they will help. This is really weird; in short, it should not be happening. I will try to build and test it on OS X. At the moment, you can write rc file yourself, I put example in the end of letter. Copy/paste it and save to ~/.ggaprc file. > I see. So the first time I run ggap, it doesn't know where to find GAP? No, it doesn't. It tries to run 'gap', and that's all. > Actually not much. I've never used it. I can download a client and > give it a try if you would prefer that. I've been meaning to for a > while. Yes, it would be really good. IRC is a chat, it's real time, so it's faster and more convenient. ------ This is my rc file (except gap command :). Copy after this line to the end ------- gap::command=gap -blah editor::dialogs::open=/home/muntyan/Projects/ggap/src editor::show_line_numbers=FALSE editor::show_right_margin=FALSE editor::tabs_width=5 editor::use_syntax_highlighting=TRUE shortcuts::GGAPWindow/Copy=c shortcuts::GGAPWindow/CopyLastOutput=c shortcuts::GGAPWindow/NewEditor=n shortcuts::GGAPWindow/OpenInEditor=o shortcuts::GGAPWindow/Paste=v shortcuts::GGAPWindow/Preferences=p shortcuts::GGAPWindow/Quit=q shortcuts::GGAPWindow/Restart=r shortcuts::GGAPWindow/SaveSelection=s shortcuts::GGAPWindow/SelectAll=a shortcuts::GGAPWindow/ShowConsole=l From muntyan at math.tamu.edu Thu Apr 7 23:52:36 2005 From: muntyan at math.tamu.edu (Yevgen Muntyan) Date: Fri Apr 8 15:25:49 2005 Subject: [GAP Forum] Front end for GAP In-Reply-To: <4255B8BC.4030407@comcast.net> References: <4253C670.4010007@math.tamu.edu> <4253EA57.6030101@usna.edu> <4253EC47.8070708@math.tamu.edu> <4253F5CA.4020102@usna.edu> <4253FAB7.6040104@math.tamu.edu> <42540970.8040105@usna.edu> <42541573.2060906@math.tamu.edu> <42541970.3000005@usna.edu> <42541F6B.9010308@math.tamu.edu> <42544131.805@comcast.net> <425441FE.5050709@math.tamu.edu> <42547CA4.5030707@comcast.net> <42557A13.5090506@math.tamu.edu> <4255868C.7040501@comcast.net> <42558C9C.5030806@math.tamu.edu> <42559FD8.6000905@comcast.net> <4255A69B.4050302@math.tamu.edu> <4255B8BC.4030407@comcast.net> Message-ID: <4255B9B4.2020102@math.tamu.edu> David Joyner wrote: > If you make the command line > > ggap -g "my_favorite_gap -blah -blah" > > work, doesn't that mean that you can load GAP into ggap with a workspace? > http://www.gap-system.org/Manuals/doc/htm/ref/CHAP003.htm#SECT011 Sure. ggap doesn't care about how you start GAP. You set the whole command line in the Preferences dialog, and ggap executes it. By the way, if you opt to use ggap shared package, then ggap silently appends '-l ' line to your command line. Bad thing for now is just that there is no such a command line option, and you can set it only in the preferences dialog (or modifying ~/.ggaprc file). > Think of it this way: If you use a workspace then GAP loads in a > second or 2. > If you don't then it takes 10-30 seconds to load (or longer, if you > have an old machine). > It is easy to get accustomed to doing something faster but less easy to > get used to doing something slower. Right? So, yes I think it would be > useful. Sorry, i was talking about ggap functionality, not about GAP. Of course this feature of GAP is useful; I wasn't sure ggap needed to deal with it. > It would also be useful for ggap to have a Save menu item for saving > the workspace. Okay. > I also think it would help to have tutorial for ggap. Yeah, documentation is certainly needed. Some day I will write it. Unfortunately, I am not a good writer (apart that my English is too far from being perfect). Thank you, Yevgen From gordon at csse.uwa.edu.au Fri Apr 8 06:57:46 2005 From: gordon at csse.uwa.edu.au (Gordon Royle) Date: Fri Apr 8 15:25:49 2005 Subject: [GAP Forum] Installing GAP via rsync - problems... Message-ID: <9aba17e8ebd18edcb9fc62fefc9b9754@csse.uwa.edu.au> I just decided to upgrade GAP 4r3 to GAP 4r4 and thought that I would try the new "rsync" mechanism for Linux computers. I followed the instructions - that is, obtained "gapsync" and then ran it, giving it the names of a directory for the files, and for the start-up scripts. I wanted to install in my own home directory (not /usr) so I just gave it $(HOME)/gap and $(HOME)/bin (where i typed out the full path for $HOME). It downloaded heaps of stuff and then stopped... the subdirectory $(HOME)/gap/gap4r4 is present and seems correct. However nothing has been added to $(HOME)/bin. I searched around for "gap.sh" and found two copies of it - one in $(HOME)/gap/gap4r4/bin and one in $(HOME)/gap/gap4r4/gapsync. I ran them, and indeed they started up GAP - but version 4r3 of 06-May-2002. This is NOT the version that I had installed previously, so it has in fact installed something... but just not what I wanted! Any ideas, or should I just go back to compiling? Cheers gordon From m.newman at qmul.ac.uk Fri Apr 8 13:46:16 2005 From: m.newman at qmul.ac.uk (mike newman) Date: Fri Apr 8 15:25:49 2005 Subject: [GAP Forum] Re: Identical objects that are indices (not lists) In-Reply-To: <200504080602.j38627YL000418@gap-system.org> References: <200504080602.j38627YL000418@gap-system.org> Message-ID: Thanks to those who made suggestions. I think either the conditional test or the function solution works fine. they probably both have quite minimal overhead compared with the guts of the inner loop. I would rather not have two separate inner loops for mainatenance reasons. mike Steve Linton wrote: > Robert Morse has suggested a solution based on duplicating the loop > content and one based on a function. A slight variation of the > function-based soltuion which moves the check of flag outside the function is: > > abc := function(A,flag) > local i,j,d,f; > > d := Length(A); > if flag then f := i->i; else f := i->1; fi; > for i in [1..d] do for j in [f(i)..d] do > > > What I would recommend though is the simpler: > > abc := function(A,flag) > local i,j,jj; > > for i in [1..d] do > if flag then > jj := i; > else > jj := 1; > fi; > > for j in [jj..d] do > > Although this conditional is executed d times, the cost of it will be pretty > small. If your "various functions" in the loop are at all non-trivial they will > certainly dominate the cost of the conditionals and loops. > > Steve From muntyan at math.tamu.edu Fri Apr 8 21:51:51 2005 From: muntyan at math.tamu.edu (Yevgen Muntyan) Date: Fri Apr 8 21:53:26 2005 Subject: [GAP Forum] Front end for GAP In-Reply-To: <20050408165522.87860.qmail@web53010.mail.yahoo.com> References: <20050408165522.87860.qmail@web53010.mail.yahoo.com> Message-ID: <4256EEE7.8010209@math.tamu.edu> Gary Zablackis wrote: > Yevgen, > > Thanks for this. I will be attempting to build it on a Windows 2000 > machine sometime soon. I need to update a few of my tools first. I > will probably be sending you some questions soon. Okay. Note that at the moment you must use MSYS or something similar to build it on windows; configure sets quite a few important things in Makefiles, and it generates couple of important files - resourse files and some from the shared package. And even with configure it won't be easy - some things needs to be set manually. Look at the mingw-configure file in the source tarball. By the way, why do you need to build it yourself? If it's not something exotic, I can do it myself. > The only problem I have had so far in running GGAP is that paste does > not seem to work. Yep, I broke it. Did you try version 0.5.1? I believe I fixed paste. Thank you, Yevgen From justin at mac.com Sun Apr 10 22:55:56 2005 From: justin at mac.com (Justin Walker) Date: Sun Apr 10 22:57:21 2005 Subject: [GAP Forum] GF usage Message-ID: <801c5f3a90d4546227dda077bf36fff5@mac.com> Hi, all, Following the documentation, I tried the following, with the indicated success: gap> K:=GF(GF(13^2),2); AsField( GF(13^2), GF(13^4) ) gap> F:=GF(GF(13^2),3); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `ZOp' on 1 arguments called from Z( p ^ d ) called from ... gap> L:=GF(GF(17^2),2); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `ZOp' on 1 arguments called from Z( p ^ d ) called from ... Is this an unwritten limitation? Regards, Justin -- Justin C. Walker, Curmudgeon-At-Large Institute for General Semantics -------- "Weaseling out of things is what separates us from the animals. Well, except the weasel." - Homer J Simpson -------- From gordon at csse.uwa.edu.au Mon Apr 11 02:47:17 2005 From: gordon at csse.uwa.edu.au (Gordon Royle) Date: Mon Apr 11 02:48:38 2005 Subject: [GAP Forum] Characteristic Polynomials ? Message-ID: Does anyone have any recommendations for software for finding characteristic polynomials of large sparse matrices? More precisely, I have a very sparse graph with about 7000 vertices for which I wish to find the characteristic polynomial (over the integers). Both GAP and Maple appear to have characteristic polynomial routines that reach their limit at a few hundred vertices; Magma has an amazing routine that manages to get up to 2000-3000 vertices, but it does not use sparseness and runs out of memory at that point... NTL also runs out of puff at around 1000 vertices. There are quite a few numerical solvers out there (for calculating the eigenvalues of a sparse symmetric matrix), but the numerical linear algebraists seem quite cavalier about the MULTIPLICITY of an eigenvalue and the packages that I have managed to install (some of them are quite complex to install) seem to have complicated user-defined parameters to control how multiple eigenvalues are dealt with. I have no 'a priori' guesstimate of the maximum multiplicity of an eigenvalue and I don't really have a firm understanding of the sensitivity of such a problem to numerical inaccuracy, so I am a bit unwilling to use these routines. Thanks.. (and apologies for not being a 100% GAP question) Gordon From d.v.pasechnik at uvt.nl Mon Apr 11 09:02:04 2005 From: d.v.pasechnik at uvt.nl (Dima Pasechnik) Date: Mon Apr 11 09:03:40 2005 Subject: [GAP Forum] Characteristic Polynomials ? In-Reply-To: References: Message-ID: <20050411080204.GA2010@babbage.lan> Dear GAP-Forum, > I have a very sparse graph with about 7000 vertices for > which I wish to find the characteristic polynomial (over the integers). Start by trying to collapse the adjacency matrix using the automorphism group; the eigenvalues of such a collapsed matrix are in well-understood correspondence with these of the original one. Another way to proceed is to compute over GF(p) for p large enough. Actually, that's where the problem lies - computing in arbitrary precision arithmetic. > > Both GAP and Maple appear to have characteristic polynomial routines > that reach their limit at a few hundred vertices; Magma has an amazing > routine that manages to get up to 2000-3000 vertices, but it does not > use sparseness and runs out of memory at that point... NTL also runs > out of puff at around 1000 vertices. > > There are quite a few numerical solvers out there (for calculating the > eigenvalues of a sparse symmetric matrix), but the numerical linear > algebraists seem quite cavalier about the MULTIPLICITY of an eigenvalue Numerical analysts don't care about the full spectrum, so don't hold your breath hoping that you get the answer. > and the packages that I have managed to install (some of them are quite > complex to install) seem to have complicated user-defined parameters to > control how multiple eigenvalues are dealt with. Try Matlab, if you can get your hands on it; it was possible to get a fully functional trial version that works for a month or something like this. Matlab incorporates ARPACK, one of the better packages you mentioned. Anyhow, all these packages actually compute few largest eigenvalues of the matrix A, and certainly you can also get few smallest ones, by doing few largest ones for -A. All this is a part of "black-box linear algebra"; one works under assumption that only the matrix-vector products Av are available, but not the matrix A itself. A good introduction (and further references) to it is in "Modern computer algebra" by v.z.Gathen and Gerhard. HTH, Dima From l.h.soicher at qmul.ac.uk Tue Apr 12 10:55:33 2005 From: l.h.soicher at qmul.ac.uk (Leonard Soicher) Date: Tue Apr 12 10:56:14 2005 Subject: [GAP Forum] Summer internship Message-ID: <200504120955.j3C9tXHs012495@mrcpc02.maths.qmul.ac.uk> Dear GAP-Forum, The internship below would suit an advanced undergraduate student interested in computational algebra and one or more of GAP, python, XML and html. Please pass this on to anyone you think may be interested. Thanks, Leonard ------------------------------------------------------------------------- Interdisciplinary Internship in the Department of Computer Science and the School of Mathematical Sciences Queen Mary University of London Applications are invited for an interdisciplinary summer internship, sponsored by the EPSRC NetCA network grant, in computational design theory and the representation of mathematical knowledge. This internship will be for three months (July--September 2005); a stipend of 1000 pounds per month will be paid. The tasks will be: 1. Learning the DesignTheory.org software system for the construction and analysis of combinatorial designs, and in particular the XML-format for the external representation of block designs and their properties; 2. the development of software to transform the XML representation of a block design and (some of) its properties to other formats, such as xhtml for display on the web; 3. (time permitting) the generation and analysis of new block designs. This post would be particularly suitable for an undergraduate student in computing or mathematics who is considering postgraduate study. For further details, or to make an application, contact Leonard Soicher (l.h.soicher@qmul.ac.uk). Applications, by email in pdf format, should be in the form of a CV, together with a brief statement of interest. The deadline for applications is 20 April 2005. From Frank.Luebeck at math.rwth-aachen.de Wed Apr 13 16:08:53 2005 From: Frank.Luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Wed Apr 13 16:09:06 2005 Subject: [GAP Forum] Installing GAP via rsync - problems... In-Reply-To: <9aba17e8ebd18edcb9fc62fefc9b9754@csse.uwa.edu.au> References: <9aba17e8ebd18edcb9fc62fefc9b9754@csse.uwa.edu.au> Message-ID: <20050413150853.GI5662@math.rwth-aachen.de> On Fri, Apr 08, 2005 at 01:57:46PM +0800, Gordon Royle wrote: > I just decided to upgrade GAP 4r3 to GAP 4r4 and thought that I would > try the new "rsync" mechanism for Linux computers. Dear GAP Forum, Gordan Royle reported some problem with installing GAP via the http://www.math.rwth-aachen.de:8001/RsyncLinuxGAP distribution. It turned out that the installation script did not overwrite his existing start script for a former GAP installation. Therefore he could not find out how to start up the new version. I have now improved the start script to catch this case with a sensible message to the installing user. This distribution provides a completely installed GAP including all current packages and allows easy and efficient updating (but it is for Linux only!). It is already sufficiently popular such that I will maintain it further and no longer mark it as 'experimental'. With best regards Frank Luebeck -- /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck@Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From Jonathan.Cohen at anu.edu.au Thu Apr 14 08:32:00 2005 From: Jonathan.Cohen at anu.edu.au (Jon Cohen) Date: Thu Apr 14 08:34:16 2005 Subject: [GAP Forum] MinimalGeneratingSet Message-ID: <1113463920.28432.7.camel@stellate.rsise.anu.edu.au> Hi all, I think there is a bug with the MinimalGeneratingSet method (I am running GAP 4.4.4 and have installed the latest bugfix). It does not seem to handle nonsolvable permutation groups: gap> MinimalGeneratingSet(SymmetricGroup(4)); [ (2,4,3), (1,4,2,3) ] Is fine, but: gap> MinimalGeneratingSet(SymmetricGroup(5)); gives an error. A quick look shows that the grpperm.gi code calls the grppcatr.gi MinimalGeneratingSet method only when the input group is solvable. Jon From ally at dcs.gla.ac.uk Thu Apr 14 14:43:44 2005 From: ally at dcs.gla.ac.uk (Alastair Donaldson) Date: Thu Apr 14 14:46:28 2005 Subject: [GAP Forum] Permutations... In-Reply-To: <200504120955.j3C9tXHs012495@mrcpc02.maths.qmul.ac.uk> References: <200504120955.j3C9tXHs012495@mrcpc02.maths.qmul.ac.uk> Message-ID: Dear GAP forum Suppose I have two permutations, alpha and beta, which both act on {1,..,n} for some n>0. Consider the disjoint cycle form of alpha. I want to get the permutation which has the same d.c.f. as alpha, except that each occurrence of a number k in this d.c.f. is replaced with k^beta. For example, suppose alpha = (1,4)(2,5) and beta = (1,7)(2,8) then I want the permutation (1^beta,4^beta)(2^beta,5^beta), i.e. (7,4)(8,5). I think I could implement this by turning alpha into a list representation, applying beta to each element in the list, permuting the indices of elements using beta, and turning the resulting list back into the permutation. I just wondered if anyone knows of an easier (or existing) way to do this with GAP. Thanks in advance Alastair. From allomber at math.u-bordeaux.fr Thu Apr 14 16:02:01 2005 From: allomber at math.u-bordeaux.fr (Bill Allombert) Date: Thu Apr 14 16:02:17 2005 Subject: [GAP Forum] Permutations... In-Reply-To: References: <200504120955.j3C9tXHs012495@mrcpc02.maths.qmul.ac.uk> Message-ID: <20050414150201.GD30645@seventeen> On Thu, Apr 14, 2005 at 02:43:44PM +0100, Alastair Donaldson wrote: > Dear GAP forum > > Suppose I have two permutations, alpha and beta, which both act on > {1,..,n} for some n>0. > > Consider the disjoint cycle form of alpha. I want to get the permutation > which has the same d.c.f. as alpha, except that each occurrence of a > number k in this d.c.f. is replaced with k^beta. > > For example, suppose alpha = (1,4)(2,5) and beta = (1,7)(2,8) then I want > the permutation (1^beta,4^beta)(2^beta,5^beta), i.e. (7,4)(8,5). I think was you want to do is a conjugacy: gap> (1,4)(2,5)^(1,7)(2,8); (4,7)(5,8) Cheers, Bill. From hulpke at math.colostate.edu Thu Apr 14 16:07:22 2005 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu Apr 14 16:08:08 2005 Subject: [GAP Forum] Permutations... In-Reply-To: Message-ID: <200504141507.j3EF7MKT008039@wielandt.math.colostate.edu> Dear Alastair, > Consider the disjoint cycle form of alpha. I want to get the permutation > which has the same d.c.f. as alpha, except that each occurrence of a > number k in this d.c.f. is replaced with k^beta. What you describe is just the conjugation action of a permutation group on itself. Simply calling alpha^beta will give you the desired result. Best, Alexander -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From ally at dcs.gla.ac.uk Thu Apr 14 16:47:05 2005 From: ally at dcs.gla.ac.uk (Alastair Donaldson) Date: Thu Apr 14 16:47:21 2005 Subject: [GAP Forum] Permutations... In-Reply-To: <20050414150201.GD30645@seventeen> Message-ID: Thanks to everyone who replied about this. Yes, conjugation is what I need....so simple! -Alastair From wdj at usna.edu Fri Apr 15 17:43:39 2005 From: wdj at usna.edu (David Joyner) Date: Fri Apr 15 17:41:23 2005 Subject: [GAP Forum] autologging in GAP Message-ID: <425FEF3B.7020908@usna.edu> Hello GAP Forurm: Yevgen Muntyan and I have written a function which automatically logs all GAP input and output. The log file is named after the time and date. It only works in linux. The instructions are on the webpage http://cadigweb.ew.usna.edu/~wdj/gap/gap_autologging.html however here are some details. (1) Download logger.gap from the webpage and save in "/home/wdj/gapfiles/" (of course, change the path name "/home/wdj/gapfiles/" to what you like). (2) Create the directory "/home/wdj/gapfiles/log" (of course, change the path name "/home/wdj/gapfiles/" to what you have in (1)) (3) Put the following 2 lines in your .gaprc file: Read("/home/wdj/gapfiles/logger.gap"); autologger(); where the path name "/home/wdj/gapfiles/" is what you have in (1). That's it! Now every GAP command is automaticaly logged and filed by date and time in the log subdirectory. - David Joyner and Yevgen Muntyan From arashrafi at kashanu.ac.ir Mon Apr 18 19:07:00 2005 From: arashrafi at kashanu.ac.ir (arashrafi) Date: Tue Apr 19 04:44:15 2005 Subject: [GAP Forum] Computing Automorphism of codes Message-ID: Dear Gap-Forum, I have a question about ability of GAP for computing automorphism group of codes. Does anyone have any recommendations for computing these groups? Of course, I don't have any access to Magma. Yours, Alireza ----------------------------------- Ali Reza Ashrafi, Associate Professor of Mathematics Department of Mathematics, Faculty of Science, University of Kashan, Kashan,Iran. Tel: +98-361-552935 Fax: +98-361-552930 E-mail: ashrafi@kashanu.ac.ir ? ? ? ? arashrafi@kashanu.ac.ir ? ? ? ? ashrafi996@yahoo.com ----------------------------------- From newman at maths.anu.edu.au Mon Apr 25 22:06:57 2005 From: newman at maths.anu.edu.au (Mike Newman) Date: Mon Apr 25 22:07:21 2005 Subject: [GAP Forum] New version of SmallGroups library Message-ID: This is to announce a significant extension to the GAP package SmallGroups Library by Besche, Eick and O'Brien. The word `Small' is used to mean orders less than a (changable) bound and orders whose prime factorisation is small in some (again changable) sense. What has been added are groups * with cubefree orders up to 50000; * with orders p^4, p^5 and p^6 for prime p; * with square-free orders. The library now contains a catalgoue number and a description, explicit or implicit, either as a pc-presentation or as a permutation group, for every group * with order less than 2016 except order 1024; * with cubefree order less than 50020; * and functions for generating, at run time, the number and a description for each (within natural resource limitations) group not given above * whose order factorises into at most 3 primes; * with order q^n*p where q^n divides 2^8, 3^6, 5^5 or 7^4 and p is a prime different from q; * with squarefree order; * with order p^4, p^5 and p^6 for prime p. The library also contains methods for identifying groups for many of these orders; all except orders 512 and 1536 and p^5, p^6 above 2000. The extension has been done without touching any of the existing group descriptions or numbers. The only change to the existing part of the library is to the information about groups with order 512 which previously did not correctly describe the p-class of some of the groups. Specifically the description given for a group has not changed and catalogue numbers have not changed. The new version of the SmallGroups package will be contained in GAP with the next release. It is available now on the Webpage www.tu-bs.de/~beick/soft/small/small.html. which will soon be linked to the Gap Webpage www.gap-system.org/Packages/sgl.html. M.F. (Mike) Newman (as editor) 2005 April 26 (EAST) From gordon at csse.uwa.edu.au Wed Apr 27 07:34:43 2005 From: gordon at csse.uwa.edu.au (Gordon Royle) Date: Wed Apr 27 07:36:20 2005 Subject: [GAP Forum] Easy problem - but I can't do it! Message-ID: Hello all.. I have an easy problem, but for some reason I keep getting an error... I am working with a cyclic subgroup of Sym(16): gap> s16 := SymmetricGroup(16); Sym( [ 1 .. 16 ] ) gap> g := Subgroup(s16,[(1,2,3,4)(5,6,7,8)(9,10,11,12)(13,14,15,16)]); Group([ (1,2,3,4)(5,6,7,8)(9,10,11,12)(13,14,15,16) ]) I want to find orbits on edges of the complete graph K_{16}, and so I create the corresponding list gap> edges := Orbit(s16,[1,2],OnSets); [ [ 1, 2 ], [ 2, 3 ], [ 3, 4 ], [ 1, 3 ], [ 4, 5 ], [ 2, 4 ], [ 5, 6 ], [ 6, 15 ], [ 4, 14 ], [ 5, 16 ], [ 7, 16 ], [ 5, 15 ], [ 6, 16 ] ] and then the appropriate orbits, which come out fine as sets of sets... gap> gorb := Orbits(g,edges,OnSets); [ [ [ 1, 2 ], [ 3, 4 ], [ 2, 3 ], [ 1, 4 ] ], [ [ 1, 3 ], [ 2, 4 ] ], [ [ 1, 5 ], [ 3, 7 ], [ 2, 6 ], [ 4, 8 ] ], [ [ 13, 14 ], [ 15, 16 ], [ 14, 15 ], [ 13, 16 ] ], [ [ 13, 15 ], [ 14, 16 ] ] ] NOW, I want to find the action of the normalizer of g on these objects... gap> n := Normalizer(s16,g); but when I do what seems to me to be the obvious thing I get an error: gap> Action(n,gorb,OnSetsSets); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `GroupByGenerators' on 2 arguments calle\ d from GroupByGenerators( imgs, ImageElmActionHomomorphism( hom, One( Source( hom ) ) ) ) called from ImagesSource( hom ) called from ( ) called from read-eval-loop But I *can* do something like gap> OnSetsSets(gorb[10],n.1); [ [ 1, 12 ], [ 2, 9 ], [ 3, 10 ], [ 4, 11 ] ] or gap> Orbit(n,gorb[1],OnSetsSets); [ [ [ 1, 2 ], [ 3, 4 ], [ 2, 3 ], [ 1, 4 ] ], [ [ 1, 2 ], [ 1, 4 ], [ 2, 3 ], [ 3, 4 ] ], [ [ 9, 10 ], [ 9, 12 ], [ 10, 11 ], [ 11, 12 ] ], [ [ 9, 10 ], [ 9, 12 ], [ 10, 11 ], [ 11, 12 ] ] ] so why can I not calculate the action? Sorry if this is a dumb question, but it is annoying me and obviously is something I need to know.... Thanks Gordon From sven.reichard at freenet.de Wed Apr 27 16:22:51 2005 From: sven.reichard at freenet.de (Sven Reichard) Date: Wed Apr 27 16:23:12 2005 Subject: [GAP Forum] Easy problem - but I can't do it! In-Reply-To: References: Message-ID: <426FAE4B.70301@freenet.de> Gordon, see my comment below. Gordon Royle wrote: > Hello all.. > > I have an easy problem, but for some reason I keep getting an error... > > > and then the appropriate orbits, which come out fine as sets of sets... > > gap> gorb := Orbits(g,edges,OnSets); > [ [ [ 1, 2 ], [ 3, 4 ], [ 2, 3 ], [ 1, 4 ] ], [ [ 1, 3 ], [ 2, 4 ] ], > [ [ 1, 5 ], [ 3, 7 ], [ 2, 6 ], [ 4, 8 ] ], > These are not sets, as far as GAP is concerned - they are not sorted. Try inserting the command gap> gorb := List(gorb, Set); This should solve the problem. Cheers, Sven. From simonn at for.mat.bham.ac.uk Wed Apr 27 17:36:14 2005 From: simonn at for.mat.bham.ac.uk (Simon Nickerson) Date: Wed Apr 27 17:36:30 2005 Subject: [GAP Forum] ClassNames and the Atlas Message-ID: Dear GAP forum, Is there any way of getting GAP to use the names of conjugacy classes as described in the Atlas of Finite Groups (and the Web Atlas)? The command CN := ClassNames(CT, "ATLAS"); works when CT is the character table of a simple group, but when it is an almost-simple group, there is disagreement. For example, the conjugacy classes of elements of order 8 in HS.2 are called: Atlas: 8A 8BC 8D 8E GAP: 8A 8B 8C 8D (i.e. GAP labels the classes alphabetically, and the Atlas labels them according to how the corresponding classes in the simple group HS fuse together). This might cause problems, because there are two conjugacy classes of HS.2 which might conceivably be called '8D'. If there is no way to get GAP to use Atlas conventions, does anyone have a list of the examples where the two systems disagree? Thanks, -- | Simon Nickerson http://web.mat.bham.ac.uk/S.Nickerson | simonn@maths.bham.ac.uk School of Mathematics | The University of Birmingham |_________________________________ Edgbaston, Birmingham B15 2TT From sal at dcs.st-and.ac.uk Wed Apr 27 22:48:17 2005 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Wed Apr 27 22:48:46 2005 Subject: [GAP Forum] Fw: All Possible Subgroups of a Group Message-ID: <20050427224817.0cad20c7@localhost.localdomain> Dear GAP Forum, this came to the old forum address. Begin forwarded message: Date: Wed, 27 Apr 2005 19:39:35 +0500 From: "Aslam Javed" To: gap-forum@gap-system.org, kohl@mathematik.uni-stuttgart.de Subject: All Possible Subgroups of a Group Dear Forum I am working on GAP. Pls tell me how to construct All Possible Subgroups of a FpGroup by using GAP Thanks Muhammad Aslam Javed Ph.D. Scholar Quaid-i-Azam University Islamabad. ------------------------------------------------ Don't just search. Find. MSN Search Check out the new MSN Search! -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From beick at tu-bs.de Tue May 3 14:17:12 2005 From: beick at tu-bs.de (Bettina Eick) Date: Tue May 3 14:17:29 2005 Subject: [GAP Forum] The RCWA Package Message-ID: Dear GAP Forum, it is my pleasure to announce the new Gap package `RCWA - Residue Class-Wise Affine Groups' by Stefan Kohl. The package contains methods to create and compute with rcwa mappings; that is, with residue class-wise affine mappings over an euclidian ring. The Collatz mapping T : Z -> Z defined by f(n) = n/2 if n is even and f(n) = (3n+1)/2 if n is odd is a rcwa mapping and it is the basis for the (still open) Collatz conjecture asking whether an iterated application of T to any positive integer eventually yields 1. Further, the pacakge contains methods to create and compute with groups of bijective rcwa mappings over an euclidian ring. In particular, the package has been designed to investigate the group RCWA(Z) which is the group of all bijective rcwa mappings over Z. The groups RCWA(R) for euclidian rings R are interesting infinite groups whose structure is not well known at current. The RCWA package provides a first approach towards investigating these groups. The package is currently available under http://www.cip.mathematik.uni-stuttgart.de/~kohlsn/rcwa.html. Best wishes, Bettina Eick From gap at gap.zssm.zp.ua Wed May 4 22:18:17 2005 From: gap at gap.zssm.zp.ua (Alexander Konovalov) Date: Wed May 4 21:41:15 2005 Subject: [GAP Forum] New version of the LAGUNA package for group rings Message-ID: <438909676.20050504231817@gap.zssm.zp.ua> Dear GAP Forum, Let me announce the next version 3.3 of the LAGUNA package for GAP4, developed by Victor Bovdi, Richard Rossmanith, Csaba Schneider and myself. LAGUNA extends GAP4 functionality for computations in group rings. Besides computing some general properties and attributes of group rings and their elements, LAGUNA is able to perform two main kinds of computations. Namely, it can verify whether a group algebra of a finite group satisfies certain Lie properties, and it can calculate the structure of the normalized unit group of a group algebra of a finite p-group over the field of p elements. List of new features and fixed bugs in the version 3.3: * Functions for fast construction of left/right/two-sided group ring ideals generated by elements of the form h-1, where h in H\{1} and H is a subgroup of the underlying group (contributed by my PhD student Anastasiya Tsapok). * Method for getting random elements from Units(KG) and NormalizedUnitGroup(KG), taking them randomly from KG until we get a unit; in the normalized case augmentation is adjusted to one. * Method for the embedding of the subgroup of an underlying group to the normalized unit group given by the power-commutator presentation. * Operation 'PartialAugmentations' returning a list of partial augmentations of an element of a group ring and corresponding conjugacy classes (contributed by my PhD student Anastasiya Tsapok). * New attribute 'LieDerivedLength' for Lie algebras * Computation of bicyclic units and of the bicyclic unit group. * Computation of the unitary subgroup of the normalized unit group (immediate method for small groups). * computation of the Lie upper codimension series of finite p-groups. * Fixed bugs: - Replaced 'GeneratorsOfGroup' to 'MinimalGeneratingSet' in DimensionBasis to fix a bug with SmallGroup(512,2). - Adjusted LieDerivedSubalgebra for the compatibility with the Sophus package by Csaba Schneider. - Fixed a bug with the nilpotency index of the augmentation ideal when p>2 (thanks to Inger Christin Borge for reporting this bug!). - Fixed a bug with 'IsUnit' and 'InverseOp' for elements of order q^n in characteristic p when (p,q)=1. - Added SetIsPGroup(U,true) for normalized unit groups of modular group algebras of finite p-groups for correct method selection (for example, for the computation of their automorphism groups with AutPGrp package). The new version of the package is available from the LAGUNA homepage at http://ukrgap.exponenta.ru/laguna.htm and from the GAP homepage http://www.gap-system.org/. Sincerely yours, Alexander Konovalov From thomas.breuer at math.rwth-aachen.de Thu May 5 08:28:25 2005 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Thu May 5 08:27:48 2005 Subject: [GAP Forum] ClassNames and the Atlas Message-ID: <20050505072825.B7F0577765@altair.math.rwth-aachen.de> Dear GAP Forum, Simon Nickerson wrote > Is there any way of getting GAP to use the names of conjugacy classes as > described in the Atlas of Finite Groups (and the Web Atlas)? The command > > CN := ClassNames(CT, "ATLAS"); > > works when CT is the character table of a simple group, but when it is an > almost-simple group, there is disagreement. For example, the conjugacy > classes of elements of order 8 in HS.2 are called: > > Atlas: 8A 8BC 8D 8E > GAP: 8A 8B 8C 8D > > (i.e. GAP labels the classes alphabetically, and the Atlas labels them > according to how the corresponding classes in the simple group HS fuse > together). This might cause problems, because there are two conjugacy > classes of HS.2 which might conceivably be called '8D'. > > If there is no way to get GAP to use Atlas conventions, does anyone have a > list of the examples where the two systems disagree? The documentation of `ClassNames' says When `ClassNames' is called with two arguments, the second being the string `"ATLAS"', the class names returned obey the convention used in Chapter 7, Section 5 of the ATLAS of Finite Groups cite{CCN85}. This means that this function is *not* thought to take case of ``relative'' class names as in the example above. For character tables of almost simple groups in the ATLAS, one can use the function `AtlasClassNames' from the GAP package `AtlasRep'. gap> LoadPackage( "AtlasRep" );; gap> AtlasClassNames( CharacterTable( "HS.2" ) ); [ "1A", "2A", "2B", "3A", "4A", "4B", "4C", "5A", "5B", "5C", "6A", "6B", "7A", "8A", "8BC", "10A", "10B", "11AB", "12A", "15A", "20AB", "2C", "2D", "4D", "4E", "4F", "6C", "6D", "6E", "8D", "8E", "10C", "10D", "12B", "14A", "20C", "20D", "20E", "30A" ] Note that this function is based on a list of the available ATLAS tables, computing the right names in cases such as $S_6$, $PGL_2(9)$, and $M_{10}$ would be impossible without that. So it is not defined what the function returns for almost simple non-ATLAS tables. All the best, Thomas From hulpke at math.colostate.edu Fri May 6 20:54:38 2005 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri May 6 20:54:56 2005 Subject: [GAP Forum] Re: All subgroups Message-ID: <200505061954.j46JscI8030600@schur.math.colostate.edu> Dear GAP-Forum, A. Javed wrote: > I am working on GAP. Pls tell me how to construct All Possible Subgroups of a > FpGroup by using GAP Thanks I suppose you don't really want all subgroups but that subgroups up to conjugacy will be sufficient. The general function for classes of subgroups is `ConjugacyClassesSubgroups'. However for FpGroups you are likely better off to first convert to an isomorphic permutation group: hom:=IsomorphismPermGroup(g); p:=Image(hom); cl:=ConjugacyClassesSubgroups(p);; cl:=List(cl,i->PreImage(hom,Representative(i))); gives a list of subgroups up to conjugacy. Please note that the feasibility of the calculations depends very much on the order of the FpGroup you use. I would expect problems if it is larger than a few 10000s. Best, Alexander Hulpke From orevkov at cict.fr Wed May 11 16:31:46 2005 From: orevkov at cict.fr (orevkov@cict.fr) Date: Thu May 12 16:50:03 2005 Subject: [GAP Forum] CharacterTable("SU3") Message-ID: <32160-220055311153146596@M2W103.mail2web.com> Dear GAP-forum, I have 3 questions about the generic Character Table for GU(3,q) and SU(3,q) in the library ctbllib 1). In the file gap4r4/pkg/ctbllib/data/ctgeneri.tbl it is written: ##################################################################### ## #V Generic character table of GU(3,q^2), as given in Meinolf Geck's #V diploma thesis. ## Question: Is this thesis available somewhere? 2). The record field "classtext" contains representatives of conjugacy classes. Question: What is the invariant sesquilinear form? 3). The following classtext for SU(3,q) looks strange: gap> LoadPackage("ctbllib");; gap> t:=CharacterTable("SU3");; gap> m:=t.classtext[8](3,3);; gap> m in GL(3,3^2); false gap> m in GL(3,3^6); true Thanks, Stepan Orevkov -------------------------------------------------------------------- mail2web - Check your email from the web at http://mail2web.com/ . From max.neunhoeffer at math.rwth-aachen.de Fri May 13 12:56:59 2005 From: max.neunhoeffer at math.rwth-aachen.de (Max Neunhoeffer) Date: Fri May 13 12:57:13 2005 Subject: [GAP Forum] Update of GAP to version 4.4.5 Message-ID: <20050513115659.GA6391@antares.math.rwth-aachen.de> Dear Forum, This is to announce the "Update" to GAP version 4.4.5. The priority to install this Update is "high", because some of the now fixed bugs in version 4.4.4 could produce wrong results without warning. Compared to former "Bugfix" releases, this Update contains not only bugfixes, but also some new features and extended or fixed documentation. On the other hand, it is not a full "Release", such that one does not have to install GAP anew. The idea behind this new concept is to transfer some new developments or improvements earlier to the GAP users than it would be possible with full Releases. This concerns for example package developers who sometimes have wishes for extensions of the GAP kernel or library. A small drawback compared to former Bugfixes is the size of the download archive containing the fixes and extensions. But we hope that for almost all GAP users this is not a problem nowadays. For information about fixed bugs and new features see the section about Release 4.4.5 in http://www.gap-system.org/Download/bugs.html See below for an excerpt. GAP Bugfixes and Updates are comprehensive, i.e. you can upgrade from any version of GAP 4.4 to 4.4.5 using this Update. You should not apply this fix to any version of GAP before GAP 4.4. (If you run such an old version, please install GAP 4.4.5 directly!) For download and installation instructions see http://www.gap-system.org/Download/upgrade.html There you also find instructions how to test whether the Update has been installed successfully. Note that the same page has a section which describes how to check whether all your installed GAP packages are up to date. It might be a good idea to check this after an upgrade to GAP 4.4.5, as new versions of packages might have been released independently of GAP. For the GAP Group, Thomas Breuer, Frank Luebeck, and Max Neunhoeffer ----------------------------------------------------------------------------- ================================= Excerpt from the list of changes: ================================= Fixed Bugs ========== - An error in the intersection routine for PC groups. - Computing the closure of a permutation group by a normalizing element could produce a corrupt stabilizer chain. - When computing preimages under an embedding into a direct product of permutation groups, if the element was not in the image of the embedding then a permutation had been returned instead of fail. - Two errors in `PowerMod' for polynomials. [Reported by Jack Schmidt] - Some methods for computing the sum of ideals returned the first summand instead of the sum. - InducedPcgs(pcgs,H) sometimes returned a pcgs which is not induced wrt. the parent pcgs of pcgs. This led to unpredictable behaviour, e. g. when SiftedPcElement was used subsequently. All of these bugs can cause wrong results. New or improved mathematical functionality ========================================== - The small groups library has been extended by - the groups of order p^4, p^5, p^6 for arbitrary primes p, - the groups of square-free order, and - the groups of cube-free order at most 50000. - A new function `StructureDescription' for computing structure descriptions for finite groups. - The database of precomputed Conway polynomials has been extended considerably, and the performance of `ConwayPolynomial' and `IsPrimitivePolynomial' for p < 256 has been improved significantly. New functions `IsCheapConwayPolynomial' and `RandomPrimitivePolynomial' have been added. - New functions `ContinuedFractionExpansionOfRoot' and `ContinuedFractionApproximationOfRoot' for computing continued fraction expansions and continued fraction approximations of real roots of polynomials with integer coefficients. - A method for `NormalBase' for finite fields has been added. From wdj at usna.edu Wed May 18 16:34:07 2005 From: wdj at usna.edu (David Joyner) Date: Wed May 18 16:31:25 2005 Subject: [GAP Forum] GUAVA 2.3 In-Reply-To: <41C32324.2020903@usna.edu> References: <41C32324.2020903@usna.edu> Message-ID: <428B606F.2030400@usna.edu> Hello GAP Forum: This is to announce the release of version 2.3 of GUAVA, the error-correcting codes package for GAP. This version has been tested to load with GAP 4.4.5 but it does not work with earlier versions of GAP. Several changes have taken place over the last major release, GUAVA 2.0. Indeed, the pdf manual has gone from about 123 pages to 147 pages, and I have added about 10-15 pages of GAP code to the GUAVA library. There are several new functions - for example a special decoder for cyclic codes, and some limited functionality to deal with algebraic geometric codes. Also, a test file guava.tst was added. For further details, see the CHANGES file on the GUAVA web page http://cadigweb.ew.usna.edu/~wdj/gap/GUAVA/ Please send any bugs or comments to me (wdj@usna.edu) or the GAP support list (support@gap-system.org). Thanks, David Joyner From gzabl at yahoo.com Thu May 19 17:44:36 2005 From: gzabl at yahoo.com (Gary Zablackis) Date: Thu May 19 17:45:28 2005 Subject: [GAP Forum] GAP4r4p5 and DirectoryTemporary() on Windows 2000 Message-ID: <20050519164436.22209.qmail@web53002.mail.yahoo.com> Dear GAP Support and GAP Windows users, The GAP update GAP4r4p5 contains Cygwin1.dll version 1.5.16, in which the functionality of mkstemp() has been modified, breaking any GAP packages (such as automata and others) which create more than one temporary directory during a single invocation of GAP. Cygwin1.dll versions 1.5.12 and earlier would create a new temporary directory on each invocation of mkstemp() (which is called from DirectoryTemporary()). With versions 1.5.15 and 1.5.16, mkstemp() attempts to make the same directory each time within the same invocation of GAP. I have searched the Cygwin mailing list and found one reference to the problem which may indicate that this is not a problem on Windows XP. I will perform further testing and investigation in the next few days to see what can be done about this on Windows 2000. Sincerely, Gary Zablackis __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From D.V.Pasechnik at uvt.nl Thu May 19 20:32:58 2005 From: D.V.Pasechnik at uvt.nl (D.V.Pasechnik) Date: Thu May 19 20:33:50 2005 Subject: [GAP Forum] GAP4r4p5 and DirectoryTemporary() on Windows 2000 Message-ID: <1116531178.a6b147c0dpasech@kubnw9.kub.nl> Dear Forum, mk*temp are obsolete BSD functions. Linux manpages say explicitly: "Don't use this function, use tmpfile(3) instead. It's bet?ter defined and more portable." Perhaps it's time to move on, and switch to tmpfile ? Just a suggestion, Dmitrii D.V. Pasechnik E&OR/FEB Tilburg University P.O. Box 90153 5000 LE Tilburg The Netherlands From allomber at math.u-bordeaux.fr Thu May 19 21:52:56 2005 From: allomber at math.u-bordeaux.fr (Bill Allombert) Date: Thu May 19 21:53:13 2005 Subject: [GAP Forum] GAP4r4p5 and DirectoryTemporary() on Windows 2000 In-Reply-To: <1116531178.a6b147c0dpasech@kubnw9.kub.nl> References: <1116531178.a6b147c0dpasech@kubnw9.kub.nl> Message-ID: <20050519205256.GU8087@seventeen> On Thu, May 19, 2005 at 09:32:58PM +0200, D.V.Pasechnik wrote: > Dear Forum, > > mk*temp are obsolete BSD functions. > Linux manpages say explicitly: > "Don't use this function, use tmpfile(3) instead. It's bet???ter > defined and more portable." > > Perhaps it's time to move on, and switch to tmpfile ? The problem is that it is not really possible to implement the GAP function TmpName() in term of tmpfile(), because tmpfile() return a FILE *, not a file name (and there is no existing filename associate to that FILE*). One solution would be to add a new function TmpStream() and eventually deprecate TmpName(). Cheers, Bill. From wdj at usna.edu Mon May 23 10:05:02 2005 From: wdj at usna.edu (David Joyner) Date: Mon May 23 14:05:26 2005 Subject: [GAP Forum] GUAVA 2.3 compilation for Macs Message-ID: <42919CBE.9070102@usna.edu> Hello GAP people: If you don't run GUAVA on a Mac you may ignore this email! Charles Wright discovered and Alexander Hulpke fixed a compilation error for loading the binaries associated to GUAVA on a Mac running OS X. The new OS X compilation instructions have been posted to the main GUAVA web page http://cadigweb.ew.usna.edu/~wdj/gap/GUAVA/ . Thank you Charles and Alexander! - David Joyner From edmund at mcs.st-and.ac.uk Mon May 23 17:45:02 2005 From: edmund at mcs.st-and.ac.uk (Edmund Robertson) Date: Mon May 23 17:44:36 2005 Subject: [GAP Forum] FGA package Message-ID: <200505231645.j4NGj2E19470@mcs.st-and.ac.uk> Dear GAP Forum, I announce, with great pleasure, that the FGA package, by Christian Sievers has been accepted as a refereed GAP package and is available for download from the GAP Web site, or from the authors Web page at http://cayley.math.nat.tu-bs.de/software/sievers/FGA/FGA-1.1.tar.gz The following description of the functionality of the package is based on that of author. The FGA package provides methods for computing with finitely generated subgroups of free groups. It provides a number of new operations for free groups such as FreeGeneratorsOfGroup and RankOfFreeGroup, and also installs new methods for a number of functions already known to GAP so that they can also be used with free groups. These latter functions include Normalizer, Centralizer and IsConjugate. In particular FGA: - allows you to (constructively) test membership and conjugacy, and to compute free generators, the rank, the index, normalizers, centralizers, and intersections of groups which are finitely generated subgroups of free groups. - provides generators and a finite presentation for the automorphism group of a finitely generated free group and contains a method to write any such automorphism as word in these generators. Edmund Robertson ---------------------------------------------------------------------- Professor E F Robertson Centre for Interdisciplinary Research in Computational Algebra School of Mathematics and Statistics Mathematical Institute University of St Andrews St Andrews KY16 9SS Scotland Email: edmund@mcs.st-and.ac.uk Tel: +44 (0)1334 463743 Fax: +44 (0)1334 463748 ---------------------------------------------------------------------- From Michael.Hartley at nottingham.edu.my Mon May 23 17:51:49 2005 From: Michael.Hartley at nottingham.edu.my (Michael Hartley) Date: Mon May 23 17:52:21 2005 Subject: [GAP Forum] Re: Forum Digest, Vol 18, Issue 2 Message-ID: I am currently off campus until early June. I will attend to your email when I return. Thank you. Apologies for any inconvenience. From laurent.bartholdi at gmail.com Thu May 26 18:03:37 2005 From: laurent.bartholdi at gmail.com (Laurent Bartholdi) Date: Thu May 26 18:03:56 2005 Subject: [GAP Forum] strange bug in saveworkspace Message-ID: <1ff637850505261003572b375e@mail.gmail.com> hi, i'm using frank luebeck's compilation (http://www.math.rwth-aachen.de:8001/RsyncLinuxGAP/index.html) and the following happens: % gapL GAP4, Version: 4.4.5 of 13-May-05, i686-pc-linux-gnu-gcc gap> P := 1; 1 gap> SaveWorkspace("xxx"); true gap> quit; % gap -L xxx GAP4, Version: 4.4.5 of 13-May-05, i686-pc-linux-gnu-gcc gap> P; function( a ) ... end (this was unfortunate, since i created nightly a presentation P with 17000 generators and 211000 relations...) -- Laurent Bartholdi \ laurent.bartholdigmailcom EPFL SB SMA IGAT \ T?l?phone: +41 21-6930380 CH-1015 Lausanne, Switzerland \ Fax: +41 21-6930385 From sal at dcs.st-and.ac.uk Tue May 31 17:34:47 2005 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Tue May 31 17:35:10 2005 Subject: [GAP Forum] Problems with Saved workspaces Message-ID: <20050531173447.100b0411@localhost.localdomain> Dear GAP Forum, Laurent Bartholdi reported: > hi, > i'm using frank luebeck's compilation > (http://www.math.rwth-aachen.de:8001/RsyncLinuxGAP/index.html) and > the following happens: > % gapL > GAP4, Version: 4.4.5 of 13-May-05, i686-pc-linux-gnu-gcc > gap> P := 1; > 1 > gap> SaveWorkspace("xxx"); > true > gap> quit; > % gap -L xxx > GAP4, Version: 4.4.5 of 13-May-05, i686-pc-linux-gnu-gcc > gap> P; > function( a ) ... end > > (this was unfortunate, since i created nightly a presentation P with > 17000 generators and 211000 relations...) > This is bug in GAP, and will be fixed in the next update. The problem relates only to the specific variable name "P", so as a workaround, users are advised to call their data in saved workspaces something else. We apologise to Laurent for his lost presentation. Steve -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From kohl at mathematik.uni-stuttgart.de Wed Jun 1 14:42:48 2005 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Wed Jun 1 14:42:59 2005 Subject: [GAP Forum] MinimalGeneratingSet In-Reply-To: <1113463920.28432.7.camel@stellate.rsise.anu.edu.au> References: <1113463920.28432.7.camel@stellate.rsise.anu.edu.au> Message-ID: <429DBB58.8040803@mathematik.uni-stuttgart.de> Dear Forum, On April 14, Jon Cohen asked: > I think there is a bug with the MinimalGeneratingSet method (I am > running GAP 4.4.4 and have installed the latest bugfix). > > It does not seem to handle nonsolvable permutation groups: > > gap> MinimalGeneratingSet(SymmetricGroup(4)); > [ (2,4,3), (1,4,2,3) ] > > Is fine, but: > > gap> MinimalGeneratingSet(SymmetricGroup(5)); > > gives an error. A quick look shows that the grpperm.gi code calls the > grppcatr.gi MinimalGeneratingSet method only when the input group is > solvable. In general, getting a `no method found' - message does not indicate an error. Such a message can indicate that a particular request does not make sense. But it can also just mean that simply no suitable method has been implemented so far. Here the latter is the case. Efficient methods for computing a minimal generating set are so far only known for finite solvable groups and for finitely-generated nilpotent groups. Of course, the case of an arbitrary finite group could in principle be treated by just looping over all pairs, triples, 4-tuples, ... of generators until one finds some k-tuple which generates. But the performance of this would be that horrible that nobody has seen a benefit in implementing it in GAP so far. Best wishes, Stefan Kohl From mckay at encs.concordia.ca Wed Jun 1 15:39:55 2005 From: mckay at encs.concordia.ca (MCKAY john) Date: Wed Jun 1 16:47:48 2005 Subject: [GAP Forum] MinimalGeneratingSet In-Reply-To: <429DBB58.8040803@mathematik.uni-stuttgart.de> References: <1113463920.28432.7.camel@stellate.rsise.anu.edu.au> <429DBB58.8040803@mathematik.uni-stuttgart.de> Message-ID: Minimal generating sets for simple groups of order up to 10**6 are in the literature... Try K-C Young, J. Cannon, and myself. Young pioneered this in his PhD thesis. Rob Wilson has been perfecting the technique. John McKay On Wed, 1 Jun 2005, Stefan Kohl wrote: > Dear Forum, > > On April 14, Jon Cohen asked: > > > I think there is a bug with the MinimalGeneratingSet method (I am > > running GAP 4.4.4 and have installed the latest bugfix). > > > > It does not seem to handle nonsolvable permutation groups: > > > > gap> MinimalGeneratingSet(SymmetricGroup(4)); > > [ (2,4,3), (1,4,2,3) ] > > > > Is fine, but: > > > > gap> MinimalGeneratingSet(SymmetricGroup(5)); > > > > gives an error. A quick look shows that the grpperm.gi code calls the > > grppcatr.gi MinimalGeneratingSet method only when the input group is > > solvable. > > In general, getting a `no method found' - message does not indicate > an error. Such a message can indicate that a particular request > does not make sense. But it can also just mean that simply no suitable > method has been implemented so far. > > Here the latter is the case. > > Efficient methods for computing a minimal generating set are so far > only known for finite solvable groups and for finitely-generated > nilpotent groups. > > Of course, the case of an arbitrary finite group could in principle be > treated by just looping over all pairs, triples, 4-tuples, ... of > generators until one finds some k-tuple which generates. > > But the performance of this would be that horrible that nobody has seen > a benefit in implementing it in GAP so far. > > Best wishes, > > Stefan Kohl > > > > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > -- But leave the wise to wrangle, and with me the quarrel of the universe let be; and, in some corner of the hubbub couched, make game of that which makes as much of thee. From thomas.breuer at math.rwth-aachen.de Wed Jun 1 17:43:19 2005 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Wed Jun 1 17:43:11 2005 Subject: [GAP Forum] CharacterTable("SU3") Message-ID: <20050601164319.5C9ED77540@altair.math.rwth-aachen.de> Dear GAP Forum, Stepan Orevkov had asked > [...] > 3). The following classtext for SU(3,q) looks strange: > > gap> LoadPackage("ctbllib");; > gap> t:=CharacterTable("SU3");; > gap> m:=t.classtext[8](3,3);; > gap> m in GL(3,3^2); > false > gap> m in GL(3,3^6); > true The point is that the `classtext' values do not really give you class representatives in the group in question, so this is not a bug in the data but an inaccuracy in the documentation. I will adjust the documentation for the next version of the character table library. What one gets in each case is an element that is conjugate to a class representative but perhaps in a larger group. As a simpler example, consider the generic character table of GL(2,q). This group contains elements of order q^2-1 that are easiest described as diagonalizable matrices with suitable eigenvalues in the field with q^2 elements, and the `classtext' values for these elements are in fact such diagonal matrices. However, the diagonal matrices are of course not contained in GL(2,q). I hope this clarifies the situation. All the best, Thomas From kmehrabadi at yahoo.com Thu Jun 2 19:14:50 2005 From: kmehrabadi at yahoo.com (Katayoon Mehrabadi) Date: Fri Jun 3 14:39:34 2005 Subject: [GAP Forum] Question Message-ID: <20050602181450.31582.qmail@web53010.mail.yahoo.com> Dear GAP forum I want to get some information about Sporadic groups, for example conjugacy classes, subgroups etc. How can I find their names and symbols which are welldefined for GAP. (I know that GAP has CharacterTable("co1") but I want to work with it as a Group.) Sincerely yours, Mehrabadi. __________________________________ Discover Yahoo! Have fun online with music videos, cool games, IM and more. Check it out! http://discover.yahoo.com/online.html From wdj at usna.edu Fri Jun 3 12:32:28 2005 From: wdj at usna.edu (David Joyner) Date: Fri Jun 3 16:32:26 2005 Subject: [GAP Forum] Gap icons for Linux KDE users In-Reply-To: <42A01115.9040305@usna.edu> References: <200506031402.18557.nicolas.ratier@lpmo.edu> <42A01115.9040305@usna.edu> Message-ID: <42A03FCC.3010800@usna.edu> Dear GAP Forum: If you do not use GAP in Linux you can ignore this email. Nicolas Ratier converted gapicon.bmp to standard Linux/KDE icons. Linux/KDE use desktop icons in PNG-file-format in the following size: 16x16 22x22 32x32 48x48 64x64 They are available on the web at http://cadigweb.ew.usna.edu/~wdj/gap/ or at http://www.lpmo.edu/~ratier/gapicon.tar.gz - David Joyner From Dursun.Bulutoglu at afit.edu Sun Jun 5 15:42:34 2005 From: Dursun.Bulutoglu at afit.edu (Bulutoglu Dursun A Civ AFIT/ENC) Date: Sun Jun 5 15:42:54 2005 Subject: [GAP Forum] Groebner Basis Message-ID: <039A0DCC3D66EE4AB9AF11E119287F15CB8393@ms-afit-04.afit.edu> Dear Gap Forum, I am trying to compute the Groebner basis for the ideal I=[x+y+(n-2)*z-N, x^2+y^2+(n-2)*z^2-M, x^3+y^3+(n-2)*z^3-R] where n, N, M, R are parameters for the coefficients of the generating polynomials but not indeterminates. x,y,z are the indeterminates. I would like to compute the Groebner basis of the Ideal I with respect to the monomial ordering [x,y,z] If I type GroebnerBasis(I,MonomialLexOrdering(x,y,z)) I get an error: Undefined variables [N,n] where I defined my parameters N, n, M, R as indeterminates. I was wondering if there is a way to define the parameters for the coefficients of the generating polynomials but not as indeterminates. I would like to get a set of polynomials whose coefficients are polynomials of N,n M,R with indeterminates x,y,z and form a Groebner basis for I. From sal at dcs.st-and.ac.uk Mon Jun 6 09:31:39 2005 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Mon Jun 6 09:53:05 2005 Subject: [GAP Forum] A problem with Lists Message-ID: <20050606093139.14172eeb@localhost.localdomain> Dear GAP Forum, Hubai Tamas asked: >A segmentation fault occurs upon evaluating the following expression: >gap> [~]=[~]; > >There are also some variations for this, such as [~]=[[~]], but the >originating problem is probably the same. > >I have checked this issue with gap 4.4.4 (and also with gap 3) on both >Windows and Linux systems. It does not seem to be os-specific. This is a known problem, where the elementwise comparison of lists causes an infinite recursion. It would be possible to add code to deal with it, but it would slow down all list comparisons slightly, and it is, in any event, far from clear what the right answer actually is. We will improve the documentation of this issue for the next release. Steve Linton -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From Dursun.Bulutoglu at afit.edu Mon Jun 6 16:41:09 2005 From: Dursun.Bulutoglu at afit.edu (Bulutoglu Dursun A Civ AFIT/ENC) Date: Mon Jun 6 16:41:48 2005 Subject: [GAP Forum] Solving Cubic and Quartic Equations in GAP Message-ID: <039A0DCC3D66EE4AB9AF11E119287F15CB8403@ms-afit-04.afit.edu> Dear Gap Forum, I was wondering whether GAP can solve cubic and quartic equations (in one variable) over the complex numbers. Dursun. From kohl at mathematik.uni-stuttgart.de Tue Jun 7 09:48:30 2005 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Tue Jun 7 09:48:43 2005 Subject: [GAP Forum] Question In-Reply-To: <20050602181450.31582.qmail@web53010.mail.yahoo.com> References: <20050602181450.31582.qmail@web53010.mail.yahoo.com> Message-ID: <42A55F5E.30005@mathematik.uni-stuttgart.de> Dear Forum, Katayoon Mehrabadi wrote: > I want to get some information about Sporadic groups, > for example conjugacy classes, subgroups etc. The standard source for information about these groups is The ATLAS of Finite Groups. See http://web.mat.bham.ac.uk/R.A.Wilson/atlas.html. > How can I find their names and symbols which are > welldefined for GAP. (I know that GAP has > CharacterTable("co1") but I want to work with it as a > Group.) The first question to ask at this point is whether you really need to work with an explicit representation of this group. Note that the first Conway group is not quite small, and that many out-of-the-box methods in GAP will not work for this group, or will at least require too much time or memory. If you really need explicit representations of Co1, you can find them in the ATLAS of Finite Group Representations. See http://web.mat.bham.ac.uk/atlas/v2.0/. This database can be accessed via the GAP package AtlasRep, see http://www.gap-system.org/Packages/atlasrep.html. If you load this package, you can get a list of stored representations of Co1 as follows: gap> DisplayAtlasInfo("Co1"); Representations for G = Co1: (all refer to std. generators 1) ---------------------------- 1: G <= Sym(98280) 2: G <= GL(24,2) 3: G <= GL(274,2) 4: G <= GL(276,3) 5: G <= GL(298,3) 6: G <= GL(276,5) 7: G <= GL(299,5) 8: G <= GL(276,7) 9: G <= GL(299,7) 10: G <= GL(276,11) 11: G <= GL(299,11) 12: G <= GL(276,13) 13: G <= GL(299,13) 14: G <= GL(276,23) 15: G <= GL(299,23) Straight line programs for G = Co1: (all refer to std. generators 1) ----------------------------------- available maxes of G: [ 1 .. 6 ] repres. of cyclic subgroups of G available find standard generators for: 1 check standard generators for: 1 You can get generators corresponding to the second-mentioned representation via AtlasGenerators("Co1",2); This is probably the most `handy' representation of this group. You can find explicit generators at the end of this mail. Faithful permutation representations of several smaller sporadic simple groups can also be obtained by asking for underlying groups of tables of marks, e.g. gap> UnderlyingGroup(TableOfMarks("HS")); This currently holds for 2F4(2)', M11, M12, M22, M23, M24, J1, J2, J3, Co3, HS, McL and He. The Mathieu groups are also available via MathieuGroup( ). Hope this helps, Stefan Kohl - I would like to acknowledge hints by Thomas Breuer, Steve Linton and Frank L?beck - ------------------------------------------------------------------ Standard generators for Co1: a := [ [0,1,1,0,0,1,0,0,1,0,1,1,0,0,1,0,0,1,1,1,1,0,1,1], [0,1,0,0,1,0,0,1,1,1,1,0,1,1,0,0,1,0,1,0,0,0,0,1], [0,1,0,1,1,1,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1], [1,1,0,0,0,1,1,0,1,1,1,0,1,0,0,1,0,1,1,1,0,1,0,0], [0,1,0,1,0,1,1,0,1,1,0,0,1,1,0,0,0,1,1,1,0,1,1,0], [1,0,1,1,1,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1], [1,0,1,1,1,0,0,0,1,0,1,1,1,0,1,0,0,1,1,1,1,0,1,0], [0,0,1,0,1,0,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,0,0,1], [0,1,0,1,0,0,1,1,1,1,0,0,0,0,0,1,0,1,1,1,0,1,0,1], [1,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,1,1,1,1,1,0,0,1], [1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,0,1,1,0], [1,0,1,0,0,1,1,1,1,1,1,0,1,1,0,0,1,0,1,0,1,0,1,1], [1,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,0,1,0,1,0,0,0], [1,0,0,1,0,1,1,1,1,0,1,1,1,0,1,1,1,1,0,1,0,1,1,1], [1,0,0,1,0,1,1,1,0,1,1,0,0,0,1,0,0,0,1,0,1,0,0,0], [1,1,0,1,1,1,1,1,0,1,0,0,0,0,0,1,1,1,0,1,0,0,1,1], [0,0,0,1,1,1,1,0,0,0,1,0,0,0,0,1,1,1,0,1,1,0,0,1], [1,0,0,0,1,0,0,1,1,1,1,0,1,0,0,1,1,1,1,0,1,1,0,0], [0,1,0,0,1,0,1,0,1,1,1,0,0,1,1,1,0,1,0,1,0,1,1,1], [0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,1], [0,0,1,1,0,1,1,1,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,1], [1,1,0,1,1,1,1,1,1,1,0,0,0,0,0,1,1,0,1,0,0,1,1,0], [0,1,0,1,0,1,1,1,0,0,1,1,1,0,1,1,0,1,0,1,1,1,0,1], [0,1,0,0,0,1,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,0,1] ]*Z(2); b := [ [1,1,1,1,0,1,0,0,0,1,1,1,0,0,0,0,1,0,0,0,0,1,1,0], [1,1,0,1,1,0,0,1,0,0,1,1,0,1,1,1,0,0,0,0,0,1,1,1], [0,0,0,1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,0,1], [1,1,1,1,1,0,0,1,0,1,1,0,0,1,0,0,1,0,0,0,0,1,1,0], [1,1,0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,1,0,0,1,1,1,0], [1,0,0,1,0,0,1,0,1,0,1,0,0,0,1,0,0,1,1,0,0,0,1,1], [0,0,1,0,1,1,0,0,1,1,0,1,0,1,1,0,1,0,0,1,1,1,1,1], [0,0,0,1,1,0,0,1,1,0,0,1,1,1,0,1,1,1,0,1,0,1,1,1], [0,0,0,0,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,0,1,1,0], [0,0,1,0,1,1,1,1,0,0,1,0,0,1,1,1,1,0,0,1,0,1,0,0], [0,0,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,1,0,1,0,0,1], [1,1,0,1,1,0,0,0,0,1,0,1,0,0,1,1,1,1,0,0,1,0,0,0], [0,0,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1,0], [1,0,1,0,1,1,0,1,1,0,0,0,1,1,0,0,0,1,0,1,0,1,0,0], [0,1,0,1,1,0,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,1], [1,1,0,1,1,1,1,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0], [1,0,1,1,0,1,1,0,0,1,1,0,0,1,1,1,1,0,0,0,0,0,1,1], [1,1,1,1,0,0,0,0,0,1,1,0,0,1,1,1,0,1,0,0,1,0,1,0], [1,1,0,1,0,0,1,1,1,0,1,0,0,0,0,0,1,0,0,0,0,1,1,1], [1,0,1,1,0,0,1,0,1,1,0,1,0,1,0,0,0,0,1,1,1,1,1,1], [0,1,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0], [0,1,1,1,0,0,1,0,0,1,0,0,0,0,1,1,1,0,0,1,0,1,0,0], [1,0,0,1,1,0,1,0,1,1,0,0,0,1,0,1,1,0,1,0,1,0,0,0], [1,0,1,0,0,1,0,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,1,1] ]*Z(2); From kian_moto at yahoo.com Tue Jun 7 10:38:27 2005 From: kian_moto at yahoo.com (kian moto) Date: Tue Jun 7 10:38:52 2005 Subject: [GAP Forum] huppert book Message-ID: <20050607093827.24518.qmail@web33712.mail.mud.yahoo.com> dear forum. i want to know is there any English translation of huppert book(Endliche grouppen 1). becouse i dont know german languge. i am very thankful if send me any information about this. Best wish Send instant messages to your online friends http://uk.messenger.yahoo.com From A.Camina at uea.ac.uk Tue Jun 7 16:34:57 2005 From: A.Camina at uea.ac.uk (Alan Camina) Date: Tue Jun 7 16:35:18 2005 Subject: [GAP Forum] huppert book In-Reply-To: <20050607093827.24518.qmail@web33712.mail.mud.yahoo.com> References: <20050607093827.24518.qmail@web33712.mail.mud.yahoo.com> Message-ID: The answer is NO but it would be great to have one, it is a wonderful book. Alan School of Mathematics University of East Anglia Norwich UK NR4 7TJ Mobile Phone 07876024281 Office Telephone +44 (0)1603 592587 Home Telephone (Norwich) +44 (0)1603 612177 On Tue, 7 Jun 2005, kian moto wrote: > dear forum. > i want to know is there any English translation of > huppert book(Endliche grouppen 1). > becouse i dont know german languge. > i am very thankful if send me any information about this. > Best wish > > Send instant messages to your online friends http://uk.messenger.yahoo.com > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From gzabl at yahoo.com Tue Jun 7 17:52:54 2005 From: gzabl at yahoo.com (Gary Zablackis) Date: Tue Jun 7 17:53:52 2005 Subject: [GAP Forum] GAP4r4p5 and DirectoryTemporary() on Windows 2000 revisited Message-ID: <20050607165254.90983.qmail@web53008.mail.yahoo.com> Dear GAP Support and GAP Windows users, The latest version of the cygwin1.dll (1.5.17) released on 27 May corrects the problems with temporary directories caused by the version of the dll released with GAP4r4p5. I have run some minimal tests and have found no problems; however, more thorough tests are probably called for before placing this version of cygwin1.dll into general use with GAP. Sincerely, Gary Zablackis __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From vdabbagh at math.carleton.ca Wed Jun 8 04:39:53 2005 From: vdabbagh at math.carleton.ca (Vahid Dabbaghian-Abdoly) Date: Wed Jun 8 04:40:15 2005 Subject: [GAP Forum] block matrix Message-ID: Dear GAP Forum, I am want to construct a diagonal block matrix such that the diagonal entries have different dimensions. Is there any function or method for such a matrix in GAP? Best regards, Vahid From a.distler at tu-bs.de Wed Jun 8 11:02:46 2005 From: a.distler at tu-bs.de (Andreas Distler) Date: Wed Jun 8 11:03:31 2005 Subject: [GAP Forum] Solving Cubic and Quartic Equations in GAP In-Reply-To: <039A0DCC3D66EE4AB9AF11E119287F15CB8403@ms-afit-04.afit.edu> References: <039A0DCC3D66EE4AB9AF11E119287F15CB8403@ms-afit-04.afit.edu> Message-ID: <200506081202.46534.a.distler@tu-bs.de> Dear GAP Forum, > I was wondering whether GAP can solve cubic and quartic > equations (in one variable) over the complex numbers. As far as I know, real and complex numbers are not supported by GAP. For rational polynomials I have implemented a package containing a function to express the roots of the polynomial by radicals if this is possible. You can find the package under http://www.icm.tu-bs.de/ag_algebra/software/distler/radiroot/ Best wishes, Andreas Distler From mckay at encs.concordia.ca Wed Jun 8 16:01:02 2005 From: mckay at encs.concordia.ca (MCKAY john) Date: Wed Jun 8 16:01:27 2005 Subject: [GAP Forum] Solving Cubic and Quartic Equations in GAP In-Reply-To: <200506081202.46534.a.distler@tu-bs.de> References: <039A0DCC3D66EE4AB9AF11E119287F15CB8403@ms-afit-04.afit.edu> <200506081202.46534.a.distler@tu-bs.de> Message-ID: What does the answer below mean??? "if at all possible" - for 3-ics and 4-ics it is ALWAYS possible. has the answerer provided an expression in radicals for ALL solvable polynomial in Z[x]? If so, then let's hear about it. It is a scandal that no-one to date has done this in symbolic computation. John Mckay On Wed, 8 Jun 2005, Andreas Distler wrote: > Dear GAP Forum, > > > I was wondering whether GAP can solve cubic and quartic > > equations (in one variable) over the complex numbers. > > As far as I know, real and complex numbers are not supported by GAP. > For rational polynomials I have implemented a package containing a function to > express the roots of the polynomial by radicals if this is possible. You can > find the package under > http://www.icm.tu-bs.de/ag_algebra/software/distler/radiroot/ > > Best wishes, > Andreas Distler > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > -- But leave the wise to wrangle, and with me the quarrel of the universe let be; and, in some corner of the hubbub couched, make game of that which makes as much of thee. From giuzzi at dmf.unicatt.it Wed Jun 8 10:25:22 2005 From: giuzzi at dmf.unicatt.it (Luca Giuzzi) Date: Wed Jun 8 17:08:56 2005 Subject: [GAP Forum] block matrix In-Reply-To: References: Message-ID: <20050608092522.GA20250@dmf.unicatt.it> On Tue, Jun 07, 2005 at 11:39:53PM -0400, Vahid Dabbaghian-Abdoly wrote: > Dear GAP Forum, > > I am want to construct a diagonal block matrix such that the > diagonal entries have different dimensions. > Is there any function or method for such a matrix in GAP? > > Best regards, Vahid > > There is no such function I am aware of in GAP ... (I actually got this snippet from somebody on the mailing list some time ago) However, I have been using the following: BuildMatrix:=function(A,B,C,D) return Concatenation( List([1..Length(A)],i->Concatenation(A[i],B[i])), List([1..Length(C)],i->Concatenation(C[i],D[i]))); end; This provides you with a block matrix of the form [[ A, B], [ C, D ]]; In order to get just a block diagonal matrix from A and B you sohould be able to use the following BlockDiagonal:=function(A,B) local _t1, _t2; _t1 := A[1][1]*NullMat(Length(TransposedMat(A)[1]),Length(B[1])); _t2 := B[1][1]*NullMat(Length(TransposedMat(B)[1]),Length(A[1])); return BuildMatrix (A,_t1,_t2,B); end;; Best regards, lg > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > -- From sven.reichard at freenet.de Wed Jun 8 19:16:18 2005 From: sven.reichard at freenet.de (Sven Reichard) Date: Wed Jun 8 19:17:36 2005 Subject: [GAP Forum] block matrix In-Reply-To: <20050608092522.GA20250@dmf.unicatt.it> References: <20050608092522.GA20250@dmf.unicatt.it> Message-ID: <42A735F2.5010409@freenet.de> Luca Giuzzi wrote: > On Tue, Jun 07, 2005 at 11:39:53PM -0400, Vahid Dabbaghian-Abdoly wrote: > >>Dear GAP Forum, >> >>I am want to construct a diagonal block matrix such that the >>diagonal entries have different dimensions. >>Is there any function or method for such a matrix in GAP? >> >>Best regards, Vahid >> >> > > There is no such function I am aware of in GAP ... > (I actually got this snippet from somebody on the mailing list some time > ago) > However, I have been using the following: > lg Vahid, if you have more than two blocks, the following code might help: DiagonalBlockMatrix := function(matrices) # matrices is a list of square matrices over a field. # note: both matrices and matrices[1] are assumed to be non-empty local dimension, partialSum, totalLength, result, m, i, range; dimension := List(matrices, Length); partialSum := List([0..Length(matrices)], x -> Sum(dimension{[1..x]})); range := List([1..Length(matrices)], x -> [partialSum[x]+1..partialSum[x+1]]); totalLength := Sum(dimension); result := NullMat(totalLength, totalLength, Field(matrices[1][1][1])); for m in [1..Length(matrices)] do for i in [1..dimension[m]] do result[range[m][i]]{range[m]} := matrices[m][i]; od; od; return result; end; Regards, Sven. From jmichel at math.jussieu.fr Wed Jun 8 20:53:16 2005 From: jmichel at math.jussieu.fr (Jean Michel) Date: Wed Jun 8 20:53:43 2005 Subject: [jmichel@math.jussieu.fr: Re: [GAP Forum] block matrix] Message-ID: <20050608195316.GB3206@math.jussieu.fr> ----- Forwarded message from Jean Michel ----- Date: Wed, 8 Jun 2005 21:48:33 +0200 From: Jean Michel To: Luca Giuzzi Subject: Re: [GAP Forum] block matrix Message-ID: <20050608194833.GA3206@math.jussieu.fr> References: <20050608092522.GA20250@dmf.unicatt.it> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20050608092522.GA20250@dmf.unicatt.it> User-Agent: Mutt/1.5.6i Status: RO Content-Length: 1725 Lines: 46 On Wed, Jun 08, 2005 at 11:25:22AM +0200, Luca Giuzzi wrote: > On Tue, Jun 07, 2005 at 11:39:53PM -0400, Vahid Dabbaghian-Abdoly wrote: > > Dear GAP Forum, > > > > I am want to construct a diagonal block matrix such that the > > diagonal entries have different dimensions. > > Is there any function or method for such a matrix in GAP? > > > > Best regards, Vahid > > > > > There is no such function I am aware of in GAP ... > (I actually got this snippet from somebody on the mailing list some time > ago) The following function from the CHEVIE package may help ############################################################################# ## #F DiagonalMat( ,..., ) diagonal block-matrix ## ## returns the block diagonal matrix with diagonal entries ## ... ## m_i may be rectangular or empty; blocks of size 1x1 may be given as scalars ## DiagonalMat( ) where v is a list of scalars is like DiagonalMat(v1,..vn) ## DiagonalMat:=function(arg)local res,fr,fc,r,c,m; if Length(arg)=1 and IsList(arg[1]) and Length(arg[1])>0 and not IsList(arg[1][1]) then arg:=arg[1];fi; fr:=function(m)if IsMat(m) then return Length(m);else return 1;fi;end; fc:=function(m)if not IsMat(m) then return 1; elif Length(m)=0 then return 0; else return Length(m[1]);fi;end; res:=NullMat(Sum(arg,fr),Sum(arg,fc)); r:=0;c:=0; for m in arg do if IsMat(m) then res{r+[1..fr(m)]}{c+[1..fc(m)]}:=m; else res[r+1][c+1]:=m;fi; r:=r+fr(m);c:=c+fc(m); od; return res; end; ------------------------------------------------------------------------ Jean MICHEL, Equipe des groupes finis, Institut de Mathematiques UMR7586 Bureau 9D17 tel.(33)144278119, 175, rue du Chevaleret 75013 Paris ----- End forwarded message ----- -- ------------------------------------------------------------------------ Jean MICHEL, Equipe des groupes finis, Institut de Mathematiques UMR7586 Bureau 9D17 tel.(33)144278119, 175, rue du Chevaleret 75013 Paris From allomber at math.u-bordeaux.fr Thu Jun 9 00:25:54 2005 From: allomber at math.u-bordeaux.fr (Bill Allombert) Date: Thu Jun 9 00:26:07 2005 Subject: [GAP Forum] Solving Cubic and Quartic Equations in GAP In-Reply-To: References: <039A0DCC3D66EE4AB9AF11E119287F15CB8403@ms-afit-04.afit.edu> <200506081202.46534.a.distler@tu-bs.de> Message-ID: <20050608232554.GB11473@seventeen> On Wed, Jun 08, 2005 at 11:01:02AM -0400, MCKAY john wrote: > What does the answer below mean??? > > "if at all possible" - for 3-ics and 4-ics it is ALWAYS possible. > > has the answerer provided an expression in radicals for ALL solvable > polynomial in Z[x]? > > If so, then let's hear about it. > > It is a scandal that no-one to date has done this in symbolic computation. This is off-topic here, but in my Ph.D. thesis I have developed an algorithm that could solve this problem for super-solvable Galois extensions of Q This is quite practical, you can handle polynomial of degree 100 and more, and it is available in PARI/GP but not in GAP. The major problem is that the expressions returned are quickly extremely large. Cheers, Bill. From Michael.Hartley at nottingham.edu.my Thu Jun 9 05:28:21 2005 From: Michael.Hartley at nottingham.edu.my (Michael Hartley) Date: Thu Jun 9 05:28:53 2005 Subject: [GAP Forum] Low Index Subgroups Process. Message-ID: Dear GAPpers. One thing I miss from CAYLEY (now MAGMA) is the existence of a collection of functions that returns the low index subgroups of a finitely presented group one by one instead of all at once. This was particularly useful in situations where one is searching for an example of a low index subgroup with certain properties, but returning the complete list of subgroups up to the required index would just take far too long. Well, I have hacked the source code of the LowIndexSubgroupsFpGroup function, and created two functions "LowIndexSubgroupsStream" and "GetNextLowIndexSubgroup". They are in the attached file, and may be used as follows: # set up the (infinite) fp group of a tesselation of hyperbolic space by octagons. p := 8; q := 8; F := FreeGroup("a","b","c");; a := F.1;; b := F.2;; c := F.3;; W := F / [a^2, b^2, c^2, (a*b)^p, (b*c)^q, (a*c)^2];; # We want some status info as we go along... SetInfoLevel(InfoFpGroup,2); # Create a low index subgroups stream. lix := LowIndexSubgroupsStream(W,TrivialSubgroup(W),120);; # <-- DON'T FORGET THE ';;' !!! # retrieve the subgroups one by one sub := GetNextLowIndexSubgroup(lix); while not (sub = fail) do # test sub to see if it has some desirable propety quo := W / Core(W,sub); gens := GeneratorsOfGroup(quo); g1 := Group(gens[1],gens[2]); g2 := Group(gens[2],gens[3]); if Size(g1)=16 and Size(g2)=16 and Size(Intersection(g1,g2))=2 then Print("Found!!\n"); break; fi; # test failed, so get the next subgroup sub := GetNextLowIndexSubgroup(lix); od; This returns an answer in 62 milliseconds on my machine. Finding all the low index subgroups even only down to index 17 took 19328 milliseconds (and returned 4167 classes). Testing them took longer still (54219 ms). Since GAP is GPL, the attached code is also GPL. Feature request : I also miss being able to ask for low index subgroups of particular indices, not just all with index up to some limit, eg "GAP, give me all subgroups of index 3,5 or 20." Yorus, Mike H... -------------- next part -------------- BEGIN:VCARD VERSION:2.1 X-GWTYPE:USER FN:Michael Hartley ORG:University of Nottingham;Computer Science and IT EMAIL;WORK;PREF;NGW:Michael.Hartley@nottingham.edu.my N:Hartley;Michael END:VCARD From thomas.breuer at math.rwth-aachen.de Thu Jun 9 08:14:26 2005 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Thu Jun 9 08:14:50 2005 Subject: [GAP Forum] block matrix Message-ID: <20050609071426.7B5C5A45BC@antares.math.rwth-aachen.de> Dear GAP Forum, Vahid Dabbaghian-Abdoly wrote > I am want to construct a diagonal block matrix such that the > diagonal entries have different dimensions. > Is there any function or method for such a matrix in GAP? Currently the GAP library does not support block matrices with varying block dimensions. The documentation of the function `BlockMatrix' does not state this explicitly, this will be improved in the next version. So matrices of the format in question have to be represented by lists of lists. The only situation where one benefits from the fact that these matrices are block matrices is their construction, which can be performed using the sublist assignment operators, for example as follows. gap> block1:= 3 * IdentityMat( 2 );; gap> block2:= 7 * IdentityMat( 3 );; gap> mat:= NullMat( 5, 5 );; gap> mat{ [ 1 .. 2 ] }{ [ 1 .. 2 ] }:= block1;; gap> mat{ [ 3 .. 5 ] }{ [ 3 .. 5 ] }:= block2;; gap> Display( mat ); [ [ 3, 0, 0, 0, 0 ], [ 0, 3, 0, 0, 0 ], [ 0, 0, 7, 0, 0 ], [ 0, 0, 0, 7, 0 ], [ 0, 0, 0, 0, 7 ] ] It should be noted that currently one can enter block matrices with equal block dimensions via `BlockMatrix', and there is a special method for multiplying two compatible block matrices, but there are many situations where GAP does not use the block structure. For example, when one computes a preimage under an action homomorphism that describes the action of a group of block matrices on vectors then GAP returns an ``unpacked'' matrix. Eventually, it would be nice to have stronger support for block matrices in GAP. Thanks for the hint. All the best, Thomas Breuer From vdovin at math.nsc.ru Thu Jun 9 08:28:57 2005 From: vdovin at math.nsc.ru (Vdovin Evgenii) Date: Thu Jun 9 08:29:23 2005 Subject: [GAP Forum] IsPrime Message-ID: <1118302137.4699.6.camel@a4m340b.math.nsc.ru> Dear pubbers! I wonder if anybody knows what algorithm is used in GAP to check whether a given integer is prime. Does anybody know another program that can check whether a given integer is prime? Now I'm considering a prime p=2^44497-1 and the problem is to check if p^2-p+1 is prime. -- Best Regards Vdovin Evgenii Institute of Mathematics pr-t Acad. Koptiug, 4 630090, Novosibirsk, Russia Office phone +7 3832 331390 Home phone +7 3832 644892 Fax +7 3832 332598 From enis.karaarslan at ege.edu.tr Thu Jun 9 13:23:59 2005 From: enis.karaarslan at ege.edu.tr (Enis Karaarslan) Date: Thu Jun 9 12:13:33 2005 Subject: [GAP Forum] IsPrime In-Reply-To: <1118302137.4699.6.camel@a4m340b.math.nsc.ru> Message-ID: <200506091020.j59AKVZf016240@gap-system.org> Well, I had dealed with prime numbers in my master thesis. I had used my own algorithm-coded in GAP and compared it with Gap's implementation Well it is not a complicated work, but it can give some idea. The system consists of these tests: Perform division with small prime numbers (first 1028 primes) Miller&Rabin Test. Lucas Test I also used division with Carmichael numbers test. A paper of this survey can be found in this link: http://bornova.ege.edu.tr/%7Eenis/bildiri/PrimeTestingAndSecurity_01042002.d oc Enis Karaarslan Ege University -----Original Message----- From: forum-bounces@gap-system.org [mailto:forum-bounces@gap-system.org] On Behalf Of Vdovin Evgenii Sent: Thursday, June 09, 2005 8:29 AM To: forum@gap-system.org Subject: [GAP Forum] IsPrime Dear pubbers! I wonder if anybody knows what algorithm is used in GAP to check whether a given integer is prime. Does anybody know another program that can check whether a given integer is prime? Now I'm considering a prime p=2^44497-1 and the problem is to check if p^2-p+1 is prime. -- Best Regards Vdovin Evgenii Institute of Mathematics pr-t Acad. Koptiug, 4 630090, Novosibirsk, Russia Office phone +7 3832 331390 Home phone +7 3832 644892 Fax +7 3832 332598 _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From a.distler at tu-bs.de Thu Jun 9 12:52:29 2005 From: a.distler at tu-bs.de (Andreas Distler) Date: Thu Jun 9 12:52:42 2005 Subject: [GAP Forum] Solving Cubic and Quartic Equations in GAP In-Reply-To: References: <039A0DCC3D66EE4AB9AF11E119287F15CB8403@ms-afit-04.afit.edu> <200506081202.46534.a.distler@tu-bs.de> Message-ID: <200506091352.29677.a.distler@tu-bs.de> Dear John Mckay, dear GAP Forum, > What does the answer below mean??? > > "if at all possible" - for 3-ics and 4-ics it is ALWAYS possible. > > has the answerer provided an expression in radicals for ALL solvable > polynomial in Z[x]? Indeed, I have described a theoretical approach in my diploma-thesis and implemented the method in GAP (whereas KANT is also needed to use the package). While it can deal with every solvable polynomial in theory, the implementation is less practical than Bill Allombert's one: >This is quite practical, you can handle polynomial of degree 100 and >more, and it is available in PARI/GP but not in GAP. It depends primarily on the order of the galois group, which should be less than 100 in general. Best wishes, Andreas From allomber at math.u-bordeaux.fr Thu Jun 9 18:15:46 2005 From: allomber at math.u-bordeaux.fr (Bill Allombert) Date: Thu Jun 9 18:16:17 2005 Subject: [GAP Forum] IsPrime In-Reply-To: <1118302137.4699.6.camel@a4m340b.math.nsc.ru> References: <1118302137.4699.6.camel@a4m340b.math.nsc.ru> Message-ID: <20050609171546.GE11473@seventeen> On Thu, Jun 09, 2005 at 02:28:57PM +0700, Vdovin Evgenii wrote: > Dear pubbers! > > I wonder if anybody knows what algorithm is used in GAP to check whether > a given integer is prime. Does anybody know another program that can > check whether a given integer is prime? Now I'm considering a prime > p=2^44497-1 and the problem is to check if p^2-p+1 is prime. Hello Vdovin, I have checked with PARI/GP isprime() function and q=p^2-p+1 is not prime. For example, '2^(q-1) = 1 mod q' is false Cheers, Bill. From sal at dcs.st-and.ac.uk Thu Jun 9 20:54:52 2005 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Thu Jun 9 20:55:10 2005 Subject: [GAP Forum] Virus mail Message-ID: <20050609205452.580aef02@localhost.localdomain> Dear GAP Forum and others, It has been brought to our attention that some computer viruses are sending email to members of some of our mailing lists, which appear to be administrative messages of various kinds from one of our lists, and are sent to members of the lists. These messages do not come from us, and there is nothing that we can do to stop them. They usually carry virus attachments of various kinds. Some anti-spam and anti-virus tools recognise them and may attach warning labels. Do not open the attachments of these messages, or follow links to any web sites mentioned in them. Real administrative messages concerning our lists (which are rare) will come from a named individual and will NEVER carry attachments. Steve Linton -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From Frank.Luebeck at math.rwth-aachen.de Fri Jun 10 15:39:22 2005 From: Frank.Luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Fri Jun 10 15:42:03 2005 Subject: [GAP Forum] IsPrime In-Reply-To: <1118302137.4699.6.camel@a4m340b.math.nsc.ru> References: <1118302137.4699.6.camel@a4m340b.math.nsc.ru> Message-ID: <20050610143922.GF19461@math.rwth-aachen.de> On Thu, Jun 09, 2005 at 02:28:57PM +0700, Vdovin Evgenii wrote: > I wonder if anybody knows what algorithm is used in GAP to check whether > a given integer is prime. Does anybody know another program that can > check whether a given integer is prime? Now I'm considering a prime > p=2^44497-1 and the problem is to check if p^2-p+1 is prime. Dear Forum, dear Vdovin Evgenii, I have already given a hint to Vdovin that the number p^2-p+1 above is divisible by 2797. This can be found by trial division and one does not even need to expand the number p: l := 2797; pp := PowerMod(2, 44497, l)-1; (pp^2 - pp + 1) mod l; But let me add a few remarks on the current 'IsPrimeInt(n);' in GAP: This performs only tests for "probable primes", this means if the answer is 'false' then the number n is composite, but if the answer is 'true' then n still may be composite (each prime n yields the answer 'true'). But as far as I know no composite n is explicitly known for which our test yields 'true' (nevertheless, it is expected that such n exist). It is known that for 1 < n < 10^13 the test in GAP returns 'true' if and only if n is prime. A detailed description of the algorithm is in the file lib/integer.gi in the GAP distribution (search for "#F IsPrimeInt"). There exist algorithms (APR-CL, ECPP, ...) which can practically prove the primality of (random) integers with up to a few thousand digits. (If someone implemented such an algorithm in GAP we would be very interested!) The primality of the much bigger number p above (with more than 13000 digits) can be shown using its special structure (it is a "small" Mersenne prime). But such a function is not contained in the GAP library. With a small change of the GAP library (which will be put in the next update of GAP) the 'IsPrimeInt(p);' runs about 90 minutes on my machine; a demo coming with GMP, a package for fast integer arithmetic, needs 20 minutes for a Miller-Rabin test. So, testing of "probable primality" of numbers of this size is doable, but not for much bigger numbers. Best regards, Frank -- /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck@Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From Dursun.Bulutoglu at afit.edu Sun Jun 12 20:38:22 2005 From: Dursun.Bulutoglu at afit.edu (Bulutoglu Dursun A Civ AFIT/ENC) Date: Sun Jun 12 20:38:56 2005 Subject: [GAP Forum] Solving Cubic and Quartic Equations in GAP Message-ID: <039A0DCC3D66EE4AB9AF11E119287F15CB89ED@ms-afit-04.afit.edu> I recently installed Singular software package. I was wondering whether this could be done in Singular. Dursun. What does the answer below mean??? "if at all possible" - for 3-ics and 4-ics it is ALWAYS possible. has the answerer provided an expression in radicals for ALL solvable polynomial in Z[x]? If so, then let's hear about it. It is a scandal that no-one to date has done this in symbolic computation. John Mckay On Wed, 8 Jun 2005, Andreas Distler wrote: > Dear GAP Forum, > > > I was wondering whether GAP can solve cubic and quartic > > equations (in one variable) over the complex numbers. > > As far as I know, real and complex numbers are not supported by GAP. > For rational polynomials I have implemented a package containing a function to > express the roots of the polynomial by radicals if this is possible. You can > find the package under > http://www.icm.tu-bs.de/ag_algebra/software/distler/radiroot/ > > Best wishes, > Andreas Distler > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > -- But leave the wise to wrangle, and with me the quarrel of the universe let be; and, in some corner of the hubbub couched, make game of that which makes as much of thee. From marc_roeder at web.de Mon Jun 13 13:36:57 2005 From: marc_roeder at web.de (Marc Roeder) Date: Mon Jun 13 13:37:15 2005 Subject: [GAP Forum] Filter trouble Message-ID: <139044313@web.de> Dear GAP Forum, when using DeclareOperation and InstallMethod, some filters produce strange results. For example: gap> DeclareOperation("CoeffList2CyclotomicList",[IsList,IsIntegralCyclotomic]); gap> InstallMethod(CoeffList2CyclotomicList, > [IsList,IsIntegralCyclotomic], > function(list,root) > return List([1..Size(list)],i->list[i]*root^(i-1)); > end); gap> CoeffList2CyclotomicList([1,2,3],E(3)); Error, no method found!... substituting IsIntegralCyclotomic with IsCyc gives the desired result. Are there different forms of filters or did I misunderstand the concept? Thanks, Marc ______________________________________________________________ Verschicken Sie romantische, coole und witzige Bilder per SMS! Jetzt bei WEB.DE FreeMail: http://f.web.de/?mc=021193 From Dursun.Bulutoglu at afit.edu Tue Jun 14 03:02:35 2005 From: Dursun.Bulutoglu at afit.edu (Bulutoglu Dursun A Civ AFIT/ENC) Date: Tue Jun 14 03:02:59 2005 Subject: [GAP Forum] Rational exponents of indeterminates Message-ID: <039A0DCC3D66EE4AB9AF11E119287F15CB8AD0@ms-afit-04.afit.edu> Dear GAP Forum, Let x be an indeterminate over rational numbers. I was wondering if it is possible to represent x^(1/7) in GAP or in Singular. This is possible in Mathematica. Dursun. From kohl at mathematik.uni-stuttgart.de Tue Jun 14 09:43:56 2005 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Tue Jun 14 09:44:15 2005 Subject: [GAP Forum] Filter trouble In-Reply-To: <139044313@web.de> References: <139044313@web.de> Message-ID: <42AE98CC.6040509@mathematik.uni-stuttgart.de> Dear Forum, Marc Roeder wrote: > when using DeclareOperation and InstallMethod, some filters produce strange results. > For example: > > gap> DeclareOperation("CoeffList2CyclotomicList",[IsList,IsIntegralCyclotomic]); > gap> InstallMethod(CoeffList2CyclotomicList, > >> [IsList,IsIntegralCyclotomic], >> function(list,root) >> return List([1..Size(list)],i->list[i]*root^(i-1)); >>end); > > gap> CoeffList2CyclotomicList([1,2,3],E(3)); > Error, no method found!... > > substituting IsIntegralCyclotomic with IsCyc gives the desired result. > > Are there different forms of filters or did I misunderstand the concept? The point is that `IsCyc' resp. `IsCyclotomic' denotes elements of the "Category" of Cyclotomics (note that "Category" in the GAP sense means something different than in category theory -- see ?Categories), but `IsIntegralCyclotomic' is a property. Any Object "knows" from its creation on which Categories it belongs to, but whether it has a given Property is only checked when you explicitly or implicitly ask GAP for it. The point of Properties is mainly to allow quicker methods when the corresponding information about an Object is known, in particular in cases where computing the information would be even slower than the original slower method. In fact, sometimes determining whether a given Object has some given Property can be computationally very difficult or in general even algorithmically undecidable. If your Operation only makes sense for Objects which are actually Integral Cyclotomics, for instance, you have to install at least one Method requiring only a suitable Category IsCyc, and do the test for IsIntegralCyclotomic inside the Method. Hope this helps, Stefan Kohl - I would like to acknowledge hints by Steve Linton - From joachim.neubueser at math.rwth-aachen.de Tue Jun 14 11:05:08 2005 From: joachim.neubueser at math.rwth-aachen.de (Joachim Neubueser) Date: Tue Jun 14 11:10:53 2005 Subject: [GAP Forum] Solving Cubic and Quartic Equations in GAP In-Reply-To: <039A0DCC3D66EE4AB9AF11E119287F15CB89ED@ms-afit-04.afit.edu> References: <039A0DCC3D66EE4AB9AF11E119287F15CB89ED@ms-afit-04.afit.edu> Message-ID: <20050614100508.GF29461@math.rwth-aachen.de> Dear Dursun, you wrote to the GAP Forum in the context of the solution of cubic and quartic equations: > I recently installed Singular software package. > I was wondering whether this could be done in Singular. > Dursun. As you have experienced with previous questions of yours, the people of the GAP group try to be helpful with questions about GAP, however this question really does not belong into the GAP Forum. Please see http://www.gap-system.org/Contacts/Forum/forum.html for a description of the function of the GAP Forum. If you have questions as your present one on the functionality provided by other systems you should contact the developers of that system, in this case see http:/www.singular.uni-kl.de Kind regards Joachim Neubueser From marc_roeder at web.de Tue Jun 14 15:57:12 2005 From: marc_roeder at web.de (Marc Roeder) Date: Tue Jun 14 15:57:34 2005 Subject: [GAP Forum] Filter trouble Message-ID: <141529849@web.de> Dear GAP Forum, Stefan Kohl wrote: > The point is that `IsCyc' resp. `IsCyclotomic' denotes elements of > the "Category" of Cyclotomics (note that "Category" in the GAP sense > means something different than in category theory -- see ?Categories), > but `IsIntegralCyclotomic' is a property. Thank you. Is there a way to know which filters are Categories and which are Properties (something like IsCategory)? And is there a way to know which Properties of an object are stored after calculation (to use RedispatchOnCondition)? Guessing Categories seems to be a little bit difficult, as for example IS_INT(2) is true, while CategoryCollections(IS_INT)([2]) is false. Best regards, Marc _________________________________________________________________________ Mit der Gruppen-SMS von WEB.DE FreeMail k?nnen Sie eine SMS an alle Freunde gleichzeitig schicken: http://freemail.web.de/features/?mc=021179 From r_n_tsai at yahoo.com Tue Jun 14 21:58:56 2005 From: r_n_tsai at yahoo.com (R.N. Tsai) Date: Tue Jun 14 21:59:13 2005 Subject: [GAP Forum] representations of Lie algebras Message-ID: <20050614205856.50212.qmail@web33704.mail.mud.yahoo.com> I'm getting familiar with the facilities that GAP provides to work with Lie algebras. I didn't find a way to get explicit matrices for representation. Is this possible? For example : Test:=function()local algebra,basis,rep,repbasis; algebra:=SimpleLieAlgebra("A",2,Rationals);Print(" algebra = ",algebra,"\n"); basis:=ChevalleyBasis(algebra); rep:= HighestWeightModule(algebra, [ 1,1] ); repbasis:=Basis(rep);Print(" basis for rep = ",repbasis,"\n"); return repbasis; end; returns Basis( <8-dimensional left-module over Algebra( Rationals, [ v.1, v.2, v.3, v.4, v.5, v.6, v.7, v.8 ] )>, [ 1*v0, y1*v0, y2*v0, y1*y2*v0, y3*v0, y1*y3*v0, y2*y3*v0, y3^(2)*v0 ] ) how would this be converted to a matrix representation for the generators of the algebra. Thanks, r.n. --------------------------------- Discover Yahoo! Get on-the-go sports scores, stock quotes, news & more. Check it out! From degraaf at science.unitn.it Wed Jun 15 01:01:08 2005 From: degraaf at science.unitn.it (degraaf@science.unitn.it) Date: Wed Jun 15 01:01:50 2005 Subject: [GAP Forum] representations of Lie algebras Message-ID: <1118793668.42af6fc4de35f@www.unitn.it> Dear R. N. Tsai, You asked: > I didn't find a way to get explicit matrices for representation. > Is this possible? For this you can use the function "MatrixOfAction", for example gap> L:= SimpleLieAlgebra( "A", 2, Rationals ); gap> V:= HighestWeightModule( L, [1,1] ); <8-dimensional left-module over > gap> x:= Basis(L)[1]; v.1 gap> MatrixOfAction( Basis(V), x ); [ [ 0, 1, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 2, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 1 ], [ 0, 0, 0, 0, 0, 0, 0, 0 ] ] or if you would like to have a function of Lie algebra elements alone: gap> rep:= function( x ) return MatrixOfAction( Basis(V), x ); end; function( x ) ... end gap> rep( x ); [ [ 0, 1, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 2, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 1 ], [ 0, 0, 0, 0, 0, 0, 0, 0 ] ] I hope this answers your question. If not, or if you have any other questions, then please ask again. Best wishes, Willem de Graaf From r_n_tsai at yahoo.com Wed Jun 15 06:39:01 2005 From: r_n_tsai at yahoo.com (R.N. Tsai) Date: Wed Jun 15 06:39:26 2005 Subject: [GAP Forum] Re: representations of Lie algebras In-Reply-To: <1118793668.42af6fc4de35f@www.unitn.it> Message-ID: <20050615053901.80059.qmail@web33703.mail.mud.yahoo.com> Thanks Willem; this is exactly what I had in mind. I checked the representations in the tests below : I tried a few algebras and reps (Test1(3,[1,0,1]) for example or Test2(2,[1,1])); Everything looks in order except that I had to add an extra factor of 2 for things to match...maybe there's a normalization convention somewhere that I missed. Thanks again for your help. R.N. # check that the rep is a morphism Test1:=function(n,w)local L,V,Lb,Vb,M,A1,A2,B1,B2; L:=SimpleLieAlgebra("A",n,Rationals); V:= HighestWeightModule(L,w); Lb:=Basis(L); Vb:=Basis(V); M:=x->MatrixOfAction(Vb,x); for A1 in Basis(L) do for A2 in Basis(L) do B1:=M(A1*A2-A2*A1); B2:=M(A1)*M(A2)-M(A2)*M(A1); Print(" check ",B1=2*B2,"\n"); # <--- extra factor of 2 od; od; end; # check that the rep is a morphism (same as Test1, faster) Test2:=function(n,w)local L,V,Lb,Vb,Mb,B1,B2; L:=SimpleLieAlgebra("A",n,Rationals); V:= HighestWeightModule(L,w); Lb:=Basis(L); Vb:=Basis(V); Mb:=List(Lb,x->MatrixOfAction(Vb,x)); #Mb:=List(Lb,x->AdjointMatrix(Lb,x)); B1:=List(Lb,x->List(Lb,y->LinearCombination(Mb,Coefficients(Lb,x*y-y*x)))); B2:=List(Mb,x->List(Mb,y->x*y-y*x)); Print(" check ",B1=2*B2,"\n"); end; degraaf@science.unitn.it wrote: Dear R. N. Tsai, You asked: > I didn't find a way to get explicit matrices for representation. > Is this possible? For this you can use the function "MatrixOfAction", for example gap> L:= SimpleLieAlgebra( "A", 2, Rationals ); gap> V:= HighestWeightModule( L, [1,1] ); <8-dimensional left-module over > gap> x:= Basis(L)[1]; v.1 gap> MatrixOfAction( Basis(V), x ); [ [ 0, 1, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 2, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 1 ], [ 0, 0, 0, 0, 0, 0, 0, 0 ] ] or if you would like to have a function of Lie algebra elements alone: gap> rep:= function( x ) return MatrixOfAction( Basis(V), x ); end; function( x ) ... end gap> rep( x ); [ [ 0, 1, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 2, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 1 ], [ 0, 0, 0, 0, 0, 0, 0, 0 ] ] I hope this answers your question. If not, or if you have any other questions, then please ask again. Best wishes, Willem de Graaf --------------------------------- Discover Yahoo! Stay in touch with email, IM, photo sharing & more. Check it out! From jan.draisma at unibas.ch Wed Jun 15 08:54:11 2005 From: jan.draisma at unibas.ch (Jan Draisma) Date: Wed Jun 15 08:43:12 2005 Subject: [GAP Forum] Re: representations of Lie algebras In-Reply-To: <20050615053901.80059.qmail@web33703.mail.mud.yahoo.com> References: <20050615053901.80059.qmail@web33703.mail.mud.yahoo.com> Message-ID: <42AFDEA3.8010104@unibas.ch> Dear R.N. and GAP-forum, The factor 2 is explained by the fact that the operation * on a Lie algebra in GAP is already the Lie bracket: > B1:=M(A1*A2-A2*A1); So this should read M(A1*A2), and then > B2:=M(A1)*M(A2)-M(A2)*M(A1); will be zero. Best wishes, Jan From kohl at mathematik.uni-stuttgart.de Wed Jun 15 09:42:30 2005 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Wed Jun 15 09:42:42 2005 Subject: [GAP Forum] Rational exponents of indeterminates In-Reply-To: <039A0DCC3D66EE4AB9AF11E119287F15CB8AD0@ms-afit-04.afit.edu> References: <039A0DCC3D66EE4AB9AF11E119287F15CB8AD0@ms-afit-04.afit.edu> Message-ID: <42AFE9F6.5030105@mathematik.uni-stuttgart.de> Dear Forum, Bulutoglu Dursun A Civ AFIT/ENC wrote: > Let x be an indeterminate over rational numbers. I was wondering > if it is possible to represent x^(1/7) in GAP or in Singular. This is > possible in Mathematica. Short answer: No. GAP implements a polynomial ring (in fact a ring of Laurent polynomials) with countably many indeterminates. x^(1/7) is not an element of this ring, thus cannot be represented in GAP. Concerning Singular and Mathematica: Please understand that we do not give advice about computer algebra systems other than GAP. You may contact the Singular Group resp. Wolfram Research instead. Best wishes, Stefan Kohl From degraaf at science.unitn.it Wed Jun 15 09:55:26 2005 From: degraaf at science.unitn.it (degraaf@science.unitn.it) Date: Wed Jun 15 09:55:41 2005 Subject: [GAP Forum] Re: representations of Lie algebras Message-ID: <1118825726.42afecfe6e096@www.unitn.it> Dear R. N. Tsai, You wrote about a problem with a factor 2: > B1:=M(A1*A2-A2*A1); > B2:=M(A1)*M(A2)-M(A2)*M(A1); > Print(" check ",B1=2*B2,"\n"); # <--- extra factor of 2 In a structure constants Lie algebra the multiplication is simply the Lie bracket, i.e., A1*A2 = [ A1, A2 ]. So A1*A2-A2*A1 = [A1,A2]-[A2,A1] = 2*[A1,A2]. For example: gap> L:= SimpleLieAlgebra( "A", 2, Rationals ); gap> g:= Basis(L); CanonicalBasis( ) gap> g[1]*g[2]; (-1)*v.3 gap> g[2]*g[1]; v.3 That is where the factor 2 comes from. All the best, Willem de Graaf From joachim.neubueser at math.rwth-aachen.de Thu Jun 16 10:30:53 2005 From: joachim.neubueser at math.rwth-aachen.de (Joachim Neubueser) Date: Thu Jun 16 10:27:25 2005 Subject: [GAP Forum] Low Index Subgroups Process. In-Reply-To: References: Message-ID: <20050616093053.GA9106@math.rwth-aachen.de> Dear Michael Hartley, You wrote to the GAP Forum: > One thing I miss from CAYLEY (now MAGMA) is the existence of a > collection of functions that returns the low index subgroups of a > finitely presented group one by one instead of all at once. This was > particularly useful in situations where one is searching for an example > of a low index subgroup with certain properties, but returning the > complete list of subgroups up to the required index would just take far > too long. > > Well, I have hacked the source code of the LowIndexSubgroupsFpGroup > function, and created two functions > "LowIndexSubgroupsStream" and "GetNextLowIndexSubgroup". They are in > the attached file, and may be used as follows: Thank you for your letter and the proposal made in it. I agree that such extension of the functionality of LowIndex method would be useful. In an internal discussion remark on your letter Thomas Breuer came forward with an idea of some technical changes that might improve the working of your ideas within GAP. We would like to discuss this further with you. Unfortunately the promised 'attached file' did not reach us, possibly due to the mechanism of distribution of mails to the GAP Forum. Could you please send these attachments directly to my address. While, as said, we are interested in your proposal and want to get it available in GAP, please understand that it may take a little time to get down to it, since people such as Thomas have a number of projects under work. Thanks again and kind regards Joachim Neubueser PS: It should be clear that we are talking about realizing your proposal in GAP, we have nothing to do with the development of Magma. From thomas.breuer at math.rwth-aachen.de Fri Jun 17 17:16:37 2005 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Fri Jun 17 17:15:13 2005 Subject: [GAP Forum] Filter trouble Message-ID: <20050617161637.EF7F3776D8@altair.math.rwth-aachen.de> Dear GAP Forum, Marc Roeder had started a discussion about different kinds of filters, and how to distinguish them. Stefan Kohl has already explained the difference between properties and categories, and then Marc asked the following. > Is there a way to know which filters are Categories and which are Pro= > perties (something like IsCategory)? And is there a way to know which= > Properties of an object are stored after calculation (to use Redispa= > tchOnCondition)? > > Guessing Categories seems to be a little bit difficult, as for examp= > le > IS_INT(2) is true, while CategoryCollections(IS_INT)([2]) is false. Let us go one step back. Each filter in GAP is either a simple filter or a meet of filters. For example, `IsInt' and `IsPosRat' are simple filters, and `IsPosInt' is defined as their meet `IsInt and IsPosRat'. Each *simple filter* is of one of the following kinds. 1. property: Such a filter is an operation, the filter value can be computed. The (unary) methods of this operation must return `true' or `false', and the return value is stored in the argument, except if the argument is of a basic data type such as cyclotomic (including rationals and integers), finite field element, permutation, or internally represented list --the latter with a few exceptions. Examples of properties are `IsFinite', `IsAbelian', `IsSSortedList'. 2. attribute tester: Such a filter is associated to an operation that has been created via `DeclareAttribute', in the sense that the value is `true' if and only if a return value for (a unary method of) this operation is stored in the argument. Currently, attribute values are stored in objects in the filter `IsAttributeStoringRep'. Examples of attribute testers are `HasSize', `HasCentre', `HasDerivedSubgroup'. 2.' property tester: Such a filter is similar to an attribute tester, but the associated operation is a property. So property testers can return `true' also if the argument is not in the filter `IsAttributeStoringRep'. Examples of property testers are `HasIsFinite', `HasIsAbelian', `HasIsSSortedList'. 3. category or representation: These filters are not associated to operations, their values cannot be computed but are set upon creation of an object and should not be changed later, such that for a filter of this kind, one can rely on the fact that if the value is `true' then it was `true' already when the object in question was created. The distinction between representation and category is intended to express dependency on or independence of the way how the object is stored internally. For example, `IsPositionalObjectRep', `IsComponentObjectRep', and `IsInternalRep' are filters of the representation kind; the idea is that such filters are used in low level methods, and that higher level methods can be implemented without referring to these filters. (To be honest, this distinction is not used in a clean way throughout the system.) Examples of categories are `IsInt', `IsRat', `IsPerm', `IsFFE', and filters expressing algebraic structures, such as `IsMagma', `IsMagmaWithOne', `IsAdditiveMagma'. When one calls such a filter, one can be sure that no computation is triggered. For example, whenever a quotient of two integers is formed, the result is clearly in the filter `IsRat', but the system also stores the value of `IsInt', i.e., GAP does not support ``unevaluated rationals'' for which the `IsInt' value is computed on demand and then stored. 4. other filters: Some filters do not belong to the above kinds, they are not associated to operations but they are intended to be set (or even reset) by the user or by functions also after the creation of objects. Examples are `IsQuickPositionList', `CanEasilyTestMembership', `IsHandledByNiceBasis'. (The functions `KnownPropertiesOfObject', `KnownTruePropertiesOfObject', `KnownAttributesOfObject', `CategoriesOfObject', and `RepresentationsOfObject' give an overview of the properties, attributes, categories, and representations of a GAP object, see the GAP Reference Manual.) Each *meet of filters* can involve computable simple filters (properties, attribute and property testers) and not computable simple filters (categories, representations, other filters). When one calls a meet of two filters then the two filters from which the meet was formed are evaluated (if necessary). So a meet of filters is computable only if at least one computable simple filter is involved. Coming to Marc's question whether there is an easy way to find out whether a filter is a category or a property, the interesting point seems to be whether a filter is computable or not. I am not aware of such a function in the current distribution, but it can be implemented as follows. IsComputableFilter:= filt -> IsFilter( filt ) and FLAG2_FILTER( filt ) <> 0 and ( IsInt( FLAG1_FILTER( filt ) ) or IsComputableFilter( FLAG1_FILTER( filt ) ) or IsComputableFilter( FLAG2_FILTER( filt ) ) ); Note that this function regards also attribute and property testers as computable, although one cannot install methods for computing them. gap> IsComputableFilter( IsFinite ); true gap> IsComputableFilter( HasSize ); true gap> IsComputableFilter( HasIsFinite ); true gap> IsComputableFilter( IsPositionalObjectRep ); false gap> IsComputableFilter( IsInt ); false gap> IsComputableFilter( IsQuickPositionList ); false gap> IsComputableFilter( IsInt and IsPosRat ); false gap> IsComputableFilter( IsMagma ); false gap> IsComputableFilter( IsMagma and IsFinite ); true Marc mentioned also that `CategoryCollections( IsInt )' returns `false' for the list `[ 2 ]' although this list is a collection and consists only of integers. The point is that `CategoryCollections( IsInt )' is not a meaningful filter. This can be explained as follows. In addition to the filter values that are stored in the type of an object, GAP stores one more bit of information in the type that describes a partition of all GAP objects into so-called families. Whenever a category is associated to a family F in the sense that each object in F automatically lies in this category then it makes sense to form the collections category: Each object in the collections family of F automatically lies in this collections category. This is used for example in the case of permutations, the category `IsPerm' is `true' for each object in `PermutationsFamily', and `IsPermCollection' is `true' for each permutation group and for each dense list of permutations. The same holds for cyclotomics, which form the family `CyclotomicsFamily', or for finite field elements in a given characteristic. However, this does not hold for `IsInt' or `IsRat' or for a possible filter that might describe elements in a finite prime field. As stated above, the family information is not hierarchical but describes just a partition of objects. Therefore, a list of integers or rationals in GAP does not store in its type the information that it is a list that consists only of integers or rationals, respectively. All the best, Thomas From r_n_tsai at yahoo.com Fri Jun 17 21:08:44 2005 From: r_n_tsai at yahoo.com (R.N. Tsai) Date: Fri Jun 17 21:09:24 2005 Subject: [GAP Forum] simple Lie algebra questions Message-ID: <20050617200844.40246.qmail@web33703.mail.mud.yahoo.com> I have two further question on simple Lie algebras : (1) How do you get all the weights of a representation; I found the function that provides the dominant weights, but I'd like to get an explicit list of all. The total number of such weights (including multiplicity) would be the dimension of the rep and their ordering is hopefully related to the ordering of the basis vectors of the rep. (2) "BilinearFormMat" returns a matrix that has the inner product of the roots for example : L:=SimpleLieAlgebra("F",4,Rationals); R:=RootSystem(L); C:=CartanMatrix(R); K:=BilinearFormMat(R); PrintArray(C); [ [ 2, 0, -1, 0 ], [ 0, 2, 0, -1 ], [ -1, 0, 2, -1 ], [ 0, -1, -2, 2 ] ] cartan matrix looks familar PrintArray(K); [ [ 1/18, 0, -1/36, 0 ], [ 0, 1/9, 0, -1/18 ], [ -1/36, 0, 1/18, -1/18 ], [ 0, -1/18, -1/18, 1/9 ] ] this doesn't look too familiar, but PrintArray(18*K); [ [ 1, 0, -1/2, 0 ], [ 0, 2, 0, -1 ], [ -1/2, 0, 1, -1 ], [ 0, -1, -1, 2 ] ] with the factor 18 this is a more familiar normalization of the root lengths (other algebras have different factors). There's probably a good reason for normalizing the root lengths this way; I'd like to know that if possible. Thanks, R.N. __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From degraaf at science.unitn.it Mon Jun 20 04:38:24 2005 From: degraaf at science.unitn.it (degraaf@science.unitn.it) Date: Mon Jun 20 04:38:47 2005 Subject: [GAP Forum] Re: simple Lie algebra questions Message-ID: <1119238704.42b63a3024351@www.unitn.it> Dear R. N. Tsai, You asked: > (1) How do you get all the weights of a representation; I found the function that > provides the dominant weights, but I'd like to get an explicit list of all. > The total number of such weights (including multiplicity) would be the dimension > of the rep and their ordering is hopefully related to the ordering of the basis > vectors of the rep. It is possible to find the other weights of an irreducible highest weight representation by taking the orbit of the dominant weights under the action of the Weyl group. GAP contains a function for computing such an orbit, called WeylOrbitIterator. For example gap> L:= SimpleLieAlgebra("A",2,Rationals); gap> R:= RootSystem( L ); gap> dc:= DominantCharacter( L, [2,2] ); [ [ [ 2, 2 ], [ 0, 3 ], [ 3, 0 ], [ 1, 1 ], [ 0, 0 ] ], [ 1, 1, 1, 2, 3 ] ] gap> W:= WeylGroup( R ); Group([ [ [ -1, 1 ], [ 0, 1 ] ], [ [ 1, 0 ], [ 1, -1 ] ] ]) gap> it:= WeylOrbitIterator( W, [0,3] ); gap> while not IsDoneIterator( it ) do Print( NextIterator( it ), "\n" ); od; [ 0, 3 ] [ -3, 0 ] [ 3, -3 ] this lists all the weights in the orbit of the weight [0,3]. > (2) "BilinearFormMat" returns a matrix that has the inner product of the roots > for example : > L:=SimpleLieAlgebra("F",4,Rationals); > R:=RootSystem(L); > C:=CartanMatrix(R); > K:=BilinearFormMat(R); > PrintArray(C); > [ [ 2, 0, -1, 0 ], > [ 0, 2, 0, -1 ], > [ -1, 0, 2, -1 ], > [ 0, -1, -2, 2 ] ] > cartan matrix looks familar > PrintArray(K); > [ [ 1/18, 0, -1/36, 0 ], > [ 0, 1/9, 0, -1/18 ], > [ -1/36, 0, 1/18, -1/18 ], > [ 0, -1/18, -1/18, 1/9 ] ] > this doesn't look too familiar, but > PrintArray(18*K); > [ [ 1, 0, -1/2, 0 ], > [ 0, 2, 0, -1 ], > [ -1/2, 0, 1, -1 ], > [ 0, -1, -1, 2 ] ] > with the factor 18 this is a more familiar normalization of the root >lengths > (other algebras have different factors). There's probably a good reason for > normalizing the root lengths this way; I'd like to know that if possible. > As far as I know there is no particular reason for choosing this normalisation. The system just returns a matrix of the bilinear form, then the user can normalise it in the way he/she likes. Best wishes, Willem From costanti at science.unitn.it Mon Jun 20 15:42:06 2005 From: costanti at science.unitn.it (Marco Costantini) Date: Mon Jun 20 15:42:45 2005 Subject: [GAP Forum] Groebner Basis Message-ID: <200506201642.06544.costanti@science.unitn.it> Dear Bulutoglu Dursun and GAP Forum, the Groebner Basis that you are asking for (see below) can be calculated using GAP, in the following way. # First of all, choose a coefficient field F: F := Rationals; # F := GaloisField( 3 ); # another possibility # Then construct a field C over F, that contains your parameters n, N, M, R: C := FunctionField( F, ["n", "N", "M", "R"] ); n := IndeterminatesOfFunctionField(C)[1]; N := IndeterminatesOfFunctionField(C)[2]; M := IndeterminatesOfFunctionField(C)[3]; R := IndeterminatesOfFunctionField(C)[4]; # The polynomial ring PR over C has has x, y, z as "indeterminates", # and n, N, M, R as "parameters". PR := PolynomialRing( C, [ "x", "y", "z" ]); # GAP will issue a warning at this point, about creating polynomial rings # over polynomials, (once for each variable) that should be ignored. This is # one of the few contexts in which one really wants to do this. # However, one should not expect wonders in performance when working over # function fields with Gap (although in this example works well). x := IndeterminatesOfPolynomialRing(PR)[1]; y := IndeterminatesOfPolynomialRing(PR)[2]; z := IndeterminatesOfPolynomialRing(PR)[3]; I := Ideal( PR, [x+y+(n-2)*z-N, x^2+y^2+(n-2)*z^2-M, x^3+y^3+(n-2)*z^3-R] ); ord := MonomialLexOrdering(x,y,z); GroebnerBasis( I, ord ); In the example above, it is of course possible to define first n, N, M, R with the command "Indeterminate" and thereafter the field C. The same for x, y, z and PR. However, calculating Groebner bases is not the strongest point of Gap: if you need to perform heavier calculations another specialized system may be useful. A computer algebra system well suited to compute Groebner bases is Singular (see http://www.singular.uni-kl.de/ , also for more help about Singular, ask the people of Singular and not the Gap forum). The Groebner basis that you are asking for can be calculated using Singular, in the following way: > ring r = (0, N, n, M, R), (x, y, z), lp; > ideal I=[x+y+(n-2)*z-N, x^2+y^2+(n-2)*z^2-M, x^3+y^3+(n-2)*z^3-R]; > groebner(I); _[1]=(n3-3n2+2n)*z3+(-3Nn2+9Nn-6N)*z2+(3N2n-6N2-3nM+6M)*z+(-N3+3NM-2R) _[2]=2*y2+(2n-4)*yz+(-2N)*y+(n2-3n+2)*z2+(-2Nn+4N)*z+(N2-M) _[3]=x+y+(n-2)*z+(-N) Here _[1], _[3], _[3] are the generators and, in the notation used by Singular, the '^' and some '*' are omitted (so, for instance, '3Nn2' means '3*N*n^2'). See the manual of Singular for more details. The functionality provided by Singular can be used from within GAP using an interface provided by the GAP package "singular", see http://www.gap-system.org/Packages/singular.html . Note however, that the polynomial rings whose coefficients ring is a function field (like the PR of the example above) are not yet supported by the interface; probably they will be supported in the fortcoming release of the package "singular". Best regards, Marco Costantini (using also some suggestions by Steve Linton and Alexander Hulpke) On Sunday 05 June 2005 16:42, Bulutoglu Dursun A Civ AFIT/ENC wrote: > Dear Gap Forum, > I am trying to compute the Groebner basis for the ideal > I=[x+y+(n-2)*z-N, x^2+y^2+(n-2)*z^2-M, x^3+y^3+(n-2)*z^3-R] where n, N, > M, R are parameters for the coefficients of the generating polynomials > but not indeterminates. x,y,z are the indeterminates. > I would like to compute the Groebner basis of the Ideal I with respect > to the monomial ordering [x,y,z] > > If I type GroebnerBasis(I,MonomialLexOrdering(x,y,z)) I get an error: > Undefined variables [N,n] where I defined my parameters N, n, M, R as > indeterminates. > > I was wondering if there is a way to define the parameters for the > coefficients of the generating polynomials but not as indeterminates. > > I would like to get a set of polynomials whose coefficients are > polynomials of N,n M,R with indeterminates x,y,z and form a Groebner > basis for I. From rcone at vt.edu Tue Jun 21 17:04:20 2005 From: rcone at vt.edu (rcone) Date: Tue Jun 21 17:05:46 2005 Subject: [GAP Forum] elements of free groups Message-ID: <42B96164@zathras> GAP, Is there a way to find the number of generators of a free group, based on a word from that free group? I.E., is there some way to "talk about" the group of origin of an (associative) word in GAP? Better, can I determine the number of generators based solely on the GAP object "g" below?: gap> G := FreeGroup("a","b"); gap> a := G.1; a gap> b := G.2; b gap> f := a*b*b*a*b; a*b^2*a*b gap> g := a*a; a^2 Thanks, Randy Cone VT From hulpke at mac.com Wed Jun 22 15:41:01 2005 From: hulpke at mac.com (Alexander Hulpke) Date: Thu Jun 23 10:25:35 2005 Subject: [GAP Forum] Re: Free group from generators References: <3F89890B-586A-474E-903A-05306720B0B3@frii.com> Message-ID: <174A9AE5-0FE2-4FAE-AA5F-A5F08A75BB9F@mac.com> Dear GAP Forum, Randy Cone asked: > Is there a way to find the number of generators of a free group, based on a > word from that free group? I.E., is there some way to "talk about" the group > of origin of an (associative) word in GAP? Yes. You can get the group from the family: gap> f:=FreeGroup(2); gap> a:=f.1; f1 gap> FamilyObj(a)!.freeGroup; > Better, can I determine the number of generators based solely on the GAP > object "g" below?: You can ask for the Length of the GeneratorsOfGroup of the free group you got this way. Best, Alexander Hulpke From freundt at math.TU-Berlin.DE Fri Jun 24 19:46:38 2005 From: freundt at math.TU-Berlin.DE (Sebastian Freundt) Date: Fri Jun 24 19:48:11 2005 Subject: [GAP Forum] GAP Interface to the KANT Number Field Database Message-ID: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Dear GAP Forum, the KANT Group Berlin is pleased to announce an interface to the KANT Number Field Database via GAP. The necessary snippet works out of the box provided curl (see http://curl.haxx.se/) is properly installed and web access is granted. The snippet itself is located at http://www.math.tu-berlin.de/~kant/download/kantdb.g The main intrinsic is: NumberFieldQuery( query) -> L A query for example looks like: NumberFieldQuery("deg 2 class 5"); and means retrieve number fields of degree 2 with class number 5. Unfortunately, GAP does not support reals nor floats, so we had to purge the regulator information in the final output. Nonetheless you can include criteria for regulators in the query, like: NumberFieldQuery("deg 2 class 5 reg > 8.3"); Comments are welcome. Greetings, Sebastian Freundt Sebastian Pauli -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux) iD8DBQFCvFUX9zZ7AtDFZIYRAj3YAJ9BHnC4JtYNrwvXprKr1+qRTtNQ1ACgkn/9 Da50lwJQ234pu5uO29pFyQ0= =IgRS -----END PGP SIGNATURE----- From ariel at fismat.umich.mx Sun Jun 26 06:28:43 2005 From: ariel at fismat.umich.mx (Arie Molina Rueda) Date: Sun Jun 26 06:29:36 2005 Subject: [GAP Forum] Freeing memory in gap Message-ID: <42BE3D0B.9090903@fismat.umich.mx> My Situation: ------------ Im working in a problem involving in calculating _A LOT_ of tables of marks, my problem is that GAP keeps stoping, telling me that my memory assingned to GAP ran down. The algorithm giving me trouble is very simple: For every SimpleGroup(i,j){ -> Calculate ToM -> A := Uncompress ToM -> dim := Calculate Dimension of A -> Save dim,i and j to file, } I assume GAP is keeping in memory those big arrays and thus running out of memory. My Question: -----------. Is there a way to free memory in GAP? or to avoid GAP keeping those big things in memory? From s.delossantos at amena.com Sun Jun 26 11:32:55 2005 From: s.delossantos at amena.com (Sergio De Los Santos) Date: Sun Jun 26 11:37:33 2005 Subject: [GAP Forum] First VisualGUAVA release Message-ID: As I indicated months ago: http://mail.gap-system.org/pipermail/forum/2005/000348.html my intention was to build an interface for GUAVA. Right now it is just finished. I'm proud to announce the release of VisualGUAVA, a graphical interface for GUAVA. VisualGUAVA is my "end of degree project" and is intended to make the use of GUAVA and even GAP, much more confortable, with grids, an easy database with functions and much more. VisualGUAVA is programmed in VisualBasic, sorry for hard linux users. I have not tried to run it on wine or any other way to port it to Linux. I hope someone could tell me if it is possible. VisualGUAVA is completely in spanish, and has to be recompiled to change it. I will work on it in the future. VisualGUAVA is specifically intended to be used as a tool for college students who use GUAVA for subjects in relation with codification of information, but can be used for anyone who wants to have a better experience with GUAVA or GAP. Fist release is numbered as 0.6.2, wich indicates it is not considered as stable version yet. It is quite possible it has lots of bugs, and maybe some changes has to be made about "ease of use". I will work on it and try to assume every suggestion indicated or error found. VisualGUAVA is (so far) under Creative Commons License.... absolutely free of charge, but no open source (so far) just because code is a little mess yet, and not well commented. For anyone interested (can understand spanish or not, the program is quite intuitive) you can download it from http://visualguava.tk (web still under construction). Please enjoy it and make any suggestions you wish, is the only way to improve the program. As well, anyone who wants to contribute with some of his/her time translating help files is welcome. -- Sergio de los Santos. From stebla at ntlworld.com Mon Jun 27 12:03:10 2005 From: stebla at ntlworld.com (Stephen Blake) Date: Mon Jun 27 16:50:53 2005 Subject: [GAP Forum] Advice on programming an algebra with two fields in GAP Message-ID: <1119870189.2853.5.camel@P3.LAB> Dear GAP Forum, I would like to implement an algebra of projective geometry in GAP, and I need some advice on how to implement the field. The algebra is essentially Grassmann algebra. [The section entitled "A. N. Whitehead's geometric algebra" on my web-pages contains much more information on this stuff.] I'll illustrate the problem using the algebra of the projective plane. Take three reference points (generators) for the plane as a,b,c. A basis for the algebra consists of the following elements: a, b, c, ab, ac, bc, abc Physically, ab=-ba is the line through the pair of points a, b. The line ab is the entire line, not just the segment between the two points. An arbitrary point p in the projective plane is made by taking a linear combination of the reference points e.g. p=2a-3b+7c. In projective geometry an overall numerical factor multiplying the subspace has no physical significance so p and 4p (say) represent the same point in space. The basis element abc represents the entire projective plane. Because of anti-commutativity of the pairs of points (ab=-ba so aa=0) all the elements of grade 3 represent the entire projective plane modulo an unimportant weight. Thus pab=(2a-3b+7c)ab=2aab-3bab+7cab=0+0+7abc=7abc. Since all the grade 3 products of points like pqr are proportional to abc, then the products pqr behave like numbers and it is tempting to set abc=1. However, this is not quite correct because according to Klein's Erlangen Programme, the group for projective geometry is the general linear group. If we transform points as p->f(p) where f is an element of the general linear group (in my way of thinking operators act on things to their right) then f(abc)=det(f)abc whilst numbers transform as scalars f(2)=2 (say). I call the numbers like abc "pseudonumbers" to remind myself that they don't transform as scalars. Now these pseudonumbers can weight the elements of the algebra in the same way as the field of scalar numbers. For example, the product of a pair of lines gives the point at the intersection of the lines, ab.ac=-(abc)a and the resultant point a is weighted by a pseudonumber. So, two fields appear, the field of (scalar) numbers and the field of pseudonumbers. I've implemented this algebra as a neat way of doing computational geometry in the scientific interpreters Scilab and Yorick. I got around the problem of the two fields by the grubby fix of simply assuming abc=1. However, I want to use GAP to investigate some physics-based extensions of the algebra and I would like to handle the two kinds of fields properly in my GAP implementation without the grubby fix abc=1. [The algebra I've been illustrating is basically the same as the one in the paper "On the Exterior Calculus of Invariant Theory" by Barnabei, Brini and Rota, Journal of Algebra 96, 120-160 (1985). The BBR paper ignores the problem of the fields of numbers and pseudonumbers by restricting the group of transformations to the special linear group - the group of linear transformations with unit determinant; when det(f)=1 numbers and pseudonumbers are indistinguishable. However, the algebra is really an algebra of projective geometry so the group should be the general linear group.] Yours sincerely Stephen Blake http://homepage.ntlworld.com/stebla From wdj at usna.edu Tue Jun 28 13:42:45 2005 From: wdj at usna.edu (David Joyner) Date: Tue Jun 28 13:47:10 2005 Subject: [GAP Forum] Re: [GAP Support] Kindly register my name and provide help on a problem In-Reply-To: <20050624101638.18843.qmail@web54503.mail.yahoo.com> References: <20050624101638.18843.qmail@web54503.mail.yahoo.com> Message-ID: <42C145C5.5030409@usna.edu> babusrinivas Kedukodi wrote: >Sir, > >I have downloaded GAP4 .I am happy to inform you that >it is working. Kindly provide help on the following >problem. > >I have downloaded the vim, emacs/xemacs software. I >wish to know how to get the editor support in GAP 4. I >tried the procedure given in the manuals but somehow >it does not work. I have windows xp OS on my computer. > > >Kindly provide help on this. > You should have received a separate email regarding registration. About your emacs question: GAP has excellent command line editing features (see http://www.gap-system.org/Manuals//doc/htm/ref/CHAP006.htm#SECT008 and http://www.gap-system.org/Overview/interface.html for example). However, for emacs lovers, please see the following web pages for some hints: http://www.gap-system.org/Manuals//doc/htm/ref/CHAP006.htm#SECT010 and http://cadigweb.ew.usna.edu/%7Ewdj/gap/gap_emacs.html . Hope this helps. - David Joyner > >Thanking you, > >KEDUKODI BABUSHRI SRINIVAS >Deptt. Of Mathematics, >Manipal Institute of Technology, Manipal, >Karnataka-India. >E-mail: kbsrinivas77@yahoo.com > > > > >____________________________________________________ >Yahoo! Sports >Rekindle the Rivalries. Sign up for Fantasy Football >http://football.fantasysports.yahoo.com > >_______________________________________________ >Support mailing list >Support@gap-system.org >http://mail.gap-system.org/mailman/listinfo/support > From wdj at usna.edu Tue Jun 28 14:02:12 2005 From: wdj at usna.edu (David Joyner) Date: Tue Jun 28 14:05:19 2005 Subject: [GAP Forum] First VisualGUAVA release In-Reply-To: References: Message-ID: <42C14A54.2090908@usna.edu> Dear Sergio De Los Santos: Very nice! I am a "hard Linux user", so can't try it out yet but I hope to one day. Currently it does not seem to work under wine. Thanks again for your work with GUAVA. I've added a link to it from the GUAVA web page http://cadigweb.ew.usna.edu/~wdj/gap/GUAVA/ I hope you will release the source code one day... - David Joyner +++++++++++++++++++++++++++++++++++++++++ Sergio De Los Santos wrote: > As I indicated months ago: > > http://mail.gap-system.org/pipermail/forum/2005/000348.html > > my intention was to build an interface for GUAVA. Right now it is > just finished. I'm proud to announce the release of VisualGUAVA, a > graphical interface for GUAVA. > > VisualGUAVA is my "end of degree project" and is intended to make the > use of GUAVA and even GAP, much more confortable, with grids, an easy > database with functions and much more. > > VisualGUAVA is programmed in VisualBasic, sorry for hard linux users. > I have not tried to run it on wine or any other way to port it to > Linux. I hope someone could tell me if it is possible. > > VisualGUAVA is completely in spanish, and has to be recompiled to > change it. I will work on it in the future. > > VisualGUAVA is specifically intended to be used as a tool for college > students who use GUAVA for subjects in relation with codification of > information, but can be used for anyone who wants to have a better > experience with GUAVA or GAP. > > Fist release is numbered as 0.6.2, wich indicates it is not considered > as stable version yet. It is quite possible it has lots of bugs, and > maybe some changes has to be made about "ease of use". I will work on > it and try to assume every suggestion indicated or error found. > > VisualGUAVA is (so far) under Creative Commons License.... absolutely > free of charge, but no open source (so far) just because code is a > little mess yet, and not well commented. > > For anyone interested (can understand spanish or not, the program is > quite intuitive) you can download it from http://visualguava.tk (web > still under construction). > > Please enjoy it and make any suggestions you wish, is the only way to > improve the program. As well, anyone who wants to contribute with some > of his/her time translating help files is welcome. > From r_n_tsai at yahoo.com Wed Jun 29 08:58:15 2005 From: r_n_tsai at yahoo.com (R.N. Tsai) Date: Wed Jun 29 08:59:59 2005 Subject: [GAP Forum] Advice on programming an algebra with two fields in GAP In-Reply-To: <1119870189.2853.5.camel@P3.LAB> Message-ID: <20050629075815.97566.qmail@web33701.mail.mud.yahoo.com> Dear Stephen and GAP forum : I don't think this answers your question directly, but a while ago I looked at similar calculations involving the intersections of planes,lines,points,... in homogeneous coordinates. I used more of a "tensor based" setting than your algebra approach. I'm including a small test program that shows some sample calculations. It may not help much with what you're doing, but here it is anyway. Good luck. R.N. Test:=function()local n,F,G,P1,P2,P3,E1,E2,L1,g,i,p; n:=4; F:=Integers; G:=Elements(SymmetricGroup(n)); #get 3 random points P1:=List([1..n],x->Random(F));Print("random point #1 = ",P1,"\n"); P2:=List([1..n],x->Random(F));Print("random point #2 = ",P2,"\n"); P3:=List([1..n],x->Random(F));Print("random point #3 = ",P3,"\n"); #calculate plane conatining points P1,P2,P3; e_{ijkl} is levi-civita permutation symbol Print("plane containing P1,P2,P3 : E1_a = P1^i P2^j P3^k e_{ijka} \n"); E1:=List([1..n],x->Zero(F)); for g in G do for i in [1..n] do p:=Permuted([1..n],g); E1[p[4]]:=E1[p[4]]+P1[p[1]]*P2[p[2]]*P3[p[3]]*SignPerm(g); od; od; Print("E1 = ",E1,"\n"); Print("check P1 in E1 : P1^i E_i = 0 ",Sum([1..n],i->E1[i]*P1[i])=Zero(F),"\n"); Print("check P2 in E1 : P2^i E_i = 0 ",Sum([1..n],i->E1[i]*P2[i])=Zero(F),"\n"); Print("check P3 in E1 : P3^i E_i = 0 ",Sum([1..n],i->E1[i]*P3[i])=Zero(F),"\n"); #calculate line conatining points P1,P2 Print("line containing P1,P2 : L1_{ab} = P1^i P2^j e_{ijab} \n"); L1:=NullMat(n,n,F); for g in G do for i in [1..n] do p:=Permuted([1..n],g); L1[p[3]][p[4]]:=L1[p[3]][p[4]]+P1[p[1]]*P2[p[2]]*SignPerm(g); od; od; Print("L1 = \n");PrintArray(L1); #calculate plane conaining line L1 and point P3 Print("plane containing L1,P3 : E2_a = P3^i L1_{ia} \n"); E2:=List([1..n],a->Sum([1..n],i->P3[i]*L1[i][a])); Print("E2 = ",E2,"\n"); Print("check E1=E2 ",NormedRowVector(E1)=NormedRowVector(E2),"\n"); end; __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From stebla at ntlworld.com Wed Jun 29 21:16:31 2005 From: stebla at ntlworld.com (Stephen Blake) Date: Wed Jun 29 21:14:40 2005 Subject: [GAP Forum] Re: Advice on programming an algebra with two fields in GAP Message-ID: <1120076190.2852.10.camel@P3.LAB> Dear R.N. Tsai and GAP forum, Since asking the question about what to do about the fact that an algebra of projective geometry - strictly speaking - needs a field of scalar numbers and also a field of pseudonumbers numbers that transform as f(c)=det(f)c where f is an element of the general linear group, I've implemented the algebra in GAP. The GAP program is at http://homepage.ntlworld.com/stebla/programs/gap/Whitehead.g and here follows a log of how to repeat R.N. Tsai's tensor-based example. I don't know how to handle the two fields so I just assumed that the unit pseudonumber (for n=4) a1a2a3a4=1. gap> Read("Whitehead.g"); gap> n;#The program is set up for 3-d projective space 4 gap> WA;#GAP understands Whitehead's algebra gap> b;#We have a basis for the algebra [ 1, a1, a2, a3, a4, a1a2, a1a3, a1a4, a2a3, a2a4, a3a4, a1a2a3, a1a2a4, a1a3a4, a2a3a4 ] gap> a1:=b[2];a2:=b[3];a3:=b[4];a4:=b[5];#a1,...,a4 are four reference points a1 a2 a3 a4 gap> p1:=a1-4*a2+a3+2*a4;#R.N. Tsai's example points a1+(-4)*a2+a3+(2)*a4 gap> p2:=-3*a1+2*a2+5*a3+a4; (-3)*a1+(2)*a2+(5)*a3+a4 gap> p3:=-2*a2+4*a3+3*a4; (-2)*a2+(4)*a3+(3)*a4 gap> E1:=p1*p2*p3;#Plane through points p1,p2,p3 (-24)*a1a2a3+(-16)*a1a2a4+(-4)*a1a3a4+(-16)*a2a3a4 gap> p1*E1=Zero(WA);#Check p1 is in E1 true gap> p2*E1=Zero(WA);#Check p2 is in E1 true gap> p3*E1=Zero(WA);#Check p3 is in E1 true gap> L1:=p1*p2;#Line containing p1,p2 (-10)*a1a2+(8)*a1a3+(7)*a1a4+(-22)*a2a3+(-8)*a2a4+(-9)*a3a4 gap> E2:=L1*p3;#Plane containing L1,p3 (-24)*a1a2a3+(-16)*a1a2a4+(-4)*a1a3a4+(-16)*a2a3a4 gap> E1=E2;#Check planes are the same true gap> c:=List([1..n],i->Random(Rationals)); [ -1, -1, 4, -1/2 ] gap> p4:=c[1]*a1+c[2]*a2+c[3]*a3+c[4]*a4;#Make another random point (-1)*a1+(-1)*a2+(4)*a3+(-1/2)*a4 gap> c:=List([1..n],i->Random(Rationals)); [ -1, 3/2, 4/5, -2/3 ] gap> p5:=c[1]*a1+c[2]*a2+c[3]*a3+c[4]*a4;#Make yet another random point (-1)*a1+(3/2)*a2+(4/5)*a3+(-2/3)*a4 gap> L2:=p4*p5;#Line through the new points (-5/2)*a1a2+(16/5)*a1a3+(1/6)*a1a4+(-34/5)*a2a3+(17/12)*a2a4+(-34/15)*a3a4 gap> p6:=L2*E1;#Intersection of the line on the first plane (286/5)*a1+(-514/5)*a2+(-24)*a3+(589/15)*a4 gap> p6*E1=Zero(WA);#Check that the intersection point is in fact on the plane true gap> p6*L2=Zero(WA);#Check that the intersection point is in fact on the line true Yours sincerely Stephen Blake http://homepage.ntlworld.com/stebla From jjoao at netcabo.pt Thu Jun 30 20:23:45 2005 From: jjoao at netcabo.pt (Jose Joao Morais) Date: Thu Jun 30 20:24:00 2005 Subject: [GAP Forum] Required filters for an operation Message-ID: <1120159425.3745.157.camel@localhost> Dear forum, I would like to ask how can I find the required filters for the arguments of an operation, namely "+", SUM? Thank you very much, Jose Morais From jjoao at netcabo.pt Thu Jun 30 21:48:55 2005 From: jjoao at netcabo.pt (Jose Joao Morais) Date: Thu Jun 30 21:49:58 2005 Subject: [GAP Forum] Required filters for an operation In-Reply-To: <1120159425.3745.157.camel@localhost> References: <1120159425.3745.157.camel@localhost> Message-ID: <1120164535.3745.159.camel@localhost> On Thu, 2005-06-30 at 20:23 +0100, Jose Joao Morais wrote: > Dear forum, > > I would like to ask how can I find the required filters for the > arguments of an operation, namely "+", SUM? Thank you, I've already solved my problem. Jose From allomber at math.u-bordeaux.fr Sat Jul 2 21:45:07 2005 From: allomber at math.u-bordeaux.fr (Bill Allombert) Date: Sat Jul 2 21:45:59 2005 Subject: [GAP Forum] New GAP Debian packages available Message-ID: <20050702204507.GA13983@seventeen> Dear GAP Forum, There is some news about the GAP Debian packages: 1) Debian 3.1 has been released last month with packages for GAP 4r4p4. This covers the basic GAP components including the ctbllib ant tomlib GAP packages. 2) I have just uploaded packages for GAP 4r4p5 to Debian/unstable. Cheers, Bill. From larryw at math.ufl.edu Mon Jul 4 18:34:51 2005 From: larryw at math.ufl.edu (Larry Wilson) Date: Mon Jul 4 18:36:00 2005 Subject: [GAP Forum] quotients in polynomial rings Message-ID: Perhaps this question has a very simple answer, but I have not been able to figure it out and would love to have some guidance. I would like to be able to do something like work in Z_4[x]/(x^8-1). I thought I was on the right track with: GAP4, Version: 4.4.2 of 18-Mar-2004, sparc-sun-solaris2.8-cc gap> A := FreeAlgebraWithOne(Integers, 1);; gap> x := GeneratorsOfAlgebra(A)[2]; (1)*x.1 gap> I := Ideal(A, [x^8-1*x^0, 4*x^0]); , (2 generators)> gap> hom := NaturalHomomorphismByIdeal(A, I); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `GeneratorsOfLeftOperatorRingWithOne' on 1 arguments called from GeneratorsOfAlgebraWithOne( image ) called from ( ) called from read-eval-loop Any help would be much appreciated, Larry From kian_moto at yahoo.com Tue Jul 5 08:14:50 2005 From: kian_moto at yahoo.com (kian moto) Date: Tue Jul 5 08:16:44 2005 Subject: [GAP Forum] a problem with instaling gap 4r4 Message-ID: <20050705071450.75792.qmail@web33712.mail.mud.yahoo.com> dear forum I have problem with instal new gap(4r4). i want to downlod but iam not succesful. i want to instal gap 4r4 in windows xp. please help me. best regards. Send instant messages to your online friends http://uk.messenger.yahoo.com From Michael.Hartley at nottingham.edu.my Tue Jul 5 08:46:59 2005 From: Michael.Hartley at nottingham.edu.my (Michael Hartley) Date: Tue Jul 5 08:47:57 2005 Subject: [GAP Forum] *some* outer automorphisms... Message-ID: Dear GAPpers, is there any way to just find *some* outer automorphism(s) without finding the whole automorphism group? Ideally, I would want a method that would take a permutation group, and find a subgroup of its automorphism group. The subgroup doesn't have to be the same each time. The method should be fast - faster than AutomorphismGroup(grp), of course. Also, if |Aut(grp)| >> |grp|, the method should have a "good chance" of finding at least *some* outer automorphisms... Any ideas? -------------- next part -------------- BEGIN:VCARD VERSION:2.1 X-GWTYPE:USER FN:Michael Hartley ORG:University of Nottingham;Computer Science and IT EMAIL;WORK;PREF;NGW:Michael.Hartley@nottingham.edu.my N:Hartley;Michael END:VCARD From kian_moto at yahoo.com Tue Jul 5 12:17:22 2005 From: kian_moto at yahoo.com (kian moto) Date: Tue Jul 5 12:18:43 2005 Subject: [GAP Forum] problem with gap Message-ID: <20050705111722.50180.qmail@web33710.mail.mud.yahoo.com> dear forum. i know a little computer. i donot know where is the adress of inestaling gap 4r4 and how i inestal it. best regards. Send instant messages to your online friends http://uk.messenger.yahoo.com From Alexander.Hulpke at colostate.edu Tue Jul 5 17:41:43 2005 From: Alexander.Hulpke at colostate.edu (Alexander Hulpke) Date: Tue Jul 5 17:42:10 2005 Subject: [GAP Forum] *some* outer automorphisms... In-Reply-To: References: Message-ID: Dear Michael Hartley, > > is there any way to just find *some* outer automorphism(s) without > finding the whole automorphism group? > > Ideally, I would want a method that would take a permutation group, > and > find a subgroup of its automorphism group. > The subgroup doesn't have to be the same each time. The method should > be fast - faster than AutomorphismGroup(grp), of course. > Also, if |Aut(grp)| >> |grp|, the method should have a "good > chance" of > finding at least *some* outer automorphisms... I think you will have to specify your problem a bit more: What tradeoff between runtime and found automorphisms do you want? What is a ``good chance''? Are you happy if one outer automorphism is found or do you want more? Are you content to only get outer automorphissms of a particular kind? Also, what kinds of groups do you work with? Simple Groups? p-Groups? Solvable? (For example for simple groups, the question to find any automorphisms is basically of the same cost as finding all.) The only straightforward method that come to mind for permutation groups is to calculate the normalizer in the symmetric group and consider the induced automorphisms -- however it really depends on the permutation representation on what automorphisms will be found. Anything else would be too run the automorphism group algorithm(s) only partially, but what parts to run will depend on choices about tradeoff you will have to make. Best wishes, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From wdj at usna.edu Tue Jul 5 17:39:22 2005 From: wdj at usna.edu (David Joyner) Date: Tue Jul 5 21:42:11 2005 Subject: [GAP Forum] guava 2.4 Message-ID: <42CAB7BA.7040305@usna.edu> This is to announce the release of GUAVA 2.4. It is a minor release with some bug fixes, a slight revision of the manual, and other small changes. No new features or functions were added. See the CHANGES file at http://cadigweb.ew.usna.edu/~wdj/gap/GUAVA/ for more details. Have fun! David Joyner From mmarco at unizar.es Wed Jul 6 13:01:38 2005 From: mmarco at unizar.es (Miguel Marco) Date: Wed Jul 6 12:57:39 2005 Subject: [GAP Forum] complexity of the "orbit" function Message-ID: <200507061401.39167.mmarco@unizar.es> Dear gap forum I am doing some calculations that involve calculating the orbit of permutation groups over sets of sets. The problem is that in some cases, the procedure excedes the memory of my computer. I want to detect when will that happen, in order to separate the cases where that calculation will take too much memory from the rest. My question is: what does the complexity of the "orbit" function deppend on? The order of the group?, the index of the stabilizer of the object? And how can i estimate it before attempting to caluclate the actual orbit? Thanks in advance. Miguel Angel Marco-Buzunariz Universidad de Zaragoza From r_n_tsai at yahoo.com Wed Jul 6 23:02:39 2005 From: r_n_tsai at yahoo.com (R.N. Tsai) Date: Wed Jul 6 23:07:33 2005 Subject: [GAP Forum] polycyclic group problem Message-ID: <20050706220239.32519.qmail@web33703.mail.mud.yahoo.com> Dear gap forum, I'm experimenting with the polycyclic package and ran into this problem. This test program brings it out : Test:=function(p)local collector,group,aut; # define group with 3 generators using polycyclic collector collector:=FromTheLeftCollector(3); SetCommutator(collector,2,1,[3,1]); SetRelativeOrder( collector, 1, p ); SetRelativeOrder( collector, 2, p ); SetRelativeOrder( collector, 3, p ); # get size of group group:=PcpGroupByCollector(collector); Print(Size(group),"\n"); # get size of automorphism group aut:=AutomorphismGroup(group); Print(Size(aut),"\n"); end; the results are : # no problems for p=2 gap> Test(2); 8 8 # no problems for p=4 gap> Test(3); 27 432 # with p=4 we get : gap> Test(4); 64 Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 2nd choice method found for `InducedPcgsByGeneratorsNC' on 2 argumen\ ts called from InducedPcgsByGeneratorsNC( pcgs, gens ) called from InducedPcgsByGenerators( pa, GeneratorsOfGroup( grp ) ) called from Pcgs( group ) called from SpecialPcgs( G ) called from MinimalGeneratingSet( Image( gens ) ) called from ... Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> quit; I think the group is "better behaved" when p is prime, but I would think it should still be possible to get the automorphism group for the nonprime case. Thanks, R.N. --------------------------------- Sell on Yahoo! Auctions - No fees. Bid on great items. From sven.reichard at freenet.de Thu Jul 7 07:52:36 2005 From: sven.reichard at freenet.de (Sven Reichard) Date: Thu Jul 7 07:53:24 2005 Subject: [GAP Forum] complexity of the "orbit" function In-Reply-To: <42CBDDD3.10406@freenet.de> References: <200507061401.39167.mmarco@unizar.es> <42CBDDD3.10406@freenet.de> Message-ID: <42CCD134.9030803@freenet.de> Miguel Marco wrote: > Dear gap forum > > I am doing some calculations that involve calculating the orbit of > permutation groups over sets of sets. The problem is that in some > cases, the procedure excedes the memory of my computer. I want to > detect when will that happen, in order to separate the cases where > that calculation will take too much memory from the rest. > My question is: what does the complexity of the "orbit" function > deppend on? The order of the group?, the index of the stabilizer of > the object? And how can i estimate it before attempting to caluclate > the actual orbit? The orbit algorithm computes both the orbit and the stabilizer at the same time. However, it needs to store the whole orbit, which in your case exceeds the available memory. You can certainly compute the stabilizer in advance and check if its index exceeds a certain bound. As far as I know, the time complexity depends on the orbit length and on the number of given generators. A way to reduce the memory requirements in some cases would be "double inducing" (in the sense of Farad\v{z}ev). That is, first compute the images of all sets under the group G and find the induced action G'. Then identify the elements of your original set of sets with points of this action; finally, compute the orbit of this set of points under G'. The advantage is that you don't need to store several copies of the same set; moreover - correct me if I'm wrong - the representation of lists of integers is more compact. This doesn't help if the images are all disjoint; however, in this case it shouldn't hurt memory-wise. Code to illustrate the idea, not tested: SetSetOrbit := function( group, setset ) local sets, induced, set, orbit; # find the images of all sets sets := Union( Orbits( group, setset, OnSets ) ); # induced action on sets induced := Action( group, sets, OnSets ); # represent our setset as a set under the induce action set := Set( List( setset, x -> Position( sets, x ) ) ); # find the orbit orbit := Orbit( induced, set, OnSets ); # finally, revert to sets of sets. orbit := List( orbit, x -> sets{x} ); return orbit; end; I have used code like this to find orbits of length more than 10^6. Hope this helps, Sven. From Alexander.Hulpke at colostate.edu Thu Jul 7 17:54:20 2005 From: Alexander.Hulpke at colostate.edu (Alexander Hulpke) Date: Thu Jul 7 17:54:46 2005 Subject: [GAP Forum] Re: complexity of the "orbit" function References: <7E7AFB95-059A-4F6F-9003-AD57EC79AD7B@frii.com> Message-ID: <8791894D-B192-49A2-B31A-064428389A64@colostate.edu> >> Dear Forum, Miguel Marco asked: > I am doing some calculations that involve calculating the orbit of > permutation > groups over sets of sets. The problem is that in some cases, the > procedure > excedes the memory of my computer. I want to detect when will that > happen, in > order to separate the cases where that calculation will take too > much memory > from the rest. > My question is: what does the complexity of the "orbit" function > deppend on? > The order of the group?, the index of the stabilizer of the object? > And how > can i estimate it before attempting to caluclate the actual orbit? > The ``sets of sets'' action does not use a backtrack, but an ordinary orbit algorithm. Time and memory complexity of this are proportional to the index of the stabilizer. What you could do is fivefold: - Change the permutation action (`ActionHomomorphism') to have the group act on sets, as Sven Reichard already described in his mail. You then could use the simple set-stabilizer, however the cost ois that the degree can go up substantially. - Separate sets of different size (they cannot be mixed) and calculate the stabilizer iteratively. Similarly, if your group is not transitive you can separate acording to group orbits. - Can you compute a subgroup, that must contain the stabilizer? (For example, if your sets of sets do not contain all points, you could calculate the (set-)stabilizer of the union first. - If your degree is not too big, one can write down the set-of-set stabilizer in the symmetric group (it is a direct product of wreath products). One then could calculate the intersection with the original group. - You could calculate the stabilizer of all the sets first, this will give you a subgroup of your stabilizer. The set-of-set stabilizer then is larger with index at most k! if you have k sets. What strategy will be promising depends very much on the groups and sets in question -- feel free to send us (support@gap-system.org) a ``typical'' example and we might be able to give a better idea on strategies. Best wishes, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From jjoao at netcabo.pt Thu Jul 7 19:41:21 2005 From: jjoao at netcabo.pt (Jose Joao Morais) Date: Thu Jul 7 19:42:44 2005 Subject: [GAP Forum] Composition of group homorphisms Message-ID: <1120761681.4247.12.camel@localhost> Dear Forum, How can I compose group homomorphisms? I tried this code: gap> g := SymmetricGroup(5);; gap> h := AlternatingGroup(5);; gap> f1 := NaturalHomomorphismByNormalSubgroup(g,h);; gap> f2 := NaturalHomomorphismByNormalSubgroup(h,h);; gap> IsMapping(f1); true gap> IsGeneralMapping(f1); true gap> IsMapping(f2); true gap> IsGeneralMapping(f2); true gap> CompositionMapping(f1,f2); Error, the range of and the source of must be contained in the same family called f\ rom ( ) called from read-eval-loop Entering break read-eval-print loop ... Could someone please tell me what am I doing wrong? Thank you very much, Jose Morais From Alexander.Hulpke at colostate.edu Thu Jul 7 20:08:21 2005 From: Alexander.Hulpke at colostate.edu (Alexander Hulpke) Date: Thu Jul 7 20:09:22 2005 Subject: [GAP Forum] Composition of group homorphisms In-Reply-To: <1120761681.4247.12.camel@localhost> References: <1120761681.4247.12.camel@localhost> Message-ID: <3294B812-6966-4625-BB05-BC03B6F01331@colostate.edu> Dear GAP-Forum, Jose Joao Morais wrote: > How can I compose group homomorphisms? > > I tried this code: > > gap> g := SymmetricGroup(5);; > gap> h := AlternatingGroup(5);; > gap> f1 := NaturalHomomorphismByNormalSubgroup(g,h);; > gap> f2 := NaturalHomomorphismByNormalSubgroup(h,h);; > gap> CompositionMapping(f1,f2); The first issue is order - CompositionMapping takes homomorphisms in reversed order. So to first apply f1, the f2, you would use either f1*f2 or, equivalently CompositionMapping(f2,f1) The second issue is domains and the fact that GAP is really picky about definitions which a mathematician intuitively would interpret in the only possible way. Your homomorphism f2 is defined on h, and not on the factor group g/h. What you could do, is either create this homomorphism in the factor group: f3:=NaturalHomomorphismByNormalSubgroup(Image(f1,g),Image(f1,h)); Then you can form: gap> CompositionMapping(f3,f1); [ (1,2,3,4,5), (1,2) ] -> [ of ..., f1 ] Note that I cannot compose with NaturalHomomorphismByNormalSubgroup(Image(f1,h),Image(f1,h)); (the first `Image' changed from g to h), as then the image of the first homomorphism is not contained in the source of the second. You could use `RestrictedMapping' to deliberately restrict the domain of f1 to obtain a smaller image. I hope this is of help, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From dfh at maths.warwick.ac.uk Thu Jul 7 21:23:27 2005 From: dfh at maths.warwick.ac.uk (Derek Holt) Date: Thu Jul 7 21:26:37 2005 Subject: [GAP Forum] complexity of the "orbit" function In-Reply-To: <200507061401.39167.mmarco@unizar.es> References: <200507061401.39167.mmarco@unizar.es> Message-ID: <20050707202327.GA18314@maths.warwick.ac.uk> On Wed, Jul 06, 2005 at 02:01:38PM +0200, Miguel Marco wrote: > Dear gap forum > > I am doing some calculations that involve calculating the orbit of permutation > groups over sets of sets. The problem is that in some cases, the procedure > excedes the memory of my computer. I want to detect when will that happen, in > order to separate the cases where that calculation will take too much memory > from the rest. > My question is: what does the complexity of the "orbit" function deppend on? > The order of the group?, the index of the stabilizer of the object? And how > can i estimate it before attempting to caluclate the actual orbit? Can I just add one further comment to the detailed replies that you have already received. There are methods available for estimating the sizes of orbits without calculating the whole orbit. Thye can help you to decide whether it is likely to be feasible to enumerate the whole orbit. The idea is to start computing the orbit s^G = [ s=s1, s2, s3, ... ] of s under G in the usual way, by applying generators of G to s1, s2, s3, in turn. At the same time you count coincidences, where a coincidence means an application of a generator g to an orbit element si producing an element si^g that is already in S. If at some stage you have computed n orbit elements while finding L coincidences, then s^2/(2L) is an estimate of the orbit length. This is discussed briefly in Section 9 of Bettina Eick, C.R. Leedham-Green and E.A. O'Brien ``Constructing automorphism groups of p-groups", Comm. Algebra 30 (2002), 2271-2295. Derek Holt. From rcone at vt.edu Fri Jul 8 02:02:15 2005 From: rcone at vt.edu (rcone) Date: Fri Jul 8 02:04:43 2005 Subject: [GAP Forum] Extending Orderings Message-ID: <43511102@zathras> GAP Forum, Is there a way to treat terms (w/o coefficients) from noncommutative polynomials as associative words on generators? This is with the mind of formulating a treatment of monomial orderings on noncommutative polynomials based on the ordering system built into GAP4. Here is what I've come up with so far, but I'm hoping there's a more direct way: gap> A := FreeAssociativeAlgebraWithOne(Rationals,"a","b"); gap> B := FreeGroup("x","y"); gap> a := A.a;; b := A.b;; x := B.x;; y := B.y;; gap> f := a^3*b; (1)*a^3*b gap> fe := ExtRepOfObj(f); [ 0, [ [ 1, 3, 2, 1 ], 1 ] ] gap> g := ObjByExtRep(FamilyObj(x),fe[2][1]); x^3*y gap> g in A; false gap> g in B; true gap> B; Cheers, and thanks, Randy Cone From kohl at mathematik.uni-stuttgart.de Fri Jul 8 10:43:25 2005 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Fri Jul 8 10:44:11 2005 Subject: [GAP Forum] polycyclic group problem In-Reply-To: <20050706220239.32519.qmail@web33703.mail.mud.yahoo.com> References: <20050706220239.32519.qmail@web33703.mail.mud.yahoo.com> Message-ID: <42CE4ABD.9040209@mathematik.uni-stuttgart.de> Dear Forum, R.N. Tsai wrote: > I'm experimenting with the polycyclic package and ran into this problem. > > This test program brings it out : > > Test:=function(p)local collector,group,aut; > # define group with 3 generators using polycyclic collector > collector:=FromTheLeftCollector(3); > SetCommutator(collector,2,1,[3,1]); > SetRelativeOrder( collector, 1, p ); > SetRelativeOrder( collector, 2, p ); > SetRelativeOrder( collector, 3, p ); > # get size of group > group:=PcpGroupByCollector(collector); > Print(Size(group),"\n"); > # get size of automorphism group > aut:=AutomorphismGroup(group); > Print(Size(aut),"\n"); > end; [ ... ] > # with p=4 we get : > gap> Test(4); > 64 > Error, no method found! The main point is here that the Polycyclic package currently does not contain a method to compute automorphism groups of polycyclically presented groups. However, erraneously an `AutomorphismGroup' method which is not capable of handling pcp groups is called, since its declaration claims that it would be applicable for any finite solvable group. This is a bug, and will be fixed as soon as possible. An easy workaround for your case is the following: Test:=function(p)local collector,group,aut; # define group with 3 generators using polycyclic collector collector:=FromTheLeftCollector(3); SetCommutator(collector,2,1,[3,1]); SetRelativeOrder( collector, 1, p ); SetRelativeOrder( collector, 2, p ); SetRelativeOrder( collector, 3, p ); # get size of group group:=RefinedPcpGroup(PcpGroupByCollector(collector)); Print(Size(group),"\n"); # get size of automorphism group aut:=AutomorphismGroup(group); Print(Size(aut),"\n"); end; In any case, note the difference between pc groups, which are always finite and are supported by the GAP library, and pcp groups, which can be infinite, and are implemented in the Polycyclic package. Hope this is of some help, Stefan Kohl (I would like to acknowledge hints by Bettina Eick.) From kohl at mathematik.uni-stuttgart.de Fri Jul 8 15:54:23 2005 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Fri Jul 8 15:55:13 2005 Subject: [GAP Forum] problem with gap In-Reply-To: <20050705111722.50180.qmail@web33710.mail.mud.yahoo.com> References: <20050705111722.50180.qmail@web33710.mail.mud.yahoo.com> Message-ID: <42CE939F.4060206@mathematik.uni-stuttgart.de> Dear Forum, kian moto wrote: > i know a little computer. > i donot know where is the adress of inestaling gap 4r4 and > how i inestal it. You can download GAP from http://www.gap-system.org/Download/index.html. If this does not work for you -- may I ask you for a bit more information?: - Can you understand the installation instructions, or should we give you additional explanations? - Is your internet connection too slow to download files of about 50MB? In this case we could provide you with a GAP CD. - Did you download the files, but have problems with unpacking them or with running GAP afterwards? In any case please note that the GAP Forum is NOT the right place for enquiries concerning installation problems and similar issues. As most of you know, for dealing with such questions, we have an additional address support@gap-system.org. We try to do our best in answering any questions sent to this address as good and as fast as we can. Before sending a question to the GAP Forum, please think about whether you really want that about 600 people read it. This of course should not prevent anyone from sending more advanced questions which might be interesting for other users as well, from reporting dangerous bugs which can cause wrong results, or even from reporting about his / her GAP - related work. All of these are of course welcome! Best wishes and hope this helps, Stefan Kohl From rcone at vt.edu Sun Jul 10 22:27:23 2005 From: rcone at vt.edu (rcone) Date: Sun Jul 10 22:28:36 2005 Subject: [GAP Forum] Extending Orderings, perhaps better posed Message-ID: <4363BADC@zathras> GAP Forum, If a free (associative) algebra is created in GAP, say on the generators "a","b","c"; is there a way to use the built-in GAP orderings (on associative words) on the multiplicative semigroup of words these generators form? Thanks, Randy Cone From dutour at liga.ens.fr Wed Apr 27 10:18:00 2005 From: dutour at liga.ens.fr (Mathieu Dutour) Date: Mon Jul 11 10:12:17 2005 Subject: [GAP Forum] Easy problem - but I can't do it! In-Reply-To: References: Message-ID: <20050427091732.GA25882@orge.ens.fr> Dear professor Gordon Royle, the problem appear when you are using the function OnSetsSets, it assumes that gorb is a list of sets, which is not the case. The function Orbits does not return a list of sets but a list of lists. If one adds the command gorbSec:=List(gorb, x->Set(x)); then the command Action(n, gorbSec, OnSetsSets); returns what is expected. Two remarks: --would it be possible to rewrite the function Action so as to avoid having the performance penalty related to the construction of the homomorphism ? (see the documentation for details) I myself rewrote Action, without this performance penalty, since I was ignoring the already existing function Action. --gorb[10]=[ [ 1, 12 ], [ 3, 10 ], [ 2, 9 ], [ 4, 11 ] ] is NOT a set but somehow the commands OnSetsSets(gorb[10], n.1); Orbit(n, gorb[10], OnSetsSets); are working. This should be considered as an accident. Mathieu The Code of my function "Action" TranslateElement:=function(eElt, LSET, Action) local eList, iElt, Pos; eList:=[]; for iElt in [1..Length(LSET)] do Pos:=Position(LSET, Action(LSET[iElt], eElt)); if Pos=fail then Print("Translation of the element is impossible\n"); return false; fi; Add(eList, Pos); od; return eList; end; TranslateGroup:=function(GRP, LSET, Action) local eGen, GenNew, eList; if Order(GRP)=1 then return Group(()); fi; GenNew:=[]; for eGen in GeneratorsOfGroup(GRP) do eList:=TranslateElement(eGen, LSET, Action); Add(GenNew, PermList(eList)); od; return Group(GenNew); end; -- Mathieu Dutour Sikiric Researcher in Math Tel. (+972)2 65 84 103 and Computer Science Fax. (+972)2 56 30 702 Einstein Institute of Mathematics E-mail: Mathieu.Dutour@ens.fr Hebrew University of Jerusalem http://www.liga.ens.fr/~dutour Israel From kimm at chonnam.chonnam.ac.kr Tue Jul 12 02:16:26 2005 From: kimm at chonnam.chonnam.ac.kr (yonggukim) Date: Tue Jul 12 02:17:44 2005 Subject: [GAP Forum] S4 Symmerty Message-ID: Dear Gap users: I am not a GAP expert. I have a data file containing a collections of point sets, for instance, {{1,2,3,4},{0,2,3,4}} {{0,2,3,6},{0,1,3,6}} ... Here a permutation of 0,1,2,3 determines the action on the other points too. I would like to look those collections of sets which are not related by the permutation group S4. How can I do it using GAP? YGK From hulpke at frii.com Tue Jul 12 15:54:44 2005 From: hulpke at frii.com (Alexander Hulpke) Date: Tue Jul 12 15:55:13 2005 Subject: [GAP Forum] Re:Extending Orderings, perhaps better posed References: <678FC76C-22C6-434B-8A7F-1C2F1BD38E40@frii.com> Message-ID: <5A02CE5A-D522-43C0-B3B7-B0FBCBC80347@frii.com> Randy Cone asked: > > If a free (associative) algebra is created in GAP, say on the > generators > "a","b","c"; is there a way to use the built-in GAP orderings (on > associative > words) on the multiplicative semigroup of words these generators form? > Associative words and associative algebra elements really are diffferent datatypes and functionality for one does not apply to the other. What you could do is to form the semigroup algebra of the free semigroup (or free abelian semigroup), this way there is a connection between semigroup and algebra. The other option would be to write small functions that take a monomial and build a ``corresponding'' semigroup element, using these ``shadows'' for comparison. Best wishes, Alexander Hulpke From rcone at vt.edu Tue Jul 12 22:14:17 2005 From: rcone at vt.edu (rcone) Date: Tue Jul 12 22:17:04 2005 Subject: [GAP Forum] Re:Extending Orderings, perhaps better posed Message-ID: <437AD71F@zathras> Alexander Hulpke wrote: >What you could do is to form the semigroup algebra of the >free semigroup (or free abelian semigroup), this way there >is a connection between semigroup and algebra. I've tried this, and gotten some unexpected results. Perhaps you could explain where I've gone wrong: gap> A := FreeAlgebra(Rationals,2); gap> gensA := GeneratorsOfAlgebra(A); [ (1)*x.1, (1)*x.2 ] gap> a1 := gensA[1]; (1)*x.1 gap> a2 := gensA[2]; (1)*x.2 gap> a1*a2 in A; true gap> a1+a2 in A; true gap> G := FreeSemigroup(2); gap> gensG := GeneratorsOfSemigroup(G); [ s1, s2 ] gap> g1 := gensG[1]; s1 gap> g2 := gensG[2]; s2 gap> g1*g2 in G; true gap> B := Algebra(Rationals,gensG,0); gap> g1*g2 in B; false gap> gensB := GeneratorsOfAlgebra(B); [ s1, s2 ] gap> b1 := gensB[1]; s1 gap> b2 := gensB[2]; s2 gap> b1*b2 in B; false gap> b1*b2 in G; true gap> b1+b2 in B; Error, no method found! For debug... >The other option would be to write small functions that >take a monomial and build a ``corresponding'' semigroup >element, using these ``shadows'' for comparison. My hope was to stay away from such machinery, and act on the objects (monomials of free algebras) directly as associative words. Then, any improvements or extensions to the work on associative words would translate naturally to such objects. For example, I've implemented the Horspool subword search algorithm for associative words. Guess I'm outta luck, and should consider coding orderings, subword search, overlap, etc. for elements of free algebras? Thanks for your time and response! Randy Cone From hulpke at mac.com Wed Jul 13 02:56:23 2005 From: hulpke at mac.com (Alexander Hulpke) Date: Wed Jul 13 02:58:09 2005 Subject: [GAP Forum] Re:Extending Orderings, perhaps better posed In-Reply-To: <437AD71F@zathras> References: <437AD71F@zathras> Message-ID: <8F62695F-6E6A-4357-8332-0DE80A2F5794@mac.com> Dear Randy Cone, > I've tried this, and gotten some unexpected results. Perhaps you > could > explain where I've gone wrong: Essentially, the elements of the algebra will be different objects than the elements of the (semi)group. (When working by hand one often identifies the semigroup with a subset of the algebra, on the computer we have to be picky.) What will happen is that the algebra elements are new kinds of objects that just multiply using the underlying semigroup. Thus you could do the following: gap> G:=FreeSemigroup(2); gap> B:=FreeMagmaRing(Rationals,G); gap> gensB:=GeneratorsOfAlgebra(B); [ (1)*s1, (1)*s2 ] gap> elm:=gensB[1]^3*gensB[2]; (1)*s1^3*s2 gap> map:=Embedding(G,B); Algebra( Rationals, [ (1)*s1, (1) *s2 ] ) > gap> Image(map,G.1*G.2); (1)*s1*s2 gap> PreImagesRepresentative(map,elm); s1^3*s2 You see that algebra elements are displayed differently, essentially with a prefixed (1)*. However they are really different objects: gap> G.1; s1 gap> B.1; (1)*s1 gap> G.1=B.1; false If you need to do the translation between semigroup and algebra often, there is a bit of overhead in using the embedding as it tests validity of arguments -- you might just want to access the data structures more directly as the code in lib/mgmring.gi does. (I would argue that in your example the call of `Algebra' with semigroup generators should produce an error message.) > > >> The other option would be to write small functions that >> take a monomial and build a ``corresponding'' semigroup >> element, using these ``shadows'' for comparison. >> > > My hope was to stay away from such machinery, and act on the objects > (monomials of free algebras) directly as associative words. Then, any > improvements or extensions to the work on associative words would > translate > naturally to such objects. For example, I've implemented the > Horspool subword > search algorithm for associative words. Guess I'm outta luck, and > should > consider coding orderings, subword search, overlap, etc. for > elements of free > algebras? As said above, algebra elements and words in the semigroup are really different objects. However I don't think that having to apply the embedding will be a messup of the rest of the code -- my guess is that there are only very few localized places where this happens. All the best, Alexander Hulpke From hulpke at mac.com Wed Jul 13 03:00:01 2005 From: hulpke at mac.com (Alexander Hulpke) Date: Wed Jul 13 03:01:52 2005 Subject: [GAP Forum] Re: S4 Symmerty References: <84EC1414-BF8C-4B0F-8005-D901767C5F4E@frii.com> Message-ID: <96FB24F5-86E9-49F5-9347-3D2C1527A835@mac.com> Dear GAP-forum, A user wrote: > > I am not a GAP expert. I have a data file containing a collections of > point sets, for instance, > {{1,2,3,4},{0,2,3,4}} > {{0,2,3,6},{0,1,3,6}} > ... > Here a permutation of 0,1,2,3 determines the action on the other > points > too. I would like to look those collections of sets which are not > related by the > permutation group S4. How can I do it using GAP? > I interpret your question that you have a group and want to get representatives of the orbits. First, permutation groups in GAP do not act on 0 -- it is probably easiest to use an editor to replace 0 by a number that is not used, say 9. The second thing you will have to do is to convert your objects into GAP-objects (in an editor): objects:=[ [[1,2,3,4],[9,2,3,4]], [[9,2,3,6],[9,1,3,6]], and so on ]; Read this file into GAP. Next we want to convert the objects into sets of sets. This means every inner and outer list must be sorted. Probably the easiest way to do this is: objects:=List(objects,i->Set(List(i,Set))); Now create the group (be careful that 0 again has to be translated. e.g. if you had S4 on the points 0,1,2,3, you would make with our 9 translation: G:=Group((9,1,2,3),(9,1)); Then you can compute orbits, picking one element each gives you representatives. orb:=Orbits(G,objects,OnSetsSets); List(orb,i->i[1]); Best, Alexander Hulpke From kimm at chonnam.chonnam.ac.kr Thu Jul 14 02:58:47 2005 From: kimm at chonnam.chonnam.ac.kr (yonggukim) Date: Thu Jul 14 03:02:17 2005 Subject: [GAP Forum] Re: S4 Symmerty In-Reply-To: <96FB24F5-86E9-49F5-9347-3D2C1527A835@mac.com> References: <84EC1414-BF8C-4B0F-8005-D901767C5F4E@frii.com> <96FB24F5-86E9-49F5-9347-3D2C1527A835@mac.com> Message-ID: Dear Professor Alexander Hulpke: Thank you very much for your help. I ran GAP following your instruction, and the first reply was like this: exceeded the permitted memory (`-o' command line option) at l := Length( arg ); called from List( e, function ( i ) return OnSets( i, g ); end ) called from act( p, gen ) called from OrbitOp( G, D[1], gens, acts, act ) called from op( G, D, gens, gens, act ) called from ( ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> Here the data file had sets of 4-elemenet sets with various sizes. As a data file, I then chose sets of 4-elements sets with a fixed size. Then I got just too many orbits. What is wrong? Is there a command to compute the number of orbits? Sincerely, YGK On Tue, 12 Jul 2005, Alexander Hulpke wrote: > Dear GAP-forum, > > A user wrote: > > > > > I am not a GAP expert. I have a data file containing a collections of > > point sets, for instance, > > {{1,2,3,4},{0,2,3,4}} > > {{0,2,3,6},{0,1,3,6}} > > ... > > Here a permutation of 0,1,2,3 determines the action on the other > > points > > too. I would like to look those collections of sets which are not > > related by the > > permutation group S4. How can I do it using GAP? > > > > I interpret your question that you have a group and want to get > representatives of the orbits. > > First, permutation groups in GAP do not act on 0 -- it is probably > easiest to use an editor to replace 0 by a number that is not used, > say 9. > > The second thing you will have to do is to convert your objects into > GAP-objects (in an editor): > > objects:=[ > [[1,2,3,4],[9,2,3,4]], > [[9,2,3,6],[9,1,3,6]], > > and so on > ]; > Read this file into GAP. > > Next we want to convert the objects into sets of sets. This means > every inner and outer list must be sorted. Probably the easiest way > to do this is: > > objects:=List(objects,i->Set(List(i,Set))); > > Now create the group (be careful that 0 again has to be translated. > e.g. if you had S4 on the points 0,1,2,3, you would make with our 9 > translation: > > G:=Group((9,1,2,3),(9,1)); > > Then you can compute orbits, picking one element each gives you > representatives. > > orb:=Orbits(G,objects,OnSetsSets); > List(orb,i->i[1]); > > Best, > > Alexander Hulpke > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From rcone at vt.edu Fri Jul 15 14:23:50 2005 From: rcone at vt.edu (rcone) Date: Fri Jul 15 14:25:38 2005 Subject: [GAP Forum] Associative Algebra Element Category Message-ID: <439646FD@zathras> GAP Forum, Is there is a way to distinguish associative algebra elements from non-associative ones? There does not seem to be a valid category making this determination, though I might be missing something! (Please see example below). Nevertheless, I'm guessing there is a way to indirecly do this by looking at the parent algebras of elements; similar to finding the parent family (group) of a free group element with: FamilyObj(a)!.freeGroup. Related to this, how might one find all the available information via the !. for a family? gap> # Associative algebra example: gap> A := FreeAssociativeAlgebraWithOne(Rationals,"a","b"); gap> a := A.a; (1)*a gap> b := A.b; (1)*b gap> B := FreeAlgebraWithOne(Rationals,"c","d"); gap> c := B.c; (1)*c gap> d := B.d; (1)*d gap> ExtRepOfObj(a*(b*a)); [ 0, [ [ 1, 1, 2, 1, 1, 1 ], 1 ] ] gap> ExtRepOfObj(c*(d*c)); [ 0, [ [ 1, [ 2, 1 ] ], 1 ] ] gap> IsAssociativeElement(a); false gap> IsAssociativeElement(c); false gap> CategoriesOfObject(a) = CategoriesOfObject(c); true Thanks for the continued help! Randy Cone From marcus at math.uic.edu Sat Jul 16 14:36:10 2005 From: marcus at math.uic.edu (marcus@math.uic.edu) Date: Sat Jul 16 14:37:26 2005 Subject: [GAP Forum] Degree and Generators Message-ID: <20050716133610.GA21698@math.uic.edu> Hello everyone. I have two questions. First, how do I find out what algebra a given element is an element of? For example, if I do gap> A:=AlgebraByStructureConstants(... gap> a:=GeneratorsOfAlgebra(A)[1] then what can I call, knowing 'a', that will return 'A'? Perhaps something along the lines of IAmAnElementOf(a)? What I really want is to call Grading(A) so I can find out what degree 'a' is (after having set up Grading(A).hom_components). Is this information available via some other method, given only 'a'? Second, how do I cause the generators of 'A' above to be available via the names A.1, A.2, etc? This isn't essential, but is certainly makes algebra more pleasant :) Thank you for your help. -marKus From degraaf at science.unitn.it Mon Jul 18 10:32:43 2005 From: degraaf at science.unitn.it (Willem De Graaf) Date: Mon Jul 18 10:33:32 2005 Subject: [GAP Forum] Degree and Generators In-Reply-To: <20050716133610.GA21698@math.uic.edu> References: <20050716133610.GA21698@math.uic.edu> Message-ID: <42DB773B.6040800@science.unitn.it> Dear Markus, You asked: >Hello everyone. I have two questions. > >First, how do I find out what algebra >a given element is an element of? > >For example, if I do >gap> A:=AlgebraByStructureConstants(... >gap> a:=GeneratorsOfAlgebra(A)[1] >then what can I call, knowing 'a', that >will return 'A'? Perhaps something along >the lines of IAmAnElementOf(a)? > > > In the case of structure constant algebras this is possible, because a link to the algebra is stored in the family of the element. In your case you can access it by FamilyObj( a )!.fullSCAlgebra; >What I really want is to call Grading(A) >so I can find out what degree 'a' is >(after having set up Grading(A).hom_components). >Is this information available >via some other method, given only 'a'? > > > Currently there is no standard method in GAP for this. You would have to write a little function that finds out in which homogeneous component your element a lies. >Second, how do I cause the generators of 'A' >above to be available via the names A.1, A.2, etc? >This isn't essential, but is certainly makes >algebra more pleasant :) > > This is unfortunately not possible. Hope this helps; if you have more questions, please ask. All the best, Willem de Graaf From mmarco at unizar.es Mon Jul 18 12:38:11 2005 From: mmarco at unizar.es (Miguel Marco) Date: Mon Jul 18 12:35:56 2005 Subject: [GAP Forum] Swap partitions. Message-ID: <200507181338.11183.mmarco@unizar.es> I have seen an strange behavior of gap concerning swap memory. The computer it runs on has two partitions of swap, but gap only seems to use one of them. Besides, when there is unused space in the swap partition it uses, gap runs normally, using almost all the CPU time; but when the swap partition is full, the CPU time that gap uses falls down to the minimum. Which is the reasion for this behavior? How can i make gap to recognize the two partitions of swap memory? From kohl at mathematik.uni-stuttgart.de Tue Jul 19 10:14:29 2005 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Tue Jul 19 10:18:50 2005 Subject: [GAP Forum] Freeing memory in gap In-Reply-To: <42BE3D0B.9090903@fismat.umich.mx> References: <42BE3D0B.9090903@fismat.umich.mx> Message-ID: <42DCC475.10303@mathematik.uni-stuttgart.de> Dear Forum, Arie Molina Rueda wrote: > My Situation: > ------------ > > Im working in a problem involving in calculating _A LOT_ of tables of > marks, my problem is that GAP keeps stoping, telling me that my memory > assingned to GAP ran down. > > The algorithm giving me trouble is very simple: > > For every SimpleGroup(i,j){ > -> Calculate ToM > -> A := Uncompress ToM > -> dim := Calculate Dimension of A > -> Save dim,i and j to file, > } > > I assume GAP is keeping in memory those big arrays and thus running out > of memory. > > My Question: > -----------. > Is there a way to free memory in GAP? or > to avoid GAP keeping those big things in memory? Alas the above pseudo code does not provide enough information for deciding what happens. In an off-list mail, Thomas Breuer asked the following questions: 1. Do you write down a `for' loop over a list of groups or a list of indices? In the first case, the tables of marks are stored in the groups as they are computed; one remedy would then be to use `AttributeValueNotSet' instead of calling `TableOfMarks' for the groups in question, see the GAP Reference Manual for details about `AttributeValueNotSet'. 2. Do you compute the tables of marks from given group objects, or do you use the library of tables of marks? In the latter case, a certain number of data files are kept in memory; one can reduce this number if required. (Note that loading a table of marks from the library is much faster than computing the table of marks anew, see `The Library of Tables of Marks' in the GAP Reference Manual.) 3. Do I understand you right that you are interested only in the number of conjugacy classes of subgroups of a given (simple) group? If yes then you can completely avoid computing the table of marks, and compute just `Length( ConjugacyClassesSubgroups( G ) )'. Best wishes, Stefan Kohl From thomas.breuer at math.rwth-aachen.de Wed Jul 20 08:17:49 2005 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Wed Jul 20 08:16:18 2005 Subject: [GAP Forum] Associative Algebra Element Category Message-ID: <20050720071749.DD3B0777A0@altair.math.rwth-aachen.de> Dear GAP Forum, Randy Cone wrote > Is there is a way to distinguish associative algebra elements from > non-associative ones? There does not seem to be a valid category making this > determination, though I might be missing something! (Please see example > below). Nevertheless, I'm guessing there is a way to indirecly do this by > looking at the parent algebras of elements; similar to finding the parent > family (group) of a free group element with: FamilyObj(a)!.freeGroup. Related > to this, how might one find all the available information via the !. for a > family? > > gap> # Associative algebra example: > gap> A := FreeAssociativeAlgebraWithOne(Rationals,"a","b"); > > gap> a := A.a; > (1)*a > gap> b := A.b; > (1)*b > gap> B := FreeAlgebraWithOne(Rationals,"c","d"); > > gap> c := B.c; > (1)*c > gap> d := B.d; > (1)*d > gap> ExtRepOfObj(a*(b*a)); > [ 0, [ [ 1, 1, 2, 1, 1, 1 ], 1 ] ] > gap> ExtRepOfObj(c*(d*c)); > [ 0, [ [ 1, [ 2, 1 ] ], 1 ] ] > gap> IsAssociativeElement(a); > false > gap> IsAssociativeElement(c); > false > gap> CategoriesOfObject(a) = CategoriesOfObject(c); > true Associativity is a property of domains not of single elements, the filter `IsAssociativeElement' just expresses the technical property that any magma created from a collection of such elements will be associative. For example, this holds for permutations, and it would be possible to use this also for elements of free associative algebras. (These algebras are created with `FreeMagmaRing', so changing this function is the natural way to achieve this; we will consider this for the next GAP version.) However, one cannot rely on the fact that `IsAssociativeElement' is set for elements in domains that turn out to be associative. For example, if one constructs an algebra A, say, from a multiplication table, and then forms a subalgebra B of A then B may be associative whereas A is not, and the elements in B lie also in A. For the special case of an element in a free algebra or in a free associative algebra, it is actually possible to determine whether the ``full algebra'' is associative or nonassociative, from inspecting certain filters in certain family objects. But it seems to be easier to ask the element itself, as follows. gap> A:= FreeAlgebra( Rationals, 2 );; x:= A.1;; gap> x*(x*x) = (x*x)*x; false gap> A:= FreeAssociativeAlgebra( Rationals, 2 );; x:= A.1;; gap> x*(x*x) = (x*x)*x; true (May I ask where this problem arises?) All the best, Thomas _______________________________________________ Support mailing list Support@gap-system.org http://mail.gap-system.org/mailman/listinfo/support From wdj at usna.edu Wed Jul 20 08:53:40 2005 From: wdj at usna.edu (David Joyner) Date: Wed Jul 20 12:57:28 2005 Subject: [GAP Forum] quotients in polynomial rings In-Reply-To: References: Message-ID: <42DE0304.2010806@usna.edu> The exact functionality you want is missing from GAP at the moment. However, there may be a work around. The following example computation seems to be related to what you are looking for. Computations in R/I must be replaced by repeatedly using QuotientRemainder and PowerMod. gap> Z4:=ZmodnZ(4); (Integers mod 4) gap> R:=UnivariatePolynomialRing(Z4,1); PolynomialRing(..., [ x ]) gap> x:=IndeterminatesOfPolynomialRing(R)[1]; x gap> I:=TwoSidedIdealByGenerators( R,[x8-x0]); gap> gen:=x8-x0; x8-ZmodnZObj(1,4) gap> QuotientRemainder(R,x8,gen); [ ZmodnZObj(1,4), ZmodnZObj(1,4) ] gap> QuotientRemainder(R,x15,gen); [ x7, x7 ] gap> QuotientRemainder(R,x15+x8,gen); [ x7+ZmodnZObj(1,4), x7+ZmodnZObj(1,4) ] gap> PowerMod( R, x+x0, 15, gen ); ZmodnZObj(0,4) gap> PowerMod( R, x, 15, gen ); x7 Wish I could be more helpful. - David Joyner ++++++++++++++++++++++++++++++++++++++++++++ Larry Wilson wrote: >Perhaps this question has a very simple answer, but I have not been able >to figure it out and would love to have some guidance. I would like to be >able to do something like work in Z_4[x]/(x^8-1). I thought I was on the >right track with: > >GAP4, Version: 4.4.2 of 18-Mar-2004, sparc-sun-solaris2.8-cc >gap> A := FreeAlgebraWithOne(Integers, 1);; >gap> x := GeneratorsOfAlgebra(A)[2]; >(1)*x.1 >gap> I := Ideal(A, [x^8-1*x^0, 4*x^0]); >with 1 generators>, (2 generators)> >gap> hom := NaturalHomomorphismByIdeal(A, I); >Error, no method found! For debugging hints type ?Recovery from >NoMethodFound >Error, no 1st choice method found for >`GeneratorsOfLeftOperatorRingWithOne' on 1 arguments called from >GeneratorsOfAlgebraWithOne( image ) called from >( ) called from read-eval-loop > >Any help would be much appreciated, > >Larry > > >_______________________________________________ >Forum mailing list >Forum@mail.gap-system.org >http://mail.gap-system.org/mailman/listinfo/forum > > From Frank.Luebeck at math.rwth-aachen.de Wed Jul 20 15:21:35 2005 From: Frank.Luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Wed Jul 20 15:21:48 2005 Subject: [GAP Forum] Swap partitions. In-Reply-To: <200507181338.11183.mmarco@unizar.es> References: <200507181338.11183.mmarco@unizar.es> Message-ID: <20050720142135.GA5721@math.rwth-aachen.de> On Mon, Jul 18, 2005 at 01:38:11PM +0200, Miguel Marco wrote: > I have seen an strange behavior of gap concerning swap memory. > The computer it runs on has two partitions of swap, but gap only seems to use > one of them. Dear Miguel Marco, dear Forum, The gap program itself doesn't know about physical and swap memory. Using swap memory is a task of the operating system. You should see the same behaviour with all programs which use a lot of memory. > Besides, when there is unused space in the swap partition it uses, gap runs > normally, using almost all the CPU time; but when the swap partition is full, > the CPU time that gap uses falls down to the minimum. When your gap job is so big that it uses swap space, the proportion of CPU cycles it gets depends very much on what exactly you are doing. For example: If you store a huge amount of data and access them random-like, there is probably a lot of swaping and gap becomes very slow. If you have many data but you are computing with small objects which are used temporarily, then gap is happy with doing some "partial garbage collections" which may only need parts of the memory which are in the physical RAM. In such a case you can see gap getting almost all the CPU cycles. But if gap has filled most of its available memory with data it does "full garbage collections" - first looking for objects which are no longer needed, and then moving all needed objects to the beginning of the available memory - when this happens a lot of swaping is necessary and gap slows down dramatically. Whenever possible try to avoid running gap such that it needs swap space. With best regards, Frank Luebeck -- /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck@Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From smith1kw at cmich.edu Sun Jul 24 20:16:06 2005 From: smith1kw at cmich.edu (Ken W Smith) Date: Mon Jul 25 11:42:16 2005 Subject: [GAP Forum] Needed: Isomorphism onto SmallGroup Message-ID: Hi, I am constructing a database of certain combinatorial subsets of finite groups and I would like to use GAP's Small Group library to provide a standard way of referencing the groups in my list and certain subsets of these groups. But in order to do this, I need code that constructs an explicit isomorphism between a finite group (with a given presentation) and an isomorphic group in the Small Groups library. I have hundreds of examples like the following. Suppose we have a group, say, G := < x, y, z : x^5 = y^5 = z^4 = [x,y] = z*x*z^-1*x^3 = z*y*z^-1*y^3 > and a special subset of G, say, D = {1, x, x^2, x*y, x*y*z^2, x^-1*y^2*z^3}. GAP tells me that G is isomorphic to the group [100,11] in the Small Group Library. But now I need an explicit isomorphism from G onto SmallGroup( 100, 11 ) so that I can identify the set D with some subset of Elements( SmallGroup( 100, 11 ) ). Is there a convenient way to do this? (Note that the SmallGroup library views groups of order 100 as having 4 generators ... and I've given a different presentation, using 3 generators.) Any help here will be greatly appreciated! thanks, Ken --- Ken W. Smith, Professor of Mathematics, Central Michigan University 989-774-6521 (W), 774-2414 (Fax), 854-0185 (Cell) http://calcnet.cst.cmich.edu/faculty/smith/ From rm43 at evansville.edu Mon Jul 25 22:21:53 2005 From: rm43 at evansville.edu (Robert F. Morse) Date: Mon Jul 25 16:21:03 2005 Subject: [GAP Forum] Needed: Isomorphism onto SmallGroup In-Reply-To: References: Message-ID: <42E557F1.8030405@evansville.edu> Ken W Smith wrote: > Hi, > I am constructing a database of certain combinatorial subsets of > finite groups and I would like to use GAP's Small Group library to > provide a standard way of referencing the groups in my list and certain > subsets of these groups. But in order to do this, I need code that > constructs an explicit isomorphism between a finite group (with a given > presentation) and an isomorphic group in the Small Groups library. > > I have hundreds of examples like the following. Suppose we have a > group, say, > G := < x, y, z : x^5 = y^5 = z^4 = [x,y] = z*x*z^-1*x^3 = > z*y*z^-1*y^3 > > and a special subset of G, say, > D = {1, x, x^2, x*y, x*y*z^2, x^-1*y^2*z^3}. > GAP tells me that G is isomorphic to the group [100,11] in the Small > Group Library. But now I need an explicit isomorphism from G onto > SmallGroup( 100, 11 ) so that I can identify the set D with some subset > of Elements( SmallGroup( 100, 11 ) ). Is there a convenient way to > do this? (Note that the SmallGroup library views groups of order 100 as > having 4 generators ... and I've given a different presentation, using 3 > generators.) > > Any help here will be greatly appreciated! > > thanks, > Ken > Dear Ken, You can use the IsomorphismGroups command in GAP to find one isomorphism from G to SmallGroup([100,11]). gap> F := FreeGroup("x","y","z"); gap> AssignGeneratorVariables(F); #I Assigned the global variables [ x, y, z ] gap> R := [x^5, y^5, y^5, z^4, Comm(x,y), z*x*z^-1*x^3, z*y*z^-1*y^3]; [ x^5, y^5, y^5, z^4, x^-1*y^-1*x*y, z*x*z^-1*x^3, z*y*z^-1*y^3 ] gap> G := F/R; gap> IdGroup(G); [ 100, 11 ] gap> H := SmallGroup([100,11]); gap> iso := IsomorphismGroups(G,H); [ x, y, z ] -> [ f3^2*f4, f4^3, f1*f2*f3^2*f4^2 ] gap> IsBijective(iso); true Regards, Robert F. Morse From l.h.soicher at qmul.ac.uk Thu Jul 28 13:37:22 2005 From: l.h.soicher at qmul.ac.uk (Leonard Soicher) Date: Thu Jul 28 13:39:03 2005 Subject: [GAP Forum] Problem with GRAPE 4.2 under GAP 4.4.5 Message-ID: <20050728133722.A5849@cantor.maths.qmul.ac.uk> Dear GAP-Forum, Due to a slight change in the functionality of `StabChainBaseStrongGenerators' in GAP 4.4.5, there is a problem (under Unix) when GRAPE/nauty computes a trivial automorphism group for a graph (this leads to a break-loop being entered, not incorrect results being returned). This problem may be fixed by replacing the file $GAPROOT/pkg/grape/lib/grape.g by the file at http://www.maths.qmul.ac.uk/~leonard/grape/grape.g Users of the Design 1.1 package under a Unix version of GAP 4.4.5 should also make this change to GRAPE. I am grateful to Akihide Hanaki for pointing out this problem. Regards, Leonard From r_n_tsai at yahoo.com Thu Jul 28 20:39:23 2005 From: r_n_tsai at yahoo.com (R.N. Tsai) Date: Thu Jul 28 20:40:50 2005 Subject: [GAP Forum] function UnivariatePolynomial is destructive Message-ID: <20050728193923.46013.qmail@web33711.mail.mud.yahoo.com> Dear gap forum I just noticed that the function "UnivariatePolynomial" changes its input argument : gap> c:=[0,1,2,3,0]; [ 0, 1, 2, 3, 0 ] gap> p:=UnivariatePolynomial(Integers,c); 3*x_1^3+2*x_1^2+x_1 gap> c; [ 1, 2, 3 ] I found a workaround p:=UnivariatePolynomial(F,StructuralCopy(c),1); but I think it might be more "natural" to make it nondistructive by default. Regards, R.N. --------------------------------- Start your day with Yahoo! - make it your home page From greg.gamble at math.rwth-aachen.de Fri Jul 29 17:49:26 2005 From: greg.gamble at math.rwth-aachen.de (Greg Gamble) Date: Fri Jul 29 17:49:38 2005 Subject: [GAP Forum] Release of ANUPQ 2.2 Message-ID: <20050729164926.GB4525@math.rwth-aachen.de> Dear Forum, We are pleased to announce the release of ANUPQ 2.2. The changes include: * a modification of the pq C program to avoid overflow in the calculation of binomial coefficients * a fix for a bug reported by Tobias Rossmann in the calculation of descendants when the StepSize was not 1 * modifications suggested by Gary Zablackis that enables ANUPQ to compile and so function under cygwin on Windows The package authors would like to thank Tobias and Gary for their contributions to the new version of ANUPQ. Regards, Greg Gamble, Werner Nickel and Eamonn O'Brien From greg.gamble at math.rwth-aachen.de Fri Jul 29 17:53:33 2005 From: greg.gamble at math.rwth-aachen.de (Greg Gamble) Date: Fri Jul 29 17:53:45 2005 Subject: [GAP Forum] Release of ANUPQ 2.2 Message-ID: <20050729165333.GA4793@math.rwth-aachen.de> Dear Forum, We are pleased to announce the release of ANUPQ 2.2. The changes include: * a modification of the pq C program to avoid overflow in the calculation of binomial coefficients * a fix for a bug reported by Tobias Rossmann in the calculation of descendants when the StepSize was not 1 * modifications suggested by Gary Zablackis that enables ANUPQ to compile and so function under cygwin on Windows The package authors would like to thank Tobias and Gary for their contributions to the new version of ANUPQ. Regards, Greg Gamble, Werner Nickel and Eamonn O'Brien From waki at cc.hirosaki-u.ac.jp Mon Aug 1 06:47:38 2005 From: waki at cc.hirosaki-u.ac.jp (Katsushi Waki) Date: Mon Aug 1 06:48:42 2005 Subject: [GAP Forum] AC2005 Message-ID: <20050801.144738.21933959.waki@cc.hirosaki-u.ac.jp> ********************************************************************* The 6th Symposium on Algebra and Computation (AC2005) Tokyo Metropolitan University 15 -18 November 2005 ********************************************************************* The Symposium on Algebra and Computation is a workshop held every two years aiming to create an active interrelationship between several branches of algebra and computer science; those areas have originally been taken to be independent from each other and do not have occasions of discussion to meet together. *** Topics *** - Algorithms in algebra and discrete mathematics such as Number Theory, Group Theory, Ring Theory, Combinatorics, Graph Theory. - Cryptography, Coding Theory, Symbolic Computation and other fields of Computer Application. - Theory of Programming, Theory of Computation, Symbolic Logic, and other fields in Theoretical Computer Science. Proposals of new related topics are also welcomed. *** Special Talks *** The following speakers agreed to participate: Masahiko Sato (Kyoto Univ., Japan) Gerhard Hiss (RWTH Aachen Univ., Germany) Aneesh Karve (Wisconsin-Madison Univ., USA) Further we are negotiating with William Stein (UC San Diego, USA) about a special talk. *** To those interested in giving talks *** When you are going to give a talk, please submit a mail to Contact Address: ac2005@tnt.math.metro-u.ac.jp including the following information of the talk: # Title # Abstract (50 -- 100 words) # Author (For more than 1 author, mark the speaker with an asterisk *) + Affiliation + Email address # Duration (20--40 minutes) # Other requests *** Deadline of submission *** 30 September 2005 *** Proceedings *** Proceedings will be published electronically in ftp://tnt.math.metro-u.ac.jp/pub/ in which you can get those of AC95/97/99/2001/2003. *** Organizers *** Ken Nakamula (Tokyo Metropolitan Univ.) Nobuki Takayama (Kobe Univ.) Katsushi Waki (Hirosaki Univ.) Hirofumi Tsumura (Tokyo Metropolitan Univ.) Toshihiko Kurata (Hosei Univ.) Shigenori Uchiyama (NTT) Web: http://tnt.math.metro-u.ac.jp/ac/2005/ Email: ac2005@tnt.math.metro-u.ac.jp From jonbarkhurst at hotmail.com Mon Aug 1 16:00:23 2005 From: jonbarkhurst at hotmail.com (jon barkhurst) Date: Tue Aug 2 12:26:08 2005 Subject: [GAP Forum] a very elementary problem Message-ID: I'm a new user to gap. ( I got my MS 30 years ago and am getting up to speed). I'm trying to show that the units mod 20 are isomorphic to C2 X C4. I can't get my script to work. would someone give me a script, ( collection of commands) that works? Many thanks. Jon Barkhurst From alexk at mcs.st-and.ac.uk Tue Aug 2 14:58:22 2005 From: alexk at mcs.st-and.ac.uk (Alexander Konovalov) Date: Tue Aug 2 14:54:13 2005 Subject: [GAP Forum] function UnivariatePolynomial is destructive In-Reply-To: <20050728193923.46013.qmail@web33711.mail.mud.yahoo.com> Message-ID: Dear Dr. R.N.Tsai, Thank you very much for reporting this. This is already fixed in GAP 4.4.5, so please upgrade your system. Since you already have GAP 4.4.4, it is enough to get fix4r4p5 archive from the page http://www.gap-system.org/Download/upgrade.html Sincerely yours, Alexander Konovalov On Thu, 28 Jul 2005, R.N. Tsai wrote: > Dear gap forum > > I just noticed that the function "UnivariatePolynomial" changes its input argument : > > gap> c:=[0,1,2,3,0]; > [ 0, 1, 2, 3, 0 ] > gap> p:=UnivariatePolynomial(Integers,c); > 3*x_1^3+2*x_1^2+x_1 > gap> c; > [ 1, 2, 3 ] > > I found a workaround p:=UnivariatePolynomial(F,StructuralCopy(c),1); but I think > it might be more "natural" to make it nondistructive by default. > > Regards, > > R.N. > > > --------------------------------- > Start your day with Yahoo! - make it your home page > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From thomas.breuer at math.rwth-aachen.de Thu Aug 4 13:26:40 2005 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Thu Aug 4 13:26:53 2005 Subject: [GAP Forum] a very elementary problem Message-ID: <20050804122640.DE470A3EFC@antares.math.rwth-aachen.de> Dear GAP Forum, Jon Barkhurst wrote > I'm a new user to gap. ( I got my MS 30 years ago and am getting up to > speed). I'm trying to show that the units mod 20 are isomorphic to C2 X C4. > I can't get my script to work. would someone give me a script, ( > collection of commands) that works? Many thanks. Jon Barkhurst The following works. gap> R:= Integers mod 20;; gap> u:= Units( R );; gap> IsAbelian( u ); true gap> AbelianInvariants( u ); [ 2, 4 ] Here are two alternatives. gap> StructureDescription( u ); "C4 x C2" gap> IdGroup( u ); [ 8, 2 ] gap> IdGroup( DirectProduct( CyclicGroup(2), CyclicGroup(4) ) ); [ 8, 2 ] The function `StructureDescription' returns a string that gives information about the structure of the group. For abelian groups, this is enough to determine the isomorphism type. The function `IdGroup' returns a list that identifies the isomorphism type of the given groups, that is, the result for two groups is equal if and only if they are isomorphic. `IdGroup' works only for groups that are small or that have a special structure. More information about these GAP functions can be found in the Reference Manual. All the best, Thomas From A.C.Aitchison at dpmms.cam.ac.uk Fri Aug 5 11:59:26 2005 From: A.C.Aitchison at dpmms.cam.ac.uk (Dr Andrew C Aitchison) Date: Fri Aug 5 11:59:46 2005 Subject: [GAP Forum] SPECHT - now that GAP3 is long in the tooth. Message-ID: I've been asked to install SPECHT, and hence GAP3. Since GAP3 is no longer supported and we have been using GAP4 for years, I'm reluctant to make GAP3 available again. I'm particularly worried about people getting wrong answers from it, although I guess that in many cases the result can be verified independently once found. My instinct is to point the user at a way of solving her problem in GAP4 rather than enabling her to use GAP3. Comments ? -- Dr. Andrew C. Aitchison Computer Officer, DPMMS, Cambridge A.C.Aitchison@dpmms.cam.ac.uk http://www.dpmms.cam.ac.uk/~werdna From joachim.neubueser at math.rwth-aachen.de Mon Aug 8 18:28:07 2005 From: joachim.neubueser at math.rwth-aachen.de (Joachim Neubueser) Date: Mon Aug 8 18:29:25 2005 Subject: [GAP Forum] SPECHT - now that GAP3 is long in the tooth. In-Reply-To: References: Message-ID: <20050808172807.GB6249@math.rwth-aachen.de> Dear Dr. Aitchison, On Fri, Aug 05, 2005 at 11:59:26AM +0100, you wrote to the GAP Forum: > > I've been asked to install SPECHT, and hence GAP3. > Since GAP3 is no longer supported and we have been using GAP4 for years, > I'm reluctant to make GAP3 available again. I'm particularly worried > about people getting wrong answers from it, although I guess that in > many cases the result can be verified independently once found. > > My instinct is to point the user at a way of solving her problem > in GAP4 rather than enabling her to use GAP3. > > Comments ? > > -- > Dr. Andrew C. Aitchison Computer Officer, DPMMS, Cambridge > A.C.Aitchison@dpmms.cam.ac.uk http://www.dpmms.cam.ac.uk/~werdna I am afraid that, while generally GAP4 should be used, we can only recommend still to install GAP3 and its packages, if e.g. a user needs the functionality of SPECHT. SPECHT makes use of the large GAP3 package CHEVIE and both of them, as well as a few further ones have unfortunately not yet been tranferred to GAP4 by their authors. As you know, GAP is a project depending on the voluntary contributions of many people and this is in particular true for the 'packages' which remain fully under the control and responsibility of their individual authors. Although transfer of GAP3 code to GAP4 is strongly encouraged, the 'GAP team' (whatever that means), has no way of putting any pressure on these authors. As to reliability, from all we know, GAP3 was in a pretty good shape when further development of it was abundoned because of the shift to GAP4. And this shift was not done because of doubts in the reliability but in the hope that the new system GAP4 would offer more possibilities of extension, a hope that in our view has come true. So we hope that installing GAP3 now should not be a greater risk than at the time of the shift to GAP4. But (as with GAP4, after all) it is given away without any warranty. Hope that this information will help your decision. With kind regards Joachim Neubueser --------------------------------------------------------------------- Prof. em. J. Neubueser Lehrstuhl D fuer Mathematik RWTH Aachen Germany From Frank.Luebeck at math.rwth-aachen.de Mon Aug 8 21:28:43 2005 From: Frank.Luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Mon Aug 8 21:29:00 2005 Subject: [GAP Forum] SPECHT - now that GAP3 is long in the tooth. In-Reply-To: References: Message-ID: <20050808202843.GA18342@math.rwth-aachen.de> On Fri, Aug 05, 2005 at 11:59:26AM +0100, Dr Andrew C Aitchison wrote: > > I've been asked to install SPECHT, and hence GAP3. > Since GAP3 is no longer supported and we have been using GAP4 for years, > I'm reluctant to make GAP3 available again. I'm particularly worried > about people getting wrong answers from it, although I guess that in > many cases the result can be verified independently once found. > > My instinct is to point the user at a way of solving her problem > in GAP4 rather than enabling her to use GAP3. > > Comments ? Dear Dr. Aitchison, dear Forum, It is true that GAP 4 contains a lot of new or improved functionality compared to GAP 3. Problems which can be handled with both versions are often better done with GAP 4. Nevertheless, there exists code written for GAP 3 which is still used and still working well - for example SPECHT. (Creating a version for GAP 4 would be a major task with little benefit.) I'm still using GAP 3 a lot and I'm not aware of any serious bug. So, I recommend to install GAP 3 on your system if you have a user who wants to use GAP 3 programs. By the way, on my web page I provide an archive which makes the installation of GAP 3 (including SPECHT 2.4) somewhat easier than following the "official" installation instructions: http://www.math.rwth-aachen.de:8001/~Frank.Luebeck/gap/GAP3 With best regards, Frank Luebeck -- /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck@Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From maasiru at yahoo.com Wed Aug 10 15:30:09 2005 From: maasiru at yahoo.com (muniru asiru) Date: Thu Aug 11 09:47:41 2005 Subject: [GAP Forum] Need help Message-ID: <20050810143009.30039.qmail@web53307.mail.yahoo.com> Sirs, Sometimes when I am running a very large program on loop, gap often returns an error message likke the one below: exceeded the permitted memory (`-o' command line option) at t := t + 1; called from ( ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> brk> How do I avoid this? My program is pretty large. It involves a matrix of order 3600 by 3600. I will appreciate it if anyone can be help. Sincerely, M.A. Asiru __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From wright at uoregon.edu Fri Aug 12 19:29:49 2005 From: wright at uoregon.edu (Charles Wright) Date: Fri Aug 12 19:32:18 2005 Subject: [GAP Forum] Polenta package accepted Message-ID: <42FCEA9D.8060803@uoregon.edu> Dear GAP Forum members, It is a pleasure to announce the official acceptance of Bjoern Assmann?s GAP package Polenta for computing with matrix groups defined over the rationals, integers or finite fields, with emphasis on polycyclic groups. An early version of the package has been part of the standard GAP distribution for some time. The latest version, Polenta 1.2.1, containing some enhancements, is now available for downloading on the main GAP web site or at www.icm.tu-bs.de/ag_algebra/software/assmann/Polenta/ . Note that the package requires both the Alnuth and Polycyclic packages, as well as the external KANT/KASH program, and that it is only available for linux/UNIX-type operating systems. Charles R.B. Wright Eugene, Oregon From dennis at rkd.math.cornell.edu Tue Aug 16 16:19:14 2005 From: dennis at rkd.math.cornell.edu (R. Keith Dennis) Date: Tue Aug 16 16:17:17 2005 Subject: [GAP Forum] RationalClass? Message-ID: <200508161519.j7GFJEef021575@rkd.math.cornell.edu> This is probably a silly question which is answered in the manual somewhere, but I didn't find it: Is there a function analogous to "IsConjugate" which does the same sort of thing for rational conjugacy classes, maybe something like IsRationalConjugate? If not, what's the most computationally efficient way of implementing it? Thanks! Keith From laurent.bartholdi at gmail.com Wed Aug 24 14:48:07 2005 From: laurent.bartholdi at gmail.com (Laurent Bartholdi) Date: Wed Aug 24 14:48:22 2005 Subject: [GAP Forum] jacobson radical? Message-ID: <1ff637850508240648353a4a5c@mail.gmail.com> hi, i've seen there are no commands in GAP4 to compute the jacobson radical of a (finite-dimensional) algebra. does anybody have code for this? this sounds like a meataxe job, except that the matrices giving the action of the algebra's generators on itself are usually not invertible. thanks in advance, laurent -- Laurent Bartholdi \ laurent.bartholdigmailcom EPFL SB SMA IGAT \ T?l?phone: +41 21-6930380 CH-1015 Lausanne, Switzerland \ Fax: +41 21-6930385 From gap at gap.zssm.zp.ua Wed Aug 24 18:17:18 2005 From: gap at gap.zssm.zp.ua (Alexander Konovalov) Date: Wed Aug 24 16:54:40 2005 Subject: [GAP Forum] RationalClass? In-Reply-To: <200508161519.j7GFJEef021575@rkd.math.cornell.edu> References: <200508161519.j7GFJEef021575@rkd.math.cornell.edu> Message-ID: <2418736550.20050824191718@gap.zssm.zp.ua> Dear Keith, There is no function IsRationalConjugate in GAP 4.4.5. The simplest implementation is the following one: IsRationalConjugate := function(G,g,h) return h in RationalClass(G,g); end; A more proper approach is to install IsRationalConjugate as an operation: DeclareOperation( "IsRationalConjugate", [ IsGroup, IsMultiplicativeElementWithInverse, IsMultiplicativeElementWithInverse ] ); InstallMethod( IsRationalConjugate, "for group elements", IsCollsElmsElms, [ IsGroup, IsMultiplicativeElementWithInverse, IsMultiplicativeElementWithInverse ], function(g,x,y) return y in RationalClass(g,x); end); Hope this helps. Best wishes, Alexander Konovalov On Tuesday, August 16, 2005 at 5:19:14 PM R. Keith Dennis wrote: > This is probably a silly question which is answered in the manual > somewhere, but I didn't find it: > Is there a function analogous to "IsConjugate" which does the same > sort of thing for rational conjugacy classes, maybe something like > IsRationalConjugate? > If not, what's the most computationally efficient way of implementing > it? > Thanks! > Keith From mckay at encs.concordia.ca Wed Aug 24 17:17:46 2005 From: mckay at encs.concordia.ca (MCKAY john) Date: Wed Aug 24 17:17:57 2005 Subject: [GAP Forum] RationalClass? In-Reply-To: <2418736550.20050824191718@gap.zssm.zp.ua> References: <200508161519.j7GFJEef021575@rkd.math.cornell.edu> <2418736550.20050824191718@gap.zssm.zp.ua> Message-ID: It seems to me that methods for computing rational classes depend heavily on the availability of the power maps (in the character table for instance) of the group. John -- But leave the wise to wrangle, and with me the quarrel of the universe let be; and, in some corner of the hubbub couched, make game of that which makes as much of thee. From gap at gap.zssm.zp.ua Wed Aug 24 21:53:06 2005 From: gap at gap.zssm.zp.ua (Alexander Konovalov) Date: Wed Aug 24 20:31:23 2005 Subject: [GAP Forum] jacobson radical? In-Reply-To: <1ff637850508240648353a4a5c@mail.gmail.com> References: <1ff637850508240648353a4a5c@mail.gmail.com> Message-ID: <1069684646.20050824225306@gap.zssm.zp.ua> Dear Laurent, Please see the documentation for the RadicalOfAlgebra function. Sincerely yours, Alexander Konovalov On Wednesday, August 24, 2005 at 3:48:07 PM Laurent Bartholdi wrote: > hi, > i've seen there are no commands in GAP4 to compute the > jacobson radical of a (finite-dimensional) algebra. > does anybody have code for this? > this sounds like a meataxe job, except that the matrices > giving the action of the algebra's generators on itself > are usually not invertible. > thanks in advance, > laurent From hulpke at frii.com Fri Aug 26 04:19:20 2005 From: hulpke at frii.com (Alexander Hulpke) Date: Fri Aug 26 04:19:42 2005 Subject: [GAP Forum] RationalClass? In-Reply-To: References: <200508161519.j7GFJEef021575@rkd.math.cornell.edu> <2418736550.20050824191718@gap.zssm.zp.ua> Message-ID: Dear John, Dear Gap-Forum, > > It seems to me that methods for computing rational classes > depend heavily on the availability of the power maps (in the > character table for instance) of the group. Indeed they do -- the algorithms for computing rational classes essentially calculate part of the power map. In general the character table is not yet known at this point to the computer, if it was one certainly could use it. All the best, , Alexander From freundt at math.TU-Berlin.DE Mon Aug 29 16:58:46 2005 From: freundt at math.TU-Berlin.DE (Sebastian Freundt) Date: Mon Aug 29 16:59:13 2005 Subject: [GAP Forum] [ANNOUNCE] GAP package QaoS-gap Message-ID: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Dear GAP Forum, the KANT Group Berlin is pleased to announce a GAP4 package for interfacing our new QaoS databases via GAP. Currently, we provide databases of transitive groups (up to degree 30; basically the same ones as shipped with GAP; thanks to Alexander Hulpke again) and algebraic number fields up to degree 9. The package works provided curl (see http://curl.haxx.se/) is properly installed and web access is granted. The package can be downloaded at http://www.math.tu-berlin.de/~kant/download/qaos-gap.tar.bz2 and ftp://ftp.math.tu-berlin.de/pub/algebra/Kant/contrib/ Documentation has been built from .texi sources (and can be rebuilt using make doc). PackageInfo.g is at: http://www.math.tu-berlin.de/~kant/download/qaos-gap.PackageInfo.g Query syntax follows the conventions from our web interface at http://www.math.tu-berlin.de/cgi-bin/kant/qaos/query.scm. Unfortunately, GAP does not support reals nor floats, thusly regulator information for number fields is a string. Nonetheless you can include criteria for regulators in the query, like: QaosNumberField("deg 2 class 5 reg > 8.3"); Comments are welcome. Best regards, Sebastian Freundt Sebastian Pauli -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (GNU/Linux) iD8DBQFDEzC/9zZ7AtDFZIYRAv4rAJ4p3/wvQvrHmCKviHNbkEaT4Li1MQCgjoBS 9gsvb/eqWDWPszELO2efDiA= =/uZY -----END PGP SIGNATURE----- From kohl at mathematik.uni-stuttgart.de Tue Aug 30 13:21:26 2005 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Tue Aug 30 13:21:38 2005 Subject: [GAP Forum] Need help In-Reply-To: <20050810143009.30039.qmail@web53307.mail.yahoo.com> References: <20050810143009.30039.qmail@web53307.mail.yahoo.com> Message-ID: <43144F46.10807@mathematik.uni-stuttgart.de> Dear Forum, Muniru Asiru wrote: > Sometimes when I am running a very large program on > loop, gap often returns an error message likke the one > below: > > exceeded the permitted memory (`-o' command line > option) at > t := t + 1; > called from > ( ) called from read-eval-loop > Entering break read-eval-print loop ... > you can 'quit;' to quit to outer loop, or > you can 'return;' to continue > brk> > brk> > > How do I avoid this? > > My program is pretty large. It involves a matrix of > order 3600 by 3600. For general help, see the FAQ: http://www.gap-system.org/~gap/Faq/Complaints/complaints2.html. The command line options -o and -m for parametrizing GAP's memory allocation can sometimes be helpful as well: http://www.gap-system.org/Manuals/doc/htm/ref/CHAP003.htm#SECT001 However, in general it is a good advice to try to reduce the computational complexity of a problem by means of theoretical considerations before starting a computation which needs enormously much memory or runtime. Hope this helps, Stefan Kohl From rschmied at Princeton.EDU Fri Sep 2 03:02:17 2005 From: rschmied at Princeton.EDU (Roman Schmied) Date: Fri Sep 2 03:02:38 2005 Subject: [GAP Forum] bug in CharacterTable Message-ID: <5568FA96-C3B0-47A8-92E3-29A7C529F465@Princeton.EDU> Hi Gap forum, An error occurs when you display a certain character table: gap> g := Group( (1,4,7)(2,5,8)(3,6,9)(10,11,12), (1,2,3), (1,4)(2,5) (3,6)(10,12) );; gap> Display(CharacterTable(g)); Bus error I am using GAP4, Version: 4.4.5 of 13-May-05, powerpc-apple- darwin8.1.0-gcc Cheers! Roman. ------------------------------------------------------- Roman Schmied 10B Frick Lab, Department of Chemistry Princeton University, Princeton, NJ 08544 (609)258-3357 From justin at mac.com Fri Sep 2 03:38:56 2005 From: justin at mac.com (Justin Walker) Date: Fri Sep 2 03:39:15 2005 Subject: [GAP Forum] bug in CharacterTable In-Reply-To: <5568FA96-C3B0-47A8-92E3-29A7C529F465@Princeton.EDU> References: <5568FA96-C3B0-47A8-92E3-29A7C529F465@Princeton.EDU> Message-ID: <146cd741489418b6979ab331c377ad6b@mac.com> Hi, all, On Sep 1, 2005, at 21:02, Roman Schmied wrote: > An error occurs when you display a certain character table: > > gap> g := Group( (1,4,7)(2,5,8)(3,6,9)(10,11,12), (1,2,3), > (1,4)(2,5)(3,6)(10,12) );; > gap> Display(CharacterTable(g)); > Bus error > > I am using GAP4, Version: 4.4.5 of 13-May-05, > powerpc-apple-darwin8.1.0-gcc FWIW, here's what I find. With GAP4, Version: 4.4.5 of 13-May-05, powerpc-apple-darwin7.9.0-gcc (667MHz G4 laptop), I have no problem with this sequence (it completes, with no error). With GAP4, Version: 4.4.5 of 13-May-05, powerpc-apple-darwin8.1.0-gcc (2x2.7GHz G5 tower), the following happens: - run with the shell file gap.sh, I get the buss error. - run without any args, as bin/powerpc-apple-darwin8.1.0-gcc/gap, without the args as used in the shell file, I do *not* get the buss error, and completes as on the G4. Odd. The core file generated by the crash is not very informative (no symbols). Regards, Justin -- Justin C. Walker, Curmudgeon-At-Large * Institute for General Semantics | "Weaseling out of things is what | separates us from the animals. | Well, except the weasel." | - Homer J Simpson *--------------------------------------*-------------------------------* From hulpke at math.colostate.edu Fri Sep 2 22:06:03 2005 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri Sep 2 22:06:18 2005 Subject: [GAP Forum] bug in CharacterTable In-Reply-To: <5568FA96-C3B0-47A8-92E3-29A7C529F465@Princeton.EDU> References: <5568FA96-C3B0-47A8-92E3-29A7C529F465@Princeton.EDU> Message-ID: Dear Gap-Forum, Just for the record: We investigated the problem reported by Roman Schmied. To our knowledge it seems to be a problem involving gcc3.3 and/or OS X 10.4.1 If you are using GAP on a Macintosh under OS X 10.4 (Tiger) we recommend that you update to the current version 10.4.2 (using `Software Update' in the Apple-Menu) and use gcc4 (which comes as part of XCode 2) Best wishes, Alexander Hulpke From B.Hoefling at tu-bs.de Sat Sep 3 21:48:19 2005 From: B.Hoefling at tu-bs.de (=?ISO-8859-1?Q?Familie_H=F6fling?=) Date: Sat Sep 3 22:12:07 2005 Subject: [GAP Forum] bug in CharacterTable In-Reply-To: References: <5568FA96-C3B0-47A8-92E3-29A7C529F465@Princeton.EDU> Message-ID: <846F9E5D-5731-40F3-A261-85A01A542933@tu-bs.de> Dear all, it has turned out that the bug recently reported by Roman Schmied is in the GAP kernel and has nothing to do with the Mac OS or compiler version used (but the effect of the bug may vary depending on the OS and compiler used). A fix for this bug will hopefully be included in the next GAP update. Thanks to Roman Schmied for reporting this bug, and to Justin Walker for confirming it. Cheers, Burkhard. From mckay at encs.concordia.ca Sun Sep 4 14:40:17 2005 From: mckay at encs.concordia.ca (MCKAY john) Date: Sun Sep 4 14:40:37 2005 Subject: [GAP Forum] bug in CharacterTable In-Reply-To: <5568FA96-C3B0-47A8-92E3-29A7C529F465@Princeton.EDU> References: <5568FA96-C3B0-47A8-92E3-29A7C529F465@Princeton.EDU> Message-ID: It works for me: g:=Group(.....);; Order(g) 162 c:=CharacterTab;e(g); Display(c); {modulo trivialities}; John McKay On Thu, 1 Sep 2005, Roman Schmied wrote: > Hi Gap forum, > > An error occurs when you display a certain character table: > > gap> g := Group( (1,4,7)(2,5,8)(3,6,9)(10,11,12), (1,2,3), (1,4)(2,5) > (3,6)(10,12) );; > gap> Display(CharacterTable(g)); > Bus error > > I am using GAP4, Version: 4.4.5 of 13-May-05, powerpc-apple- > darwin8.1.0-gcc > > Cheers! > > Roman. > > > ------------------------------------------------------- > Roman Schmied 10B Frick Lab, Department of Chemistry > Princeton University, Princeton, NJ 08544 (609)258-3357 > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > -- But leave the wise to wrangle, and with me the quarrel of the universe let be; and, in some corner of the hubbub couched, make game of that which makes as much of thee. From max.neunhoeffer at math.rwth-aachen.de Mon Sep 5 10:05:04 2005 From: max.neunhoeffer at math.rwth-aachen.de (Max Neunhoeffer) Date: Mon Sep 5 10:05:59 2005 Subject: [GAP Forum] Announcement of GAP 4.4.6 Message-ID: <20050905090504.GA25609@math.rwth-aachen.de> Dear Forum, This is to announce the Update to GAP version 4.4.6. The priority to install this Update is high, because some of the now fixed bugs in version 4.4.5 could produce wrong results without warning. For information about fixed bugs and new features see the section about Release 4.4.6 in http://www.gap-system.org/Download/Updates/gap4r4p6.html GAP Bugfixes and Updates are comprehensive, i.e. you can upgrade from any version of GAP 4.4 to 4.4.6 using this Update. You should not apply this fix to any version of GAP before GAP 4.4. (If you run such an old version, please install GAP 4.4.6 directly!) For download and installation instructions see http://www.gap-system.org/Download/upgrade.html There you also find instructions how to test whether the Update has been installed successfully. Note that the same page has a section which describes how to check whether all your installed GAP packages are up to date. It might be a good idea to check this after an upgrade to GAP 4.4.6, as new versions of packages might have been released independently of GAP. For the GAP Group, Thomas Breuer, Frank Luebeck, and Max Neunhoeffer From kohl at mathematik.uni-stuttgart.de Fri Sep 9 11:01:38 2005 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Fri Sep 9 11:02:30 2005 Subject: [GAP Forum] RCWA <-> GAP 4.4.6, a short notification Message-ID: <43215D82.30705@mathematik.uni-stuttgart.de> Dear Forum, This message is only relevant for those of you who use the RCWA package: With the recent update from GAP 4.4.5 to GAP 4.4.6, some code which was formerly misplaced in RCWA has been moved to the main GAP library. Former versions of RCWA (<= 1.2.1) still contain that code, and trying to load them in GAP 4.4.6 (or later) will yield an error message, since the respective variables PadicValuation EpimorphismFromFreeGroup Float IsFloat are now already defined in the library. The remedy is to update to the recent version 1.2.2 of RCWA of September 2, which does no longer contain the code which has been moved into the library. Apologies for any inconveniences, Stefan Kohl --------------------------------------------------------------------------- Stefan Kohl Institut f?r Geometrie und Topologie Pfaffenwaldring 57 Universit?t Stuttgart 70550 Stuttgart / Germany E-mail: kohl@mathematik.uni-stuttgart.de Web: http://www.cip.mathematik.uni-stuttgart.de/~kohlsn/ --------------------------------------------------------------------------- From sazzad at pdx.edu Wed Sep 14 02:44:33 2005 From: sazzad at pdx.edu (sazzad@pdx.edu) Date: Wed Sep 14 02:44:48 2005 Subject: [GAP Forum] sine cosine decomposition In-Reply-To: <43215D82.30705@mathematik.uni-stuttgart.de> References: <43215D82.30705@mathematik.uni-stuttgart.de> Message-ID: <1126662273.43278081e9601@webmail.pdx.edu> Hi, Is there anyone can decompose a 9X9 matrics to its sine cosine decomposition or let me give some hints in this regards in GAP. Thanks, sazzad Quoting Stefan Kohl : > Dear Forum, > > This message is only relevant for those of you who use the RCWA package: > > With the recent update from GAP 4.4.5 to GAP 4.4.6, some code which was > formerly misplaced in RCWA has been moved to the main GAP library. > > Former versions of RCWA (<= 1.2.1) still contain that code, and trying > to load them in GAP 4.4.6 (or later) will yield an error message, > since the respective variables > > PadicValuation > EpimorphismFromFreeGroup > Float > IsFloat > > are now already defined in the library. > > The remedy is to update to the recent version 1.2.2 of RCWA of > September 2, which does no longer contain the code which has been moved > into the library. > > Apologies for any inconveniences, > > Stefan Kohl > > --------------------------------------------------------------------------- > Stefan Kohl > Institut f?r Geometrie und Topologie > Pfaffenwaldring 57 > Universit?t Stuttgart > 70550 Stuttgart / Germany > > E-mail: kohl@mathematik.uni-stuttgart.de > Web: http://www.cip.mathematik.uni-stuttgart.de/~kohlsn/ > --------------------------------------------------------------------------- > > > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > From rschmied at Princeton.EDU Wed Sep 14 20:28:26 2005 From: rschmied at Princeton.EDU (Roman Schmied) Date: Wed Sep 14 20:29:42 2005 Subject: [GAP Forum] Re: [GAP Support] wreath product factorization In-Reply-To: <200509141920.56137.costanti@science.unitn.it> References: <0126306F-66EE-440F-B8CB-1769CF5F60FC@Princeton.EDU> <200509141920.56137.costanti@science.unitn.it> Message-ID: <3EF77E54-0248-4A53-B367-CA2EA6CD1723@Princeton.EDU> Sorry for initial posting to the wrong address. I am much more interested in question 2. StructureDescription and DirectFactorsOfGroup would be what I am looking for in the case of direct products, but they seem to crash or give incomplete results quite easily (I am running the latest version of GAP): gap> G := DirectProduct( CyclicGroup(2) , CyclicGroup(3) , SymmetricGroup(4) );; gap> DirectFactorsOfGroup(G); --> crashes gap> G := DirectProduct( CyclicGroup(2) , CyclicGroup(3) , CyclicGroup (4) );; gap> StructureDescription(G); "C12 x C2" --> incomplete decomposition Also, I am more interested in similar decompositions of wreath products. Since my groups are small (at most a few thousand elements) I could maybe write this myself, by looping over the "small groups" database and trying all wreath products until I find one that is isomorphic to the group I want to decompose. Is this reasonable? Thanks! Roman. On Sep 14, 2005, at 13:20, Marco Costantini wrote: > Dear Roman, > there are two different questions: > 1) given a group G which is the output of DirectProduct, find out > its factors, > and similar for WreathProduct. > 2) given any group G, for instance > gap> G := Group( (1,2,3,4,5), (1,2), (6,7,8), (6,7) ); > find out that G is the direct product of Group( (1,2,3,4,5), > (1,2) ) and > Group( (6,7,8), (6,7) ). Similar for wreath product. > > Question 1 is easy. The information about direct product G is > stored in the > record DirectProductInfo(G), and the component DirectProductInfo > ( G ).groups > contains the list of factors. > > gap> G := DirectProduct( SymmetricGroup(5) , SymmetricGroup(3) );; > gap> DirectProductInfo( G ); > rec( groups := [ Sym( [ 1 .. 5 ] ), Sym( [ 1 .. 3 ] ) ], olds := > [ [ 1 .. 5 ], > [ 1 .. 3 ] ], > news := [ [ 1, 2, 3, 4, 5 ], [ 6, 7, 8 ] ], perms := [ (), > (1,6,3,8,5,2,7,4) > ], embeddings := [ ], > projections := [ ] ) > gap> DirectProductInfo( G ).groups; > [ Sym( [ 1 .. 5 ] ), Sym( [ 1 .. 3 ] ) ] > > WreathProductInfo(G) is the analogous for wreath product. > > gap> G := WreathProduct( SymmetricGroup(5) , SymmetricGroup(3) );; > gap> WreathProductInfo(G).groups; > [ Sym( [ 1 .. 5 ] ), Sym( [ 1 .. 3 ] ) ] > > Question 2 is not so easy, but something can be done. A very recent > version of > Gap is required; try DirectFactorsOfGroup: > > gap> G := Group( (1,2,3,4,5), (1,2), (6,7,8), (6,7) );; > gap> DirectFactorsOfGroup( G ); > [ Group([ (6,7,8), (6,8) ]), Group([ (4,5), (1,5,2,4,3) ]) ] > > You may try also the function StructureDescription: > > gap> G := Group( (1,2,3,4,5), (1,2), (6,7,8), (6,7) );; > gap> StructureDescription( G ); > "S3 x S5" > > For further information, see the file lib/grpnames.gd in your Gap > installation. > > For wreath product, I don't know any possibility. > > (This answer is a draft, more detailed information may come later, > feel free > to write to support@gap-system.org if you need more help.) > > Please note that you have sent your mail to system.org> , which > is not the Gap forum. The address of Gap forum is system.org>, and > should be used only for topic that are likely to interest many of > the GAP > users. > For those topics that are more or less local to you, system.org> > is the right address. > > Best regards, > Marco Costantini > > > > On Wednesday 14 September 2005 16:58, Roman Schmied wrote: > >> dear GAP forum member, >> >> Is there a way to factorize groups with respect to the wreath >> product? For instance, given the group >> >> gap> g := WreathProduct( SymmetricGroup(5) , SymmetricGroup(3) );; >> >> I would like to decompose g and find that it is indeed the wreath >> product of S5 with S3. How can I do this? And what about the direct >> product >> >> gap> g := DirectProduct( SymmetricGroup(5) , SymmetricGroup(3) );; >> >> can this be factorized into S5 and S3? >> >> Cheers! >> Roman. >> > > From sal at dcs.st-and.ac.uk Wed Sep 14 22:06:56 2005 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Wed Sep 14 22:07:00 2005 Subject: [GAP Forum] Re: [GAP Support] wreath product factorization In-Reply-To: <3EF77E54-0248-4A53-B367-CA2EA6CD1723@Princeton.EDU> References: <0126306F-66EE-440F-B8CB-1769CF5F60FC@Princeton.EDU> <200509141920.56137.costanti@science.unitn.it> <3EF77E54-0248-4A53-B367-CA2EA6CD1723@Princeton.EDU> Message-ID: <20050914220656.49393b0f@localhost.localdomain> Just a brief thought, not a fully-thought out response, but for groups of this size, you could certainly obtain all the normal subgroups and examine each one to see if it is a direct product. If it is, and furthermore the quotient acts faithfully and transitively by conjugation on the factors, and the extension is split, all of which I think you can check, then the original group must be a wreath product. Steve > > Also, I am more interested in similar decompositions of wreath > products. Since my groups are small (at most a few thousand elements) > I could maybe write this myself, by looping over the "small groups" > database and trying all wreath products until I find one that is > isomorphic to the group I want to decompose. Is this reasonable? > > Thanks! > Roman. > > > On Sep 14, 2005, at 13:20, Marco Costantini wrote: > > > Dear Roman, > > there are two different questions: > > 1) given a group G which is the output of DirectProduct, find out > > its factors, > > and similar for WreathProduct. > > 2) given any group G, for instance > > gap> G := Group( (1,2,3,4,5), (1,2), (6,7,8), (6,7) ); > > find out that G is the direct product of Group( (1,2,3,4,5), > > (1,2) ) and > > Group( (6,7,8), (6,7) ). Similar for wreath product. > > > > Question 1 is easy. The information about direct product G is > > stored in the > > record DirectProductInfo(G), and the component DirectProductInfo > > ( G ).groups > > contains the list of factors. > > > > gap> G := DirectProduct( SymmetricGroup(5) , SymmetricGroup(3) );; > > gap> DirectProductInfo( G ); > > rec( groups := [ Sym( [ 1 .. 5 ] ), Sym( [ 1 .. 3 ] ) ], olds := > > [ [ 1 .. 5 ], > > [ 1 .. 3 ] ], > > news := [ [ 1, 2, 3, 4, 5 ], [ 6, 7, 8 ] ], perms := [ (), > > (1,6,3,8,5,2,7,4) > > ], embeddings := [ ], > > projections := [ ] ) > > gap> DirectProductInfo( G ).groups; > > [ Sym( [ 1 .. 5 ] ), Sym( [ 1 .. 3 ] ) ] > > > > WreathProductInfo(G) is the analogous for wreath product. > > > > gap> G := WreathProduct( SymmetricGroup(5) , SymmetricGroup(3) );; > > gap> WreathProductInfo(G).groups; > > [ Sym( [ 1 .. 5 ] ), Sym( [ 1 .. 3 ] ) ] > > > > Question 2 is not so easy, but something can be done. A very recent > > version of > > Gap is required; try DirectFactorsOfGroup: > > > > gap> G := Group( (1,2,3,4,5), (1,2), (6,7,8), (6,7) );; > > gap> DirectFactorsOfGroup( G ); > > [ Group([ (6,7,8), (6,8) ]), Group([ (4,5), (1,5,2,4,3) ]) ] > > > > You may try also the function StructureDescription: > > > > gap> G := Group( (1,2,3,4,5), (1,2), (6,7,8), (6,7) );; > > gap> StructureDescription( G ); > > "S3 x S5" > > > > For further information, see the file lib/grpnames.gd in your Gap > > installation. > > > > For wreath product, I don't know any possibility. > > > > (This answer is a draft, more detailed information may come later, > > feel free > > to write to support@gap-system.org if you need more help.) > > > > Please note that you have sent your mail to > system.org> , which > > is not the Gap forum. The address of Gap forum is > system.org>, and > > should be used only for topic that are likely to interest many of > > the GAP > > users. > > For those topics that are more or less local to you, > system.org> > > is the right address. > > > > Best regards, > > Marco Costantini > > > > > > > > On Wednesday 14 September 2005 16:58, Roman Schmied wrote: > > > >> dear GAP forum member, > >> > >> Is there a way to factorize groups with respect to the wreath > >> product? For instance, given the group > >> > >> gap> g := WreathProduct( SymmetricGroup(5) , SymmetricGroup(3) );; > >> > >> I would like to decompose g and find that it is indeed the wreath > >> product of S5 with S3. How can I do this? And what about the direct > >> product > >> > >> gap> g := DirectProduct( SymmetricGroup(5) , SymmetricGroup(3) );; > >> > >> can this be factorized into S5 and S3? > >> > >> Cheers! > >> Roman. > >> > > > > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From B.Hoefling at tu-bs.de Tue Sep 20 08:58:27 2005 From: B.Hoefling at tu-bs.de (=?ISO-8859-1?Q?Familie_H=F6fling?=) Date: Tue Sep 20 09:00:43 2005 Subject: [GAP Forum] wreath product factorization In-Reply-To: <3EF77E54-0248-4A53-B367-CA2EA6CD1723@Princeton.EDU> References: <0126306F-66EE-440F-B8CB-1769CF5F60FC@Princeton.EDU> <200509141920.56137.costanti@science.unitn.it> <3EF77E54-0248-4A53-B367-CA2EA6CD1723@Princeton.EDU> Message-ID: <28674851-8DDE-46B2-A1A3-B8FBAF85A5BD@tu-bs.de> Dear Roman, dear forum members, > I am much more interested in question 2. StructureDescription and > DirectFactorsOfGroup would be what I am looking for in the case of > direct products, but they seem to crash or give incomplete results > quite easily (I am running the latest version of GAP): > > gap> G := DirectProduct( CyclicGroup(2) , CyclicGroup(3) , > SymmetricGroup(4) );; > gap> DirectFactorsOfGroup(G); > > I cannot reproduce this problem with GAP 4.4.6. Could you send an e- mail with the full session transcript (including the GAP banner) to support@gap-system.org? > gap> G := DirectProduct( CyclicGroup(2) , CyclicGroup(3) , > CyclicGroup(4) );; > gap> StructureDescription(G); > "C12 x C2" > --> incomplete decomposition > > This is exactly what StructureDescription is supposed to do - see the GAP manual. (It does not claim to return a decomposition into directly indecomposable factors, but of course, you can read it off the above). > Also, I am more interested in similar decompositions of wreath > products. Since my groups are small (at most a few thousand > elements) I could maybe write this myself, by looping over the > "small groups" database and trying all wreath products until I find > one that is isomorphic to the group I want to decompose. Is this > reasonable? > > Are you looking for wreath products of permutation groups, or wreath products of an abstract group and a permutation group? Wreath products of permutation groups can easily be recognized by looking at their block structure, see `Blocks' in the GAP reference manual. In general, a transitive permutation group G embeds in the wreath product (action of block stabilizer on block) wr (action of G on orbit of block), and you can easily check equality by comparing orders. In the abstract case, the situation is much more complicated. Checking for group isomorphisms usually isn't very efficient, so if you have too many candidate groups to check against, this may not be too efficient. Instead, to look for a wreath product decomposition of an abstract group G, I would recommend to proceed as follows. Compute the normal subgroups of G and and check them for a suitable base group B. For B to be a base group, we need an integer n dividing | G:B|, such that |G:B| divides n!, and such that |B| is an n-th power. We then look for a normal subgroup K of B with |K|^n = |B|, whose G- orbit has length n, and whose normal closure in G is B. In addition, one has to check whether B has a complement C in G, and whether the point stabilizer in C of K acts trivially on K. Then you have G = K wr C. (If the action of the point stabilizer of K is nontrivial, you have a twisted wreath product.) All group actions are by conjugation, of course. Cheers, Burkhard. From sidhu at mri.ernet.in Tue Sep 20 09:20:57 2005 From: sidhu at mri.ernet.in (Siddhartha Sarkar) Date: Tue Sep 20 09:21:19 2005 Subject: [GAP Forum] about p-groups of maximal class Message-ID: Dear GAP forum, Is it possible to generate a p-group of maximal class, which has exponent bigger than p, by elements of order p only. regards, Siddhartha ***************************************************************** Siddhartha Sarkar Research Scholar Dept. of Mathematics Harish Chandra Research Institute Chhatnag Road,Jhusi Allahabad-211019. India. ***************************************************************** From costanti at science.unitn.it Tue Sep 20 11:12:00 2005 From: costanti at science.unitn.it (Marco Costantini) Date: Tue Sep 20 11:14:33 2005 Subject: [GAP Forum] about p-groups of maximal class In-Reply-To: References: Message-ID: <200509201212.00562.costanti@science.unitn.it> Dear Siddhartha, yes, it is. For p=2, you can use the Gap function DihedralGroup , for p odd I can send you the Gap code to generate such groups. Best regards, Marco Costantini On Tuesday 20 September 2005 10:20, Siddhartha Sarkar wrote: > Is it possible to generate a p-group of maximal class, which > has exponent bigger than p, by elements of order p only. From kohl at mathematik.uni-stuttgart.de Tue Sep 20 12:53:14 2005 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Tue Sep 20 12:53:26 2005 Subject: [GAP Forum] Re: sine cosine decomposition In-Reply-To: <1126662273.43278081e9601@webmail.pdx.edu> References: <43215D82.30705@mathematik.uni-stuttgart.de> <1126662273.43278081e9601@webmail.pdx.edu> Message-ID: <432FF82A.20501@mathematik.uni-stuttgart.de> Dear Forum, sazzad@pdx.edu wrote: > Is there anyone can decompose a 9X9 matrics to its sine cosine decomposition or > let me give some hints in this regards in GAP. I am not aware of a generally used term `sine cosine decomposition' of matrices over whatever ring or field. Thus I think it is necessary that you define this term before anyone can answer your question. In case that you in fact rather want to compute singular value decompositions of matices over the reals: GAP as a system for computational discrete algebra does not provide significant support for numerical computations with floating point numbers, thus for doing these likely the only sensible recommendation is to use another computer algebra system. However you may have noticed that with the last update, some undocumented *rudimentary* support for floating point numbers has been added. If a significant number of users requests this, it is conceivable that in later versions of GAP this will be improved and documented, but at this point, nothing can be promised in this respect. Best regards, Stefan Kohl From wkpark at gmail.com Tue Sep 20 21:48:13 2005 From: wkpark at gmail.com (Park Won-Kyu) Date: Tue Sep 20 21:48:31 2005 Subject: [GAP Forum] concat strings and define methods Message-ID: Hello I found the Concatenation("a","b") function but, can I define method like as "a"+"b", "a"+1 ? and is it possible to use [1,2]^(1,2) as "List([1,2],i->i^(1,2));" ? Please let me know how can i find related documentations or hints From kohl at mathematik.uni-stuttgart.de Thu Sep 22 11:11:08 2005 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Thu Sep 22 11:12:42 2005 Subject: [GAP Forum] concat strings and define methods In-Reply-To: References: Message-ID: <4332833C.8020503@mathematik.uni-stuttgart.de> Dear Forum, Park Won-Kyu wrote: > I found the Concatenation("a","b") function but, can I define method like as > > "a"+"b", "a"+1 ? > > and is it possible to use [1,2]^(1,2) as "List([1,2],i->i^(1,2));" ? > > Please let me know how can i find related documentations or hints What you can easily do is to install your own methods for these purposes, e.g.: InstallOtherMethod( \+, "for two strings", ReturnTrue, [ IsString, IsString ], 0, function ( s1, s2 ) return Concatenation(s1,s2); end ); InstallOtherMethod( \^, "for list and permutation", ReturnTrue, [ IsList, IsPerm ], 0, function ( l, perm ) return Permuted(l,perm); end ); However, I do not know what you think "a"+1 should return. Hope this helps, Stefan Kohl --------------------------------------------------------------------------- Stefan Kohl Institut f?r Geometrie und Topologie Pfaffenwaldring 57 Universit?t Stuttgart 70550 Stuttgart / Germany E-mail: kohl@mathematik.uni-stuttgart.de Web: http://www.cip.mathematik.uni-stuttgart.de/~kohlsn/ --------------------------------------------------------------------------- From dutour at liga.ens.fr Thu Sep 22 12:14:27 2005 From: dutour at liga.ens.fr (Mathieu Dutour) Date: Thu Sep 22 12:47:45 2005 Subject: [GAP Forum] Performance issue Message-ID: <20050922111427.GA18885@orge.ens.fr> Dear Gap forum, I have a performance problem with the following: v:=[1,2,4,5,1,2,4,2,6,2,5,1,3,5]; GR:=SymmetricGroup(Length(v)); Stabilizer(GR, v, Permuted); (very very slow) which is very long while the answer is clearly a product of the form Sym(X1) x Sym(X2) x ...... x Sym(Xn) I understand very well that a general purpose program like GAP cannot possibly find the best algorithm in every situation. But I encounter that problem already two times in my work and wrote according specialized procedures. On the other hand for this special action "Permuted", there is perhaps another way to deal with for general permutation groups: write v as list of sets and compute the stabilizer by a tower of stabilizers (as explained by Alexandre Hulpke a few months ago) Mathieu PS: see below the code of two approaches explained above: "special ad-hoc code" CycleFromList:=function(n, eList) local eL, i, iNext; eL:=[1..n]; for i in [1..Length(eList)] do iNext:=NextIdx(Length(eList), i); eL[eList[i]]:=eList[iNext]; od; return PermList(eL); end; __SymmetricPermutedStabilizer:=function(eVect) local p, H, ListGen, eVal, FC, FuncInsert; p:=Length(eVect); H:=Set(eVect); ListGen:=[]; FuncInsert:=function(eGen) if eGen<>() then Add(ListGen, eGen); fi; end; for eVal in H do FC:=Filtered([1..p], x->eVect[x]=eVal); FuncInsert(CycleFromList(p, FC)); if Length(FC)>=3 then FuncInsert(CycleFromList(p, FC{[1,2]})); fi; od; return PersoGroupPerm(ListGen); end; __SymmetricPermutedRepresentativeAction:=function(eVect1, eVect2) local p, H1, H2, ListStatus2, i, eList, eVal, iPos; H1:=Collected(eVect1); H2:=Collected(eVect2); if H1<>H2 then return fail; fi; p:=Length(eVect1); ListStatus2:=[]; for i in [1..p] do ListStatus2[i]:=1; od; eList:=[]; for i in [1..p] do eVal:=eVect1[i]; iPos:=1; while(true) do if ListStatus2[iPos]=1 then if eVect2[iPos]=eVal then eList[i]:=iPos; ListStatus2[iPos]:=0; break; fi; fi; iPos:=iPos+1; od; od; return PermList(eList); end; "tower of stabilizer" FuncStabilizer:=function(G, v) local Stab, eVal; Stab:=Group(SmallGeneratingSet(G)); for eVal in Set(v) do Stab:=Stabilizer(Stab, Filtered([1..Length(v)], x->v[x]=eVal), OnSets); Stab:=Group(SmallGeneratingSet(Stab)); od; return Stab; end; -- Mathieu Dutour Sikiric Researcher in Math Tel. (+972)2 65 84 103 and Computer Science Fax. (+972)2 56 30 702 Einstein Institute of Mathematics E-mail: Mathieu.Dutour@ens.fr Hebrew University of Jerusalem http://www.liga.ens.fr/~dutour Israel From Frank.Luebeck at math.rwth-aachen.de Fri Sep 23 07:04:42 2005 From: Frank.Luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Fri Sep 23 07:06:36 2005 Subject: [GAP Forum] concat strings and define methods In-Reply-To: References: Message-ID: <20050923060442.GF7098@math.rwth-aachen.de> On Wed, Sep 21, 2005 at 05:48:13AM +0900, Park Won-Kyu wrote: > I found the Concatenation("a","b") function but, can I define method like as > > "a"+"b", "a"+1 ? > > and is it possible to use [1,2]^(1,2) as "List([1,2],i->i^(1,2));" ? > > Please let me know how can i find related documentations or hints Dear Park Won-Kyu, dear Forum, It is possible, to install methods for expressions as above, as you could see in an answer by Stefan Kohl. (I also don't know, what you have in mind with "a"+1.) But I don't recommend to do so: If you define "a" + "b" to return Concatenation("a", "b") it becomes too easy to produce inefficient GAP input or code, like str := "a"; [...] str := str + "b"; (instead of 'Append(str, "b")' which does not copy the previous content) or str := "a" + "b" + "c" + "d"; (which GAP would understand as str := Concatenation(Concatenation(Concatenation("a","b"),"c"),"d"); which is much worse than 'str := Concatenation("a","b","c","d")'.) For '[1,2]^(1,2)' use the very efficient function 'OnTuples', see the documentation. As I see at least two "natural" meanings for 'list^permutation', namely 'Permuted' or 'OnTuples' (if the entries of the list are positive integers) I would not use the syntax the syntax you asked about but use the functions provided by GAP to keep your input easier to understand. Best regards, Frank Luebeck -- /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck@Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From hulpke at mac.com Fri Sep 23 20:30:56 2005 From: hulpke at mac.com (Alexander Hulpke) Date: Fri Sep 23 20:32:08 2005 Subject: [GAP Forum] Performance issue In-Reply-To: <20050922111427.GA18885@orge.ens.fr> References: <20050922111427.GA18885@orge.ens.fr> Message-ID: Dear GAP-Forum, On Sep 22, 2005, at 5:14 AM, Mathieu Dutour wrote: > I have a performance problem with the following: > v:=[1,2,4,5,1,2,4,2,6,2,5,1,3,5]; > GR:=SymmetricGroup(Length(v)); > Stabilizer(GR, v, Permuted); (very very slow) There are three different methods for `Stabilizer' built into GAP. The first is a generic Orbit/Stabilizer algorithm, that will compute the orbit of the point under the specified action and then construct the stabilizer from Schreier generators. The second is a variant for solvable groups that utilizes that the orbits of a normal subgroup form blocks. Memory requirements are similar as with variant 1 but it will run faster. Finally there are special cases for a few specific actions: A group on its elements or subgroups (Centralizer, Normalizer) A permutation group on points, tuples, sets (via backtrack routines). The aim here is not to cover any possible action with special routines, but to have routines for ``hard'' problems from which other stabilizers can be built easily if possible. Similar remarks hold for `RepresentativeAction'. `Permuted' is not one of these specific actions, thus the first variant is used which explains the long runtime. An easy way to deal with `Permuted' is to realize that we want to stabilize the index sets of elements at the same position. Thus: idx:=List(Set(v),i->Filtered([1..Length(v)],j->v[j]=i)); # get index sets Sort(idx,function(a,b) return Length(a) stb:=Iterated(Concatenation([GR],idx), > function(G,S) return Stabilizer(G,S,OnSets);end); # iterated set stabilizer will return the result quickly. Best wishes, Alexander Hulpke From amahalan at fau.edu Sun Sep 25 23:37:21 2005 From: amahalan at fau.edu (Ayan Mahalanobis) Date: Sun Sep 25 23:37:37 2005 Subject: [GAP Forum] netBSD and GAP In-Reply-To: <20050923060442.GF7098@math.rwth-aachen.de> References: <20050923060442.GF7098@math.rwth-aachen.de> Message-ID: <433726A1.5030402@fau.edu> Hi All, I got my system administrator to install gap in school. We are using NetBSD 2.0.2_STABLE and the latest version of GAP. The problem is that the arrow keys don't work. If you press the uparrow you get something funny but not the previous command or if you press the left arrow the cursor doesn't go back one step. I was wondering if anyone had a similar peoblem and if there is a work around. Regards, Ayan From d.v.pasechnik at uvt.nl Mon Sep 26 08:43:26 2005 From: d.v.pasechnik at uvt.nl (Dima Pasechnik) Date: Mon Sep 26 08:43:47 2005 Subject: [GAP Forum] netBSD and GAP In-Reply-To: <433726A1.5030402@fau.edu> References: <20050923060442.GF7098@math.rwth-aachen.de> <433726A1.5030402@fau.edu> Message-ID: <20050926074326.GA4425@cantor.lan> Dear Forum, > the arrow keys don't work. If you press the uparrow you get something > funny but not the previous command or if you press the left arrow the > cursor doesn't go back one step. you should still be able to use so-called Emacs bindings for the line editing, i.e. Contol-p for the previous line, Contol-n for the next line, Contol-f for the next character in line, Contol-b for the previous character in line, Contol-d for the character removal, etc HTH, Dmitrii From waki at cc.hirosaki-u.ac.jp Mon Sep 26 08:53:13 2005 From: waki at cc.hirosaki-u.ac.jp (Katsushi Waki) Date: Mon Sep 26 08:56:24 2005 Subject: [GAP Forum] AC2005 Message-ID: <20050926.165313.104028968.waki@cc.hirosaki-u.ac.jp> ********************************************************************* The 6th Symposium on Algebra and Computation (AC2005) Tokyo Metropolitan University 15 -18 November 2005 ********************************************************************* The Symposium on Algebra and Computation is a workshop held every two years aiming to create an active interrelationship between several branches of algebra and computer science; those areas have originally been taken to be independent from each other; there are not so much occasions of discussion for those area to meet together. *** Topics *** - Algorithms in algebra and discrete mathematics such as Number Theory, Group Theory, Ring Theory, Combinatorics, Graph Theory. - Cryptography, Coding Theory, Symbolic Computation and other fields of Computer Application. - Theory of Programming, Theory of Computation, Symbolic Logic, and other fields in Theoretical Computer Science. Proposals of new related topics are also welcomed. *** Special Talks *** The following speakers agreed to participate: Masahiko Sato (Kyoto Univ., Japan) Gerhard Hiss (RWTH Aachen Univ., Germany) Aneesh Karve (Wisconsin-Madison Univ., USA) Claus Fieker (Univ. of Sydney, Australia) Martijn Stam (Bristol Univ., UK) *** To those interested in giving talks *** When you are going to give a talk, please submit a mail to Contact Address: ac2005@tnt.math.metro-u.ac.jp including the following information of the talk: # Title # Abstract (50 -- 100 words) # Author (For more than 1 author, mark the speaker with an asterisk *) + Affiliation + Email address # Duration (20--40 minutes) # Other requests *** Deadline of submission *** 30 September 2005 *** Proceedings *** Proceedings will be published electronically in ftp://tnt.math.metro-u.ac.jp/pub/ in which you can get those of AC95/97/99/2001/2003. *** Organizers *** Ken Nakamula (Tokyo Metropolitan Univ.) Michio Ozeki (Yamagata Univ.) Nobuki Takayama (Kobe Univ.) Katsushi Waki (Hirosaki Univ.) Hirofumi Tsumura (Tokyo Metropolitan Univ.) Toshihiko Kurata (Hosei Univ.) Shigenori Uchiyama (NTT) Web: http://tnt.math.metro-u.ac.jp/ac/2005/ Email: ac2005@tnt.math.metro-u.ac.jp From amahalan at fau.edu Mon Sep 26 14:20:12 2005 From: amahalan at fau.edu (Ayan Mahalanobis) Date: Mon Sep 26 14:20:27 2005 Subject: [GAP Forum] netBSD and GAP Message-ID: <2930730.1127740812397.JavaMail.amahalan@fau.edu> No, unfortunately none of the commands, control-P etc works. Ayan Dima Pasechnik wrote: >Dear Forum, >> the arrow keys don't work. If you press the uparrow you get something >> funny but not the previous command or if you press the left arrow the >> cursor doesn't go back one step. >you should still be able to use so-called Emacs bindings for the line editing, i.e. >Contol-p for the previous line, >Contol-n for the next line, >Contol-f for the next character in line, >Contol-b for the previous character in line, >Contol-d for the character removal, >etc > >HTH, >Dmitrii > From jbohanon2 at aol.com Mon Sep 26 20:11:53 2005 From: jbohanon2 at aol.com (jbohanon2@aol.com) Date: Mon Sep 26 20:12:55 2005 Subject: [GAP Forum] Trouble running XGAP Message-ID: <8C790E549DFEB43-13D8-F9D1@MBLK-M25.sysops.aol.com> I have the X-Windows emulator Cygwin for Windows XP. I tried following all the instructions for installing XGAP, but I am having problems running both the .sh file and the .exe file. In either case it stalls for about 30 seconds then returns "Panic: Cannot establish communication with GAP" Any help would be appreciated. Thanks Joe From wkpark at gmail.com Tue Sep 27 18:53:09 2005 From: wkpark at gmail.com (Park Won-Kyu) Date: Tue Sep 27 18:54:06 2005 Subject: [GAP Forum] Hilbert series Message-ID: Hello, I want to get hilbert series of permutation group G gap> G; Group([ (2,3)(4,5)(7,8)(11,12)(16,17), (1,3,2)(4,5,6)(7,8,9)(11,12,13)(16,17,18), (4,7)(5,8)(6,9)(14,15)(19,20), (4,7,11)(5,8,12)(6,9,13)(10,15,14)(19,20,21) ]) gap> IsPermGroup(G); true gap> IG:=Irr(G);; gap> List([1..Size(IG)],i->MolienSeries(IG[i])); [ ( 1 ) / ( (1-z) ), ( 1 ) / ( (1-z^2) ), ( 1 ) / ( (1-z^2) ), ( 1 ) / ( (1-z^2) ), ( 1 ) / ( (1-z^3)*(1-z^2) ), ( 1 ) / ( (1-z^6)*(1-z^2) ), ( 1 ) / ( (1-z^6)*(1-z^2) ), ( 1 ) / ( (1-z^3)*(1-z^2) ), ( 1-z+z^4-z^7+z^8 ) / ( (1-z^6)*(1-z^3)*(1-z^2)*(1-z) ) ] from http://www.math.colostate.edu/manuals/magma/htmlhelp/text419.html "If G is a permutation group, the Molien series always exists and equals the Hilbert series of the invariant ring of G for any field." how can i get the hilbert series from the output of GAP ? Regards, Won. K. Park From JBohanon2 at aol.com Fri Sep 30 00:35:08 2005 From: JBohanon2 at aol.com (JBohanon2@aol.com) Date: Fri Sep 30 00:35:30 2005 Subject: [GAP Forum] More XGAP troubles Message-ID: <194.4827495a.306dd42c@aol.com> So I finally figured out what I was doing wrong and modified the .sh file to work correctly, but now, when I open xgap, it opens a GAP window but when I try to hit the "enter" key, absolutely nothing happens. I have found a way around this by typing instructions into a separate file and having XGAP read the file, but that's quite a pain. Any idea why this is happening? Joe From martyn at mcs.st-and.ac.uk Fri Sep 30 16:43:00 2005 From: martyn at mcs.st-and.ac.uk (Martyn Quick) Date: Fri Sep 30 16:43:12 2005 Subject: [GAP Forum] Constructing wreath products (and other things) Message-ID: First I'll begin by apologising if this is not where I'm supposed to place such queries. Should it go to support instead? I'm trying to construct a wreath product in such a way I can find my standard generators very easily. For example, I've just tried: A := CyclicGroup(3); B := CyclicGroup(9); W := WreathProduct(A,B) which all seems fine... but how do I get hold of my favourite generators for this wreath product? (i.e., an element in the base group and an element generating my top group). As a more general comment, is there anywhere where I one has a page containing the commands to construct all things one might meet in, say, an advanced undergraduate course on group theory? It would be extremely helpful if such a page existed as I find it takes a long time to find the function I'm after. Yours, Martyn -- Martyn Quick, Lecturer in Pure Mathematics, University of St Andrews http://www-groups.mcs.st-and.ac.uk/~martyn/ From hulpke at math.colostate.edu Fri Sep 30 19:23:58 2005 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri Sep 30 19:25:19 2005 Subject: [GAP Forum] Constructing wreath products (and other things) In-Reply-To: References: Message-ID: <0B0B26CB-2CA9-44AF-9CB9-46184216BE59@math.colostate.edu> Dear Martyn, On Sep 30, 2005, at 9:43 AM, Martyn Quick wrote: > I'm trying to construct a wreath product in such a way I can find > my standard generators very easily. > > For example, I've just tried: > > A := CyclicGroup(3); > B := CyclicGroup(9); > W := WreathProduct(A,B) > > which all seems fine... but how do I get hold of my favourite > generators for this wreath product? (i.e., an element in the base > group and an element generating my top group). You want to use `Embedding'. If B is a permutation group of degree n, then Embedding(W,1) to Embedding(W,n) are maps from A into the n copies of A in W. Embedding(W,n+1) is a map from B to the chosen complement. (Projection(W) is a map from W to B). Then using `Image', you can get map your favourite generators of A and B into W. Best, Alexander From niranj at math.ohio-state.edu Fri Sep 30 19:42:04 2005 From: niranj at math.ohio-state.edu (niranj@math.ohio-state.edu) Date: Fri Sep 30 19:42:27 2005 Subject: [GAP Forum] query regarding the Mathieu group Message-ID: <53592.140.254.93.142.1128105724.squirrel@www.math.ohio-state.edu> hi all, i was trying to get some information about the lattice of subgroups of M_12 and the other Mathieu groups. I tried the command Lattice ( G ) after defining the Mathieu group using generators but got a message," 'Lattice' must have a value". i am not sure i understand. what am i missing?is there some other way of being able to compute the lattice structure? thanks. niranjan From gzabl at yahoo.com Fri Sep 30 20:28:49 2005 From: gzabl at yahoo.com (Gary Zablackis) Date: Fri Sep 30 20:31:22 2005 Subject: [GAP Forum] More XGAP troubles In-Reply-To: <194.4827495a.306dd42c@aol.com> Message-ID: <20050930192849.36844.qmail@web53008.mail.yahoo.com> Joe, I forgot to mention that! The "Enter" key translates to \n\r in Windows but not in XWindows. After hitting enter, press the control key and the J key together (i.e. the J key while the control key is down). That should send your input to GAP. There is a possible fix, but it involves changes to the GAP kernel that may have ramifications that I have not had a chance to investigate. Gary JBohanon2@aol.com wrote: So I finally figured out what I was doing wrong and modified the .sh file to work correctly, but now, when I open xgap, it opens a GAP window but when I try to hit the "enter" key, absolutely nothing happens. I have found a way around this by typing instructions into a separate file and having XGAP read the file, but that's quite a pain. Any idea why this is happening? Joe _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum --------------------------------- Yahoo! for Good Click here to donate to the Hurricane Katrina relief effort. From gapforum at mowsey.org Fri Sep 30 20:33:56 2005 From: gapforum at mowsey.org (Mowsey) Date: Fri Sep 30 20:35:10 2005 Subject: [GAP Forum] query regarding the Mathieu group Message-ID: <7f9b2be60509301233w548da669l5b310a7ac40125e@mail.gmail.com> Some of the commands for calculating and working with the lattice of subgroups are described at: http://www.gap-system.org/Manuals/doc/htm/ref/CHAP037.htm#SECT020 One can also use the package "xgap" to visualize the lattice and work with it graphically. This is described at: http://www.gap-system.org/Manuals/pkg/xgap/htm/CHAP004.htm but I would caution that if you are not using X-windows on a unix machine, it can be fairly difficult to setup xgap in a reliable way. Here are specific commands which construct the subgroup lattice of the Methieu group M_12: G := MathieuGroup(12); lat := LatticeSubgroups(G); # merely computes the lattice ## see the manual for how to work with it or in xgap: G := MathieuGroup(12); GraphicSubgroupLattice(G); # A window now displays the lattice There is some support for outputting pictures of the lattice, but I am personally less familiar with them and do not see easy to follow documentation for the features. You may want to see if the package SgpViz (Semigroup visualization) is suitable. On Fri, September 30, 2005 14:42, niranj@math.ohio-state.edu wrote: > hi all, > i was trying to get some information about the lattice of subgroups of > M_12 and the other Mathieu groups. I tried the command Lattice ( G ) > after defining the Mathieu group using generators but got a message," > 'Lattice' must have a value". > i am not sure i understand. what am i missing?is there some other way of > being able to compute the lattice structure? > > thanks. > > niranjan > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From d.v.pasechnik at uvt.nl Tue Oct 4 23:11:54 2005 From: d.v.pasechnik at uvt.nl (Dima Pasechnik) Date: Tue Oct 4 23:13:06 2005 Subject: [GAP Forum] degree <5 univariate polynomials solving Message-ID: <20051004221154.GA784@cantor.lan> Dear Forum, I need to diagonalize medium-size (say, 30x30, with 0-1 entries) symmetric integer matrices that have at most cubic Z[x]-factors in their minimal polynomials. I found out about radiroot package, but I cannot find a way to use it to use the roots of solvable polynomials it can find in my computation (so that I can call, say, Eigenvectors() with the right field). Am I missing something? thanks, Dmitrii From a.distler at tu-bs.de Wed Oct 5 14:59:24 2005 From: a.distler at tu-bs.de (Andreas Distler) Date: Wed Oct 5 14:59:50 2005 Subject: [GAP Forum] degree <5 univariate polynomials solving In-Reply-To: <20051004221154.GA784@cantor.lan> References: <20051004221154.GA784@cantor.lan> Message-ID: <200510051559.24595.a.distler@tu-bs.de> Dear Dmitrii and GAP Forum, > I need to diagonalize medium-size (say, 30x30, with 0-1 entries) > symmetric integer matrices > that have at most cubic Z[x]-factors in their minimal polynomials. > > I found out about radiroot package, but I cannot find a way to use > it to use the roots of solvable polynomials it can find in my > computation (so that I can call, say, Eigenvectors() with the > right field). > Am I missing something? The main functionality of RadiRoot is to create an expression by radicals for the roots of a polynomial. This, of course, doesn't help for further computations. If I understand your problem correctly, you want to use the splitting field of the minimal polynomial. You can use the command SplittingField to create it. Let me give an example: gap> mat; [ [ 0, 0, -2 ], [ 1, 0, 0 ], [ 0, 1, 0 ] ] gap> MinimalPolynomial( Rationals, mat ); x_1^3+2 gap> L := SplittingField( last ); To use the commands Eigenvectors or Eigenvalues you have to embed the entries of the matrix in the splitting field first. The result of gap> Eigenvectors( L, One(L)*mat ); may be what you have been searching for. An idea: Possibly your problem can be examined more efficiently over a finite field, as your matrices have 0-1 entries only. Hope this helps, Andreas From d.v.pasechnik at uvt.nl Wed Oct 5 17:11:20 2005 From: d.v.pasechnik at uvt.nl (Dima Pasechnik) Date: Wed Oct 5 17:11:28 2005 Subject: [GAP Forum] degree <5 univariate polynomials solving In-Reply-To: <200510051559.24595.a.distler@tu-bs.de> References: <20051004221154.GA784@cantor.lan> <200510051559.24595.a.distler@tu-bs.de> Message-ID: <20051005161120.GA1177@pi1635.uvt.nl> Dear Andreas, dear GAP Forum, > > If I understand your problem correctly, you want to use the splitting field of > the minimal polynomial. You can use the command SplittingField to create it. [...] > To use the commands Eigenvectors or Eigenvalues you have to embed the entries > of the matrix in the splitting field first. The result of > > gap> Eigenvectors( L, One(L)*mat ); > > may be what you have been searching for. exactly. Thanks. It did not cross my mind that one must use "One(L)*mat" here rather than just "mat". IMHO this is inconsistent with the convention when you work with GF, as there GF(p) is a subset of GF(p^k), no need for such a cast. > An idea: Possibly your problem can be examined more efficiently over a finite > field, as your matrices have 0-1 entries only. well, not always (they are actually "collapsed adjacency matrices" of graphs). Best, Dmitrii. From gap at gap.zssm.zp.ua Wed Oct 5 18:15:05 2005 From: gap at gap.zssm.zp.ua (Alexander Konovalov) Date: Wed Oct 5 18:28:07 2005 Subject: [GAP Forum] Constructing wreath products (and other things) In-Reply-To: References: Message-ID: <693521937.20051005201505@gap.zssm.zp.ua> Dear Martyn, dear GAP Forum, On Friday, September 30, 2005 at 6:43:00 PM Martyn Quick wrote: [...] > As a more general comment, is there anywhere where I one has a page > containing the commands to construct all things one might meet in, > say, an advanced undergraduate course on group theory? It would be > extremely helpful if such a page existed as I find it takes a long > time to find the function I'm after. Let me turn attention to two pages on the GAP homepage where a collection of links pointing to some relevant materials can be found (some of them refers to a first course in algebra and not to group theory only, but they might be a good starting point): - http://www.gap-system.org/Doc/Teaching/teaching.html - http://www.gap-system.org/Doc/Learning/learning.html Sincerely yours, Alexander Konovalov From thomas.breuer at math.rwth-aachen.de Thu Oct 6 16:42:46 2005 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Thu Oct 6 16:43:01 2005 Subject: [GAP Forum] Hilbert series Message-ID: <20051006154246.E1E69A3F7F@antares.math.rwth-aachen.de> Dear GAP Forum, Won Kyu Park wrote > I want to get hilbert series of permutation group G > > gap> G; > Group([ (2,3)(4,5)(7,8)(11,12)(16,17), > (1,3,2)(4,5,6)(7,8,9)(11,12,13)(16,17,18), > (4,7)(5,8)(6,9)(14,15)(19,20), > (4,7,11)(5,8,12)(6,9,13)(10,15,14)(19,20,21) ]) > gap> IsPermGroup(G); > true > gap> IG:=Irr(G);; > gap> List([1..Size(IG)],i->MolienSeries(IG[i])); > [ ( 1 ) / ( (1-z) ), ( 1 ) / ( (1-z^2) ), ( 1 ) / ( (1-z^2) ), ( 1 ) / > ( (1-z^2) ), ( 1 ) / ( (1-z^3)*(1-z^2) ), > ( 1 ) / ( (1-z^6)*(1-z^2) ), ( 1 ) / ( (1-z^6)*(1-z^2) ), ( 1 ) / ( > (1-z^3)*(1-z^2) ), > ( 1-z+z^4-z^7+z^8 ) / ( (1-z^6)*(1-z^3)*(1-z^2)*(1-z) ) ] > > from http://www.math.colostate.edu/manuals/magma/htmlhelp/text419.html > "If G is a permutation group, the Molien series always exists and > equals the Hilbert series of the invariant ring of G for any field." > > how can i get the hilbert series from the output of GAP ? The output of `MolienSeries' is a rational function f(z), say. GAP can deal with the infinite series \sum_{i=0}^{\infty} a_i z^i represented by this rational function only in the sense that one can compute the coefficients a_i for given i. In the above example, this could be done as follows (see also the section ``Molien Series'' in the GAP Reference Manual). gap> mols:= List( Irr( G ), MolienSeries );; gap> mols[5]; ( 1 ) / ( (1-z^3)*(1-z^2) ) gap> List( [ 0 .. 20 ], i -> ValueMolienSeries( mols[5], i ) ); [ 1, 0, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 3, 2, 3, 3, 3, 3, 4, 3, 4 ] So a_0 = a_2 = a_3 = a_4 = a_5 = a_7 = 1, a_1 = 0, etc. Besides that, the `MolienSeriesInfo' value of a Molien series object contains information how the Molien series can be written as a sum of terms of the form g(z)/(1-z^r)^s, for suitable polynomials g(z); from this, one could derive a more or less closed form for the coefficients a_i, either by hand or using a computer system (other than GAP) that supports such manipulations. All the best, Thomas Breuer From gerhard.hiss at math.rwth-aachen.de Tue Oct 11 14:26:02 2005 From: gerhard.hiss at math.rwth-aachen.de (Gerhard Hiss) Date: Tue Oct 11 14:26:55 2005 Subject: [GAP Forum] toric, a new GAP package Message-ID: Dear Members of the GAP Forum, It is a pleasure to announce the new GAP package `toric' by David Joyner. In the authors words: "toric is a package that implements some computations related to toric varieties and combinatorial geometry in GAP. With toric, affine toric varieties can be created and related information about them can be calculated." The affine toric varieties are constructed from cones and there are several commands dealing with cones and related objects. There are also commands which compute topological invariants, e.g., Euler characteristics of certain non-afffine toric varieties constructed from collections of cones. toric can be obtained from one of the the web pages http://cadigweb.ew.usna.edu/%7Ewdj/gap/toric/ or http://www.gap-system.org/Packages/toric.html Questions concerning the package or its installation should be addressed to David Joyner (wdj@usna.edu). Gerhard Hiss October 11, 2005 -- Gerhard Hiss, Lehrstuhl D fuer Mathematik, RWTH Aachen, 52056 Aachen Tel.: (+49) (0) 241 / 80-94543 From bob.heffernan at gmail.com Tue Oct 11 22:50:16 2005 From: bob.heffernan at gmail.com (Robert Heffernan) Date: Tue Oct 11 22:51:43 2005 Subject: [GAP Forum] question about subgroups Message-ID: <6d9a83e90510111450t6b051c23m216435b97de6665c@mail.gmail.com> Hi. I am using the SmallGroups package and I would like to determinewhether one smallgroup is a subgroup of another smallgroup. Forexample: gap> G:=SmallGroup(12,3);;gap> H:=SmallGroup(4,2);;gap> IsSubgroup(G,H);false SmallGroup(12,3) is A4 and SmallGroup(4,2) is C2xC2 so I would expect"true" as the outcome of the last statement above. Is there a way to check if a given group is a subgroup of another, ie.to check if a group H is isomorphic to a subgroup of group G? For reference, my version of GAP is:GAP4, Version: 4.4.6 of 02-Sep-2005, i686-pc-cygwin-gcc thank you for your time,Robert Heffernan From sven.reichard at freenet.de Wed Oct 12 12:32:47 2005 From: sven.reichard at freenet.de (Sven Reichard) Date: Wed Oct 12 12:33:27 2005 Subject: [GAP Forum] question about subgroups In-Reply-To: <6d9a83e90510111450t6b051c23m216435b97de6665c@mail.gmail.com> References: <6d9a83e90510111450t6b051c23m216435b97de6665c@mail.gmail.com> Message-ID: <434CF45F.7000201@freenet.de> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Robert Heffernan wrote: | Hi. I am using the SmallGroups package and I would like to determinewhether one smallgroup is a subgroup of another smallgroup. Forexample: | gap> G:=SmallGroup(12,3);;gap> H:=SmallGroup(4,2);;gap> IsSubgroup(G,H);false | SmallGroup(12,3) is A4 and SmallGroup(4,2) is C2xC2 so I would expect"true" as the outcome of the last statement above. | Is there a way to check if a given group is a subgroup of another, ie.to check if a group H is isomorphic to a subgroup of group G? | For reference, my version of GAP is:GAP4, Version: 4.4.6 of 02-Sep-2005, i686-pc-cygwin-gcc | thank you for your time,Robert Heffernan | This might not be the most elegant way, but it should work: gap> ForAny(ConjugacyClassesSubgroups(G), x -> ~ IdGroup(H) = IdGroup(Representative(x))); Hope this helps, Sven. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (MingW32) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFDTPRQehCnTsoTEiURAsXYAJ9u/PgTktiwPoxC0LZrubYOhI/2OACfYIgM 2DAWM5xG1NXd+x6gGO6NeXE= =obki -----END PGP SIGNATURE----- From Nicola.Sottocornola at fastwebnet.it Fri Oct 14 16:15:56 2005 From: Nicola.Sottocornola at fastwebnet.it (Nicola Sottocornola) Date: Fri Oct 14 16:17:51 2005 Subject: [GAP Forum] Simple matrix group Message-ID: Hi, can you help with this very simple code? It produces an error msg. Thanks, Nicola *************************** LoadPackage("singular"); F:=Rationals; R:=PolynomialRing( F, ["x","y","z","w"]); SetTermOrdering( R, [ "wp", [1,1,2,2] ] ); SingularSetBaseRing(R); A := [ [-1,0,0,0], [0,1,0,0], [0,0,-1,0], [0,0,0,1] ] * One(R); B := [ [-1,0,0,0], [0,-1,0,0], [0,0,-1,0], [0,0,0,-1] ] * One(R); C := [ [0,1,0,0], [1,0,0,0], [0,0,0,1], [0,0,1,0] ] * One(R); G:=Group(A,B,C); ****************************** gap> G; gap> Size(G); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 2nd choice method found for `GeneratorsOfLeftOperatorRingWithOne' on 1 arguments called \ from GeneratorsOfLeftOperatorRingWithOne( A ) called from GeneratorsOfLeftOperatorRing( A ) called from Basis( V ) called from Enumerator( D ) called from Field( fg ) called from ... Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> From sidhu at mri.ernet.in Sat Oct 15 09:39:08 2005 From: sidhu at mri.ernet.in (Siddhartha Sarkar) Date: Sat Oct 15 09:41:03 2005 Subject: [GAP Forum] a question about p-groups Message-ID: Dear Gap Forum, Is it possible to generate a finite p-group G such that (1) $G/G_2$ is isomorphic to Z/pZ X Z/pZ (2) $G_2/G_3$ is isomorphic to Z/pZ (3) $G_2$ is of exponent p (4) If g belong to G not $G_2$, then order(g) is bigger than p. Here $G_2$ and $G_3$ are respectively the second and third term in the lower central series. The most natural to think is p-groups of maximal class. But upto order p^p, I think there is no such group. with regards, Siddhartha Sarkar ***************************************************************** Siddhartha Sarkar Research Scholar Dept. of Mathematics Harish Chandra Research Institute Chhatnag Road,Jhusi Allahabad-211019. India. ***************************************************************** From Nicola.Sottocornola at fastwebnet.it Fri Oct 14 17:05:53 2005 From: Nicola.Sottocornola at fastwebnet.it (Nicola Sottocornola) Date: Sat Oct 15 15:27:21 2005 Subject: [GAP Forum] Simple matrix group In-Reply-To: <434F98F7.1070109@usna.edu> References: <434F98F7.1070109@usna.edu> Message-ID: <0F587846-0FAE-4DC4-92DF-6E871FF31106@fastwebnet.it> Hi David, thank you for your msg. On Oct 14, 2005, at 1:39 PM, David Joyner wrote: > > Maybe someone else can explain the error message but > can't you leave off the "*One(R)"?: > I don't think so. It seems necessary for the following. I want a basis for the vector field of G-invariant homogeneous polynomials, with degre 10, in x,y,z,w with the special graduation deg(x)=deg(y)=1 deg(z)=deg(w)=2 SingularLibrary( "finvar.lib" ); I:=SingularInterface("invariant_basis", [10,A,B,C], "ideal"); If I leave off the One(R) it produces only [0]. With One(R) it works but only with the "standard graduation" deg(x) =deg(y)=deg(z)=deg(w)=1. Bye, Nicola From sal at dcs.st-and.ac.uk Sat Oct 15 15:26:11 2005 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Sat Oct 15 15:27:56 2005 Subject: [GAP Forum] a question about p-groups In-Reply-To: References: Message-ID: <20051015152611.31d786c8@localhost.localdomain> Isn't the quaternion group an example? Steve On Sat, 15 Oct 2005 14:09:08 +0530 (IST) Siddhartha Sarkar wrote: > > Dear Gap Forum, > > Is it possible to generate a finite p-group G such that > > (1) $G/G_2$ is isomorphic to Z/pZ X Z/pZ > (2) $G_2/G_3$ is isomorphic to Z/pZ > (3) $G_2$ is of exponent p > (4) If g belong to G not $G_2$, then order(g) is bigger than p. > > Here $G_2$ and $G_3$ are respectively the second and third term > in the lower central series. > > The most natural to think is p-groups of maximal class. But upto > order p^p, I think there is no such group. > > with regards, > Siddhartha Sarkar > > ***************************************************************** > Siddhartha Sarkar > Research Scholar > Dept. of Mathematics > Harish Chandra Research Institute > Chhatnag Road,Jhusi > Allahabad-211019. > India. > ***************************************************************** > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From vdabbagh at math.carleton.ca Sun Oct 16 23:20:24 2005 From: vdabbagh at math.carleton.ca (Vahid Dabbaghian-Abdoly) Date: Sun Oct 16 23:26:24 2005 Subject: [GAP Forum] Display operations Message-ID: Dear GAP Forum, Is there any command for seeing the codes of an operation? Regards, Vahid From gap at gap.zssm.zp.ua Mon Oct 17 14:16:34 2005 From: gap at gap.zssm.zp.ua (Alexander Konovalov) Date: Mon Oct 17 16:17:23 2005 Subject: [GAP Forum] GAP Installer for Windows Message-ID: <382066819.20051017161634@gap.zssm.zp.ua> Dear GAP Forum, Let me announce an experimental GAP Installer for Windows which provides standard installation procedure that will guide you through all steps of the installation process. I created it using NSIS (Nullsoft Scriptable Install System, http://nsis.sourceforge.net/) - an open source tool for building installers for Windows. Downloads, instructions and screenshots are available from: http://ukrgap.exponenta.ru/wininst/wininst.htm To install GAP 4.4.6 and packages, you need the following two files: ftp://ftp.gap-system.org/pub/gap/windowsinstaller/gap4r4p6.exe (45,4 MB): The core GAP system with optional components tools, htmie and xtom ftp://ftp.gap-system.org/pub/gap/windowsinstaller/packages-2005_10_07-15_11_UTC.exe (31,7 MB): A merged archive of all currently redistributed GAP packages Sincerely yours, Alexander Konovalov From hulpke at mac.com Thu Oct 20 03:04:58 2005 From: hulpke at mac.com (Alexander Hulpke) Date: Thu Oct 20 03:08:35 2005 Subject: Fwd: [GAP Support] Re: [GAP Forum] Simple matrix group References: <7F5CC3BC-66F6-4556-AA93-6E85CCF86E7F@frii.com> Message-ID: <2DDE7575-9B2B-4A12-A6CB-A655527B765D@mac.com> Dear GAP-Forum, The problem observed by Nicola Sottocornola (creating a matrix group with entries that are elements of a polynomial ring) fails (as the error message, showing a call to `DefaultFieldOfMatrixGroup' indicates) when GAP tries to construct a field containing all the matrix elements. In this situation the field would be a field of rational functions, but at the moment no object for this exists in GAP. On the other hand, as David Joyner already observed, there is in this particular example no need to construct the group over this field, as all matrix entries are effectively rational numbers. Thus the remedy is obvious: Keep the matrices rational, and everything will work fine. Nicola observed that he forced the matrices over the polynomial ring to satisfy conditions of the singular package. This is a rather unexpected feature of singular, which insists on matrices over a function field instead of specifying the polynomial ring as a separate argument. As a workaround, I would recommend to keep the matrices as matrices of rational numbers in GAP, and only to force them in the polynomial ring when calling Singular. I.e. the call will become I:=SingularInterface("invariant_basis", [10,A*One(R),B*One(R),C*One (R)], "ideal"); All the best, Alexander Hulpke From dfh at maths.warwick.ac.uk Fri Oct 21 18:03:02 2005 From: dfh at maths.warwick.ac.uk (Derek Holt) Date: Fri Oct 21 18:03:24 2005 Subject: [GAP Forum] testing for membership of Omega+/- Message-ID: <20051021170302.GA3554@maths.warwick.ac.uk> Dear GAP Forum, Does anybody know of any algorithms, or preferably implementations of algorithms, for testing whether a matrix in SO^{+/-}(d,q) (d even) lies in the perfect subgroup of index two, Omega^{+/-}(d,q) ? There are quick one-sided Monte-Carlo algorithms for verifying that an element in a finite group G lies in the commutator subgroup [G,G], which one could use to get an answer with a small probability of it being incorrect, but surely there must be a deterministic method of deciding this. Thanks, Derek Holt. From pliner at sky.ru Sun Oct 23 09:43:36 2005 From: pliner at sky.ru (Lev S. Pliner) Date: Sun Oct 23 09:48:15 2005 Subject: [GAP Forum] Description of prototype of new share package Message-ID: <158799832.20051023144336@sky.ru> Dear GAP forum participants, GAP developers and users. I would like to announce the development of GAP share package JGAP. The description of the architecture can be found here: http://cs.usu.edu.ru/pliner/arch_en.html I would like to ask you to send any replies on my work. Lev Pliner. From kohl at mathematik.uni-stuttgart.de Mon Oct 24 10:24:53 2005 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Mon Oct 24 10:25:47 2005 Subject: [GAP Forum] netBSD and GAP In-Reply-To: <2930730.1127740812397.JavaMail.amahalan@fau.edu> References: <2930730.1127740812397.JavaMail.amahalan@fau.edu> Message-ID: <435CA865.3000204@mathematik.uni-stuttgart.de> Dear Forum, On September 26, Ayan Mahalanobis wrote: >>>the arrow keys don't work. If you press the uparrow you get something >>>funny but not the previous command or if you press the left arrow the >>>cursor doesn't go back one step. >> >>you should still be able to use so-called Emacs bindings for the line > > editing, i.e. > >>Contol-p for the previous line, >>Contol-n for the next line, >>Contol-f for the next character in line, >>Contol-b for the previous character in line, >>Contol-d for the character removal, >>etc > > No, unfortunately none of the commands, control-P etc works. As apparently nobody can provide better advice: Maybe it is worth to try using the option -f (force line editing) to tell GAP that it is indeed not in batch mode. Hope this helps, Stefan Kohl By the way: Questions of purely technical nature like this one should better be sent to support@gap-system.org -- this will often also yield a quicker answer, as sending a question to the Forum can be seen as a request for something like a public, official answer, which often has to be discussed for some time. From l.h.soicher at qmul.ac.uk Tue Oct 25 14:46:31 2005 From: l.h.soicher at qmul.ac.uk (Leonard Soicher) Date: Tue Oct 25 14:46:44 2005 Subject: [GAP Forum] testing for membership of Omega+/- In-Reply-To: <20051021170302.GA3554@maths.warwick.ac.uk> References: <20051021170302.GA3554@maths.warwick.ac.uk> Message-ID: <20051025134631.GA14058@mrcpc02.maths.qmul.ac.uk> Dear Derek, Dear GAP-Forum, See the "ATLAS of Finite Groups" Introduction, especially the last three paragraphs of page xi and then first two paragraphs of page xii. I believe the nice method for even q (and even d), using the dimension of the fixed space, was discovered by Richard Parker and proved by John Conway, but I know of no published proof. Regards, Leonard Soicher On Fri, Oct 21, 2005 at 06:03:02PM +0100, Derek Holt wrote: > Dear GAP Forum, > > Does anybody know of any algorithms, or preferably implementations of > algorithms, for testing whether a matrix in SO^{+/-}(d,q) (d even) lies > in the perfect subgroup of index two, Omega^{+/-}(d,q) ? > > There are quick one-sided Monte-Carlo algorithms for verifying that an element > in a finite group G lies in the commutator subgroup [G,G], which one could > use to get an answer with a small probability of it being incorrect, but > surely there must be a deterministic method of deciding this. > > Thanks, > Derek Holt. > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From laurent.bartholdi at gmail.com Thu Nov 3 15:23:50 2005 From: laurent.bartholdi at gmail.com (Laurent Bartholdi) Date: Thu Nov 3 15:24:00 2005 Subject: [GAP Forum] pseudo-random elements of a free group Message-ID: <1ff637850511030723x472f087fyafe07d3d51fa764a@mail.gmail.com> hi, i'm playing around with the "PseudoRandom" command, as applied to free groups. I know that there's no preferred choice of a random element in an infinite (worse, non-amenable) object; however: * PseudoRandom(FreeGroup(2)); always returns positive words, i.e. words that contain no inverses of generators * The returned words are usually extremely long; in the sense that, for example, they are too complicated to be fed into the ReducedForm() command of KBMAG. Would it make some sense to have a "ReasonablyShortPseudoRandom()" command? Best, Laurent -- Laurent Bartholdi \ laurent.bartholdigmailcom EPFL SB SMA IMB MAD \ T?l?phone: +41 21-6930380 CH-1015 Lausanne, Switzerland \ Fax: +41 21-6930385 From laurent.bartholdi at gmail.com Thu Nov 3 18:37:53 2005 From: laurent.bartholdi at gmail.com (Laurent Bartholdi) Date: Thu Nov 3 18:38:10 2005 Subject: [GAP Forum] A Possible bug in FGA Message-ID: <1ff637850511031037i1d37914dx22bcfe5a413b136b@mail.gmail.com> Hello world, Unless I'm terribly mistaken there's a problem with the FGA package: GAP4, Version: 4.4.6 of 02-Sep-2005, i686-pc-linux-gnu-gcc gap> RequirePackage("FGA"); true gap> F := FreeGroup(2); ### the identity automorphism gap> x := GroupHomomorphismByImages(F,F,GeneratorsOfGroup(F),GeneratorsOfGroup(F)); [ f1, f2 ] -> [ f1, f2 ] gap> IsOne(x); ### and GAP freezes. user interrupt at ... gap> PackageInfo("fga"); [ rec( PackageName := "FGA", Subtitle := "Free Group Algorithms", Version := "1.1.0.1", Date := "27/05/2005", ArchiveURL := "http://www.icm.tu-bs.de/ag_algebra/software/sievers/FGA/FGA-1.1.0.1", ArchiveFormats := ".tar.gz", Persons := [ rec( LastName := "Sievers", FirstNames := "Christian", IsAuthor := true, IsMaintainer := true, Email := "c.sievers@tu-bs.de", PostalAddress := "Christian Sievers\nFachbereich Mathematik und Informatik\nInstitut Computational Mathematics\nTechnische Univers\ it\"at Braunschweig\nPockelsstr. 14\nD-38106 Braunschweig,\nGermany", Place := "Braunschweig", Institution := "TU Braunschweig" ) ], Status := "accepted", CommunicatedBy := "Edmund Robertson (St. Andrews)", AcceptDate := "05/2005", README_URL := "http://www.icm.tu-bs.de/ag_algebra/software/sievers/FGA/README", PackageInfoURL := "http://www.icm.tu-bs.de/ag_algebra/software/sievers/FGA/PackageInfo.g", AbstractHTML := "The FGA package installs methods for computations with finitely generated subgroups of \ free groups and provides a presentation for their automorphism groups.", PackageWWWHome := "http://www.icm.tu-bs.de/ag_algebra/software/sievers/FGA/", PackageDoc := [ rec( BookName := "FGA", ArchiveURLSubset := [ "doc", "htm" ], HTMLStart := "htm/chapters.htm", PDFFile := "doc/manual.pdf", SixFile := "doc/manual.six", LongTitle := "Free Group Algorithms", Autoload := true ) ], Dependencies := rec( GAP := ">=4.4", NeededOtherPackages := [ ], SuggestedOtherPackages := [ ], ExternalConditions := [ ] ), AvailabilityTest := function( arg ) ... end, Autoload := true, TestFile := "tst/testall.g", Keywords := [ "free groups", "inverse finite automata", "basic coset enumeration", "finite presentation of the automorphism group of a free group" ], InstallationPath := "/opt/maths/gap4r4/pkg/fga" ) ] -- Laurent Bartholdi \ laurent.bartholdigmailcom EPFL SB SMA IMB MAD \ T?l?phone: +41 21-6930380 CH-1015 Lausanne, Switzerland \ Fax: +41 21-6930385 From sievers at math2.nat.tu-bs.de Thu Nov 3 19:32:45 2005 From: sievers at math2.nat.tu-bs.de (Christian Sievers) Date: Thu Nov 3 19:33:28 2005 Subject: [GAP Forum] Re: A Possible bug in FGA In-Reply-To: <1ff637850511031037i1d37914dx22bcfe5a413b136b@mail.gmail.com> References: <1ff637850511031037i1d37914dx22bcfe5a413b136b@mail.gmail.com> Message-ID: <17258.26077.877156.188691@gauss00.math2.nat.tu-bs.de> Laurent Bartholdi wrote: > Hello world, > Unless I'm terribly mistaken there's a problem with the FGA package: > > GAP4, Version: 4.4.6 of 02-Sep-2005, i686-pc-linux-gnu-gcc > gap> RequirePackage("FGA"); > true > gap> F := FreeGroup(2); > > ### the identity automorphism > gap> x := GroupHomomorphismByImages(F,F,GeneratorsOfGroup(F),GeneratorsOfGroup(F)); > [ f1, f2 ] -> [ f1, f2 ] > gap> IsOne(x); > ### and GAP freezes. GAP uses a very general method which does not work for infinite groups, and the FGA package implements no special method. You can use this one: InstallMethod( IsOne, "for group general mappings with images", [ IsGroupHomomorphism and HasMappingGeneratorsImages ], hom -> IsEndoMapping( hom ) and MappingGeneratorsImages( hom )[ 1 ] = MappingGeneratorsImages( hom )[ 2 ] ); (As a workaround, you may prefer x=IdentityMapping(F).) To the developers: I guess something like the above method should go somewhere to the gap library as it is not free group specific. All the best Christian Sievers From mathalot at yahoo.com Fri Nov 4 22:18:04 2005 From: mathalot at yahoo.com (Ryan Higginbottom) Date: Fri Nov 4 22:18:26 2005 Subject: [GAP Forum] automorphisms and stabilizers Message-ID: <20051104221804.20332.qmail@web33410.mail.mud.yahoo.com> Dear GAP folks: Any help you can give me on this question would be appreciated. I'm fairly new to using GAP, so the answer might be simple, but I've searched a bit on the GAP site without finding an immediate answer. Forgive me if this is trivial. The automorphism group of a group G acts on the set S of subgroups of G. Given a particular subgroup V of G, I would like to compute the size of Aut(G)_V, that is, the stabilizer in Aut(G) of V. I cannot figure out how to establish the proper action in this situation. I think that I will need something like the ExternalSet command, because this doesn't look like a commonly used action (based on what I've seen in the manual). This seems like an easy computation though. Can anyone help? Thank you. Ryan Higginbottom __________________________________ Yahoo! FareChase: Search multiple travel sites in one click. http://farechase.yahoo.com From gapforum at mowsey.org Sat Nov 5 04:22:40 2005 From: gapforum at mowsey.org (Mowsey) Date: Sat Nov 5 04:23:12 2005 Subject: [GAP Forum] automorphisms and stabilizers Message-ID: You can specify your own function for the action. The point in using some of the existing actions is that special more efficient methods are available for some. Since you may not expect there to be such methods already installed, you can just use the generic: G := SmallGroup(8,4);; A := AutomorphismGroup(G);; V := Subgroup(G,[G.1]);; A_V := Stabilizer(A,V,function(sub,aut) return Image(aut,sub); end);; On Fri, November 4, 2005 17:18, Ryan Higginbottom wrote: > Dear GAP folks: > > Any help you can give me on this question would be appreciated. I'm > fairly new to using GAP, so the answer might be simple, but I've searched > a bit on the GAP site without finding an immediate answer. Forgive me if > this is trivial. > > The automorphism group of a group G acts on the set S of subgroups of G. > Given a particular subgroup V of G, I would like to compute the size of > Aut(G)_V, that is, the stabilizer in Aut(G) of V. > > I cannot figure out how to establish the proper action in this situation. > I think that I will need something like the ExternalSet command, because > this doesn't look like a commonly used action (based on what I've seen in > the manual). This seems like an easy computation though. Can anyone > help? > > Thank you. > > Ryan Higginbottom From sagar.kolte at gmail.com Sun Nov 6 04:11:49 2005 From: sagar.kolte at gmail.com (Sagar Kolte) Date: Sun Nov 6 04:13:20 2005 Subject: [GAP Forum] Test for maximality Message-ID: <2ccdf6860511052011t615da3c1x5569297c2540aff5@mail.gmail.com> Is there a program in gap to test wether or not a given ideal is maximal? Sagar From B.Hoefling at tu-bs.de Mon Nov 7 09:11:35 2005 From: B.Hoefling at tu-bs.de (=?ISO-8859-1?Q?Familie_H=F6fling?=) Date: Mon Nov 7 09:29:09 2005 Subject: [GAP Forum] New version of unzoo utility available Message-ID: Dear Forum members, this is to announce a new version of the unzoo utility. If you use the .zoo archive format for installing and/or upgrading GAP and its packages, we recommend that you get and install this new version of unzoo. The new version of unzoo resolves a performance issue with the packages archives and fixes a potential bug. You can download the most recent version of unzoo from http://www.gap-system.org/Download/formats.html#zoo Details about using the Macintosh version can be found at http://www.gap-system.org/Download/MacInst.html For the GAP Group, Burkhard Hoefling. From hulpke at mac.com Thu Nov 10 05:17:00 2005 From: hulpke at mac.com (Alexander Hulpke) Date: Thu Nov 10 05:20:15 2005 Subject: [GAP Forum] Re: Test for maximality References: Message-ID: Dear Forum, S.Kolte asked: > Is there a program in gap to test wether or not a given ideal is > maximal? For arbitrary rings I would assume this to be unsolvable. For multivariate polynomial rings this can be determined using Gr"obner basis theory, but the concrete method is not implemented in GAP, you might want to look at Singular. If the ring is a finite dimensional algebra, GAP can test whether the quotient ring is simple. Best, Alexander Hulpke From sagar.kolte at gmail.com Thu Nov 10 07:43:49 2005 From: sagar.kolte at gmail.com (Sagar Kolte) Date: Thu Nov 10 07:44:08 2005 Subject: [GAP Forum] Sagar Kolte sent you this link Message-ID: <20051110074349.00595067857553353.qmail@x07.thenamesdatabase.com> Remember your link from Sagar Kolte: http://namesdatabase.com/?x2=19919557492 1 -> Use Sagar Kolte's link by clicking above. 2 -> Enter your info for a membership connected to Sagar. 3 -> Share links with other friends, family and co-workers. 4 -> Use the members-only people search tools. Sagar selected you for this on 09-02-2004 22:52 ET. sagar.kolte@gmail.com (Sagar Kolte) initiated this to forum@gap-system.org at 11-06-2005 04:02 on namesdatabase.com from the IP address 59.182.32.176. If you do not know a Sagar Kolte, use http://namesdatabase.com/r.pl?n2=19919557492 to halt more reminders about this. For reference, the address of The Names Database is PO Box 550175, Waltham, MA 02455. From mjoao at classic.univ-ab.pt Thu Nov 10 06:28:56 2005 From: mjoao at classic.univ-ab.pt (Joao Araujo) Date: Thu Nov 10 11:20:36 2005 Subject: [GAP Forum] question about Rees Matrix Semigroups Message-ID: Let s be the full transformation semigroup on 4 elements: t:=Transformation([1,2,3,3]);; s:=Semigroup(Transformation([2,1,3,4]),Transformation([2,3,4,1]),t);; Now we ask GAP to give us the Rees Zero Matrix Semigroup associated to the D-class of t: gap> ld:=GreensDClassOfElement(s,t);; gap> rs:=AssociatedReesMatrixSemigroupOfDClass(ld); Rees Zero Matrix Semigroup over Monoid( [ (1,2)(3,4)(5,6), (), (1,5,4)(2,3,6), (1,6)(2,4)(3,5), (1,3)(2,5)(4,6), (1,4,5)(2,6,3), 0 ], ... ) Since the semigroup s is regular, every D-class is regular and hence there exists at least one non-zero entry in each row and in each column in the Sandwich Matrix of rs. However, when we ask GAP to give the associated matrix we get: gap> SandwichMatrixOfReesZeroMatrixSemigroup(rs); [ [ 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0 ] ] If this was correct, then, in particular, the D-class of t would have no idempotents (and hence t would be irregular). I would be very grateful if someone could tell me what I am doing wrong. Joao From jamesm at mcs.st-and.ac.uk Thu Nov 10 12:58:50 2005 From: jamesm at mcs.st-and.ac.uk (James Mitchell) Date: Thu Nov 10 12:49:35 2005 Subject: [GAP Forum] Re: question about Rees Matrix Semigroups (fwd) In-Reply-To: Message-ID: Dear Joao, You are quite correct. There is a bug in the function AssociatedReesMatrixSemigroupOfDClass. If you read the following function into gap, this ought to take care of the problem until it is possible to change the code in the library. Any other problems, just let me know. Regards, James InstallMethod(AssociatedReesMatrixSemigroupOfDClass, "for d class", [IsGreensDClass], function( D ) local h, phi, g, gz, fun, map, r, l, rreps, lreps, n, m, mat; if not IsFinite(AssociatedSemigroup(D)) then TryNextMethod(); fi; if not IsRegularDClass(D) then Error("D class must be regular"); fi; h:= GroupHClassOfGreensDClass(D); # find the isomorphic perm group. phi:= IsomorphismPermGroup(h); g:= Range(phi); gz:= Range(InjectionZeroMagma(g)); # build the function fun:= function(x) if not x in h then return MultiplicativeZero(gz); fi; return x^phi; end; map:= MappingByFunction(AssociatedSemigroup(D), gz, fun); r:= EquivalenceClassOfElement(GreensRRelation(AssociatedSemigroup(D)), Representative(h)); l:= EquivalenceClassOfElement(GreensLRelation(AssociatedSemigroup(D)), Representative(h)); rreps:= List(GreensHClasses(l), Representative); lreps:= List(GreensHClasses(r), Representative); n:= Length(rreps); m:= Length(lreps); mat:= List([1..m], x->List([1..n], y->(lreps[x]*rreps[y])^map)); if ForAll(mat, x->ForAll(x, y -> y <> MultiplicativeZero(gz))) then return ReesMatrixSemigroup(g, mat); else return ReesZeroMatrixSemigroup(gz, mat); fi; end); > > ---------- Forwarded message ---------- > Date: Thu, 10 Nov 2005 06:28:56 +0000 (WET) > From: Joao Araujo > To: forum@gap-system.org > Subject: question about Rees Matrix Semigroups > > > > Let s be the full transformation semigroup on 4 elements: > > t:=Transformation([1,2,3,3]);; > s:=Semigroup(Transformation([2,1,3,4]),Transformation([2,3,4,1]),t);; > > Now we ask GAP to give us the Rees Zero Matrix Semigroup associated to the > D-class of t: > > gap> ld:=GreensDClassOfElement(s,t);; > gap> rs:=AssociatedReesMatrixSemigroupOfDClass(ld); > Rees Zero Matrix Semigroup over Monoid( [ (1,2)(3,4)(5,6), (), > (1,5,4)(2,3,6), (1,6)(2,4)(3,5), (1,3)(2,5)(4,6), > (1,4,5)(2,6,3), 0 ], ... ) > > Since the semigroup s is regular, every D-class is regular and hence > there exists at least one non-zero entry in each row and in each column > in the Sandwich Matrix of rs. > > However, when we ask GAP to give the associated matrix we get: > > gap> SandwichMatrixOfReesZeroMatrixSemigroup(rs); > [ [ 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0 ], [ 0, > 0, 0, 0, 0, 0 ] ] > > If this was correct, then, in particular, the D-class of > t would have no idempotents (when t, in fact, is idempotent). > > I would be very grateful if someone could tell me what I am doing wrong. > > Joao > > > From alireza_abdollahi at yahoo.com Sat Nov 12 08:41:01 2005 From: alireza_abdollahi at yahoo.com (Alireza Abdollahi) Date: Sat Nov 12 08:41:28 2005 Subject: [GAP Forum] Constructing a 2-Engel group Message-ID: <20051112084101.93235.qmail@web35608.mail.mud.yahoo.com> Dears, How one can try by GAP to construct a group G with the following properties: A finite 2-Engel 3-group G such that |G|=3^{11}, G^3=G'=C_9 X C_9 X C_9 X C_3, Z_2(G)=C_9 X C_9 X C_9 X C_9, \Omega_1(G)=Z(G) \cap G'=(Z_2(G))^3 and exp(G)=27, where \Omega_1(G) is the subgroup of G generated by all elements x in G such that x^3=1. Thanks in advance for any help. Best Regards A. Abdollahi --- saf@sci.ui.ac.ir wrote: > Date: Sat, 12 Nov 2005 10:48:16 +0330 > From: saf@sci.ui.ac.ir > To: "a.abdollahi" , > abdollahi , > aabdolla , > "a.abdollahi" > Subject: a 2-Engel group > > > > % > ---------------------------------------------------------------- > % Letter > --------------------------------------------------------- > % > ---------------------------------------------------------------- > \documentclass[12pt]{letter} > \usepackage{graphicx} > % > ---------------------------------------------------------------- > \signature{} > \address{ % Return Address > {} \\ > {}\\ > {E-mail: } > } > %\makelabels > \begin{document} > % > ---------------------------------------------------------------- > \begin{letter}{ % Addressee >  \\ >  \\ >  \\ >  } > > \opening{Dear Dr.Abdollahi,} > > Does there exist a 2-Engel group $G$ such that > $|G|=3^{11}$, > \\$G^3=G^{'}=C_9 \times C_9 \times C_9 \times C_3, > Z_2(G)=C_9\times C_9 \times > C_9 \times C_9,$ > \\$ \Omega_1(G)=Z