From nicolas.francois at free.fr Mon Jan 2 04:02:27 2012 From: nicolas.francois at free.fr (Nicolas FRANCOIS) Date: Mon, 2 Jan 2012 05:02:27 +0100 Subject: [GAP Forum] Using package genss on Debian Message-ID: <20120102050227.580dde49@gaston> Hi. I'd like to use the generic Schreier-Sims package (genss) on my Debian computer. But LoadPackage("genss"); fails. I tried to install genss and orb packages manually (they don't seem to be included in the Debian archives), in /usr/share/gap/pkg/, but the problem remains. Can you help me ? Thank you. \bye -- Nicolas FRANCOIS | /\ http://nicolas.francois.free.fr | |__| X--/\\ We are the Micro$oft. _\_V Resistance is futile. You will be assimilated. darthvader penguin From dima at ntu.edu.sg Tue Jan 3 05:37:57 2012 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Tue, 3 Jan 2012 13:37:57 +0800 Subject: [GAP Forum] Using package genss on Debian In-Reply-To: <20120102050227.580dde49@gaston> References: <20120102050227.580dde49@gaston> Message-ID: Hi Nicolas, is /usr/share/gap/pkg/ actually the right directory? (i.e., do you see there any other pkg's that you know work?) Does package orb load OK? Is is a dependency of genss, so one needs to sort it out first. Best, Dmitrii On 2 January 2012 12:02, Nicolas FRANCOIS wrote: > Hi. > > I'd like to use the generic Schreier-Sims package (genss) on my Debian > computer. But LoadPackage("genss"); fails. > > I tried to install genss and orb packages manually (they don't seem to > be included in the Debian archives), in /usr/share/gap/pkg/, but the > problem remains. > > Can you help me ? > > Thank you. > > \bye > > -- > > Nicolas FRANCOIS | /\ > http://nicolas.francois.free.fr | |__| > X--/\\ > We are the Micro$oft. _\_V > Resistance is futile. > You will be assimilated. darthvader penguin > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum CONFIDENTIALITY: This email is intended solely for the person(s) named and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Towards A Sustainable Earth: Print Only When Necessary. Thank you. From nicolas.francois at free.fr Tue Jan 3 05:57:48 2012 From: nicolas.francois at free.fr (Nicolas FRANCOIS) Date: Tue, 3 Jan 2012 06:57:48 +0100 Subject: [GAP Forum] Using package genss on Debian In-Reply-To: References: <20120102050227.580dde49@gaston> Message-ID: <20120103065748.7171ffec@gaston> Le Tue, 3 Jan 2012 13:37:57 +0800, "Asst. Prof. Dmitrii (Dima) Pasechnik" a ?crit : > Hi Nicolas, > > is /usr/share/gap/pkg/ actually the right directory? > (i.e., do you see there any other pkg's that you know work?) > Does package orb load OK? > Is is a dependency of genss, so one needs to sort it out first. gap> LoadPackage("orb"); fail So no, it doesn't seem to be the right directory... How can I ask gap where it searches for its packages ? \bye -- Nicolas FRANCOIS | /\ http://nicolas.francois.free.fr | |__| X--/\\ We are the Micro$oft. _\_V Resistance is futile. You will be assimilated. darthvader penguin From nicolas.francois at free.fr Tue Jan 3 06:13:28 2012 From: nicolas.francois at free.fr (Nicolas FRANCOIS) Date: Tue, 3 Jan 2012 07:13:28 +0100 Subject: [GAP Forum] Using package genss on Debian In-Reply-To: <20120103065748.7171ffec@gaston> References: <20120102050227.580dde49@gaston> <20120103065748.7171ffec@gaston> Message-ID: <20120103071328.207f1a18@gaston> Le Tue, 3 Jan 2012 06:57:48 +0100, Nicolas FRANCOIS a ?crit : > Le Tue, 3 Jan 2012 13:37:57 +0800, > "Asst. Prof. Dmitrii (Dima) Pasechnik" a ?crit : > > > Hi Nicolas, > > > > is /usr/share/gap/pkg/ actually the right directory? > > (i.e., do you see there any other pkg's that you know work?) > > Does package orb load OK? > > Is is a dependency of genss, so one needs to sort it out first. > > gap> LoadPackage("orb"); > fail > > So no, it doesn't seem to be the right directory... > > How can I ask gap where it searches for its packages ? > > \bye > BTW, the commands here seem to fail : gap> DirectoriesPackageLibrary("orb"); [ ] gap> DirectoriesPackageLibrary("orb","pkg"); [ ] Debian has gap's libraries (*.g{,i,d}) in /usr/share/gap/lib, but there is a /usr/share/gap/pkg present. Any clue ? \bye -- Nicolas FRANCOIS | /\ http://nicolas.francois.free.fr | |__| X--/\\ We are the Micro$oft. _\_V Resistance is futile. You will be assimilated. darthvader penguin From dima at ntu.edu.sg Tue Jan 3 06:18:10 2012 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Tue, 3 Jan 2012 14:18:10 +0800 Subject: [GAP Forum] Using package genss on Debian In-Reply-To: <20120103065748.7171ffec@gaston> References: <20120102050227.580dde49@gaston> <20120103065748.7171ffec@gaston> Message-ID: On 3 January 2012 13:57, Nicolas FRANCOIS wrote: > Le Tue, 3 Jan 2012 13:37:57 +0800, > "Asst. Prof. Dmitrii (Dima) Pasechnik" a ?crit : > >> Hi Nicolas, >> >> is /usr/share/gap/pkg/ actually the right directory? >> (i.e., do you see there any other pkg's that you know work?) >> Does package orb load OK? >> Is is a dependency of genss, so one needs to sort it out first. > > gap> LoadPackage("orb"); > fail > > So no, it doesn't seem to be the right directory... > > How can I ask gap where it searches for its packages ? one way is to look at the shell script that starts GAP. The packages are loaded from the pkg/ subdirectory at GAP_DIR. i.e. you can look at the output of cat `which gap` | grep GAP_DIR >From within GAP it seems to be the variable GAP_ROOT_PATHS. I.e. you can do gap> GAP_ROOT_PATHS; [ "/usr/local/src/gap/gap4r4/" ] HTH, Dmitrii > > \bye > > -- > > Nicolas FRANCOIS | /\ > http://nicolas.francois.free.fr | |__| > X--/\\ > We are the Micro$oft. _\_V > Resistance is futile. > You will be assimilated. darthvader penguin > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum CONFIDENTIALITY: This email is intended solely for the person(s) named and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Towards A Sustainable Earth: Print Only When Necessary. Thank you. From alexander.konovalov at gmail.com Tue Jan 3 08:36:28 2012 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Tue, 3 Jan 2012 08:36:28 +0000 Subject: [GAP Forum] Using package genss on Debian In-Reply-To: References: <20120102050227.580dde49@gaston> <20120103065748.7171ffec@gaston> Message-ID: <10BF4624-A98D-4BDF-951D-73D344D57632@gmail.com> Are IO and GAPDoc packages also installed - they are listed in genss dependencies? Best wishes, Alexander On 3 Jan 2012, at 06:18, Asst. Prof. Dmitrii (Dima) Pasechnik wrote: > On 3 January 2012 13:57, Nicolas FRANCOIS wrote: >> Le Tue, 3 Jan 2012 13:37:57 +0800, >> "Asst. Prof. Dmitrii (Dima) Pasechnik" a ?crit : >> >>> Hi Nicolas, >>> >>> is /usr/share/gap/pkg/ actually the right directory? >>> (i.e., do you see there any other pkg's that you know work?) >>> Does package orb load OK? >>> Is is a dependency of genss, so one needs to sort it out first. >> >> gap> LoadPackage("orb"); >> fail >> >> So no, it doesn't seem to be the right directory... >> >> How can I ask gap where it searches for its packages ? > > one way is to look at the shell script that starts GAP. > The packages are loaded from the pkg/ subdirectory at > GAP_DIR. > i.e. you can look at the output of > cat `which gap` | grep GAP_DIR > > From within GAP it seems to be the variable GAP_ROOT_PATHS. > I.e. you can do > > gap> GAP_ROOT_PATHS; > [ "/usr/local/src/gap/gap4r4/" ] > > HTH, > Dmitrii > >> >> \bye >> >> -- >> >> Nicolas FRANCOIS | /\ >> http://nicolas.francois.free.fr | |__| >> X--/\\ >> We are the Micro$oft. _\_V >> Resistance is futile. >> You will be assimilated. darthvader penguin >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum > > CONFIDENTIALITY: This email is intended solely for the person(s) named and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. > > Towards A Sustainable Earth: Print Only When Necessary. Thank you. > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From ardiegosss at gmail.com Wed Jan 4 16:52:45 2012 From: ardiegosss at gmail.com (diego sulca) Date: Wed, 4 Jan 2012 13:52:45 -0300 Subject: [GAP Forum] computing G^n Message-ID: Let G be a pcp group. Is it possible to comput G^n:=? From alexander.konovalov at gmail.com Sun Jan 8 16:12:37 2012 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Sun, 8 Jan 2012 16:12:37 +0000 Subject: [GAP Forum] Using package genss on Debian In-Reply-To: <20120102050227.580dde49@gaston> References: <20120102050227.580dde49@gaston> Message-ID: Dear Nicolas, dear GAP Forum, Quite often we are being asked how to get some GAP packages ('package' in the GAP sense) working under the Debian GAP package ('package' in the Debian sense) by users who installed it using apt-get or other package managers in some Linux distributions. Our answer is that we do not support the Debian package for GAP, mainly because the directory structure that Debian conventions impose does not work well with GAP, and in particular with some GAP packages. Note that some packages extend the functionality and/or performance of the system quite substantially, but you will not be able to get them just by installing the Debian GAP package. For this reason, we suggest downloading GAP and all released packages from the GAP website and installing them yourself in a single location (for example, in /opt/gap4r4 or in ~/gap4r4) following the instructions provided athttp://www.gap-system.org/Download/UNIXInst.html Another alternative is a Linux binary distribution offered by Frank L?beck via remote syncronization with a reference GAP installation which includes *all* packages and some optimisations for installing GAP 4.4 on Linux PCs with i686 or x86_64 compatible processors: http://www.math.rwth-aachen.de:8001/RsyncLinuxGAP However, we admit that some users may not have such choice (e.g. on a computer in a university lab where GAP may have been installed using the Debian package by a system administrator, and where students have such a low personal quota that full GAP installation is not an option). In this case, some packages may still work if they will be installed in the ~/gap/pkg directory. However, this is guaranteed to work only for packages that do not have external binaries or GAP kernel modules. For most packages with external binaries, the default assumption of the location of GAP is ../.., so you will have to direct them to /usr/share/gap at the build stage (see package manual for build instructions). But most unfortunately, the Debian GAP package is broken for some important packages with GAP kernel modules, like, for example, IO, Edim, Browse, orb (so since genss requires orb, this is not a way to go to install genss) because the Debian policy requires headers to be located in /usr/include/gap, while not all GAP codebase in the Debian GAP package has been adjusted to this change. Finally, please note that GAP Support is a proper contact point for any installation-specific and other technical questions for any GAP distribution. If you have used one of the alternatives, please specify, if known, which distribution was used - this will help us to provide more efficient advice. Best wishes, Alexander Konovalov, with inputs from GAP Support members. On 2 Jan 2012, at 04:02, Nicolas FRANCOIS wrote: > Hi. > > I'd like to use the generic Schreier-Sims package (genss) on my Debian > computer. But LoadPackage("genss"); fails. > > I tried to install genss and orb packages manually (they don't seem to > be included in the Debian archives), in /usr/share/gap/pkg/, but the > problem remains. > > Can you help me ? > > Thank you. > > \bye > > -- > > Nicolas FRANCOIS | /\ > http://nicolas.francois.free.fr | |__| > X--/\\ > We are the Micro$oft. _\_V > Resistance is futile. > You will be assimilated. darthvader penguin > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From kroeker at uni-math.gwdg.de Mon Jan 9 09:59:45 2012 From: kroeker at uni-math.gwdg.de (kroeker) Date: Mon, 09 Jan 2012 10:59:45 +0100 Subject: [GAP Forum] function search feature Message-ID: <4F0ABA91.9070105@uni-math.gwdg.de> Hello, sometimes I am looking for a function which is applicable to a specific object without knowing the name of the function. To find the desired function I have to read a lot of documentation, look for examples, ask an experienced GAP programmer (or the GAP-Forum) and so on. Would it be possible to implement a search through all existing functions where one of the parameters is an object of a specified type? Thanks, Jakob From Bill.Allombert at math.u-bordeaux1.fr Thu Jan 12 20:31:19 2012 From: Bill.Allombert at math.u-bordeaux1.fr (Bill Allombert) Date: Thu, 12 Jan 2012 21:31:19 +0100 Subject: [GAP Forum] Using package genss on Debian In-Reply-To: <20120102050227.580dde49@gaston> References: <20120102050227.580dde49@gaston> Message-ID: <20120112203119.GD16526@yellowpig> On Mon, Jan 02, 2012 at 05:02:27AM +0100, Nicolas FRANCOIS wrote: > Hi. > > I'd like to use the generic Schreier-Sims package (genss) on my Debian > computer. But LoadPackage("genss"); fails. > > I tried to install genss and orb packages manually (they don't seem to > be included in the Debian archives), in /usr/share/gap/pkg/, but the > problem remains. Dear Nicolas, Sorry for the late answer. First you should read the file /usr/share/doc/gap/README.Debian. You can install extension packages either * in /usr/local/share/gap or /usr/local/lib/gap. * in ~/gap. Note they must be put in a sub-directory called pkg. For example, the FactInt package provide a factint directory that must be moved to ~/gap/pkg/factint or /usr/local/share/gap/factint Otherwise the procedure is the same as for installing GAP package to a regular GAP installation. So you need to install dependent packages first. I suggest you start by installing the GAPDoc package since it is an easy one. When you start gap, it should display: Packages: GAPDoc 1.3 loaded. You will also need to install io. Beware that this require compilation. You should install the Debian package 'gap-dev' first. io provide a configure script. You should run it as follow cd pkg/io ./configure /usr/share/gap Unfortunately the Makefile need to be modified a bit because it looks for gac in /usr/share/gap/bin/x86_64-pc-linux-gnu-x86_64-linux-gnu-gcc/gac while in Debian, gac is in the PATH. So replace /usr/share/gap/bin/x86_64-pc-linux-gnu-x86_64-linux-gnu-gcc/gac by gac. and run make. You should get a file bin/x86_64-pc-linux-gnu-x86_64-linux-gnu-gcc/io.so Now, if you start gap, it should display Packages: GAPDoc 1.3, IO 3.3 loaded. Now you can install orb and genss. They are not autoloaded, so you must load them manually: gap> LoadPackage("orb"); ---------------------------------------------------------------------------------------------- Loading orb 3.8 (orb - Methods to enumerate orbits) by Juergen Mueller (http://www.math.rwth-aachen.de/~Juergen.Mueller), Max Neunhoeffer (http://www-groups.mcs.st-and.ac.uk/~neunhoef), and Felix Noeske (http://www.math.rwth-aachen.de/~Felix.Noeske). ---------------------------------------------------------------------------------------------- true gap> LoadPackage("genss"); ---------------------------------------------------------------------------------------------- Loading genss 1.3 (genss - generic Schreier-Sims) by Max Neunhoeffer (http://www-groups.mcs.st-and.ac.uk/~neunhoef) and Felix Noeske (http://www.math.rwth-aachen.de/~Felix.Noeske). ---------------------------------------------------------------------------------------------- true If you like more Debian GAP package, please help me! It is a huge work. Cheers, Bill. From nicolas.francois at free.fr Thu Jan 12 22:16:04 2012 From: nicolas.francois at free.fr (Nicolas FRANCOIS) Date: Thu, 12 Jan 2012 23:16:04 +0100 Subject: [GAP Forum] Using package genss on Debian In-Reply-To: <20120112203119.GD16526@yellowpig> References: <20120102050227.580dde49@gaston> <20120112203119.GD16526@yellowpig> Message-ID: <20120112231604.7c268aa4@gaston> A big thank you for all your help, guys. I learned a lot from your messages. I managed to install a genuine gap from sources, and will try to re-install it "the Debian way". > If you like more Debian GAP package, please help me! It is a huge > work. Please tell me how I could help. By testing installation of packages not provided ? By Debian-packaging them ? \bye -- Nicolas FRANCOIS | /\ http://nicolas.francois.free.fr | |__| X--/\\ We are the Micro$oft. _\_V Resistance is futile. You will be assimilated. darthvader penguin From fadebox at gmail.com Fri Jan 13 07:36:45 2012 From: fadebox at gmail.com (((1/f))) Date: Fri, 13 Jan 2012 13:06:45 +0530 Subject: [GAP Forum] elementary help with loops Message-ID: Dear Forum, I now know how to write a normal for loop to generate some kind of data, such as: *>for i in [1..30] do;* *>Print(IsPrime(i*10+9), ":", i*10+9, "\n");* *>od;* But after running this I just want to play with minor variations on the theme instead of having to type out the whole command all over again. How can I do this? I'm sure this is simple, but I'm new to this software. Kindly help. regards, - Rohit Gupta From williamdemeo at gmail.com Fri Jan 13 07:48:05 2012 From: williamdemeo at gmail.com (William DeMeo) Date: Thu, 12 Jan 2012 21:48:05 -1000 Subject: [GAP Forum] elementary help with loops In-Reply-To: References: Message-ID: Dear Rohit, Put your commands in a plain text file, using a text editor, then read the file using GAP's Read command. For example, if you name the file MyLoop.g, then in GAP enter the command gap> Read("MyLoop.g"); Make sure the file is in the same directory from which you launched GAP, or else use the absolute path name. -William On Thu, Jan 12, 2012 at 9:36 PM, (((1/f))) wrote: > Dear Forum, > > I now know how to write a normal for loop to generate some kind of data, > such as: > > *>for i in [1..30] do;* > *>Print(IsPrime(i*10+9), ":", i*10+9, "\n");* > *>od;* > > But after running this I just want to play with minor variations on the > theme instead of > having to type out the whole command all over again. How can I do this? > I'm sure this is simple, but I'm new to this software. Kindly help. > > regards, > - Rohit Gupta > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From dima at ntu.edu.sg Fri Jan 13 09:04:09 2012 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Fri, 13 Jan 2012 17:04:09 +0800 Subject: [GAP Forum] computing with square roots Message-ID: Dear all, I need to compute with matrices involving Sqrt(2+Sqrt). However, GAP does not know how to deal with these. gap> a:=Sqrt(Sqrt(2)+2); Error, no method found! For debugging hints type ?Recovery from NoMethodFound ... Is there a good workaround? Thanks, Dmitrii CONFIDENTIALITY: This email is intended solely for the person(s) named and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Towards A Sustainable Earth: Print Only When Necessary. Thank you. From Bill.Allombert at math.u-bordeaux1.fr Sat Jan 14 16:35:30 2012 From: Bill.Allombert at math.u-bordeaux1.fr (Bill Allombert) Date: Sat, 14 Jan 2012 17:35:30 +0100 Subject: [GAP Forum] computing with square roots In-Reply-To: References: Message-ID: <20120114163530.GC20248@yellowpig> On Fri, Jan 13, 2012 at 05:04:09PM +0800, Asst. Prof. Dmitrii (Dima) Pasechnik wrote: > Dear all, > > I need to compute with matrices involving Sqrt(2+Sqrt). > However, GAP does not know how to deal with these. > gap> a:=Sqrt(Sqrt(2)+2); > Error, no method found! For debugging hints type ?Recovery from NoMethodFound > ... > Is there a good workaround? You can use the identity: Sqrt(Sqrt(2)+2) = E(16)^7-E(16) which you can check in gap: gap> (E(16)^7-E(16))^2 = 2+Sqrt(2); true You can use Alnuth to find such identity: gap> x:=Indeterminate(Rationals,"x");; gap> G:=FieldByPolynomial(x^8+1); gap> FactorsPolynomialAlgExt( G, (x^2-2)^2-2 ); [ x_1+(-a^5+a^3), x_1+(a^5-a^3), x_1+(-a^7+a), x_1+(a^7-a) ] So up to conjugacy, by taking x_1=E(16) and a = Sqrt(Sqrt(2)+2), you get four solutions. Cheers, Bill. From fadebox at gmail.com Thu Jan 19 14:16:51 2012 From: fadebox at gmail.com (((1/f))) Date: Thu, 19 Jan 2012 19:46:51 +0530 Subject: [GAP Forum] If-then-else in GAP? Message-ID: Dear Forum, Just going through the manual by Alexander Hulpke after I became comfortable with the for-loop and writing scripts. Just wondering if GAP has conditional stuff like if-then-else? Because a quick skim though the manual's contents didn't show any. Please correct me if I'm wrong. warm regards, - Rohit Gupta Jaipur From hedtke at me.com Thu Jan 19 14:21:02 2012 From: hedtke at me.com (Ivo Hedtke) Date: Thu, 19 Jan 2012 15:21:02 +0100 Subject: [GAP Forum] If-then-else in GAP? In-Reply-To: References: Message-ID: <4F1826CE.40505@me.com> Hi, of course! http://www.gap-system.org/Manuals/doc/htm/ref/CHAP004.htm#SECT016 Ivo Am 19.01.12 15:16, schrieb (((1/f))): > Dear Forum, > > Just going through the manual by Alexander Hulpke after I became > comfortable with the for-loop and writing scripts. Just wondering if > GAP has conditional stuff like if-then-else? Because a quick skim > though the manual's contents didn't show any. > > Please correct me if I'm wrong. > > warm regards, > - Rohit Gupta > Jaipur > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From fadebox at gmail.com Thu Jan 19 14:23:57 2012 From: fadebox at gmail.com (((1/f))) Date: Thu, 19 Jan 2012 19:53:57 +0530 Subject: [GAP Forum] If-then-else in GAP? In-Reply-To: <4F1826CE.40505@me.com> References: <4F1826CE.40505@me.com> Message-ID: Whoa, thanks Ivo! From litlejoy_math at yahoo.com Sat Jan 21 14:09:13 2012 From: litlejoy_math at yahoo.com (Joy F.) Date: Sat, 21 Jan 2012 06:09:13 -0800 (PST) Subject: [GAP Forum] Verify if G is 2-Engel. In-Reply-To: <1326979982.860.YahooMailNeo@web125320.mail.ne1.yahoo.com> References: <1326979982.860.YahooMailNeo@web125320.mail.ne1.yahoo.com> Message-ID: <1327154953.38630.YahooMailNeo@web125301.mail.ne1.yahoo.com> Dear forum, How do I check if a group G is 2-Engel? Joy. From litlejoy_math at yahoo.com Sat Jan 21 14:09:35 2012 From: litlejoy_math at yahoo.com (Joy F.) Date: Sat, 21 Jan 2012 06:09:35 -0800 (PST) Subject: [GAP Forum] Filter 3-generator groups in GAP. In-Reply-To: <1326980494.21793.YahooMailNeo@web125319.mail.ne1.yahoo.com> References: <1326815969.65703.YahooMailNeo@web125305.mail.ne1.yahoo.com> <1326980494.21793.YahooMailNeo@web125319.mail.ne1.yahoo.com> Message-ID: <1327154975.29561.YahooMailNeo@web125320.mail.ne1.yahoo.com> DearForum, ? I wonder how do I build the following groups in GAP ? 1) Ordem G is 64, is 3-generator, then exist exactly four 2$\varepsilon$-group G such that exp(G/G') = exp(G')=2 satisfying G^2=G'. 2) Order G is 64, is 3-generator E-group, it can be checked in GAP that there exist no 2$\varepsilon$-group of order 64 having an abelian automorphism group. Def. 2$\varepsilon$-group G is 2$\varepsilon$-groups if G is 2$\varepsilon$-Engel group and exists a non-negative integer r such that Omega(G,2,r) < Z(G) and exp(G/G')=2^r. How do I filter these groups in GAP? JOY. From ashkanramiz at yahoo.com Sat Jan 21 14:34:52 2012 From: ashkanramiz at yahoo.com (Ashkan Ramiz) Date: Sat, 21 Jan 2012 06:34:52 -0800 (PST) Subject: [GAP Forum] Semi Direct Product Message-ID: <1327156492.1122.YahooMailNeo@web121205.mail.ne1.yahoo.com> Dear Gap Forum, ? How we can write?the following?groups in Gap? ? 1) Semi direct product G by H where G=DirectProduct(Z_2, Z_2) and H=PSL(2,7) ? 2) Semi direct product?H by?G where H=PSL(2,7) and G=DirectProduct(Z_2, Z_2) ? All the best, Ashkan From dima at ntu.edu.sg Sat Jan 21 14:59:53 2012 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Sat, 21 Jan 2012 22:59:53 +0800 Subject: [GAP Forum] Semi Direct Product In-Reply-To: <1327156492.1122.YahooMailNeo@web121205.mail.ne1.yahoo.com> References: <1327156492.1122.YahooMailNeo@web121205.mail.ne1.yahoo.com> Message-ID: On 21 January 2012 22:34, Ashkan Ramiz wrote: > Dear Gap Forum, > > How we can write the following groups in Gap? > > 1) Semi direct product G by H where G=DirectProduct(Z_2, Z_2) and H=PSL(2,7) > > 2) Semi direct product H by G where H=PSL(2,7) and G=DirectProduct(Z_2, Z_2) When G is normal, such a semidirect product is direct, as H cannot act on G. When H is normal, such a group is either the direct product, or G acts on H, inducing an outer order 2 automorphism of H. Thus you will get (H:Z_2)xZ_2, i.e. PGL(2,7)xZ_2. > > All the best, > Ashkan Best, Dmitrii CONFIDENTIALITY: This email is intended solely for the person(s) named and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Towards A Sustainable Earth: Print Only When Necessary. Thank you. From rm43 at evansville.edu Sat Jan 21 15:38:04 2012 From: rm43 at evansville.edu (Robert Morse) Date: Sat, 21 Jan 2012 09:38:04 -0600 Subject: [GAP Forum] Verify if G is 2-Engel. In-Reply-To: <1327154953.38630.YahooMailNeo@web125301.mail.ne1.yahoo.com> References: <1326979982.860.YahooMailNeo@web125320.mail.ne1.yahoo.com> <1327154953.38630.YahooMailNeo@web125301.mail.ne1.yahoo.com> Message-ID: If you are considering reasonably small finite groups you can use direct methods such as Is2Engel := function(G) return ForAll(Cartesian(G,G), x->LeftNormedComm(x)=One(G)); end; Robert F. Morse On Sat, Jan 21, 2012 at 8:09 AM, Joy F. wrote: > Dear forum, > > > How do I check if a group G is 2-Engel? > > Joy. > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From rm43 at evansville.edu Sat Jan 21 15:40:09 2012 From: rm43 at evansville.edu (Robert Morse) Date: Sat, 21 Jan 2012 09:40:09 -0600 Subject: [GAP Forum] Verify if G is 2-Engel. In-Reply-To: References: <1326979982.860.YahooMailNeo@web125320.mail.ne1.yahoo.com> <1327154953.38630.YahooMailNeo@web125301.mail.ne1.yahoo.com> Message-ID: Sorry needed to put in the 2-Engel law. Is2Engel := function(G) return ForAll(Cartesian(G,G), x->LeftNormedComm([x[1],x[2],x[2]])=One(G)); end; On Sat, Jan 21, 2012 at 9:38 AM, Robert Morse wrote: > If you are considering reasonably small finite groups you can use > direct methods such as > > Is2Engel := function(G) return ForAll(Cartesian(G,G), > x->LeftNormedComm(x)=One(G)); end; > > Robert F. Morse > > On Sat, Jan 21, 2012 at 8:09 AM, Joy F. wrote: >> Dear forum, >> >> >> How do I check if a group G is 2-Engel? >> >> Joy. >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum From joachim.neubueser at t-online.de Sat Jan 21 17:24:22 2012 From: joachim.neubueser at t-online.de (=?ISO-8859-15?Q?Joachim_Neub=FCser?=) Date: Sat, 21 Jan 2012 18:24:22 +0100 Subject: [GAP Forum] Fwd: Herbert Pahlings In-Reply-To: <4F1AF3B3.8090801@t-online.de> References: <4F1AF3B3.8090801@t-online.de> Message-ID: <4F1AF4C6.7020107@t-online.de> Dear colleagues, I am very sad that I have to inform you of the death of Prof. Dr. Herbert Pahlings on January 9, 2012. He is survived by his wife, whom he met already during his student time, his three sons and six grandchildren, to all of whom we would like to express our deepest sympathy. Personally, I will always remember with gratitude the many years of our close, friendly and fruitful collaboration at Lehrstuhl D f?r Mathematik, RWTH Aachen, and I think we all remember him with gratitude for his valuable contributions to computational group theory and to GAP in particular. Herbert Pahlings was born on May 12, 1939 at Krefeld (Germany), he studied mathematics at the universities of T?bingen and Gie?en, where in 1968 he got his PhD for his thesis 'Beitr?ge zur Theorie der projektiven Darstellungen endlicher Gruppen'. His advisor was Professor Hermann Boerner. Since 1965 he worked as an assistant at the department of mathematics at Gie?en, interrupted by visits in 1968 to Texas A & M, and in 1973/74 to Carleton University, Ottawa, Canada. In 1975 he got his Habilitation and a permanent position as Akademischer Oberrat at Gie?en until in 1979 he was appointed to a professorship at Lehrstuhl D f?r Mathematik. Until his retirement in 2004 he had lectured at all levels, from beginners courses on Linear Algebra with an audience of several hundred students to a broad spectrum of special courses, mainly on algebraic topics, in particular from group theory and representation theory. His lectures contained a wealth of material, often enriched in a very original way by his own ideas. They were loved and esteemed by the students for the clarity of their design and presentation. No wonder that he attracted many of the best students to work under his advice for their Diploma or even PhD. Of his PhD students Meinolf Geck, Klaus Lux, G?tz Pfeiffer and J?rgen M?ller meanwhile teach at universities while Thomas Breuer played and is playing a main role in the development of GAP and the construction of its representation theoretic data bases. Herbert Pahling's papers from his time at Gie?en deal with a variety of (often concrete) problems from the representation theory of finite groups. Also from this time there are lecture notes on modular representation theory of a course he gave at Istanbul in 1973. But it was only when he moved to Aachen that he soon developed a keen interest in algorithmic methods of representation theory, their implementation and use. He participated very actively in the development and use of a special program system CAS (Character Algebra System), which he describes (together with coauthors) in a paper published in the proceedings of a conference on Computational Group Theory held at Durham in 1982. The highlight of the paper were some worked-out examples provided by Herbert Pahlings. They show how new character tables could be obtained from (parts of) known ones interactively using CAS without ever touching the elements of the underlying groups. At that time the classification of the finite simple groups had just been finished and the preparation of the 'Atlas of Finite Groups' was on the way. Character tables of simple and related groups are a dominant feature of the Atlas and programs such as the ones of CAS were welcome in particular for interactive handling the character tables of groups by far too big for working from their elements. In the preface of the Atlas John Conway recognized the help obtained from Herbert Pahlings and the CAS group both by providing additional tables and correcting errors that are unavoidable in working 'by hand' with such a huge amount of data. CAS was still written in Fortran and had a language suitable for interactive handling but not really for implementing new algorithms, so in 1986 we decided to start GAP (Groups, Algorithms and Programming) as a new system in which only basic time-critical functions were written in C while an own problem-adapted language should serve both as the user language and for implementation of mathematical algorithms. Herbert Pahlings patiently and constructively took part in the long discussions on the design of GAP and together with his students became a main developer and frequent and successful user of GAP. Several of his papers from his time in Aachen deal with applications to topics studied elsewhere: e.g. he contributed to the project of realizing finite groups as Galois groups and there are papers on the M?bius function of groups. Herbert Pahlings has spread the knowledge on computational representation theory by lectures and complete courses given at many places, e.g. in Brasil, South Africa, Ireland, Hungary and Italy (there are lecture notes of some of these courses) and was a splendid host for many visitors who came to Aachen to learn about this topic. He also served as a member of the GAP Council from 1995 to 2007, and as such had been editor for the formal acceptance of several GAP packages. Herbert Pahlings' former students and colleagues have taken part in the publication of several collections of data connected with group representations: Gerhard Hi? and Klaus Lux published 'Brauer Trees of Sporadic Groups' in 1989, Christoph Jansen and Klaus Lux together with Richard Parker and Robert Wilson 'An Atlas of Brauer Characters' in 1995 (which also contains corrections and addenda to the 'Atlas'), and Thomas Breuer 'Characters and Automorphism Groups of Compact Riemann Surfaces' in 2000. * *In 2010 Herbert Pahlings together with his former student Klaus Lux published 'Representations of Groups, A Computational Approach', a book of 460 pages which in more than one way breaks new ground. It is the first text presenting a full view of algorithmic methods in both ordinary and modular representation theory, thus closing a strongly felt gap in the available literature on computational group theory. Moreover rather than relying on other texts for the theoretical background it builds up from scratch the theorems together with the algorithms, and it demonstrates the use of algorithms by worked examples using GAP implementations. Thus it gives an example and a guideline for everybody planning a course on some algebraic structure for which not only theorems but also algorithms are known. We will strongly miss Herbert Pahlings but we should be grateful for all he has given us. Joachim Neub?ser From primoz.moravec at fmf.uni-lj.si Sat Jan 21 17:29:00 2012 From: primoz.moravec at fmf.uni-lj.si (Primoz Moravec) Date: Sat, 21 Jan 2012 18:29:00 +0100 Subject: [GAP Forum] Verify if G is 2-Engel. In-Reply-To: <1327154953.38630.YahooMailNeo@web125301.mail.ne1.yahoo.com> References: <1326979982.860.YahooMailNeo@web125320.mail.ne1.yahoo.com> <1327154953.38630.YahooMailNeo@web125301.mail.ne1.yahoo.com> Message-ID: <4F1AF5DC.907@fmf.uni-lj.si> Dear Joy, you can use the fact that G is 2-Engel if all normal closures of elements are abelian. It suffices to check this on representatives of conjugacy classes: ForAll(ConjugacyClasses(G), c -> IsAbelian(NormalClosure(G, Subgroup(G, [Representative(c)])))); Primoz. On 01/21/2012 03:09 PM, Joy F. wrote: > Dear forum, > > > How do I check if a group G is 2-Engel? > > Joy. > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From serkanrakin at yahoo.com Sat Jan 21 18:26:07 2012 From: serkanrakin at yahoo.com (Serkan Rakin) Date: Sat, 21 Jan 2012 18:26:07 +0000 (GMT) Subject: [GAP Forum] Maximal Subgroups Message-ID: <1327170367.51151.YahooMailNeo@web29817.mail.ird.yahoo.com> Dear members, ? I would like to know how we can compute?the maximal subgroups of mathieu group of degree 23 in gap. Best regards, Serkan From dima at ntu.edu.sg Sun Jan 22 03:23:03 2012 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Sun, 22 Jan 2012 11:23:03 +0800 Subject: [GAP Forum] Maximal Subgroups In-Reply-To: <1327170367.51151.YahooMailNeo@web29817.mail.ird.yahoo.com> References: <1327170367.51151.YahooMailNeo@web29817.mail.ird.yahoo.com> Message-ID: Dear Serkan, On 22 January 2012 02:26, Serkan Rakin wrote: > Dear members, > > I would like to know how we can compute the maximal subgroups of mathieu group of degree 23 in gap. please have a look at http://brauer.maths.qmul.ac.uk/Atlas/v3/spor/M23/ It contains pre-computed generators for some (if not all) maximal subgroups of M23. HTH, Dmitrii CONFIDENTIALITY: This email is intended solely for the person(s) named and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Towards A Sustainable Earth: Print Only When Necessary. Thank you. From lvendramin at gmail.com Sun Jan 22 03:33:41 2012 From: lvendramin at gmail.com (Leandro Vendramin) Date: Sun, 22 Jan 2012 00:33:41 -0300 Subject: [GAP Forum] Maximal Subgroups In-Reply-To: <1327170367.51151.YahooMailNeo@web29817.mail.ird.yahoo.com> References: <1327170367.51151.YahooMailNeo@web29817.mail.ird.yahoo.com> Message-ID: Hi Serkan, > I would like to know how we can compute the maximal subgroups of mathieu group of degree 23 in gap. The maximal subgroups of M23 are stored in the AtlasRep package. The group M23 has 7 maximal subgroups. For example, the following code can be used to obtain the 4th maximal subgroup of M23 (which is isomorphic to A8, see for example the ATLAS of finite groups: http://brauer.maths.qmul.ac.uk/Atlas/v3/lookup?target=m23). gap> LoadPackage("atlasrep"); gap> N := 4; gap> gr := Group(AtlasGenerators("M23", 1, N).generators); Group([ (1,4)(5,11)(6,18)(7,10)(13,22)(14,20)(15,21)(16,19), (1,15,17,18)(2,9,22,3)(4,8,23,13)(5,7)(6,12)(11,19,14,16) ]) gap> Size(gr); 20160 See the documentation of the AtlasRep package for more information on the function AtlasGenerators. Best regards, Leandro From litlejoy_math at yahoo.com Sun Jan 22 18:14:15 2012 From: litlejoy_math at yahoo.com (Joy F.) Date: Sun, 22 Jan 2012 10:14:15 -0800 (PST) Subject: [GAP Forum] UnipotentStabiliser algorithm in GAP In-Reply-To: <1327154975.29561.YahooMailNeo@web125320.mail.ne1.yahoo.com> References: <1326815969.65703.YahooMailNeo@web125305.mail.ne1.yahoo.com> <1326980494.21793.YahooMailNeo@web125319.mail.ne1.yahoo.com> <1327154975.29561.YahooMailNeo@web125320.mail.ne1.yahoo.com> Message-ID: <1327256055.52686.YahooMailNeo@web125304.mail.ne1.yahoo.com> Dear forum, Does anyone have an implementation of UnipotentStabiliser algorithm available in GAP? Or know how to implement the algorithm in GAP? JOY. From shubh at iitg.ernet.in Tue Jan 24 11:24:58 2012 From: shubh at iitg.ernet.in (shubh at iitg.ernet.in) Date: Tue, 24 Jan 2012 16:54:58 +0530 Subject: [GAP Forum] Combination of generators Message-ID: Dear Sir, I have a finitely generated transformation monoid M on a finite set X generated by two transformations f and g on X. Also I have another transformation h in M. Is there any method to tell what type of combination of f and g give h. With Regards, Shubh -- Shubh N. Singh Research Scholar Department of Mathematics IIT Guwahati - 781039 Email: shubh at iitg.ernet.in Mob. no.: +91-9864221370 From shubh at iitg.ernet.in Tue Jan 24 11:27:52 2012 From: shubh at iitg.ernet.in (shubh at iitg.ernet.in) Date: Tue, 24 Jan 2012 16:57:52 +0530 Subject: [GAP Forum] Combination of generators Message-ID: <63321ac4f92adaa3092f086c8660b33d.squirrel@webmail.iitg.ernet.in> Dear Sir, I have a finitely generated transformation monoid M on a finite set X generated by two transformations f and g on X. Also I have another transformation h in M. Is there any method to tell what type of combination of f and g give h. With Regards, Shubh -- Shubh N. Singh Research Scholar Department of Mathematics IIT Guwahati - 781039 Email: shubh at iitg.ernet.in Mob. no.: +91-9864221370 From litlejoy_math at yahoo.com Tue Jan 24 14:03:07 2012 From: litlejoy_math at yahoo.com (Joy F.) Date: Tue, 24 Jan 2012 06:03:07 -0800 (PST) Subject: [GAP Forum] How to build an algorithm that returns groups with exp (G ') = 2. In-Reply-To: <1327256055.52686.YahooMailNeo@web125304.mail.ne1.yahoo.com> References: <1326815969.65703.YahooMailNeo@web125305.mail.ne1.yahoo.com> <1326980494.21793.YahooMailNeo@web125319.mail.ne1.yahoo.com> <1327154975.29561.YahooMailNeo@web125320.mail.ne1.yahoo.com> <1327256055.52686.YahooMailNeo@web125304.mail.ne1.yahoo.com> Message-ID: <1327413787.97787.YahooMailNeo@web125308.mail.ne1.yahoo.com> Dear forum, I want to build an algorithm that returns all groups of order 32, which satisfy exp (G ') = exp (G / G) = 2. I can do testing group by group, the more I want to go with all groups of order 32, and my algorithm returns a list of groups satisfying the above properties. best wishes, JoY. From ashkanramiz at yahoo.com Tue Jan 24 14:42:10 2012 From: ashkanramiz at yahoo.com (Ashkan Ramiz) Date: Tue, 24 Jan 2012 06:42:10 -0800 (PST) Subject: [GAP Forum] Question Message-ID: <1327416130.72654.YahooMailNeo@web121202.mail.ne1.yahoo.com> Dear members, ? I would like to know how we can build the group G= in gap. Best regards, Ashkan From ahulpke at gmail.com Tue Jan 24 14:51:43 2012 From: ahulpke at gmail.com (Alexander Hulpke) Date: Tue, 24 Jan 2012 07:51:43 -0700 Subject: [GAP Forum] Question In-Reply-To: <1327416130.72654.YahooMailNeo@web121202.mail.ne1.yahoo.com> References: <1327416130.72654.YahooMailNeo@web121202.mail.ne1.yahoo.com> Message-ID: <96B60C71-BC0D-4DCC-8BF3-DD11388F348F@gmail.com> Dear Forum, > Dear members, I would like to know how we can build the group G= in gap. `ParseRelators' is probably the most convenient way to enter such relations: gap> f:=FreeGroup("a","b","c"); gap> rels:=ParseRelators(f,"a2=b2=c2,abc=bca=cab"); [ b^2*a^-2, c^2*a^-2, b*c*a*c^-1*b^-1*a^-1, c*a*b*c^-1*b^-1*a^-1 ] gap> g:=f/rels; Now g is the desired group. Best, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From serkanrakin at yahoo.com Tue Jan 24 16:04:55 2012 From: serkanrakin at yahoo.com (Serkan Rakin) Date: Tue, 24 Jan 2012 16:04:55 +0000 (GMT) Subject: [GAP Forum] Extension Message-ID: <1327421095.98960.YahooMailNeo@web29803.mail.ird.yahoo.com> Dear GAP Forum, ? How we can build?4.S_4 and 4^2:S_3? All the best, Serkan From sal at cs.st-andrews.ac.uk Tue Jan 24 21:26:51 2012 From: sal at cs.st-andrews.ac.uk (Stephen Linton) Date: Tue, 24 Jan 2012 21:26:51 +0000 Subject: [GAP Forum] Question In-Reply-To: References: <1327416130.72654.YahooMailNeo@web121202.mail.ne1.yahoo.com> Message-ID: <3F162F8B-7E20-4EF1-B7D4-9D74F2922305@cs.st-andrews.ac.uk> Dear GAP Forum, I think Alexander lost an =1 just before the comma in the relator string below. Steve On 24 Jan 2012, at 14:51, Alexander Hulpke wrote: > Dear Forum, > >> Dear members, I would like to know how we can build the group G= in gap. > > `ParseRelators' is probably the most convenient way to enter such relations: > > gap> f:=FreeGroup("a","b","c"); > > gap> rels:=ParseRelators(f,"a2=b2=c2,abc=bca=cab"); > [ b^2*a^-2, c^2*a^-2, b*c*a*c^-1*b^-1*a^-1, c*a*b*c^-1*b^-1*a^-1 ] > gap> g:=f/rels; > > > Now g is the desired group. > > Best, > > Alexander Hulpke > > -- Colorado State University, Department of Mathematics, > Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA > email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 > http://www.math.colostate.edu/~hulpke > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From sal at cs.st-andrews.ac.uk Tue Jan 24 21:32:55 2012 From: sal at cs.st-andrews.ac.uk (Stephen Linton) Date: Tue, 24 Jan 2012 21:32:55 +0000 Subject: [GAP Forum] How to build an algorithm that returns groups with exp (G ') = 2. In-Reply-To: <41eaefe93056453b9335c06e2d256e6d@UOS-DUN-CAS3.st-andrews.ac.uk> References: <1326815969.65703.YahooMailNeo@web125305.mail.ne1.yahoo.com> <1326980494.21793.YahooMailNeo@web125319.mail.ne1.yahoo.com> <1327154975.29561.YahooMailNeo@web125320.mail.ne1.yahoo.com> <1327256055.52686.YahooMailNeo@web125304.mail.ne1.yahoo.com> <41eaefe93056453b9335c06e2d256e6d@UOS-DUN-CAS3.st-andrews.ac.uk> Message-ID: <3CB4C937-AF60-4C72-B33E-B71F85D5FB25@cs.st-andrews.ac.uk> Dear GAP Forum: On 24 Jan 2012, at 14:03, Joy F. wrote: > > I want to build an algorithm that returns all groups of order 32, which satisfy exp (G ') = exp (G / G) = 2. > I can do testing group by group, the more I want to go with all groups of order 32, and my algorithm returns a list of groups satisfying the above properties. The list of all groups of order 32 can be obtained via the AllGroups function. You can then select the groups you want using Filtered. Steve Linton From serkanrakin at yahoo.com Wed Jan 25 08:13:17 2012 From: serkanrakin at yahoo.com (Serkan Rakin) Date: Wed, 25 Jan 2012 08:13:17 +0000 (GMT) Subject: [GAP Forum] Extension In-Reply-To: <1327421095.98960.YahooMailNeo@web29803.mail.ird.yahoo.com> References: <1327421095.98960.YahooMailNeo@web29803.mail.ird.yahoo.com> Message-ID: <1327479197.56489.YahooMailNeo@web29808.mail.ird.yahoo.com> Dear members, ? Isn't there any method to build the group 4.S_4?or 4^2:S_3? Sorry if this is too obvious, or if it is obviously hard, but thanks in advance for your help. Best wishes Serkan From joachim.neubueser at t-online.de Wed Jan 25 15:56:45 2012 From: joachim.neubueser at t-online.de (=?ISO-8859-1?Q?Joachim_Neub=FCser?=) Date: Wed, 25 Jan 2012 16:56:45 +0100 Subject: [GAP Forum] Extension In-Reply-To: <1327479197.56489.YahooMailNeo@web29808.mail.ird.yahoo.com> References: <1327421095.98960.YahooMailNeo@web29803.mail.ird.yahoo.com> <1327479197.56489.YahooMailNeo@web29808.mail.ird.yahoo.com> Message-ID: <4F20263D.1030302@t-online.de> Am 25.01.2012 09:13, schrieb Serkan Rakin: > Dear members, > > Isn't there any method to build the group 4.S_4 or 4^2:S_3? > Sorry if this is too obvious, or if it is obviously hard, but thanks in advance for your help. > Best wishes > Serkan > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > Dear Serkan Rakin, You asked the same question yesterday. Please be a bit patient, all answers are given by people who have a job and answer the forum in their free time. However as to your question: Read the Chapter on products of groups in the main GAP manual and the manual of the package 'Grp Constructions'. Hope you will find answers to your questions there. Kind regards Joachim Neub?ser From darthandrus at gmail.com Sat Jan 28 16:31:07 2012 From: darthandrus at gmail.com (Ivan Andrus) Date: Sat, 28 Jan 2012 17:31:07 +0100 Subject: [GAP Forum] IsCentral doesn't work for group elements Message-ID: Why doesn't IsCentral work for group elements? It's not hard to turn the element into a group and then IsCentral works, but it seems silly that it doesn't work, considering that the help says IsCentral( M, obj ) IsCentral returns true if the object obj, which must either be an element or a magma, commutes with all elements in the magma M. -Ivan From shubh at iitg.ernet.in Mon Jan 30 04:50:50 2012 From: shubh at iitg.ernet.in (shubh at iitg.ernet.in) Date: Mon, 30 Jan 2012 10:20:50 +0530 Subject: [GAP Forum] Representation in terms of Generators Message-ID: <441329ccb8f01b55cd1b8d6e9e90af99.squirrel@webmail.iitg.ernet.in> Dear Sir, I have a finite transformation monoid M generated by two transformations f:=[2,3,4,5,1] and g:=[1,3,1,1,1]. Also I know that h:=[1,3,3,3,3] is in M with the help of GAP. I want a representation of h in terms of f and g. I have been using GAP4, Version: 4.4.12 and installed "orb package" as you told me. But I could not know how to give an input in GAP to get a representation of h in terms of f and g. Please explain by giving one such example. I would be very grateful to you. With regards, Shubh -- Shubh N. Singh Research Scholar Department of Mathematics IIT Guwahati - 781039 Email: shubh at iitg.ernet.in Mob. no.: +91-9864221370 From A.Egri-Nagy at herts.ac.uk Mon Jan 30 05:14:37 2012 From: A.Egri-Nagy at herts.ac.uk (Attila Egri-Nagy) Date: Mon, 30 Jan 2012 16:14:37 +1100 Subject: [GAP Forum] Representation in terms of Generators In-Reply-To: <441329ccb8f01b55cd1b8d6e9e90af99.squirrel@webmail.iitg.ernet.in> References: <441329ccb8f01b55cd1b8d6e9e90af99.squirrel@webmail.iitg.ernet.in> Message-ID: This code I tried in GAP 4.5.2, but it should work in GAP 4.4.12 as well. S := Semigroup([Transformation([5,4,3,2,1]), Transformation([1,3,1,1,1])]); o := Orb(S, IdentityTransformation(5), \*, rec(schreier:=true, orbitgraph:=true)); Enumerate(o); TraceSchreierTreeForward(o, Position(o, Transformation([1,1,1,3,1]))); The last command gives [ 1, 2 ] meaning f*g However, your h is not in this semigroup. best wishes, Attila On Mon, Jan 30, 2012 at 3:50 PM, wrote: > Dear Sir, > I have a finite transformation monoid M generated by two transformations > f:=[2,3,4,5,1] and g:=[1,3,1,1,1]. Also I know that h:=[1,3,3,3,3] is in M > with the help of GAP. I want a representation of h in terms of f and g. > > I have been using GAP4, Version: 4.4.12 and installed "orb package" as you > told me. But I could not know how to give an input in GAP to get a > representation of h in terms of f and g. > > Please explain by giving one such example. > > I would be very grateful to you. > > With regards, > Shubh > > -- > Shubh N. Singh > Research Scholar > Department of Mathematics > IIT Guwahati - 781039 > Email: shubh at iitg.ernet.in > Mob. no.: +91-9864221370 > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From jdm3 at st-and.ac.uk Tue Jan 24 15:15:37 2012 From: jdm3 at st-and.ac.uk (James Mitchell) Date: Tue, 24 Jan 2012 15:15:37 +0000 Subject: [GAP Forum] Combination of generators Message-ID: Dear Shubh, If you are using GAP 4.5, then the answer is yes. In the Citrus package ( http://www-groups.mcs.st-andrews.ac.uk/~jamesm/citrus/index.html) you can find the command Factorization which does what you want. For example, gap> f:=RandomTransformation(7); Transformation( [ 6, 4, 2, 3, 4, 3, 1 ] ) gap> g:=RandomTransformation(7); Transformation( [ 1, 6, 4, 4, 7, 4, 6 ] ) gap> M:=Monoid(f,g); gap> h:=Random(M); Transformation( [ 1, 6, 4, 4, 7, 4, 6 ] ) gap> Factorization(M, h); [ 2 ] gap> h:=Random(M); Transformation( [ 6, 3, 3, 3, 1, 3, 3 ] ) gap> Factorization(M, h); [ 2, 1 ] gap> g*f; Transformation( [ 6, 3, 3, 3, 1, 3, 3 ] ) gap> h:=Random(M); Transformation( [ 1, 4, 4, 4, 6, 4, 4 ] ) gap> Factorization(M, h); [ 2, 2 ] gap> h:=Random(M); Transformation( [ 4, 4, 4, 4, 4, 4, 4 ] ) gap> Factorization(M, h); [ 1, 1, 2, 1, 2 ] gap> f^2*g*f*g; Transformation( [ 4, 4, 4, 4, 4, 4, 4 ] ) The list that is returned is a list of positive integers where i corresponds to GeneratorsOfSemigroups(S)[i]. Regards, James Date: Tue, 24 Jan 2012 16:54:58 +0530 From: shubh at iitg.ernet.in To: forum at gap-system.org Subject: [GAP Forum] Combination of generators Message-ID: Content-Type: text/plain;charset=iso-8859-1 Dear Sir, I have a finitely generated transformation monoid M on a finite set X generated by two transformations f and g on X. Also I have another transformation h in M. Is there any method to tell what type of combination of f and g give h. With Regards, Shubh -- Shubh N. Singh Research Scholar Department of Mathematics IIT Guwahati - 781039 Email: shubh at iitg.ernet.in Mob. no.: +91-9864221370 -- James Mitchell tinyurl.com/jdmitchell The University of St Andrews is a charity registered in Scotland : No SC013532 From pbrooksb at bucknell.edu Mon Jan 30 12:44:20 2012 From: pbrooksb at bucknell.edu (Peter Brooksbank) Date: Mon, 30 Jan 2012 07:44:20 -0500 Subject: [GAP Forum] Faithful representation of GL(V) as permutation of the non-zero vectors in V. In-Reply-To: References: Message-ID: Dear Sergio, What is the parent group in which your GL(5,3) and Sp(4,3) live? Without that information one cannot consider their intersection. Also, the 3-part of the order you stated is larger than the 3-part in the products of the orders of GL(5,3) and Sp(4,3), so I'm afraid I'm really confused. Peter On Fri, Dec 16, 2011 at 2:58 PM, sergio reis wrote: > > Dear forum, > > > Let GL(5, 3) x Sp (4, 3). The intersection C of these two groups has order > 2^14 x 3^23, How do I to construct C using either the faithful > representation of GL(V) as permutations of the non-zero vectors in V. > > thanks. > > > S?rgio Reis Fernandes. > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From D.F.Holt at warwick.ac.uk Mon Jan 30 21:31:19 2012 From: D.F.Holt at warwick.ac.uk (Derek Holt) Date: Mon, 30 Jan 2012 21:31:19 +0000 Subject: [GAP Forum] subgroup of fp-group from coset table Message-ID: <20120130213119.GA12435@warwick.ac.uk> Dear GAP forum, I would be grateful if someone could help me with the technicalities of the following problem. I have a homomorphism f: F -> G from a finitely presented group F to a transitive permutation group G. I want to find the inverse image under f of a point stabilizer in G. It is straightforward to do this in theory using Schreier generators, but I am uncertain of the most efficient way of programming this in GAP. I want to regard the images of the generators of f as a coset table for F, and then define the subgroup using the coset table. Perhaps the GAP function SubgroupOfWholeGroupByCosetTable is the one to use, but this take a "family of a fp group" and a coset table as arguments. I don't know what is meant by a "family of a fp group" (why doesn't it just take F as argument?) and I would be grateful for help in computing the coset table defined by f in GAP. Thanks! Derek. From hulpke at math.colostate.edu Mon Jan 30 22:22:58 2012 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Mon, 30 Jan 2012 15:22:58 -0700 Subject: [GAP Forum] subgroup of fp-group from coset table In-Reply-To: <20120130213119.GA12435@warwick.ac.uk> References: <20120130213119.GA12435@warwick.ac.uk> Message-ID: Dear Forum, Dear Derek, > I would be grateful if someone could help me with the technicalities of the > following problem. > > I have a homomorphism f: F -> G from a finitely presented group F to a > transitive permutation group G. I want to find the inverse image under f > of a point stabilizer in G The most basic way in GAP would be to actually use the homomorphism, and take the pre-image under the homomorphism: gap> F:=free/ParseRelators(free,"a2,b3,(ab)5");; gap> G:=Group((1,2)(3,4),(1,3,5));; gap> hom:=GroupHomomorphismByImages(F,G,GeneratorsOfGroup(F),GeneratorsOfGroup(G)); [ a, b ] -> [ (1,2)(3,4), (1,3,5) ] gap> S:=PreImage(hom,Stabilizer(G,1)); Group() The resulting subgroup is stored as being pre-image under a homomorphism (thus it does not yet know generators, but is very low cost), but one could ask for these or the coset table etc. if one wanted to (however they would not be required for element tests, thus this approach will work even for subgroups of huge index). Now everything should work for S, even if generators or coset table have not been computed. (For example one could ask for subgroup intersections, or for abelian quotients.) Please let me know if you find this subgroup in any way unsatisfactory. gap> CosetTableInWholeGroup(S); [ [ 2, 1, 5, 4, 3 ], [ 2, 1, 5, 4, 3 ], [ 3, 2, 4, 1, 5 ], [ 4, 2, 1, 3, 5 ] ] gap> GeneratorsOfGroup(S); [ a*b*a^-1, b^-1*a*b ] > SubgroupOfWholeGroupByCosetTable > This is a somewhat more technical function (I personally would not use outside library code). An example would be: gap> table:=[[2,1,5,4,3],[2,1,5,4,3],[3,2,4,1,5],[4,2,1,3,5]];; gap> SubgroupOfWholeGroupByCosetTable(FamilyObj(F),table); Group() (The reason for requiring the family is that it requires not just the group F, but also the particular generators, while H:=Subgroup(F,[F.1,F.1*F.2]) is mathematically the same group, it would not fit with the coset table.) All the best, Alexander From shubh at iitg.ernet.in Tue Jan 31 05:47:34 2012 From: shubh at iitg.ernet.in (shubh at iitg.ernet.in) Date: Tue, 31 Jan 2012 11:17:34 +0530 Subject: [GAP Forum] Unit Regular Monoid Message-ID: <60cba17a708cb82688f2c77e61c7b39a.squirrel@webmail.iitg.ernet.in> Dear Sir, I have a transformation monoid M and want to check whether M is 1. unit regular 2. Left factorisable, 3. Right factorisable, 4. Factorisable. Please tell the input code (if there is) for these queries in GAP. With regards, Shubh -- Shubh N. Singh Research Scholar Department of Mathematics IIT Guwahati - 781039 Email: shubh at iitg.ernet.in Mob. no.: +91-9864221370 From garymakonel at googlemail.com Wed Feb 1 15:50:59 2012 From: garymakonel at googlemail.com (Gary Makonel) Date: Wed, 1 Feb 2012 15:50:59 +0000 Subject: [GAP Forum] Bruhat orders Message-ID: Hi I was wondering whether there is any current version of a calculator for Coxeter-Weyl root systems etc. Concretely all I am trying to do is to calculate the reduced Bruhat order on certain (parabolic) quotients of symmetric groups, so I do not necessarily need the full machinery. But naively using the "length" function etc on elements of the symmetric group does not seem to work, and references on the web to "Chevie" and "Weyl" packages seem to be defunct ... Many thanks in advance Gary From j.taylor at abdn.ac.uk Wed Feb 1 20:57:08 2012 From: j.taylor at abdn.ac.uk (Jay Taylor) Date: Wed, 01 Feb 2012 20:57:08 +0000 Subject: [GAP Forum] Bruhat Orders Message-ID: <4F29A724.7040408@abdn.ac.uk> Dear Gary, The CHEVIE package is what you really need to use but this can only be run in GAP 3. See the development version maintained by Jean Michel here http://www.math.jussieu.fr/~jmichel/chevie/chevie.html Alternatively this functionality is given in the new PyCox program written by Meinolf Geck, (this is written in Python and can be imported into Sage). The file can be downloaded on Geck's website here http://www.abdn.ac.uk/~mth190/ A recent preprint of Geck's details some of its features http://arxiv.org/pdf/1201.5566v1.pdf This program is still quite new so it may not have all the functionality you need but the Bruhat order has certainly been implemented. There is also DuCloux's Coxeter program, written in C++, which can be found here http://math.univ-lyon1.fr/~ducloux/coxeter/coxeter3/english/coxeter3_e.html This will also compute the Bruhat order. I hope some of these references help you. -Jay From BSambale at gmx.de Fri Feb 3 16:04:12 2012 From: BSambale at gmx.de (Benjamin Sambale) Date: Fri, 03 Feb 2012 17:04:12 +0100 Subject: [GAP Forum] IsPNilpotent for nonsolvable groups Message-ID: <20120203160412.50300@gmx.net> Dear GAP users, I got the following error message: IsPNilpotent(GL(3,2),2); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 3rd choice method found for `HallSubgroupOp' on 2 arguments So, it seems that IsPNilpotent doesn't work for nonsolvable groups, since it relies on HallSubgroup. Wouldn't it be easier to use the following code? IsPNilpotent:=function(G,p) if AsGroup(Filtered(G,x->Order(x) mod p<>0))=fail then return false; else return true; fi; end; Best wishes, Benjamin -- Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de From max at quendi.de Sat Feb 4 18:36:37 2012 From: max at quendi.de (Max Horn) Date: Sat, 4 Feb 2012 19:36:37 +0100 Subject: [GAP Forum] IsPNilpotent for nonsolvable groups In-Reply-To: <20120203160412.50300@gmx.net> References: <20120203160412.50300@gmx.net> Message-ID: <6A8E164D-2CCD-4170-AAFB-78673993F446@quendi.de> Dear Benjamin, Am 03.02.2012 um 17:04 schrieb Benjamin Sambale: > Dear GAP users, > > I got the following error message: > > IsPNilpotent(GL(3,2),2); > Error, no method found! For debugging hints type ?Recovery from NoMethodFound > Error, no 3rd choice method found for `HallSubgroupOp' on 2 arguments > > So, it seems that IsPNilpotent doesn't work for nonsolvable groups, since it relies on HallSubgroup. Yes, that's correct indeed. This limitation is documented for HallSubgroup (I assume you are aware of that), but it is not documented for IsPNilpotent, which is an oversight we should correct -- or else we should indeed provide alternative methods that cover non-solvable groups. > Wouldn't it be easier to use the following code? > > IsPNilpotent:=function(G,p) > if AsGroup(Filtered(G,x->Order(x) mod p<>0))=fail then return false; else return true; fi; > end; This code only can work for relatively small finite groups, e.g. not for GL(4,5) of order 116064000000. So I don't think we should use it. However, I agree that we can and should include more code to deal with such groups in GAP. I guess so far nobody had a real need for it. A refinement of the following could be done (coded from the top of my head; much better solutions may yet be possible, but at least this one can deal with GL(4,5): MyIsPNilpotent := function(G,p) local cc, H; if Size(G) mod p <> 0 or IsAbelian(G) then return true; fi; cc := ConjugacyClasses(G);; cc := Filtered(cc, c -> Order(Representative(c)) mod p <> 0);; if Size(G) mod Sum(List(cc,Size)) <> 0 then return false; fi; H:=Subgroup(G, List(cc, Representative)); H:=NormalClosure(G, H); return Size(H) mod p <> 0; end; Cheers, Max From neunhoef at mcs.st-and.ac.uk Tue Feb 7 12:18:25 2012 From: neunhoef at mcs.st-and.ac.uk (Max Neunhoeffer) Date: Tue, 7 Feb 2012 12:18:25 +0000 Subject: [GAP Forum] GAP in teaching Message-ID: <20120207121825.GA19774@mcs.st-and.ac.uk> Dear Forum, I am collecting information about where and how GAP is used in teaching mathematics or computer science. If GAP is used in any way in teaching in your institution, I would be very grateful if you could briefly answer the following questions: In which institution and where are you working? For what courses or types of teaching is GAP used? At what mathematical level are these courses? How many students are taught in these courses? For how long (approximately) has GAP been used in this way? Is there any teaching material publicly available? Do not spend much time on this, a few brief statements are sufficient for our purposes. Please send your answer to me personally rather than to the forum, I will post an overview of the feedback I collect. Best regards, Max Neunhoeffer -- Max Neunhoeffer http://www-groups.mcs.st-and.ac.uk/~neunhoef/ > > > > > > > > > > > May the Source be with you! < < < < < < < < < < < < The University of St Andrews is a registered Scottish charity: No SC013532 From saqaas12 at gmail.com Wed Feb 8 06:17:45 2012 From: saqaas12 at gmail.com (Aasma Shaheen) Date: Wed, 8 Feb 2012 11:17:45 +0500 Subject: [GAP Forum] How to read loops from 1 file. Message-ID: Respected forum, I wanna ask how can we read loops in GAP from a single file which contains a number of loops in sequence. for example,we have file containing 1 0 1 3 2 5 4 7 6 9 8 11 10 13 12 0 1 2 3 4 5 6 7 8 9 10 11 12 13 1 0 3 2 5 4 8 9 6 7 12 13 10 11 2 3 1 0 6 10 11 5 9 13 7 4 8 12 3 2 0 1 11 7 4 10 12 8 5 6 13 9 4 5 6 11 1 0 12 3 13 10 2 8 9 7 5 4 10 7 0 1 2 13 11 12 9 3 6 8 6 8 11 4 12 2 13 0 10 1 3 9 7 5 7 9 5 10 3 13 0 12 1 11 8 2 4 6 8 6 9 12 13 11 10 1 3 0 4 7 5 2 9 7 13 8 10 12 1 11 0 2 6 5 3 4 10 12 7 5 2 9 3 8 4 6 13 0 11 1 11 13 4 6 8 3 9 2 7 5 0 12 1 10 12 10 8 13 9 6 7 4 5 3 11 1 2 0 13 11 12 9 7 8 5 6 2 4 1 10 0 3 2 0 1 3 2 5 4 7 6 9 8 11 10 13 12 0 1 2 3 4 5 6 7 8 9 10 11 12 13 1 0 3 2 5 4 8 9 6 7 12 13 10 11 2 3 1 0 6 10 7 5 11 13 9 4 8 12 3 2 0 1 11 7 4 6 12 10 5 8 13 9 4 5 6 11 1 0 12 3 13 8 2 10 9 7 5 4 10 7 0 1 2 13 9 12 11 3 6 8 6 8 7 4 12 2 3 0 10 1 13 9 11 5 7 9 5 6 3 13 0 2 1 11 8 12 4 10 8 6 11 12 13 9 10 1 4 0 3 7 5 2 9 7 13 10 8 12 1 11 0 5 6 2 3 4 10 12 9 5 2 11 13 8 3 6 4 0 7 1 11 13 4 8 10 3 9 12 7 2 0 5 1 6 12 10 8 13 9 6 11 4 5 3 7 1 2 0 13 11 12 9 7 8 5 10 2 4 1 6 0 3 3 0 1 3 2 5 4 7 6 9 8 11 10 13 12 0 1 2 3 4 5 6 7 8 9 10 11 12 13 1 0 3 2 5 4 8 9 6 7 12 13 10 11 2 3 1 0 6 10 7 5 9 13 11 4 8 12 3 2 0 1 11 7 4 6 12 8 5 10 13 9 4 5 6 11 1 0 12 3 13 10 2 8 9 7 5 4 10 7 0 1 2 13 11 12 9 3 6 8 6 8 7 4 12 2 3 0 10 1 13 9 11 5 7 9 5 6 3 13 0 2 1 11 8 12 4 10 8 6 9 12 13 11 10 1 3 0 4 7 5 2 9 7 13 8 10 12 1 11 0 2 6 5 3 4 10 12 11 5 2 9 13 8 4 6 3 0 7 1 11 13 4 10 8 3 9 12 7 5 0 2 1 6 12 10 8 13 9 6 11 4 5 3 7 1 2 0 13 11 12 9 7 8 5 10 2 4 1 6 0 3 4 0 1 3 2 5 4 7 6 9 8 11 10 13 12 0 1 2 3 4 5 6 7 8 9 10 11 12 13 1 0 3 2 5 4 8 9 6 7 12 13 10 11 2 3 1 0 6 10 12 5 11 13 9 4 8 7 3 2 0 1 11 7 4 13 12 10 5 8 6 9 4 5 6 11 1 0 13 3 10 12 2 9 7 8 5 4 10 7 0 1 2 12 13 11 8 3 9 6 6 8 12 4 13 2 10 0 9 1 11 7 5 3 7 9 5 13 3 12 0 11 1 8 6 10 2 4 8 6 11 12 10 13 9 1 7 0 3 5 4 2 9 7 13 10 12 11 1 8 0 6 4 2 3 5 10 12 9 5 2 8 11 6 3 4 7 0 13 1 11 13 4 8 9 3 7 10 5 2 0 6 1 12 12 10 8 6 7 9 5 2 4 3 13 1 11 0 13 11 7 9 8 6 3 4 2 5 1 12 0 10 5 0 1 3 2 5 4 7 6 9 8 11 10 13 12 0 1 2 3 4 5 6 7 8 9 10 11 12 13 1 0 3 2 5 4 8 9 6 7 12 13 10 11 2 3 1 0 6 10 11 5 9 13 7 4 8 12 3 2 0 1 11 7 4 10 12 8 5 6 13 9 4 5 6 11 1 0 13 3 10 12 2 9 7 8 5 4 10 7 0 1 2 12 13 11 8 3 9 6 6 8 11 4 13 2 9 0 7 1 3 12 5 10 7 9 5 10 3 12 0 8 1 6 13 2 11 4 8 6 9 12 10 13 7 1 3 0 11 5 4 2 9 7 13 8 12 11 1 6 0 2 4 10 3 5 10 12 7 5 2 8 3 13 11 4 9 0 6 1 11 13 4 6 9 3 12 2 5 10 0 8 1 7 12 10 8 13 7 9 5 11 4 3 6 1 2 0 13 11 12 9 8 6 10 4 2 5 1 7 0 3 6 0 1 3 2 5 4 7 6 9 8 11 10 13 12 0 1 2 3 4 5 6 7 8 9 10 11 12 13 1 0 3 2 5 4 8 9 6 7 12 13 10 11 2 3 1 0 6 10 7 5 9 13 11 4 8 12 3 2 0 1 11 7 4 6 12 8 5 10 13 9 4 5 6 11 1 0 13 3 10 12 2 9 7 8 5 4 10 7 0 1 2 12 13 11 8 3 9 6 6 8 7 4 13 2 3 0 11 1 9 12 5 10 7 9 5 6 3 12 0 2 1 10 13 8 11 4 8 6 9 12 10 13 11 1 3 0 7 5 4 2 9 7 13 8 12 11 1 10 0 2 4 6 3 5 10 12 11 5 2 8 9 13 7 4 3 0 6 1 11 13 4 10 9 3 12 8 5 6 0 2 1 7 12 10 8 13 7 9 5 11 4 3 6 1 2 0 13 11 12 9 8 6 10 4 2 5 1 7 0 3 7 0 1 3 2 5 4 7 6 9 8 11 10 13 12 0 1 2 3 4 5 6 7 8 9 10 11 12 13 1 0 3 2 5 4 8 9 6 7 12 13 10 11 2 3 1 0 6 10 7 5 11 13 9 4 8 12 3 2 0 1 11 7 4 6 12 10 5 8 13 9 4 5 6 11 1 0 13 3 10 12 2 9 7 8 5 4 10 7 0 1 2 12 13 11 8 3 9 6 6 8 7 4 13 2 3 0 9 1 11 12 5 10 7 9 5 6 3 12 0 2 1 8 13 10 11 4 8 6 11 12 10 13 9 1 7 0 3 5 4 2 9 7 13 10 12 11 1 8 0 6 4 2 3 5 10 12 9 5 2 8 11 13 3 4 7 0 6 1 11 13 4 8 9 3 12 10 5 2 0 6 1 7 12 10 8 13 7 9 5 11 4 3 6 1 2 0 13 11 12 9 8 6 10 4 2 5 1 7 0 3 8 0 1 3 2 5 4 7 6 9 8 11 10 13 12 0 1 2 3 4 5 6 7 8 9 10 11 12 13 1 0 3 2 5 4 8 9 6 7 12 13 10 11 2 3 1 0 6 10 7 5 12 13 11 4 9 8 3 2 0 1 11 7 4 6 13 12 5 10 8 9 4 5 6 11 1 0 12 3 9 10 2 8 13 7 5 4 10 7 0 1 2 13 11 8 9 3 6 12 6 8 7 4 12 2 3 0 10 1 13 9 11 5 7 9 5 6 3 13 0 2 1 11 8 12 4 10 8 6 13 12 9 11 10 1 5 0 4 7 2 3 9 7 12 13 10 8 1 11 0 4 6 5 3 2 10 12 11 5 2 9 13 8 4 6 3 0 7 1 11 13 4 10 8 3 9 12 7 5 0 2 1 6 12 10 8 9 13 6 11 4 3 2 7 1 5 0 13 11 9 8 7 12 5 10 2 3 1 6 0 4 9 0 1 3 2 5 4 7 6 9 8 11 10 13 12 0 1 2 3 4 5 6 7 8 9 10 11 12 13 1 0 3 2 5 4 8 9 6 7 12 13 10 11 2 3 1 0 6 10 11 5 12 13 7 4 9 8 3 2 0 1 11 7 4 10 13 12 5 6 8 9 4 5 6 11 1 0 12 3 9 10 2 8 13 7 5 4 10 7 0 1 2 13 11 8 9 3 6 12 6 8 11 4 12 2 13 0 10 1 3 9 7 5 7 9 5 10 3 13 0 12 1 11 8 2 4 6 8 6 13 12 9 11 10 1 5 0 4 7 2 3 9 7 12 13 10 8 1 11 0 4 6 5 3 2 10 12 7 5 2 9 3 8 4 6 13 0 11 1 11 13 4 6 8 3 9 2 7 5 0 12 1 10 12 10 8 9 13 6 7 4 3 2 11 1 5 0 13 11 9 8 7 12 5 6 2 3 1 10 0 4 10 0 1 3 2 5 4 7 6 9 8 11 10 13 12 0 1 2 3 4 5 6 7 8 9 10 11 12 13 1 0 3 2 5 4 8 9 6 7 12 13 10 11 2 3 1 0 6 10 11 5 12 13 7 4 9 8 3 2 0 1 11 7 4 10 13 12 5 6 8 9 4 5 6 11 1 0 13 3 9 10 2 8 7 12 5 4 10 7 0 1 2 12 11 8 9 3 13 6 6 8 11 4 13 2 9 0 7 1 3 12 5 10 7 9 5 10 3 12 0 8 1 6 13 2 11 4 8 6 13 12 9 11 7 1 5 0 4 10 2 3 9 7 12 13 10 8 1 6 0 4 11 5 3 2 10 12 7 5 2 9 3 13 4 11 8 0 6 1 11 13 4 6 8 3 12 2 10 5 0 9 1 7 12 10 8 9 7 13 5 11 3 2 6 1 4 0 13 11 9 8 12 6 10 4 2 3 1 7 0 5 How we'll read this in GAP. Thanks, Aasma Shaheen From ahulpke at gmail.com Wed Feb 8 16:25:50 2012 From: ahulpke at gmail.com (Alexander Hulpke) Date: Wed, 8 Feb 2012 09:25:50 -0700 Subject: [GAP Forum] How to read loops from 1 file. In-Reply-To: References: Message-ID: Dear Forum, > I wanna ask how can we read loops in GAP from a single file which > contains a number of loops in sequence. As this is a question that might be of general interest I appended is a short function `ReadIntegerListsFromFile' that takes as input a file name for a text file (e.g. .txt, not .doc) and reads rows of integers, putting each row in a list of entries (assuming that integers are separated by space or comma, and that there are no missing entries. I hope it also can serve as a template for other file reading tasks. For example for your file: > 1 > > 0 1 3 2 5 4 7 6 9 8 11 10 13 12 > > 0 1 2 3 4 5 6 7 8 9 10 11 12 13 > 1 0 3 2 5 4 8 9 6 7 12 13 10 11 [...] the function returns a list that starts: [ [ 1 ], [ ], [ 0, 1, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12 ], [ ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 ], From this it is not hard to write a GAP function which now parses the output in the desired form for the respective application, e.g. to interpret chunks of the list as multiplication tables of loops. Note that -- unless the file is in the current working directory for GAP -- you must give a full path. Typical full paths for files in the `Desktop' folder are: "/Users/xyrxmir/Documents/gapstuff/mydata.txt" (OSX) or "/cygdrive/c/Documents and Settings/Administrator/Desktop/mydata.txt" (Windows, English version). Best wishes, Alexander Hulpke ===== The function: ReadIntegerListsFromFile:=function(file) local l,f,i,a,r; f:=InputTextFile(file); a:=[]; while not IsEndOfStream(f) do l:=ReadLine(f); if l<>fail then l:=Chomp(l); # remove trailing CR/LF r:=[]; for i in SplitString(l," ,") do # separate by SPACE or , if Length(i)>0 then Add(r,Int(i)); fi; od; Add(a,r); fi; od; return a; end; ====== -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From ahulpke at gmail.com Wed Feb 8 20:17:11 2012 From: ahulpke at gmail.com (Alexander Hulpke) Date: Wed, 8 Feb 2012 13:17:11 -0700 Subject: [GAP Forum] Correction: How to read loops from 1 file. In-Reply-To: References: Message-ID: <13D4C7EB-FCCB-465E-8D7A-9FCE1CB9226C@gmail.com> Dear Forum, It was pointed out that I should close the stream at the end of the function to avoid error messages if running the function multiple times, so the correct version is: ReadIntegerListsFromFile:=function(file) local l,f,i,a,r; f:=InputTextFile(file); a:=[]; while not IsEndOfStream(f) do l:=ReadLine(f); if l<>fail then l:=Chomp(l); # remove trailing CR/LF r:=[]; for i in SplitString(l," ,") do # separate by SPACE or , if Length(i)>0 then Add(r,Int(i)); fi; od; Add(a,r); fi; od; CloseStream(f); # <== New line return a; end; Best, Alexander From lisette.brillemans at mensa.nl Wed Feb 8 20:48:52 2012 From: lisette.brillemans at mensa.nl (Lisette Brillemans) Date: Wed, 8 Feb 2012 21:48:52 +0100 Subject: [GAP Forum] Correction: How to read loops from 1 file. In-Reply-To: <13D4C7EB-FCCB-465E-8D7A-9FCE1CB9226C@gmail.com> References: <13D4C7EB-FCCB-465E-8D7A-9FCE1CB9226C@gmail.com> Message-ID: <1C91ED48551F44CEAF8873ADB6602F65@AgnieszkaKowalc> Gap is a very user friendly program. To read a file with integers, the only thing you need is: ReadIntegerListsFromFile:=function(file) local l,f,i,a,r; f:=InputTextFile(file); a:=[]; while not IsEndOfStream(f) do l:=ReadLine(f); if l<>fail then l:=Chomp(l); # remove trailing CR/LF r:=[]; for i in SplitString(l," ,") do # separate by SPACE or , if Length(i)>0 then Add(r,Int(i)); fi; od; Add(a,r); fi; od; CloseStream(f); # <== New line return a; end; So easy to remember.... Lisette From alexander.konovalov at gmail.com Thu Feb 9 21:09:46 2012 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Thu, 9 Feb 2012 21:09:46 +0000 Subject: [GAP Forum] Correction: How to read loops from 1 file. In-Reply-To: <1C91ED48551F44CEAF8873ADB6602F65@AgnieszkaKowalc> References: <13D4C7EB-FCCB-465E-8D7A-9FCE1CB9226C@gmail.com> <1C91ED48551F44CEAF8873ADB6602F65@AgnieszkaKowalc> Message-ID: <5AE5CCDA-7249-4EA9-84F2-C0A11761E78A@gmail.com> Dear Lisette, dear GAP Forum, the file with integers is not a precise description of a standard format (what is the role of empty lines? how to specify comments? what to do if there is a text there? How to convert strings to GAP objects? Are there line breaks? etc.) and it is not recognised a standard GAP input file. To the contrary, a proper GAP input file can be read just by a single command like, for example, Read("myfile.g"); It is often not difficult to convert a file into a GAP input file (by inserting a few brackets and commas). Also, in some cases it may be possible to slightly adapt the program which is used to produce the file in a way that it will generate GAP input. On the other hand, it may be not so hard to customise the code of a function like ReadIntegerListsFromFile below, or write another custom piece of code (e.g. to read only one word at a time) to read user's data files if they have some appropriate form. For not too large files, one may also use another function suggested to us by Stefan Kohl: it reads the whole file at once, breaks it into strings, and then breaks strings into further pieces: ReadIntegerListsFromFileShort := file -> List(SplitString(StringFile(file),"\n"), line->List(SplitString(line," ,"," \r\n"),Int)); For very large files, however, ReadIntegerListsFromFile will work better since it does not create a very long string in the middle of computation. Note that both approaches also allow to read CSV files (comma-separated values). However, different applications may want to represent CSV files in different forms. For example, another function to read CSV files will appear in the next release of GAP: it will represent the content of the CSV file as a list of records taking component names from the 1st line of the CSV file. Finally, you may place the code to create all functions that you need, load all necessary packages, etc. in the .gaprc file (see ?.gaprc) in your home directory. This file will be read during the startup of GAP automatically, so they will be available to you straight from the start. (note that in the next GAP release, '.gaprc' file will be superseded by '~/.gap/gap.ini' and 'gaprc' files, see the manual of GAP 4.5.2(beta) for details). Hope this may be useful, Alexander, on behalf of the GAP Support Group On 8 Feb 2012, at 20:48, Lisette Brillemans wrote: > Gap is a very user friendly program. To read a file with integers, the only thing you need is: > > > ReadIntegerListsFromFile:=function(file) > local l,f,i,a,r; > f:=InputTextFile(file); > a:=[]; > while not IsEndOfStream(f) do > l:=ReadLine(f); > if l<>fail then > l:=Chomp(l); # remove trailing CR/LF > r:=[]; > for i in SplitString(l," ,") do # separate by SPACE or , > if Length(i)>0 then > Add(r,Int(i)); > fi; > od; > Add(a,r); > fi; > od; > CloseStream(f); # <== New line > return a; > end; > > > So easy to remember.... > > Lisette > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From Bill.Allombert at math.u-bordeaux1.fr Fri Feb 10 18:53:45 2012 From: Bill.Allombert at math.u-bordeaux1.fr (Bill Allombert) Date: Fri, 10 Feb 2012 19:53:45 +0100 Subject: [GAP Forum] Correction: How to read loops from 1 file. In-Reply-To: <1C91ED48551F44CEAF8873ADB6602F65@AgnieszkaKowalc> References: <13D4C7EB-FCCB-465E-8D7A-9FCE1CB9226C@gmail.com> <1C91ED48551F44CEAF8873ADB6602F65@AgnieszkaKowalc> Message-ID: <20120210185345.GA29549@yellowpig> On Wed, Feb 08, 2012 at 09:48:52PM +0100, Lisette Brillemans wrote: > Gap is a very user friendly program. To read a file with integers, > the only thing you need is: If Alexander had simply written a function to read a file with integers, it would have been much less useful to Aasma. Instead the program returns a list of lists of integers, which is much more useful. > So easy to remember.... That what computer are for, are they not ? Cheers, Bill. From lisette.brillemans at mensa.nl Fri Feb 10 19:16:24 2012 From: lisette.brillemans at mensa.nl (Lisette Brillemans) Date: Fri, 10 Feb 2012 20:16:24 +0100 Subject: [GAP Forum] Correction: How to read loops from 1 file. In-Reply-To: <20120210185345.GA29549@yellowpig> References: <13D4C7EB-FCCB-465E-8D7A-9FCE1CB9226C@gmail.com><1C91ED48551F44CEAF8873ADB6602F65@AgnieszkaKowalc> <20120210185345.GA29549@yellowpig> Message-ID: Dear Bill, I hope you could see that my reply was ironical. It is funny to see how relatively simple tasks require complicated computer programs. I realised that this was not about just "any" file with integers while writing my post. Lisette -----Oorspronkelijk bericht----- From: Bill Allombert Sent: Friday, February 10, 2012 7:53 PM To: forum at gap-system.org Subject: Re: [GAP Forum] Correction: How to read loops from 1 file. On Wed, Feb 08, 2012 at 09:48:52PM +0100, Lisette Brillemans wrote: > Gap is a very user friendly program. To read a file with integers, > the only thing you need is: If Alexander had simply written a function to read a file with integers, it would have been much less useful to Aasma. Instead the program returns a list of lists of integers, which is much more useful. > So easy to remember.... That what computer are for, are they not ? Cheers, Bill. _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From saqaas12 at gmail.com Sun Feb 12 07:03:17 2012 From: saqaas12 at gmail.com (Aasma Shaheen) Date: Sun, 12 Feb 2012 12:03:17 +0500 Subject: [GAP Forum] Correction: How to read loops from 1 file. In-Reply-To: References: <13D4C7EB-FCCB-465E-8D7A-9FCE1CB9226C@gmail.com> <1C91ED48551F44CEAF8873ADB6602F65@AgnieszkaKowalc> <20120210185345.GA29549@yellowpig> Message-ID: Dear Bill and Lisette, > My problem is still there :). But i have calculated somehow by very very long method..but a computer programm should read it in minutes,but unfortunately GAP is not doing this. From Bill.Allombert at math.u-bordeaux1.fr Sun Feb 12 17:19:45 2012 From: Bill.Allombert at math.u-bordeaux1.fr (Bill Allombert) Date: Sun, 12 Feb 2012 18:19:45 +0100 Subject: [GAP Forum] Correction: How to read loops from 1 file. In-Reply-To: References: <13D4C7EB-FCCB-465E-8D7A-9FCE1CB9226C@gmail.com> <1C91ED48551F44CEAF8873ADB6602F65@AgnieszkaKowalc> <20120210185345.GA29549@yellowpig> Message-ID: <20120212171945.GB17259@yellowpig> On Sun, Feb 12, 2012 at 12:03:17PM +0500, Aasma Shaheen wrote: > Dear Bill and Lisette, > > > My problem is still there :). > But i have calculated somehow by very very long method..but a computer > programm should read it in minutes,but unfortunately GAP is not doing > this. Maybe you could elaborate what a loop is, how you want to represent it as a GAP object, and what you want to do with it. Cheers, Bill From graham.gerrard at gmail.com Sun Feb 12 18:59:17 2012 From: graham.gerrard at gmail.com (Graham Gerrard) Date: Sun, 12 Feb 2012 18:59:17 +0000 Subject: [GAP Forum] Correction: How to read loops from 1 file. In-Reply-To: <20120212171945.GB17259@yellowpig> References: <13D4C7EB-FCCB-465E-8D7A-9FCE1CB9226C@gmail.com> <1C91ED48551F44CEAF8873ADB6602F65@AgnieszkaKowalc> <20120210185345.GA29549@yellowpig> <20120212171945.GB17259@yellowpig> Message-ID: The "loops" package works well for me! It covers reading data and representation of loops. Graham On 12 February 2012 17:19, Bill Allombert < Bill.Allombert at math.u-bordeaux1.fr> wrote: > On Sun, Feb 12, 2012 at 12:03:17PM +0500, Aasma Shaheen wrote: > > Dear Bill and Lisette, > > > > > My problem is still there :). > > But i have calculated somehow by very very long method..but a computer > > programm should read it in minutes,but unfortunately GAP is not doing > > this. > > Maybe you could elaborate what a loop is, how you want to represent it as a > GAP object, and what you want to do with it. > > Cheers, > Bill > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From saqaas12 at gmail.com Mon Feb 13 05:21:37 2012 From: saqaas12 at gmail.com (Aasma Shaheen) Date: Mon, 13 Feb 2012 10:21:37 +0500 Subject: [GAP Forum] Correction: How to read loops from 1 file. In-Reply-To: References: <13D4C7EB-FCCB-465E-8D7A-9FCE1CB9226C@gmail.com> <1C91ED48551F44CEAF8873ADB6602F65@AgnieszkaKowalc> <20120210185345.GA29549@yellowpig> <20120212171945.GB17259@yellowpig> Message-ID: Loop is jst like group structure in which associativity does not hold.When i write a single loop let 0 1 2 3 4 5 6 7 8 9 10 11 12 13 1 0 3 2 5 4 8 9 6 7 12 13 10 11 2 3 1 0 6 10 11 5 12 13 7 4 9 8 3 2 0 1 11 7 4 10 13 12 5 6 8 9 4 5 6 11 1 0 12 3 9 10 2 8 13 7 5 4 10 7 0 1 2 13 11 8 9 3 6 12 6 8 11 4 12 2 13 0 10 1 3 9 7 5 7 9 5 10 3 13 0 12 1 11 8 2 4 6 8 6 13 12 9 11 10 1 5 0 4 7 2 3 9 7 12 13 10 8 1 11 0 4 6 5 3 2 10 12 7 5 2 9 3 8 4 6 13 0 11 1 11 13 4 6 8 3 9 2 7 5 0 12 1 10 12 10 8 9 13 6 7 4 3 2 11 1 5 0 13 11 9 8 7 12 5 6 2 3 1 10 0 4 in a file "a1" and Load the package "loops" and then call it as LoopFromFile("a1","Replace"); now hopefully you all will understand better. From paloff at ya.ru Mon Feb 13 05:39:36 2012 From: paloff at ya.ru (Igor Korepanov) Date: Mon, 13 Feb 2012 09:39:36 +0400 Subject: [GAP Forum] Correction: How to read loops from 1 file. In-Reply-To: References: <13D4C7EB-FCCB-465E-8D7A-9FCE1CB9226C@gmail.com> <1C91ED48551F44CEAF8873ADB6602F65@AgnieszkaKowalc> <20120210185345.GA29549@yellowpig> <20120212171945.GB17259@yellowpig> Message-ID: <12981329111576@web44.yandex.ru> 13.02.2012, 09:21, "Aasma Shaheen" : .......................................... > now hopefully you all will understand better. > It seems that, indeed, we now will (whatever our intelligence level could be)! That was a multiplication table, wasn't it? :D From alexk at mcs.st-andrews.ac.uk Mon Feb 13 08:25:37 2012 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Mon, 13 Feb 2012 08:25:37 +0000 Subject: [GAP Forum] Correction: How to read loops from 1 file. In-Reply-To: References: <13D4C7EB-FCCB-465E-8D7A-9FCE1CB9226C@gmail.com> <1C91ED48551F44CEAF8873ADB6602F65@AgnieszkaKowalc> <20120210185345.GA29549@yellowpig> <20120212171945.GB17259@yellowpig> Message-ID: On 13 Feb 2012, at 05:21, Aasma Shaheen wrote: > Loop is jst like group structure in which associativity does not hold.When > i write a single loop let > 0 1 2 3 4 5 6 7 8 9 10 11 12 13 > 1 0 3 2 5 4 8 9 6 7 12 13 10 11 > 2 3 1 0 6 10 11 5 12 13 7 4 9 8 > 3 2 0 1 11 7 4 10 13 12 5 6 8 9 > 4 5 6 11 1 0 12 3 9 10 2 8 13 7 > 5 4 10 7 0 1 2 13 11 8 9 3 6 12 > 6 8 11 4 12 2 13 0 10 1 3 9 7 5 > 7 9 5 10 3 13 0 12 1 11 8 2 4 6 > 8 6 13 12 9 11 10 1 5 0 4 7 2 3 > 9 7 12 13 10 8 1 11 0 4 6 5 3 2 > 10 12 7 5 2 9 3 8 4 6 13 0 11 1 > 11 13 4 6 8 3 9 2 7 5 0 12 1 10 > 12 10 8 9 13 6 7 4 3 2 11 1 5 0 > 13 11 9 8 7 12 5 6 2 3 1 10 0 4 > in a file "a1" and Load the package "loops" and then call it as > > LoopFromFile("a1","Replace"); > > now hopefully you all will understand better. This works well for me: gap> LoadPackage("loops"); This version of LOOPS is ready for GAP 4.4. ====================================================== LOOPS: Computing with quasigroups and loops in GAP version 2.0.0 Gabor P. Nagy and Petr Vojtechovsky ------------------------------------------------------ contact: nagyg at math.u-szeged.hu or petr at math.du.edu ====================================================== true gap> LoopFromFile("~/Desktop/a1.txt","Replace"); So I do not understand which problem do you mean below. If it's already not there, it's fine. If it's still there, please describe it more precisely, otherwise it is difficult to help. By any chance, are you trying to read a different file with a very large loop beyond the loops package capacity? What precisely runs for a very long time? Alexander > My problem is still there :). > But i have calculated somehow by very very long method..but a computer > programm should read it in minutes,but unfortunately GAP is not doing > this. From alexander.konovalov at gmail.com Tue Feb 14 10:08:24 2012 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Tue, 14 Feb 2012 10:08:24 +0000 Subject: [GAP Forum] Correction: How to read loops from 1 file. In-Reply-To: References: <13D4C7EB-FCCB-465E-8D7A-9FCE1CB9226C@gmail.com> <1C91ED48551F44CEAF8873ADB6602F65@AgnieszkaKowalc> <20120210185345.GA29549@yellowpig> <20120212171945.GB17259@yellowpig> Message-ID: <838052FB-32F3-4968-8DDC-8806F2A7CC13@gmail.com> Dear Aasma Shaheen, On 13 Feb 2012, at 10:31, Aasma Shaheen wrote: > > Sir problem is that when i want to call several loops from a single file containg alot of loops ( i have attached one as example) then it dosent help.The way i have talked reads only if file contains 1 and only 1 loop.but it takes alot of time to copy them in different files (i-e make 2764 files),and then call them in GAP.Isn't there anty shortcut way to call them from a single file containing them. Thank you for another example. It nicely illustrates that there is no a notion of a standard text file with space separated integers that GAP should somehow read in an efficient manner. In your first post in the forum your example looked like ======= 1 0 1 3 2 5 4 7 6 9 8 11 10 13 12 0 1 2 3 4 5 6 7 8 9 10 11 12 13 1 0 3 2 5 4 8 9 6 7 12 13 10 11 2 3 1 0 6 10 11 5 9 13 7 4 8 12 3 2 0 1 11 7 4 10 12 8 5 6 13 9 4 5 6 11 1 0 12 3 13 10 2 8 9 7 5 4 10 7 0 1 2 13 11 12 9 3 6 8 6 8 11 4 12 2 13 0 10 1 3 9 7 5 7 9 5 10 3 13 0 12 1 11 8 2 4 6 8 6 9 12 13 11 10 1 3 0 4 7 5 2 9 7 13 8 10 12 1 11 0 2 6 5 3 4 10 12 7 5 2 9 3 8 4 6 13 0 11 1 11 13 4 6 8 3 9 2 7 5 0 12 1 10 12 10 8 13 9 6 7 4 5 3 11 1 2 0 13 11 12 9 7 8 5 6 2 4 1 10 0 3 2 0 1 3 2 5 4 7 6 9 8 11 10 13 12 0 1 2 3 4 5 6 7 8 9 10 11 12 13 1 0 3 2 5 4 8 9 6 7 12 13 10 11 2 3 1 0 6 10 7 5 11 13 9 4 8 12 3 2 0 1 11 7 4 6 12 10 5 8 13 9 4 5 6 11 1 0 12 3 13 8 2 10 9 7 5 4 10 7 0 1 2 13 9 12 11 3 6 8 6 8 7 4 12 2 3 0 10 1 13 9 11 5 7 9 5 6 3 13 0 2 1 11 8 12 4 10 8 6 11 12 13 9 10 1 4 0 3 7 5 2 9 7 13 10 8 12 1 11 0 5 6 2 3 4 10 12 9 5 2 11 13 8 3 6 4 0 7 1 11 13 4 8 10 3 9 12 7 2 0 5 1 6 12 10 8 13 9 6 11 4 5 3 7 1 2 0 13 11 12 9 7 8 5 10 2 4 1 6 0 3 ... ======= and the attached file order12.txt has slightly different format - only 12x12 blocks, separated by empty lines. ======= 0 1 2 3 4 5 6 7 8 9 10 11 1 0 3 2 5 4 7 6 10 11 8 9 2 3 0 1 6 8 4 11 5 10 9 7 3 2 1 0 10 11 8 9 6 7 4 5 4 5 9 10 1 0 11 2 7 8 6 3 5 4 7 11 0 1 10 8 9 2 3 6 6 7 10 8 9 2 1 0 11 3 5 4 7 6 5 9 11 10 0 1 3 4 2 8 8 10 11 6 2 9 5 3 4 0 7 1 9 11 4 7 8 6 3 10 0 5 1 2 10 8 6 4 7 3 9 5 2 1 11 0 11 9 8 5 3 7 2 4 1 6 0 10 0 1 2 3 4 5 6 7 8 9 10 11 1 0 3 2 5 4 7 6 10 11 8 9 2 3 0 1 6 8 4 11 5 10 9 7 3 2 1 0 10 11 9 8 7 6 4 5 4 5 6 11 0 1 2 10 9 8 7 3 5 4 8 10 1 0 11 9 2 7 3 6 6 7 4 9 2 10 0 1 11 3 5 8 7 6 10 8 11 9 1 0 3 5 2 4 8 11 5 7 9 2 10 3 0 4 6 1 9 10 11 6 8 7 3 5 4 0 1 2 10 9 7 5 3 6 8 4 1 2 11 0 11 8 9 4 7 3 5 2 6 1 0 10 ... ======= However, the solution is quite straightforward: take the function suggested earlier in this thread by Alexander Hulpke and adjust it to your needs: ReadIntegerListsFromFile:=function(file) local l,f,i,a,r; f:=InputTextFile(file); a:=[]; while not IsEndOfStream(f) do l:=ReadLine(f); if l<>fail then l:=Chomp(l); # remove trailing CR/LF r:=[]; for i in SplitString(l," ,") do # separate by SPACE or , if Length(i)>0 then Add(r,Int(i)); fi; od; Add(a,r); fi; od; CloseStream(f); # <== New line return a; end; What you need to do is to catch the case if the line is empty, whenever it's just a new line or it has some spaces before CR/LF. For this, analyse what SplitString returns before starting a loop over its output. The two cases below show what will happen if the line is empty: gap> l:="\n"; "\n" gap> l:=Chomp(l); "" gap> SplitString(l," ,"); [ ] gap> l:=" \n"; " \n" gap> l:=Chomp(l); " " gap> SplitString(l," ,"); [ "", "", "", "", "" ] Then, instead of accumulating all lines in the resulting list a, you need to gather lines/integers from one block (table) together. I do not know if you want to return a list of 2764 loops, or you want to read them one by one and do something for each single loop in a loop, so I will leave the final implementation to you. If you will have further questions, please don't hesitate to ask. hope this helps, Alexander From neunhoef at mcs.st-and.ac.uk Thu Feb 16 14:14:24 2012 From: neunhoef at mcs.st-and.ac.uk (Max Neunhoeffer) Date: Thu, 16 Feb 2012 14:14:24 +0000 Subject: [GAP Forum] GAP in teaching In-Reply-To: <20120207121825.GA19774@mcs.st-and.ac.uk> References: <20120207121825.GA19774@mcs.st-and.ac.uk> Message-ID: <20120216141424.GA8034@mcs.st-and.ac.uk> Dear Forum, thank you very much for all your feedback about "GAP in teaching". I have now prepared a little overview over the results. If you are interested in more details or want me to establish contact to somebody in the mentioned institutions, just send me an email. Best wishes, Max. ========= SUMMARY ========= I got feedback from about 25 individuals. GAP is used for teaching in at least the following institutions (in no particular order): University of Porto, Portugal Universidade Aberta, Portugal RWTH Aachen, Germany ZetaTrek expedition University of Braunschweig, Germany Colorado State University Ghent University, Department of Mathematics, Belgium United States Naval Academy at Annapolis, USA Auburn University Montgomery, USA University of Trento, Trento, Italy Nanyang Technological University, Singapore (www.ntu.edu.sg) Universidade de Brasilia, Brasil Rose-Hulman Institute of Technology, Terre Haute, USA Benedictine University, Lisle, USA University of Vlora, Albania University of Technology and Economics, Budapest, Hungary University of Western Australia, Perth, Australia University of Western Sydney, Australia Universitat Politecnica de Valencia, Spain University of St Andrews, Scotland, UK The topics of the courses/teaching that were mentioned (many repeatedly) were: Algebra Group Theory Representation Theory Number Theory Cryptography Computer Algebra RSA cryptosystem Semigroup Theory Coding Theory Information Security Computational Group Theory Computational Representation Theory Experimental Mathematics Groups and Symmetry The levels of courses/teaching that were mentioned were: 2nd-3rd year Master Bachelor Graduate Education Majors Maths Majors Honours students PhD students The following specific GAP packages have been mentioned in the feedback: factint automata data collections It was pointed out that GAP was used in various workshops happening all over the world. The following publicly available resources with respect to teaching material were mentioned: * http://www.gap-system.org/Doc/Teaching/teaching.html * http://www.math.colostate.edu/~hulpke/CGT/education.html * http://cage.ugent.be/~jdebeule/teaching.html * "Contemporary Abstract Algebra" by Joseph A. Gallian has GAP exercises * "Sage for Abstract Algebra", A Supplement to Abstract Algebra, Theory and Applications by Robert A. Beezer Department of Mathematics and Computer Science University of Puget Sound http://abstract.ups.edu/sage-aata.html * Applied Abstract Algebra, by David Joyner, Richard Kreminski, Joann Turisco GAP is of course used in Sage, so the following collection of uses of Sage in teaching is relevant as well: http://wiki.sagemath.org/Teaching_with_SAGE The following translations of tutorials or material to other languages were mentioned: * GAP tutorial in Spanish, by Ramon Esteban Romero * "Algebra and number theory with GAP" in Russian by Alexander Konovalov -- Max Neunhoeffer http://www-groups.mcs.st-and.ac.uk/~neunhoef/ > > > > > > > > > > > May the Source be with you! < < < < < < < < < < < < The University of St Andrews is a registered Scottish charity: No SC013532 From fadebox at gmail.com Fri Feb 17 04:18:01 2012 From: fadebox at gmail.com (((1/f))) Date: Fri, 17 Feb 2012 09:48:01 +0530 Subject: [GAP Forum] Saving graphics Message-ID: Dear Forum, One of the exercises ( um, by Stephen Kohl I think ) gives the following solution for drawing an Ulam spiral of primes. I am not sure whether the "SaveAsBitmapPicture" function requires a special package. Does it? In either case, is there a document covering all the "export as graphic" tools in GAP? - Rohit Gupta ------------------------------------------------------------- UlamSpiral := function ( size, filename ) local spiral, smallprimes, n, p, r, middle, edgelength, edgepos, direction, i, j, zero, one; smallprimes := Filtered([2..size],IsPrimeInt); spiral := NullMat(size,size,GF(2)); if size mod 2 = 0 then middle := [size/2,size/2]; else middle := [(size + 1)/2,(size + 1)/2]; fi; zero := Zero(GF(2)); one := One(GF(2)); spiral[middle[1]][middle[2]] := one; for p in smallprimes do i := middle[1]; j := middle[2]; edgelength := 2; edgepos := 1; direction := 0; r := 1; for n in [2..size^2] do if direction = 0 then j := j + 1; elif direction = 1 then i := i + 1; elif direction = 2 then j := j - 1; elif direction = 3 then i := i - 1; fi; r := r + 1; edgepos := edgepos + 1; if r = p then if n > p then spiral[i][j] := one; fi; r := 0; fi; if edgepos = edgelength then direction := (direction + 1) mod 4; if direction in [0,2] then edgelength := edgelength + 1; fi; edgepos := 1; fi; od; od; SaveAsBitmapPicture(spiral,filename); end; From dima at ntu.edu.sg Fri Feb 17 04:48:01 2012 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Fri, 17 Feb 2012 12:48:01 +0800 Subject: [GAP Forum] Saving graphics In-Reply-To: References: Message-ID: On 17 February 2012 12:18, (((1/f))) wrote: > Dear Forum, > > One of the exercises ( um, by Stephen Kohl I think ) gives the following > solution for drawing an Ulam spiral of primes. I am not sure whether the > > "SaveAsBitmapPicture" this needs RCWA package installed and loaded. And it in turn needs a slew of other packages, such as anluth, which in turn needs Kant, and the latter is not even possible to install on some systems... (fortunately the latter dependence is going away in the new forthcoming release of GAP) HTH, Dmitrii > > function requires a special package. Does it? In either case, > is there a document covering all the "export as graphic" tools > in GAP? > > - Rohit Gupta > ------------------------------------------------------------- > > UlamSpiral := function ( size, filename ) > > local spiral, smallprimes, n, p, r, > middle, edgelength, edgepos, direction, i, j, zero, one; > > smallprimes := Filtered([2..size],IsPrimeInt); > spiral := NullMat(size,size,GF(2)); > > if size mod 2 = 0 then middle := [size/2,size/2]; > else middle := [(size + 1)/2,(size + 1)/2]; fi; > > zero := Zero(GF(2)); one := One(GF(2)); > > spiral[middle[1]][middle[2]] := one; > > for p in smallprimes do > i := middle[1]; j := middle[2]; > edgelength := 2; edgepos := 1; direction := 0; r := 1; > for n in [2..size^2] do > if direction = 0 then j := j + 1; > elif direction = 1 then i := i + 1; > elif direction = 2 then j := j - 1; > elif direction = 3 then i := i - 1; fi; > r := r + 1; > edgepos := edgepos + 1; > if r = p then > if n > p then spiral[i][j] := one; fi; > r := 0; > fi; > if edgepos = edgelength then > direction := (direction + 1) mod 4; > if direction in [0,2] then edgelength := edgelength + 1; fi; > edgepos := 1; > fi; > od; > od; > > SaveAsBitmapPicture(spiral,filename); > end; > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum CONFIDENTIALITY: This email is intended solely for the person(s) named and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Towards A Sustainable Earth: Print Only When Necessary. Thank you. From fadebox at gmail.com Fri Feb 17 06:20:33 2012 From: fadebox at gmail.com (((1/f))) Date: Fri, 17 Feb 2012 11:50:33 +0530 Subject: [GAP Forum] Saving graphics In-Reply-To: References: Message-ID: Thanks a lot, Dmitrii. I can go without using those packages. Sounds too time-consuming for what I had in mind. Cheers! From gabriel.bartolini at liu.se Fri Feb 10 17:18:59 2012 From: gabriel.bartolini at liu.se (Gabriel Bartolini) Date: Fri, 10 Feb 2012 18:18:59 +0100 Subject: [GAP Forum] modules from homomorphism Message-ID: <4F355183.2010500@liu.se> Dear GAP forum, Assume A is an abelian group and we have an (non-trivial) homomorphism, Q->Aut(A), for some finite group Q. Is there some way to represent the induced module i GAP? /Gabriel From stefan at mcs.st-and.ac.uk Fri Feb 17 22:43:33 2012 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Fri, 17 Feb 2012 22:43:33 -0000 (UTC) Subject: [GAP Forum] Saving graphics In-Reply-To: References: Message-ID: Dear Forum, Rohit Gupta asked: > One of the exercises ( um, by Stephen Kohl I think ) gives the following > solution for drawing an Ulam spiral of primes. I am not sure whether the > > "SaveAsBitmapPicture" > function requires a special package. Does it? And Dmitrii Pasechnik answered: > this needs RCWA package installed and loaded. Only this is true. > And it in turn needs a slew of other packages, such as anluth, which > in turn needs Kant, and the latter is not even possible to install on some systems... However this statement is plainly wrong -- the RCWA package is part of the standard GAP distribution (thus if you have GAP you also have RCWA), and it can be loaded and used without any problems, under any operating system for which GAP is available. -- Just enter "LoadPackage("rcwa");". Possible warnings from other packages (non-compiled binaries etc.) can savely be ignored, as they have no influence on the functionality of RCWA. If you experience something else, then please let me know! Best wishes, Stefan Kohl From dima at ntu.edu.sg Sat Feb 18 02:43:40 2012 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Sat, 18 Feb 2012 10:43:40 +0800 Subject: [GAP Forum] Saving graphics In-Reply-To: References: Message-ID: Hi Stephan, On 18 February 2012 06:43, Stefan Kohl wrote: > Dear Forum, > > Rohit Gupta asked: > >> One of the exercises ( um, by Stephen Kohl I think ) gives the following >> solution for drawing an Ulam spiral of primes. I am not sure whether the >> >> "SaveAsBitmapPicture" >> function requires a special package. Does it? > > And Dmitrii Pasechnik answered: > >> this needs RCWA package installed and loaded. > > Only this is true. > >> And it in turn needs a slew of other packages, such as anluth, which >> in turn needs Kant, and the latter is not even possible to install on some systems... > > However this statement is plainly wrong -- the RCWA package is part of > the standard GAP distribution (thus if you have GAP you also have RCWA), > and it can be loaded and used without any problems, under any operating > system for which GAP is available. -- Just enter "LoadPackage("rcwa");". > Possible warnings from other packages (non-compiled binaries etc.) can > savely be ignored, as they have no influence on the functionality of RCWA. RCWA requires Polycyclic, according to its readme. README of Polycyclic says: To have the full functionality of the package available you need the GAP 4 package Alnuth and the Computer Algebra System Kant installed. Its init.g has the line RequirePackage("alnuth"); In turn, Alnuth 2.3.1 *appears* to require KASH. KASH is not available on MacOSX 10.6. This was my line of thought when I tried to see why it doesn't work on my laptop. However, it turned out that the installation of Alnuth was broken (I tried using Alnuth 3 :)) After getting the good old Alnuth 2.3.1, it worked. Sorry for noise, Dima > > If you experience something else, then please let me know! > > Best wishes, > > Stefan Kohl > > > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum CONFIDENTIALITY: This email is intended solely for the person(s) named and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Towards A Sustainable Earth: Print Only When Necessary. Thank you. From fadebox at gmail.com Sat Feb 18 03:17:49 2012 From: fadebox at gmail.com (((1/f))) Date: Fri, 17 Feb 2012 19:17:49 -0800 Subject: [GAP Forum] (((1/f))) wants to chat Message-ID: ----------------------------------------------------------------------- (((1/f))) wants to stay in better touch using some of Google's coolest new products. If you already have Gmail or Google Talk, visit: http://mail.google.com/mail/b-75fe27934a-40b385ae23-QRtV-gPLgda6j0hCwiM-AS-tGPc You'll need to click this link to be able to chat with (((1/f))). To get Gmail - a free email account from Google with over 2,800 megabytes of storage - and chat with (((1/f))), visit: http://mail.google.com/mail/a-75fe27934a-40b385ae23-QRtV-gPLgda6j0hCwiM-AS-tGPc Gmail offers: - Instant messaging right inside Gmail - Powerful spam protection - Built-in search for finding your messages and a helpful way of organizing emails into "conversations" - No pop-up ads or untargeted banners - just text ads and related information that are relevant to the content of your messages All this, and its yours for free. But wait, there's more! By opening a Gmail account, you also get access to Google Talk, Google's instant messaging service: http://www.google.com/talk/ Google Talk offers: - Web-based chat that you can use anywhere, without a download - A contact list that's synchronized with your Gmail account - Free, high quality PC-to-PC voice calls when you download the Google Talk client We're working hard to add new features and make improvements, so we might also ask for your comments and suggestions periodically. We appreciate your help in making our products even better! Thanks, The Google Team To learn more about Gmail and Google Talk, visit: http://mail.google.com/mail/help/about.html http://www.google.com/talk/about.html (If clicking the URLs in this message does not work, copy and paste them into the address bar of your browser). From justin at mac.com Sat Feb 18 03:24:01 2012 From: justin at mac.com (Justin C. Walker) Date: Fri, 17 Feb 2012 19:24:01 -0800 Subject: [GAP Forum] Saving graphics In-Reply-To: References: Message-ID: On Feb 17, 2012, at 18:43 , Asst. Prof. Dmitrii (Dima) Pasechnik wrote: > Hi Stephan, > > On 18 February 2012 06:43, Stefan Kohl wrote: >> Dear Forum, >> >> Rohit Gupta asked: >> >>> One of the exercises ( um, by Stephen Kohl I think ) gives the following >>> solution for drawing an Ulam spiral of primes. I am not sure whether the >>> >>> "SaveAsBitmapPicture" >>> function requires a special package. Does it? >> >> And Dmitrii Pasechnik answered: >> >>> this needs RCWA package installed and loaded. >> >> Only this is true. >> >>> And it in turn needs a slew of other packages, such as anluth, which >>> in turn needs Kant, and the latter is not even possible to install on some systems... >> >> However this statement is plainly wrong -- the RCWA package is part of >> the standard GAP distribution (thus if you have GAP you also have RCWA), >> and it can be loaded and used without any problems, under any operating >> system for which GAP is available. -- Just enter "LoadPackage("rcwa");". >> Possible warnings from other packages (non-compiled binaries etc.) can >> savely be ignored, as they have no influence on the functionality of RCWA. > > RCWA requires Polycyclic, according to its readme. > > README of Polycyclic says: > To have the full functionality of the package available you need the > GAP 4 package Alnuth and the Computer Algebra System Kant installed. > Its init.g has the line > RequirePackage("alnuth"); > > In turn, Alnuth 2.3.1 *appears* to require KASH. > KASH is not available on MacOSX 10.6. Not strictly true: 23095 kash justin 0.0 2 11.3 MB 240 KB 224.3 MB PowerPC 428 iTunes Helper justin 0.0 4 9.0 MB 6.2 MB 126.3 MB Intel (64 bit) (Mac Pro, Dual 6-core Xeon, Mac OS X, 10.6.8). I must have found Rosetta somewhere :-} Justin -- Justin C. Walker Director Institute for the Enhancement of the Director's Income -- Fame is fleeting, but obscurity just drags on and on. F&E From dima at ntu.edu.sg Sat Feb 18 04:09:00 2012 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Sat, 18 Feb 2012 12:09:00 +0800 Subject: [GAP Forum] Saving graphics In-Reply-To: References: Message-ID: On 18 February 2012 11:24, Justin C. Walker wrote: > > On Feb 17, 2012, at 18:43 , Asst. Prof. Dmitrii (Dima) Pasechnik wrote: > >> Hi Stephan, >> >> On 18 February 2012 06:43, Stefan Kohl wrote: >>> Dear Forum, >>> >>> Rohit Gupta asked: >>> >>>> One of the exercises ( um, by Stephen Kohl I think ) gives the following >>>> solution for drawing an Ulam spiral of primes. I am not sure whether the >>>> >>>> "SaveAsBitmapPicture" >>>> function requires a special package. Does it? >>> >>> And Dmitrii Pasechnik answered: >>> >>>> this needs RCWA package installed and loaded. >>> >>> Only this is true. >>> >>>> And it in turn needs a slew of other packages, such as anluth, which >>>> in turn needs Kant, and the latter is not even possible to install on some systems... >>> >>> However this statement is plainly wrong -- the RCWA package is part of >>> the standard GAP distribution (thus if you have GAP you also have RCWA), >>> and it can be loaded and used without any problems, under any operating >>> system for which GAP is available. -- Just enter "LoadPackage("rcwa");". >>> Possible warnings from other packages (non-compiled binaries etc.) can >>> savely be ignored, as they have no influence on the functionality of RCWA. >> >> RCWA requires Polycyclic, according to its readme. >> >> README of Polycyclic says: >> To have the full functionality of the package available you need the >> GAP 4 package Alnuth and the Computer Algebra System Kant installed. >> Its init.g has the line >> RequirePackage("alnuth"); >> >> In turn, Alnuth 2.3.1 *appears* to require KASH. >> KASH is not available on MacOSX 10.6. > > Not strictly true: > 23095 kash justin 0.0 2 11.3 MB 240 KB 224.3 MB PowerPC > 428 iTunes Helper justin 0.0 4 9.0 MB 6.2 MB 126.3 MB Intel (64 bit) > > (Mac Pro, Dual 6-core Xeon, Mac OS X, 10.6.8). I must have found Rosetta somewhere :-} I didn't even know such thing exists: http://en.wikipedia.org/wiki/Rosetta_(software) However, with new MacOSX (7) it's gone, so it's really time to move on... Best, Dima > > Justin > CONFIDENTIALITY: This email is intended solely for the person(s) named and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Towards A Sustainable Earth: Print Only When Necessary. Thank you. From justin at mac.com Sat Feb 18 08:31:50 2012 From: justin at mac.com (Justin C. Walker) Date: Sat, 18 Feb 2012 00:31:50 -0800 Subject: [GAP Forum] Saving graphics In-Reply-To: References: Message-ID: <2C1A62D9-BF86-4625-985C-A0B57AAA9B46@mac.com> On Feb 17, 2012, at 20:09 , Asst. Prof. Dmitrii (Dima) Pasechnik wrote: > On 18 February 2012 11:24, Justin C. Walker wrote: >> >> On Feb 17, 2012, at 18:43 , Asst. Prof. Dmitrii (Dima) Pasechnik wrote: [snip] >>> In turn, Alnuth 2.3.1 *appears* to require KASH. >>> KASH is not available on MacOSX 10.6. >> >> Not strictly true: >> 23095 kash justin 0.0 2 11.3 MB 240 KB 224.3 MB PowerPC >> 428 iTunes Helper justin 0.0 4 9.0 MB 6.2 MB 126.3 MB Intel (64 bit) >> >> (Mac Pro, Dual 6-core Xeon, Mac OS X, 10.6.8). I must have found Rosetta somewhere :-} > > I didn't even know such thing exists: > http://en.wikipedia.org/wiki/Rosetta_(software) > > However, with new MacOSX (7) it's gone, so it's really time to move on... Yup; no rosetta there. Nothing like reality to wake you up. Justin -- Justin C. Walker, Curmudgeon-At-Large, Director Institute for the Enhancement of the Director's Income -------- The path of least resistance: it's not just for electricity any more. -------- From Bill.Allombert at math.u-bordeaux1.fr Sat Feb 18 14:34:12 2012 From: Bill.Allombert at math.u-bordeaux1.fr (Bill Allombert) Date: Sat, 18 Feb 2012 15:34:12 +0100 Subject: [GAP Forum] Saving graphics In-Reply-To: References: Message-ID: <20120218143412.GA24498@yellowpig> On Sat, Feb 18, 2012 at 10:43:40AM +0800, Asst. Prof. Dmitrii (Dima) Pasechnik wrote: > Hi Stephan, > > README of Polycyclic says: > To have the full functionality of the package available you need the > GAP 4 package Alnuth and the Computer Algebra System Kant installed. > Its init.g has the line > RequirePackage("alnuth"); > > In turn, Alnuth 2.3.1 *appears* to require KASH. > KASH is not available on MacOSX 10.6. > > This was my line of thought when I tried to see why it doesn't work on > my laptop. > However, it turned out that the installation of Alnuth was broken (I > tried using Alnuth 3 :)) For the record, Alnuth 3 uses PARI/GP instead of KASH. Cheers, Bill. From kroeker at uni-math.gwdg.de Tue Feb 21 19:04:19 2012 From: kroeker at uni-math.gwdg.de (kroeker) Date: Tue, 21 Feb 2012 20:04:19 +0100 Subject: [GAP Forum] "IsRationalNumber" as synonym for "IsRat" In-Reply-To: <20120218143412.GA24498@yellowpig> References: <20120218143412.GA24498@yellowpig> Message-ID: <4F43EAB3.2040101@uni-math.gwdg.de> Dear GAP-developers, I do not really like the function name "IsRat" for the check if an object is a rational number and suggest to introduce the synonym "IsRationalNumber" : DeclareSynonym("IsRationalNumber",IsRat); What is your opinion? Jakob From anthony.bak at gmail.com Tue Feb 21 23:48:10 2012 From: anthony.bak at gmail.com (Anthony Bak) Date: Tue, 21 Feb 2012 15:48:10 -0800 Subject: [GAP Forum] Getting a presentation of a p-lower central series quotient Message-ID: I have a finitely presented group and I use the ANUPQ package to calculate the quotient groups of the p-lower central series. I'd like to get the quotient group in terms of the free group I started with. For instance, just taking the case of the free group: LoadPackage("anupq"); F := FreeGroup("a","b","c","d"); a := F.1;; b := F.2;; c := F.3; d := F.4;; QF2 := Pq(F : Prime := 2, ClassBound := 2); # Some Code here to describe the generators of QF2 as words in a,b,c,d The same thing for a group G defined by G := F/R, QG2:=Pq(G : Prime := 2, ClassBound := 2); (Apologies if I'm missing some basic GAP concepts - this is the first calculation I"ve tried to do). From hulpke at math.colostate.edu Wed Feb 22 00:13:30 2012 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Tue, 21 Feb 2012 17:13:30 -0700 Subject: [GAP Forum] Getting a presentation of a p-lower central series quotient In-Reply-To: References: Message-ID: <91314F49-19F0-4A51-AF2D-EC2A24E0C732@math.colostate.edu> Dear Forum, Dear Anthony Bak, > I have a finitely presented group and I use the ANUPQ package to > calculate the quotient groups of the p-lower central series. I'd like > to get the quotient group in terms of the free group I started with. I believe you just want to use PqEpimorphism instead of Pq -- this will return the corresponding homomorphism connecting to the source group. [There also is the library function `EpimorphismPGroup' but it is less powerful than the external ANUPQ.] Best, Alexander Hulpke > For instance, just taking the case of the free group: > > LoadPackage("anupq"); > F := FreeGroup("a","b","c","d"); > a := F.1;; b := F.2;; c := F.3; d := F.4;; > QF2 := Pq(F : Prime := 2, ClassBound := 2); > > > # Some Code here to describe the generators of QF2 as words in a,b,c,d > > The same thing for a group G defined by G := F/R, QG2:=Pq(G : Prime := > 2, ClassBound := 2); > > (Apologies if I'm missing some basic GAP concepts - this is the first > calculation I"ve tried to do). > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From jg1356 at txstate.edu Wed Feb 22 01:30:43 2012 From: jg1356 at txstate.edu (Goodson, Joshua E) Date: Tue, 21 Feb 2012 19:30:43 -0600 Subject: [GAP Forum] Extra-special group acting on an elementary abelian group Message-ID: Hello, I am trying to count the orbits of an extra-special group of order 3^5 acting on an elementary abelian group of order 7^9. I start with the automorphism group of the elementary abelian group and then try to find the isomorphic image of the extra-special group, but because of the size of the automorphism group the computer cannot finish. I also try to find the group myself by first finding the Sylow subgroup of the automorphism group, but again the computer has a problem finishing. I believe in each case it mentions running out of memory. So I was wondering if there is another way I can perform the desired action GAP or would a better computer be able to find the subgroup of the automorphism group that I want? Thank you From burkhard at hoefling.name Wed Feb 22 07:52:33 2012 From: burkhard at hoefling.name (=?iso-8859-1?Q?Burkhard_H=F6fling?=) Date: Wed, 22 Feb 2012 08:52:33 +0100 Subject: [GAP Forum] Extra-special group acting on an elementary abelian group In-Reply-To: References: Message-ID: <57D599D8-ED2E-4535-A37B-665456A47F6F@hoefling.name> On 2012-02-22, at 02:30 , Goodson, Joshua E wrote: > Hello, > > I am trying to count the orbits of an extra-special group of order 3^5 acting on an elementary abelian group of order 7^9. I start with the automorphism group of the elementary abelian group and then try to find the isomorphic image of the extra-special group, but because of the size of the automorphism group the computer cannot finish. I also try to find the group myself by first finding the Sylow subgroup of the automorphism group, but again the computer has a problem finishing. I believe in each case it mentions running out of memory. So I was wondering if there is another way I can perform the desired action GAP or would a better computer be able to find the subgroup of the automorphism group that I want? It's quite straightforward to construct these groups as subgroups of GL(9, 7). Please find below some private code of mine which carries out this construction. The construction is based upon the chapter about representations of extraspecial groups in Doerk and Hawkes, Finite Soluble Groups, de Gruyter, 1992. Note that there are two groups of exponent 3 and 9, respectively, in your case. gap> G := ExtraspecialMatrixGroup (3,2, 3, 7); gap> G := ExtraspecialMatrixGroup (3,2, 3^2, 7); Cheers Burkhard. ExtraspecialMatrixGroup := function (r, k, e, q) # returns an extraspecial group E of order r^{2k + 1} as # matrix group over GF(q) # if r = 2 and e = '-', then E is the central product of k-1 copies # of D_8 and one Q8; if e = '+', then E is the central product # of k copies of D_8. # if r is an odd prime then the group of exponent e will be constructed, # where e = r or e = r^2 local F, d8, q8, i, a, b, p, sq, ex, g1, g2, T, z, MyGL, TensorProductOfMatrixGroups; MyGL := GL; TensorProductOfMatrixGroups := function (G, H, q) local gens, F, z, d, dG, dH, g, h, n, i, inds, T; gens := []; if q mod Size (FieldOfMatrixGroup (G)) <> 0 or q mod Size (FieldOfMatrixGroup (H)) <> 0 then Error ("G and H must be over subfields of F"); fi; dG := DegreeOfMatrixGroup (G); dH := DegreeOfMatrixGroup (H); d := dG*dH; F := GF(q); for g in GeneratorsOfGroup (G) do z := NullMat (d, d, F); for i in [1,dG+1..(dH-1)*dG+1] do z{[i..i+dG-1]}{[i..i+dG-1]} := g; od; Add (gens, z); od; for h in GeneratorsOfGroup (H) do z := NullMat (d, d, F); for i in [1..dG] do inds := [i,dG+i..(dH-1)*dG+i]; z{inds}{inds} := h; od; Add (gens, z); od; T := Subgroup (MyGL(d, q), gens); Assert (1, (Size (G)*Size (H)) mod Size (T) = 0); Assert (1, IsSolvableGroup (T) or (not IsSolvableGroup (G) or not IsSolvableGroup (H))); return T; end; if not IsPosInt (r) or not IsPosInt (k) or not IsInt (q) then Error ("r, k, q must be positive integersr"); fi; if not IsPrimeInt (r) or not IsPrimePowerInt (q) or (q-1) mod r <> 0 then Error ("r must be prime and q must be a prime power such that r divides q-1"); fi; F := GF(q); if r = 2 then if e = '-' then # we need q8 if (q-1) mod 4 <> 0 then p := SmallestRootInt (q); # find integers a, b, satisfying a^2 + b^2 = -1 (mod p) sq := List ([1..QuoInt (p, 2)], x -> x^2 mod p); a := 0; repeat a := a + 1; b := First ([1..QuoInt (p,2)], i -> (sq[a] + sq[i] + 1) mod p = 0); until b <> fail; q8 := SubgroupNC (MyGL(2, q), [[[0,1],[-1,0]]*Z(q)^0, [[a,b],[b,-a]]*Z(q)^0]); else z := Z(q)^((q-1)/4); q8 := SubgroupNC (MyGL(2, q), [[[1,0],[0,-1]]*z, [[0,1],[1,0]]*z]); fi; Assert (1, IdGroup (q8) = [8,4]); SetSize (q8, 8); if k = 1 then return q8; fi; fi; d8 := SubgroupNC (MyGL(2, q), [[[0,1],[1,0]]*Z(q)^0, [[0,-1],[1,0]]*Z(q)^0]); Assert (1, IdGroup (d8) = [8,3]); SetSize (d8, 8); if e = '-' then T := q8; elif e = '+' then T := d8; else Error ("e must be '+' or '-'"); fi; for i in [2..k] do T := TensorProductOfMatrixGroups (T, d8, q); od; SetSize (T, r^(2*k+1)); return T; elif IsPrimeInt (r) then # r > 2 z := Z(q)^((q-1)/r); g1 := NullMat (r, r, GF(q)); for i in [1..r-1] do g1[i][i+1] := z^0; od; if e = r or e = '+' then g1[r][1] := z^0; elif e = r^2 or e = '-' then g1[r][1] := z; else Error ("e must be r, r^2, '+' or '-'"); fi; g2 := NullMat (r, r, GF(q)); for i in [1..r] do g2[i][i] := z^(i-1); od; ex := SubgroupNC (MyGL(r, q), [g1, g2]); T := ex; for i in [2..k] do T := TensorProductOfMatrixGroups (T, ex, q); od; SetSize (T, r^(2*k+1)); return T; else Error ("r must be a prime"); fi; end; From noreply+2natpr at twoomail.com Wed Feb 22 09:08:50 2012 From: noreply+2natpr at twoomail.com (Artan Loli =?UTF-8?B?bsODwqtww4PCq3JtamV0IFR3b28=?=) Date: Wed, 22 Feb 2012 09:08:50 +0000 Subject: [GAP Forum] =?utf-8?q?Artan_Loli_ju_fton_n=C3=AB_Twoo?= Message-ID: <25.1E.06943.D9DA44F4@mail04> Sapo zbulova nj? m?nyr? t? re p?r t? njohur njer?z: Twoo.com. ---------------------------------------------------------------- Hi, forum Artan Loli sapo zbulova nj? m?nyr? p?r t? njohur njer?z t? rinj n? linj? dhe do t? doja q? t'i bashkoheshe edhe ti qejfit: Twoo.com. Kopjoje/ngjite linkun e m?posht?m n? adres?n e programit t?nd t? internetit: http://twoo.com/m/A2TFfzX3 ---------------------------------------------------------------- TWOO NV/SA, Grainsborough House, 81 Oxford Street, W1D 2EU London, United Kingdom info-sq at twoo.com BE0834322338. From frank.luebeck at math.rwth-aachen.de Wed Feb 22 12:32:42 2012 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Wed, 22 Feb 2012 13:32:42 +0100 Subject: [GAP Forum] Extra-special group acting on an elementary abelian group In-Reply-To: References: Message-ID: <20120222123242.GA12288@beteigeuze.math.rwth-aachen.de> On Tue, Feb 21, 2012 at 07:30:43PM -0600, Goodson, Joshua E wrote: > I am trying to count the orbits of an extra-special group of order 3^5 acting on an elementary abelian group of order 7^9. I start with the automorphism group of the elementary abelian group and then try to find the isomorphic image of the extra-special group, but because of the size of the automorphism group the computer cannot finish. I also try to find the group myself by first finding the Sylow subgroup of the automorphism group, but again the computer has a problem finishing. I believe in each case it mentions running out of memory. So I was wondering if there is another way I can perform the desired action GAP or would a better computer be able to find the subgroup of the automorphism group that I want? Dear Joshua Goodson, dear Forum, You can consider the elementary abelian group of order 7^9 as the vector space GF(7)^9. The action of your group then becomes a linear representation. There are many actions of your group on this vectorspace, but I assume that you are interested in the irreducible representation(s). For such a small group GAP can easily compute all irreducible representations. This way you find your group as matrix group of 9x9 matrices over GF(7). g := ExtraspecialGroup(3^5,'+'); # this has exponent 3, use '-' for exponent 9 r := IrreducibleRepresentations(g,GF(7));; degs := List(r, h-> DimensionOfMatrixGroup(Image(h))); poss := Positions(degs, 9); g1 := Image(r[poss[1]]); Size(g1); (Burkhard H?fling has sent a method to find this directly for the specific groups in question.) Then, computing the orbits explicitly with GAPs 'Orbits' command would need a computer with about 5GB of RAM and would take quite some time. If you just want to count the orbits you can compute fix points (that is 1-eigenspaces) for conjugacy class representatives and use the Cauchy- Frobenius Lemma: one := One(g1); numorbs := 1/Size(g1) * Sum(ConjugacyClasses(g1), c-> Size(c) * 7^(9-RankMat(Representative(c)-one))); Actually, you can do the same without the explicit representation, just using the character table of your group: ct := CharacterTable(g);; poss := Positions(List(Irr(ct), Degree), 9); nrfix := function(ch, i, p) local ev; ev := EigenvaluesChar(ch, i); return p^ev[Length(ev)]; end; norbs := 1/Size(ct) * (List([1..NrConjugacyClasses(ct)], i-> nrfix(Irr(ct)[poss[1]], i, 7)) * SizesConjugacyClasses(ct)); With best regards, Frank L?beck -- /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck at Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From alexk at mcs.st-andrews.ac.uk Wed Feb 22 22:13:46 2012 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Wed, 22 Feb 2012 22:13:46 +0000 Subject: [GAP Forum] "IsRationalNumber" as synonym for "IsRat" In-Reply-To: <4F43EAB3.2040101@uni-math.gwdg.de> References: <20120218143412.GA24498@yellowpig> <4F43EAB3.2040101@uni-math.gwdg.de> Message-ID: Dear Jakob, dear GAP Forum, On 21 Feb 2012, at 19:04, kroeker wrote: > Dear GAP-developers, > > I do not really like the function name "IsRat" for the check if an object is a rational number > and suggest to introduce the synonym "IsRationalNumber" : > DeclareSynonym("IsRationalNumber",IsRat); > > What is your opinion? > > Jakob GAP as a number of short names for such common categories like e.g. `IsInt', `IsPosInt', `IsCyc', `IsBool', `IsFFE', `IsChar', `IsPerm' etc., so to my mind `IsRat' fits this naming scheme quite well. These are used in many method installations and having compact names is quite handy. The page http://www.gap-system.org/Faq/Usage/usage1.html explains how to customise GAP using the .gaprc file, so if you prefer this synonym for your personal use, you may add this line there. Of course, any code using it will not work without this declaration. Best wishes, Alexander From lisette.brillemans at mensa.nl Thu Feb 23 10:27:58 2012 From: lisette.brillemans at mensa.nl (Lisette Brillemans) Date: Thu, 23 Feb 2012 11:27:58 +0100 Subject: [GAP Forum] "IsRationalNumber" as synonym for "IsRat" In-Reply-To: References: <20120218143412.GA24498@yellowpig><4F43EAB3.2040101@uni-math.gwdg.de> Message-ID: <1FFC26B95A8E4FB6AA60902EA48163DA@AgnieszkaKowalc> Dear Jakob, dear GAP Forum, On 21 Feb 2012, at 19:04, kroeker wrote: > Dear GAP-developers, > > I do not really like the function name "IsRat" for the check if an object > is a rational number > and suggest to introduce the synonym "IsRationalNumber" : > DeclareSynonym("IsRationalNumber",IsRat); > > What is your opinion? > > Jakob GAP as a number of short names for such common categories like e.g. `IsInt', `IsPosInt', `IsCyc', `IsBool', `IsFFE', `IsChar', `IsPerm' etc., so to my mind `IsRat' fits this naming scheme quite well. These are used in many method installations and having compact names is quite handy. The page http://www.gap-system.org/Faq/Usage/usage1.html explains how to customise GAP using the .gaprc file, so if you prefer this synonym for your personal use, you may add this line there. Of course, any code using it will not work without this declaration. Best wishes, Alexander _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum Jakob has a point here. IsRat is a question about your mouse, not about a number. ;) I have a hamster and tried IsRat on him. > Hamster:=1; # I have one hamster [ 1 > IsRat(Hamster); [ true With regards, Lisette From kroeker at uni-math.gwdg.de Thu Feb 23 13:55:17 2012 From: kroeker at uni-math.gwdg.de (kroeker) Date: Thu, 23 Feb 2012 14:55:17 +0100 Subject: [GAP Forum] "IsRationalNumber" as synonym for "IsRat" Message-ID: <4F464545.6050402@uni-math.gwdg.de> Dear Alexander, dear GAP forum, it is ok to have short names but also consider that in software engineering it is known that variable and function names should be as descriptive as possible (and at the same time not too long of course). My intention is not to customize my personal use but to improve the usability and code readability for everybody. So I can't see any serious arguments against introducing the synonym "IsRationalNumber" for now. Best, Jakob Am 22.02.2012 23:13, schrieb Alexander Konovalov: > Dear Jakob, dear GAP Forum, > > On 21 Feb 2012, at 19:04, kroeker wrote: > >> Dear GAP-developers, >> >> I do not really like the function name "IsRat" for the check if an >> object is a rational number >> and suggest to introduce the synonym "IsRationalNumber" : >> DeclareSynonym("IsRationalNumber",IsRat); >> >> What is your opinion? >> >> Jakob > GAP as a number of short names for such common categories like e.g. > `IsInt', `IsPosInt', `IsCyc', > `IsBool', `IsFFE', `IsChar', `IsPerm' etc., so to my mind `IsRat' fits > this naming scheme quite > well. These are used in many method installations and having compact > names is quite handy. > > The page http://www.gap-system.org/Faq/Usage/usage1.html explains how > to customise GAP using the > .gaprc file, so if you prefer this synonym for your personal use, you > may add this line there. > Of course, any code using it will not work without this declaration. > > Best wishes, > Alexander From alexk at mcs.st-andrews.ac.uk Thu Feb 23 20:11:20 2012 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Thu, 23 Feb 2012 20:11:20 +0000 Subject: [GAP Forum] function search feature In-Reply-To: <4F0ABA91.9070105@uni-math.gwdg.de> References: <4F0ABA91.9070105@uni-math.gwdg.de> Message-ID: Dear Jakob, dear GAP Forum, I've noticed that this question was not answered yet in the Forum: On 9 Jan 2012, at 09:59, kroeker wrote: > Hello, > > sometimes I am looking for a function which is applicable to a specific object > without knowing the name of the function. To find the desired function > I have to read a lot of documentation, look for examples, ask an experienced GAP programmer (or the GAP-Forum) and so on. > > Would it be possible to implement a search through all existing functions > where one of the parameters is an object of a specified type? So, the short answer is 'No' - GAP function may take any argument(s), one does not specify to which arguments it applies when the function is created. GAP also has a notion of 'operation' which is a bunch of functions, called 'methods' - these are installed with particular requirements on their arguments. Here you may call ApplicableMethod (see ?ApplicableMethod) to get the function which will be applied to arguments in a call to a specified operation - but this is not what you want, since you need to know the name of the operation in advance. For example, gap> ApplicableMethod(Size,[Group((1,2))]); function( G ) ... end or (with more detailed output) gap> ApplicableMethod(Size,[Group((1,2))],"all"); #I Searching Method for Size with 1 arguments: #I Total: 57 entries ... 9: ``Size: for a permutation group that knows to be a direct product'', value: 34 #I - 1st argument needs [ "Tester(DirectProductInfo)" ] #I Method 10: ``Size: for a permutation group'', value: 33 #I Function Body: function ( G ) return SizeStabChain( StabChainMutable( G ) ); endfunction( G ) ... end gap> A hint for an effective search in the GAP documentation is to invoke the help from the command line rather then browsing PDF or HTML version. Type ?help in your GAP session to display further instructions. The query of the form ??word will show all help sections in all books whose index entries contain the substring word. For example, gap> ??torsion Help: several entries match this topic - type ?2 to get match [2] [1] FR (not loaded): IsTorsionGroup [2] FR (not loaded): IsTorsionFreeGroup [3] HAP (not loaded): TorsionGeneratorsAbelianGroup [4] polycyclic: TorsionByPolyEFSeries [5] polycyclic: TorsionSubgroup [6] polycyclic: NormalTorsionSubgroup [7] polycyclic: IsTorsionFree [8] RCWA (not loaded): An infinite subgroup of CT(GF(2)[x]) with many torsion elements gap> If you prefer HTML or PDF version, see ?SetHelpViewer for instructions how to change the default viewer. Hope this helps, Alexander From alexk at mcs.st-andrews.ac.uk Thu Feb 23 20:39:07 2012 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Thu, 23 Feb 2012 20:39:07 +0000 Subject: [GAP Forum] "IsRationalNumber" as synonym for "IsRat" In-Reply-To: <4F464545.6050402@uni-math.gwdg.de> References: <4F464545.6050402@uni-math.gwdg.de> Message-ID: <69EDBCD8-CE83-4847-8A62-E679AB59E607@mcs.st-andrews.ac.uk> Dear Jakob, On 23 Feb 2012, at 13:55, kroeker wrote: > Dear Alexander, dear GAP forum, > > > it is ok to have short names but also consider that in software engineering it is known > that variable and function names should be as descriptive as possible > (and at the same time not too long of course). In this case then 'IsPosRat' is certainly more descriptive than 'IsPR', and, moreover, it naturally follows GAP naming conventions for some central categories of objects. > My intention is not to customize my personal use but to improve the usability and code readability for everybody. > So I can't see any serious arguments against introducing the synonym "IsRationalNumber" for now. There is a guidance in the GAP manual about using synonyms, which says: ---- Two typical intended usages are to declare an "and-filter", e.g. DeclareSynonym( "IsGroup", IsMagmaWithInverses and IsAssociative ); and to provide a previously declared global function with an alternative name, e.g. DeclareGlobalFunction( "SizeOfSomething" ); DeclareSynonym( "OrderOfSomething", SizeOfSomething ); Note: Before using DeclareSynonym in the way of this second example, one should determine whether the synonym is really needed. Perhaps an extra index entry in the documentation would be sufficient. ---- From this, I don't think that there are any serious arguments in favour of the synonym IsRationalNumber for IsRat. It's really easy to find the meaning of IsRat using the help system, and if one searches for rationals in the documentation, then IsRat comes in the next manual section. You may grep the GAP library code to see actual examples when it is used in the library - in most cases there are much more grounds to introduce synonyms there. Best, Alexander > Am 22.02.2012 23:13, schrieb Alexander Konovalov: >> Dear Jakob, dear GAP Forum, >> >> On 21 Feb 2012, at 19:04, kroeker wrote: >> >>> Dear GAP-developers, >>> >>> I do not really like the function name "IsRat" for the check if an object is a rational number >>> and suggest to introduce the synonym "IsRationalNumber" : >>> DeclareSynonym("IsRationalNumber",IsRat); >>> >>> What is your opinion? >>> >>> Jakob >> GAP as a number of short names for such common categories like e.g. `IsInt', `IsPosInt', `IsCyc', >> `IsBool', `IsFFE', `IsChar', `IsPerm' etc., so to my mind `IsRat' fits this naming scheme quite >> well. These are used in many method installations and having compact names is quite handy. >> >> The page http://www.gap-system.org/Faq/Usage/usage1.html explains how to customise GAP using the >> .gaprc file, so if you prefer this synonym for your personal use, you may add this line there. >> Of course, any code using it will not work without this declaration. >> >> Best wishes, >> Alexander > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum -- Dr. Alexander Konovalov School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44/0 (1334) 461633 http://www.cs.st-andrews.ac.uk/~alexk Fax +44/0 (1334) 463278 The University of St Andrews is a charity registered in Scotland:No.SC013532 From frank.luebeck at math.rwth-aachen.de Thu Feb 23 22:07:08 2012 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Thu, 23 Feb 2012 23:07:08 +0100 Subject: [GAP Forum] function search feature In-Reply-To: References: <4F0ABA91.9070105@uni-math.gwdg.de> Message-ID: <20120223220707.GA29752@beteigeuze.math.rwth-aachen.de> On Thu, Feb 23, 2012 at 08:11:20PM +0000, Alexander Konovalov wrote: > I've noticed that this question was not answered yet in the Forum: > > On 9 Jan 2012, at 09:59, kroeker wrote: > > > Hello, > > > > sometimes I am looking for a function which is applicable to a specific object > > without knowing the name of the function. To find the desired function > > I have to read a lot of documentation, look for examples, ask an experienced GAP programmer (or the GAP-Forum) and so on. > > > > Would it be possible to implement a search through all existing functions > > where one of the parameters is an object of a specified type? > > So, the short answer is 'No' - GAP function may take any argument(s), one does not > specify to which arguments it applies when the function is created. GAP also > has a notion of 'operation' which is a bunch of functions, called 'methods' > - these are installed with particular requirements on their arguments. Here > you may call ApplicableMethod (see ?ApplicableMethod) to get the function > which will be applied to arguments in a call to a specified operation - but > this is not what you want, since you need to know the name of the operation > in advance. For example, Dear Jakob, dear Forum, Sorry, I must have overlooked the original post. This reminds me that I have once written a utility function AllOperations(obj) which returns a list of 6 lists of names of operations such that the operations from the i-th list have a method that allows obj as argument number i. I think (a variant of) this is used for a completion function in the Sage interface to GAP. The function is appended below. As Alexander pointed out, something like that is only possible for operations (whose methods are installed with requirements on the arguments) and not for general functions in GAP. With best regards, Frank -- /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck at Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ ############# file AllOps.g ############################################## ## AllOperations Frank L?beck ## ## The function AllOperations(obj) returns a list l of 6 entries. ## Here l[i] is a list of names of documented operations which have ## an installed method that accepts obj as i-th argument. ## ## Use the result with care. This is a purely technical check if the object ## obj fulfills the requirements given in method installations. This does ## not mean that there is a sensible example for each of the given ## operations with obj being one of the arguments. For example, there ## exist (fallback) methods for some operations installed with requirement ## 'IsObject' for some argument(s), these appear in the result of ## AllOperations for every GAP object obj. This effect would be even much ## worse if we considered all operations, not just the documented ones. ## if not IsBound(AllOperations) then AllOperations := function(obj) local flags, res, oper, methods, o, l, i, j, b; flags := TypeObj(obj)![2]; res := List([1..6], i->[]); for o in [1..Length(OPERATIONS)/2] do oper := OPERATIONS[2*o-1]; for l in [1..6] do methods := METHODS_OPERATION(oper, l); for i in [1..Length(methods)/(l+4)] do for j in [1..l] do if IS_SUBSET_FLAGS(flags, methods[(l+4)*(i-1)+1+j]) then if not oper in res[j] then Add(res[j], oper); fi; fi; od; od; od; od; res := List(res, c-> List(c, NameFunction)); # cache doc entries if not IsBound(GAPInfo.cachedDocEntries) then IsDocumentedWord("Size"); GAPInfo.cachedDocEntries := []; for b in RecFields(HELP_BOOKS_INFO) do Append(GAPInfo.cachedDocEntries, List(HELP_BOOKS_INFO.(b).entries, e-> StripEscapeSequences(e[1]))); od; GAPInfo.cachedDocEntries := Immutable(Set(GAPInfo.cachedDocEntries)); IsSSortedList(GAPInfo.cachedDocEntries); fi; # throw out the Setter's and non-documented ones res := List(res, a-> Filtered(a, s-> PositionSublist(s, "Setter(") <> 1 and s in GAPInfo.cachedDocEntries)); for o in res do Sort(o); od; return res; end; fi; From alexk at mcs.st-andrews.ac.uk Thu Feb 23 22:30:18 2012 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Thu, 23 Feb 2012 22:30:18 +0000 Subject: [GAP Forum] GAP's type hierarchy In-Reply-To: <231211312961871@web11.yandex.ru> References: <231211312961871@web11.yandex.ru> Message-ID: Dear Grigory, dear Forum, Reading fresh post by Frank, I've recollected that the next message was never answered in the forum: On 10 Aug 2011, at 08:37, Grigory Sarnitskiy wrote: > Hello! I've never used GAP but I heard it's uses some kind of hierarchy to represent mathematical structures. I'm trying to collect information of such hierarchies in various computer algebra system's and languages. > > I would like to find a graph representing the GAP's hierarchy. For example Axiom's graph of its math categories is http://ubuntuone.com/p/19TT/ (although it is not complete and categories' names are abbreviated) and the graph of Haskell's basic algebra library is http://ubuntuone.com/p/19TS/. > > And does anybody knows the same thing for MAGMA? MAGMA is not very open and I couldn't find a mailing list or a forum for its users to ask the question. Unless anyone has another suggestion of utility function for doing this systematically, my advise would be to grep for all "DeclareCategory" and "DeclareCategoryKernel" statements to get an overview of categories declared in the GAP library: $ cd gap4r4/lib/ $ grep "DeclareCategoryKernel(" * boolean.g:DeclareCategoryKernel( "IsBool", IsObject, IS_BOOL ); cyclotom.g:DeclareCategoryKernel( "IsCyc", IsCyclotomic, IS_CYC ); cyclotom.g:DeclareCategoryKernel( "IsRat", IsCyc, IS_RAT ); cyclotom.g:DeclareCategoryKernel( "IsInt", IsRat, IS_INT ); ... record.g:DeclareCategoryKernel( "IsRecord", IsObject, IS_REC ); string.g:DeclareCategoryKernel( "IsString", IsHomogeneousList, IS_STRING ); type.g:#F DeclareCategoryKernel( , , ) create a new category wpobj.gd:DeclareCategoryKernel( "IsWeakPointerObject", and $ grep "DeclareCategory(" * addcoset.gd:DeclareCategory( "IsAdditiveCoset", addmagma.gd:DeclareCategory( "IsNearAdditiveMagma", addmagma.gd:DeclareCategory( "IsNearAdditiveMagmaWithZero", addmagma.gd:DeclareCategory( "IsNearAdditiveGroup", ... rwspcgrp.gd:DeclareCategory( semiquo.gd:DeclareCategory("IsQuotientSemigroup", IsSemigroup); ... zmodnz.gd:DeclareCategory( "IsZmodnZObj", IsScalar ); zmodnz.gd:DeclareCategory( "IsZmodnZObjNonprime", IsZmodnZObj ); zmodnz.gd:DeclareCategory( "IsZmodpZObjSmall", IsZmodpZObj ); zmodnz.gd:DeclareCategory( "IsZmodpZObjLarge", IsZmodpZObj ); In some places, you will need to look on one or more lines following the line with the declaration command. Note, however, that: - this list contains both documented and undocumented categories; - it contains both categories for different mathematical objects (e.g. IsNearAdditiveMagma, IsAlgebraicExtension) and for GAP objects and data structures (e.g. IsRecord, IsOperation); - GAP is extendable, so GAP packages (see 'pkg' subdirectory) may create even more categories. - you may find some more categories in the GAP 4.5 release coming soon. Hope this is still actual, sorry for not getting back earlier. Best wishes, Alexander From jg1356 at txstate.edu Fri Feb 24 22:39:04 2012 From: jg1356 at txstate.edu (Goodson, Joshua E) Date: Fri, 24 Feb 2012 16:39:04 -0600 Subject: [GAP Forum] Extra-special group acting on an elementary abelian group In-Reply-To: References: Message-ID: Dear Forum, I wanted to thank everyone for there wonderful suggestions. I am afraid I forgot to mention that when I count the orbits I also wish to count the orbits of any particular size. For example, I would want to count the number of regular orbits. My apologies for not mentioning that before. Will these methods allow me to count orbits of any size. Thank you and again I apologize for my lack of specificity. ~Joshua Goodson ________________________________________ From: forum-bounces at gap-system.org [forum-bounces at gap-system.org] On Behalf Of Goodson, Joshua E [jg1356 at txstate.edu] Sent: Tuesday, February 21, 2012 7:30 PM To: forum at mail.gap-system.org Subject: [GAP Forum] Extra-special group acting on an elementary abelian group Hello, I am trying to count the orbits of an extra-special group of order 3^5 acting on an elementary abelian group of order 7^9. I start with the automorphism group of the elementary abelian group and then try to find the isomorphic image of the extra-special group, but because of the size of the automorphism group the computer cannot finish. I also try to find the group myself by first finding the Sylow subgroup of the automorphism group, but again the computer has a problem finishing. I believe in each case it mentions running out of memory. So I was wondering if there is another way I can perform the desired action GAP or would a better computer be able to find the subgroup of the automorphism group that I want? Thank you _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From kroeker at uni-math.gwdg.de Fri Feb 24 23:02:46 2012 From: kroeker at uni-math.gwdg.de (kroeker) Date: Sat, 25 Feb 2012 00:02:46 +0100 Subject: [GAP Forum] function search feature In-Reply-To: <20120223220707.GA29752@beteigeuze.math.rwth-aachen.de> References: <4F0ABA91.9070105@uni-math.gwdg.de> <20120223220707.GA29752@beteigeuze.math.rwth-aachen.de> Message-ID: <4F481716.8030806@uni-math.gwdg.de> Hello Frank, thanks, "AllOperations" comes already very close to my needs. Maybe you could also give me an advice, how to find all filters which are applicable to an object: "IsEmpty" is not applicable to an int and therefore "obj:=5; for each filter in FILTERS do filter(obj); od;" fails with an error. Thank you, Jakob Am 23.02.2012 23:07, schrieb Frank L?beck: > On Thu, Feb 23, 2012 at 08:11:20PM +0000, Alexander Konovalov wrote: >> I've noticed that this question was not answered yet in the Forum: >> >> On 9 Jan 2012, at 09:59, kroeker wrote: >> >>> Hello, >>> >>> sometimes I am looking for a function which is applicable to a specific object >>> without knowing the name of the function. To find the desired function >>> I have to read a lot of documentation, look for examples, ask an experienced GAP programmer (or the GAP-Forum) and so on. >>> >>> Would it be possible to implement a search through all existing functions >>> where one of the parameters is an object of a specified type? >> So, the short answer is 'No' - GAP function may take any argument(s), one does not >> specify to which arguments it applies when the function is created. GAP also >> has a notion of 'operation' which is a bunch of functions, called 'methods' >> - these are installed with particular requirements on their arguments. Here >> you may call ApplicableMethod (see ?ApplicableMethod) to get the function >> which will be applied to arguments in a call to a specified operation - but >> this is not what you want, since you need to know the name of the operation >> in advance. For example, > Dear Jakob, dear Forum, > > Sorry, I must have overlooked the original post. > > This reminds me that I have once written a utility function > AllOperations(obj) > which returns a list of 6 lists of names of operations such that > the operations from the i-th list have a method that allows obj as > argument number i. > > I think (a variant of) this is used for a completion function in the > Sage interface to GAP. The function is appended below. > > As Alexander pointed out, something like that is only possible for > operations (whose methods are installed with requirements on the arguments) > and not for general functions in GAP. > > With best regards, > Frank > From kroeker at uni-math.gwdg.de Fri Feb 24 23:34:59 2012 From: kroeker at uni-math.gwdg.de (kroeker) Date: Sat, 25 Feb 2012 00:34:59 +0100 Subject: [GAP Forum] "IsRationalNumber" as synonym for "IsRat" In-Reply-To: <69EDBCD8-CE83-4847-8A62-E679AB59E607@mcs.st-andrews.ac.uk> References: <4F464545.6050402@uni-math.gwdg.de> <69EDBCD8-CE83-4847-8A62-E679AB59E607@mcs.st-andrews.ac.uk> Message-ID: <4F481EA3.10500@uni-math.gwdg.de> Dear Alexander, I suppose I cannot convince you via conventional arguing, that it is invaluable to use descriptive names like "IsRationalNumber". I think even citing papers from software engineering researchers may not help. Therefore I suggest following experiment: 1. choose a small piece of GAP code with moderate or extensive use of short variable names e.g. `IsInt', `IsPosInt', `IsCyc' 'isRat'. 2. Send me this piece of code and I will suggest more descriptive names. 3. copy a bunch of the printouts with the original code and the modified version. 4. -distribute the printouts among your friends and ask them which version they mostly like or -distribute the printouts among several GAP developers and ask them which printout version is more readable. Independently of the result I will invite you for lunch if you accomplish this experiment. Do you accept? Best regards, Jakob P.S. if somebody ever had to maintain or review third party source code, he will probably know the importance of code readability. Speaking names also reduces the barrier to learn a new (CAS) language. Am 23.02.2012 21:39, schrieb Alexander Konovalov: > Dear Jakob, > > On 23 Feb 2012, at 13:55, kroeker wrote: > >> Dear Alexander, dear GAP forum, >> >> >> it is ok to have short names but also consider that in software engineering it is known >> that variable and function names should be as descriptive as possible >> (and at the same time not too long of course). > In this case then 'IsPosRat' is certainly more descriptive than 'IsPR', > and, moreover, it naturally follows GAP naming conventions for some > central categories of objects. > >> My intention is not to customize my personal use but to improve the usability and code readability for everybody. >> So I can't see any serious arguments against introducing the synonym "IsRationalNumber" for now. > There is a guidance in the GAP manual about using synonyms, which says: > > ---- > Two typical intended usages are to declare an "and-filter", e.g. > > DeclareSynonym( "IsGroup", IsMagmaWithInverses and IsAssociative ); > > and to provide a previously declared global function with an alternative name, e.g. > > DeclareGlobalFunction( "SizeOfSomething" ); > DeclareSynonym( "OrderOfSomething", SizeOfSomething ); > > Note: Before using DeclareSynonym in the way of this second example, one should > determine whether the synonym is really needed. Perhaps an extra index entry in > the documentation would be sufficient. > ---- > > From this, I don't think that there are any serious arguments in favour of the > synonym IsRationalNumber for IsRat. It's really easy to find the meaning of > IsRat using the help system, and if one searches for rationals in the > documentation, then IsRat comes in the next manual section. You may grep the > GAP library code to see actual examples when it is used in the library - in > most cases there are much more grounds to introduce synonyms there. > > Best, > Alexander > >> Am 22.02.2012 23:13, schrieb Alexander Konovalov: >>> Dear Jakob, dear GAP Forum, >>> >>> On 21 Feb 2012, at 19:04, kroeker wrote: >>> >>>> Dear GAP-developers, >>>> >>>> I do not really like the function name "IsRat" for the check if an object is a rational number >>>> and suggest to introduce the synonym "IsRationalNumber" : >>>> DeclareSynonym("IsRationalNumber",IsRat); >>>> >>>> What is your opinion? >>>> >>>> Jakob >>> GAP as a number of short names for such common categories like e.g. `IsInt', `IsPosInt', `IsCyc', >>> `IsBool', `IsFFE', `IsChar', `IsPerm' etc., so to my mind `IsRat' fits this naming scheme quite >>> well. These are used in many method installations and having compact names is quite handy. >>> >>> The page http://www.gap-system.org/Faq/Usage/usage1.html explains how to customise GAP using the >>> .gaprc file, so if you prefer this synonym for your personal use, you may add this line there. >>> Of course, any code using it will not work without this declaration. >>> >>> Best wishes, >>> Alexander >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum > > -- > Dr. Alexander Konovalov School of Computer Science > & Centre for Interdisciplinary Research in Computational Algebra > University of St Andrews Tel +44/0 (1334) 461633 > http://www.cs.st-andrews.ac.uk/~alexk Fax +44/0 (1334) 463278 > The University of St Andrews is a charity registered in Scotland:No.SC013532 > > > > > > > From kroeker at uni-math.gwdg.de Fri Feb 24 23:54:50 2012 From: kroeker at uni-math.gwdg.de (kroeker) Date: Sat, 25 Feb 2012 00:54:50 +0100 Subject: [GAP Forum] function search feature In-Reply-To: <4F481716.8030806@uni-math.gwdg.de> References: <4F0ABA91.9070105@uni-math.gwdg.de> <20120223220707.GA29752@beteigeuze.math.rwth-aachen.de> <4F481716.8030806@uni-math.gwdg.de> Message-ID: <4F48234A.7010603@uni-math.gwdg.de> update: replace "obj:=5; for each filter in FILTERS do filter(obj); od;" with "obj:=5; for filter in FILTERS do filter(obj); od;" Am 25.02.2012 00:02, schrieb kroeker: > Hello Frank, > > > thanks, "AllOperations" comes already very close to my needs. > Maybe you could also give me an advice, how to find > all filters which are applicable to an object: > > "IsEmpty" is not applicable to an int and therefore > "obj:=5; for each filter in FILTERS do filter(obj); od;" > fails with an error. > > > Thank you, > > > > Jakob > > > Am 23.02.2012 23:07, schrieb Frank L?beck: >> On Thu, Feb 23, 2012 at 08:11:20PM +0000, Alexander Konovalov wrote: >>> I've noticed that this question was not answered yet in the Forum: >>> >>> On 9 Jan 2012, at 09:59, kroeker wrote: >>> >>>> Hello, >>>> >>>> sometimes I am looking for a function which is applicable to a >>>> specific object >>>> without knowing the name of the function. To find the desired function >>>> I have to read a lot of documentation, look for examples, ask an >>>> experienced GAP programmer (or the GAP-Forum) and so on. >>>> >>>> Would it be possible to implement a search through all existing >>>> functions >>>> where one of the parameters is an object of a specified type? >>> So, the short answer is 'No' - GAP function may take any >>> argument(s), one does not >>> specify to which arguments it applies when the function is created. >>> GAP also >>> has a notion of 'operation' which is a bunch of functions, called >>> 'methods' >>> - these are installed with particular requirements on their >>> arguments. Here >>> you may call ApplicableMethod (see ?ApplicableMethod) to get the >>> function >>> which will be applied to arguments in a call to a specified >>> operation - but >>> this is not what you want, since you need to know the name of the >>> operation >>> in advance. For example, >> Dear Jakob, dear Forum, >> >> Sorry, I must have overlooked the original post. >> >> This reminds me that I have once written a utility function >> AllOperations(obj) >> which returns a list of 6 lists of names of operations such that >> the operations from the i-th list have a method that allows obj as >> argument number i. >> >> I think (a variant of) this is used for a completion function in the >> Sage interface to GAP. The function is appended below. >> >> As Alexander pointed out, something like that is only possible for >> operations (whose methods are installed with requirements on the >> arguments) >> and not for general functions in GAP. >> >> With best regards, >> Frank >> > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From alexk at mcs.st-andrews.ac.uk Sat Feb 25 00:02:29 2012 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Sat, 25 Feb 2012 00:02:29 +0000 Subject: [GAP Forum] "IsRationalNumber" as synonym for "IsRat" In-Reply-To: <4F481EA3.10500@uni-math.gwdg.de> References: <4F464545.6050402@uni-math.gwdg.de> <69EDBCD8-CE83-4847-8A62-E679AB59E607@mcs.st-andrews.ac.uk> <4F481EA3.10500@uni-math.gwdg.de> Message-ID: <6052D7C7-1ED7-4637-A786-929265C499EE@mcs.st-andrews.ac.uk> Dear Jakob, I regret to decline your proposal, since I have other priorities in my contributions to the development of the GAP system, and there is no my time available to continue this discussion on synonyms, an opinion on which I've already expressed. Nevertheless, please be sure that suggestions expressed in the GAP Forum are heard by GAP developers, and those which will be considered to be reasonable may be added to our TODO lists (however, with various priorities). On the other hand, replying to your recent mail to GAP Support, I've outlined other topics which I would be more interested to discuss in the context of your work, namely, GAP package development and interfacing GAP and Macaulay2 using SCSCP. If you will have any questions about these topics, please let me know. Best regards, Alexander On 24 Feb 2012, at 23:34, kroeker wrote: > Dear Alexander, > > > I suppose I cannot convince you via conventional arguing, that it is invaluable to use descriptive names > like "IsRationalNumber". I think even citing papers from software engineering researchers may not help. > > > Therefore I suggest following experiment: > > 1. choose a small piece of GAP code with moderate or extensive use of short variable names > e.g. `IsInt', `IsPosInt', `IsCyc' 'isRat'. > > 2. Send me this piece of code and I will suggest more descriptive names. > > 3. copy a bunch of the printouts with the original code and the modified version. > > 4. -distribute the printouts among your friends and ask them which version they mostly like or > -distribute the printouts among several GAP developers and ask them which printout version is more readable. > > Independently of the result I will invite you for lunch if you accomplish this experiment. Do you accept? > > > Best regards, > > > Jakob > > > P.S. if somebody ever had to maintain or review third party source code, he will probably know > the importance of code readability. Speaking names also reduces the barrier to learn a new > (CAS) language. > > > Am 23.02.2012 21:39, schrieb Alexander Konovalov: >> Dear Jakob, >> >> On 23 Feb 2012, at 13:55, kroeker wrote: >> >>> Dear Alexander, dear GAP forum, >>> >>> >>> it is ok to have short names but also consider that in software engineering it is known >>> that variable and function names should be as descriptive as possible >>> (and at the same time not too long of course). >> In this case then 'IsPosRat' is certainly more descriptive than 'IsPR', >> and, moreover, it naturally follows GAP naming conventions for some >> central categories of objects. >> >>> My intention is not to customize my personal use but to improve the usability and code readability for everybody. >>> So I can't see any serious arguments against introducing the synonym "IsRationalNumber" for now. >> There is a guidance in the GAP manual about using synonyms, which says: >> >> ---- >> Two typical intended usages are to declare an "and-filter", e.g. >> >> DeclareSynonym( "IsGroup", IsMagmaWithInverses and IsAssociative ); >> >> and to provide a previously declared global function with an alternative name, e.g. >> >> DeclareGlobalFunction( "SizeOfSomething" ); >> DeclareSynonym( "OrderOfSomething", SizeOfSomething ); >> >> Note: Before using DeclareSynonym in the way of this second example, one should >> determine whether the synonym is really needed. Perhaps an extra index entry in >> the documentation would be sufficient. >> ---- >> >> From this, I don't think that there are any serious arguments in favour of the >> synonym IsRationalNumber for IsRat. It's really easy to find the meaning of >> IsRat using the help system, and if one searches for rationals in the >> documentation, then IsRat comes in the next manual section. You may grep the >> GAP library code to see actual examples when it is used in the library - in >> most cases there are much more grounds to introduce synonyms there. >> >> Best, >> Alexander >> >>> Am 22.02.2012 23:13, schrieb Alexander Konovalov: >>>> Dear Jakob, dear GAP Forum, >>>> >>>> On 21 Feb 2012, at 19:04, kroeker wrote: >>>> >>>>> Dear GAP-developers, >>>>> >>>>> I do not really like the function name "IsRat" for the check if an object is a rational number >>>>> and suggest to introduce the synonym "IsRationalNumber" : >>>>> DeclareSynonym("IsRationalNumber",IsRat); >>>>> >>>>> What is your opinion? >>>>> >>>>> Jakob >>>> GAP as a number of short names for such common categories like e.g. `IsInt', `IsPosInt', `IsCyc', >>>> `IsBool', `IsFFE', `IsChar', `IsPerm' etc., so to my mind `IsRat' fits this naming scheme quite >>>> well. These are used in many method installations and having compact names is quite handy. >>>> >>>> The page http://www.gap-system.org/Faq/Usage/usage1.html explains how to customise GAP using the >>>> .gaprc file, so if you prefer this synonym for your personal use, you may add this line there. >>>> Of course, any code using it will not work without this declaration. >>>> >>>> Best wishes, >>>> Alexander From A.Egri-Nagy at herts.ac.uk Sat Feb 25 00:16:59 2012 From: A.Egri-Nagy at herts.ac.uk (Attila Egri-Nagy) Date: Sat, 25 Feb 2012 11:16:59 +1100 Subject: [GAP Forum] "IsRationalNumber" as synonym for "IsRat" In-Reply-To: <4F481EA3.10500@uni-math.gwdg.de> References: <4F464545.6050402@uni-math.gwdg.de> <69EDBCD8-CE83-4847-8A62-E679AB59E607@mcs.st-andrews.ac.uk> <4F481EA3.10500@uni-math.gwdg.de> Message-ID: Dear Jakob, Just a small remark. Rereading the conversation I noticed that you changed your position from a particular case to a general one. Originally you seemed to have problem with the "IsRat" name, presumably because of being vague about its meaning as it could refer to a not so popular rodent. But now you are sort of suggesting large scale changes in the GAP coding conventions. I see your point and I would happy to see the results of you experiment. As a software developer myself I have to deal with these problems every day. In this particular case of GAP and these short names I would definitely vote for GAP's current approach. In a computer algebra context I see no possibility of misunderstanding 'IsRat', as opposed to a Zoo management software. On the other hand code lines are shorter which is another big factor in readability. Of course, I would like to emphasize, that this is only my personal opinion. best wishes, attila On Sat, Feb 25, 2012 at 10:34 AM, kroeker wrote: > Dear Alexander, > > > I suppose I cannot convince you via conventional arguing, that it is > invaluable to use descriptive names > like "IsRationalNumber". I think even citing papers from software > engineering researchers may not help. > > > Therefore I suggest following experiment: > > 1. choose a small piece of GAP code with moderate or extensive use of short > variable names > e.g. `IsInt', `IsPosInt', `IsCyc' 'isRat'. > > 2. Send me this piece of code and I will suggest more descriptive names. > > 3. copy a bunch of the printouts with the original code and the modified > version. > > 4. -distribute the printouts among your friends and ask them which version > they mostly like or > -distribute the printouts among several GAP developers and ask them which > printout version is more readable. > > Independently of the result I will invite you for lunch if you accomplish > this experiment. Do you accept? > > > Best regards, > > > Jakob > > > P.S. if somebody ever had to maintain or review third party source code, he > will probably know > the importance of code readability. Speaking names also reduces the barrier > to learn a new > (CAS) language. > > > Am 23.02.2012 21:39, schrieb Alexander Konovalov: > >> Dear Jakob, >> >> On 23 Feb 2012, at 13:55, kroeker wrote: >> >>> Dear Alexander, dear GAP forum, >>> >>> >>> it is ok to have short names but also consider that in software >>> engineering ?it is known >>> that variable and function names should ?be as descriptive as possible >>> (and at the same time not too long of course). >> >> In this case then 'IsPosRat' is certainly more descriptive than 'IsPR', >> and, moreover, it naturally follows GAP naming conventions for some >> central categories of objects. >> >>> My intention is not to customize my personal use but to improve the >>> usability and code readability for everybody. >>> So I can't see any serious arguments against introducing the synonym >>> "IsRationalNumber" for now. >> >> There is a guidance in the GAP manual about using synonyms, which says: >> >> ---- >> Two typical intended usages are to declare an "and-filter", e.g. >> >> DeclareSynonym( "IsGroup", IsMagmaWithInverses and IsAssociative ); >> >> and to provide a previously declared global function with an alternative >> name, e.g. >> >> DeclareGlobalFunction( "SizeOfSomething" ); >> DeclareSynonym( "OrderOfSomething", SizeOfSomething ); >> >> Note: Before using DeclareSynonym in the way of this second example, one >> should >> determine whether the synonym is really needed. Perhaps an extra index >> entry in >> the documentation would be sufficient. >> ---- >> >> ?From this, I don't think that there are any serious arguments in favour >> of the >> synonym IsRationalNumber for IsRat. It's really easy to find the meaning >> of >> IsRat using the help system, and if one searches for rationals in the >> documentation, then IsRat comes in the next manual section. You may grep >> the >> GAP library code to see actual examples when it is used in the library - >> in >> most cases there are much more grounds to introduce synonyms there. >> >> Best, >> Alexander >> >>> Am 22.02.2012 23:13, schrieb Alexander Konovalov: >>>> >>>> Dear Jakob, dear GAP Forum, >>>> >>>> On 21 Feb 2012, at 19:04, kroeker wrote: >>>> >>>>> Dear GAP-developers, >>>>> >>>>> I do not really like the function name ?"IsRat" for the check if an >>>>> object is a rational number >>>>> and suggest to introduce the synonym "IsRationalNumber" : >>>>> ?DeclareSynonym("IsRationalNumber",IsRat); >>>>> >>>>> What is your opinion? >>>>> >>>>> Jakob >>>> >>>> GAP as a number of short names for such common categories like e.g. >>>> `IsInt', `IsPosInt', `IsCyc', >>>> `IsBool', `IsFFE', `IsChar', `IsPerm' etc., so to my mind `IsRat' fits >>>> this naming scheme quite >>>> well. These are used in many method installations and having compact >>>> names is quite handy. >>>> >>>> The page http://www.gap-system.org/Faq/Usage/usage1.html explains how to >>>> customise GAP using the >>>> .gaprc file, so if you prefer this synonym for your personal use, you >>>> may add this line there. >>>> Of course, any code using it will not work without this declaration. >>>> >>>> Best wishes, >>>> Alexander >>> >>> _______________________________________________ >>> Forum mailing list >>> Forum at mail.gap-system.org >>> http://mail.gap-system.org/mailman/listinfo/forum >> >> >> -- >> Dr. Alexander Konovalov ? ? ? ? ? ? ? School of Computer Science >> & ?Centre for Interdisciplinary Research in Computational Algebra >> University of St Andrews ? ? ? ? ? ? ? ? Tel +44/0 (1334) 461633 >> http://www.cs.st-andrews.ac.uk/~alexk ? ?Fax +44/0 (1334) 463278 >> The University of St Andrews is a charity registered in >> Scotland:No.SC013532 >> >> >> >> >> >> >> > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From kroeker at uni-math.gwdg.de Sat Feb 25 02:01:43 2012 From: kroeker at uni-math.gwdg.de (kroeker) Date: Sat, 25 Feb 2012 03:01:43 +0100 Subject: [GAP Forum] "IsRationalNumber" as synonym for "IsRat" In-Reply-To: References: <4F464545.6050402@uni-math.gwdg.de> <69EDBCD8-CE83-4847-8A62-E679AB59E607@mcs.st-andrews.ac.uk> <4F481EA3.10500@uni-math.gwdg.de> Message-ID: <4F484107.4060906@uni-math.gwdg.de> Dear Attila, > In this particular case of GAP and these short > names I would definitely vote for GAP's current approach. It is also possible (just a hypothesis) that you got adopted to variable and function names in GAP and the same will happen to me and to other GAP users and that after the adoption process shorter lines are the bigger factor in relation to less-descriptive names. Let me here remark that a lot of coding conventions and techniques are just implications from basic principles like 'locality', 're-usability', 'correctness' or the idea that we are writing code mainly for other people and not for ourselves and so on. Unfortunately I'm still catching myself too often writing non-optimal code and I have to remind myself every day to do it the right way (applying known facts from operating experience and research), what sometimes frustrates me. From the feedback I got until now I conclude that GAP developers have different positions on the issue of short vs. descriptive names and I probably should stop the discussion here without suggesting large changes for now. One reason is that changes may lead to unforeseeable consequences you never would think of. Thank you all for the discussion and happy coding! Jakob Am 25.02.2012 01:16, schrieb Attila Egri-Nagy: > Dear Jakob, > > Just a small remark. Rereading the conversation I noticed that you > changed your position from a particular case to a general one. > Originally you seemed to have problem with the "IsRat" name, > presumably because of being vague about its meaning as it could refer > to a not so popular rodent. But now you are sort of suggesting large > scale changes in the GAP coding conventions. > > I see your point and I would happy to see the results of you > experiment. As a software developer myself I have to deal with these > problems every day. In this particular case of GAP and these short > names I would definitely vote for GAP's current approach. In a > computer algebra context I see no possibility of misunderstanding > 'IsRat', as opposed to a Zoo management software. On the other hand > code lines are shorter which is another big factor in readability. Of > course, I would like to emphasize, that this is only my personal > opinion. > > best wishes, > attila > > On Sat, Feb 25, 2012 at 10:34 AM, kroeker wrote: >> Dear Alexander, >> >> >> I suppose I cannot convince you via conventional arguing, that it is >> invaluable to use descriptive names >> like "IsRationalNumber". I think even citing papers from software >> engineering researchers may not help. >> >> >> Therefore I suggest following experiment: >> >> 1. choose a small piece of GAP code with moderate or extensive use of short >> variable names >> e.g. `IsInt', `IsPosInt', `IsCyc' 'isRat'. >> >> 2. Send me this piece of code and I will suggest more descriptive names. >> >> 3. copy a bunch of the printouts with the original code and the modified >> version. >> >> 4. -distribute the printouts among your friends and ask them which version >> they mostly like or >> -distribute the printouts among several GAP developers and ask them which >> printout version is more readable. >> >> Independently of the result I will invite you for lunch if you accomplish >> this experiment. Do you accept? >> >> >> Best regards, >> >> >> Jakob >> >> >> P.S. if somebody ever had to maintain or review third party source code, he >> will probably know >> the importance of code readability. Speaking names also reduces the barrier >> to learn a new >> (CAS) language. >> >> >> Am 23.02.2012 21:39, schrieb Alexander Konovalov: >> >>> Dear Jakob, >>> >>> On 23 Feb 2012, at 13:55, kroeker wrote: >>> >>>> Dear Alexander, dear GAP forum, >>>> >>>> >>>> it is ok to have short names but also consider that in software >>>> engineering it is known >>>> that variable and function names should be as descriptive as possible >>>> (and at the same time not too long of course). >>> In this case then 'IsPosRat' is certainly more descriptive than 'IsPR', >>> and, moreover, it naturally follows GAP naming conventions for some >>> central categories of objects. >>> >>>> My intention is not to customize my personal use but to improve the >>>> usability and code readability for everybody. >>>> So I can't see any serious arguments against introducing the synonym >>>> "IsRationalNumber" for now. >>> There is a guidance in the GAP manual about using synonyms, which says: >>> >>> ---- >>> Two typical intended usages are to declare an "and-filter", e.g. >>> >>> DeclareSynonym( "IsGroup", IsMagmaWithInverses and IsAssociative ); >>> >>> and to provide a previously declared global function with an alternative >>> name, e.g. >>> >>> DeclareGlobalFunction( "SizeOfSomething" ); >>> DeclareSynonym( "OrderOfSomething", SizeOfSomething ); >>> >>> Note: Before using DeclareSynonym in the way of this second example, one >>> should >>> determine whether the synonym is really needed. Perhaps an extra index >>> entry in >>> the documentation would be sufficient. >>> ---- >>> >>> From this, I don't think that there are any serious arguments in favour >>> of the >>> synonym IsRationalNumber for IsRat. It's really easy to find the meaning >>> of >>> IsRat using the help system, and if one searches for rationals in the >>> documentation, then IsRat comes in the next manual section. You may grep >>> the >>> GAP library code to see actual examples when it is used in the library - >>> in >>> most cases there are much more grounds to introduce synonyms there. >>> >>> Best, >>> Alexander >>> >>>> Am 22.02.2012 23:13, schrieb Alexander Konovalov: >>>>> Dear Jakob, dear GAP Forum, >>>>> >>>>> On 21 Feb 2012, at 19:04, kroeker wrote: >>>>> >>>>>> Dear GAP-developers, >>>>>> >>>>>> I do not really like the function name "IsRat" for the check if an >>>>>> object is a rational number >>>>>> and suggest to introduce the synonym "IsRationalNumber" : >>>>>> DeclareSynonym("IsRationalNumber",IsRat); >>>>>> >>>>>> What is your opinion? >>>>>> >>>>>> Jakob >>>>> GAP as a number of short names for such common categories like e.g. >>>>> `IsInt', `IsPosInt', `IsCyc', >>>>> `IsBool', `IsFFE', `IsChar', `IsPerm' etc., so to my mind `IsRat' fits >>>>> this naming scheme quite >>>>> well. These are used in many method installations and having compact >>>>> names is quite handy. >>>>> >>>>> The page http://www.gap-system.org/Faq/Usage/usage1.html explains how to >>>>> customise GAP using the >>>>> .gaprc file, so if you prefer this synonym for your personal use, you >>>>> may add this line there. >>>>> Of course, any code using it will not work without this declaration. >>>>> >>>>> Best wishes, >>>>> Alexander >>>> _______________________________________________ >>>> Forum mailing list >>>> Forum at mail.gap-system.org >>>> http://mail.gap-system.org/mailman/listinfo/forum >>> >>> -- >>> Dr. Alexander Konovalov School of Computer Science >>> & Centre for Interdisciplinary Research in Computational Algebra >>> University of St Andrews Tel +44/0 (1334) 461633 >>> http://www.cs.st-andrews.ac.uk/~alexk Fax +44/0 (1334) 463278 >>> The University of St Andrews is a charity registered in >>> Scotland:No.SC013532 >>> >>> >>> >>> >>> >>> >>> >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum From krkini at ntu.edu.sg Sat Feb 25 02:30:08 2012 From: krkini at ntu.edu.sg (Keshav Rao Kini) Date: Sat, 25 Feb 2012 10:30:08 +0800 Subject: [GAP Forum] "IsRationalNumber" as synonym for "IsRat" In-Reply-To: References: <4F464545.6050402@uni-math.gwdg.de> <69EDBCD8-CE83-4847-8A62-E679AB59E607@mcs.st-andrews.ac.uk> <4F481EA3.10500@uni-math.gwdg.de> Message-ID: On Sat, Feb 25, 2012 at 08:16, Attila Egri-Nagy wrote: > In a > computer algebra context I see no possibility of misunderstanding > 'IsRat', as opposed to a Zoo management software. I would point out that this does not address discoverability, i.e. new users of GAP would not just guess that there is a function called "IsRat". They would probably try "IsRational" first, because this is more canonical than an abbreviation. Of course, you may respond that they should RTFM, which is probably true :) -Keshav CONFIDENTIALITY: This email is intended solely for the person(s) named and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Towards A Sustainable Earth: Print Only When Necessary. Thank you. From dima at ntu.edu.sg Sat Feb 25 06:13:26 2012 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Sat, 25 Feb 2012 06:13:26 +0000 Subject: [GAP Forum] "IsRationalNumber" as synonym for "IsRat" In-Reply-To: References: <4F464545.6050402@uni-math.gwdg.de> <69EDBCD8-CE83-4847-8A62-E679AB59E607@mcs.st-andrews.ac.uk> <4F481EA3.10500@uni-math.gwdg.de> Message-ID: Dear all, it seems to me that functions like IsRat, etc are an artefact of very old GAP versions, which lacked proper typing (I guess --- I started using GAP almost 20 years ago, and I don't recall such details). Instead of calling IsRat(x), one nowadays is better served by containment predicate like x in Rationals IMHO GAP should deprecate all these IsRat, IsInteger, etc, in favour of such containment predicates. As far as synonyms IsRational for IsRat, etc, are concerned, I cannot but point out that the design of GAP has evolved from using very long function names to shorter and shorter. It seems that the present generation of GAP developers favours shorter names. Best, Dima On 25 February 2012 02:30, Keshav Rao Kini wrote: > On Sat, Feb 25, 2012 at 08:16, Attila Egri-Nagy wrote: >> In a >> computer algebra context I see no possibility of misunderstanding >> 'IsRat', as opposed to a Zoo management software. > > I would point out that this does not address discoverability, i.e. new > users of GAP would not just guess that there is a function called > "IsRat". They would probably try "IsRational" first, because this is > more canonical than an abbreviation. Of course, you may respond that > they should RTFM, which is probably true :) > > -Keshav > > CONFIDENTIALITY: This email is intended solely for the person(s) named and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. > > Towards A Sustainable Earth: Print Only When Necessary. Thank you. > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From alexk at mcs.st-andrews.ac.uk Sat Feb 25 09:44:28 2012 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Sat, 25 Feb 2012 09:44:28 +0000 Subject: [GAP Forum] "IsRationalNumber" as synonym for "IsRat" In-Reply-To: References: <4F464545.6050402@uni-math.gwdg.de> <69EDBCD8-CE83-4847-8A62-E679AB59E607@mcs.st-andrews.ac.uk> <4F481EA3.10500@uni-math.gwdg.de> Message-ID: <9A717E7C-2823-4121-B3E1-AA9A73F13AA8@mcs.st-andrews.ac.uk> On 25 Feb 2012, at 06:13, Asst. Prof. Dmitrii (Dima) Pasechnik wrote: > Dear all, > > it seems to me that functions like IsRat, etc are an artefact of very > old GAP versions, which lacked proper typing (I guess --- I started > using GAP almost 20 years ago, and I don't recall such details). > Instead of calling IsRat(x), one nowadays is better served by > containment predicate like > x in Rationals Just to warn the Forum that internally this results in different things so in the long run the performance may be not the same: gap> for i in [1..10000000] do t := IsRat(42); od; time; 623 gap> for i in [1..10000000] do t := 42 in Rationals; od; time; 1861 though on a few calls the difference is unnoticeable. Best, Alexander From frank.luebeck at math.rwth-aachen.de Sat Feb 25 12:40:12 2012 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Sat, 25 Feb 2012 13:40:12 +0100 Subject: [GAP Forum] Extra-special group acting on an elementary abelian group In-Reply-To: References: Message-ID: <20120225124012.GC19067@beteigeuze.math.rwth-aachen.de> On Fri, Feb 24, 2012 at 04:39:04PM -0600, Goodson, Joshua E wrote: > Dear Forum, > > I wanted to thank everyone for there wonderful suggestions. I am afraid I forgot to mention > that when I count the orbits I also wish to count the orbits of any particular size. For example, > I would want to count the number of regular orbits. My apologies for not mentioning that before. > Will these methods allow me to count orbits of any size. > > Thank you and again I apologize for my lack of specificity. > > ~Joshua Goodson Dear Joshua Goodson, dear Forum, Finding the multiplicities of the orbit lengths seems much more difficult. But your particular example is not so big, the vector space GF(7)^9 has only about 40 million vectors. Below I append some lines to the code from my last mail that computes what you want in a few minutes while GAPs memory consumption stays small. Use GAP's help system to understand what the code does. Note that the code from my last mail to find the total number of orbits using the character table also works for considerably larger groups and vector spaces (which is not true for the new code below). With best regards, Frank L?beck # we already had this part to find the total number of orbits: g := ExtraspecialGroup(3^5,'+'); r := IrreducibleRepresentations(g,GF(7));; List(r, h-> DimensionOfMatrixGroup(Image(h))); g1 := Image(r[1]); one := One(g1); numorbs := 1/Size(g1) * Sum(ConjugacyClasses(g1), c-> Size(c) * 7^(9-RankMat(Representative(c)-one))); # now we find the orbits with explicit enumeration, but with some bookkeeping # such that we never have more than about |g| vectors in memory vsp := GF(7)^9; enum := Enumerator(vsp); found := BlistList([1..Size(vsp)], []);; sizes := 0*[1..Size(g1)];; for i in [1..Size(vsp)] do if not found[i] then orb := Orbit(g1, enum[i]); for v in orb do found[NumberFFVector(v,7)+1] := true; od; sizes[Length(orb)] := sizes[Length(orb)] + 1; fi; # show progress and stop when numorb orbits were found if i mod 100000 = 0 then if Sum(sizes) = numorbs then break; fi; Print(i/100000, " (",Sum(sizes),") \c"); fi; od; # result, numbers of orbits of size 1, 3, 9, 27, 81, 243 sizes{List([0..5],i->3^i)}; ## PS: The result is ## '+' case: [ 1, 0, 0, 80, 400, 165922 ] ## '-' case: [ 1, 0, 0, 8, 154, 166012 ] -- /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck at Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From frank.luebeck at math.rwth-aachen.de Sat Feb 25 12:56:59 2012 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Sat, 25 Feb 2012 13:56:59 +0100 Subject: [GAP Forum] function search feature In-Reply-To: <4F481716.8030806@uni-math.gwdg.de> References: <4F0ABA91.9070105@uni-math.gwdg.de> <20120223220707.GA29752@beteigeuze.math.rwth-aachen.de> <4F481716.8030806@uni-math.gwdg.de> Message-ID: <20120225125659.GD19067@beteigeuze.math.rwth-aachen.de> On Sat, Feb 25, 2012 at 12:02:46AM +0100, kroeker wrote: > Hello Frank, > > thanks, "AllOperations" comes already very close to my needs. > Maybe you could also give me an advice, how to find > all filters which are applicable to an object: > > "IsEmpty" is not applicable to an int and therefore > "obj:=5; for each filter in FILTERS do filter(obj); od;" > fails with an error. > > Thank you, > Jakob Dear Jakob, dear Forum, You need to divide FILTERS in two subsets. (There are some filters, e.g. created by NewCategory, which don't occur in OPERATIONS because no methods should be installed for them.) f1 := Filtered(FILTERS, f-> f in OPERATIONS);; f2 := Filtered(FILTERS, f-> not f in OPERATIONS);; obj:=5;; for filter in f2 do filter(obj); od; So, the filters in f2 are always applicable, those in f1 can be handled by the code from AllOperations for one argument methods. BTW: f1 contains many Tester filters, the restriction to "documented operations" in AllOperations avoids that almost all of them occur in the result of AllOperations for most objects. Hope this helps, Frank -- /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck at Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From jg1356 at txstate.edu Tue Feb 28 04:57:04 2012 From: jg1356 at txstate.edu (Goodson, Joshua E) Date: Mon, 27 Feb 2012 22:57:04 -0600 Subject: [GAP Forum] Extra-special group acting on an elementary abelian group In-Reply-To: <20120225124012.GC19067@beteigeuze.math.rwth-aachen.de> References: , <20120225124012.GC19067@beteigeuze.math.rwth-aachen.de> Message-ID: Dear Dr. Frank L?beck, dear forum, Thank you for your time and your help. Your suggestions and code helped immensely. Sincerely, Joshua Goodson ________________________________________ From: Frank L?beck [frank.luebeck at math.rwth-aachen.de] Sent: Saturday, February 25, 2012 6:40 AM To: Goodson, Joshua E Cc: forum at mail.gap-system.org Subject: Re: [GAP Forum] Extra-special group acting on an elementary abelian group On Fri, Feb 24, 2012 at 04:39:04PM -0600, Goodson, Joshua E wrote: > Dear Forum, > > I wanted to thank everyone for there wonderful suggestions. I am afraid I forgot to mention > that when I count the orbits I also wish to count the orbits of any particular size. For example, > I would want to count the number of regular orbits. My apologies for not mentioning that before. > Will these methods allow me to count orbits of any size. > > Thank you and again I apologize for my lack of specificity. > > ~Joshua Goodson Dear Joshua Goodson, dear Forum, Finding the multiplicities of the orbit lengths seems much more difficult. But your particular example is not so big, the vector space GF(7)^9 has only about 40 million vectors. Below I append some lines to the code from my last mail that computes what you want in a few minutes while GAPs memory consumption stays small. Use GAP's help system to understand what the code does. Note that the code from my last mail to find the total number of orbits using the character table also works for considerably larger groups and vector spaces (which is not true for the new code below). With best regards, Frank L?beck # we already had this part to find the total number of orbits: g := ExtraspecialGroup(3^5,'+'); r := IrreducibleRepresentations(g,GF(7));; List(r, h-> DimensionOfMatrixGroup(Image(h))); g1 := Image(r[1]); one := One(g1); numorbs := 1/Size(g1) * Sum(ConjugacyClasses(g1), c-> Size(c) * 7^(9-RankMat(Representative(c)-one))); # now we find the orbits with explicit enumeration, but with some bookkeeping # such that we never have more than about |g| vectors in memory vsp := GF(7)^9; enum := Enumerator(vsp); found := BlistList([1..Size(vsp)], []);; sizes := 0*[1..Size(g1)];; for i in [1..Size(vsp)] do if not found[i] then orb := Orbit(g1, enum[i]); for v in orb do found[NumberFFVector(v,7)+1] := true; od; sizes[Length(orb)] := sizes[Length(orb)] + 1; fi; # show progress and stop when numorb orbits were found if i mod 100000 = 0 then if Sum(sizes) = numorbs then break; fi; Print(i/100000, " (",Sum(sizes),") \c"); fi; od; # result, numbers of orbits of size 1, 3, 9, 27, 81, 243 sizes{List([0..5],i->3^i)}; ## PS: The result is ## '+' case: [ 1, 0, 0, 80, 400, 165922 ] ## '-' case: [ 1, 0, 0, 8, 154, 166012 ] -- /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck at Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From kroeker at uni-math.gwdg.de Fri Mar 2 17:43:37 2012 From: kroeker at uni-math.gwdg.de (kroeker) Date: Fri, 02 Mar 2012 18:43:37 +0100 Subject: [GAP Forum] protecting variables ( MakeImmutable ) Message-ID: <4F5106C9.5090106@uni-math.gwdg.de> Dear GAP-Forum, I am a little bit confused about protecting variables. Is it possible in all cases, and if not, will this be possible in future versions of GAP? For example, I failed to protect a 'Property': ###################################### exampleRec := rec(); exampleRec.IsShape := NewProperty("IsShape",IsObject); InstallMethod(exampleRec.IsShape , "" ,[IsObject], function(obj) return false; end ); exampleRec.IsShape := MakeImmutable(exampleRec.IsShape); exampleRec := MakeImmutable(exampleRec); IsMutable(exampleRec); IsMutable(exampleRec.IsShape); InstallMethod(exampleRec.IsShape , "" ,[IsObject], function(obj) return true; end ); # I would expect an error , but there is none! exampleRec.IsShape(4); ###################################### My second question is, how to define local constants? For example, I would like to protect 'constantInt': ###################################### local constantInt; constantInt := 5; # how to protect constantInt? ###################################### Thanks, Jakob From dalamaidhs at gmail.com Thu Mar 8 04:43:40 2012 From: dalamaidhs at gmail.com (Stefanos Dalamaidhs) Date: Thu, 8 Mar 2012 04:43:40 +0000 Subject: [GAP Forum] Checking which subgroups commute Message-ID: Dear Forum, I would like to write a short code to do the following task:for any two subgroups of a group G, check whether their product is a subgroup of G and count their number. A failed attempt was: G:=AlternatingGroup(4); Alt( [ 1 .. 4 ] ) L:=LatticeSubgroups(G); count:=0; for H in L do; for K in L do; if IsSubgroup(G,HK) then count:=count+1; fi; od; od; 0 Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `Enumerator' on 1 arguments I would be obliged for any help. Thanks, J. From vipul at math.uchicago.edu Thu Mar 8 05:07:53 2012 From: vipul at math.uchicago.edu (Vipul Naik) Date: Wed, 7 Mar 2012 23:07:53 -0600 Subject: [GAP Forum] Checking which subgroups commute In-Reply-To: References: Message-ID: <20120308050753.GC9266@math.uchicago.edu> There are two problems with your code. The first is that LatticeSubgroups is not the set of subgroups but a different kind of structure. If you want to access all the subgroups, you should use the function Subgroups. This requires the SONATA package or some other equivalent package -- you can load that using LoadPackage("sonata");. The problem is that GAP doesn't understand "HK" to be the product of H and K but rather thinks that that is a new variable. Copy and paste this code in the GAP interface (or put it in a file and read the file through GAP): LoadPackage("sonata"); ProductOfSubsets := function(A,B) local a,b,L; L := []; for a in Set(A) do for b in Set(B) do Add(L,Product([a,b])); od; od; return Set(L); end;; PermutingSubsets := function(H,K) return(ProductOfSubsets(H,K) = ProductOfSubsets(K,H)); end;; NumberOfPermutingSubgroupPairs := function(G) local S,F; S := Subgroups(G); F := Filtered(Cartesian(S,S), x -> PermutingSubsets(x[1],x[2]));; return Length(F); end;; end of code Now you can do: NumberOfPermutingSubgroupPairs(AlternatingGroup(4)); The answer in this case seems to be 64, for what it's worth. * Quoting Stefanos Dalamaidhs who at 2012-03-08 04:43:40+0000 (Thu) wrote > Dear Forum, > > I would like to write a short code to do the following task:for any two > subgroups of a group G, check whether their product is a subgroup of G and > count their number. A failed attempt was: > > G:=AlternatingGroup(4); > Alt( [ 1 .. 4 ] ) > > L:=LatticeSubgroups(G); > > count:=0; > > for H in L do; > for K in L do; > if IsSubgroup(G,HK) then count:=count+1; > > fi; > od; > od; > 0 > Error, no method found! For debugging hints type ?Recovery from > NoMethodFound > Error, no 1st choice method found for `Enumerator' on 1 arguments > > I would be obliged for any help. > > Thanks, > J. > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From burkhard at hoefling.name Thu Mar 8 07:38:59 2012 From: burkhard at hoefling.name (=?iso-8859-1?Q?Burkhard_H=F6fling?=) Date: Thu, 8 Mar 2012 08:38:59 +0100 Subject: [GAP Forum] Checking which subgroups commute In-Reply-To: <20120308050753.GC9266@math.uchicago.edu> References: <20120308050753.GC9266@math.uchicago.edu> Message-ID: <60EB70C8-936B-4DEE-AAE5-7C92BEF702A5@hoefling.name> On 2012-03-08, at 06:07 , Vipul Naik wrote: > There are two problems with your code. > > The first is that LatticeSubgroups is not the set of subgroups but a > different kind of structure. If you want to access all the subgroups, > you should use the function Subgroups. This requires the SONATA > package or some other equivalent package -- you can load that using > LoadPackage("sonata");. A simpler solution (avoiding the use of Sonata) would be to use Flat (List (ConjugacyClassesSubgroups (G), Elements)) to compute a list of subgroups of the group G. > The problem is that GAP doesn't understand "HK" to be the product of H > and K but rather thinks that that is a new variable. Computing and comparing the sets H*K and K*H works for small groups, but in general, it is much more efficient to check if | | ? | H cap K | = |H| |K|, or, in GAP code, PermutingSubgroups := function(H,K) return Size (ClosureGroup (H, K)) * Size (Intersection (H, K)) = Size(H)*Size(K); end; Cheers Burkhard. From sandeepr.murthy at gmail.com Thu Mar 8 08:24:53 2012 From: sandeepr.murthy at gmail.com (Sandeep Murthy) Date: Thu, 8 Mar 2012 08:24:53 +0000 Subject: [GAP Forum] Checking which subgroups commute In-Reply-To: <20120308050753.GC9266@math.uchicago.edu> References: <20120308050753.GC9266@math.uchicago.edu> Message-ID: <47C0AE5B-2FD5-483E-A93C-DAEF21CE903C@gmail.com> Dear Forum. It seems that Vipul's code double counts permuting subgroup pairs, since if the pair (S,T) is permuting, then so is (T,S). In G := AlternatingGroup( 4 ), which has 10 subgroups, there is a normal subgroup <(1,3)(2,4), (1,2)(3,4)> of index 3, which will permute with every subgroup. So Vipul's code will count the pair <(2,4,3)>, <(1,3)(2,4), (1,2)(3,4)>, as well as the pair <(1,3)(2,4), (1,2)(3,4)>, <(2,4,3)>, which are the same. Also, there are some trivial pairs, such as (S,S), or (S,{1}), or (S,G) which you may not want to consider. I think the following code will count all the nontrivial, distinct pairs of permuting subgroups of a given group G. (I've also used Burkhard H?fling's permuting subgroups function.) ------------------------------------------------------------------------------------------------------------------------ PermutingSubgroups := function( H, K ) return Size ( ClosureGroup ( H, K ) ) * Size ( Intersection ( H, K ) ) = Size( H ) * Size( K ); end; DistinctNontrivialPermutingSubgroupPairs := function( G ) local subs, len, num; subs := Flat( List( ConjugacyClassesSubgroups( G ), Elements ) ); len := Length( subs ); Print( "\n(", len, " subgroups) pairs are: " ); num := 0; for i in [2..len-1] do for j in [i+1..len-1] do if ( i < j ) then if ( PermutingSubgroups( subs[i], subs[j] ) ) then Print( "\nsubs[", i, "]: ", subs[i], ", subs[", j, "]: ", subs[j] ); num := num + 1; fi; fi; od; od; Print( "\n\n", num, " pairs " ); return num; end; ------------------------------------------------------------------------------------------------------------------------ The output for G := AlternatingGroup( 4 ) is: ------------------------------------------------------------------------------------------------------------------------ G has 10 subgroups. subs[2]: Group( [ (1,2)(3,4) ] ), subs[3]: Group( [ (1,3)(2,4) ] ) subs[2]: Group( [ (1,2)(3,4) ] ), subs[4]: Group( [ (1,4)(2,3) ] ) subs[2]: Group( [ (1,2)(3,4) ] ), subs[9]: Group( [ (1,3)(2,4), (1,2)(3,4) ] ) subs[3]: Group( [ (1,3)(2,4) ] ), subs[4]: Group( [ (1,4)(2,3) ] ) subs[3]: Group( [ (1,3)(2,4) ] ), subs[9]: Group( [ (1,3)(2,4), (1,2)(3,4) ] ) subs[4]: Group( [ (1,4)(2,3) ] ), subs[9]: Group( [ (1,3)(2,4), (1,2)(3,4) ] ) subs[5]: Group( [ (2,4,3) ] ), subs[9]: Group( [ (1,3)(2,4), (1,2)(3,4) ] ) subs[6]: Group( [ (1,2,3) ] ), subs[9]: Group( [ (1,3)(2,4), (1,2)(3,4) ] ) subs[7]: Group( [ (1,4,2) ] ), subs[9]: Group( [ (1,3)(2,4), (1,2)(3,4) ] ) subs[8]: Group( [ (1,3,4) ] ), subs[9]: Group( [ (1,3)(2,4), (1,2)(3,4) ] ) 10 distinct, nontrivial pairs of permuting subgroups. 10 ------------------------------------------------------------------------------------------------------------------------ Sincerely, Sandeep. On 8 Mar 2012, at 05:07, Vipul Naik wrote: > There are two problems with your code. > > The first is that LatticeSubgroups is not the set of subgroups but a > different kind of structure. If you want to access all the subgroups, > you should use the function Subgroups. This requires the SONATA > package or some other equivalent package -- you can load that using > LoadPackage("sonata");. > > The problem is that GAP doesn't understand "HK" to be the product of H > and K but rather thinks that that is a new variable. > > Copy and paste this code in the GAP interface (or put it in a file and > read the file through GAP): > > LoadPackage("sonata"); > > ProductOfSubsets := function(A,B) > local a,b,L; > L := []; > for a in Set(A) do > for b in Set(B) do > Add(L,Product([a,b])); > od; > od; > return Set(L); > end;; > > PermutingSubsets := function(H,K) > return(ProductOfSubsets(H,K) = ProductOfSubsets(K,H)); > end;; > > NumberOfPermutingSubgroupPairs := function(G) > local S,F; > S := Subgroups(G); > F := Filtered(Cartesian(S,S), x -> PermutingSubsets(x[1],x[2]));; > return Length(F); > end;; > > end of code > Now you can do: > > NumberOfPermutingSubgroupPairs(AlternatingGroup(4)); > > > The answer in this case seems to be 64, for what it's worth. > > * Quoting Stefanos Dalamaidhs who at 2012-03-08 04:43:40+0000 (Thu) wrote >> Dear Forum, >> >> I would like to write a short code to do the following task:for any two >> subgroups of a group G, check whether their product is a subgroup of G and >> count their number. A failed attempt was: >> >> G:=AlternatingGroup(4); >> Alt( [ 1 .. 4 ] ) >> >> L:=LatticeSubgroups(G); >> >> count:=0; >> >> for H in L do; >> for K in L do; >> if IsSubgroup(G,HK) then count:=count+1; >> >> fi; >> od; >> od; >> 0 >> Error, no method found! For debugging hints type ?Recovery from >> NoMethodFound >> Error, no 1st choice method found for `Enumerator' on 1 arguments >> >> I would be obliged for any help. >> >> Thanks, >> J. >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From sal at cs.st-andrews.ac.uk Thu Mar 8 18:18:06 2012 From: sal at cs.st-andrews.ac.uk (Stephen Linton) Date: Thu, 8 Mar 2012 18:18:06 +0000 Subject: [GAP Forum] [GAP Support] protecting variables ( MakeImmutable ) In-Reply-To: <36a3895482a543078f8d8c8d59462bb4@UOS-DUN-CAS4.st-andrews.ac.uk> References: <36a3895482a543078f8d8c8d59462bb4@UOS-DUN-CAS4.st-andrews.ac.uk> Message-ID: <89931BB4-7318-4E59-8C89-53EABBED21F6@cs.st-andrews.ac.uk> Dear Jakob, Dear GAP Forum, Apologies for the slow response. I think you have confused MakeImmutable with MakeReadOnlyGlobal. MakeImmutable is used to make an OBJECT (and its subobjects) immutable, so that one can be sure that its mathematical value will not change. A simple example is: gap> l := [1,2,3];; gap> MakeImmutable(l); [ 1, 2, 3 ] gap> l[2] := 4; Error, Lists Assignment: must be a mutable list not in any function at line 3 of *stdin* you can 'return;' and ignore the assignment brk> gap> l := "foo"; "foo" In this example the list created on the first line is later made immutable, but the variable l remains writable. Functions, operations, properties, etc. are all immutable already, so MakeImmutable does nothing to them. MakeReadOnlyGlobal makes a global VARIABLE read-only. gap> x := 3; 3 gap> MakeReadOnlyGlobal("x"); gap> x := 2; Error, Variable: 'x' is read only not in any function at line 6 of *stdin* you can 'return;' after making it writable brk> This has no effect on the object referred to by the variable, as seen in: gap> y := rec(a := 1); rec( a := 1 ) gap> MakeReadOnlyGlobal("y"); gap> y.a := 2; gap> y; rec( a := 2 ) While I am not sure exactly what the reasoning behind your example is, there is no way to "lock" an operation so that further methods for it cannot be installed. I can see no need for such a feature, and lots of ways in which it would cause problems, such as interference between packages. Finally, you ask about local constants. There is no way in GAP to make local variable read-only, but since its scope is limited to a single function, it is usually pretty easy to avoid simply avoid assigning to it. Adding such a feature would either greatly complicate the parser, or slow down local variable access at run-time, and neither of these seems desirable. Steve Linton On 2 Mar 2012, at 17:43, kroeker wrote: > Dear GAP-Forum, > > > I am a little bit confused about protecting variables. > Is it possible in all cases, and if not, will this be possible in future > versions of GAP? > > For example, I failed to protect a 'Property': > > > ###################################### > exampleRec := rec(); > exampleRec.IsShape := NewProperty("IsShape",IsObject); > InstallMethod(exampleRec.IsShape , "" ,[IsObject], > function(obj) > return false; > end > ); > > exampleRec.IsShape := MakeImmutable(exampleRec.IsShape); > exampleRec := MakeImmutable(exampleRec); > > IsMutable(exampleRec); > IsMutable(exampleRec.IsShape); > > InstallMethod(exampleRec.IsShape , "" ,[IsObject], > function(obj) > return true; > end > ); > # I would expect an error , but there is none! > > exampleRec.IsShape(4); > ###################################### > > > My second question is, how to define local constants? > For example, I would like to protect 'constantInt': > > ###################################### > local constantInt; > constantInt := 5; > # how to protect constantInt? > ###################################### > > > Thanks, > > > Jakob > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum _______________________________________________ Support mailing list Support at gap-system.org http://mail.gap-system.org/mailman/listinfo/support From kroeker at uni-math.gwdg.de Fri Mar 9 14:52:51 2012 From: kroeker at uni-math.gwdg.de (kroeker) Date: Fri, 09 Mar 2012 15:52:51 +0100 Subject: [GAP Forum] [GAP Support] protecting variables ( MakeImmutable ) In-Reply-To: <89931BB4-7318-4E59-8C89-53EABBED21F6@cs.st-andrews.ac.uk> References: <36a3895482a543078f8d8c8d59462bb4@UOS-DUN-CAS4.st-andrews.ac.uk> <89931BB4-7318-4E59-8C89-53EABBED21F6@cs.st-andrews.ac.uk> Message-ID: <4F5A1943.3080808@uni-math.gwdg.de> Dear Steve, thanks for you answer! >Apologies for the slow response. no problem! >I think you have confused 'MakeImmutable' with 'MakeReadOnlyGlobal'. Oh, that was the case... thanks for clarifying! > there is no way to "lock" an operation, [..] it would also cause problems Let for now assume that it is not necessary to lock operations. Then in my opinion a user should get at least a warning that locking is not possible when trying it. By the way, It shouldn't be possible to lock existing read-only operations, so it is not obvious to me that locking an operation would cause problems a priori. It also seems that other functionality in GAP has similar behaviour which is unusual from my point of view: actions fail without a warning, e.g. calling an attribute setter twice with different values (the second call has no effect) I asked for local constants, because a language should support the user to write correct code (and at the same time not to sacrifice performance too much). Since this would result in a performance penalty, it's probably ok to go without read-only locals, but code reviewing and testing is even more important then. Best, Jakob Am 08.03.2012 19:18, schrieb Stephen Linton: > Dear Jakob, Dear GAP Forum, > > Apologies for the slow response. > I think you have confused MakeImmutable with MakeReadOnlyGlobal. > > MakeImmutable is used to make an OBJECT (and its subobjects) immutable, so that one can be sure that its mathematical value will not change. > > A simple example is: > > gap> l := [1,2,3];; > gap> MakeImmutable(l); > [ 1, 2, 3 ] > gap> l[2] := 4; > Error, Lists Assignment: must be a mutable list > not in any function at line 3 of *stdin* > you can 'return;' and ignore the assignment > brk> > gap> l := "foo"; > "foo" > > In this example the list created on the first line is later made immutable, but the variable l remains writable. > Functions, operations, properties, etc. are all immutable already, so MakeImmutable does nothing to them. > > MakeReadOnlyGlobal makes a global VARIABLE read-only. > > gap> x := 3; > 3 > gap> MakeReadOnlyGlobal("x"); > gap> x := 2; > Error, Variable: 'x' is read only > not in any function at line 6 of *stdin* > you can 'return;' after making it writable > brk> > > This has no effect on the object referred to by the variable, as seen in: > > gap> y := rec(a := 1); > rec( a := 1 ) > gap> MakeReadOnlyGlobal("y"); > gap> y.a := 2; > gap> y; > rec( a := 2 ) > > > While I am not sure exactly what the reasoning behind your example is, there is no way to "lock" an operation so that further methods for it cannot be installed. > I can see no need for such a feature, and lots of ways in which it would cause problems, such as interference between packages. > > Finally, you ask about local constants. There is no way in GAP to make local variable read-only, but since its scope is limited to a single function, it is usually pretty easy to avoid simply avoid assigning to it. Adding such a feature would either greatly complicate the parser, or slow down local variable access at run-time, and neither of these seems desirable. > > > Steve Linton > > On 2 Mar 2012, at 17:43, kroeker wrote: > >> Dear GAP-Forum, >> >> >> I am a little bit confused about protecting variables. >> Is it possible in all cases, and if not, will this be possible in future >> versions of GAP? >> >> For example, I failed to protect a 'Property': >> >> >> ###################################### >> exampleRec := rec(); >> exampleRec.IsShape := NewProperty("IsShape",IsObject); >> InstallMethod(exampleRec.IsShape , "" ,[IsObject], >> function(obj) >> return false; >> end >> ); >> >> exampleRec.IsShape := MakeImmutable(exampleRec.IsShape); >> exampleRec := MakeImmutable(exampleRec); >> >> IsMutable(exampleRec); >> IsMutable(exampleRec.IsShape); >> >> InstallMethod(exampleRec.IsShape , "" ,[IsObject], >> function(obj) >> return true; >> end >> ); >> # I would expect an error , but there is none! >> >> exampleRec.IsShape(4); >> ###################################### >> >> >> My second question is, how to define local constants? >> For example, I would like to protect 'constantInt': >> >> ###################################### >> local constantInt; >> constantInt := 5; >> # how to protect constantInt? >> ###################################### >> >> >> Thanks, >> >> >> Jakob >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum > > _______________________________________________ > Support mailing list > Support at gap-system.org > http://mail.gap-system.org/mailman/listinfo/support From alexk at mcs.st-andrews.ac.uk Sat Mar 10 18:30:18 2012 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Sat, 10 Mar 2012 18:30:18 +0000 Subject: [GAP Forum] [GAP Support] protecting variables ( MakeImmutable ) In-Reply-To: <4F5A1943.3080808@uni-math.gwdg.de> References: <36a3895482a543078f8d8c8d59462bb4@UOS-DUN-CAS4.st-andrews.ac.uk> <89931BB4-7318-4E59-8C89-53EABBED21F6@cs.st-andrews.ac.uk> <4F5A1943.3080808@uni-math.gwdg.de> Message-ID: <04204000-1D10-40A2-9604-C4C68D561B00@mcs.st-andrews.ac.uk> Dear Jakob, On 9 Mar 2012, at 14:52, kroeker wrote: ... > > there is no way to "lock" an operation, [..] it would also cause problems > > Let for now assume that it is not necessary to lock operations. Then in my opinion a user should get at least a warning that locking is not possible when trying it. > By the way, It shouldn't be possible to lock existing read-only operations, so it is not obvious to me that locking an operation would cause problems a priori. > It also seems that other functionality in GAP has similar behaviour which is unusual from my point of view: > actions fail without a warning, e.g. calling an attribute setter twice with different values (the second call has no effect) GAP may be regarded as a problem-oriented language designed to be a platform for implementing mathematical (mostly discrete) algorithms, and it has rather unique object-oriented features invented to model mathematical objects: for example, objects that learn during their lifetime and change their type in the process, and dynamic polymorphism (that is, method selection based on current type of all arguments). So it's not surprising that from the beginning some of its features may seem unusual. There is a paper "The GAP 4 type system: organising algebraic algorithms" by Steve Linton and Thomas Breuer in ISSAC'98 proceedings available here: http://dl.acm.org/citation.cfm?id=281508.281540 which may give more details about the reasoning behind GAP design principles, in addition to the GAP manual. Best wishes, Alexander From shubh at iitg.ernet.in Tue Mar 13 11:13:51 2012 From: shubh at iitg.ernet.in (shubh at iitg.ernet.in) Date: Tue, 13 Mar 2012 16:43:51 +0530 Subject: [GAP Forum] Code for Right Factorisable Semigroup Message-ID: Dear Sir, Is there a code in GAP to check whether a semigroup is Right Factorisable or not. A semigroup S is right factorisable if S = EG for some subgroup G of S and E is the set of all idempotents in S. With Regards, \-Shubh -- Shubh N. Singh Research Scholar Department of Mathematics IIT Guwahati - 781039 Email: shubh at iitg.ernet.in Mob. no.: +91-9864221370 From kroeker at uni-math.gwdg.de Tue Mar 13 15:51:33 2012 From: kroeker at uni-math.gwdg.de (kroeker) Date: Tue, 13 Mar 2012 16:51:33 +0100 Subject: [GAP Forum] [GAP Support] protecting variables ( MakeImmutable ) In-Reply-To: <04204000-1D10-40A2-9604-C4C68D561B00@mcs.st-andrews.ac.uk> References: <36a3895482a543078f8d8c8d59462bb4@UOS-DUN-CAS4.st-andrews.ac.uk> <89931BB4-7318-4E59-8C89-53EABBED21F6@cs.st-andrews.ac.uk> <4F5A1943.3080808@uni-math.gwdg.de> <04204000-1D10-40A2-9604-C4C68D561B00@mcs.st-andrews.ac.uk> Message-ID: <4F5F6D05.3040004@uni-math.gwdg.de> Dear Alexander, thanks for the link again ! ( http://dl.acm.org/citation.cfm?id=281508.281540 ) Indeed it is not surprising that some features of GAP seem unusual. Just let us forget GAP for a moment and think in general about one of my previous questions: What positive or negative implications for a language e.g. 'python' would have a silently failed action? Is it worthwhile and possible to change the behaviour of the language or not? Best, Jakob ( ???? ) P.S. I'm posting some observations which seems unusual to me promptly, because as soon as I get adopted to GAP I wouldn't even notice. In general some implications of (historically grown) functionality are not automatically 'useful' or 'unfavourable', e.g. the financial system is evolved over time but I hope you agree that it also has some serious problems. Am 10.03.2012 19:30, schrieb Alexander Konovalov: > Dear Jakob, > > On 9 Mar 2012, at 14:52, kroeker wrote: > ... > >>> there is no way to "lock" an operation, [..] it would also cause problems >> Let for now assume that it is not necessary to lock operations. Then in my opinion a user should get at least a warning that locking is not possible when trying it. >> By the way, It shouldn't be possible to lock existing read-only operations, so it is not obvious to me that locking an operation would cause problems a priori. >> It also seems that other functionality in GAP has similar behaviour which is unusual from my point of view: >> actions fail without a warning, e.g. calling an attribute setter twice with different values (the second call has no effect) > GAP may be regarded as a problem-oriented language designed to be a platform for implementing mathematical (mostly discrete) algorithms, and it has rather unique object-oriented features invented to model mathematical objects: for example, objects that learn during their lifetime and change their type in the process, and dynamic polymorphism (that is, method selection based on current type of all arguments). So it's not surprising that from the beginning some of its features may seem unusual. > > There is a paper "The GAP 4 type system: organising algebraic algorithms" by Steve Linton and Thomas Breuer in ISSAC'98 proceedings available here: > > http://dl.acm.org/citation.cfm?id=281508.281540 > > which may give more details about the reasoning behind GAP design principles, in addition to the GAP manual. > > Best wishes, > Alexander > > From sal at cs.st-andrews.ac.uk Tue Mar 13 16:20:51 2012 From: sal at cs.st-andrews.ac.uk (Stephen Linton) Date: Tue, 13 Mar 2012 16:20:51 +0000 Subject: [GAP Forum] [GAP Support] protecting variables ( MakeImmutable ) In-Reply-To: References: <36a3895482a543078f8d8c8d59462bb4@UOS-DUN-CAS4.st-andrews.ac.uk> <89931BB4-7318-4E59-8C89-53EABBED21F6@cs.st-andrews.ac.uk> <4F5A1943.3080808@uni-math.gwdg.de> <04204000-1D10-40A2-9604-C4C68D561B00@mcs.st-andrews.ac.uk> Message-ID: <57A09B9B-BD54-409D-B876-750B96E1880E@cs.st-andrews.ac.uk> Jakob, Could we take this discussion onto the support list, please? I think it's become a bit too abstract to be of general interest for the forum. If any interesting ideas come up that are of wider interest, we can post a summary to the forum. Steve On 13 Mar 2012, at 15:51, kroeker wrote: > Dear Alexander, > > > thanks for the link again ! ( > http://dl.acm.org/citation.cfm?id=281508.281540 ) > > Indeed it is not surprising that some features of GAP seem unusual. > > Just let us forget GAP for a moment and think in general about one of my > previous questions: > What positive or negative implications for a language e.g. 'python' > would have a silently failed action? > Is it worthwhile and possible to change the behaviour of the language or > not? > > > > Best, > > > Jakob > ( ???? ) > > > P.S. I'm posting some observations which seems unusual to me promptly, > because as soon as I get adopted to GAP > I wouldn't even notice. In general some implications of (historically > grown) functionality are not automatically 'useful' or 'unfavourable', > e.g. the financial system is evolved over time but I hope you agree that > it also has some serious problems. > > > Am 10.03.2012 19:30, schrieb Alexander Konovalov: >> Dear Jakob, >> >> On 9 Mar 2012, at 14:52, kroeker wrote: >> ... >> >>>> there is no way to "lock" an operation, [..] it would also cause problems >>> Let for now assume that it is not necessary to lock operations. Then in my opinion a user should get at least a warning that locking is not possible when trying it. >>> By the way, It shouldn't be possible to lock existing read-only operations, so it is not obvious to me that locking an operation would cause problems a priori. >>> It also seems that other functionality in GAP has similar behaviour which is unusual from my point of view: >>> actions fail without a warning, e.g. calling an attribute setter twice with different values (the second call has no effect) >> GAP may be regarded as a problem-oriented language designed to be a platform for implementing mathematical (mostly discrete) algorithms, and it has rather unique object-oriented features invented to model mathematical objects: for example, objects that learn during their lifetime and change their type in the process, and dynamic polymorphism (that is, method selection based on current type of all arguments). So it's not surprising that from the beginning some of its features may seem unusual. >> >> There is a paper "The GAP 4 type system: organising algebraic algorithms" by Steve Linton and Thomas Breuer in ISSAC'98 proceedings available here: >> >> http://dl.acm.org/citation.cfm?id=281508.281540 >> >> which may give more details about the reasoning behind GAP design principles, in addition to the GAP manual. >> >> Best wishes, >> Alexander >> >> > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From mckay at encs.concordia.ca Tue Mar 13 16:39:18 2012 From: mckay at encs.concordia.ca (MCKAY john) Date: Tue, 13 Mar 2012 12:39:18 -0400 (EDT) Subject: [GAP Forum] [GAP Support] protecting variables ( MakeImmutable ) In-Reply-To: <57A09B9B-BD54-409D-B876-750B96E1880E@cs.st-andrews.ac.uk> References: <36a3895482a543078f8d8c8d59462bb4@UOS-DUN-CAS4.st-andrews.ac.uk> <89931BB4-7318-4E59-8C89-53EABBED21F6@cs.st-andrews.ac.uk> <4F5A1943.3080808@uni-math.gwdg.de> <04204000-1D10-40A2-9604-C4C68D561B00@mcs.st-andrews.ac.uk> <57A09B9B-BD54-409D-B876-750B96E1880E@cs.st-andrews.ac.uk> Message-ID: Why am I receiving this? Thanks, John McKay On Tue, 13 Mar 2012, Stephen Linton wrote: > Jakob, > > Could we take this discussion onto the support list, please? > I think it's become a bit too abstract to be of general interest for the forum. > If any interesting ideas come up that are of wider interest, we can post a summary to the forum. > > Steve > > > On 13 Mar 2012, at 15:51, kroeker wrote: > > > Dear Alexander, > > > > > > thanks for the link again ! ( > > http://dl.acm.org/citation.cfm?id=281508.281540 ) > > > > Indeed it is not surprising that some features of GAP seem unusual. > > > > Just let us forget GAP for a moment and think in general about one of my > > previous questions: > > What positive or negative implications for a language e.g. 'python' > > would have a silently failed action? > > Is it worthwhile and possible to change the behaviour of the language or > > not? > > > > > > > > Best, > > > > > > Jakob > > ( ???? ) > > > > > > P.S. I'm posting some observations which seems unusual to me promptly, > > because as soon as I get adopted to GAP > > I wouldn't even notice. In general some implications of (historically > > grown) functionality are not automatically 'useful' or 'unfavourable', > > e.g. the financial system is evolved over time but I hope you agree that > > it also has some serious problems. > > > > > > Am 10.03.2012 19:30, schrieb Alexander Konovalov: > >> Dear Jakob, > >> > >> On 9 Mar 2012, at 14:52, kroeker wrote: > >> ... > >> > >>>> there is no way to "lock" an operation, [..] it would also cause problems > >>> Let for now assume that it is not necessary to lock operations. Then in my opinion a user should get at least a warning that locking is not possible when trying it. > >>> By the way, It shouldn't be possible to lock existing read-only operations, so it is not obvious to me that locking an operation would cause problems a priori. > >>> It also seems that other functionality in GAP has similar behaviour which is unusual from my point of view: > >>> actions fail without a warning, e.g. calling an attribute setter twice with different values (the second call has no effect) > >> GAP may be regarded as a problem-oriented language designed to be a platform for implementing mathematical (mostly discrete) algorithms, and it has rather unique object-oriented features invented to model mathematical objects: for example, objects that learn during their lifetime and change their type in the process, and dynamic polymorphism (that is, method selection based on current type of all arguments). So it's not surprising that from the beginning some of its features may seem unusual. > >> > >> There is a paper "The GAP 4 type system: organising algebraic algorithms" by Steve Linton and Thomas Breuer in ISSAC'98 proceedings available here: > >> > >> http://dl.acm.org/citation.cfm?id=281508.281540 > >> > >> which may give more details about the reasoning behind GAP design principles, in addition to the GAP manual. > >> > >> Best wishes, > >> Alexander > >> > >> > > > > > > _______________________________________________ > > Forum mailing list > > Forum at mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From LindnerW at t-online.de Wed Mar 14 08:05:05 2012 From: LindnerW at t-online.de (Wolfgang Lindner) Date: Wed, 14 Mar 2012 09:05:05 +0100 Subject: [GAP Forum] arithmetic in C Message-ID: <01c201cd01b9$2c7d5040$6502a8c0@oemcomputer.Speedport_W_502V_Typ_A> dear group, I know how to calculate with Rationals, ZmodnZ, Integers etc. But I could not find infos in the help-index of GAP how to do calculations in the complex field C (I know about gaussionInteger). I would like to work in C[X] etc. regards Wolfgang From jdm3 at st-and.ac.uk Thu Mar 15 14:34:06 2012 From: jdm3 at st-and.ac.uk (James Mitchell) Date: Thu, 15 Mar 2012 14:34:06 +0000 Subject: [GAP Forum] (no subject) In-Reply-To: References: Message-ID: On 15 March 2012 10:06, James Mitchell wrote: > Dear Shubh, > > The answer to your question is yes and no. There is *no* function in GAP > named IsRightFactorisableSemigroup, so in this sense the answer is no. On > the other hand, it should be more or less straightforward for a given > example of a semigroup to determine whether or not it is right factorisable > by examining its structure in GAP. If you have the Citrus package loaded, > then you can do the following: > > gap> gens:=[ Transformation( [ 2, 6, 7, 2, 6, 1, 1, 5 ] ), > > Transformation( [ 3, 8, 1, 4, 5, 6, 7, 1 ] ), > > Transformation( [ 4, 3, 2, 7, 7, 6, 6, 5 ] ), > > Transformation( [ 7, 1, 7, 4, 2, 5, 6, 3 ] ) ];; > gap> s:=Monoid(gens); > > gap> GroupOfUnits(s); > Group(()) > gap> IsBand(s); > false > > which proves that this semigroup is not right factorisable. Another > example: > > gap> gens:=[Transformation([2,1,4,5,3,7,8,9,10,6]), > > Transformation([1,2,4,3,5,6,7,8,9,10]), > > Transformation([1,2,3,4,5,6,10,9,8,7]), > > Transformation([9,1,4,3,6,9,3,4,3,9])];; > gap> s:=Monoid(gens);; > gap> iter:=Iterator(s); > > gap> g:=GroupOfUnits(s);; > gap> e:=Idempotents(s);; > gap> NrIdempotents(s); > 13655 > gap> t:=Set(Flat(List(e, x-> x*Elements(g))));; > gap> Length(t); > 186726 > gap> Size(s); > 491558 > > Which shows that the monoid is also not right factorisable. > > I hope that that helps. > > Regards, > > James > > > From: "shubh at iitg.ernet.in" > > Subject: [GAP Forum] Code for Right Factorisable Semigroup > > Date: 13 March 2012 11:13:51 GMT > > To: "forum at gap-system.org" > > Cc: "forum-request at gap-system.org" > > > > Dear Sir, > > Is there a code in GAP to check whether a semigroup is Right Factorisable > > or not. > > > > A semigroup S is right factorisable if S = EG for some subgroup G of S > and > > E is the set of all idempotents in S. > > > > > > > > With Regards, > > \-Shubh > -- > James Mitchell > tinyurl.com/jdmitchell > > The University of St Andrews is a charity registered in Scotland : No > SC013532 > > > > > -- James Mitchell tinyurl.com/jdmitchell The University of St Andrews is a charity registered in Scotland : No SC013532 From williamdemeo at gmail.com Sun Mar 18 04:07:49 2012 From: williamdemeo at gmail.com (William DeMeo) Date: Sat, 17 Mar 2012 18:07:49 -1000 Subject: [GAP Forum] Is there a pdf version of the GAP manual with hyperrefs? Message-ID: Dear Forum, I realize there are both pdf and html versions of the GAP reference manual, which is great. I personally like using the pdf version, so I can search the whole manual for things. However, I find I am constantly moving around (manually) in the document, chasing cross references, and this can be somewhat time consuming. I think the manual would be significantly more useful if all the references were hyper-links. I looked at the tex file for the manual that's distributed with GAP, and I suspect that merely inserting a "\usepackage{hyperref}" and recompiling is wishful thinking. This seems to be a fairly complex document. Any suggestions? (By the way, I realize there is an combined html index of all the manuals and, after a few mouse clicks and scrolls, I can usually find what I want that way. However, imho, that's not as nice as reading the pdf manual and using -f to search for things, especially when I'm off-line!) Thanks! -William -- William J. DeMeo Ph.D. Candidate & Graduate Assistant Department of Mathematics University of Hawaii at Manoa phone: 808-298-4874 url: http://math.hawaii.edu/~williamdemeo From max at quendi.de Tue Mar 20 08:59:21 2012 From: max at quendi.de (Max Horn) Date: Tue, 20 Mar 2012 09:59:21 +0100 Subject: [GAP Forum] arithmetic in C In-Reply-To: <01c201cd01b9$2c7d5040$6502a8c0@oemcomputer.Speedport_W_502V_Typ_A> References: <01c201cd01b9$2c7d5040$6502a8c0@oemcomputer.Speedport_W_502V_Typ_A> Message-ID: Dear Wolfgang, I am not sure if you perhaps already got a private reply to your email. If not, maybe the following will help you. Am 14.03.2012 um 09:05 schrieb Wolfgang Lindner: > dear group, > > I know how to calculate with Rationals, ZmodnZ, Integers etc. > But I could not find infos in the help-index of GAP > how to do calculations in the complex field C > (I know about gaussionInteger). Short answer: Use "Cyclotomics" or one of its subfields. Make sure to read the GAP manual on them and on abelian number fields: The following might also be of interest: Long answer: It is essentially impossible to compute with the "full set" of complex numbers (or real numbers) on a computer; in particular, not every real (and hence not every complex) number is computable (see e.g. ). But for the vast majority of cases (at least in my personal experience), one doesn't really need the full set of real or complex numbers; rather, one only needs to deal with a few select numbers, such as "square root of 2" or "pi". GAP allows you to work with the former: One can construct abelian extension fields of the rational numbers in GAP, which all are subfields of the "field of cyclotomic numbers". So the following works: gap> Sqrt(-1); E(4) gap> Sqrt(2); E(8)-E(8)^3 However, this does not allow you to work with pi directly, as that lives in a transcendental extension. There are some tricks to deal with that to a certain extent. Note that pi and similar transcendentals seem not to be really necessary to do group theory, which is probably why they are not supported as such. > I would like to work in C[X] etc. gap> R:=PolynomialRing(Cyclotomics, "x"); Cyclotomics[x] gap> x:=R.1; x gap> f:=x^2-x+1; x^2-x+1 Cheers, Max From max at quendi.de Tue Mar 20 09:20:46 2012 From: max at quendi.de (Max Horn) Date: Tue, 20 Mar 2012 10:20:46 +0100 Subject: [GAP Forum] Is there a pdf version of the GAP manual with hyperrefs? In-Reply-To: References: Message-ID: Dear William, Am 18.03.2012 um 05:07 schrieb William DeMeo: > Dear Forum, > > I realize there are both pdf and html versions of the GAP reference > manual, which is great. I personally like using the pdf version, so I > can search the whole manual for things. However, I find I am > constantly moving around (manually) in the document, chasing cross > references, and this can be somewhat time consuming. I think the > manual would be significantly more useful if all the references were > hyper-links. Absolutely, and in the upcoming 4.5 release of GAP, this will be the case! Unfortunately, I am not aware of a similar thing for the GAP 4.4 manual, so you will have to wait a bit longer. Or you could try out the GAP 4.5 beta release from our homepage (but you may want to wait for the upcoming third beta). > > I looked at the tex file for the manual that's distributed with GAP, > and I suspect that merely inserting a "\usepackage{hyperref}" and > recompiling is wishful thinking. This seems to be a fairly complex > document. Since the GAP 4.4 documentation is not based on LaTeX but rather on (plain) TeX, using hyperref this way would not be possible anyway. Cheers, Max From laurent.bartholdi at gmail.com Tue Mar 20 09:39:38 2012 From: laurent.bartholdi at gmail.com (Laurent Bartholdi) Date: Tue, 20 Mar 2012 10:39:38 +0100 Subject: [GAP Forum] arithmetic in C In-Reply-To: <4F684DD8.3000203@uni-math.gwdg.de> References: <4F684DD8.3000203@uni-math.gwdg.de> Message-ID: Dear Wolfgang, I reply only now to your question because I'm not on the "forum" mailing list; it was kindly forwarded by Jakob. It's very tricky to work with complex numbers in pure algebra; GAP contains, since its latest release (4.5.2), support for floating-point approximations of complex numbers, which I assume is what you want. You'll have to compile the package "float", whose source is part of the distribution but requires its own configuration (the usual ./configure && make in .../pkg/float; hopefully the process works smoothly, but if something goes wrong please tell me). Then you can access floating-point complex numbers within GAP; a sample session is: gap> LoadPackage("float"); true gap> SetFloats(MPC,1000); # 1000 bits of precision gap> r := PolynomialRing(MPC_PSEUDOFIELD,1); # 1 indeterminate ?[z] gap> r.1^5-1; z^5-.1e1+.0e0i gap> RootsFloat(last); [ .309017e0+.951057e0?, -.809017e0+.587785e0?, -.809017e0-.587785e0?, .1e1-.989853e-301?, .309017e0-.951057e0? ] gap> last2^2; z^10+(-.2e1+.0e0i)*z^5+.1e1+.0e0i gap> On Tue, Mar 20, 2012 at 10:28 AM, kroeker wrote: > ** > > > -------- Original-Nachricht -------- Betreff: [GAP Forum] arithmetic in C Datum: > Wed, 14 Mar 2012 09:05:05 +0100 Von: Wolfgang Lindner > An: CC: > forum-request at gap-system.org > > dear group, > > I know how to calculate with Rationals, ZmodnZ, Integers etc. > But I could not find infos in the help-index of GAP > how to do calculations in the complex field C > (I know about gaussionInteger). > > I would like to work in C[X] etc. > > regards > Wolfgang > > > _______________________________________________ > Forum mailing listForum at mail.gap-system.orghttp://mail.gap-system.org/mailman/listinfo/forum > > -- Prof. Dr. Laurent Bartholdi \ laurent.bartholdigmailcom G.-A. Universit?t zu G?ttingen \ Phone: +49 551 39 7826 Bunsenstra?e 3-5 \ Secr: +49 551 39 7752 D-37073 G?ttingen, Germany \ Fax: +49 551 39 22674 From burkhard at hoefling.name Tue Mar 20 10:19:38 2012 From: burkhard at hoefling.name (=?iso-8859-1?Q?Burkhard_H=F6fling?=) Date: Tue, 20 Mar 2012 11:19:38 +0100 Subject: [GAP Forum] Is there a pdf version of the GAP manual with hyperrefs? In-Reply-To: References: Message-ID: <01F858A9-2ACA-4698-B059-F5CDC4FD47F7@hoefling.name> On 2012-03-18, at 05:07 , William DeMeo wrote: > Dear Forum, > > I realize there are both pdf and html versions of the GAP reference > manual, which is great. I personally like using the pdf version, so I > can search the whole manual for things. However, I find I am > constantly moving around (manually) in the document, chasing cross > references, and this can be somewhat time consuming. I think the > manual would be significantly more useful if all the references were > hyper-links. Some time ago, I created a version of gapmacro.tex which added hyperlinks and used standard fonts in the pdf manuals. I've just used it on the GAP 4.4 manuals and wrapped up the result: http://www.icm.tu-bs.de/~bhoeflin/gap/pdfmanuals.tar.bz2 Download the archive into the GAP directory (containing doc, lib, etc.) and uncompress ? it will replace the old manual.pdf, manual.six and manual.toc files for all four manuals. (Be sure to make a backup copy of the doc diretory first!) Please let me know if there are any problems. Cheers Burkhard. From alexk at mcs.st-andrews.ac.uk Tue Mar 20 22:28:59 2012 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Tue, 20 Mar 2012 22:28:59 +0000 Subject: [GAP Forum] arithmetic in C In-Reply-To: References: <4F684DD8.3000203@uni-math.gwdg.de> Message-ID: On 20 Mar 2012, at 09:39, Laurent Bartholdi wrote: > Dear Wolfgang, > I reply only now to your question because I'm not on the "forum" mailing > list; it was kindly forwarded by Jakob. > > It's very tricky to work with complex numbers in pure algebra; GAP > contains, since its latest release (4.5.2), support for floating-point > approximations of complex numbers, which I assume is what you want. May I only add a warning that GAP 4.5.2 is the latest * beta* release - there is no public release of GAP 4.5 yet, and we are working on it. So usual care should be taken when you deal with beta releases. Best, Alexander From williamdemeo at gmail.com Tue Mar 20 22:35:31 2012 From: williamdemeo at gmail.com (William DeMeo) Date: Tue, 20 Mar 2012 12:35:31 -1000 Subject: [GAP Forum] Is there a pdf version of the GAP manual with hyperrefs? In-Reply-To: <01F858A9-2ACA-4698-B059-F5CDC4FD47F7@hoefling.name> References: <01F858A9-2ACA-4698-B059-F5CDC4FD47F7@hoefling.name> Message-ID: This is great! It seems to work with no problems (though I have only checked ref/manual.pdf). Thank you very much!! 2012/3/20 Burkhard H?fling : > > On 2012-03-18, at 05:07 , William DeMeo wrote: > >> Dear Forum, >> >> I realize there are both pdf and html versions of the GAP reference >> manual, which is great. ?I personally like using the pdf version, so I >> can search the whole manual for things. ?However, I find I am >> constantly moving around (manually) in the document, chasing cross >> references, and this can be somewhat time consuming. ?I think the >> manual would be significantly more useful if all the references were >> hyper-links. > > > Some time ago, I created a version of gapmacro.tex which added hyperlinks and used standard fonts in the pdf manuals. I've just used it on the GAP 4.4 manuals and wrapped up the result: > > http://www.icm.tu-bs.de/~bhoeflin/gap/pdfmanuals.tar.bz2 > > Download the archive into the GAP directory (containing doc, lib, etc.) and uncompress ? it will replace ?the old manual.pdf, manual.six and manual.toc files for all four manuals. (Be sure to make a backup copy of the doc diretory first!) > > Please let me know if there are any problems. > > Cheers > > Burkhard. > -- William J. DeMeo Ph.D. Candidate & Graduate Assistant Department of Mathematics University of Hawaii at Manoa phone: 808-298-4874 url: http://math.hawaii.edu/~williamdemeo From mckay at encs.concordia.ca Wed Mar 21 02:33:09 2012 From: mckay at encs.concordia.ca (MCKAY john) Date: Tue, 20 Mar 2012 22:33:09 -0400 (EDT) Subject: [GAP Forum] arithmetic in C In-Reply-To: References: <4F684DD8.3000203@uni-math.gwdg.de> Message-ID: I point out that there is a nice method of John Dixon for exact computation with cyclotomic integers by working over a well chosen finite field F_p. For algebraic integers there is the example of Darmon, Ford for reconstructing exact values using p-adics. This is in Comm in Algebra 17, (1989). Lattice reduction may also be used. John McKay From LindnerW at t-online.de Wed Mar 28 10:02:07 2012 From: LindnerW at t-online.de (Wolfgang Lindner) Date: Wed, 28 Mar 2012 11:02:07 +0200 Subject: [GAP Forum] arithmetic in C Message-ID: <010c01cd0cc2$7b758320$6502a8c0@oemcomputer.Speedport_W_502V_Typ_A> dear Max, no, there was no private answer yet .. so I appeciate your hints very much. There are informative, concrete and helpful. I'm reading the nice book of Cohen et al. 'Algebra interactive' and try to follow their constructions making _direct_ use of GAP (and not the embedded gapplets). best Wolfgang -----Urspr?ngliche Nachricht----- Von: Max Horn Cc: GAP Forum Datum: Dienstag, 20. M?rz 2012 11:14 Betreff: Re: [GAP Forum] arithmetic in C |Dear Wolfgang, | |I am not sure if you perhaps already got a private reply to your email. If not, maybe the following will help you. | |Am 14.03.2012 um 09:05 schrieb Wolfgang Lindner: | |> dear group, |> |> I know how to calculate with Rationals, ZmodnZ, Integers etc. |> But I could not find infos in the help-index of GAP |> how to do calculations in the complex field C |> (I know about gaussionInteger). | | |Short answer: Use "Cyclotomics" or one of its subfields. Make sure to read the GAP manual on them and on abelian number fields: | | | |The following might also be of interest: | | | | |Long answer: It is essentially impossible to compute with the "full set" of complex numbers (or real numbers) on a computer; in particular, not every real (and hence not every complex) number is computable (see e.g. ). | |But for the vast majority of cases (at least in my personal experience), one doesn't really need the full set of real or complex numbers; rather, one only needs to deal with a few select numbers, such as "square root of 2" or "pi". GAP allows you to work with the former: One can construct abelian extension fields of the rational numbers in GAP, which all are subfields of the "field of cyclotomic numbers". So the following works: | |gap> Sqrt(-1); |E(4) |gap> Sqrt(2); |E(8)-E(8)^3 | |However, this does not allow you to work with pi directly, as that lives in a transcendental extension. There are some tricks to deal with that to a certain extent. Note that pi and similar transcendentals seem not to be really necessary to do group theory, which is probably why they are not supported as such. | | |> I would like to work in C[X] etc. | |gap> R:=PolynomialRing(Cyclotomics, "x"); |Cyclotomics[x] |gap> x:=R.1; |x |gap> f:=x^2-x+1; |x^2-x+1 | | |Cheers, |Max |_______________________________________________ |Forum mailing list |Forum at mail.gap-system.org |http://mail.gap-system.org/mailman/listinfo/forum From LindnerW at t-online.de Wed Mar 28 10:14:28 2012 From: LindnerW at t-online.de (Wolfgang Lindner) Date: Wed, 28 Mar 2012 11:14:28 +0200 Subject: [GAP Forum] arithmetic in C Message-ID: <014701cd0cc5$73712d20$6502a8c0@oemcomputer.Speedport_W_502V_Typ_A> dear Max, no, there was no private answer yet .. so I appeciate your hints very much. There are informative, concrete and helpful. I'm reading the nice book of Cohen et al. 'Algebra interactive' and try to follow their constructions making _direct_ use of GAP (and not of the embedded 'gapplets'). best Wolfgang -----Urspr?ngliche Nachricht----- Von: Max Horn Cc: GAP Forum Datum: Dienstag, 20. M?rz 2012 11:14 Betreff: Re: [GAP Forum] arithmetic in C |Dear Wolfgang, | |I am not sure if you perhaps already got a private reply to your email. If not, maybe the following will help you. | |Am 14.03.2012 um 09:05 schrieb Wolfgang Lindner: | |> dear group, |> |> I know how to calculate with Rationals, ZmodnZ, Integers etc. |> But I could not find infos in the help-index of GAP |> how to do calculations in the complex field C |> (I know about gaussionInteger). | | |Short answer: Use "Cyclotomics" or one of its subfields. Make sure to read the GAP manual on them and on abelian number fields: | | | |The following might also be of interest: | | | | |Long answer: It is essentially impossible to compute with the "full set" of complex numbers (or real numbers) on a computer; in particular, not every real (and hence not every complex) number is computable (see e.g. ). | |But for the vast majority of cases (at least in my personal experience), one doesn't really need the full set of real or complex numbers; rather, one only needs to deal with a few select numbers, such as "square root of 2" or "pi". GAP allows you to work with the former: One can construct abelian extension fields of the rational numbers in GAP, which all are subfields of the "field of cyclotomic numbers". So the following works: | |gap> Sqrt(-1); |E(4) |gap> Sqrt(2); |E(8)-E(8)^3 | |However, this does not allow you to work with pi directly, as that lives in a transcendental extension. There are some tricks to deal with that to a certain extent. Note that pi and similar transcendentals seem not to be really necessary to do group theory, which is probably why they are not supported as such. | | |> I would like to work in C[X] etc. | |gap> R:=PolynomialRing(Cyclotomics, "x"); |Cyclotomics[x] |gap> x:=R.1; |x |gap> f:=x^2-x+1; |x^2-x+1 | | |Cheers, |Max |_______________________________________________ |Forum mailing list |Forum at mail.gap-system.org |http://mail.gap-system.org/mailman/listinfo/forum From LindnerW at t-online.de Wed Mar 28 10:23:32 2012 From: LindnerW at t-online.de (Wolfgang Lindner) Date: Wed, 28 Mar 2012 11:23:32 +0200 Subject: [GAP Forum] arithmetic in C Message-ID: <014801cd0cc5$73c51980$6502a8c0@oemcomputer.Speedport_W_502V_Typ_A> dear Prof. Bartholdi, many thanks for your hint to package 'float' and the examples of correct use, which should suffice to get approx. roots of complex poly's. You know, I could calculate symbolic with complex numbers in CAS like Maxima, but I wanted to do the work 'inside' GAP. So 'float' is exactly, what I was looking for. beste Gruesse Wolfgang Lindner -----Urspr?ngliche Nachricht----- Von: Laurent Bartholdi An: kroeker ; GAP Forum ; Wolfgang Lindner Datum: Dienstag, 20. M?rz 2012 11:40 Betreff: Re: [GAP Forum] arithmetic in C Dear Wolfgang, I reply only now to your question because I'm not on the "forum" mailing list; it was kindly forwarded by Jakob. It's very tricky to work with complex numbers in pure algebra; GAP contains, since its latest release (4.5.2), support for floating-point approximations of complex numbers, which I assume is what you want. You'll have to compile the package "float", whose source is part of the distribution but requires its own configuration (the usual ./configure && make in .../pkg/float; hopefully the process works smoothly, but if something goes wrong please tell me). Then you can access floating-point complex numbers within GAP; a sample session is: gap> LoadPackage("float"); true gap> SetFloats(MPC,1000); # 1000 bits of precision gap> r := PolynomialRing(MPC_PSEUDOFIELD,1); # 1 indeterminate ???[z] gap> r.1^5-1; z^5-.1e1+.0e0i gap> RootsFloat(last); [ .309017e0+.951057e0???, -.809017e0+.587785e0???, -.809017e0-.587785e0???, .1e1-.989853e-301???, .309017e0-.951057e0??? ] gap> last2^2; z^10+(-.2e1+.0e0i)*z^5+.1e1+.0e0i gap> On Tue, Mar 20, 2012 at 10:28 AM, kroeker wrote: > ** > > > -------- Original-Nachricht -------- Betreff: [GAP Forum] arithmetic in C Datum: > Wed, 14 Mar 2012 09:05:05 +0100 Von: Wolfgang Lindner > An: CC: > forum-request at gap-system.org > > dear group, > > I know how to calculate with Rationals, ZmodnZ, Integers etc. > But I could not find infos in the help-index of GAP > how to do calculations in the complex field C > (I know about gaussionInteger). > > I would like to work in C[X] etc. > > regards > Wolfgang > > > _______________________________________________ > Forum mailing listForum at mail.gap-system.orghttp://mail.gap-system.org/mailman/listinfo/for um > > -- Prof. Dr. Laurent Bartholdi \ laurent.bartholdigmailcom G.-A. Universit??t zu G??ttingen \ Phone: +49 551 39 7826 Bunsenstra??e 3-5 \ Secr: +49 551 39 7752 D-37073 G??ttingen, Germany \ Fax: +49 551 39 22674 From msorouhesh at gmail.com Wed Mar 28 14:05:17 2012 From: msorouhesh at gmail.com (Mr. Sorouhesh) Date: Wed, 28 Mar 2012 17:35:17 +0430 Subject: [GAP Forum] Transitive groups Message-ID: Dear friends, Kindly asking: Can we ask GAP to list all subgroups of a group, for example S5 or S6? Best From mathieu.dutour at gmail.com Wed Mar 28 14:19:33 2012 From: mathieu.dutour at gmail.com (Mathieu Dutour) Date: Wed, 28 Mar 2012 15:19:33 +0200 Subject: [GAP Forum] Transitive groups In-Reply-To: References: Message-ID: Use ConjugacyClassesSubgroups(SymmetricGroup(6)); The use "Representative" to get the representatives and then do conjugation to get all of them. On Wed, Mar 28, 2012 at 3:05 PM, Mr. Sorouhesh wrote: > Dear friends, > > Kindly asking: Can we ask GAP to list all subgroups of a group, for example > S5 or S6? > > Best > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From LindnerW at t-online.de Wed Mar 28 16:23:12 2012 From: LindnerW at t-online.de (Wolfgang Lindner) Date: Wed, 28 Mar 2012 17:23:12 +0200 Subject: [GAP Forum] arithmetic in C Message-ID: <04c301cd0cf6$b6c40440$6502a8c0@oemcomputer.Speedport_W_502V_Typ_A> dear John, thanks for your hints. |I point out that there is a nice method of John Dixon |for exact computation with cyclotomic integers by working |over a well chosen finite field F_p. |For algebraic integers there is the example of Darmon, Ford for |reconstructing exact values using p-adics. |This is in Comm in Algebra 17, (1989). |Lattice reduction may also be used. |John McKay . Does someone has a good pointer or link to start? . Does someone know about realisations/examples/lectures using GAP? I am very interested in reading more about what John sketched for exact computations using the above methods. Any hints are very welcome. Sincerely Wolfgang From shahmaths_problem at hotmail.com Wed Mar 28 19:30:49 2012 From: shahmaths_problem at hotmail.com (muhammad shah) Date: Wed, 28 Mar 2012 23:30:49 +0500 Subject: [GAP Forum] Transitive groups In-Reply-To: References: Message-ID: Dear Sorouhesh, Yes, there is a command"Subgroups" for that in GAP package "sonata".So first you will have to load that as following: gap> LoadPackage("sonata");; gap> s5:=SymmetricGroup(IsPermGroup,5); Sym( [ 1 .. 5 ] ) gap> Subgroups(s5); HERE YOU WILL GET THE LIST OF ALL THE SUBGROUPS OF s5 gap> Size(last); 156 THERE ARE 156 SUBGROUPS OF s5 similarly for s6 gap> s6:=SymmetricGroup(IsPermGroup,6); Sym( [ 1 .. 6 ] ) gap> Subgroups(s6); gap> Size(last); 1455 Cheers, Muhammad Shah > Date: Wed, 28 Mar 2012 17:35:17 +0430 > From: msorouhesh at gmail.com > To: forum at gap-system.org > Subject: [GAP Forum] Transitive groups > > Dear friends, > > Kindly asking: Can we ask GAP to list all subgroups of a group, for example > S5 or S6? > > Best > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From dennis at rkd.math.cornell.edu Wed Mar 28 17:31:52 2012 From: dennis at rkd.math.cornell.edu (R. Keith Dennis) Date: Wed, 28 Mar 2012 11:31:52 -0500 Subject: [GAP Forum] Transitive groups Message-ID: <201203281631.q2SGVqXf024196@rkd.math.cornell.edu> Try Flat(List(ConjugacyClassesSubgroups(G),Elements)); Keith Dennis > Dear friends, > > Kindly asking: Can we ask GAP to list all subgroups of a group, for example > S5 or S6? > > Best k From mshahmaths at gmail.com Wed Mar 28 19:15:44 2012 From: mshahmaths at gmail.com (Muhammad Shah) Date: Wed, 28 Mar 2012 23:15:44 +0500 Subject: [GAP Forum] (no subject) Message-ID: Dear Sorouhesh, Yes, there is a command"Subgroups" for that in GAP package "sonata".So first you will have to load that as following: gap> LoadPackage("sonata");; gap> s5:=SymmetricGroup(IsPermGroup,5); Sym( [ 1 .. 5 ] ) gap> Subgroups(s5); HERE YOU WILL GET THE LIST OF ALL THE SUBGROUPS OF s5 gap> Size(last); 156 THERE ARE 156 SUBGROUPS OF s5 similarly for s6 gap> s6:=SymmetricGroup(IsPermGroup,6); Sym( [ 1 .. 6 ] ) gap> Subgroups(s6); gap> Size(last); 1455 Cheers, Muhammad Shah From rsw9 at cornell.edu Wed Mar 28 19:32:21 2012 From: rsw9 at cornell.edu (Russ Woodroofe) Date: Wed, 28 Mar 2012 13:32:21 -0500 Subject: [GAP Forum] Transitive groups In-Reply-To: References: Message-ID: <2E1D73B8-4AC4-49D5-94B8-72CCA846481F@cornell.edu> I'll point out that conjugacy classes also support the Elements method. That makes it easy to get all the subgroups with a one line command: Flat(List(ConjugacyClassesSubgroups(G), x->Elements(x))); (I know it's easy, but it seems to be a common question). Of course, it might be more useful/understandable to use xgap or Gap.app to draw the Hasse diagram, i.e., the subgroups with their inclusion relations. Best, --Russ On Mar 28, 2012, at 8:19 AM, Mathieu Dutour wrote: > Use > ConjugacyClassesSubgroups(SymmetricGroup(6)); > The use "Representative" to get the representatives and > then do conjugation to get all of them. > > On Wed, Mar 28, 2012 at 3:05 PM, Mr. Sorouhesh wrote: > >> Dear friends, >> >> Kindly asking: Can we ask GAP to list all subgroups of a group, for example >> S5 or S6? >> >> Best >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum >> > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From maslam_javed at hotmail.com Mon Apr 2 10:22:23 2012 From: maslam_javed at hotmail.com (Aslam Javed) Date: Mon, 2 Apr 2012 09:22:23 +0000 Subject: [GAP Forum] Where to publish my work? Message-ID: Dear I did my MPhil from Quaid-e-Azam University Islamabad Pakistan on "Computational study of Wielandt subgroups and series using GAP". Now I want to send to some publisher to publish it as a monograph. Kindly guide me in this regard. Thanks Muhammad Aslam Javed Ph.D. Scholar Quaid-i-Azam University Islamabad. From sidsraval at gmail.com Mon Apr 9 04:32:39 2012 From: sidsraval at gmail.com (Sid Raval) Date: Sun, 8 Apr 2012 22:32:39 -0500 Subject: [GAP Forum] Semidirect products with GAP Message-ID: Hello, I recently posted a thread on math.stackexchange and one of the users recommended I email this list for an answer. I'll link to the math.stackexchange thread, since the question is already TeXed there -- the question is regarding how to have GAP compute specific semidirect products: http://math.stackexchange.com/questions/128210/semidirect-products-with-gap Thanks, Sid From linda.j.cupples at gmail.com Tue Apr 10 10:58:47 2012 From: linda.j.cupples at gmail.com (Linda Cupples) Date: Tue, 10 Apr 2012 19:58:47 +1000 Subject: [GAP Forum] Using GAP to generate group by relations Message-ID: Hey, I've been having trouble with mathematica and this group I'm working with, the abstractalgebra function "GenerateGroupByRelations[]" wasn't liking the group so I've started reading through the documentation for GAP. For the record the mathematica command I was using was G = GenerateGroupoidByRelations[{a, b}, {a^4 == e, b^4 == e, a ** b ** a ** b == e, a^3 ** b ** a^3 ** b == e}, SizeLimit -> 60] I haven't been able to find a similar function like this to generate a group by relations, like a^4 = e and so on, Is it possible to do this using GAP? Thanks in advance, Linda From fvanhove at cage.ugent.be Tue Apr 10 11:11:59 2012 From: fvanhove at cage.ugent.be (fvanhove at cage.ugent.be) Date: Tue, 10 Apr 2012 12:11:59 +0200 Subject: [GAP Forum] subspace spanned by random subset (of finite field over subfield) Message-ID: <20120410121159.40384vl8c2qykvqc@cage.ugent.be> Dear members of the GAP forum, I would like to consider a big Galois field as a vector space over its prime subfield. Hence I started with: gf:=GF(3^6); w:=PrimitiveElement(gf); W:=AsVectorSpace(PrimeField(gf),gf); Now I would for instance like to compute the dimension of the subspace (over GF(3)) spanned by {w,w^5,w^6}. (Note that I am actually not expecting that that subset is linearly independent) But if I understand http://www.gap-system.org/Manuals/doc/htm/ref/CHAP059.htm#SECT001 correctly, then the only way to construct subspaces is by expressing vectors in terms of coordinates using some basis. Is this correct? Thanks in advance, Kind regards, Fr?d?ric ---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program. From j.taylor at abdn.ac.uk Tue Apr 10 11:33:36 2012 From: j.taylor at abdn.ac.uk (Jay Taylor) Date: Tue, 10 Apr 2012 11:33:36 +0100 Subject: [GAP Forum] Using GAP to generate group by relations In-Reply-To: References: Message-ID: <4F840C80.9050603@abdn.ac.uk> Dear Linda, What you want to do is create a finitely presented group, for which the documentation is given here http://www.gap-system.org/Manuals/doc/htm/ref/CHAP045.htm What you first need to do in GAP is create a free group then quotient out by the appropriate relations. For instance the following should achieve the group that you want in GAP gap> F:= FreeGroup( "a", "b" );; gap> a:=F.1;; b:=F.2;; gap> G:= F / [ a^4, b^4, (a*b)^2, (a^3*b)^2 ]; The first line generates a free group with two generators "a" and "b". The next line creates variables "a" and "b" and assign the generators of F to them. The "a" and "b" in the first line are merely place holder names, not variables that can be interacted with in GAP. The final line then creates the group G by quotienting out by the appropriate relations. I hope this helps. -Jay Linda Cupples wrote: > Hey, > > I've been having trouble with mathematica and this group I'm working with, > the abstractalgebra function "GenerateGroupByRelations[]" wasn't liking the > group so I've started reading through the documentation for GAP. > > For the record the mathematica command I was using was > > G = GenerateGroupoidByRelations[{a, b}, {a^4 == e, b^4 == e, a ** b ** a ** > b == e, a^3 ** b ** a^3 ** b == e}, SizeLimit -> 60] > > I haven't been able to find a similar function like this to generate a > group by relations, like a^4 = e and so on, > > Is it possible to do this using GAP? > > Thanks in advance, > > Linda > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > > The University of Aberdeen is a charity registered in Scotland, No SC013683. -- Jay Taylor http://www.abdn.ac.uk/~r01jmt8/ From max at quendi.de Tue Apr 10 20:08:26 2012 From: max at quendi.de (Max Horn) Date: Tue, 10 Apr 2012 21:08:26 +0200 Subject: [GAP Forum] subspace spanned by random subset (of finite field over subfield) In-Reply-To: <20120410121159.40384vl8c2qykvqc@cage.ugent.be> References: <20120410121159.40384vl8c2qykvqc@cage.ugent.be> Message-ID: <1D3B6CF3-FF70-4621-B911-962613F2851D@quendi.de> Dear Am 10.04.2012 um 12:11 schrieb fvanhove at cage.ugent.be: > Dear members of the GAP forum, > > I would like to consider a big Galois field as a vector space over its prime subfield. > Hence I started with: > > gf:=GF(3^6); > w:=PrimitiveElement(gf); > W:=AsVectorSpace(PrimeField(gf),gf); > > Now I would for instance like to compute the dimension of the subspace (over GF(3)) spanned by {w,w^5,w^6}. > (Note that I am actually not expecting that that subset is linearly independent) > > But if I understand > http://www.gap-system.org/Manuals/doc/htm/ref/CHAP059.htm#SECT001 > correctly, then the only way to construct subspaces is by expressing vectors in terms of coordinates using some basis. > > Is this correct? Actually, no, that's not correct. To stick with your example, the following code works gap> gf:=GF(3^6); GF(3^6) gap> w:=PrimitiveElement(gf); Z(3^6) gap> W:=AsVectorSpace(PrimeField(gf),gf); GF(3^6) gap> Dimension(Subspace(W, [w,w^5,w^6])); 3 So, the three "vectors" are linearly independent. You can also ask for "coordinates", if you prefer, though. E.g. the standard basis GAP will use for this vector space is 1=w^0 up to w^5: gap> AsList(Basis(W)); [ Z(3)^0, Z(3^6), Z(3^6)^2, Z(3^6)^3, Z(3^6)^4, Z(3^6)^5 ] Decomposing w^5 with respect to this basis: gap> Coefficients(Basis(W), w^6); [ Z(3)^0, Z(3)^0, Z(3), 0*Z(3), Z(3)^0, 0*Z(3) ] We verify this: gap> w^0 + w - w^2 + w^4 = w^6; true Hope that helps, Max > > Thanks in advance, > Kind regards, > Fr?d?ric > > > > > > ---------------------------------------------------------------- > This message was sent using IMP, the Internet Messaging Program. > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From max at quendi.de Tue Apr 10 20:48:18 2012 From: max at quendi.de (Max Horn) Date: Tue, 10 Apr 2012 21:48:18 +0200 Subject: [GAP Forum] subspace spanned by random subset (of finite field over subfield) In-Reply-To: <1D3B6CF3-FF70-4621-B911-962613F2851D@quendi.de> References: <20120410121159.40384vl8c2qykvqc@cage.ugent.be> <1D3B6CF3-FF70-4621-B911-962613F2851D@quendi.de> Message-ID: <63899018-10D8-4CEF-A323-E4C72EC0349C@quendi.de> Hello again, there were (at least) two mistakes in my email: 1) This > Dear should of course have been "Dear Fr?d?ric" Sorry! Secondly, as Stefan Kohl pointed out, [...] > > Decomposing w^5 with respect to this basis: Here, I meant w^6 (and that is what the example code below does). Cheers, Max > > gap> Coefficients(Basis(W), w^6); > [ Z(3)^0, Z(3)^0, Z(3), 0*Z(3), Z(3)^0, 0*Z(3) ] > > We verify this: > > gap> w^0 + w - w^2 + w^4 = w^6; > true > > > Hope that helps, > Max > >> >> Thanks in advance, >> Kind regards, >> Fr?d?ric >> >> >> >> >> >> ---------------------------------------------------------------- >> This message was sent using IMP, the Internet Messaging Program. >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum >> > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From fvanhove at cage.ugent.be Wed Apr 11 08:52:11 2012 From: fvanhove at cage.ugent.be (fvanhove at cage.ugent.be) Date: Wed, 11 Apr 2012 09:52:11 +0200 Subject: [GAP Forum] subspace spanned by random subset (of finite field over subfield) In-Reply-To: <63899018-10D8-4CEF-A323-E4C72EC0349C@quendi.de> References: <20120410121159.40384vl8c2qykvqc@cage.ugent.be> <1D3B6CF3-FF70-4621-B911-962613F2851D@quendi.de> <63899018-10D8-4CEF-A323-E4C72EC0349C@quendi.de> Message-ID: <20120411095211.276465b8st5uy9s0@cage.ugent.be> Hello, thank you very much for the clear response and the examples. I had another question about this: finite fields, seen both as fields and as vector spaces. I wanted to take a non-zero element of the bigger field, consider the cyclic subgroup generated by it, and let it act on the cosets of the multiplicative group (so in a sense, I want to consider Singer cycles, which are apparently not yet implemented) Curiously, however, there seems to be no command to obtain the multiplicative group of a Galois field? Kind regards, Fr?d?ric Quoting Max Horn : > Hello again, > > there were (at least) two mistakes in my email: > > 1) This > >> Dear > > should of course have been > > "Dear Fr?d?ric" > > Sorry! Secondly, as Stefan Kohl pointed out, > > [...] > >> >> Decomposing w^5 with respect to this basis: > > Here, I meant w^6 (and that is what the example code below does). > > > Cheers, > Max > >> >> gap> Coefficients(Basis(W), w^6); >> [ Z(3)^0, Z(3)^0, Z(3), 0*Z(3), Z(3)^0, 0*Z(3) ] >> >> We verify this: >> >> gap> w^0 + w - w^2 + w^4 = w^6; >> true >> >> >> Hope that helps, >> Max >> >>> >>> Thanks in advance, >>> Kind regards, >>> Fr?d?ric >>> >>> >>> >>> >>> >>> ---------------------------------------------------------------- >>> This message was sent using IMP, the Internet Messaging Program. >>> >>> _______________________________________________ >>> Forum mailing list >>> Forum at mail.gap-system.org >>> http://mail.gap-system.org/mailman/listinfo/forum >>> >> >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum >> > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > ---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program. From burkhard at hoefling.name Wed Apr 11 10:28:33 2012 From: burkhard at hoefling.name (=?iso-8859-1?Q?Burkhard_H=F6fling?=) Date: Wed, 11 Apr 2012 11:28:33 +0200 Subject: [GAP Forum] subspace spanned by random subset (of finite field over subfield) In-Reply-To: <20120411095211.276465b8st5uy9s0@cage.ugent.be> References: <20120410121159.40384vl8c2qykvqc@cage.ugent.be> <1D3B6CF3-FF70-4621-B911-962613F2851D@quendi.de> <63899018-10D8-4CEF-A323-E4C72EC0349C@quendi.de> <20120411095211.276465b8st5uy9s0@cage.ugent.be> Message-ID: <82143051-2DAA-419C-BF2E-6DD4D495BEA7@hoefling.name> > Curiously, however, there seems to be no command to obtain the multiplicative group of a Galois field? Try `Units', e.g., Units(GF(3^6)) gives you the multiplicative group. Cheers Burkhard. From max at quendi.de Wed Apr 11 11:09:38 2012 From: max at quendi.de (Max Horn) Date: Wed, 11 Apr 2012 12:09:38 +0200 Subject: [GAP Forum] subspace spanned by random subset (of finite field over subfield) In-Reply-To: <20120411095211.276465b8st5uy9s0@cage.ugent.be> References: <20120410121159.40384vl8c2qykvqc@cage.ugent.be> <1D3B6CF3-FF70-4621-B911-962613F2851D@quendi.de> <63899018-10D8-4CEF-A323-E4C72EC0349C@quendi.de> <20120411095211.276465b8st5uy9s0@cage.ugent.be> Message-ID: <53AE417F-BED7-41A2-8F34-BD53AA09CFE4@quendi.de> Am 11.04.2012 um 09:52 schrieb fvanhove at cage.ugent.be: > Hello, > > thank you very much for the clear response and the examples. > > I had another question about this: finite fields, seen both as fields and as vector spaces. > I wanted to take a non-zero element of the bigger field, consider the cyclic subgroup generated by it, and let it act on the cosets of the multiplicative group (so in a sense, I want to consider Singer cycles, which are apparently not yet implemented) > Curiously, however, there seems to be no command to obtain the multiplicative group of a Galois field? Try this: G:=Units(GF(3^6)); H:=Subgroup(G, [Z(3^2)]); Of course you can use any other unit besides Z(3^2). It is not quite clear to me which cosets of the multiplicative group you mean (first of, which multiplicative group, do you mean the full unit group? And secondly, cosets in where?) so I can't quite answer the second part of your question. Cheers, Max > > Kind regards, > Fr?d?ric > > > Quoting Max Horn : > >> Hello again, >> >> there were (at least) two mistakes in my email: >> >> 1) This >> >>> Dear >> >> should of course have been >> >> "Dear Fr?d?ric" >> >> Sorry! Secondly, as Stefan Kohl pointed out, >> >> [...] >> >>> >>> Decomposing w^5 with respect to this basis: >> >> Here, I meant w^6 (and that is what the example code below does). >> >> >> Cheers, >> Max >> >>> >>> gap> Coefficients(Basis(W), w^6); >>> [ Z(3)^0, Z(3)^0, Z(3), 0*Z(3), Z(3)^0, 0*Z(3) ] >>> >>> We verify this: >>> >>> gap> w^0 + w - w^2 + w^4 = w^6; >>> true >>> >>> >>> Hope that helps, >>> Max >>> >>>> >>>> Thanks in advance, >>>> Kind regards, >>>> Fr?d?ric >>>> >>>> >>>> >>>> >>>> >>>> ---------------------------------------------------------------- >>>> This message was sent using IMP, the Internet Messaging Program. >>>> >>>> _______________________________________________ >>>> Forum mailing list >>>> Forum at mail.gap-system.org >>>> http://mail.gap-system.org/mailman/listinfo/forum >>>> >>> >>> >>> _______________________________________________ >>> Forum mailing list >>> Forum at mail.gap-system.org >>> http://mail.gap-system.org/mailman/listinfo/forum >>> >> >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum >> > > > > ---------------------------------------------------------------- > This message was sent using IMP, the Internet Messaging Program. > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From f_k_moftakhar at yahoo.com Wed Apr 11 11:31:38 2012 From: f_k_moftakhar at yahoo.com (fatemeh moftakhar) Date: Wed, 11 Apr 2012 03:31:38 -0700 (PDT) Subject: [GAP Forum] about transitive groups Message-ID: <1334140298.4907.YahooMailNeo@web161306.mail.bf1.yahoo.com> Dear Mr. Sorouhesh ? You can use the following command ? gap> RequirePackage("SONATA");; gap> Subgroups(SmallGroup(4,2)); [ Group([? ]), Group([ f1 ]), Group([ f2 ]), Group([ f1*f2 ]), ? Group([ f1, f2 ]) ] gap> ? Regards; Fatemeh Moftakhar From suskudar at gmail.com Mon Apr 16 20:37:13 2012 From: suskudar at gmail.com (sumeyra uskudar) Date: Mon, 16 Apr 2012 22:37:13 +0300 Subject: [GAP Forum] hall-senior number vs small group id Message-ID: dear forum, is there a function in gap (or anywhere) which can give the small group id of a group when we give the hall-senior number? or visaversa? Indeed, I need the subgroup structure of the group of order 64 which has Hall Senior number 187. but I can not get the small group ID from anywhere thus it is hard to define it in GAP. -- *S?meyra Bedir* From vipul at math.uchicago.edu Mon Apr 16 21:12:34 2012 From: vipul at math.uchicago.edu (Vipul Naik) Date: Mon, 16 Apr 2012 15:12:34 -0500 Subject: [GAP Forum] hall-senior number vs small group id In-Reply-To: References: Message-ID: <20120416201234.GA7465@math.uchicago.edu> As far as I know, there is no in-built function to do this. However, the information for groups of order 32 is available here: http://groupprops.subwiki.org/wiki/Groups_of_order_32 For the group you have at hand, if you calculated the Hall Senior number, you hprobably also have information about the group up to isoclinism (in particular, the isomorphism class of the inner automorphism group and the derived subgroup), and some other invariants associated with the group. Using this information, you can run a search within GAP among the groups of order 64 and use that to figure out the GAP ID. Alternatively, if you have an explicit presentation of the group, you can use that to find the GAP ID. Vipul * Quoting sumeyra uskudar who at 2012-04-16 22:37:13+0000 (Mon) wrote > dear forum, > is there a function in gap (or anywhere) which can give the small group id > of a group when we give the hall-senior number? or visaversa? > > Indeed, I need the subgroup structure of the group of order 64 which has > Hall Senior number 187. but I can not get the small group ID from anywhere > thus it is hard to define it in GAP. > > -- > *S?meyra Bedir* > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From suskudar at gmail.com Mon Apr 16 22:30:13 2012 From: suskudar at gmail.com (sumeyra uskudar) Date: Tue, 17 Apr 2012 00:30:13 +0300 Subject: [GAP Forum] xgap for windows xp Message-ID: dear forum, I have read very early messages in forum about using xgap in Windows xp, but all links there are dead. Is there anyone who can tell me a method to run xgap in windows xp -- *S?meyra Bedir* From suskudar at gmail.com Tue Apr 17 00:09:28 2012 From: suskudar at gmail.com (sumeyra uskudar) Date: Tue, 17 Apr 2012 02:09:28 +0300 Subject: [GAP Forum] subgroup lattices Message-ID: I have quoted a very old message of yours from forum which is; -quoted text starts here- Once you computed the subgroup lattice, other commands help you to find out more about it. An Example is "MaximalSubgroups". Let's see how this works on your example: gap> g:=SymmetricGroup(3);; gap> lat:=LatticeSubgroups(g); gap> classes:=ConjugacyClassesSubgroups(lat); [ Group( () )^G, Group( [ (2,3) ] )^G, Group( [ (1,2,3) ] )^G, SymmetricGroup( [ 1 .. 3 ] )^G ] gap> lengths:=List(classes, Size); [1, 3, 1, 1 ] # Hence the lattice has 4 conjugacy classes, one of length 3 and 3 of # length 1. These are three normal subgroups! # Now we take representatives in the classes... gap> repr:=List(classes, Representative); [ Group(()), Group([ (2,3) ]), Group([ (1,2,3) ]), Sym( [ 1 .. 3 ] ) ] gap> sizes:=List(repr, Size); [ 1, 2, 3, 6 ] # OK. Now we know the groups in our classes. gap> maxsg:=MaximalSubgroupsLattice(lat); [ [ ], [ [ 1, 1 ] ], [ [ 1, 1 ] ], [ [ 3, 1 ], [ 2, 1 ], [ 2, 2 ], [ 2, 3 ] ] ] # Here we see that the groups in the first class have no subgroups. Of # course! The groups in that class are trivial. # A representative of the second class contains a group of the first class # as a maximal subgroup. The same is true for a representative of the # third class. A representative of the fourth class (i.e. the group Sym(3) # itself) contains the group of the third class and all three groups of # the second class as maximal subgroups. With this information you can make a picture of the subgroup lattice of Sym(3). More commands like this are available in GAP: just check the manual. As an exercise, you should try the command "MinimalSupergroupsLattice". I have some experience with subgroup lattices in GAP. If you need more information, I'll be happy to help you. Some years ago, I wrote a program which generates a LaTeX file with the subgroup lattice of a given group in the form of a table. This enables you to work in the subgroup lattice if needed. If you really want a picture, you should take a look at xgap but beware that subgroup lattices rapidly become very complicated and difficult to draw. -quoted text finishes here.- can anyone give some information about that program which generates a LaTeX file with the subgroup lattice of a given group in the form of a table. OR, actually, I use windows xp installed on my computer, thus I am not able to use XGAP. but I want to see a picture of the lattice of subgroups of a group, namely a picture of which subgroup is contained in which subgroup. GAP turns out lists, which are not very helpful in this way. can anyone help me? -- *S?meyra Bedir* From beick at tu-bs.de Tue Apr 17 07:59:58 2012 From: beick at tu-bs.de (Bettina Eick) Date: Tue, 17 Apr 2012 08:59:58 +0200 (CEST) Subject: [GAP Forum] hall-senior number vs small group id In-Reply-To: References: Message-ID: Dear Forum, as far as I remember, one can get this information as follows. The groups of order 64 as determined by Hall and Senior are part of the solvable groups library of GAP 3. The id of a group in this GAP 3 catalogue can be obtained in GAP 4 via Gap3CatalogueIdGroup. Thus with gap> hs := List(AllSmallGroups(64), x -> Gap3CatalogueIdGroup(x)[2]);; gap> Position(hs, 187); 245 one finds that the Hall-Senior group 187 is SmallGroup(64,245); Best wishes, Bettina On Mon, 16 Apr 2012, sumeyra uskudar wrote: > dear forum, > is there a function in gap (or anywhere) which can give the small group id > of a group when we give the hall-senior number? or visaversa? > > Indeed, I need the subgroup structure of the group of order 64 which has > Hall Senior number 187. but I can not get the small group ID from anywhere > thus it is hard to define it in GAP. > > -- > *S?meyra Bedir* > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From w_becker at hotmail.com Tue Apr 17 14:21:00 2012 From: w_becker at hotmail.com (Walter Becker) Date: Tue, 17 Apr 2012 05:21:00 -0800 Subject: [GAP Forum] idetification of Hall_senior and Small Group library numbers Message-ID: There have been a few requests for this conversion, but one obvious way to get the numbers for specific cases, as opposed to the full set of numerical correspondences would be just to type in the presentation from the Hall-Senior list and ask GAP to identify teh group in question. Presentations can e found in either the Hall Senior tables or in an article of Sag and Wamsley in (I think ) Journal of the Australian Math society around 1975. (These are minimal presentations for groups of order 2,4,8,16,32, and 64. and are generally correct--I think one or two may have typos in them.) From mckay at encs.concordia.ca Tue Apr 17 15:09:37 2012 From: mckay at encs.concordia.ca (MCKAY john) Date: Tue, 17 Apr 2012 10:09:37 -0400 (EDT) Subject: [GAP Forum] idetification of Hall_senior and Small Group library numbers In-Reply-To: References: Message-ID: I gave corrections to the Hall-Senior presentations in Math of Comp likely in late 60s / early 70s. They may be useful. John McKay On Tue, 17 Apr 2012, Walter Becker wrote: > > There have been a few requests for this conversion, but one obvious way to get > the numbers for specific cases, as opposed to the full set of numerical > correspondences would be just to type in the presentation from > the Hall-Senior list and ask GAP to identify teh group in question. > > Presentations can e found in either the Hall Senior tables or in an > article of Sag and Wamsley in (I think ) Journal of the Australian Math > society around 1975. (These are minimal presentations for groups of > order 2,4,8,16,32, and 64. and are generally correct--I think one or two > may have typos in them.) > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From e.obrien at auckland.ac.nz Wed Apr 18 04:21:38 2012 From: e.obrien at auckland.ac.nz (Eamonn O'Brien) Date: Wed, 18 Apr 2012 15:21:38 +1200 Subject: [GAP Forum] hall-senior number vs small group id In-Reply-To: References: Message-ID: <4F8E3342.8050104@auckland.ac.nz> Dear Forum: Attached is the correspondence between Hall-Senior identifiers for the groups of order dividing 64 and the corresponding SmallGroup identifiers. I determined this in the 1980s. HallSeniorToSmallGroup[n][x] returns the SmallGroup id of the H-S group (2^n)#x. gap> HallSeniorToSmallGroup[6][187]; 245 SmallGroupToHallSenior[m][y] returns the HallSenior id of the SmallGroup (2^m)#y. gap> SmallGroupToHallSenior[6][245]; 187 Best wishes. Eamonn -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: Hall-Senior.g URL: From vipul at math.uchicago.edu Wed Apr 18 04:39:54 2012 From: vipul at math.uchicago.edu (Vipul Naik) Date: Tue, 17 Apr 2012 22:39:54 -0500 Subject: [GAP Forum] hall-senior number vs small group id In-Reply-To: References: Message-ID: <20120418033954.GA17788@math.uchicago.edu> There is a slight discrepancy between the GAP 3 catalogue numbers and those defined in Hall-Senior's book. For order 16, there is a mix-up between nummbers 3 and 4: According to Hall-Senior: (16,3) corresponds to Z4 X Z4 (GAP ID (16,2)) and (16,4) corresponds to Z8 X Z2 (GAP ID (16,5)) According to the GAP 3 catalogue: (16,4) corresponds to Z4 X Z4 (GAP ID (16,2)) and (16,3) corresponds to Z8 X Z2 (GAP ID (16,5)) Vipul * Quoting Bettina Eick who at 2012-04-17 08:59:58+0000 (Tue) wrote > > Dear Forum, > > as far as I remember, one can get this information as follows. > > The groups of order 64 as determined by Hall and Senior are part > of the solvable groups library of GAP 3. The id of a group in this > GAP 3 catalogue can be obtained in GAP 4 via Gap3CatalogueIdGroup. > Thus with > > gap> hs := List(AllSmallGroups(64), x -> Gap3CatalogueIdGroup(x)[2]);; > gap> Position(hs, 187); > 245 > > one finds that the Hall-Senior group 187 is SmallGroup(64,245); > > Best wishes, > > Bettina > > > > On Mon, 16 Apr 2012, sumeyra uskudar wrote: > > >dear forum, > >is there a function in gap (or anywhere) which can give the small group id > >of a group when we give the hall-senior number? or visaversa? > > > >Indeed, I need the subgroup structure of the group of order 64 which has > >Hall Senior number 187. but I can not get the small group ID from anywhere > >thus it is hard to define it in GAP. > > > >-- > >*S?meyra Bedir* > >_______________________________________________ > >Forum mailing list > >Forum at mail.gap-system.org > >http://mail.gap-system.org/mailman/listinfo/forum > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From vipul at math.uchicago.edu Wed Apr 18 05:03:27 2012 From: vipul at math.uchicago.edu (Vipul Naik) Date: Tue, 17 Apr 2012 23:03:27 -0500 Subject: [GAP Forum] hall-senior number vs small group id In-Reply-To: <20120418033954.GA17788@math.uchicago.edu> References: <20120418033954.GA17788@math.uchicago.edu> Message-ID: <20120418040327.GB17788@math.uchicago.edu> Hello, I just double-checked the Hall-Senior list provided by Eamonn O'Brien against the GAP 3 catalogue. The only discrepancies are with the abelian groups, probably because abelian groups were treated as a separate layer and hence did not follow the Hall-Senior numbering procedure. Hence, for non-abelian groups (which is most groups!), the code provided by Bettina Eick should suffice. For groups of order 16, there are two discrepancies: gap> F := Filtered([1..14], i -> not(SmallGroupToHallSenior[4][i] = Gap3CatalogueIdGroup(SmallGroup(16,i))[2])); [ 2, 5 ] gap> List(F,i -> StructureDescription(SmallGroup(16,i))); [ "C4 x C4", "C8 x C2" ] For groups of order 32, there are two discrepancies: gap> F := Filtered([1..51], i -> not(SmallGroupToHallSenior[5][i] = Gap3CatalogueIdGroup(SmallGroup(32,i))[2])); [ 3, 16, 21, 36 ] gap> List(F,i -> StructureDescription(SmallGroup(32,i))); [ "C8 x C4", "C16 x C2", "C4 x C4 x C2", "C8 x C2 x C2" ] For groups of order 64, there are two discrepancies: gap> F := Filtered([1..267], i -> not(SmallGroupToHallSenior[6][i] = Gap3CatalogueIdGroup(SmallGroup(64,i))[2])); [ 2, 50, 55, 183, 192, 246 ] gap> List(F,i -> StructureDescription(SmallGroup(64,i))); [ "C8 x C8", "C32 x C2", "C4 x C4 x C4", "C16 x C2 x C2", "C4 x C4 x C2 x C2", "C8 x C2 x C2 x C2" ] Vipul * Quoting Vipul Naik who at 2012-04-17 22:39:54+0000 (Tue) wrote > There is a slight discrepancy between the GAP 3 catalogue numbers and > those defined in Hall-Senior's book. > > For order 16, there is a mix-up between nummbers 3 and 4: > > According to Hall-Senior: > > (16,3) corresponds to Z4 X Z4 (GAP ID (16,2)) and (16,4) corresponds > to Z8 X Z2 (GAP ID (16,5)) > > According to the GAP 3 catalogue: > > (16,4) corresponds to Z4 X Z4 (GAP ID (16,2)) and (16,3) corresponds > to Z8 X Z2 (GAP ID (16,5)) > > Vipul > > * Quoting Bettina Eick who at 2012-04-17 08:59:58+0000 (Tue) wrote > > > > Dear Forum, > > > > as far as I remember, one can get this information as follows. > > > > The groups of order 64 as determined by Hall and Senior are part > > of the solvable groups library of GAP 3. The id of a group in this > > GAP 3 catalogue can be obtained in GAP 4 via Gap3CatalogueIdGroup. > > Thus with > > > > gap> hs := List(AllSmallGroups(64), x -> Gap3CatalogueIdGroup(x)[2]);; > > gap> Position(hs, 187); > > 245 > > > > one finds that the Hall-Senior group 187 is SmallGroup(64,245); > > > > Best wishes, > > > > Bettina > > > > > > > > On Mon, 16 Apr 2012, sumeyra uskudar wrote: > > > > >dear forum, > > >is there a function in gap (or anywhere) which can give the small group id > > >of a group when we give the hall-senior number? or visaversa? > > > > > >Indeed, I need the subgroup structure of the group of order 64 which has > > >Hall Senior number 187. but I can not get the small group ID from anywhere > > >thus it is hard to define it in GAP. > > > > > >-- > > >*S?meyra Bedir* > > >_______________________________________________ > > >Forum mailing list > > >Forum at mail.gap-system.org > > >http://mail.gap-system.org/mailman/listinfo/forum > > > > > > _______________________________________________ > > Forum mailing list > > Forum at mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum From n.j.loughlin at ncl.ac.uk Wed Apr 18 07:10:57 2012 From: n.j.loughlin at ncl.ac.uk (Nick Loughlin) Date: Wed, 18 Apr 2012 07:10:57 +0100 Subject: [GAP Forum] Extending functionality for new kinds of algebraic structures Message-ID: <4F8E5AF1.2030107@ncl.ac.uk> Hello forum, I'm looking to do some computations with binary relations in GAP. There is a connection with the finite dimensional matrix algebras over the Boolean Semiring (i.e. {0,1} with *Minimum* and *Maximum* as *** and *+* respectively). The standard output when computing a BinaryRelation in GAP is Binary Relation on 2 points or similar. This is essentially without any sort of information, so I'd like to change the output slightly, to something more visual - explicitly presenting the output data in said matrix algebra even if not explicitly doing computations in that representation. How would I go about getting GAP to "recognize" the Boolean structure as that of a semiring (/i.e. a GAP /*AdditiveMagma*/with a distributive multiplication on it/) and thereafter construct its matrix algebra? I'd ideally like to do the former in a categorical manner (/in the sense of GAP categories, not in the technical sense/) since I'll probably use other semirings for related work, and so that I can, for instance, define the variable '*a*' to be 1 regarded as an element of this semiring, so evaluating that '*a+a*' returns 1 instead of 2 (akin, I'd imagine, to the way that GAP differentiates *LieMatrix*es from *OrdinaryMatrix*es). I've implicitly assumed that the construction *FullMatrixAlgebra(,)* defined over a ring is defined in such a way that it would scale in its current form to accommodating what I've detailed; please correct me if this is not the case. Many thanks in advance, Nick Loughlin From williamdemeo at gmail.com Wed Apr 18 13:49:08 2012 From: williamdemeo at gmail.com (William DeMeo) Date: Wed, 18 Apr 2012 02:49:08 -1000 Subject: [GAP Forum] complex product of two groups Message-ID: Dear Forum, If I have two subgroups H and K of a group G, what's the best way to form what I think is sometimes called the "complex product"? That is, I want to form the set HK = { hk : h in H, k in K } (I don't want the group generated by H and K.) Below is a listing of the obvious/dumb algorithm, but I suspect there's a better way to do this in GAP. If someone knows of one, please let me know. Thanks! -William HK:=[]; for h in H do for k in K do if h*k not in HK then Add(HK,h*k); fi; od; od; From hedtke at me.com Wed Apr 18 14:10:17 2012 From: hedtke at me.com (Ivo Hedtke) Date: Wed, 18 Apr 2012 15:10:17 +0200 Subject: [GAP Forum] complex product of two groups In-Reply-To: References: Message-ID: Hi William, I think "DirectProduct" is your friend: gap> H:=Group((1,2,3)); Group([ (1,2,3) ]) gap> K:=Group((1,2,4)); Group([ (1,2,4) ]) gap> DirectProduct(H,K); Group([ (1,2,3), (4,5,6) ]) Ivo. Am 18.04.2012 um 14:49 schrieb William DeMeo: > Dear Forum, > > If I have two subgroups H and K of a group G, what's the best way to > form what I think is sometimes called the "complex product"? That is, > I want to form the set > > HK = { hk : h in H, k in K } > > (I don't want the group generated by H and K.) > > Below is a listing of the obvious/dumb algorithm, but I suspect > there's a better way to do this in GAP. If someone knows of one, > please let me know. > > Thanks! > -William > > > HK:=[]; > for h in H do > for k in K do > if h*k not in HK then > Add(HK,h*k); > fi; > od; > od; > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From sandeepr.murthy at gmail.com Wed Apr 18 14:11:24 2012 From: sandeepr.murthy at gmail.com (Sandeep Murthy) Date: Wed, 18 Apr 2012 14:11:24 +0100 Subject: [GAP Forum] complex product of two groups In-Reply-To: References: Message-ID: Hi, This command ListX( H, K, PROD ) will do the product, seems fairly quick. SRM On 18 Apr 2012, at 13:49, William DeMeo wrote: > Dear Forum, > > If I have two subgroups H and K of a group G, what's the best way to > form what I think is sometimes called the "complex product"? That is, > I want to form the set > > HK = { hk : h in H, k in K } > > (I don't want the group generated by H and K.) > > Below is a listing of the obvious/dumb algorithm, but I suspect > there's a better way to do this in GAP. If someone knows of one, > please let me know. > > Thanks! > -William > > > HK:=[]; > for h in H do > for k in K do > if h*k not in HK then > Add(HK,h*k); > fi; > od; > od; > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From williamdemeo at gmail.com Wed Apr 18 14:17:31 2012 From: williamdemeo at gmail.com (William DeMeo) Date: Wed, 18 Apr 2012 03:17:31 -1000 Subject: [GAP Forum] complex product of two groups In-Reply-To: References: Message-ID: Thanks for the suggestion, but the direct product is not my friend in this case. (In particular, the direct product is a group. HK is not always a group.) On Apr 18, 2012 3:11 AM, "Ivo Hedtke" wrote: > Hi William, > > I think "DirectProduct" is your friend: > > gap> H:=Group((1,2,3)); > Group([ (1,2,3) ]) > gap> K:=Group((1,2,4)); > Group([ (1,2,4) ]) > gap> DirectProduct(H,K); > Group([ (1,2,3), (4,5,6) ]) > > Ivo. > > Am 18.04.2012 um 14:49 schrieb William DeMeo: > > > Dear Forum, > > > > If I have two subgroups H and K of a group G, what's the best way to > > form what I think is sometimes called the "complex product"? That is, > > I want to form the set > > > > HK = { hk : h in H, k in K } > > > > (I don't want the group generated by H and K.) > > > > Below is a listing of the obvious/dumb algorithm, but I suspect > > there's a better way to do this in GAP. If someone knows of one, > > please let me know. > > > > Thanks! > > -William > > > > > > HK:=[]; > > for h in H do > > for k in K do > > if h*k not in HK then > > Add(HK,h*k); > > fi; > > od; > > od; > > > > _______________________________________________ > > Forum mailing list > > Forum at mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > > From burkhard at hoefling.name Wed Apr 18 14:41:18 2012 From: burkhard at hoefling.name (=?iso-8859-1?Q?Burkhard_H=F6fling?=) Date: Wed, 18 Apr 2012 15:41:18 +0200 Subject: [GAP Forum] complex product of two groups In-Reply-To: References: Message-ID: <50E74E5C-9839-467A-8B3B-6C94D5DE07A1@hoefling.name> > HK:=[]; > for h in H do > for k in K do > if h*k not in HK then > Add(HK,h*k); > fi; > od; > od; To avoid checking for duplicates, you could use HK := []; for h in H do for k in RightTransversal (K, Intersection (H, K)) do Add (HK, h*k); od; od; But do you really want HK as a list? You might be better off representing it as a list of riight cosets of H (or left cosets of K). Cheers Burkhard. From amandel at gmail.com Wed Apr 18 14:54:18 2012 From: amandel at gmail.com (Arnaldo Mandel) Date: Wed, 18 Apr 2012 10:54:18 -0300 Subject: [GAP Forum] complex product of two groups In-Reply-To: References: Message-ID: On Wed, Apr 18, 2012 at 10:11 AM, Sandeep Murthy wrote: > Hi, > > This command > > ListX( H, K, PROD ) > Most likely, Set(ListX( H, K, PROD )) will give what he wants. > > will do the product, seems fairly quick. > > SRM > > > On 18 Apr 2012, at 13:49, William DeMeo wrote: > > > Dear Forum, > > > > If I have two subgroups H and K of a group G, what's the best way to > > form what I think is sometimes called the "complex product"? That is, > > I want to form the set > > > > HK = { hk : h in H, k in K } > > > > (I don't want the group generated by H and K.) > > > > Below is a listing of the obvious/dumb algorithm, but I suspect > > there's a better way to do this in GAP. If someone knows of one, > > please let me know. > > > > Thanks! > > -William > > > > > > HK:=[]; > > for h in H do > > for k in K do > > if h*k not in HK then > > Add(HK,h*k); > > fi; > > od; > > od; > > > > _______________________________________________ > > Forum mailing list > > Forum at mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From hulpke at me.com Wed Apr 18 15:02:02 2012 From: hulpke at me.com (Alexander Hulpke) Date: Wed, 18 Apr 2012 08:02:02 -0600 Subject: [GAP Forum] complex product of two groups In-Reply-To: <50E74E5C-9839-467A-8B3B-6C94D5DE07A1@hoefling.name> References: <50E74E5C-9839-467A-8B3B-6C94D5DE07A1@hoefling.name> Message-ID: <8C7C68F2-9B0B-4766-880A-F370F2AE278E@me.com> Dear William, If you use DoubleCoset(H,One(H),K) creation is very cheap and membership tests reasonable (they use a decomposition as union of right cosets). You also could get elements if you really wanted. However if you do other set operations (union, intersection etc.) iGAP likely will unpack to a list. Best, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From hulpke at math.colostate.edu Wed Apr 18 17:48:00 2012 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Wed, 18 Apr 2012 10:48:00 -0600 Subject: [GAP Forum] subgroup lattices In-Reply-To: References: Message-ID: Dear Forum, Dear Mr. Uskudar, There is no Windows version of XGAP (and unlikely to ever be one). The next release of GAP however will contain a function `DotFileLatticeSubgroups(lattice, filename)' which writes out a description of the lattice as a file viewable (as picture) with the `graphviz' suite of programs. (On a Mac, OmniGraffle does a nice job of importing and editing such files, without doubt there also is compatible Windows software.) As this might be of help I have made a copy of this function available under http://www.math.colostate.edu/~hulpke/latticedot.g Just read this file into GAP4.4. Regards, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From vtvan2k1 at gmail.com Thu Apr 19 03:49:00 2012 From: vtvan2k1 at gmail.com (Vo Tam Van) Date: Thu, 19 Apr 2012 10:49:00 +0800 Subject: [GAP Forum] about the "Generalized Minimum Distance Decoding of Reed-Solomon Codes" Message-ID: Dear all I am looking for the source codes of generalized minimum distance (GMD) decoding of Reed-Solomon codes. Please share it to me if you do not mind. Thank you very much and look forward to your reply. Best Regards, Tam Van From fieldsj1 at southernct.edu Fri Apr 20 03:42:35 2012 From: fieldsj1 at southernct.edu (Joe Fields) Date: Thu, 19 Apr 2012 22:42:35 -0400 Subject: [GAP Forum] about the "Generalized Minimum Distance Decoding of Reed-Solomon Codes" In-Reply-To: References: Message-ID: <1334889755.3670.9.camel@ada.scsu.southernct.edu> Dear Tam Van, The source code for decoders for Reed-Solomon codes are available either by the usual route of downloading the entire Guava package (from http://www.southernct.edu/~fields/Guava/) or, if you prefer, you can just look at the source on the web at http://www.southernct.edu/~fields/Guava/lib/decoders.gi Ordinary Reed-Solomon codes use a BCH decoding function and generalized RS codes have two special decoders called GeneralizedReedSolomonDecoder and GeneralizedReedSolomonDecoderGao. Just search for those function names in decoders.gi to find the source. Best wishes, Joe Fields On Wed, 2012-04-18 at 22:49 -0400, Vo Tam Van wrote: > Dear all > > I am looking for the source codes of generalized minimum distance (GMD) > decoding of Reed-Solomon codes. Please share it to me if you do not mind. > Thank you very much and look forward to your reply. > > Best Regards, > > Tam Van > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > -- Joseph E. Fields, PhD Mathematics Department Southern Connecticut State University http://www.southernct.edu/~fields From mnewman at uottawa.ca Wed Apr 25 20:28:16 2012 From: mnewman at uottawa.ca (mike newman) Date: Wed, 25 Apr 2012 15:28:16 -0400 (EDT) Subject: [GAP Forum] problem with help viewer -- no longer uses xpdf Message-ID: Hello, I am suddenly no longer able to use the GAP help viewer in xpdf mode; it only offers help in "screen" mode. I'm not sure exactly when this happened, but it has definitely been working with xpdf before (and for a long time). I currently have SetHelpViewer("xpdf"); in my .gaprc Just to make sure, after I start gap I can try: gap> SetHelpViewer(); #I Trying to use #I [ "xpdf", "screen" ] #I (in this order) as help viewer. which looks correct to me. I have tried SetHelpViewer("acroread");, and have also tried re-executing these commands in GAP (as opposed to just in the .gaprc). In all cases help files come up as per "screen". So if I type (for instance) gap> ?list I get text within GAP, as opposed to xpdf in another window. By the way, xpdf and acroread are both installed on my system, and in copious use for some time. For what it's worth I am running ubuntu, version 10.4. If anyone has encountered this and knows what's going on I would appreciate hearing from you! Thanks in advance. --mike From ashkanramiz at yahoo.com Tue May 8 03:45:58 2012 From: ashkanramiz at yahoo.com (Ashkan Ramiz) Date: Mon, 7 May 2012 19:45:58 -0700 (PDT) Subject: [GAP Forum] Question Message-ID: <1336445158.60742.YahooMailNeo@web121205.mail.ne1.yahoo.com> Dear forum, ? I would like to know how we can build the group G=2^3:7 in gap. Best wishes, Ashkan From sandeepr.murthy at gmail.com Tue May 8 10:37:36 2012 From: sandeepr.murthy at gmail.com (Sandeep Murthy) Date: Tue, 8 May 2012 10:37:36 +0100 Subject: [GAP Forum] Question In-Reply-To: <1336445158.60742.YahooMailNeo@web121205.mail.ne1.yahoo.com> References: <1336445158.60742.YahooMailNeo@web121205.mail.ne1.yahoo.com> Message-ID: <145A0298-55D0-4ECB-867B-9CCD7CC268BF@gmail.com> Hi, I think you mean the semidirect product G = (C_2)^3 \rtimes C_7. If so, then the following code: N := DirectProduct( CyclicGroup( 2 ), CyclicGroup( 2 ), CyclicGroup( 2 ) ); A := AutomorphismGroup( N ); a := Filtered( Elements( A ), x -> Order( x ) = 7 )[1]; C7 := CyclicGroup( 7 ); c := C7.1; hom := GroupHomomorphismByImages( C7, A, [c], [a] ); G := SemidirectProduct( C7, hom, N ); should construct the group. To check this is the right group StructureDescription( G ); IdSmallGroup( G ); should display "(C2 x C2 x C2) : C7" [ 56, 11 ] Sincerely, Sandeep. On 8 May 2012, at 03:45, Ashkan Ramiz wrote: > Dear forum, I would like to know how we can build the group G=2^3:7 in gap. > Best wishes, > Ashkan > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From svikasjadhav at gmail.com Wed May 9 08:24:28 2012 From: svikasjadhav at gmail.com (Vikas Jadhav) Date: Wed, 9 May 2012 12:54:28 +0530 Subject: [GAP Forum] (no subject) Message-ID: Dear Sir/Madam, I had an algorithm and based on the algorithm i had written a program in Gap. I want to know the complexity of my program. Can someone tell me how to check the complexity or efficiency of an program? Vikas From marek at mitros.org Fri May 11 11:49:06 2012 From: marek at mitros.org (Marek Mitros) Date: Fri, 11 May 2012 12:49:06 +0200 Subject: [GAP Forum] Overloading functions Message-ID: Hi, I tried to define ComplexConjugate function for octonions - see below. In this is my function for conjugating the octonion. gap> ComplexConjugate:=function(o) return conj(o); end; Variable: 'ComplexConjugate' is read only I would like to use function which use . Is there way in GAP to overload standard function, so it works also for my octonions ? The workaround would be to copy function from lib/matrix.gi and modify but it is less convenient. Regards, Marek From linda.j.cupples at gmail.com Fri May 11 16:04:11 2012 From: linda.j.cupples at gmail.com (Linda Cupples) Date: Sat, 12 May 2012 01:04:11 +1000 Subject: [GAP Forum] ConjugacyClasses function question Message-ID: Hey, I've been trying to find a way to determine the elements in each of the conjugacy classes that is given by gap, My code is pretty much, F:=FreeGroup("a","b"); a:=F.1;;b:=F.2;; G:=F/[a^4,b^4,(a*b)^2,(a^3*b)^2]; ConjugacyClasses(G); [ ^G, a^G, b^G, a^2*b^2^G, a^2^G, a*b^G, a^3^G, a^2*b^G, b^2^G, a^3*b^G ] List(ConjugacyClasses(G), Size); [ 1, 2, 2, 1, 1, 2, 2, 2, 1, 2 ] Is it possible to retrive the actual elements in each of the conjugacy classes of size 2? Instead of the output "a^G", a and its conjugate? Thanks in advance Linda From stefan at mcs.st-and.ac.uk Fri May 11 16:17:09 2012 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Fri, 11 May 2012 16:17:09 +0100 (BST) Subject: [GAP Forum] ConjugacyClasses function question In-Reply-To: References: Message-ID: Dear Forum, Linda Cupples asked: > I've been trying to find a way to determine the elements in each of the > conjugacy classes that is given by gap, > > My code is pretty much, > > F:=FreeGroup("a","b"); > > a:=F.1;;b:=F.2;; > G:=F/[a^4,b^4,(a*b)^2,(a^3*b)^2]; > > ConjugacyClasses(G); > [ ^G, a^G, b^G, a^2*b^2^G, a^2^G, a*b^G, a^3^G, a^2*b^G, > b^2^G, a^3*b^G ] > > List(ConjugacyClasses(G), Size); > [ 1, 2, 2, 1, 1, 2, 2, 2, 1, 2 ] > > Is it possible to retrive the actual elements in each of the conjugacy > classes of size 2? Instead of the output "a^G", a and its conjugate? The answer is yes. -- Just apply `AsList' to the conjugacy classes: gap> List(ConjugacyClasses(G),AsList); [ [ ], [ a, b^-1*a*b ], [ b, a^-1*b*a ], [ a^2*b^2 ], [ a^2 ], [ a*b, b*a ], [ a^3, b^-1*a^3*b ], [ a^2*b, a*b*a ], [ b^2 ], [ a^3*b, a^2*b*a ] ] Hope this helps, Stefan Kohl From sandeepr.murthy at gmail.com Fri May 11 16:18:42 2012 From: sandeepr.murthy at gmail.com (Sandeep Murthy) Date: Fri, 11 May 2012 16:18:42 +0100 Subject: [GAP Forum] ConjugacyClasses function question In-Reply-To: References: Message-ID: <391E663A-259B-4D16-9DE8-C2B225572FA4@gmail.com> Hi, cl2 := Filtered( ConjugacyClasses( G ), class -> Size( class ) = 2 ); will give you the list of conjugacy classes of size 2. Then you can retrieve the elemtents of any class in this list by Elements( cl2[1] ); Elements( cl2[2] ); etc. Sincerely, Sandeep. On 11 May 2012, at 16:04, Linda Cupples wrote: > Hey, > > I've been trying to find a way to determine the elements in each of the > conjugacy classes that is given by gap, > > My code is pretty much, > > F:=FreeGroup("a","b"); > > a:=F.1;;b:=F.2;; > G:=F/[a^4,b^4,(a*b)^2,(a^3*b)^2]; > > ConjugacyClasses(G); > [ ^G, a^G, b^G, a^2*b^2^G, a^2^G, a*b^G, a^3^G, a^2*b^G, > b^2^G, a^3*b^G ] > > List(ConjugacyClasses(G), Size); > [ 1, 2, 2, 1, 1, 2, 2, 2, 1, 2 ] > > > Is it possible to retrive the actual elements in each of the conjugacy > classes of size 2? Instead of the output "a^G", a and its conjugate? > > Thanks in advance > > Linda > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From marek at mitros.org Fri May 11 16:21:32 2012 From: marek at mitros.org (Marek Mitros) Date: Fri, 11 May 2012 17:21:32 +0200 Subject: [GAP Forum] ConjugacyClasses function question Message-ID: Hi, There is function Representative which you can use. List(ConjugacyClasses(G), Representative); returns representative element from each conjugacy class. If the size of conjugacy class is small then you can use AsList function to convert conjugacy class to list of its elements. cg:=ConjugacyClasses(G); c1:=AsList(cg[2]);; Regards, Marek From suskudar at gmail.com Sat May 12 20:36:14 2012 From: suskudar at gmail.com (sumeyra uskudar) Date: Sat, 12 May 2012 22:36:14 +0300 Subject: [GAP Forum] central product Message-ID: Dear forum, Is there a way to define a central product in GAP, and how do we define the common central factor in this function? For example we want to define G:=Q8.K(the central product), where, Q8 is the quaternion group of order 8 presented as ; and K= with te common central factor being x^2y^2. Thanks in advance, -- *S?meyra Bedir* From msorouhesh at gmail.com Mon May 14 08:44:58 2012 From: msorouhesh at gmail.com (Mr. Sorouhesh) Date: Mon, 14 May 2012 12:14:58 +0430 Subject: [GAP Forum] Contain a fixed subgroup Message-ID: Suppose we have a finite group such that know all its subgroups. Now, fix a certain subgroup in the group.Can we use GAP to list all subgroups of the group that contain our fixed subgroup? Best From williamdemeo at gmail.com Mon May 14 09:17:16 2012 From: williamdemeo at gmail.com (William DeMeo) Date: Sun, 13 May 2012 22:17:16 -1000 Subject: [GAP Forum] Contain a fixed subgroup In-Reply-To: References: Message-ID: Dear Mr. Sorouhesh, I believe the command IntermediateSubgroups does what you want. Here's an example (where I'm calling your "fixed" subgroup H): gap> G := SymmetricGroup(4);; gap> ccsg := ConjugacyClassesSubgroups(G);; gap> H := Representative(ccsg[5]);; # the Klein-4 group gap> intHG := IntermediateSubgroups(G,H); rec( subgroups := [ Group([ (1,4)(2,3), (1,3)(2,4), (3,4) ]), Group([ (1,4)(2,3), (1,3)(2,4), (2,3) ]), Group([ (1,4)(2,3), (1,3)(2,4), (2,4) ]), Group([ (1,4)(2,3), (1,3)(2,4), (2,4,3) ]) ], inclusions := [ [ 0, 1 ], [ 0, 2 ], [ 0, 3 ], [ 0, 4 ], [ 1, 5 ], [ 2, 5 ], [ 3, 5 ], [ 4, 5 ] ] ) The subgroups field of the intHG structure gives the list of subgroups of G that contain H. You can access the i-th intermediate subgroup using intHG.subgroups[i]. (Note that H and G are not included in the intHG.subgroups list.) The inclusions field gives the lattice of intermediate subgroups by showing the covering relations. -William On Sun, May 13, 2012 at 9:44 PM, Mr. Sorouhesh wrote: > Suppose we have a finite group such that know all its subgroups. Now, > ? fix a certain subgroup in the group.Can we use GAP to list all > ? subgroups of the group that contain our fixed subgroup? > ? Best > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum -- William J. DeMeo Department of Mathematics University of Hawaii at Manoa phone: 808-298-4874 url: http://math.hawaii.edu/~williamdemeo From suskudar at gmail.com Mon May 14 11:15:24 2012 From: suskudar at gmail.com (sumeyra uskudar) Date: Mon, 14 May 2012 13:15:24 +0300 Subject: [GAP Forum] central product In-Reply-To: <4FAF1564.70107@gmx.de> References: <4FAF1564.70107@gmx.de> Message-ID: Actually, the function turned out to be inconsistent unfortunately. Can it be checked once again? Or any other comments for the central product? 2012/5/13 Benjamin Sambale > Hi, > > some time ago I wrote the following function just for myself: > > CentralProduct:=function(arg) > local G,H,D,f,f1,f2,S,g,M; > if Length(arg)=1 and IsList(arg[1]) then arg:=arg[1]; fi; > if Length(arg)=0 then return TrivialGroup(); fi; > if Length(arg)=1 then return arg[1]; fi; > G:=arg[1]; > H:=arg[2]; > D:=DirectProduct(G,H); > f:=IsomorphismGroups(Center(G),Center(H)); > if f=fail then > if IsPGroup(Center(G)) and IsCyclic(Center(H)) then > > f:=IsomorphismGroups(Center(G),Filtered(Subgroups(Center(H)),M->Size(M)=Size(Center(G)))[1]); > if f=fail then Error("Centers are not compatible"); fi; > else > > f:=IsomorphismGroups(Filtered(Subgroups(Center(G)),M->Size(M)=Size(Center(H)))[1],Center(H)); > if f=fail then Error("Centers are not compatible"); fi; > fi; > fi; > f1:=Embedding(D,1); > f2:=Embedding(D,2); > S:=Set(Center(G),g->g^(f1)*(g^(-1))^(f*f2)); > Remove(arg,1); > arg[1]:=FactorGroup(D,Subgroup(D,S)); > return CentralProduct(arg); > end; > > No warranty! > > Best wishes, > Benjamin > > Am 12.05.2012 12:36, schrieb sumeyra uskudar: > > Dear forum, >> >> Is there a way to define a central product in GAP, and how do we define >> the >> common central factor in this function? >> For example we want to define G:=Q8.K(the central product), >> where, Q8 is the quaternion group of order 8 presented as ; >> >> and K= >> with te common central factor being x^2y^2. >> >> Thanks in advance, >> >> -- *S?meyra Bedir* From shahmaths_problem at hotmail.com Mon May 14 11:48:59 2012 From: shahmaths_problem at hotmail.com (muhammad shah) Date: Mon, 14 May 2012 15:48:59 +0500 Subject: [GAP Forum] Contain a fixed subgroup In-Reply-To: References: Message-ID: Dear Sorouhesh,Here is a simple method for the solution of your problem. Load package SONATA.It contains a command Subgroups which find all subgroups of a group G. Then filter over this set for those which contain your specified subgroup h. For example I take s4 as G and its fifth subgroup as h then GAP gives: gap> LoadPackage("sonata");; gap> s_4:=(SymmetricGroup(IsPermGroup,4)); Sym( [ 1 .. 4 ] ) gap> allsubgrps:=Subgroups(s_4);; gap> Size(last); 30 gap> h:=allsubgrps[5]; Group([ (1,2) ]) gap> Filtered(allsubgrps, t -> IsSubgroup(t,h)); [ Group([ (1,2) ]), Group([ (1,2)(3,4), (1,2) ]), Group([ (1,3), (1,3,2) ]), Group([ (1,4), (1,4,2) ]), Group([ (1,3)(2,4), (1,4)(2,3), (1,2) ]), Group([ (1,3)(2,4), (1,4)(2,3), (2,4,3), (1,2) ]) ] gap> Regards, Muhammad Shah > Date: Mon, 14 May 2012 12:14:58 +0430 > From: msorouhesh at gmail.com > To: forum at gap-system.org > Subject: [GAP Forum] Contain a fixed subgroup > > Suppose we have a finite group such that know all its subgroups. Now, > fix a certain subgroup in the group.Can we use GAP to list all > subgroups of the group that contain our fixed subgroup? > Best > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From mana_tari at yahoo.com Mon May 14 16:00:31 2012 From: mana_tari at yahoo.com (mana Tari) Date: Mon, 14 May 2012 16:00:31 +0100 (BST) Subject: [GAP Forum] Find the set of sizes of elements with the same order Message-ID: <1337007631.48170.YahooMailNeo@web132404.mail.ird.yahoo.com> Dear Forum, ? Let pi _{e}(G) be the set of element orders of group G. Also let s_{i}?be the number of elements of order i in G, and nse(G):={s_{i}|i?in?pi _{e}(G)}, the set of sizes of elements with the same order. ? Is there any code?in GAP for?find nse(G)?? ? Thanks in advance, ? Mana From rm43 at evansville.edu Mon May 14 16:41:59 2012 From: rm43 at evansville.edu (Robert Morse) Date: Mon, 14 May 2012 17:41:59 +0200 Subject: [GAP Forum] Find the set of sizes of elements with the same order In-Reply-To: <1337007631.48170.YahooMailNeo@web132404.mail.ird.yahoo.com> References: <1337007631.48170.YahooMailNeo@web132404.mail.ird.yahoo.com> Message-ID: This list of orders is called the order classes of a group G. The GAP code to compute this is Collected(List(G,Order)); These are invariants for finite abelian groups. But not so otherwise. Robert F. Morse On Mon, May 14, 2012 at 5:00 PM, mana Tari wrote: > Dear Forum, > > Let pi _{e}(G) be the set of element orders of group G. > Also let s_{i}?be the number of elements of order i in G, > and nse(G):={s_{i}|i?in?pi _{e}(G)}, the set of sizes of > elements with the same order. > > Is there any code?in GAP for?find nse(G)? > > Thanks in advance, > > Mana > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From pbrooksb at bucknell.edu Mon May 14 16:45:21 2012 From: pbrooksb at bucknell.edu (Peter Brooksbank) Date: Mon, 14 May 2012 11:45:21 -0400 Subject: [GAP Forum] Find the set of sizes of elements with the same order In-Reply-To: <1337007631.48170.YahooMailNeo@web132404.mail.ird.yahoo.com> References: <1337007631.48170.YahooMailNeo@web132404.mail.ird.yahoo.com> Message-ID: Dear Mana, The following returns the set you seek: Set (List (Collected (List (Elements (G), Order)), x -> x[2])); It should be effective for groups of modest order. Best Wishes, Peter On Mon, May 14, 2012 at 11:00 AM, mana Tari wrote: > Dear Forum, > > Let pi _{e}(G) be the set of element orders of group G. > Also let s_{i} be the number of elements of order i in G, > and nse(G):={s_{i}|i in pi _{e}(G)}, the set of sizes of > elements with the same order. > > Is there any code in GAP for find nse(G)? > > Thanks in advance, > > Mana > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From shahmaths_problem at hotmail.com Mon May 14 18:06:44 2012 From: shahmaths_problem at hotmail.com (muhammad shah) Date: Mon, 14 May 2012 22:06:44 +0500 Subject: [GAP Forum] Find the set of sizes of elements with the same order In-Reply-To: <1337007631.48170.YahooMailNeo@web132404.mail.ird.yahoo.com> References: <1337007631.48170.YahooMailNeo@web132404.mail.ird.yahoo.com> Message-ID: Dear Mana, Find attached is a function written by Alexander Hulpke for your purpose. Copy it into "bin" and read it by GAP as gap> Read("orderFrequency"); gap> s_5:=SymmetricGroup(IsPermGroup,5); Sym( [ 1 .. 5 ] ) gap> orderFrequency(s_5); [Order of element, Number of that order]=[ [ 1, 1 ], [ 2, 25 ], [ 3, 20 ], [ 4, 30 ], [ 5, 24 ], [ 6, 20 ] ] With best wishes, Muhammad Shah > Date: Mon, 14 May 2012 16:00:31 +0100 > From: mana_tari at yahoo.com > To: forum at gap-system.org > Subject: [GAP Forum] Find the set of sizes of elements with the same order > > Dear Forum, > > Let pi _{e}(G) be the set of element orders of group G. > Also let s_{i} be the number of elements of order i in G, > and nse(G):={s_{i}|i in pi _{e}(G)}, the set of sizes of > elements with the same order. > > Is there any code in GAP for find nse(G)? > > Thanks in advance, > > Mana > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From ardiegosss at gmail.com Tue May 15 11:09:40 2012 From: ardiegosss at gmail.com (diego sulca) Date: Tue, 15 May 2012 12:09:40 +0200 Subject: [GAP Forum] From crystallographic to PcpGroups Message-ID: Dear forum: Is there a function "function(G)" such that for a given group G (which I already know it is polycyclic) it returns a Pcp group=function(G) which is isomorphic to G?. I am mainly interested when the group G is a space group. They are in the package Cryst but they are not as Pcp groups. Kind regards Diego Sulca From beick at tu-bs.de Tue May 15 11:42:56 2012 From: beick at tu-bs.de (Bettina Eick) Date: Tue, 15 May 2012 12:42:56 +0200 (CEST) Subject: [GAP Forum] From crystallographic to PcpGroups In-Reply-To: References: Message-ID: Dear Diego Sulca, dear Forum, > Is there a function "function(G)" such that for a given group G (which I > already know it is polycyclic) it returns a Pcp group=function(G) which is > isomorphic to G?. > I am mainly interested when the group G is a space group. They are in the > package Cryst but they are not as Pcp groups. There is a function IsomorphismPcpGroup. This applies to space groups. Best wishes, Bettina From shubh at iitg.ernet.in Thu May 17 06:30:13 2012 From: shubh at iitg.ernet.in (shubh at iitg.ernet.in) Date: Thu, 17 May 2012 11:00:13 +0530 Subject: [GAP Forum] Codes for Unit Regular Semigroup Message-ID: <96ecb16fbd2f4b08276c9215b1d694d6.squirrel@webmail.iitg.ernet.in> Dear Sir, I have been using GAP4, Version: 4.4.12. Please tell me, If there is any code for Unit Regular Semigroup in GAP. That means, can we give a code in GAP to tell whether a semigroup is Unit Regular or not. I tried with the code: > IsUnitRegularSemigroup(s); which is not working. I would be very grateful if you could help me with this query. With Regards, \-Shubh -- Shubh N. Singh Research Scholar Department of Mathematics IIT Guwahati - 781039 Email: shubh at iitg.ernet.in Mob. no.: +91-9864221370 From rsw9 at cornell.edu Mon May 14 20:46:46 2012 From: rsw9 at cornell.edu (Russ Woodroofe) Date: Mon, 14 May 2012 14:46:46 -0500 Subject: [GAP Forum] Contain a fixed subgroup In-Reply-To: References: Message-ID: <05784DBB-22AE-4EB9-8FF1-B55448196BE3@cornell.edu> Dear Sorouhesh, If you want a more visual representation, you could also do this in xgap (or Gap.app on the mac): If G is your group and H is your subgroup, run GraphicSubgroupLattice(G); H; Then (from the graphic subgroup lattice sheet) select the menu item: Subgroups | Insert Vertices from GAP Select the G and H on the sheet by shift-clicking them, then select the menu item: Subgroups | Intermediate Subgroups However, this may use the GAP call that William pointed out underneath, which you said had some problem. What problem did that have? Best, --Russ On May 14, 2012, at 5:48 AM, muhammad shah wrote: > > Dear Sorouhesh,Here is a simple method for the solution of your problem. > Load > package SONATA.It contains a command Subgroups which find all subgroups > of a group G. Then filter over this set for those which contain your > specified subgroup h. > For example I take s4 as G and its fifth subgroup as h then GAP gives: > gap> LoadPackage("sonata");; > gap> s_4:=(SymmetricGroup(IsPermGroup,4)); > Sym( [ 1 .. 4 ] ) > gap> allsubgrps:=Subgroups(s_4);; > gap> Size(last); > 30 > gap> h:=allsubgrps[5]; > Group([ (1,2) ]) > gap> Filtered(allsubgrps, t -> IsSubgroup(t,h)); > [ Group([ (1,2) ]), Group([ (1,2)(3,4), (1,2) ]), Group([ (1,3), (1,3,2) ]), > Group([ (1,4), (1,4,2) ]), Group([ (1,3)(2,4), (1,4)(2,3), (1,2) ]), > Group([ (1,3)(2,4), (1,4)(2,3), (2,4,3), (1,2) ]) ] > gap> > Regards, > Muhammad Shah > >> Date: Mon, 14 May 2012 12:14:58 +0430 >> From: msorouhesh at gmail.com >> To: forum at gap-system.org >> Subject: [GAP Forum] Contain a fixed subgroup >> >> Suppose we have a finite group such that know all its subgroups. Now, >> fix a certain subgroup in the group.Can we use GAP to list all >> subgroups of the group that contain our fixed subgroup? >> Best >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From w_becker at hotmail.com Mon May 21 20:41:07 2012 From: w_becker at hotmail.com (Walter Becker) Date: Mon, 21 May 2012 11:41:07 -0800 Subject: [GAP Forum] Group Construction program Message-ID: I have been using the GrpConst program of Besche and Eick to get lists of groups of various orders. The program fails when one asks for groups involving an 11 cubed set of grooups, e.g., construct all groups of order 11^3 times 5^2, or 11^3 times 5^3. Is my problem that these group are too large for the program to handle? Has anyone tried to construct these groups Walter Becker From rmtodd at servalan.servalan.com Tue May 22 19:16:39 2012 From: rmtodd at servalan.servalan.com (Richard Todd) Date: Tue, 22 May 2012 13:16:39 -0500 Subject: [GAP Forum] Bug showing up in computations with polynomials over finite fields. Message-ID: I've been working on some stuff involving polynomials over fields GF(2^m), and have come across a most peculiar bug where sometimes the GcdRepresentation function fails. This is on GAP 4.4.12 on FreeBSD 10-CURRENT on amd64, but the same result appears with GAP 4.4.12 on Ubuntu 10.04.4/i386. I've come up with the following test case: consider this function: ---------------------------------------------------------------------- Test1 := function() local f, x, y, t; x := Indeterminate(GF(2), "x"); y := Indeterminate(GF(4), "y"); f := x^75+x^74+x^73+x^72+x^69+x^68+x^65+x^63+x^61+x^57+x^53+x^51+x^49+x^48+x^47+x^4\ 6+x^44+x^43+x^41+x^40+x^38+x^36+x^35+x^32+x^31+x^28+x^26+x^24+x^20+x^16+x^14+x\ ^12+x^11+x^10+x^9+x^7+x^6+x^4+x^3+Z(2)^0; t:= y^3+Z(2^2)*y^2+Z(2^2)*y+Z(2)^0; Print(GcdRepresentation(f, (x^111+1)/f), "\n"); Print(GcdRepresentation(t, (y^5+1)/t), "\n"); Print(GcdRepresentation(f, (x^111+1)/f), "\n"); end; ---------------------------------------------------------------------- When run, we get the following result: gap> Test1(); [ x^35+x^31+x^29+x^21+x^17+x^13+x^7+x^3, x^74+x^72+x^68+x^48+x^46+x^44+x^40+x^38+x^36+x^32+x^28+x^26+x^24+x^20+x^16+x\ ^14+x^12+x^10+x^6+x^4+Z(2)^0 ] [ Z(2^2)*y, Z(2^2)*y^2+Z(2)^0 ] Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `PROD' on 2 arguments called from tmp[2] * ns[i] called from GcdRepresentation( f, (x ^ 111 + 1) / f ) 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> tmp[2]; fail brk> Note that the third call to GcdRepresentation in Test1() fails, even though it's the exact same polynomial used in the *first* call, which worked and gave the correct result. Further investigation finds that taking out the *second* call to GcdRepresentation (the one with a polynomial over GF(4)) allows the last call to GcdRepresentation to succeed -- somehow the 2nd call is messing things up for the subsequent call. Diving into the GAP code a bit further, I came up with the following test, using a copy of the GCDRepresentationOp function with some debugging prints and assertions hacked in: ---------------------------------------------------------------------- GRO:= function( R, x, y ) local f, g, h, fx, gx, hx, q, t, i; i:=0; f := x; fx := One( R ); g := y; gx := Zero( R ); while g <> Zero( R ) do i:=i+1; t := QuotientRemainder( R, f, g ); h := g; hx := gx; g := t[2]; gx := fx - t[1] * gx; Assert(0, gx + t[1]*hx = fx); f := h; fx := hx; Print(i, " t=", t, " f=", f, " fx=", fx, " g=", g, " gx=", gx, "\n"); od; q := Quotient(R, StandardAssociate(R, f), f); Print("q=", q, "\n"); if y = Zero( R ) then return [ q * fx, Zero( R ) ]; else Print(" q*(f-fx*x)=", q * (f - fx * x), " y=", y, "\n"); return [ q * fx, Quotient( R, q * (f - fx * x), y ) ]; fi; end; Test1 := function() local f, x, y, t; x := Indeterminate(GF(2), "x"); y := Indeterminate(GF(4), "y"); f := x^75+x^74+x^73+x^72+x^69+x^68+x^65+x^63+x^61+x^57+x^53+x^51+x^49+x^48+x^47+x^4\ 6+x^44+x^43+x^41+x^40+x^38+x^36+x^35+x^32+x^31+x^28+x^26+x^24+x^20+x^16+x^14+x\ ^12+x^11+x^10+x^9+x^7+x^6+x^4+x^3+Z(2)^0; t:= y^3+Z(2^2)*y^2+Z(2^2)*y+Z(2)^0; Print(GRO(DefaultRing(f), f, (x^111+1)/f), "\n"); Print(GRO(DefaultRing(t), t, (y^5+1)/t), "\n"); Print(GRO(DefaultRing(f), f, (x^111+1)/f), "\n"); end; ---------------------------------------------------------------------- On executing this test, we get the result that at a certain point in the GCD computation, doing computations on polynomials over GF(2) gives the entirely wrong result caught by the Assert() I added (see log output below). Note, again, that the first call to the GCD routine on the polynomial works, and gives the correct results all through the computation, but the final GCD computation goes off the rails at the point indicated by the Assert() I added. Any suggestions what's going on here? It looks like something's off somewhere in the low-level routines for handling +/- operations on these polynomials.... Richard gap> Test1(); 1 t=[ x^39+x^37+x^35+x^33+x^27+x^25+x^19+x^15+x^11+x^3, x^31+x^30+x^25+x^24+x^21+x^17+x^15+x^12+x^11+x^9+x^4+Z(2)^0 ] f=x^36+x^35+x^32+x^31+x^30+x^29+x^26+x^22+x^21+x^20+x^18+x^17+x^16+x^14+x^1\ 3+x^12+x^8+x^7+x^4+x^3+Z(2)^0 fx=0*Z(2) g=x^31+x^30+x^25+x^24+x^21+x^17+x^15+x\ ^12+x^11+x^9+x^4+Z(2)^0 gx=Z(2)^0 2 t=[ x^5+x, x^26+x^25+x^22+x^21+x^16+x^10+x^9+x^8+x^7+x^4+x^3+x+Z(2)^0 ] f=x^31+x^30+x^25+x^24+x^21+x^17+x^15+x^12+x^11+x^9+x^4+Z(2)^0 fx=Z(2)^0 g=x\ ^26+x^25+x^22+x^21+x^16+x^10+x^9+x^8+x^7+x^4+x^3+x+Z(2)^0 gx=x^5+x 3 t=[ x^5+x, x^25+x^24+x^23+x^22+x^14+x^13+x^10+x^9+x^6+x^2+x+Z(2)^0 ] f=x^26+x^25+x^22+x^21+x^16+x^10+x^9+x^8+x^7+x^4+x^3+x+Z(2)^0 fx=x^5+x g=x^2\ 5+x^24+x^23+x^22+x^14+x^13+x^10+x^9+x^6+x^2+x+Z(2)^0 gx=x^10+x^2+Z(2)^0 4 t=[ x, x^24+x^23+x^22+x^21+x^16+x^15+x^14+x^11+x^9+x^8+x^4+x^2+Z(2)^0 ] f=x^25+x^24+x^23+x^22+x^14+x^13+x^10+x^9+x^6+x^2+x+Z(2)^0 fx=x^10+x^2+Z(2)^\ 0 g=x^24+x^23+x^22+x^21+x^16+x^15+x^14+x^11+x^9+x^8+x^4+x^2+Z(2)^0 gx=x^11+x^5\ +x^3 5 t=[ x, x^17+x^16+x^15+x^14+x^13+x^12+x^6+x^5+x^3+x^2+Z(2)^0 ] f=x^24+x^23+x^22+x^21+x^16+x^15+x^14+x^11+x^9+x^8+x^4+x^2+Z(2)^0 fx=x^11+x^\ 5+x^3 g=x^17+x^16+x^15+x^14+x^13+x^12+x^6+x^5+x^3+x^2+Z(2)^0 gx=x^12+x^10+x^6+\ x^4+x^2+Z(2)^0 6 t=[ x^7+x^3+x, x^16+x^15+x^12+x^11+x^10+x^9+x^5+x^2+x+Z(2)^0 ] f=x^17+x^16+x^15+x^14+x^13+x^12+x^6+x^5+x^3+x^2+Z(2)^0 fx=x^12+x^10+x^6+x^4\ +x^2+Z(2)^0 g=x^16+x^15+x^12+x^11+x^10+x^9+x^5+x^2+x+Z(2)^0 gx=x^19+x^17+x^15+\ x^13+x^11+x^7+x^5+x^3+x 7 t=[ x, x^15+x^14+x^11+x^10+x^5+x+Z(2)^0 ] f=x^16+x^15+x^12+x^11+x^10+x^9+x^5+x^2+x+Z(2)^0 fx=x^19+x^17+x^15+x^13+x^11\ +x^7+x^5+x^3+x g=x^15+x^14+x^11+x^10+x^5+x+Z(2)^0 gx=x^20+x^18+x^16+x^14+x^10+\ x^8+Z(2)^0 8 t=[ x, x^10+x^9+x^6+x^5+Z(2)^0 ] f=x^15+x^14+x^11+x^10+x^5+x+Z(2)^0 fx=x^20+x^18+x^16+x^14+x^10+x^8+Z(2)^0 g\ =x^10+x^9+x^6+x^5+Z(2)^0 gx=x^21+x^13+x^9+x^7+x^5+x^3 9 t=[ x^5, x+Z(2)^0 ] f=x^10+x^9+x^6+x^5+Z(2)^0 fx=x^21+x^13+x^9+x^7+x^5+x^3 g=x+Z(2)^0 gx=x^26+x\ ^20+x^16+x^12+Z(2)^0 10 t=[ x^9+x^5, Z(2)^0 ] f=x+Z(2)^0 fx=x^26+x^20+x^16+x^12+Z(2)^0 g=Z(2)^0 gx=x^35+x^31+x^29+x^21+x^\ 17+x^13+x^7+x^3 11 t=[ x+Z(2)^0, 0*Z(2) ] f=Z(2)^0 fx=x^35+x^31+x^29+x^21+x^17+x^13+x^7+x^3 g=0*Z(2) gx=x^36+x^35+x^3\ 2+x^31+x^30+x^29+x^26+x^22+x^21+x^20+x^18+x^17+x^16+x^14+x^13+x^12+x^8+x^7+x^4\ +x^3+Z(2)^0 q=Z(2)^0 q*(f-fx*x)=x^110+x^109+x^108+x^107+x^106+x^105+x^104+x^103+x^102+x^101+x^99+x\ ^97+x^96+x^95+x^94+x^93+x^91+x^90+x^88+x^87+x^86+x^84+x^83+x^82+x^81+x^79+x^78\ +x^77+x^76+x^75+x^72+x^71+x^69+x^66+x^65+x^63+x^62+x^61+x^60+x^57+x^55+x^54+x^\ 53+x^52+x^51+x^48+x^47+x^45+x^44+x^43+x^42+x^41+x^39+x^38+x^36+x^33+x^31+x^30+\ x^27+x^26+x^24+x^22+x^21+x^19+x^18+x^15+x^13+x^12+x^11+x^9+x^6+x^3+Z(2)^0 y=x^\ 36+x^35+x^32+x^31+x^30+x^29+x^26+x^22+x^21+x^20+x^18+x^17+x^16+x^14+x^13+x^12+\ x^8+x^7+x^4+x^3+Z(2)^0 [ x^35+x^31+x^29+x^21+x^17+x^13+x^7+x^3, x^74+x^72+x^68+x^48+x^46+x^44+x^40+x^38+x^36+x^32+x^28+x^26+x^24+x^20+x^16+x\ ^14+x^12+x^10+x^6+x^4+Z(2)^0 ] 1 t=[ y, Z(2^2)^2*y+Z(2)^0 ] f=y^2+Z(2^2)*y+Z(2)^0 fx=0*Z(2) g=Z(2^2)^2*y+Z(2)^0 gx=Z(2)^0 2 t=[ Z(2^2)*y, Z(2)^0 ] f=Z(2^2)^2*y+Z(2)^0 fx=Z(2)^0 g=Z(2)^0 gx=Z(2^2)*y 3 t=[ Z(2^2)^2*y+Z(2)^0, 0*Z(2) ] f=Z(2)^0 fx=Z(2^2)*y g=0*Z(2) gx=y^2+Z(2^2)*y+Z(2)^0 q=Z(2)^0 q*(f-fx*x)=Z(2^2)*y^4+Z(2^2)^2*y^3+Z(2^2)^2*y^2+Z(2^2)*y+Z(2)^0 y=y^2+Z(2^2)*\ y+Z(2)^0 [ Z(2^2)*y, Z(2^2)*y^2+Z(2)^0 ] 1 t=[ x^39+x^37+x^35+x^33+x^27+x^25+x^19+x^15+x^11+x^3, x^31+x^30+x^25+x^24+x^21+x^17+x^15+x^12+x^11+x^9+x^4+Z(2)^0 ] f=x^36+x^35+x^32+x^31+x^30+x^29+x^26+x^22+x^21+x^20+x^18+x^17+x^16+x^14+x^1\ 3+x^12+x^8+x^7+x^4+x^3+Z(2)^0 fx=0*Z(2) g=x^31+x^30+x^25+x^24+x^21+x^17+x^15+x\ ^12+x^11+x^9+x^4+Z(2)^0 gx=Z(2)^0 2 t=[ x^5+x, x^26+x^25+x^22+x^21+x^16+x^10+x^9+x^8+x^7+x^4+x^3+x+Z(2)^0 ] f=x^31+x^30+x^25+x^24+x^21+x^17+x^15+x^12+x^11+x^9+x^4+Z(2)^0 fx=Z(2)^0 g=x\ ^26+x^25+x^22+x^21+x^16+x^10+x^9+x^8+x^7+x^4+x^3+x+Z(2)^0 gx=x^5+x 3 t=[ x^5+x, x^25+x^24+x^23+x^22+x^14+x^13+x^10+x^9+x^6+x^2+x+Z(2)^0 ] f=x^26+x^25+x^22+x^21+x^16+x^10+x^9+x^8+x^7+x^4+x^3+x+Z(2)^0 fx=x^5+x g=x^2\ 5+x^24+x^23+x^22+x^14+x^13+x^10+x^9+x^6+x^2+x+Z(2)^0 gx=x^10+x^2+Z(2)^0 4 t=[ x, x^24+x^23+x^22+x^21+x^16+x^15+x^14+x^11+x^9+x^8+x^4+x^2+Z(2)^0 ] f=x^25+x^24+x^23+x^22+x^14+x^13+x^10+x^9+x^6+x^2+x+Z(2)^0 fx=x^10+x^2+Z(2)^\ 0 g=x^24+x^23+x^22+x^21+x^16+x^15+x^14+x^11+x^9+x^8+x^4+x^2+Z(2)^0 gx=x^11+x^5\ +x^3 5 t=[ x, x^17+x^16+x^15+x^14+x^13+x^12+x^6+x^5+x^3+x^2+Z(2)^0 ] f=x^24+x^23+x^22+x^21+x^16+x^15+x^14+x^11+x^9+x^8+x^4+x^2+Z(2)^0 fx=x^11+x^\ 5+x^3 g=x^17+x^16+x^15+x^14+x^13+x^12+x^6+x^5+x^3+x^2+Z(2)^0 gx=x^12+x^10+x^6+\ x^4+x^2+Z(2)^0 6 t=[ x^7+x^3+x, x^16+x^15+x^12+x^11+x^10+x^9+x^5+x^2+x+Z(2)^0 ] f=x^17+x^16+x^15+x^14+x^13+x^12+x^6+x^5+x^3+x^2+Z(2)^0 fx=x^12+x^10+x^6+x^4\ +x^2+Z(2)^0 g=x^16+x^15+x^12+x^11+x^10+x^9+x^5+x^2+x+Z(2)^0 gx=x^19+x^17+x^15+\ x^13+x^11+x^7+x^5+x^3+x 7 t=[ x, x^15+x^14+x^11+x^10+x^5+x+Z(2)^0 ] f=x^16+x^15+x^12+x^11+x^10+x^9+x^5+x^2+x+Z(2)^0 fx=x^19+x^17+x^15+x^13+x^11\ +x^7+x^5+x^3+x g=x^15+x^14+x^11+x^10+x^5+x+Z(2)^0 gx=x^20+x^18+x^16+x^14+x^10+\ x^8+Z(2)^0 8 t=[ x, x^10+x^9+x^6+x^5+Z(2)^0 ] f=x^15+x^14+x^11+x^10+x^5+x+Z(2)^0 fx=x^20+x^18+x^16+x^14+x^10+x^8+Z(2)^0 g\ =x^10+x^9+x^6+x^5+Z(2)^0 gx=x^21+x^13+x^9+x^7+x^5+x^3 9 t=[ x^5, x+Z(2)^0 ] f=x^10+x^9+x^6+x^5+Z(2)^0 fx=x^21+x^13+x^9+x^7+x^5+x^3 g=x+Z(2)^0 gx=x^26+x\ ^20+x^16+x^12+Z(2)^0 Assertion failure at Assert( 0, gx + t[1] * hx = fx ); called from GRO( DefaultRing( f ), f, (x ^ 111 + 1) / f ) called from ( ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you may 'return;' to continue brk> fx; x^21+x^13+x^9+x^7+x^5+x^3 brk> hx; x^26+x^20+x^16+x^12+Z(2)^0 brk> t[1] > ; x^9+x^5 brk> t[1]*hx; x^35+x^31+x^29+x^17+x^9+x^5 brk> gx; x^35+x^31+x^29+x^23+x^21+x^17+x^13+x^7+x^3 brk> gx+t[1]*hx; x^23+x^21+x^13+x^9+x^7+x^5+x^3 brk> fx; x^21+x^13+x^9+x^7+x^5+x^3 brk> From barcenas at math.uni-bonn.de Wed May 23 12:27:45 2012 From: barcenas at math.uni-bonn.de (barcenas at math.uni-bonn.de) Date: Wed, 23 May 2012 13:27:45 +0200 Subject: [GAP Forum] Packages needed for simplicial groups/cat1 in HAP Message-ID: Dear members of the forum, i need to use the function BarResolutionEquivalence(R), which was contributed by Van Luyen Le. Does anybody knows which packages i should load, besides HAP? The command prompter does not recognize the command . Thanks in advance. From graham.ellis at nuigalway.ie Wed May 23 12:36:02 2012 From: graham.ellis at nuigalway.ie (Ellis, Grahamj) Date: Wed, 23 May 2012 12:36:02 +0100 Subject: [GAP Forum] Packages needed for simplicial groups/cat1 in HAP References: Message-ID: <47C2E007B3E98F4E8BBC7997F007CE130EE1736C@EVS1.ac.nuigalway.ie> Hi, Maybe you are using an older version of HAP? If you load version 1.10.1 of HAP from http://hamilton.nuigalway.ie/Hap/WWW this function should work. Graham School of Mathematics, Statistics and Applied Mathematics National University of Ireland, Galway http://hamilton.nuigalway.ie -----Original Message----- From: forum-bounces at gap-system.org on behalf of barcenas at math.uni-bonn.de Sent: Wed 5/23/2012 12:27 To: forum at gap-system.org Subject: [GAP Forum] Packages needed for simplicial groups/cat1 in HAP Dear members of the forum, i need to use the function BarResolutionEquivalence(R), which was contributed by Van Luyen Le. Does anybody knows which packages i should load, besides HAP? The command prompter does not recognize the command . Thanks in advance. _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From hulpke at math.colostate.edu Wed May 23 16:23:15 2012 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Wed, 23 May 2012 09:23:15 -0600 Subject: [GAP Forum] Bug showing up in computations with polynomials over finite fields. In-Reply-To: References: Message-ID: <590CCC11-5C94-4526-9F91-5DB8E4925342@math.colostate.edu> Dear Richard Todd, Thank you for reporting and analyzing this bug. The error is indeed in an internal routine (polynomials store a factor x^n specially and thus need to shift coefficient lists. The bug was in the shift routine). We have a fix for this that will be in the next release, as it involves a change of kernel code it is not easy to provide a patch. If this problem however is holding your research please contact me privately and I will see what can be done. Best wishes, Alexander Hulpke On May 22, 2012, at 5/22/12 12:16, Richard Todd wrote: > I've been working on some stuff involving polynomials over fields GF(2^m), > and have come across a most peculiar bug where sometimes the > GcdRepresentation function fails. This is on GAP 4.4.12 on FreeBSD 10-CURRENT > on amd64, but the same result appears with GAP 4.4.12 on Ubuntu 10.04.4/i386. > I've come up with the following test > case: consider this function: > > ---------------------------------------------------------------------- > Test1 := function() > local f, x, y, t; > x := Indeterminate(GF(2), "x"); > y := Indeterminate(GF(4), "y"); > f := x^75+x^74+x^73+x^72+x^69+x^68+x^65+x^63+x^61+x^57+x^53+x^51+x^49+x^48+x^47+x^4\ > 6+x^44+x^43+x^41+x^40+x^38+x^36+x^35+x^32+x^31+x^28+x^26+x^24+x^20+x^16+x^14+x\ > ^12+x^11+x^10+x^9+x^7+x^6+x^4+x^3+Z(2)^0; > t:= y^3+Z(2^2)*y^2+Z(2^2)*y+Z(2)^0; > > Print(GcdRepresentation(f, (x^111+1)/f), "\n"); > Print(GcdRepresentation(t, (y^5+1)/t), "\n"); > Print(GcdRepresentation(f, (x^111+1)/f), "\n"); > > end; > ---------------------------------------------------------------------- > > When run, we get the following result: > gap> Test1(); > [ x^35+x^31+x^29+x^21+x^17+x^13+x^7+x^3, > x^74+x^72+x^68+x^48+x^46+x^44+x^40+x^38+x^36+x^32+x^28+x^26+x^24+x^20+x^16+x\ > ^14+x^12+x^10+x^6+x^4+Z(2)^0 ] > [ Z(2^2)*y, Z(2^2)*y^2+Z(2)^0 ] > Error, no method found! For debugging hints type ?Recovery from NoMethodFound > Error, no 1st choice method found for `PROD' on 2 arguments called from > tmp[2] * ns[i] called from > GcdRepresentation( f, (x ^ 111 + 1) / f ) 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> tmp[2]; > fail > brk> > > Note that the third call to GcdRepresentation in Test1() fails, even though > it's the exact same polynomial used in the *first* call, which worked and > gave the correct result. Further investigation finds that taking out the > *second* call to GcdRepresentation (the one with a polynomial over GF(4)) > allows the last call to GcdRepresentation to succeed -- somehow the 2nd > call is messing things up for the subsequent call. > > Diving into the GAP code a bit further, I came up with the following test, > using a copy of the GCDRepresentationOp function with some debugging > prints and assertions hacked in: > > ---------------------------------------------------------------------- > GRO:= > function( R, x, y ) > local f, g, h, fx, gx, hx, q, t, i; > i:=0; > f := x; fx := One( R ); > g := y; gx := Zero( R ); > while g <> Zero( R ) do > i:=i+1; > t := QuotientRemainder( R, f, g ); > h := g; hx := gx; > g := t[2]; gx := fx - t[1] * gx; > Assert(0, gx + t[1]*hx = fx); > f := h; fx := hx; > Print(i, " t=", t, " f=", f, " fx=", fx, " g=", g, " gx=", gx, "\n"); > od; > q := Quotient(R, StandardAssociate(R, f), f); > Print("q=", q, "\n"); > if y = Zero( R ) then > return [ q * fx, Zero( R ) ]; > else > Print(" q*(f-fx*x)=", q * (f - fx * x), " y=", y, "\n"); > return [ q * fx, Quotient( R, q * (f - fx * x), y ) ]; > fi; > end; > > Test1 := function() > local f, x, y, t; > x := Indeterminate(GF(2), "x"); > y := Indeterminate(GF(4), "y"); > f := x^75+x^74+x^73+x^72+x^69+x^68+x^65+x^63+x^61+x^57+x^53+x^51+x^49+x^48+x^47+x^4\ > 6+x^44+x^43+x^41+x^40+x^38+x^36+x^35+x^32+x^31+x^28+x^26+x^24+x^20+x^16+x^14+x\ > ^12+x^11+x^10+x^9+x^7+x^6+x^4+x^3+Z(2)^0; > t:= y^3+Z(2^2)*y^2+Z(2^2)*y+Z(2)^0; > > Print(GRO(DefaultRing(f), f, (x^111+1)/f), "\n"); > Print(GRO(DefaultRing(t), t, (y^5+1)/t), "\n"); > Print(GRO(DefaultRing(f), f, (x^111+1)/f), "\n"); > > end; > ---------------------------------------------------------------------- > > On executing this test, we get the result that at a certain point in the > GCD computation, doing computations on polynomials over GF(2) gives the > entirely wrong result caught by the Assert() I added (see log output > below). Note, again, that the first call to the GCD routine on the > polynomial works, and gives the correct results all through the > computation, but the final GCD computation goes off the rails at the > point indicated by the Assert() I added. > > Any suggestions what's going on here? It looks like something's off > somewhere in the low-level routines for handling +/- operations on > these polynomials.... > > Richard > > gap> Test1(); > 1 t=[ x^39+x^37+x^35+x^33+x^27+x^25+x^19+x^15+x^11+x^3, > x^31+x^30+x^25+x^24+x^21+x^17+x^15+x^12+x^11+x^9+x^4+Z(2)^0 > ] f=x^36+x^35+x^32+x^31+x^30+x^29+x^26+x^22+x^21+x^20+x^18+x^17+x^16+x^14+x^1\ > 3+x^12+x^8+x^7+x^4+x^3+Z(2)^0 fx=0*Z(2) g=x^31+x^30+x^25+x^24+x^21+x^17+x^15+x\ > ^12+x^11+x^9+x^4+Z(2)^0 gx=Z(2)^0 > 2 t=[ x^5+x, x^26+x^25+x^22+x^21+x^16+x^10+x^9+x^8+x^7+x^4+x^3+x+Z(2)^0 > ] f=x^31+x^30+x^25+x^24+x^21+x^17+x^15+x^12+x^11+x^9+x^4+Z(2)^0 fx=Z(2)^0 g=x\ > ^26+x^25+x^22+x^21+x^16+x^10+x^9+x^8+x^7+x^4+x^3+x+Z(2)^0 gx=x^5+x > 3 t=[ x^5+x, x^25+x^24+x^23+x^22+x^14+x^13+x^10+x^9+x^6+x^2+x+Z(2)^0 > ] f=x^26+x^25+x^22+x^21+x^16+x^10+x^9+x^8+x^7+x^4+x^3+x+Z(2)^0 fx=x^5+x g=x^2\ > 5+x^24+x^23+x^22+x^14+x^13+x^10+x^9+x^6+x^2+x+Z(2)^0 gx=x^10+x^2+Z(2)^0 > 4 t=[ x, x^24+x^23+x^22+x^21+x^16+x^15+x^14+x^11+x^9+x^8+x^4+x^2+Z(2)^0 > ] f=x^25+x^24+x^23+x^22+x^14+x^13+x^10+x^9+x^6+x^2+x+Z(2)^0 fx=x^10+x^2+Z(2)^\ > 0 g=x^24+x^23+x^22+x^21+x^16+x^15+x^14+x^11+x^9+x^8+x^4+x^2+Z(2)^0 gx=x^11+x^5\ > +x^3 > 5 t=[ x, x^17+x^16+x^15+x^14+x^13+x^12+x^6+x^5+x^3+x^2+Z(2)^0 > ] f=x^24+x^23+x^22+x^21+x^16+x^15+x^14+x^11+x^9+x^8+x^4+x^2+Z(2)^0 fx=x^11+x^\ > 5+x^3 g=x^17+x^16+x^15+x^14+x^13+x^12+x^6+x^5+x^3+x^2+Z(2)^0 gx=x^12+x^10+x^6+\ > x^4+x^2+Z(2)^0 > 6 t=[ x^7+x^3+x, x^16+x^15+x^12+x^11+x^10+x^9+x^5+x^2+x+Z(2)^0 > ] f=x^17+x^16+x^15+x^14+x^13+x^12+x^6+x^5+x^3+x^2+Z(2)^0 fx=x^12+x^10+x^6+x^4\ > +x^2+Z(2)^0 g=x^16+x^15+x^12+x^11+x^10+x^9+x^5+x^2+x+Z(2)^0 gx=x^19+x^17+x^15+\ > x^13+x^11+x^7+x^5+x^3+x > 7 t=[ x, x^15+x^14+x^11+x^10+x^5+x+Z(2)^0 > ] f=x^16+x^15+x^12+x^11+x^10+x^9+x^5+x^2+x+Z(2)^0 fx=x^19+x^17+x^15+x^13+x^11\ > +x^7+x^5+x^3+x g=x^15+x^14+x^11+x^10+x^5+x+Z(2)^0 gx=x^20+x^18+x^16+x^14+x^10+\ > x^8+Z(2)^0 > 8 t=[ x, x^10+x^9+x^6+x^5+Z(2)^0 > ] f=x^15+x^14+x^11+x^10+x^5+x+Z(2)^0 fx=x^20+x^18+x^16+x^14+x^10+x^8+Z(2)^0 g\ > =x^10+x^9+x^6+x^5+Z(2)^0 gx=x^21+x^13+x^9+x^7+x^5+x^3 > 9 t=[ x^5, x+Z(2)^0 > ] f=x^10+x^9+x^6+x^5+Z(2)^0 fx=x^21+x^13+x^9+x^7+x^5+x^3 g=x+Z(2)^0 gx=x^26+x\ > ^20+x^16+x^12+Z(2)^0 > 10 t=[ x^9+x^5, Z(2)^0 > ] f=x+Z(2)^0 fx=x^26+x^20+x^16+x^12+Z(2)^0 g=Z(2)^0 gx=x^35+x^31+x^29+x^21+x^\ > 17+x^13+x^7+x^3 > 11 t=[ x+Z(2)^0, 0*Z(2) > ] f=Z(2)^0 fx=x^35+x^31+x^29+x^21+x^17+x^13+x^7+x^3 g=0*Z(2) gx=x^36+x^35+x^3\ > 2+x^31+x^30+x^29+x^26+x^22+x^21+x^20+x^18+x^17+x^16+x^14+x^13+x^12+x^8+x^7+x^4\ > +x^3+Z(2)^0 > q=Z(2)^0 > q*(f-fx*x)=x^110+x^109+x^108+x^107+x^106+x^105+x^104+x^103+x^102+x^101+x^99+x\ > ^97+x^96+x^95+x^94+x^93+x^91+x^90+x^88+x^87+x^86+x^84+x^83+x^82+x^81+x^79+x^78\ > +x^77+x^76+x^75+x^72+x^71+x^69+x^66+x^65+x^63+x^62+x^61+x^60+x^57+x^55+x^54+x^\ > 53+x^52+x^51+x^48+x^47+x^45+x^44+x^43+x^42+x^41+x^39+x^38+x^36+x^33+x^31+x^30+\ > x^27+x^26+x^24+x^22+x^21+x^19+x^18+x^15+x^13+x^12+x^11+x^9+x^6+x^3+Z(2)^0 y=x^\ > 36+x^35+x^32+x^31+x^30+x^29+x^26+x^22+x^21+x^20+x^18+x^17+x^16+x^14+x^13+x^12+\ > x^8+x^7+x^4+x^3+Z(2)^0 > [ x^35+x^31+x^29+x^21+x^17+x^13+x^7+x^3, > x^74+x^72+x^68+x^48+x^46+x^44+x^40+x^38+x^36+x^32+x^28+x^26+x^24+x^20+x^16+x\ > ^14+x^12+x^10+x^6+x^4+Z(2)^0 ] > 1 t=[ y, Z(2^2)^2*y+Z(2)^0 > ] f=y^2+Z(2^2)*y+Z(2)^0 fx=0*Z(2) g=Z(2^2)^2*y+Z(2)^0 gx=Z(2)^0 > 2 t=[ Z(2^2)*y, Z(2)^0 ] f=Z(2^2)^2*y+Z(2)^0 fx=Z(2)^0 g=Z(2)^0 gx=Z(2^2)*y > 3 t=[ Z(2^2)^2*y+Z(2)^0, 0*Z(2) > ] f=Z(2)^0 fx=Z(2^2)*y g=0*Z(2) gx=y^2+Z(2^2)*y+Z(2)^0 > q=Z(2)^0 > q*(f-fx*x)=Z(2^2)*y^4+Z(2^2)^2*y^3+Z(2^2)^2*y^2+Z(2^2)*y+Z(2)^0 y=y^2+Z(2^2)*\ > y+Z(2)^0 > [ Z(2^2)*y, Z(2^2)*y^2+Z(2)^0 ] > 1 t=[ x^39+x^37+x^35+x^33+x^27+x^25+x^19+x^15+x^11+x^3, > x^31+x^30+x^25+x^24+x^21+x^17+x^15+x^12+x^11+x^9+x^4+Z(2)^0 > ] f=x^36+x^35+x^32+x^31+x^30+x^29+x^26+x^22+x^21+x^20+x^18+x^17+x^16+x^14+x^1\ > 3+x^12+x^8+x^7+x^4+x^3+Z(2)^0 fx=0*Z(2) g=x^31+x^30+x^25+x^24+x^21+x^17+x^15+x\ > ^12+x^11+x^9+x^4+Z(2)^0 gx=Z(2)^0 > 2 t=[ x^5+x, x^26+x^25+x^22+x^21+x^16+x^10+x^9+x^8+x^7+x^4+x^3+x+Z(2)^0 > ] f=x^31+x^30+x^25+x^24+x^21+x^17+x^15+x^12+x^11+x^9+x^4+Z(2)^0 fx=Z(2)^0 g=x\ > ^26+x^25+x^22+x^21+x^16+x^10+x^9+x^8+x^7+x^4+x^3+x+Z(2)^0 gx=x^5+x > 3 t=[ x^5+x, x^25+x^24+x^23+x^22+x^14+x^13+x^10+x^9+x^6+x^2+x+Z(2)^0 > ] f=x^26+x^25+x^22+x^21+x^16+x^10+x^9+x^8+x^7+x^4+x^3+x+Z(2)^0 fx=x^5+x g=x^2\ > 5+x^24+x^23+x^22+x^14+x^13+x^10+x^9+x^6+x^2+x+Z(2)^0 gx=x^10+x^2+Z(2)^0 > 4 t=[ x, x^24+x^23+x^22+x^21+x^16+x^15+x^14+x^11+x^9+x^8+x^4+x^2+Z(2)^0 > ] f=x^25+x^24+x^23+x^22+x^14+x^13+x^10+x^9+x^6+x^2+x+Z(2)^0 fx=x^10+x^2+Z(2)^\ > 0 g=x^24+x^23+x^22+x^21+x^16+x^15+x^14+x^11+x^9+x^8+x^4+x^2+Z(2)^0 gx=x^11+x^5\ > +x^3 > 5 t=[ x, x^17+x^16+x^15+x^14+x^13+x^12+x^6+x^5+x^3+x^2+Z(2)^0 > ] f=x^24+x^23+x^22+x^21+x^16+x^15+x^14+x^11+x^9+x^8+x^4+x^2+Z(2)^0 fx=x^11+x^\ > 5+x^3 g=x^17+x^16+x^15+x^14+x^13+x^12+x^6+x^5+x^3+x^2+Z(2)^0 gx=x^12+x^10+x^6+\ > x^4+x^2+Z(2)^0 > 6 t=[ x^7+x^3+x, x^16+x^15+x^12+x^11+x^10+x^9+x^5+x^2+x+Z(2)^0 > ] f=x^17+x^16+x^15+x^14+x^13+x^12+x^6+x^5+x^3+x^2+Z(2)^0 fx=x^12+x^10+x^6+x^4\ > +x^2+Z(2)^0 g=x^16+x^15+x^12+x^11+x^10+x^9+x^5+x^2+x+Z(2)^0 gx=x^19+x^17+x^15+\ > x^13+x^11+x^7+x^5+x^3+x > 7 t=[ x, x^15+x^14+x^11+x^10+x^5+x+Z(2)^0 > ] f=x^16+x^15+x^12+x^11+x^10+x^9+x^5+x^2+x+Z(2)^0 fx=x^19+x^17+x^15+x^13+x^11\ > +x^7+x^5+x^3+x g=x^15+x^14+x^11+x^10+x^5+x+Z(2)^0 gx=x^20+x^18+x^16+x^14+x^10+\ > x^8+Z(2)^0 > 8 t=[ x, x^10+x^9+x^6+x^5+Z(2)^0 > ] f=x^15+x^14+x^11+x^10+x^5+x+Z(2)^0 fx=x^20+x^18+x^16+x^14+x^10+x^8+Z(2)^0 g\ > =x^10+x^9+x^6+x^5+Z(2)^0 gx=x^21+x^13+x^9+x^7+x^5+x^3 > 9 t=[ x^5, x+Z(2)^0 > ] f=x^10+x^9+x^6+x^5+Z(2)^0 fx=x^21+x^13+x^9+x^7+x^5+x^3 g=x+Z(2)^0 gx=x^26+x\ > ^20+x^16+x^12+Z(2)^0 > Assertion failure at > Assert( 0, gx + t[1] * hx = fx ); > called from > GRO( DefaultRing( f ), f, (x ^ 111 + 1) / f ) called from > ( ) called from read-eval-loop > Entering break read-eval-print loop ... > you can 'quit;' to quit to outer loop, or > you may 'return;' to continue > brk> fx; > x^21+x^13+x^9+x^7+x^5+x^3 > brk> hx; > x^26+x^20+x^16+x^12+Z(2)^0 > brk> t[1] >> ; > x^9+x^5 > brk> t[1]*hx; > x^35+x^31+x^29+x^17+x^9+x^5 > brk> gx; > x^35+x^31+x^29+x^23+x^21+x^17+x^13+x^7+x^3 > brk> gx+t[1]*hx; > x^23+x^21+x^13+x^9+x^7+x^5+x^3 > brk> fx; > x^21+x^13+x^9+x^7+x^5+x^3 > brk> > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From siddhartha18 at gmail.com Thu May 24 12:58:16 2012 From: siddhartha18 at gmail.com (Siddhartha Sarkar) Date: Thu, 24 May 2012 17:28:16 +0530 Subject: [GAP Forum] Orbit calculation in GUAVA Message-ID: Dear forum, I have just started with coding and trying to experiment with GUAVA. I am trying to reproduce the following calculation briefed in Robert Wilson's book "The Finite Simple Groups" Page 184 on hexacodes. Hexacode W, as defined, is a GF(4)-subspace of GF(4)^6 generated by the following vectors : (w, w^2, w^2, w, w^2, w), (w^2, w, w, w^2, w^2, w), (w^2, w, w^2, w, w, w^2) where GF(4) = { 0, 1, w, w^2 } 3 X S_4 seems to be a symmetry group : 3 by multiplying scalers from GF(4)* and S_4 by the permutation subgroup of S_6 generated by (1,2)(3,4), (1,3,5)(2,4,6), (1,3)(2,4) I wish to reproduce the orbit calculation of 3 X S_4 to W. Any help please. best, Siddhartha From linda.j.cupples at gmail.com Thu May 24 16:00:18 2012 From: linda.j.cupples at gmail.com (Linda Cupples) Date: Fri, 25 May 2012 01:00:18 +1000 Subject: [GAP Forum] DotFileLatticeSubgroups function Message-ID: Hello, I have been looking for a way to generate the lattice of subgroups using GAP and the majority of material I find involves XGAP which isn't compatible with windows. The next best think I have found was a function called DotFileLatticeSubgroups which produced a diagram of the lattice in dot file form, In the book I found this function in it gave no reference to any required packages it just showed the use of the function. I've been having trouble finding how to get this function to work, I have only been able to find one think online regarding it which was a file which you read in GAP called "latticdot.g" but reading this still gives the output "DotFileLatticeSubgroups needs to have a value". Is it possible to get this function to work? Is there an equivalent way of finding a diagram of the subgroup lattice? Thanks, Linda From hulpke at math.colostate.edu Thu May 24 16:17:40 2012 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu, 24 May 2012 09:17:40 -0600 Subject: [GAP Forum] Orbit calculation in GUAVA In-Reply-To: References: Message-ID: <46AD55E1-F898-4EA9-BB4A-DC9C2EB28DAB@math.colostate.edu> Dear Forum, Dear Siddhartha Sarkar, > I have just started with coding and trying to experiment with GUAVA. > > I am trying to reproduce the following calculation briefed in Robert > Wilson's book > "The Finite Simple Groups" Page 184 on hexacodes. > > Hexacode W, as defined, is a GF(4)-subspace of GF(4)^6 generated by > the following > vectors : (w, w^2, w^2, w, w^2, w), (w^2, w, w, w^2, w^2, w), (w^2, w, > w^2, w, w, w^2) > > where GF(4) = { 0, 1, w, w^2 } > > 3 X S_4 seems to be a symmetry group : 3 by multiplying scalers from > GF(4)* and S_4 > by the permutation subgroup of S_6 generated by (1,2)(3,4), > (1,3,5)(2,4,6), (1,3)(2,4) > > I wish to reproduce the orbit calculation of 3 X S_4 to W. As the action of 3xS4 is linear, the easiest is to represent the group by matrices over GF(4): gap> f:=GF(4); GF(2^2) gap> w:=PrimitiveElement(f); # It does not matter whether this is w or w^2. For other fields one might have to be # more careful in chosing Z(2^2) gap> S4:=Group((1,2)(3,4),(1,3,5)(2,4,6), (1,3)(2,4)); # the S4 you gave Group([ (1,2)(3,4), (1,3,5)(2,4,6), (1,3)(2,4) ]) Form permutation matrices in dimension 6 over f gap> permmats:=List(GeneratorsOfGroup(S4), > x->PermutationMat(x,6,f)); [ [ [ 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ], ... # for the group we need to add the scalar matrices generated by multiplication with the primitive element gap> G:=Group(Concatenation(permmats,[w*IdentityMat(6,f)])); # the seed vectors and their space gap> vecs:=[[w, w^2, w^2, w, w^2, w],[w^2, w, w, w^2, w^2, w], > [w^2, w,w^2, w, w, w^2]]; [ [ Z(2^2), Z(2^2)^2, Z(2^2)^2, Z(2^2), Z(2^2)^2, Z(2^2) ], ... gap> W:=VectorSpace(f,vecs); gap> Size(W); 64 Now we can form orbits: gap> orbs:=Orbits(G,Elements(W));; gap> List(orbs,Length); [ 1, 9, 36, 6, 12 ] Hope this helps, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From hulpke at math.colostate.edu Thu May 24 16:38:35 2012 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu, 24 May 2012 09:38:35 -0600 Subject: [GAP Forum] DotFileLatticeSubgroups function In-Reply-To: References: Message-ID: <6E79F4FA-6BD1-4B01-97B8-865AC0A5D070@math.colostate.edu> Dear Forum, Dear Linda Cupples, > The next best think I have found was a function called > DotFileLatticeSubgroups which produced a diagram of the lattice in dot file > form, In the book I found this function in it gave no reference to any > required packages it just showed the use of the function. I presume you are using my `Abstract Algebra with GAP' notes. When these were written I had expected that version 4.5 would have been released over a year ago. Alas it was not and therefore some of the functionality described is not yet available in the released version. > > I've been having trouble finding how to get this function to work, I have > only been able to find one think online regarding it which was a file which > you read in GAP called "latticdot.g" but reading this still gives the I presume you mean the file available at: http://www.math.colostate.edu/~hulpke/latticedot.g I checked and indeed spotted that a line DeclareGlobalFunction("DotFileLatticeSubgroups"); is missing at the start. I have updated the file and with this correction (or issuing this line before reading in) it should work now. Apologies for the problem! Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From linda.j.cupples at gmail.com Fri May 25 07:57:01 2012 From: linda.j.cupples at gmail.com (Linda Cupples) Date: Fri, 25 May 2012 16:57:01 +1000 Subject: [GAP Forum] Display(CharacterTable(G)); recursion depth trap (5000) Message-ID: Hey, I have been mucking around with a bunch of 16 element groups, seeing how much I can find using GAP just to learn how to use the program. With most of the subgroups I haven't had any issues with GAP finding pretty much anything but now I have been looking into Displaying the character tables for some of these groups, For example Gap determines the table for this group with no issues: F:=FreeGroup("a","b"); a:=F.1;;b:=F.2;; G:=F/[a^8,b^2,b*a*b*a^3]; Display(CharacterTable(G)); (character table is shown under) It also works for some other groups I have tried, but I have found it doesn't for all order 16 groups, For example this group: F:=FreeGroup("a","b"); a:=F.1;;b:=F.2;; G:=F/[a^4,b^4,(a*b)^2,(a^3*b)^2]; recursion depth trap (5000) I have tried adjusting the trap interval and around at around 9000 gap crashes, Is there a way to find the character table of groups which give this error? Thanks, Linda. From markus.szymik at gmail.com Fri May 25 10:05:08 2012 From: markus.szymik at gmail.com (Markus Szymik) Date: Fri, 25 May 2012 11:05:08 +0200 Subject: [GAP Forum] problem with AutomorphismGroup Message-ID: <11E49A4E-A67B-428B-BEEA-C298EA331CD1@gmail.com> Dear Forum, I am trying to compute automorphism groups of p-groups, and GAP responds with an error message I don't understand. For example, AutomorphismGroup(DihedralGroup(8)); results in: ... RuntimeError: Gap produced error output Function: number of arguments must be 1 (not 2) The command works fine for all groups of order less than 8. What is wrong here? Thanks, Markus From alexk at mcs.st-andrews.ac.uk Fri May 25 10:12:51 2012 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Fri, 25 May 2012 10:12:51 +0100 Subject: [GAP Forum] problem with AutomorphismGroup In-Reply-To: <11E49A4E-A67B-428B-BEEA-C298EA331CD1@gmail.com> References: <11E49A4E-A67B-428B-BEEA-C298EA331CD1@gmail.com> Message-ID: <97E20CD8-CBBC-4709-AAE9-807CA75B66E3@mcs.st-andrews.ac.uk> Dear Markus, For me, this works fine, both with default packages and without packages, for example: GAP4, Version: 4.4.12 of 17-Dec-2008, i686-apple-darwin10.8.0-gcc Components: small 2.1, small2 2.0, small3 2.0, small4 1.0, small5 1.0, small6 1.0, small7 1.0, small8 1.0, small9 1.0, small10 0.2, small11 0.1, id2 3.0, id3 2.1, id4 1.0, id5 1.0, id6 1.0, id9 1.0, id10 0.1, trans 1.0, prim 2.1 loaded. Packages: AClib 1.1, Polycyclic 2.8.1, Alnuth 2.3.1, AutPGrp 1.4, nq 2.2, GAPDoc 1.3, IO 3.3, CrystCat 1.1.3, Cryst 4.1.6, CRISP 1.3.4, CTblLib 1.1.3, TomLib 1.1.4, FactInt 1.5.3, FGA 1.1.0.1, IRREDSOL 1.2, LAGUNA 3.5.0, Sophus 1.23, MIPLib 1.0, Polenta 1.2.7, ResClasses 3.0.0 loaded. gap> AutomorphismGroup(DihedralGroup(8)); Which version of GAP are you using? How did you install it? Could you copy-and-paste the exact GAP session where you have this error? Best wishes, Alexander On 25 May 2012, at 10:05, Markus Szymik wrote: > > Dear Forum, > > I am trying to compute automorphism groups of p-groups, > and GAP responds with an error message I don't understand. > For example, > > AutomorphismGroup(DihedralGroup(8)); > > results in: > > ... > RuntimeError: Gap produced error output > Function: number of arguments must be 1 (not 2) > > The command works fine for all groups of order less than 8. > What is wrong here? > > Thanks, > > Markus > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum -- Dr. Alexander Konovalov School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44/0 (1334) 461633 http://www.cs.st-andrews.ac.uk/~alexk Fax +44/0 (1334) 463278 The University of St Andrews is a charity registered in Scotland:No.SC013532 From markus.szymik at gmail.com Fri May 25 10:40:01 2012 From: markus.szymik at gmail.com (Markus Szymik) Date: Fri, 25 May 2012 11:40:01 +0200 Subject: [GAP Forum] problem with AutomorphismGroup In-Reply-To: <97E20CD8-CBBC-4709-AAE9-807CA75B66E3@mcs.st-andrews.ac.uk> References: <11E49A4E-A67B-428B-BEEA-C298EA331CD1@gmail.com> <97E20CD8-CBBC-4709-AAE9-807CA75B66E3@mcs.st-andrews.ac.uk> Message-ID: <0EE81850-3B3B-47C9-B64B-33E43A86138D@gmail.com> Dear Alexander, The error occurred while I was accessing GAP through Sage. When I use GAP directly from within a terminal, the problem disappears. Thanks a lot for pointing out that it should work. All the best, Markus > Dear Markus, > > For me, this works fine, both with default packages and without packages, > for example: > > GAP4, Version: 4.4.12 of 17-Dec-2008, i686-apple-darwin10.8.0-gcc > Components: small 2.1, small2 2.0, small3 2.0, small4 1.0, small5 1.0, > small6 1.0, small7 1.0, small8 1.0, small9 1.0, small10 0.2, > small11 0.1, id2 3.0, id3 2.1, id4 1.0, id5 1.0, id6 1.0, id9 1.0, > id10 0.1, trans 1.0, prim 2.1 loaded. > Packages: AClib 1.1, Polycyclic 2.8.1, Alnuth 2.3.1, AutPGrp 1.4, nq 2.2, > GAPDoc 1.3, IO 3.3, CrystCat 1.1.3, Cryst 4.1.6, CRISP 1.3.4, > CTblLib 1.1.3, TomLib 1.1.4, FactInt 1.5.3, FGA 1.1.0.1, > IRREDSOL 1.2, LAGUNA 3.5.0, Sophus 1.23, MIPLib 1.0, > Polenta 1.2.7, ResClasses 3.0.0 loaded. > gap> AutomorphismGroup(DihedralGroup(8)); > > > Which version of GAP are you using? How did you install it? > Could you copy-and-paste the exact GAP session where you have this error? > > Best wishes, > Alexander > > > On 25 May 2012, at 10:05, Markus Szymik wrote: > >> >> Dear Forum, >> >> I am trying to compute automorphism groups of p-groups, >> and GAP responds with an error message I don't understand. >> For example, >> >> AutomorphismGroup(DihedralGroup(8)); >> >> results in: >> >> ... >> RuntimeError: Gap produced error output >> Function: number of arguments must be 1 (not 2) >> >> The command works fine for all groups of order less than 8. >> What is wrong here? >> >> Thanks, >> >> Markus >> >> >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum > > > -- > Dr. Alexander Konovalov School of Computer Science > & Centre for Interdisciplinary Research in Computational Algebra > University of St Andrews Tel +44/0 (1334) 461633 > http://www.cs.st-andrews.ac.uk/~alexk Fax +44/0 (1334) 463278 > The University of St Andrews is a charity registered in Scotland:No.SC013532 > > > > > > > From dima at ntu.edu.sg Fri May 25 10:56:24 2012 From: dima at ntu.edu.sg (Dmitrii (Dima) Pasechnik) Date: Fri, 25 May 2012 11:56:24 +0200 Subject: [GAP Forum] problem with AutomorphismGroup In-Reply-To: <0EE81850-3B3B-47C9-B64B-33E43A86138D@gmail.com> References: <11E49A4E-A67B-428B-BEEA-C298EA331CD1@gmail.com> <97E20CD8-CBBC-4709-AAE9-807CA75B66E3@mcs.st-andrews.ac.uk> <0EE81850-3B3B-47C9-B64B-33E43A86138D@gmail.com> Message-ID: Hi Markus, it indeed doesn't seem to work in Sage 4.8, for some reason, but does work with Sage 5.0 for me. Can you upgrade? Thanks, Dmitrii On 25 May 2012 11:40, Markus Szymik wrote: > > Dear Alexander, > > The error occurred while I was accessing GAP through Sage. > When I use GAP directly from within a terminal, the problem disappears. > Thanks a lot for pointing out that it should work. > > All the best, > > Markus > >> Dear Markus, >> >> For me, this works fine, both with default packages and without packages, >> for example: >> >> GAP4, Version: 4.4.12 of 17-Dec-2008, i686-apple-darwin10.8.0-gcc >> Components: small 2.1, small2 2.0, small3 2.0, small4 1.0, small5 1.0, >> small6 1.0, small7 1.0, small8 1.0, small9 1.0, small10 0.2, >> small11 0.1, id2 3.0, id3 2.1, id4 1.0, id5 1.0, id6 1.0, id9 1.0, >> id10 0.1, trans 1.0, prim 2.1 loaded. >> Packages: AClib 1.1, Polycyclic 2.8.1, Alnuth 2.3.1, AutPGrp 1.4, nq 2.2, >> GAPDoc 1.3, IO 3.3, CrystCat 1.1.3, Cryst 4.1.6, CRISP 1.3.4, >> CTblLib 1.1.3, TomLib 1.1.4, FactInt 1.5.3, FGA 1.1.0.1, >> IRREDSOL 1.2, LAGUNA 3.5.0, Sophus 1.23, MIPLib 1.0, >> Polenta 1.2.7, ResClasses 3.0.0 loaded. >> gap> AutomorphismGroup(DihedralGroup(8)); >> >> >> Which version of GAP are you using? How did you install it? >> Could you copy-and-paste the exact GAP session where you have this error? >> >> Best wishes, >> Alexander >> >> >> On 25 May 2012, at 10:05, Markus Szymik wrote: >> >>> >>> Dear Forum, >>> >>> I am trying to compute automorphism groups of p-groups, >>> and GAP responds with an error message I don't understand. >>> For example, >>> >>> AutomorphismGroup(DihedralGroup(8)); >>> >>> results in: >>> >>> ... >>> RuntimeError: Gap produced error output >>> Function: number of arguments must be 1 (not 2) >>> >>> The command works fine for all groups of order less than 8. >>> What is wrong here? >>> >>> Thanks, >>> >>> Markus >>> >>> >>> >>> _______________________________________________ >>> Forum mailing list >>> Forum at mail.gap-system.org >>> http://mail.gap-system.org/mailman/listinfo/forum >> >> >> -- >> Dr. Alexander Konovalov School of Computer Science >> & Centre for Interdisciplinary Research in Computational Algebra >> University of St Andrews Tel +44/0 (1334) 461633 >> http://www.cs.st-andrews.ac.uk/~alexk Fax +44/0 (1334) 463278 >> The University of St Andrews is a charity registered in Scotland:No.SC013532 >> >> >> >> >> >> >> > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum CONFIDENTIALITY:This email is intended solely for the person(s) named and may be confidential and/or privileged.If you are not the intended recipient,please delete it,notify us and do not copy,use,or disclose its content. Towards A Sustainable Earth:Print Only When Necessary.Thank you. From markus.szymik at gmail.com Fri May 25 11:47:24 2012 From: markus.szymik at gmail.com (Markus Szymik) Date: Fri, 25 May 2012 12:47:24 +0200 Subject: [GAP Forum] problem with AutomorphismGroup In-Reply-To: References: <11E49A4E-A67B-428B-BEEA-C298EA331CD1@gmail.com> <97E20CD8-CBBC-4709-AAE9-807CA75B66E3@mcs.st-andrews.ac.uk> <0EE81850-3B3B-47C9-B64B-33E43A86138D@gmail.com> Message-ID: Dear Dimitri, I have upgraded to Sage 5.0 last week. Maybe I should remove the old install to ensure that Sage 4.8 is not being called upon by "accident". Thanks, Markus Am 25.05.2012 um 11:56 schrieb Dmitrii (Dima) Pasechnik: > Hi Markus, > > it indeed doesn't seem to work in Sage 4.8, for some reason, but does work > with Sage 5.0 for me. > Can you upgrade? > > Thanks, > Dmitrii > > On 25 May 2012 11:40, Markus Szymik wrote: >> >> Dear Alexander, >> >> The error occurred while I was accessing GAP through Sage. >> When I use GAP directly from within a terminal, the problem disappears. >> Thanks a lot for pointing out that it should work. >> >> All the best, >> >> Markus >> >>> Dear Markus, >>> >>> For me, this works fine, both with default packages and without packages, >>> for example: >>> >>> GAP4, Version: 4.4.12 of 17-Dec-2008, i686-apple-darwin10.8.0-gcc >>> Components: small 2.1, small2 2.0, small3 2.0, small4 1.0, small5 1.0, >>> small6 1.0, small7 1.0, small8 1.0, small9 1.0, small10 0.2, >>> small11 0.1, id2 3.0, id3 2.1, id4 1.0, id5 1.0, id6 1.0, id9 1.0, >>> id10 0.1, trans 1.0, prim 2.1 loaded. >>> Packages: AClib 1.1, Polycyclic 2.8.1, Alnuth 2.3.1, AutPGrp 1.4, nq 2.2, >>> GAPDoc 1.3, IO 3.3, CrystCat 1.1.3, Cryst 4.1.6, CRISP 1.3.4, >>> CTblLib 1.1.3, TomLib 1.1.4, FactInt 1.5.3, FGA 1.1.0.1, >>> IRREDSOL 1.2, LAGUNA 3.5.0, Sophus 1.23, MIPLib 1.0, >>> Polenta 1.2.7, ResClasses 3.0.0 loaded. >>> gap> AutomorphismGroup(DihedralGroup(8)); >>> >>> >>> Which version of GAP are you using? How did you install it? >>> Could you copy-and-paste the exact GAP session where you have this error? >>> >>> Best wishes, >>> Alexander >>> >>> >>> On 25 May 2012, at 10:05, Markus Szymik wrote: >>> >>>> >>>> Dear Forum, >>>> >>>> I am trying to compute automorphism groups of p-groups, >>>> and GAP responds with an error message I don't understand. >>>> For example, >>>> >>>> AutomorphismGroup(DihedralGroup(8)); >>>> >>>> results in: >>>> >>>> ... >>>> RuntimeError: Gap produced error output >>>> Function: number of arguments must be 1 (not 2) >>>> >>>> The command works fine for all groups of order less than 8. >>>> What is wrong here? >>>> >>>> Thanks, >>>> >>>> Markus >>>> >>>> >>>> >>>> _______________________________________________ >>>> Forum mailing list >>>> Forum at mail.gap-system.org >>>> http://mail.gap-system.org/mailman/listinfo/forum >>> >>> >>> -- >>> Dr. Alexander Konovalov School of Computer Science >>> & Centre for Interdisciplinary Research in Computational Algebra >>> University of St Andrews Tel +44/0 (1334) 461633 >>> http://www.cs.st-andrews.ac.uk/~alexk Fax +44/0 (1334) 463278 >>> The University of St Andrews is a charity registered in Scotland:No.SC013532 >>> >>> >>> >>> >>> >>> >>> >> >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum > > CONFIDENTIALITY:This email is intended solely for the person(s) named and may be confidential and/or privileged.If you are not the intended recipient,please delete it,notify us and do not copy,use,or disclose its content. > > Towards A Sustainable Earth:Print Only When Necessary.Thank you. From dima at ntu.edu.sg Fri May 25 13:39:46 2012 From: dima at ntu.edu.sg (Dmitrii (Dima) Pasechnik) Date: Fri, 25 May 2012 14:39:46 +0200 Subject: [GAP Forum] problem with AutomorphismGroup In-Reply-To: <0ECF0103-AB51-46F2-A60E-9846A4115F5B@gmail.com> References: <11E49A4E-A67B-428B-BEEA-C298EA331CD1@gmail.com> <97E20CD8-CBBC-4709-AAE9-807CA75B66E3@mcs.st-andrews.ac.uk> <0EE81850-3B3B-47C9-B64B-33E43A86138D@gmail.com> <8F511324-A49B-458D-B520-7D423F094FF9@gmail.com> <7879F4DD-B4F5-41ED-BCC5-6299F78ADCAA@gmail.com> <0ECF0103-AB51-46F2-A60E-9846A4115F5B@gmail.com> Message-ID: On 25 May 2012 14:10, Markus Szymik wrote: > > I did that, but it still does not work. :( OK, do the following: within Sage, start gap_console(), i.e. and then run the following command there: sage: gap_console() GAP4, Version: 4.4.12 of 17-Dec-2008, i686-apple-darwin10.8.0-gcc gap> Print(Fingerprint); function ( G, U ) if not IsBool( MyFingerprint ) then return MyFingerprint( G, U ); fi; if ID_AVAILABLE( Size( U ) ) <> fail then return FingerprintSmall( G, U ); elif Size( U ) <= 1000 then return FingerprintMedium( G, U ); else return FingerprintLarge( G, U ); fi; return; endgap> (this is how Fingerprint should look like) Whereas in Sage 4.8 I get (and I guess you get this too): gap> Print(Fingerprint); function ( T ) return List( TestWord, function ( x ) return Order( MappedWord( x, AbsGens, T ) ); end ); endgap> I do not yet know where this (wrong) Fingerprint comes from, and it's even less clear why you have it in Sage 5.0. If I enter the right Fingerprint at GAP prompt then things work as they should: gap> Fingerprint:=function ( G, U ) > if not IsBool( MyFingerprint ) then > return MyFingerprint( G, U ); > fi; > if ID_AVAILABLE( Size( U ) ) <> fail then > return FingerprintSmall( G, U ); > elif Size( U ) <= 1000 then > return FingerprintMedium( G, U ); > else > return FingerprintLarge( G, U ); > fi; > return; > end; function( G, U ) ... end gap> AutomorphismGroup(DihedralGroup(8)); gap> Best, Dmitrii > > Am 25.05.2012 um 13:52 schrieb Dmitrii (Dima) Pasechnik: > >> Hi, >> >> On 25 May 2012 13:09, Markus Szymik wrote: >>> >>> I have removed 4.8 now, and the problem still persists. >>> >>> There can be no old files around, since I did not upgrade Sage from within the program. >> >> It does not matter. Please remove your ~/.sage/ directory (where ~/ >> stands for the home directory of the user that runs sage), and then >> try again. >> This directory does not get changed automatically. >> >> Thanks, >> Dmitrii >> >>> Instead I downloaded the precompiled binaries and installed them next to 4.8 (which is gone >>> now), together with fresh versions of the GAP packages I need. >>> >>> Thanks, >>> >>> Markus >>> >>> Am 25.05.2012 um 12:51 schrieb Dmitrii (Dima) Pasechnik: >>> >>>> Hi, >>>> there are ?GAP image files stored in ~/.sage/ >>>> It might be that an old GAP image file is loaded when you >>>> run Sage 5.0. >>>> Please check this out. >>>> Thanks, >>>> Dmitrii >>>> >>>> On 25 May 2012 12:43, Markus Szymik wrote: >>>>> >>>>> Dear Dimitri, >>>>> >>>>> I have upgraded to Sage 5.0 last week. Maybe I should remove the old install to >>>>> ensure that Sage 4.8 is not being called upon by "accident". >>>>> >>>>> Thanks, >>>>> >>>>> Markus >>>>> >>>>> Am 25.05.2012 um 11:56 schrieb Dmitrii (Dima) Pasechnik: >>>>> >>>>>> Hi Markus, >>>>>> >>>>>> it indeed doesn't seem to work in Sage 4.8, for some reason, but does work >>>>>> with Sage 5.0 for me. >>>>>> Can you upgrade? >>>>>> >>>>>> Thanks, >>>>>> Dmitrii >>>>>> >>>>>> On 25 May 2012 11:40, Markus Szymik wrote: >>>>>>> >>>>>>> Dear Alexander, >>>>>>> >>>>>>> The error occurred while I was accessing GAP through Sage. >>>>>>> When I use GAP directly from within a terminal, the problem disappears. >>>>>>> Thanks a lot for pointing out that it should work. >>>>>>> >>>>>>> All the best, >>>>>>> >>>>>>> Markus >>>>>>> >>>>>>>> Dear Markus, >>>>>>>> >>>>>>>> For me, this works fine, both with default packages and without packages, >>>>>>>> for example: >>>>>>>> >>>>>>>> GAP4, Version: 4.4.12 of 17-Dec-2008, i686-apple-darwin10.8.0-gcc >>>>>>>> Components: ?small 2.1, small2 2.0, small3 2.0, small4 1.0, small5 1.0, >>>>>>>> ? ? ? ? ? ?small6 1.0, small7 1.0, small8 1.0, small9 1.0, small10 0.2, >>>>>>>> ? ? ? ? ? ?small11 0.1, id2 3.0, id3 2.1, id4 1.0, id5 1.0, id6 1.0, id9 1.0, >>>>>>>> ? ? ? ? ? ?id10 0.1, trans 1.0, prim 2.1 ?loaded. >>>>>>>> Packages: ? ?AClib 1.1, Polycyclic 2.8.1, Alnuth 2.3.1, AutPGrp 1.4, nq 2.2, >>>>>>>> ? ? ? ? ? ?GAPDoc 1.3, IO 3.3, CrystCat 1.1.3, Cryst 4.1.6, CRISP 1.3.4, >>>>>>>> ? ? ? ? ? ?CTblLib 1.1.3, TomLib 1.1.4, FactInt 1.5.3, FGA 1.1.0.1, >>>>>>>> ? ? ? ? ? ?IRREDSOL 1.2, LAGUNA 3.5.0, Sophus 1.23, MIPLib 1.0, >>>>>>>> ? ? ? ? ? ?Polenta 1.2.7, ResClasses 3.0.0 ?loaded. >>>>>>>> gap> AutomorphismGroup(DihedralGroup(8)); >>>>>>>> >>>>>>>> >>>>>>>> Which version of GAP are you using? How did you install it? >>>>>>>> Could you copy-and-paste the exact GAP session where you have this error? >>>>>>>> >>>>>>>> Best wishes, >>>>>>>> Alexander >>>>>>>> >>>>>>>> >>>>>>>> On 25 May 2012, at 10:05, Markus Szymik wrote: >>>>>>>> >>>>>>>>> >>>>>>>>> Dear Forum, >>>>>>>>> >>>>>>>>> I am trying to compute automorphism groups of p-groups, >>>>>>>>> and GAP responds with an error message I don't understand. >>>>>>>>> For example, >>>>>>>>> >>>>>>>>> ? ? AutomorphismGroup(DihedralGroup(8)); >>>>>>>>> >>>>>>>>> results in: >>>>>>>>> >>>>>>>>> ? ? ... >>>>>>>>> ? ? RuntimeError: Gap produced error output >>>>>>>>> ? ? Function: number of arguments must be 1 (not 2) >>>>>>>>> >>>>>>>>> The command works fine for all groups of order less than 8. >>>>>>>>> What is wrong here? >>>>>>>>> >>>>>>>>> Thanks, >>>>>>>>> >>>>>>>>> Markus >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> Forum mailing list >>>>>>>>> Forum at mail.gap-system.org >>>>>>>>> http://mail.gap-system.org/mailman/listinfo/forum >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Dr. Alexander Konovalov ? ? ? ? ? ? ? School of Computer Science >>>>>>>> & Centre for Interdisciplinary Research in Computational Algebra >>>>>>>> University of St Andrews ? ? ? ? ? ? ? ? Tel +44/0 (1334) 461633 >>>>>>>> http://www.cs.st-andrews.ac.uk/~alexk ? ?Fax +44/0 (1334) 463278 >>>>>>>> The University of St Andrews is a charity registered in Scotland:No.SC013532 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Forum mailing list >>>>>>> Forum at mail.gap-system.org >>>>>>> http://mail.gap-system.org/mailman/listinfo/forum >>>>>> >>>>>> CONFIDENTIALITY:This email is intended solely for the person(s) named and may be confidential and/or privileged.If you are not the intended recipient,please delete it,notify us and do not copy,use,or disclose its content. >>>>>> >>>>>> Towards A Sustainable Earth:Print Only When Necessary.Thank you. >>>>> >>> > From hulpke at math.colostate.edu Fri May 25 16:09:17 2012 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri, 25 May 2012 09:09:17 -0600 Subject: [GAP Forum] Display(CharacterTable(G)); recursion depth trap (5000) In-Reply-To: References: Message-ID: <9DDCF8A2-6268-40D8-AF1D-64126C46A94F@math.colostate.edu> Dear Forum, On May 25, 2012, at 5/25/12 12:57, Linda Cupples wrote: > > F:=FreeGroup("a","b"); > a:=F.1;;b:=F.2;; > G:=F/[a^4,b^4,(a*b)^2,(a^3*b)^2]; > Display(CharacterTable(G)); When doing involved calculations such as character table in general the representation of a group as a finitely presented group is the least efficient and provides least functionality. This is the reason for the problem you observe. (The next release will provide somewhat better functionality and for example be able to do this example, but still it would be very inefficient to calculate the character table of a finitely presented group of order 10^6.) The easiest way to deal with this issue thus is to move to an isomorphic permutation representation: gap> P:=Image(IsomorphismPermGroup(G)); gap> Display(CharacterTable(P)); As this type of question comes up about every 6 months it might be a good opportunity to advertise the GAP Forum email archive at: http://mail.gap-system.org/pipermail/forum/ as well. Best wishes, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From grayham1990 at hotmail.com Sat May 26 14:17:59 2012 From: grayham1990 at hotmail.com (Daniel Grayham) Date: Sat, 26 May 2012 13:17:59 +0000 Subject: [GAP Forum] Question regarding quotient group functions Message-ID: Hey guys, I have only recently started using GAP in my post graduate studies and I have come across a bit of difficulty. This is a general example of the kind of code I have been working with, I generate my group by forming a free group and quotienting out the necessary relations, >From there I have been able to do almost everything, however when I try to form subgroups, say Subgroup(G, [a^2]); where a is one of the generators of the group and say, a^2 has order 2 for example (generates subgroup isomorphic to C2) I get the error: Error, families of and are different I have have double checked the generators of the group using GeneratorsOfGroup(G) and have also tried, for example if the group is only generated by a, Subgroup(G, [a]); But I get the same error. I have gone through a lot examples where people use permutation groups and they work find for me, I only have trouble when I'm working with groups in this representation. The main reason I began trying to generate the subgroups was because I haven't been able to quotient out elements of the group, or use the FactorGroup(G,..) function. For example: G/[a^2]; Error, no method found! For debugging hints type ?Recovery from NoMethodFoundError, no 1st choice method found for `QUO' on 2 arguments FactorGroup(G, Subgroup(G, [a^2])); (ive tried Subgroup(..) in the position of a^2 however the subgroup function gives a different error)Error, must be a normal subgroup of Similarly with cosets, I haven't been able to find cosets in terms of elements, RightCosets(G, [a^2]); gives an error however: RightCosets(G,Centre(G)); Works perfectly, Is there a crutial part of GAP code I am missing? Most importantly how can I find the quotient groups such as G/[a^2] for example? Thanks in advance, Grayham, From hulpke at me.com Sat May 26 14:55:06 2012 From: hulpke at me.com (Alexander Hulpke) Date: Sat, 26 May 2012 07:55:06 -0600 Subject: [GAP Forum] Question regarding quotient group functions In-Reply-To: References: Message-ID: Dear Daniel Grayham, > Subgroup(G, [a^2]); > where a is one of the generators of the group and say, a^2 has order 2 for example (generates subgroup isomorphic to C2) > I get the error: > Error, families of and are different This looks as if a is an element of the free group F, and G a finitely presented group which was a quotient of F. These are incompatible objects. You should use gens:=GeneratorsOfGroup(G); a:=gens[1]; # or appropriate or AssignGeneratorVariables(G); to use the correct elements. See the manual section on finitely presented groups http://www.gap-system.org/Manuals/doc/htm/ref/CHAP045.htm for more information. > > RightCosets(G, [a^2]); gives an error however: Wrong syntax. The second argument must be a subgroup, not an element list. Best wishes, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From dima at ntu.edu.sg Tue May 29 11:29:24 2012 From: dima at ntu.edu.sg (Dmitrii (Dima) Pasechnik) Date: Tue, 29 May 2012 12:29:24 +0200 Subject: [GAP Forum] problem with AutomorphismGroup In-Reply-To: <5C818011-C852-4E67-B435-0110C58639B7@gmail.com> References: <11E49A4E-A67B-428B-BEEA-C298EA331CD1@gmail.com> <97E20CD8-CBBC-4709-AAE9-807CA75B66E3@mcs.st-andrews.ac.uk> <0EE81850-3B3B-47C9-B64B-33E43A86138D@gmail.com> <8F511324-A49B-458D-B520-7D423F094FF9@gmail.com> <7879F4DD-B4F5-41ED-BCC5-6299F78ADCAA@gmail.com> <0ECF0103-AB51-46F2-A60E-9846A4115F5B@gmail.com> <5599E3BB-5538-4694-88F5-68B166537944@gmail.com> <00D0F913-ED34-40E7-A4BB-624C502942EF@gmail.com> <5C818011-C852-4E67-B435-0110C58639B7@gmail.com> Message-ID: Dear Markus, Thanks. I can confirm that this is a bug in in Sage's gap_packages-4.4.12.p1. More precisely, one of the GAP packages bundled there, namely the one called "braid" (listed on http://www.gap-system.org/Packages/undep.html), version 1.0, overwrites GAP's Fingerprint function (hmm, is it a method?) with something of its own. There is a later version of this package, 1.1. However, it still has the same bug. OK, we'll fix this in Sage in some way, most probably by patching "braid". Best, Dmitrii On 29 May 2012 11:43, Markus Szymik wrote: > > Dear Dmitrii, > > The GAP packages are not included into the Sage distribution. As far as I know, this is > because of differences in the copyrights. Consequently, I always install them myself. > > Best, > > Markus > > Am 29.05.2012 um 11:14 schrieb Dmitrii (Dima) Pasechnik: > >> Hi, >> >> On 29 May 2012 07:45, Markus Szymik wrote: >>> >>>> Do you know if only core GAP is available in this binary? >>>> I.e., what is the output of >>>> optional_packages() >>>> command in Sage? >>> >>> sage: optional_packages() >>> (['database_gap-4.4.12.p1', 'gap_packages-4.4.12.p1'], >> I wonder if you got them already in the binary. >> Or have you installed them yourself? >> Thanks, >> Dmitrii >> >> ['4ti2-1.3.2.p1', 'PyQt_x11-4.9.1.p0', 'TOPCOM-0.16.2.p2', >> 'ace-5.0.p0', 'biopython-1.57', 'cbc-2.7.5', 'cunningham_tables-1.0', >> 'database_cremona_ellcurve-20120302', 'database_jones_numfield-v4', >> 'database_kohel-20060803', 'database_odlyzko_zeta', >> 'database_sloane_oeis-2005-12', 'database_stein_watkins_mini.p0', >> 'database_symbolic_data-20070206', 'dot2tex-2.8.7-2', >> 'extra_docs-20070208', 'fricas-1.0.9', 'fricasaldor-1.0.9', >> 'gdbm-1.8.3', 'ginv-1.9-20080723', 'git-1.7.9.4', 'gmpy-1.0.1', >> 'gnuplotpy-1.8', 'graphviz-2.16.1.p0', 'guppy-0.1.8', >> 'java3d-20070901', 'jsmath_image_fonts-1.4.p3', 'kash3-2008-07-31.p0', >> 'knoboo-20080411', 'libcocoa-0.9930', 'libogg-1.1.4', >> 'libtheora-1.1.1', 'lie-2.2.2.p3', 'lrcalc-1.1.6beta', 'lrs-4.2b.p1', >> 'mpc-0.8.3-dev-svn793', 'mpi4py-1.2.2', 'nauty-24', 'nzmath-1.1.0', >> 'openmpi-1.4.3', 'openssl-1.0.1a', 'p_group_cohomology-2.1.2', >> 'phc-2.3.53.p0', 'pycryptoplus-20100809-git', 'pyopenssl-0.8', >> 'pyx-0.10', 'pyzmq-2.1.11.p0', 'qhull-2010.1', 'sage-mode-0.6', >> 'sip-4.13.2.p0', 'trac-0.11.5.p0', 'valgrind-3.7.0', >> 'zeromq-2.2.0.p0']) >>> sage: >>> >>>> Also, you could try reinstalling gap spkg. >>>> >>>> That is, in Terminal cd to the directory where Sage is installed, and >>>> issue the command >>>> ./sage -f http://www.sagemath.org/packages/standard/gap-4.4.12.p6.spkg >>>> >>>> and after it completes (it will download the the source of the package >>>> and build it, so it will take a little while) >>>> issue >>>> ./sage -b >>> >>> That did the job; it works fine now. Maybe it was because I had .p1 instead of .p6 ? >>> >>> Thanks a lot for your help! >>> >>> Markus >>> >>>> Thanks, >>>> Dima >>>> >>>>> The Sage version I have installed is the one for Apple OS X, intel, dating from 2012-05-15, >>>>> 14:37, sage-5.0-OSX-64bit-10.6-x86_64-Darwin-app.dmg . >>>>> >>>>> Thanks, >>>>> >>>>> Markus >>>>> >>>>> Am 25.05.2012 um 14:56 schrieb Dmitrii (Dima) Pasechnik: >>>>> >>>>>> It could also be the case that the binary Sage 5.0 you installed is broken... >>>>>> Could you tell me the exact version you installed? >>>>>> Thanks, >>>>>> Dmitrii >>>>>> >>>>>> On 25 May 2012 14:10, Markus Szymik wrote: >>>>>>> >>>>>>> I did that, but it still does not work. :( >>>>>>> >>>>>>> Am 25.05.2012 um 13:52 schrieb Dmitrii (Dima) Pasechnik: >>>>>>> >>>>>>>> Hi, >>>>>>>> >>>>>>>> On 25 May 2012 13:09, Markus Szymik wrote: >>>>>>>>> >>>>>>>>> I have removed 4.8 now, and the problem still persists. >>>>>>>>> >>>>>>>>> There can be no old files around, since I did not upgrade Sage from within the program. >>>>>>>> >>>>>>>> It does not matter. Please remove your ~/.sage/ directory (where ~/ >>>>>>>> stands for the home directory of the user that runs sage), and then >>>>>>>> try again. >>>>>>>> This directory does not get changed automatically. >>>>>>>> >>>>>>>> Thanks, >>>>>>>> Dmitrii >>>>>>>> >>>>>>>>> Instead I downloaded the precompiled binaries and installed them next to 4.8 (which is gone >>>>>>>>> now), together with fresh versions of the GAP packages I need. >>>>>>>>> >>>>>>>>> Thanks, >>>>>>>>> >>>>>>>>> Markus >>>>>>>>> >>>>>>>>> Am 25.05.2012 um 12:51 schrieb Dmitrii (Dima) Pasechnik: >>>>>>>>> >>>>>>>>>> Hi, >>>>>>>>>> there are ?GAP image files stored in ~/.sage/ >>>>>>>>>> It might be that an old GAP image file is loaded when you >>>>>>>>>> run Sage 5.0. >>>>>>>>>> Please check this out. >>>>>>>>>> Thanks, >>>>>>>>>> Dmitrii >>>>>>>>>> >>>>>>>>>> On 25 May 2012 12:43, Markus Szymik wrote: >>>>>>>>>>> >>>>>>>>>>> Dear Dimitri, >>>>>>>>>>> >>>>>>>>>>> I have upgraded to Sage 5.0 last week. Maybe I should remove the old install to >>>>>>>>>>> ensure that Sage 4.8 is not being called upon by "accident". >>>>>>>>>>> >>>>>>>>>>> Thanks, >>>>>>>>>>> >>>>>>>>>>> Markus >>>>>>>>>>> >>>>>>>>>>> Am 25.05.2012 um 11:56 schrieb Dmitrii (Dima) Pasechnik: >>>>>>>>>>> >>>>>>>>>>>> Hi Markus, >>>>>>>>>>>> >>>>>>>>>>>> it indeed doesn't seem to work in Sage 4.8, for some reason, but does work >>>>>>>>>>>> with Sage 5.0 for me. >>>>>>>>>>>> Can you upgrade? >>>>>>>>>>>> >>>>>>>>>>>> Thanks, >>>>>>>>>>>> Dmitrii >>>>>>>>>>>> >>>>>>>>>>>> On 25 May 2012 11:40, Markus Szymik wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> Dear Alexander, >>>>>>>>>>>>> >>>>>>>>>>>>> The error occurred while I was accessing GAP through Sage. >>>>>>>>>>>>> When I use GAP directly from within a terminal, the problem disappears. >>>>>>>>>>>>> Thanks a lot for pointing out that it should work. >>>>>>>>>>>>> >>>>>>>>>>>>> All the best, >>>>>>>>>>>>> >>>>>>>>>>>>> Markus >>>>>>>>>>>>> >>>>>>>>>>>>>> Dear Markus, >>>>>>>>>>>>>> >>>>>>>>>>>>>> For me, this works fine, both with default packages and without packages, >>>>>>>>>>>>>> for example: >>>>>>>>>>>>>> >>>>>>>>>>>>>> GAP4, Version: 4.4.12 of 17-Dec-2008, i686-apple-darwin10.8.0-gcc >>>>>>>>>>>>>> Components: ?small 2.1, small2 2.0, small3 2.0, small4 1.0, small5 1.0, >>>>>>>>>>>>>> ? ? ? ? ? ?small6 1.0, small7 1.0, small8 1.0, small9 1.0, small10 0.2, >>>>>>>>>>>>>> ? ? ? ? ? ?small11 0.1, id2 3.0, id3 2.1, id4 1.0, id5 1.0, id6 1.0, id9 1.0, >>>>>>>>>>>>>> ? ? ? ? ? ?id10 0.1, trans 1.0, prim 2.1 ?loaded. >>>>>>>>>>>>>> Packages: ? ?AClib 1.1, Polycyclic 2.8.1, Alnuth 2.3.1, AutPGrp 1.4, nq 2.2, >>>>>>>>>>>>>> ? ? ? ? ? ?GAPDoc 1.3, IO 3.3, CrystCat 1.1.3, Cryst 4.1.6, CRISP 1.3.4, >>>>>>>>>>>>>> ? ? ? ? ? ?CTblLib 1.1.3, TomLib 1.1.4, FactInt 1.5.3, FGA 1.1.0.1, >>>>>>>>>>>>>> ? ? ? ? ? ?IRREDSOL 1.2, LAGUNA 3.5.0, Sophus 1.23, MIPLib 1.0, >>>>>>>>>>>>>> ? ? ? ? ? ?Polenta 1.2.7, ResClasses 3.0.0 ?loaded. >>>>>>>>>>>>>> gap> AutomorphismGroup(DihedralGroup(8)); >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> Which version of GAP are you using? How did you install it? >>>>>>>>>>>>>> Could you copy-and-paste the exact GAP session where you have this error? >>>>>>>>>>>>>> >>>>>>>>>>>>>> Best wishes, >>>>>>>>>>>>>> Alexander >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On 25 May 2012, at 10:05, Markus Szymik wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Dear Forum, >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I am trying to compute automorphism groups of p-groups, >>>>>>>>>>>>>>> and GAP responds with an error message I don't understand. >>>>>>>>>>>>>>> For example, >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> ? ? AutomorphismGroup(DihedralGroup(8)); >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> results in: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> ? ? ... >>>>>>>>>>>>>>> ? ? RuntimeError: Gap produced error output >>>>>>>>>>>>>>> ? ? Function: number of arguments must be 1 (not 2) >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> The command works fine for all groups of order less than 8. >>>>>>>>>>>>>>> What is wrong here? >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Markus >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>> Forum mailing list >>>>>>>>>>>>>>> Forum at mail.gap-system.org >>>>>>>>>>>>>>> http://mail.gap-system.org/mailman/listinfo/forum >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> Dr. Alexander Konovalov ? ? ? ? ? ? ? School of Computer Science >>>>>>>>>>>>>> & Centre for Interdisciplinary Research in Computational Algebra >>>>>>>>>>>>>> University of St Andrews ? ? ? ? ? ? ? ? Tel +44/0 (1334) 461633 >>>>>>>>>>>>>> http://www.cs.st-andrews.ac.uk/~alexk ? ?Fax +44/0 (1334) 463278 >>>>>>>>>>>>>> The University of St Andrews is a charity registered in Scotland:No.SC013532 >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>> Forum mailing list >>>>>>>>>>>>> Forum at mail.gap-system.org >>>>>>>>>>>>> http://mail.gap-system.org/mailman/listinfo/forum >>>>>>>>>>>> >>>>>>>>>>>> CONFIDENTIALITY:This email is intended solely for the person(s) named and may be confidential and/or privileged.If you are not the intended recipient,please delete it,notify us and do not copy,use,or disclose its content. >>>>>>>>>>>> >>>>>>>>>>>> Towards A Sustainable Earth:Print Only When Necessary.Thank you. >>>>>>>>>>> >>>>>>>>> >>>>>>> >>>>> >>> > From kroeker at uni-math.gwdg.de Wed May 30 18:19:56 2012 From: kroeker at uni-math.gwdg.de (kroeker) Date: Wed, 30 May 2012 19:19:56 +0200 Subject: [GAP Forum] suggestion for additional core operations on polynomials and lists Message-ID: <4FC656BC.7040104@uni-math.gwdg.de> Dear GAP-team, recently I extensively used polynomials, lists and methods to manipulate them. From this experience I would like to suggest to add some of the following manipulation and access methods to the GAP-core: - get or set the coefficient of a specified monomial in a polynomial. ( 'get' parameters: polynomial and the monomial of interest ) - get coefficients for a list of monomials of interest. - get the nonzero-coefficients as a list. - flatten a list ( e.g. Flatten( [ 2,[ 3,[4] ] ] ) => [ 2, 3, [4] ] ; Flatten( [ 2, 3, [4] ] ) => [ 2, 3, 4 ] ); Some initial implementations are given below. Any remarks, comments related to this suggestion? Thanks, Jakob DeclareOperation("Flatten", [IsList] ); # Example: [ [1,[2] ],[1] ] changes to [1,[2], 1] changes to [1,2,1] . InstallMethod(Flatten, "remove the top level nesting ", [IsList], function(list) local result, entry; Assert( 0, IsList(list) ); result := []; for entry in list do if IsList(entry) then Append( result, entry ); else Append( result, [entry] ); fi; od; return result; end ); # todo: check that polynomial and monomial are in the same ring. DeclareOperation( "getCoefficientOfMonomial", [ IsPolynomial, IsPolynomial ] ); InstallMethod( getCoefficientOfMonomial, " get the coefficient of a polynomial ", [IsPolynomial, IsPolynomial] , function( polynomial, monomial ) local monomData, coeffData, pos; monomData := ExtRepPolynomialRatFun(monomial); if Size(monomData) <>2 then Error( Concatenation( "\"getCoefficientOfMonomial\": the second parameter (' ", String(monomial), " ') has to be a monomial!") ); fi; Assert( 0, Size(monomData) =2 ); coeffData := ExtRepPolynomialRatFun(polynomial); for pos in [1..Size(coeffData)/2] do if coeffData[pos*2-1]=monomData[1] then return coeffData[pos*2]; fi; od; return Zero( CoefficientsFamily(FamilyObj(polynomial)) ) ; end ); DeclareOperation( "getNonzeroCoefficientList", [ IsPolynomial ] ); InstallMethod( getNonzeroCoefficientList, " get the nonzero coefficients of a polynomial ", [ IsPolynomial ] , function( polynomial ) local coeffList, coeffData, pos; coeffList := []; coeffData := ExtRepPolynomialRatFun(polynomial); for pos in [1..Size(coeffData)/2] do Append(coeffList, [ coeffData[pos*2] ]); od; return coeffList; end ); From laurent.bartholdi at gmail.com Wed May 30 20:10:23 2012 From: laurent.bartholdi at gmail.com (Laurent Bartholdi) Date: Wed, 30 May 2012 21:10:23 +0200 Subject: [GAP Forum] [GAP Support] suggestion for additional core operations on polynomials and lists In-Reply-To: <4FC656BC.7040104@uni-math.gwdg.de> References: <4FC656BC.7040104@uni-math.gwdg.de> Message-ID: Dear Jacob: All of the methods could appear, but I don't think it's a good idea to install them as core GAP functions in that form, for efficiency reasons. E.g., extracting a coefficient from a polynomial should be a O(1) operation, but it's O(degree) in your implementation, and I don't think it can ever be made better using the current GAP underlying format. We shouldn't encourage programmers to use asymptotically inefficient methods. Library methods should either perform high-level operations on the polynomial (which then means "not looking at coefficients individually"), or should be coded using an ext-rep of the polynomial. Similarly, "Flatten" may be useful for end users, but it is almost certainly a mistake to use it inside library code, since it's essentially the same as "Concatenation", except that non-lists are allowed. In a library, one usually knows whether one has lists or non-lists, so one can use "Concatenation" directly. > ? ? ? ?if IsList(entry) then > ? ? ? ?Append( result, entry ); > ? ? ? ?else > ? ? ? ? ? ?Append( result, [entry] ); Here, this should be simply "Add(result,entry)". > ? ? ? ?fi; -- Prof. Dr. Laurent Bartholdi?? \ laurent.bartholdigmailcom G.-A. Universit?t zu G?ttingen \ Phone: +49 551 39 7826 Bunsenstra?e 3-5? ? ? ? ? ? ? ? \ Secr: +49 551 39 7752 D-37073 G?ttingen, Germany? ? ?? \ Fax: +49 551 39 22674 From kroeker at uni-math.gwdg.de Thu May 31 16:34:34 2012 From: kroeker at uni-math.gwdg.de (kroeker) Date: Thu, 31 May 2012 17:34:34 +0200 Subject: [GAP Forum] suggestion for additional core operations on polynomials and lists In-Reply-To: References: <4FC656BC.7040104@uni-math.gwdg.de> Message-ID: <4FC78F8A.3060601@uni-math.gwdg.de> Hello Mariano, thanks for the hint with 'Flat'. It seems I overlooked it. But 'Flat' is still different to 'Flatten'. 'Flat()' applied to a list returns a complete flat list while 'Flatten()' only flattens the list a bit: Applying 'Flat' to [ 2,[ 3,[4] ] ] results in [ 2, 3, 4 ], while 'Flatten' would return [ 2, 3, [4] ] Best, Jakob Am 30.05.2012 20:53, schrieb Mariano Suarez-Alvarez: > On Wed, 30 May 2012, kroeker wrote: > >> Dear GAP-team, >> >> >> recently I extensively used polynomials, lists and methods to >> manipulate them. >> From this experience I would like to suggest to add some of the >> following manipulation and access methods to the GAP-core: >> > > [snip] > >> - flatten a list >> ( e.g. Flatten( [ 2,[ 3,[4] ] ] ) => [ 2, 3, [4] ] ; Flatten( [ >> 2, 3, [4] ] ) => [ 2, 3, 4 ] ); > > > Isn't this precisely what the function Flat does? > (The naming scheme for functions is sometimes surprising, going from > verbs to adjectives to nouns... I hope in some parallel universe GAP > has a better naming convention :) ) > > -- m > > From alexk at mcs.st-andrews.ac.uk Thu May 31 16:45:12 2012 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Thu, 31 May 2012 16:45:12 +0100 Subject: [GAP Forum] suggestion for additional core operations on polynomials and lists In-Reply-To: <4FC78F8A.3060601@uni-math.gwdg.de> References: <4FC656BC.7040104@uni-math.gwdg.de> <4FC78F8A.3060601@uni-math.gwdg.de> Message-ID: <81F99BAC-2F13-4F7B-9C13-456556EDF168@mcs.st-andrews.ac.uk> Dear Mariano, dear Forum, >> (The naming scheme for functions is sometimes surprising, going from verbs to adjectives to nouns... I hope in some parallel universe GAP has a better naming convention :) ) This may be of an interest - the manual for next version of GAP will have a section on naming conventions, shown below. In particular, it explains that a verb normally modify its argument(s) but does not return anything. Of course, there may be exceptions? Best wishes, Alexander 5.5 Naming Conventions The way functions are named in GAP might help to memorize or even guess names of library functions. If a variable name consists of several words then the first letter of each word is capitalized. If the first part of the name of a function is a verb then the function may modify its argument(s) but does not return anything, for example Append (21.4-5) appends the list given as second argument to the list given as first argument. Otherwise the function returns an object without changing the arguments, for example Concatenation (21.20-1) returns the concatenation of the lists given as arguments. If the name of a function contains the word "Of" then the return value is thought of as information deduced from the arguments. Usually such functions are attributes (see 13.5). Examples are GeneratorsOfGroup (39.2-3), which returns a list of generators for the group entered as argument, or DiagonalOfMat (24.12-1). For the setter and tester functions of an attribute Attr the names SetAttr resp. HasAttr are available (see 13.5). If the name of a function contains the word "By" then the return value is thought of as built in a certain way from the parts given as arguments. For example, creating a group as a factor group of a given group by a normal subgroup can be done by taking the image ofNaturalHomomorphismByNormalSubgroup (39.18-1). Other examples of "By" functions areGroupHomomorphismByImages (40.1-1) and LaurentPolynomialByCoefficients (66.13-1). Often such functions construct an algebraic structure given by its generators (for example, RingByGenerators (56.1-4)). In some cases, "By" may be replaced by "With" (like e.g. GroupWithGenerators (39.2-2)) or even both versions of the name may be used. The difference between StructByGenerators and StructWithGenerators is that the latter guarantees that the GeneratorsOfStruct value of the result is equal to the given set of generators (see 31.3). If the name of a function has the form "AsSomething" then the return value is an object (usually a collection which has the same family of elements), which may, for example: ? know more about its own structure (and so support more operations) than its input (e.g. if the elements of the collection form a group, then this group can be constructed using AsGroup (39.2-4)); ? discard its additional structure (e.g. AsList (30.3-8) applied to a group will return a list of its elements); ? contain all elements of the original object without duplicates (like e.g. AsSet (30.3-10) does if its argument is a list of elements from the same family); ? remain unchanged (like e.g. AsSemigroup (51.1-5) does if its argument is a group). If Something and the argument of AsSomething are domains, some further rules apply as explained in Tutorial: Changing the Structure. If the name of a function fun1 ends with "NC" then there is another function fun2 with the same name except that the NC is missing. NCstands for "no check". When fun2 is called then it checks whether its arguments are valid, and if so then it calls fun1. The functionsSubgroupNC (39.3-1) and Subgroup (39.3-1) are a typical example. The idea is that the possibly time consuming check of the arguments can be omitted if one is sure that they are unnecessary. For example, if an algorithm produces generators of the derived subgroup of a group then it is guaranteed that they lie in the original group; Subgroup(39.3-1) would check this, and SubgroupNC (39.3-1) omits the check. Needless to say, all these rules are not followed slavishly, for example there is one operation Zero (31.10-3) instead of two operationsZeroOfElement and ZeroOfAdditiveGroup. ==== From vipul at math.uchicago.edu Mon Jun 4 15:34:54 2012 From: vipul at math.uchicago.edu (Vipul Naik) Date: Mon, 4 Jun 2012 09:34:54 -0500 Subject: [GAP Forum] Constructing semilinear, outer linear, and affine groups Message-ID: <20120604143454.GA32681@math.uchicago.edu> Dear GAP Forum, I would appreciate if any of you could provide me code (or suggest a package) that would help construct these groups for a positive integer n and a prime power q of prime p. If I have the code, I should be able to tweak it to construct the variants. I am not too concerned about computational efficiency: (1) General semilinear group Gamma L(n,q), defined as semidirect product with base GL(n,q) and acting group the automorphism group of F_q (i.e., the Galois group of F_q over F_p). I'm also interested in constructing variants where the base group is taken as SL(n,q), PGL(n,q), or PSL(n,q), and also variants where we take a subgroup of the Galois group rather than the whole Galois group. (2) Outer linear group OL(n,q), defined as the semidirect product of GL(n,q) by a cyclic group of order two where the non-identity element acts by the transpose-inverse map. I also want to consider variants where the base group is taken as SL(n,q) instead of GL(n,q), as well as the variant where q = p^2 and we take the semidirect product by a cyclic group of order two acting by the conjugate-transpose-inverse. (3) General affine group denoted GA(n,q) or AGL(n,q) defined as the semidirect product of the n-dimensional vector space over F_q by GL(n,q) with its natural action. I also want to construct semidirect products for chosen subgroups of GL(n,q), and more generally, semidirect products associated with n-dimensional representations of groups over F_q. Thank you! Vipul From jdebeule at cage.ugent.be Tue Jun 5 15:42:44 2012 From: jdebeule at cage.ugent.be (Jan De Beule) Date: Tue, 5 Jun 2012 16:42:44 +0200 Subject: [GAP Forum] Constructing semilinear, outer linear, and affine groups In-Reply-To: <20120604143454.GA32681@math.uchicago.edu> References: <20120604143454.GA32681@math.uchicago.edu> Message-ID: Dear Vipul Naik, Currently, we are developing a share package for GAP, called "FinInG", of which a beta release is available through http://cage.ugent.be/geometry/fining.php Almost everything you ask related to the projective groups, is available in the package. Feel free to contact us if you want the most recent version of the package. We plan to submit the package in the near future. Best regards, Jan De Beule Op 4-jun-2012, om 16:34 heeft Vipul Naik het volgende geschreven: > Dear GAP Forum, > > I would appreciate if any of you could provide me code (or suggest a > package) that would help construct these groups for a positive integer > n and a prime power q of prime p. If I have the code, I should be able > to tweak it to construct the variants. I am not too concerned about > computational efficiency: > > (1) General semilinear group Gamma L(n,q), defined as semidirect > product with base GL(n,q) and acting group the automorphism group of > F_q (i.e., the Galois group of F_q over F_p). > > I'm also interested in constructing variants where the base group is > taken as SL(n,q), PGL(n,q), or PSL(n,q), and also variants where we > take a subgroup of the Galois group rather than the whole Galois group. > > (2) Outer linear group OL(n,q), defined as the semidirect product of > GL(n,q) by a cyclic group of order two where the non-identity element > acts by the transpose-inverse map. > > I also want to consider variants where the base group is taken as > SL(n,q) instead of GL(n,q), as well as the variant where q = p^2 and > we take the semidirect product by a cyclic group of order two acting > by the conjugate-transpose-inverse. > > (3) General affine group denoted GA(n,q) or AGL(n,q) defined as the > semidirect product of the n-dimensional vector space over F_q by > GL(n,q) with its natural action. > > I also want to construct semidirect products for chosen subgroups of > GL(n,q), and more generally, semidirect products associated with > n-dimensional representations of groups over F_q. > > Thank you! > > Vipul > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum ---------------------------------------------------------------------------- Jan De Beule jdebeule at cage.ugent.be Postdoctoraal onderzoeker FWO Vakgroep Wiskunde Krijgslaan 281, S22 B 9000 Gent (Belgium) http://cage.ugent.be/~jdebeule ---------------------------------------------------------------------------- From laurent.bartholdi at gmail.com Wed Jun 6 15:18:52 2012 From: laurent.bartholdi at gmail.com (Laurent Bartholdi) Date: Wed, 6 Jun 2012 16:18:52 +0200 Subject: [GAP Forum] Lie rings Message-ID: Dear forum, I'd like to do some calculations with Lie rings (i.e. Lie algebras over Z) which are not free additive modules. I.e., the underlying additive group is Z/64 x Z/64 x Z/16 x Z/4, and I know the bracket of basis elements. I searched through the manual and forum, and saw no mention of Lie rings which are not algebras -- let alone how to contruct them. Is there a way of doing this? TIA, Laurent -- Prof. Dr. Laurent Bartholdi?? \ laurent.bartholdigmailcom G.-A. Universit?t zu G?ttingen \ Phone: +49 551 39 7826 Bunsenstra?e 3-5? ? ? ? ? ? ? ? \ Secr: +49 551 39 7752 D-37073 G?ttingen, Germany? ? ?? \ Fax: +49 551 39 22674 From max at quendi.de Wed Jun 6 15:36:41 2012 From: max at quendi.de (Max Horn) Date: Wed, 6 Jun 2012 16:36:41 +0200 Subject: [GAP Forum] Lie rings In-Reply-To: References: Message-ID: <164120B9-66C6-4A58-B25B-CD7E642A26AB@quendi.de> Dear Laurent, Am 06.06.2012 um 16:18 schrieb Laurent Bartholdi: > Dear forum, > I'd like to do some calculations with Lie rings (i.e. Lie algebras > over Z) which are not free additive modules. I.e., the underlying > additive group is Z/64 x Z/64 x Z/16 x Z/4, and I know the bracket of > basis elements. > > I searched through the manual and forum, and saw no mention of Lie > rings which are not algebras -- let alone how to contruct them. > > Is there a way of doing this? Willem de Graaf and Serena Cical? have a nice package for this under development: Moreover, I implemented various routines for compute Schur multipliers, epicenters etc. of Lie rings (those are not yet in a GAP package, though). Cheers, Max From aldoc9 at dm.uba.ar Wed May 30 19:53:10 2012 From: aldoc9 at dm.uba.ar (Mariano Suarez-Alvarez) Date: Wed, 30 May 2012 15:53:10 -0300 (ART) Subject: [GAP Forum] suggestion for additional core operations on polynomials and lists In-Reply-To: <4FC656BC.7040104@uni-math.gwdg.de> References: <4FC656BC.7040104@uni-math.gwdg.de> Message-ID: On Wed, 30 May 2012, kroeker wrote: > Dear GAP-team, > > > recently I extensively used polynomials, lists and methods to manipulate > them. > From this experience I would like to suggest to add some of the following > manipulation and access methods to the GAP-core: > [snip] > - flatten a list > ( e.g. Flatten( [ 2,[ 3,[4] ] ] ) => [ 2, 3, [4] ] ; Flatten( [ 2, 3, > [4] ] ) => [ 2, 3, 4 ] ); Isn't this precisely what the function Flat does? (The naming scheme for functions is sometimes surprising, going from verbs to adjectives to nouns... I hope in some parallel universe GAP has a better naming convention :) ) -- m -- ------------------------------------------------------------------------------ Mariano Su?rez-Alvarez Departamento de Matem?tica Facultad de Ciencias Exactas y Naturales, Universidad de Buenos Aires Ciudad Universitaria, Pabell?n I. Buenos Aires (1428). Argentina. http://mate.dm.uba.ar/~aldoc9 Pienso en efecto que, salvo si se cree en milagros, s?lo cabe esperar el progreso de la raz?n de una acci?n pol?tica racionalmente orientada hacia la defensa de las condiciones sociales del ejercicio de la raz?n, de una movilizaci?n permanente de todos los productores culturales con el prop?sito de defender, mediante intervenciones continuadas y modestas, las bases intelectuales de la actividad intelectual. Todo proyecto de desarrollo del esp?ritu humano que, olvidando el arraigo hist?rico de la raz?n, cuente con la ?nica fuerza de la raz?n y de la pr?dica racional para hacer progresar las causas de la raz?n, y que no apele a la lucha pol?tica para tratar de dotar a la raz?n y a la libertdad de los intrumentos propiamente pol?ticos que constituyen la condici?n de su realizaci?n en la hist?ria, contin?a todav?a prisionero de la ilusi?n escol?stica. Pierre Bourdieu, Le point de vue scolastique, ``Raisons pratiques. Sur la th?orie de l'action''. Points, vol. 331. Par?s: ?ditions du Seuil, 1994. ------------------------------------------------------------------------------ From paloff at ya.ru Thu Jun 7 13:14:01 2012 From: paloff at ya.ru (Igor Korepanov) Date: Thu, 07 Jun 2012 16:14:01 +0400 Subject: [GAP Forum] A small question about matrices Message-ID: <860821339071241@web13e.yandex.ru> Dear GAP maintainers, If I am right, the CanonicalBasis command for vector spaces in a situation like this: gap> A := [ [1,2,3], [4,5,6], [7,8,9] ]; [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ] gap> BasisVectors( CanonicalBasis( VectorSpace( Rationals, A ) ) ); [ [ 1, 0, -1 ], [ 0, 1, 2 ] ] builds exactly the same matrix as TriangulizeMat, save that zero row(s) is/are stripped off: gap> TriangulizeMat( A );; A; [ [ 1, 0, -1 ], [ 0, 1, 2 ], [ 0, 0, 0 ] ] My question is: could you confirm that this is firmly so? Best wishes, Igor From max at quendi.de Thu Jun 7 14:31:33 2012 From: max at quendi.de (Max Horn) Date: Thu, 7 Jun 2012 15:31:33 +0200 Subject: [GAP Forum] A small question about matrices In-Reply-To: <860821339071241@web13e.yandex.ru> References: <860821339071241@web13e.yandex.ru> Message-ID: <1772CB52-63AE-4DA1-B9B9-B44E61ECC2BB@quendi.de> Dear Igor, Am 07.06.2012 um 14:14 schrieb Igor Korepanov: > Dear GAP maintainers, > > If I am right, the CanonicalBasis command for vector spaces in a situation like this: > > gap> A := [ [1,2,3], [4,5,6], [7,8,9] ]; > [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ] > gap> BasisVectors( CanonicalBasis( VectorSpace( Rationals, A ) ) ); > [ [ 1, 0, -1 ], [ 0, 1, 2 ] ] > > builds exactly the same matrix as TriangulizeMat, save that zero row(s) is/are stripped off: > > gap> TriangulizeMat( A );; A; > [ [ 1, 0, -1 ], [ 0, 1, 2 ], [ 0, 0, 0 ] ] > > My question is: could you confirm that this is firmly so? Depends on what you exactly want confirmed: I can confirm that CanonicalBasis in this particular case is currently using TriangulizeMat. However, in other circumstances (i.e. for other kinds of vector spaces), other methods for CanonicalBasis could be called which work differently. Moreover, at least in principle, it would be possible for future GAP versions to change how CanonicalBasis is implemented; since the documentation does not explicitly specify that TriangulizeMat is used, you should not rely on this! That said, it's rather unlikely that this behavior will change. Hope that helps, Max From paloff at ya.ru Thu Jun 7 14:41:11 2012 From: paloff at ya.ru (Igor Korepanov) Date: Thu, 07 Jun 2012 17:41:11 +0400 Subject: [GAP Forum] A small question about matrices In-Reply-To: <1772CB52-63AE-4DA1-B9B9-B44E61ECC2BB@quendi.de> References: <860821339071241@web13e.yandex.ru> <1772CB52-63AE-4DA1-B9B9-B44E61ECC2BB@quendi.de> Message-ID: <759821339076471@web12d.yandex.ru> Dear Max, Thank you for the answer, and still a question about the command TriangulizeMat. It seems to me that `triangulizing' a matrix may mean different things for people in different countries of our big world. But at least in GAP this meaning is fixed forever as it is now, yes? Best wishes, Igor 07.06.2012, 17:31, "Max Horn" : > Dear Igor, > > Am 07.06.2012 um 14:14 schrieb Igor Korepanov: > >> ?Dear GAP maintainers, >> >> ?If I am right, the CanonicalBasis command for vector spaces in a situation like this: >> >> ?gap> A := [ [1,2,3], [4,5,6], [7,8,9] ]; >> ?[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ] >> ?gap> BasisVectors( CanonicalBasis( VectorSpace( Rationals, A ) ) ); >> ?[ [ 1, 0, -1 ], [ 0, 1, 2 ] ] >> >> ?builds exactly the same matrix as TriangulizeMat, save that zero row(s) is/are stripped off: >> >> ?gap> TriangulizeMat( A );; ??A; >> ?[ [ 1, 0, -1 ], [ 0, 1, 2 ], [ 0, 0, 0 ] ] >> >> ?My question is: could you confirm that this is firmly so? > > Depends on what you exactly want confirmed: > > I can confirm that CanonicalBasis in this particular case is currently using TriangulizeMat. > > However, in other circumstances (i.e. for other kinds of vector spaces), other methods for CanonicalBasis could be called which work differently. Moreover, at least in principle, it would be possible for future GAP versions to change how CanonicalBasis is implemented; since the documentation does not explicitly specify that TriangulizeMat is used, you should not rely on this! That said, it's rather unlikely that this behavior will change. > > Hope that helps, > Max From max at quendi.de Thu Jun 7 15:58:25 2012 From: max at quendi.de (Max Horn) Date: Thu, 7 Jun 2012 16:58:25 +0200 Subject: [GAP Forum] A small question about matrices In-Reply-To: <759821339076471@web12d.yandex.ru> References: <860821339071241@web13e.yandex.ru> <1772CB52-63AE-4DA1-B9B9-B44E61ECC2BB@quendi.de> <759821339076471@web12d.yandex.ru> Message-ID: <151B67DD-9AEB-46EC-9D7D-C2600F73442C@quendi.de> Dear Igor, Am 07.06.2012 um 15:41 schrieb Igor Korepanov: > Dear Max, > > Thank you for the answer, and still a question about the command TriangulizeMat. It seems to me that `triangulizing' a matrix may mean different things for people in different countries of our big world. But at least in GAP this meaning is fixed forever as it is now, yes? The documented behavior of a documented GAP function is in general guaranteed to stay as it is. In this case, it says: > TriangulizeMat( ) applies the Gaussian Algorithm to the mutable matrix and changes such that it is in upper triangular normal form (sometimes called ``Hermite normal form''). Cheers, Max From paloff at ya.ru Thu Jun 7 16:37:41 2012 From: paloff at ya.ru (Igor Korepanov) Date: Thu, 07 Jun 2012 19:37:41 +0400 Subject: [GAP Forum] A small question about matrices In-Reply-To: <151B67DD-9AEB-46EC-9D7D-C2600F73442C@quendi.de> References: <860821339071241@web13e.yandex.ru> <1772CB52-63AE-4DA1-B9B9-B44E61ECC2BB@quendi.de> <759821339076471@web12d.yandex.ru> <151B67DD-9AEB-46EC-9D7D-C2600F73442C@quendi.de> Message-ID: <1070521339083461@web13e.yandex.ru> Dear Max, Thank you very much. Now I have no more questions. Just an explanation why I was asking them, actually *after* having read, in the "Reference" GAP manual, that > ?TriangulizeMat( ) > > ??applies ?the ?Gaussian ?Algorithm to the mutable matrix and changes > ?? ?such ?that it is in upper triangular normal form (sometimes called > ??``Hermite normal form''). The point was that if you search in the net, for instance, what "Hermite normal form" would mean, you may run upon something like this: http://mathworld.wolfram.com/HermiteNormalForm.html . And not much easier with "upper triangular normal form". Also, linear algebra is my favorite subject for some 40 years, partly because it is not dogmatic :D But again, now everything is fixed with my question, and thank you once again. Igor From cesarneyit at gmail.com Fri Jun 8 03:16:18 2012 From: cesarneyit at gmail.com (Cesar Neyit Galindo-Martinez) Date: Thu, 7 Jun 2012 21:16:18 -0500 Subject: [GAP Forum] 2-cocycles Message-ID: Dear forum, Let H be an abelian group, and f:HxH-->F_q* a 2-cocycle (where F_q* are the unities of the finite filed of q elements), if T:H-->H is an automorphism the map f^T(a,b):=f(T(a),T(b)) is also a 2-cocycle. How can I use GAP in order to decided if f and f^T are cohomologous and to construct an explicit the coboundady? Thanks, Cesar -- C?sar Neyit Galindo. URL:https://sites.google.com/site/neyitgalindo/ From r_adhamy at yahoo.com Sat Jun 9 06:20:37 2012 From: r_adhamy at yahoo.com (Roghiyeh Adhamy) Date: Fri, 8 Jun 2012 22:20:37 -0700 (PDT) Subject: [GAP Forum] primitive permutation groups of small order Message-ID: <1339219237.15009.YahooMailNeo@web163804.mail.gq1.yahoo.com> Dear GAP-Forum, I want to work with 'Primitive Permutation Groups of small degree (20 or less)'. Is there any pakage related to them? thanks Adhamy From r_adhamy at yahoo.com Sat Jun 9 06:36:02 2012 From: r_adhamy at yahoo.com (Roghiyeh Adhamy) Date: Fri, 8 Jun 2012 22:36:02 -0700 (PDT) Subject: [GAP Forum] primitive permutation groups of small degree Message-ID: <1339220162.27030.YahooMailNeo@web163801.mail.gq1.yahoo.com> Dear GAP-Forum, I want to work with 'Primitive Permutation Groups of small degree (20 or less)'. Is there any pakage related to them? I want to determine all primitive groups with degree less than 20. thanks Adhamy From williamdemeo at gmail.com Sat Jun 9 07:39:47 2012 From: williamdemeo at gmail.com (William DeMeo) Date: Fri, 8 Jun 2012 20:39:47 -1000 Subject: [GAP Forum] primitive permutation groups of small degree In-Reply-To: <1339220162.27030.YahooMailNeo@web163801.mail.gq1.yahoo.com> References: <1339220162.27030.YahooMailNeo@web163801.mail.gq1.yahoo.com> Message-ID: Dear Roghiyeh, Check out the documentation at http://www.gap-system.org/Manuals/doc/htm/ref/CHAP048.htm#SECT009 For example, say you want to run through all primitive groups of degree less than 20, and do something with each one, you could do for i in [1..19] do n:=NrPrimitiveGroups(i); for j in [1..n] do G:=PrimitiveGroup(i,j); ... do something with G ... od; od; Alternatively, you can get a list of all primitive groups with certain properties; e.g. a list of primitive groups of degree less than 20 with affine O'Nan-Scott type is obtained as follows: AllPrimitiveGroups( NrMovedPoints, [1..19], ONanScottType, "1" ); See the relevant documentation at http://www.gap-system.org/Manuals/doc/htm/ref/CHAP041.htm#SECT004 and http://www.gap-system.org/Manuals/doc/htm/ref/CHAP048.htm#I2 Hope that helps. -William On Fri, Jun 8, 2012 at 7:36 PM, Roghiyeh Adhamy wrote: > Dear GAP-Forum, > > I want to work with 'Primitive Permutation Groups of small degree (20 or less)'. > Is there any pakage related to them? > I want to determine all primitive groups with degree less than 20. > > thanks > Adhamy > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum -- William J. DeMeo, Ph.D. Department of Mathematics University of Hawaii at Manoa phone: 808-298-4874 url: http://math.hawaii.edu/~williamdemeo From hs.moshtagh at gmail.com Sat Jun 9 12:20:19 2012 From: hs.moshtagh at gmail.com (Hossein Moshtagh) Date: Sat, 9 Jun 2012 15:50:19 +0430 Subject: [GAP Forum] semidirect products Message-ID: Dear Forum, How to construct a group semidirect product of $Z_3$ and $Z_9$ where $Z_i$ is a cyclic group of order $i$. I nead the permutation representation of this group. Best, Moshtagh From w_becker at hotmail.com Sat Jun 9 18:52:08 2012 From: w_becker at hotmail.com (Walter Becker) Date: Sat, 9 Jun 2012 09:52:08 -0800 Subject: [GAP Forum] semidirect products In-Reply-To: References: Message-ID: Moshtagh: The presentation for the group Z_9 semi Z_3 is a^9=b^3=a^b*a^-4=1; More generally this class of groups [ C_(p^2}] Semi C_p is a^(p^2}=b^p=a^b*a^(-p-1) =1 Is this sufficient or did you need a permutation representation? Walter Becker > Date: Sat, 9 Jun 2012 15:50:19 +0430 > From: hs.moshtagh at gmail.com > To: forum at gap-system.org > Subject: Re: [GAP Forum] semidirect products > > Dear Forum, > > How to construct a group semidirect product of $Z_3$ and $Z_9$ where $Z_i$ > is a cyclic group of order $i$. > I nead the permutation representation of this group. > > Best, > Moshtagh > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From w_becker at hotmail.com Sat Jun 9 19:10:34 2012 From: w_becker at hotmail.com (Walter Becker) Date: Sat, 9 Jun 2012 10:10:34 -0800 Subject: [GAP Forum] semidirect products In-Reply-To: References: , Message-ID: From: w_becker at hotmail.com To: hs.moshtagh at gmail.com Subject: RE: [GAP Forum] semidirect products Date: Sat, 9 Jun 2012 10:00:19 -0800 Moshtagh: Sorry did not see the permutation part ----here it is Note most of the groups of low order can be found in older group theory literature in early 1900's namely G. A.Miller and others --groups of various degrees were done up to 12 at least. order 27 case: (r,s,t,u,v,w,x,y,z), (s,v,y)(t,z,w) Is this better. > Date: Sat, 9 Jun 2012 15:50:19 +0430 > From: hs.moshtagh at gmail.com > To: forum at gap-system.org > Subject: Re: [GAP Forum] semidirect products > > Dear Forum, > > How to construct a group semidirect product of $Z_3$ and $Z_9$ where $Z_i$ > is a cyclic group of order $i$. > I nead the permutation representation of this group. > > Best, > Moshtagh > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From nathann.cohen at gmail.com Sun Jun 10 18:00:03 2012 From: nathann.cohen at gmail.com (Nathann Cohen) Date: Sun, 10 Jun 2012 19:00:03 +0200 Subject: [GAP Forum] Find a preserved partition given an imprimitive group action Message-ID: Helloooooo everybody !!! I am but a humble graph theoretician, and I recently ended up playing with the automorphism groups of my dear objects in order to find good ways to plot them. This I do directly with GAP when I do not use it through Sage, but I currently have a very technical problem and I would be delighted if you happened to have already implemented somewhere the feature I am looking for :-) Here it is : I have a permutation group G, or a group acting on a set of vertices in a graph, which sometime turns out to be imprimitive [1], which means (I learned that recently) that there exists a nontrivial partition P = P1, ... P_k of my set of vertices such that the image of any P_i by an element of G is another element of P. I do not know yet whether GAP can tell me whether a given permutation group is primitive, but more than that I would be interested in obtaining -- when it is not the case -- an example of partition which is preserved in such a way. Actually, because I am *very* greedy, I would ideally like to obtain an inclusionwise "finest" (or smallest) partition, and in an ideal world to enumerate them all. May it be a task that GAP can solve ? :-) Thank you very much for your help ! Nathann [1] http://en.wikipedia.org/wiki/Primitive_permutation_group From matan at svgalib.org Sun Jun 10 18:11:58 2012 From: matan at svgalib.org (Matan Ziv-Av) Date: Sun, 10 Jun 2012 20:11:58 +0300 (IDT) Subject: [GAP Forum] Find a preserved partition given an imprimitive group action In-Reply-To: References: Message-ID: On Sun, 10 Jun 2012, Nathann Cohen wrote: > Here it is : I have a permutation group G, or a group acting on a set of > vertices in a graph, which sometime turns out to be imprimitive [1], which > means (I learned that recently) that there exists a nontrivial partition P > = P1, ... P_k of my set of vertices such that the image of any P_i by an > element of G is another element of P. I do not know yet whether GAP can > tell me whether a given permutation group is primitive, but more than that > I would be interested in obtaining -- when it is not the case -- an example > of partition which is preserved in such a way. > Actually, because I am *very* greedy, I would ideally like to obtain an > inclusionwise "finest" (or smallest) partition, and in an ideal world to > enumerate them all. > > May it be a task that GAP can solve ? :-) The function Blocks is relevant (see also AllBlocks and MaximalBlocks). See here: http://www.gap-system.org/Manuals/doc/htm/ref/CHAP039.htm#SECT010 -- Matan Ziv-Av. matan at svgalib.org From williamdemeo at gmail.com Sun Jun 10 18:14:55 2012 From: williamdemeo at gmail.com (William DeMeo) Date: Sun, 10 Jun 2012 07:14:55 -1000 Subject: [GAP Forum] Find a preserved partition given an imprimitive group action In-Reply-To: References: Message-ID: Dear Nathann, To find out if a group is primitive, use the GAP command IsPrimitive. Example: gap> G:=TransitiveGroup(8,4); # dihedral group of deg 8 gap> IsPrimitive(G); # returns false To see the blocks, use the command AllBlocks: gap> AllBlocks(G); [ [ 1, 2, 3, 8 ], [ 1, 6 ], [ 1, 3, 4, 6 ], [ 1, 3 ], [ 1, 3, 5, 7 ], [ 1, 7 ], [ 1, 5 ], [ 1, 4 ] ] The output of the last command shows one block for each "system of imprimitivity" or "congruence." To see the full set of systems of imprimitivity (the full congruence lattice), you could do something like this: gap> for b in AllBlocks(G) do Print(Orbit(G,b,OnSets), "\n"); od; [ [ 1, 2, 3, 8 ], [ 4, 5, 6, 7 ] ] [ [ 1, 6 ], [ 2, 7 ], [ 3, 4 ], [ 5, 8 ] ] [ [ 1, 3, 4, 6 ], [ 2, 5, 7, 8 ] ] [ [ 1, 3 ], [ 2, 8 ], [ 4, 6 ], [ 5, 7 ] ] [ [ 1, 3, 5, 7 ], [ 2, 4, 6, 8 ] ] [ [ 1, 7 ], [ 2, 4 ], [ 6, 8 ], [ 3, 5 ] ] [ [ 1, 5 ], [ 2, 6 ], [ 3, 7 ], [ 4, 8 ] ] [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ], [ 7, 8 ] ] Hope that helps. -William On Sun, Jun 10, 2012 at 7:00 AM, Nathann Cohen wrote: > Helloooooo everybody !!! > > I am but a humble graph theoretician, and I recently ended up playing with > the automorphism groups of my dear objects in order to find good ways to > plot them. This I do directly with GAP when I do not use it through Sage, > but I currently have a very technical problem and I would be delighted if > you happened to have already implemented somewhere the feature I am looking > for :-) > > Here it is : I have a permutation group G, or a group acting on a set of > vertices in a graph, which sometime turns out to be imprimitive [1], which > means (I learned that recently) that there exists a nontrivial partition P > = P1, ... P_k of my set of vertices such that the ?image of any P_i by an > element of G is another element of P. I do not know yet whether GAP can > tell me whether a given permutation group is primitive, but more than that > I would be interested in obtaining -- when it is not the case -- an example > of partition which is preserved in such a way. > Actually, because I am *very* greedy, I would ideally like to obtain an > inclusionwise "finest" (or smallest) partition, and in an ideal world to > enumerate them all. > > May it be a task that GAP can solve ? :-) > > Thank you very much for your help ! > > Nathann > > [1] http://en.wikipedia.org/wiki/Primitive_permutation_group > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum -- William J. DeMeo, Ph.D. Department of Mathematics University of Hawaii at Manoa phone: 808-298-4874 url: http://math.hawaii.edu/~williamdemeo From nathann.cohen at gmail.com Sun Jun 10 18:19:04 2012 From: nathann.cohen at gmail.com (Nathann Cohen) Date: Sun, 10 Jun 2012 19:19:04 +0200 Subject: [GAP Forum] Find a preserved partition given an imprimitive group action In-Reply-To: References: Message-ID: This is just *TOTALLY* great ! :-) Thank you sooooooooo much !! I think I will spend yet another night playing with GAP :-) Nathann From williamdemeo at gmail.com Sun Jun 10 19:00:20 2012 From: williamdemeo at gmail.com (William DeMeo) Date: Sun, 10 Jun 2012 08:00:20 -1000 Subject: [GAP Forum] Find a preserved partition given an imprimitive group action In-Reply-To: References: Message-ID: On Sun, Jun 10, 2012 at 7:19 AM, Nathann Cohen wrote: > This is just *TOTALLY* great ! :-) > > Thank you sooooooooo much !! I think I will spend yet another night playing > with GAP :-) > > Nathann You are very welcome. By the way, when the congruence lattice gets big, you may not want to look at the congruences in the format I gave above as it is sometimes tedious to figure out the partial ordering of the congruences by hand. In that case, you could use the theorem that says the congruence lattice is isomorphic to the lattice of subgroups above a stabilizer subgroup, and you can find the latter using GAP in a number of ways. One way is gap> H:=Stabilizer(G,1); # take the stabilizer of any point, e.g., 1. gap> IntermediateSubgroups(G,H); The second command tells you all the subgroups of G that contain H, and also gives the covering relations in the subgroup lattice. In the dihedral example from my last email (which is regular, so H=1), you get inclusions := [ [ 0, 1 ], [ 0, 2 ], [ 0, 3 ], [ 0, 4 ], [ 0, 5 ], [ 1, 6 ], [ 2, 6 ], [ 3, 6 ], [ 1, 7 ], [ 1, 8 ], [ 4, 8 ], [ 5, 8 ], [ 6, 9 ], [ 7, 9 ], [ 8, 9 ] ] ) As you can see, there are five minimal congruences, or atoms (corresponding to the labels 1, 2, ..., 5) which cover 0, and three maximal congruences, or co-atoms (corresponding to 6,7,8) covered by 9. You can also draw the Hasse diagram of the subgroup lattice if you have the xgap package installed. Alternatively, if you really want to study congruence lattices in detail, you may want to try my script gap2uacalc.g for converting GAP groups and G-sets into universal algebras that can be imported into the Universal Algebra Calculator; see www.uacalc.org. -William -- William J. DeMeo, Ph.D. Department of Mathematics University of Hawaii at Manoa phone: 808-298-4874 url: http://math.hawaii.edu/~williamdemeo From hulpke at math.colostate.edu Thu Jun 14 23:40:42 2012 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu, 14 Jun 2012 16:40:42 -0600 Subject: [GAP Forum] 2-cocycles In-Reply-To: References: Message-ID: <94DAF43E-962B-460F-816C-667E23F4A3AD@math.colostate.edu> Dear Forum, On Jun 7, 2012, at 6/7/12 8:16, Cesar Neyit Galindo-Martinez wrote: > > Let H be an abelian group, and f:HxH-->F_q* a 2-cocycle (where F_q* > are the unities of the finite filed of q elements), if T:H-->H is an > automorphism the map f^T(a,b):=f(T(a),T(b)) is also a 2-cocycle. How > can I use GAP in order to decided if f and f^T are cohomologous and to > construct an explicit the coboundady? This is possible, but will require a bit of work. I did not work out a full solution (writing all the code would take a few hours, in particular if (q-1) is not prime), but here are some hints. Let M=F_q^*. For simplicity I will use the language of vector spaces for M or maps into M. This is not really true in most cases, but you can then perform the same operations using Hermite Normal Form computations. GAP has a built-in functionality for 2-comomology if the group is a pc group and the module a F_p vector space. In this case you could use some of the predefined functionality, but as you likely require modifications for F_q^* you are probably better off starting from scratch. First you need to represent maps HxH -> M. You could do so by enumerating the cartesian product HxH and representing the map as list of images. In fact it is not too hard to see that the values of such a map on AxA, where A is a generating set for H, already completely determine a map. So lists of length k=|A|^2 are sufficient. If M is not cyclic, in fact you probably want to chose a basis for M and write each element with respect to this basis, i.e. if the dimension of M is m, you will end up with lists of length k*m where each element of M is represented by m subsequent entries. (This is in fact what the GAP library does for pc groups.) Obviously the arrangement you chose for AxA and the basis is important here. Now you can consider such lists of length k*m as elements of the k*m dimensional row space over F_p, define subspaces and test membership with standard linear algebra. You thus write down the vectors for f and f^T, to test whether they are cohomologous you simply need to test whether the difference of the corresponding vectors is a coboundary. You obtain a basis of the coboundaries from the definition: For each basis element of M you determine the image under the derivation map. If you decompose coboundaries into these images you can trace back which element of M they belong to. Best wishes, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From sl4 at st-andrews.ac.uk Fri Jun 15 10:03:34 2012 From: sl4 at st-andrews.ac.uk (Stephen Linton) Date: Fri, 15 Jun 2012 10:03:34 +0100 Subject: [GAP Forum] Public release of GAP 4.5 Message-ID: <6072C10A-684D-474B-AE2C-BEEABEA6473E@st-andrews.ac.uk> Dear GAP Forum, After several beta-releases, we are happy to announce the public release of GAP 4.5. The new release of GAP, version 4.5.4, is available for download from the GAP website: http://www.gap-system.org The GAP distribution now has the form of a single archive which contains the core GAP system and all currently redistributed GAP packages. There are no optional archives to download. All you need is to get one of the .tar.gz, .tar.bz2 or .zip archives for UNIX, Linux and Mac OS X, or the -win.zip archive for Windows. The latter includes not only Windows binaries for GAP but also for several packages, namely Browse, cvec, EDIM, Grape, IO and orb which are now fully functional under Windows. There are many new features introduced in this release. The best way to learn about them is to read Chapter "Changes between GAP 4.4 and GAP 4.5" from the new changes manual. You may access this Chapter by entering '?Changes between GAP 4.4 and GAP 4.5' in GAP or browse it online here: http://www.gap-system.org/Manuals/doc/changes/chap2.html The process of installing the core GAP system from the source has not changed. You call './configure' and then 'make'. However, please note that to obtain a fully functional GAP installation you not only need to compile the core system, but also some of its packages. Some of the changes to GAP have altered what is going on "inside" the installation process: by default GAP will be using the GMP library for faster large integer arithmetic; furthermore, if the readline library is detected on your system at compile time, it will be used for command line editing. To avoid the need to manage the compilation of GAP and packages yourself, you might want to consider one of the alternative installation methods below which achieve this for you automatically: * a Linux binary distribution via remote synchronisation with a reference installation which includes all packages and some optimisations. * BOB - a tool to download and build GAP and its packages from source for Linux and Mac OSX. You only download BOB who does all the rest for you. You need a C-compiler and some libraries installed on your system but BOB will tell you exactly what, if anything, is missing. * a GAP Installer for Windows with the same content as the -win.zip archive. It provides a standard installation procedure that will guide you through all steps of the installation process, and will adjust all paths if GAP will be installed in a non-default location. These alternatives are individually maintained by some of the GAP developers. They were all tested with GAP 4.5.4 as part of the release preparation, and we expect them to be regularly updated in the future. They are linked at: http://www.gap-system.org/Download/#alternatives Because we no longer plan to supply upgrade archives, or archives of the GAP core system without packages, and because we hope to release upgrades of GAP 4.5 much more frequently, we now recommend all users to keep custom packages, i.e. packages that we do not distribute and development versions of packages that we do distribute, separately from their GAP installation, in a private GAP root directory. In GAP 4.5, one such private root is now searched by default (you can use command-line options to include others). This will enable you to upgrade your GAP installation very simply without losing any custom packages or personal settings. The name of this directory depends on your operating system and can be found in the GAP variable GAPInfo.UserGapRoot. The .gaprc file is now replaced by two files located in this directory, gap.ini and gaprc (see '?The gap.ini and gaprc files' and also '?The former .gaprc file' if you have used a .gaprc file with GAP 4.4). An easy way to make use of the new setup is to use the command WriteGapIniFile(); within a GAP session. It will tell you the file it has generated. You can then edit this generated gap.ini file for user customisation (preferred packages, colored prompt, external pager, etc.). Finally, please note these potentially incompatible changes: * The zero polynomial now has degree -infinity, see ?DegreeOfLaurentPolynomial. * Multiple unary + or - signs are no longer allowed, to avoid confusion with increment/decrement operators from other programming languages. * Due to changes to improve the performance of records with large number of components, the ordering of record components in `View'ed records has changed. * Due to improvements for vectors over finite fields, certain objects have more limitations on changing their base field. For example, one can not create a compressed matrix over GF(2) and then assign an element of GF(4) to one of its entries. We encourage all users to upgrade to GAP 4.5. If you need any help or would like to report any problems, please do not hesitate to contact us at support at gap-system.org. Wishing you fun and success using GAP, The GAP Group From darthandrus at gmail.com Fri Jun 15 17:14:03 2012 From: darthandrus at gmail.com (Ivan Andrus) Date: Fri, 15 Jun 2012 18:14:03 +0200 Subject: [GAP Forum] Public release of GAP 4.5 In-Reply-To: <6072C10A-684D-474B-AE2C-BEEABEA6473E@st-andrews.ac.uk> References: <6072C10A-684D-474B-AE2C-BEEABEA6473E@st-andrews.ac.uk> Message-ID: <9A45B84C-2B99-43E6-8D46-D918BC2DA40E@gmail.com> On Jun 15, 2012, at 11:03 AM, Stephen Linton wrote: > Dear GAP Forum, > > After several beta-releases, we are happy to announce the public release of > GAP 4.5. Congratulations to all the GAP developers! I know that I've been looking forward to this day. I hate to make a nuisance of myself, but I noticed that etc/emacs still contains the old gap-mode rather than my updated version (which can be found on bitbucket [1]). When I suggested using it on this forum there were some concerns, but I think I responded to them all. If there are other concerns or anything else I can do to make it easier e.g. packaging it, please let me know. Thanks for your consideration, Ivan Andrus [1] https://bitbucket.org/gvol/gap-mode From w_becker at hotmail.com Sun Jun 17 16:29:53 2012 From: w_becker at hotmail.com (Walter Becker) Date: Sun, 17 Jun 2012 07:29:53 -0800 Subject: [GAP Forum] re new GAP release Message-ID: Steve Linton has just announced the release of GAP version 4.5. Does anyone know if the new version will need a new version of MenuGAP to work with this newer version of GAP ? If yes does anyone know when such a new MenuGAP release might become available. From max at quendi.de Sun Jun 17 17:07:00 2012 From: max at quendi.de (Max Horn) Date: Sun, 17 Jun 2012 18:07:00 +0200 Subject: [GAP Forum] re new GAP release In-Reply-To: References: Message-ID: <58D391AA-E9F2-423E-BC01-0281E2D8BAA1@quendi.de> It might help if you first explained what MenuGAP is... Never heard of that before, and a cursory google search reveals nothing... As a general rule of thumb, though, I'd recommend (a) just try it, (b) ask the author(s) of MenuGAP (assuming this is some kind of software). Cheers, Max Am 17.06.2012 um 17:29 schrieb Walter Becker : > > Steve Linton has just announced the release of GAP version 4.5. > > Does anyone know if the new version will need a new version > of MenuGAP to work with this newer version of GAP ? > > If yes does anyone know when such a new MenuGAP release > might become available. > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From L.H.Soicher at qmul.ac.uk Mon Jun 18 13:57:40 2012 From: L.H.Soicher at qmul.ac.uk (Leonard Soicher) Date: Mon, 18 Jun 2012 13:57:40 +0100 Subject: [GAP Forum] Announcing the MapClass package for GAP Message-ID: <20120618125740.GA18964@maths.qmul.ac.uk> Dear Forum Members, It is my pleasure to announce the accepted MapClass package for GAP, by Adam James, Kay Magaard, Sergey Shpectorov and Helmut V?lklein, and to thank them for this contribution to the GAP system. The MapCLass package calculates the mapping class group orbits for a given finite group, and is included in the newly released GAP 4.5.4. Further information about MapClass can be found at http://www.gap-system.org/Packages/mapclass.html where you can find HTML and PDF documentation. Leonard Soicher (on behalf of the GAP Council) From L.H.Soicher at qmul.ac.uk Mon Jun 18 15:01:17 2012 From: L.H.Soicher at qmul.ac.uk (Leonard Soicher) Date: Mon, 18 Jun 2012 15:01:17 +0100 Subject: [GAP Forum] Announcing the SymbCompCC package for GAP Message-ID: <20120618140117.GA20197@maths.qmul.ac.uk> Dear Forum Members, It is my pleasure to announce the accepted SymbCompCC package for GAP, by D?rte Feichtenschlager, and to thank her for this contribution to the GAP system. The SymbCompCC package computes with parametrised presentations for finite p-groups of fixed coclass, and is included in the newly released GAP 4.5.4. Further information about SymbCompCC can be found at http://www.gap-system.org/Packages/symbcompcc.html where you can find HTML and PDF documentation. I would also like to thank Mike Newman, who was Editorial Adviser for this package, and is now retired from the GAP Council after many years of distinguished service. Leonard Soicher (on behalf of the GAP Council) From reza_orfi at yahoo.com Mon Jun 18 21:45:08 2012 From: reza_orfi at yahoo.com (Reza Orfi) Date: Mon, 18 Jun 2012 13:45:08 -0700 (PDT) Subject: [GAP Forum] a question Message-ID: <1340052308.75714.YahooMailClassic@web161703.mail.bf1.yahoo.com> Dear forum Let G be a finite p-group and A be an elementary abelian normal subgroup of G. Is there any way in GAP to find all elements of Z(G/A, A) as derivations(functions), where Z(G/A,A) is the set of all derivations from G/A to A. Thank you very much. From paloff at ya.ru Wed Jun 20 09:12:17 2012 From: paloff at ya.ru (Igor Korepanov) Date: Wed, 20 Jun 2012 12:12:17 +0400 Subject: [GAP Forum] GAP 4.5.4 on overlays? Message-ID: <360781340179937@web21d.yandex.ru> Dear forum, The appearance of GAP 4.5.4 is a great event. People who use gentoo would like to have a ebuild for it on some overlay. So, we here wrote a letter to a gentoo forum proposing this idea: http://forums.gentoo.org/viewtopic-t-927056.html . Just in case: maybe somebody on this forum can give us more advice? Best wishes, Igor From member at linkedin.com Thu Jun 21 06:40:57 2012 From: member at linkedin.com (Laxmi Kant Mishra via LinkedIn) Date: Thu, 21 Jun 2012 05:40:57 +0000 (UTC) Subject: [GAP Forum] Invitation to connect on LinkedIn Message-ID: <2079308847.24171126.1340257257976.JavaMail.app@ela4-bed80.prod> LinkedIn ------------ Laxmi Kant Mishra requested to add you as a connection on LinkedIn: ------------------------------------------ Guang, I'd like to add you to my professional network on LinkedIn. - Laxmi Kant Accept invitation from Laxmi Kant Mishra http://www.linkedin.com/e/m6t9ff-h3peket0-4j/yyKiECF05t8gMi_bE2jdiMBKEidJE6s_/blk/I190581956_140/6lColZJrmZznQNdhjRQnOpBtn9QfmhBt71BoSd1p65Lr6lOfP0QclYSdjANe3kMej59bSgJmmNTszl8bPcOdjcOdzoTdjsLrCBxbOYWrSlI/EML_comm_afe/?hs=false&tok=3sZRTQLnFkS5g1 View invitation from Laxmi Kant Mishra http://www.linkedin.com/e/m6t9ff-h3peket0-4j/yyKiECF05t8gMi_bE2jdiMBKEidJE6s_/blk/I190581956_140/c3gNnPoRej4Udj0VckALqnpPbOYWrSlI/svi/?hs=false&tok=1ugY95YAxkS5g1 ------------------------------------------ Why might connecting with Laxmi Kant Mishra be a good idea? Laxmi Kant Mishra's connections could be useful to you: After accepting Laxmi Kant Mishra's invitation, check Laxmi Kant Mishra's connections to see who else you may know and who you might want an introduction to. Building these connections can create opportunities in the future. -- (c) 2012, LinkedIn Corporation From alexander.konovalov at gmail.com Thu Jun 21 14:13:48 2012 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Thu, 21 Jun 2012 14:13:48 +0100 Subject: [GAP Forum] re new GAP release In-Reply-To: References: Message-ID: <09445C25-B4D0-4255-9654-71646E00B53A@gmail.com> On 17 Jun 2012, at 16:29, Walter Becker wrote: > Steve Linton has just announced the release of GAP version 4.5. > > Does anyone know if the new version will need a new version > of MenuGAP to work with this newer version of GAP ? > > If yes does anyone know when such a new MenuGAP release > might become available. Dear Walter, menuGAP is provided by Dan Symancyk independently on GAP releases. He confirmed to us that he plans to upgrade menuGAP when he gets more time, but it can not be promised when exactly this may happen. I do not know if it will work if you will just plug GAP 4.5 into it instead of GAP 4.4, or how many changes it will require to update menuGAP for GAP 4.5. Best regards, Alexander From nikolova20032003 at yahoo.com Thu Jun 21 14:21:23 2012 From: nikolova20032003 at yahoo.com (Daniela Nikolova) Date: Thu, 21 Jun 2012 06:21:23 -0700 (PDT) Subject: [GAP Forum] change of address Message-ID: <1340284883.389.YahooMailNeo@web111722.mail.gq1.yahoo.com> Dear colleagues, ?? Please change my e-mail address to nikilova2003 at gmail.com, or advise me how to do that. ?? My yahoo address got compromised. ?? I want to send an Announcement for a Group Theory conference that I organize in Florida in October 2012. Please advise where to send the Announcement. ?? Thank you, ?? Daniela ? Assoc. Prof. Dr. Daniela Nikolova-Popova Institute of Mathematics and Informatics, Bulgarian Academy of Sciences & Florida Atlantic University, USA cell: ???? +1 561 961 9151 office:?? +1 561 297 1342 home:?? + 359 2 9444 944. From jjm at mcs.st-and.ac.uk Thu Jun 21 15:33:58 2012 From: jjm at mcs.st-and.ac.uk (John McDermott) Date: Thu, 21 Jun 2012 15:33:58 +0100 Subject: [GAP Forum] change of address In-Reply-To: <1340284883.389.YahooMailNeo@web111722.mail.gq1.yahoo.com> References: <1340284883.389.YahooMailNeo@web111722.mail.gq1.yahoo.com> Message-ID: Dear Daniela, dear Forum, On 21 Jun 2012, at 14:21, Daniela Nikolova wrote: > Dear colleagues, > Please change my e-mail address to nikilova2003 at gmail.com, or advise me how to do that. To change your Forum subscription address, visit the list information page at http://mail.gap-system.org/mailman/listinfo/forum then scroll to the bottom of the page and enter your currently subscribed address in the box marked "Unsubscribe or edit options" You will be prompted for a password(*). Enter the password and this will log you in to an interface for subscription options where you can change your subscribed address and other things. * If you don't know your password the password page has a button to generate a reminder which will be mailed to your subscribed address. If you cannot access mail to your subscribed address any longer, please let us know at support at gap-system.org. > My yahoo address got compromised. > I want to send an Announcement for a Group Theory conference that I organize in Florida in October 2012. Please advise where to send the Announcement. Such announcements are occasionally sent to the GAP Forum. You might also like to send it to the Group Pub Forum run by Geoff Smith in Bath. See http://people.bath.ac.uk/masgcs/gpf.html for information about that list. Best wishes, John > Thank you, > Daniela > > > Assoc. Prof. Dr. Daniela Nikolova-Popova > Institute of Mathematics and Informatics, Bulgarian Academy of Sciences > & > Florida Atlantic University, USA > > cell: +1 561 961 9151 > office: +1 561 297 1342 > home: + 359 2 9444 944. > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum -- John McDermott Scientific Officer Centre for Interdisciplinary Research in Computational Algebra School of Computer Science University of St Andrews From hamidshahverdi at gmail.com Sat Jun 16 11:56:30 2012 From: hamidshahverdi at gmail.com (Hamid Shahverdi) Date: Sat, 16 Jun 2012 15:26:30 +0430 Subject: [GAP Forum] Question about symmetric group of nine letters Message-ID: Dears, How can one try by gap to show that If a centerless group G of order 9! has the following properties, then it is isomorphic to S_9 1) size of all conjugacy classes are equal to the one in S_9. 2) the order of all maximal abelian subgroups are equal to the one in S_9. Thanks in advance for any help. Best Regards Hamid Shahverdi From keshav.kini at gmail.com Wed Jun 20 09:29:00 2012 From: keshav.kini at gmail.com (Keshav Kini) Date: Wed, 20 Jun 2012 01:29:00 -0700 Subject: [GAP Forum] GAP 4.5.4 on overlays? References: <360781340179937@web21d.yandex.ru> Message-ID: <86txy6l73n.fsf@zhenghe.ntu.edu.sg> Igor Korepanov writes: > Dear forum, > > The appearance of GAP 4.5.4 is a great event. People who use gentoo would like to have a ebuild for it on some overlay. So, we here wrote a letter to a gentoo forum proposing this idea: http://forums.gentoo.org/viewtopic-t-927056.html . > > Just in case: maybe somebody on this forum can give us more advice? Rather than the Gentoo Forums, you should ask the gentoo science overlay people directly. For example you could ask them on IRC in #gentoo-science on irc.freenode.net, or you could open an issue on their bug tracker at https://github.com/gentoo-science/sci/issues . -Keshav From f.k.moftakhar at gmail.com Fri Jun 22 08:17:13 2012 From: f.k.moftakhar at gmail.com (fatemeh moftakhar) Date: Fri, 22 Jun 2012 11:47:13 +0430 Subject: [GAP Forum] Automorphism group of a graph Message-ID: Dear Forum We know the automorphism group of a graph can act on the edge set of the graph. Now, I can obtain the automorphism group of a graph with MAGMA and I have the edge set of the graph. My question is: "How can I define this action with GAP" Because I need the orbits of this action. A quick answer will be highly appreciated . Best Regards; F. K. Moftakhar -- Regards; Ms Fatemeh Moftakhar MSc Student in Mathematics Department of Mathematics, Statistics and Computer Science University of Kashan, Iran From dima at ntu.edu.sg Fri Jun 22 09:15:26 2012 From: dima at ntu.edu.sg (Dmitrii (Dima) Pasechnik) Date: Fri, 22 Jun 2012 11:15:26 +0300 Subject: [GAP Forum] Automorphism group of a graph In-Reply-To: References: Message-ID: Dear Fatemah, GAP has a package GRAPE (you might need to install it separately) which is capable to deal with graphs and their automorphism groups directly. IMHO there is no interface between GAP and MAGMA available, so you'd need to write/read files to pass data between two systems. (Well, in fact Sage has such an interface built in, but that's another story). HTH, Dmitrii On 22 June 2012 10:17, fatemeh moftakhar wrote: > Dear Forum > > We know the automorphism group of a graph can act on the edge set of the > graph. > Now, I can obtain the automorphism group of a graph with MAGMA and I have > the edge set of the graph. My question is: > "How can I define this action with GAP" > Because I need the orbits of this action. > A quick answer will be highly appreciated . > > Best Regards; > F. K. Moftakhar > > -- > Regards; > Ms Fatemeh Moftakhar > MSc Student in Mathematics > Department of Mathematics, > Statistics and Computer Science > University of Kashan, Iran > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum CONFIDENTIALITY:This email is intended solely for the person(s) named and may be confidential and/or privileged.If you are not the intended recipient,please delete it,notify us and do not copy,use,or disclose its content. Towards A Sustainable Earth:Print Only When Necessary.Thank you. From member at linkedin.com Thu Jun 28 15:53:34 2012 From: member at linkedin.com (Siddhartha Sarkar via LinkedIn) Date: Thu, 28 Jun 2012 14:53:34 +0000 (UTC) Subject: [GAP Forum] Invitation to connect on LinkedIn Message-ID: <262638146.3131516.1340895214670.JavaMail.app@ela4-app0135.prod> LinkedIn ------------ Siddhartha Sarkar requested to add you as a connection on LinkedIn: ------------------------------------------ seyed sadegh, I'd like to add you to my professional network on LinkedIn. - Siddhartha Accept invitation from Siddhartha Sarkar http://www.linkedin.com/e/-tcyca4-h3zye1c9-51/LuyDInEhG62yDjpkna1srHJVA3WJD4oXPkn_Wux/blk/I192981492_140/6lColZJrmZznQNdhjRQnOpBtn9QfmhBt71BoSd1p65Lr6lOfP0QclYOejgNe3AOej59bT1MhDpxsR0ObPcScP8Ncz4TdzsLrCBxbOYWrSlI/EML_comm_afe/?hs=false&tok=0Vuqlj3H_t0lk1 View invitation from Siddhartha Sarkar http://www.linkedin.com/e/-tcyca4-h3zye1c9-51/LuyDInEhG62yDjpkna1srHJVA3WJD4oXPkn_Wux/blk/I192981492_140/c3gNnP8Vd34Uej8VckALqnpPbOYWrSlI/svi/?hs=false&tok=3P3g1touvt0lk1 ------------------------------------------ Why might connecting with Siddhartha Sarkar be a good idea? Siddhartha Sarkar's connections could be useful to you: After accepting Siddhartha Sarkar's invitation, check Siddhartha Sarkar's connections to see who else you may know and who you might want an introduction to. Building these connections can create opportunities in the future. -- (c) 2012, LinkedIn Corporation From member at linkedin.com Thu Jun 28 15:53:34 2012 From: member at linkedin.com (Siddhartha Sarkar via LinkedIn) Date: Thu, 28 Jun 2012 14:53:34 +0000 (UTC) Subject: [GAP Forum] Invitation to connect on LinkedIn Message-ID: <1339485881.2967415.1340895214561.JavaMail.app@ela4-bed78.prod> LinkedIn ------------ Siddhartha Sarkar requested to add you as a connection on LinkedIn: ------------------------------------------ Guang, I'd like to add you to my professional network on LinkedIn. - Siddhartha Accept invitation from Siddhartha Sarkar http://www.linkedin.com/e/m6t9ff-h3zye197-44/yyKiECF05t8gMi_bE2jdiMBKEidJE6s_/blk/I192981490_140/6lColZJrmZznQNdhjRQnOpBtn9QfmhBt71BoSd1p65Lr6lOfP0QclYMejgNe3AOej59bQdJq4BFq3tRbPsPcP8Ncz4TdzsLrCBxbOYWrSlI/EML_comm_afe/?hs=false&tok=0N0RwZ35ft0lk1 View invitation from Siddhartha Sarkar http://www.linkedin.com/e/m6t9ff-h3zye197-44/yyKiECF05t8gMi_bE2jdiMBKEidJE6s_/blk/I192981490_140/c3gNnP0Vd34Uej8VckALqnpPbOYWrSlI/svi/?hs=false&tok=3iDYIla27t0lk1 ------------------------------------------ Why might connecting with Siddhartha Sarkar be a good idea? Siddhartha Sarkar's connections could be useful to you: After accepting Siddhartha Sarkar's invitation, check Siddhartha Sarkar's connections to see who else you may know and who you might want an introduction to. Building these connections can create opportunities in the future. -- (c) 2012, LinkedIn Corporation From daria.lytkin at gmail.com Sat Jun 30 08:13:47 2012 From: daria.lytkin at gmail.com (Daria Lytkin) Date: Sat, 30 Jun 2012 14:13:47 +0700 Subject: [GAP Forum] a question to the forum Message-ID: Dear forum, How one can create SL(2,Z/mZ) in GAP as a permutation group? Here Z=Integers and m in Z. For example, m=48. Sincerely yours, Daria Lytkina From stefan at mcs.st-and.ac.uk Mon Jul 2 09:42:55 2012 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Mon, 2 Jul 2012 09:42:55 +0100 (BST) Subject: [GAP Forum] a question to the forum In-Reply-To: References: Message-ID: Dear Forum, Daria Lytkina asked: > How one can create SL(2,Z/mZ) in GAP as a permutation group? Here > Z=Integers and m in Z. For example, m=48. You can obtain a permutation representation of SL(2,Z/mZ) as follows: gap> G := SL(2,Integers mod 48); SL(2,Z/48Z) gap> phi := IsomorphismPermGroup(G); gap> H := Image(phi); # permutation group isomorphic to G = SL(2,Z/48Z) Hope this helps, Stefan Kohl From jdm3 at st-and.ac.uk Mon Jul 2 11:24:59 2012 From: jdm3 at st-and.ac.uk (James Mitchell) Date: Mon, 2 Jul 2012 11:24:59 +0100 Subject: [GAP Forum] free bands In-Reply-To: <9b14fd91670c4f8fa1229ba5c6f4d9d3@UOS-DUN-CAS3.st-andrews.ac.uk> References: <9b14fd91670c4f8fa1229ba5c6f4d9d3@UOS-DUN-CAS3.st-andrews.ac.uk> Message-ID: Dear Joao, dear forum, You can produce the elements of the free band with n generators using the code at the end of this email: FreeBand(4), for example will return the free band on 4 as lists of positive integers, i.e. the set of all square free finite words over the alphabet "1", "2", "3", "4". It takes about 2.5 seconds on my laptop to produce the elements of the free band on 4 points. Since there are 2, 751,884,514, 765, elements of the free band on 5 generators, it seems unlikely that these could be produced in any reasonable amount of time. The function U(set) below creates the list of all elements of the free band containing the letters in set (where set is a list of positive integers). To represent any such list as word in "a", "b", "c", and "d" do: gap> s:=FreeSemigroup("a", "b", "c", "d"); gap> a:=s.1;; b:=s.2;; c:=s.3;; d:=s.4;; gap> fb:=FreeBand(3);; gap> EvaluateWord([a,b,c,d], Random(fb)); a*b*c*b*a*c The code.... U:=function(P) local out,u0, u1, w0, w1; if Length(P)=1 then return List(P, x-> [x]); fi; out:=[]; for u0 in P do for w0 in U(Difference(P, [u0])) do for u1 in P do for w1 in U(Difference(P, [u1])) do Add(out, Collapse(w0,u0,u1,w1)); od; od; od; od; return out; end; Collapse:=function(v0, u0, u1, v1) local i, j; w0:=Concatenation(v0, [u0]); w1:=Concatenation([u1], v1); i:=Length(w0); while w0[i]<>u1 and i>1 do i:=i-1; od; j:=0; while j<=Length(w0)-i do j:=j+1; if w1[j]<>w0[i+j-1] then return Concatenation(w0, w1); fi; od; return Concatenation(w0, w1{[j+1..Length(w1)]}); end; FreeBand:=function(n) local out, enum, i; out:=[]; enum:=EnumeratorOfCombinations([1..n]); for i in [2..2^n] do Append(out, U(enum[i])); od; return out; end; if not IsBound(EvaluateWord) then EvaluateWord:=function ( gens, w ) local i, res; if Length( w ) = 0 then return gens[1] ^ 0; fi; res := gens[w[1]]; for i in [ 2 .. Length( w ) ] do res := res * gens[w[i]]; od; return res; end; fi; >> From: Joao Araujo >> Subject: [GAP Forum] free bands >> Date: 13 July 2009 11:56:13 GMT+01:00 >> To: forum at gap-system.org >> >> >> Dear all, >> >> I would be grateful if someone could tell me how I can use GAP to get all the elements of the free band on 3 (or 4) generators. >> >> I thank in advance, >> Joao >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum > > > -- > Dr. Alexander Konovalov School of Computer Science > & Centre for Interdisciplinary Research in Computational Algebra > University of St Andrews Tel +44/0 (1334) 461633 > http://www.cs.st-andrews.ac.uk/~alexk Fax +44/0 (1334) 463278 > The University of St Andrews is a charity registered in Scotland:No.SC013532 > > > > > > > -- James Mitchell tinyurl.com/jdmitchell The University of St Andrews is a charity registered in Scotland : No SC013532 From jdm3 at st-and.ac.uk Thu Jul 5 11:20:53 2012 From: jdm3 at st-and.ac.uk (James Mitchell) Date: Thu, 5 Jul 2012 11:20:53 +0100 Subject: [GAP Forum] free bands In-Reply-To: References: <9b14fd91670c4f8fa1229ba5c6f4d9d3@UOS-DUN-CAS3.st-andrews.ac.uk> Message-ID: Dear Joao, dear Forum, One correction to my previous mail: the comment `i.e. the set of all square free finite words over the ...' is nonsense since there are infinitely many square free words over any alphabet with at least 3 letters. So, please ignore this comment. Regards, James On 2 July 2012 11:24, James Mitchell wrote: > Dear Joao, dear forum, > > You can produce the elements of the free band with n generators using > the code at the end of this email: FreeBand(4), for example will > return the free band on 4 as lists of positive integers, i.e. the set > of all square free finite words over the alphabet "1", "2", "3", "4". > > It takes about 2.5 seconds on my laptop to produce the elements of the > free band on 4 points. Since there are 2, 751,884,514, 765, elements > of the free band on 5 generators, it seems unlikely that these could > be produced in any reasonable amount of time. > > The function U(set) below creates the list of all elements of the free > band containing the letters in set (where set is a list of positive > integers). > > To represent any such list as word in "a", "b", "c", and "d" do: > > gap> s:=FreeSemigroup("a", "b", "c", "d"); > > gap> a:=s.1;; b:=s.2;; c:=s.3;; d:=s.4;; > > gap> fb:=FreeBand(3);; > gap> EvaluateWord([a,b,c,d], Random(fb)); > a*b*c*b*a*c > > > The code.... > > U:=function(P) > local out,u0, u1, w0, w1; > > if Length(P)=1 then > return List(P, x-> [x]); > fi; > out:=[]; > for u0 in P do > for w0 in U(Difference(P, [u0])) do > for u1 in P do > for w1 in U(Difference(P, [u1])) do > Add(out, Collapse(w0,u0,u1,w1)); > od; > od; > od; > od; > return out; > end; > > Collapse:=function(v0, u0, u1, v1) > local i, j; > w0:=Concatenation(v0, [u0]); > w1:=Concatenation([u1], v1); > > i:=Length(w0); > > while w0[i]<>u1 and i>1 do > i:=i-1; > od; > > j:=0; > > while j<=Length(w0)-i do > j:=j+1; > if w1[j]<>w0[i+j-1] then > return Concatenation(w0, w1); > fi; > od; > > return Concatenation(w0, w1{[j+1..Length(w1)]}); > end; > > FreeBand:=function(n) > local out, enum, i; > out:=[]; > enum:=EnumeratorOfCombinations([1..n]); > for i in [2..2^n] do > Append(out, U(enum[i])); > od; > return out; > end; > > if not IsBound(EvaluateWord) then > EvaluateWord:=function ( gens, w ) > local i, res; > if Length( w ) = 0 then > return gens[1] ^ 0; > fi; > res := gens[w[1]]; > for i in [ 2 .. Length( w ) ] do > res := res * gens[w[i]]; > od; > return res; > end; > fi; > > > >>> From: Joao Araujo >>> Subject: [GAP Forum] free bands >>> Date: 13 July 2009 11:56:13 GMT+01:00 >>> To: forum at gap-system.org >>> >>> >>> Dear all, >>> >>> I would be grateful if someone could tell me how I can use GAP to get all the elements of the free band on 3 (or 4) generators. >>> >>> I thank in advance, >>> Joao >>> >>> _______________________________________________ >>> Forum mailing list >>> Forum at mail.gap-system.org >>> http://mail.gap-system.org/mailman/listinfo/forum >> >> >> -- >> Dr. Alexander Konovalov School of Computer Science >> & Centre for Interdisciplinary Research in Computational Algebra >> University of St Andrews Tel +44/0 (1334) 461633 >> http://www.cs.st-andrews.ac.uk/~alexk Fax +44/0 (1334) 463278 >> The University of St Andrews is a charity registered in Scotland:No.SC013532 >> >> >> >> >> >> >> > > > > -- > James Mitchell > tinyurl.com/jdmitchell > > The University of St Andrews is a charity registered in Scotland : No SC013532 -- James Mitchell tinyurl.com/jdmitchell The University of St Andrews is a charity registered in Scotland : No SC013532 From mathieu.dutour at gmail.com Fri Jul 6 14:26:49 2012 From: mathieu.dutour at gmail.com (Mathieu Dutour) Date: Fri, 6 Jul 2012 15:26:49 +0200 Subject: [GAP Forum] autoload packages Message-ID: Has this changed with version 4.5? For example for JohnsonGraph(8,4) I need to put a RequirePackage("grape") in order to get it, while I did not needed it for 4.4 Mathieu From alexk at mcs.st-and.ac.uk Fri Jul 6 22:44:31 2012 From: alexk at mcs.st-and.ac.uk (Alexander Konovalov) Date: Fri, 6 Jul 2012 22:44:31 +0100 Subject: [GAP Forum] autoload packages In-Reply-To: References: Message-ID: Dear Mathieu, dear Forum, On 6 Jul 2012, at 14:26, Mathieu Dutour wrote: > Has this changed with version 4.5? > > For example for JohnsonGraph(8,4) > I need to put a RequirePackage("grape") in order to get it, > while I did not needed it for 4.4 > > Mathieu To my best knowledge, Grape was not autoloaded in GAP 4.4. Maybe that installation was made using another installer, or used .gaprc file containing a call to load Grape? Also, 'RequirePackage' is an old name which was already replaced by 'LoadPackage' some time ago. Anyhow, with GAP 4.5 the concept of autloaded packages has been withdrawn. Please see '?The gap.ini and gaprc files' for the description of the current mechanism for the user's customisation. If you don't have the gap.ini file yet, the easies way is to call WriteGapIniFile and then to edit the file which will be created, for example: gap> WriteGapIniFile(); #I File ......some-path/gap.ini successfully written. true Now open the file in the location told by the command above and find there the lines: ## A list of names of packages which should be loaded during startup. For ## backwards compatibility, the default lists most of packages that were ## autoloaded in GAP 4.4 (add or remove packages as you like). # SetUserPreference( "PackagesToLoad", [ "autpgrp", "alnuth", "crisp", # "factint", "fga", "irredsol", "laguna", "polenta", "polycyclic", # "resclasses", "sophus" ] ); Now, if you wish Grape to be loaded automatically each time you start GAP, all you need to do is to uncomment SetUserPreference call and add "grape" there. Hope this helps, Alexander From msorouhesh at gmail.com Wed Jul 11 21:07:58 2012 From: msorouhesh at gmail.com (Mr. Sorouhesh) Date: Thu, 12 Jul 2012 00:37:58 +0430 Subject: [GAP Forum] Contain a fixed subgroup In-Reply-To: References: Message-ID: Dear Friends, Trough working on the following problem: http://math.stackexchange.com/q/168180 you can see, the questioner defined a* new operation *on CyclicGroup(7) , to find inverse elements and search some properties in the group. This crossed my mind with this question if we can define a new well-defined operation on a certain set ,in GAP, to do for example what he did in the above question? Best M.R.Sorouhesh From alexk at mcs.st-and.ac.uk Wed Jul 11 23:12:08 2012 From: alexk at mcs.st-and.ac.uk (Alexander Konovalov) Date: Wed, 11 Jul 2012 23:12:08 +0100 Subject: [GAP Forum] Contain a fixed subgroup In-Reply-To: References: Message-ID: <05D3C6B2-02AF-415E-B4BD-4B212EC00CBD@mcs.st-andrews.ac.uk> Dear Mr. Sorouhesh, dear GAP Forum, On 11 Jul 2012, at 21:07, Mr. Sorouhesh wrote: > Dear Friends, > > Trough working on the following problem: > > http://math.stackexchange.com/q/168180 > > you can see, the questioner defined a* new operation *on CyclicGroup(7) , > to find inverse elements and search some properties in the group. > > This crossed my mind with this question if we can define a new well-defined > operation on a certain set ,in GAP, to do for example what he did in the > above question? Of course - allowing to define new objects and operations is one of the central GAP design principles. There is a function called ArithmeticElementCreator which offers a simple interface to create new arithmetic elements by providing functions that perform addition, multiplication etc. See `?ArithmeticElementCreator' to see the documentation and example. One can get further with an approach described in the Reference manual, Chapter 82 "An Example ? Designing Arithmetic Operations", while ArithmeticElementCreator may be useful to get started though does not permit to exploit all potential features. See also the Circle package which provides functionality to construct circle objects that will respect the circle multiplication r *s = r + s + rs, to create multiplicative structures, generated by such objects, and to compute adjoint semigroups and adjoint groups of finite rings. We were trying to make Chapter 2 "Implementing circle objects" useful for users who want to implement their own objects and operations following our examples. Best regards, Alexander From nehamakhijani at gmail.com Thu Jul 12 17:58:16 2012 From: nehamakhijani at gmail.com (Neha Makhijani) Date: Thu, 12 Jul 2012 22:28:16 +0530 Subject: [GAP Forum] irreducible representations of the dihedral group D10 over GF(4) Message-ID: Can somebody please clarify as to why I am not able to get the irreducible representations of the dihedral group over GF(4)?? IrreducibleRepresentations(DihedralGroup(10),GF(2^2)); List Element: must be a positive integer (not a boolean) Thanks! Neha From dima at ntu.edu.sg Thu Jul 12 18:21:20 2012 From: dima at ntu.edu.sg (Dmitrii (Dima) Pasechnik) Date: Fri, 13 Jul 2012 01:21:20 +0800 Subject: [GAP Forum] irreducible representations of the dihedral group D10 over GF(4) In-Reply-To: References: Message-ID: This looks like a bug (in documentation, at least). This command apparently does not work for finite fields of non-prime order. (but you can still do IrreducibleRepresentations(DihedralGroup(10),GF(2))) Hope this helps, Dmitrii On 13 July 2012 00:58, Neha Makhijani wrote: > Can somebody please clarify as to why I am not able to get the irreducible > representations of the dihedral group over GF(4)?? > > IrreducibleRepresentations(DihedralGroup(10),GF(2^2)); > List Element: must be a positive integer (not a boolean) > > Thanks! > > Neha > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum CONFIDENTIALITY:This email is intended solely for the person(s) named and may be confidential and/or privileged.If you are not the intended recipient,please delete it,notify us and do not copy,use,or disclose its content. Towards A Sustainable Earth:Print Only When Necessary.Thank you. From nehamakhijani at gmail.com Thu Jul 12 18:38:37 2012 From: nehamakhijani at gmail.com (Neha Makhijani) Date: Thu, 12 Jul 2012 23:08:37 +0530 Subject: [GAP Forum] irreducible representations of the dihedral group D10 over GF(4) In-Reply-To: References: Message-ID: It works for fields of non-prime order. But really not able to guess why it does not work for this particular case. Have a look! IrreducibleRepresentations(DihedralGroup(10),GF(2^3)); [ Pcgs([ f1, f2 ]) -> [ [ [ Z(2)^0 ] ], [ [ Z(2)^0 ] ] ], Pcgs([ f1, f2 ]) -> [ [ [ Z(2)^0, 0*Z(2), Z(2^3), Z(2)^0 ], [ 0*Z(2), Z(2)^0, Z(2^3)^6, Z(2^3)^3 ], [ 0*Z(2), 0*Z(2), Z(2^3), Z(2^3)^3 ], [ 0*Z(2), 0*Z(2), Z(2^3)^2, Z(2)^0 ] ], [ [ Z(2^3)^2, Z(2^3)^4, Z(2^3), 0*Z(2) ], [ Z(2^3)^3, Z(2^3), 0*Z(2), Z(2^3) ], [ Z(2^3), Z(2^3), Z(2^3)^3, Z(2^3)^5 ], [ Z(2)^0, 0*Z(2), Z(2^3)^4, Z(2^3)^2 ] ] ] ] Neha On Thu, Jul 12, 2012 at 10:51 PM, Dmitrii (Dima) Pasechnik wrote: > This looks like a bug (in documentation, at least). > This command apparently does not work for > finite fields of non-prime order. > (but you can still do IrreducibleRepresentations(DihedralGroup(10),GF(2))) > > Hope this helps, > Dmitrii > > On 13 July 2012 00:58, Neha Makhijani wrote: > > Can somebody please clarify as to why I am not able to get the > irreducible > > representations of the dihedral group over GF(4)?? > > > > IrreducibleRepresentations(DihedralGroup(10),GF(2^2)); > > List Element: must be a positive integer (not a boolean) > > > > Thanks! > > > > Neha > > _______________________________________________ > > Forum mailing list > > Forum at mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > > CONFIDENTIALITY:This email is intended solely for the person(s) named and > may be confidential and/or privileged.If you are not the intended > recipient,please delete it,notify us and do not copy,use,or disclose its > content. > > Towards A Sustainable Earth:Print Only When Necessary.Thank you. > -- Neha Makhijani Research Scholar Department of Mathematics IIT Delhi From dima at ntu.edu.sg Fri Jul 13 04:04:30 2012 From: dima at ntu.edu.sg (Dmitrii (Dima) Pasechnik) Date: Fri, 13 Jul 2012 11:04:30 +0800 Subject: [GAP Forum] irreducible representations of the dihedral group D10 over GF(4) In-Reply-To: References: Message-ID: It is a (documentation, at least) bug in both GAP 4.4 and in GAP 4.5; in the latter (more precisely, GAP 4.5.4) I get gap> IrreducibleRepresentations(DihedralGroup(10),GF(2^2)); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `[]' on 2 arguments called from s = 1 called from LiftAbsAndIrredModules( pcgsS, pcgsN, modrec, dim ) called from AbsAndIrredModules( G, F, dim ) called from IrreducibleModules( G, f, 0 ) called from ( ) called from read-eval loop at line 5 of *stdin* you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> Hopefully someone who knows more about the algorithms involved can comment on this, and/or provide a fix. Best, Dmitrii On 13 July 2012 01:38, Neha Makhijani wrote: > It works for fields of non-prime order. But really not able to guess why it > does not work for this particular case. Have a look! > > IrreducibleRepresentations(DihedralGroup(10),GF(2^3)); > [ Pcgs([ f1, f2 ]) -> [ [ [ Z(2)^0 ] ], [ [ Z(2)^0 ] ] ], > Pcgs([ f1, f2 ]) -> [ > [ [ Z(2)^0, 0*Z(2), Z(2^3), Z(2)^0 ], [ 0*Z(2), Z(2)^0, Z(2^3)^6, > Z(2^3)^3 ], [ 0*Z(2), 0*Z(2), Z(2^3), Z(2^3)^3 ], > [ 0*Z(2), 0*Z(2), Z(2^3)^2, Z(2)^0 ] ], > [ [ Z(2^3)^2, Z(2^3)^4, Z(2^3), 0*Z(2) ], > [ Z(2^3)^3, Z(2^3), 0*Z(2), Z(2^3) ], > [ Z(2^3), Z(2^3), Z(2^3)^3, Z(2^3)^5 ], > [ Z(2)^0, 0*Z(2), Z(2^3)^4, Z(2^3)^2 ] ] ] ] > > Neha > > On Thu, Jul 12, 2012 at 10:51 PM, Dmitrii (Dima) Pasechnik > wrote: >> >> This looks like a bug (in documentation, at least). >> This command apparently does not work for >> finite fields of non-prime order. >> (but you can still do IrreducibleRepresentations(DihedralGroup(10),GF(2))) >> >> Hope this helps, >> Dmitrii >> >> On 13 July 2012 00:58, Neha Makhijani wrote: >> > Can somebody please clarify as to why I am not able to get the >> > irreducible >> > representations of the dihedral group over GF(4)?? >> > >> > IrreducibleRepresentations(DihedralGroup(10),GF(2^2)); >> > List Element: must be a positive integer (not a boolean) >> > >> > Thanks! >> > >> > Neha >> > _______________________________________________ >> > Forum mailing list >> > Forum at mail.gap-system.org >> > http://mail.gap-system.org/mailman/listinfo/forum >> >> CONFIDENTIALITY:This email is intended solely for the person(s) named and >> may be confidential and/or privileged.If you are not the intended >> recipient,please delete it,notify us and do not copy,use,or disclose its >> content. >> >> Towards A Sustainable Earth:Print Only When Necessary.Thank you. > > > > > -- > Neha Makhijani > Research Scholar > Department of Mathematics > IIT Delhi > From alexk at mcs.st-andrews.ac.uk Thu Jul 19 20:40:58 2012 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Thu, 19 Jul 2012 20:40:58 +0100 Subject: [GAP Forum] GAP 4.5.5 release Message-ID: <54C08EFE-F973-4A71-8EAF-46AA8DDAD5D4@mcs.st-andrews.ac.uk> Dear GAP Forum, In June 2012 we announced GAP 4.5.4 which became the first public release of GAP 4.5. We thank all GAP users who have sent us feedback and reported problems after this release. Taking this feedback into account, we have prepared the first update, GAP 4.5.5, which is available now for download from our website http://www.gap-system.org as well as via alternative GAP distributions listed at http://www.gap-system.org/Download/#alternatives You may access the overview of changes in GAP 4.5.5 by entering '?Changes between GAP 4.4 and GAP 4.5' in GAP 4.5.5 and scrolling till the end of the chapter, or view it online at http://www.gap-system.org/Manuals/doc/changes/chap2.html#X83D3FC7781921387 In addition, GAP 4.5.5 contains new versions of the following packages: Browse, Citrus, Cubefree, cvec, FR, GradedRingForHomalg, HAP, HomalgToCAS, loops and RingsForHomalg. We encourage all users to upgrade to GAP 4.5.5. If you need any help or would like to report any problems, please do not hesitate to contact us at support at gap-system.org. Please note that we will regularly update the GAP distribution to include new versions of GAP packages, but we will not announce each of them to the Forum. We intend to use the Forum to announce updates of the core GAP system and only of some packages which may fix serious issues or have major influence on GAP. Wishing you fun and success using GAP, The GAP Group From jitender_sonu_123 at yahoo.co.in Mon Jul 23 06:51:42 2012 From: jitender_sonu_123 at yahoo.co.in (jitender arora) Date: Mon, 23 Jul 2012 13:51:42 +0800 (SGT) Subject: [GAP Forum] Monoid Package help Message-ID: <1343022702.95819.YahooMailNeo@web193601.mail.sg3.yahoo.com> Dear All, I would like to know in gap package "monoid",how i can see list ?or Sizes of SemigroupHomomorphismByImagesOfGens.I tried as follows: ? gap> S:=Semigroup( [ Transformation( [ 2, 4, 2, 4 ] ), Transformation( [ 4, 3, 4,4 ] ) ] );; gap> gens:=[ Transformation( [ 2, 4, 2, 4 ] ), Transformation( [ 4, 3, 4,4])];; gap> S:=Semigroup(gens);; gap> J:=SemigroupHomomorphismByImagesOfGens(S, S, GeneratorsOfSemigroup(S)); SemigroupHomomorphismByImagesOfGens ( ->) I tried Size(J); and List(J); Still i am not getting my answer. Please suggest me. Thanks, Jitender Kumar, Research Scholar, Department of Mathematics, Indian Institute of Technology -Guwahati(India). From jdm3 at st-and.ac.uk Mon Jul 23 20:11:18 2012 From: jdm3 at st-and.ac.uk (James Mitchell) Date: Mon, 23 Jul 2012 20:11:18 +0100 Subject: [GAP Forum] Monoid Package help In-Reply-To: <6b03d037724f4eeab859a2b8b0e4d44e@UOS-DUN-CAS3.st-andrews.ac.uk> References: <6b03d037724f4eeab859a2b8b0e4d44e@UOS-DUN-CAS3.st-andrews.ac.uk> Message-ID: Dear Jitender Kumar, Can you please explain what you mean by `see list or Sizes of SemigroupHomomorphismByImagesOfGens'? SemigroupHomomorphismByImagesOfGens(S, S, GeneratorsOfSemigroup(S)) returns the identity homomorphism from the semigroup S to itself. I'm not sure what the size of a homomorphism would be, or what you would expect to be returned by List(J). If you can explain, then maybe I can answer. In a separate note, the Monoid package has been replaces by the Citrus package in GAP 4.5 and I strongly suggest that you use the latest version of Citrus instead of Monoid. Regards, James On 23 July 2012 06:51, jitender arora wrote: > Dear All, > I would like to know in gap package "monoid",how i can see list > or Sizes of SemigroupHomomorphismByImagesOfGens.I tried as follows: > > > gap> S:=Semigroup( [ Transformation( [ 2, 4, 2, 4 ] ), Transformation( [ > 4, 3, 4,4 ] ) ] );; gap> gens:=[ Transformation( [ 2, 4, 2, 4 ] ), > Transformation( [ 4, 3, > 4,4])];; > gap> S:=Semigroup(gens);; > gap> J:=SemigroupHomomorphismByImagesOfGens(S, S, > GeneratorsOfSemigroup(S)); > SemigroupHomomorphismByImagesOfGens ( generators>->) > > > > I tried Size(J); and List(J); Still i am not getting my answer. > > Please suggest me. > > Thanks, > > Jitender Kumar, > Research Scholar, > Department of Mathematics, > Indian Institute of Technology -Guwahati(India). > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > -- James Mitchell tinyurl.com/jdmitchell The University of St Andrews is a charity registered in Scotland : No SC013532 From rm43 at evansville.edu Tue Jul 24 18:21:07 2012 From: rm43 at evansville.edu (Robert Morse) Date: Tue, 24 Jul 2012 19:21:07 +0200 Subject: [GAP Forum] GTCC Conference 3-8 October 2012 Boca Raton, Florida Message-ID: Conference Announcement Group Theory, Combinatorics, and Computing (GTCC) Florida Atlantic University Boca Raton, Florida, USA 3 - 8 October 2012 Conference Organizer: Daniela Nikolova-Popova Website: www.math.fau.edu/gtcc Early Registration ends 1 August 2012 From benjamin.sambale at gmail.com Fri Jul 27 09:22:06 2012 From: benjamin.sambale at gmail.com (Benjamin Sambale) Date: Fri, 27 Jul 2012 10:22:06 +0200 Subject: [GAP Forum] halfing pool size Message-ID: <50124FAE.4020805@gmail.com> Dear forum, every time I start GAP I get the message: "gap: halfing pool size." Does it mean I allocate to much memory (actually 2GB out of 4GB)? Btw, I load a workspace usually, but this message does not depend on that. I found nothing concerning this topic online. And for some reasons it never appeared on my office machine. Thanks, Benjamin From neunhoef at mcs.st-and.ac.uk Fri Jul 27 10:42:54 2012 From: neunhoef at mcs.st-and.ac.uk (Max Neunhoeffer) Date: Fri, 27 Jul 2012 10:42:54 +0100 Subject: [GAP Forum] halfing pool size In-Reply-To: <50124FAE.4020805@gmail.com> References: <50124FAE.4020805@gmail.com> Message-ID: <20120727094254.GA24839@mcs.st-and.ac.uk> Dear Benjamin, just a quick question, are you working on Windows or on what operating system? How do you exactly start up GAP? In particular the memory related options are interesting. Best regards, Max. On Fri, Jul 27, 2012 at 10:22:06AM +0200, Benjamin Sambale wrote: > Dear forum, > > every time I start GAP I get the message: "gap: halfing pool size." > Does it mean I allocate to much memory (actually 2GB out of 4GB)? > Btw, I load a workspace usually, but this message does not depend on > that. I found nothing concerning this topic online. And for some > reasons it never appeared on my office machine. > > Thanks, > Benjamin > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum -- Max Neunhoeffer http://www-groups.mcs.st-and.ac.uk/~neunhoef/ > > > > > > > > > > > May the Source be with you! < < < < < < < < < < < < The University of St Andrews is a registered Scottish charity: No SC013532 From benjamin.sambale at gmail.com Fri Jul 27 11:01:29 2012 From: benjamin.sambale at gmail.com (Benjamin Sambale) Date: Fri, 27 Jul 2012 12:01:29 +0200 Subject: [GAP Forum] halfing pool size In-Reply-To: <20120727094254.GA24839@mcs.st-and.ac.uk> References: <50124FAE.4020805@gmail.com> <20120727094254.GA24839@mcs.st-and.ac.uk> Message-ID: <501266F9.6030706@gmail.com> Dear Max, I use GAP 4.5.5 on arch linux 64 bit. For creating the workspace I used the following options (together with the script CreateWorkspace): -m 2048m -T -l "$GAP_DIR" "$@" For using the workspace I start GAP with: -L /usr/local/gap4r5/bin/wsgap4 -T -l "$GAP_DIR" "$@" I'm not sure if it's still necessary to pass the "-T", but this should be irrelevant. Thanks, Benjamin Am 27.07.2012 11:42, schrieb Max Neunhoeffer: > Dear Benjamin, > > just a quick question, are you working on Windows or on what operating > system? > How do you exactly start up GAP? In particular the memory related > options are interesting. > > Best regards, > Max. > On Fri, Jul 27, 2012 at 10:22:06AM +0200, Benjamin Sambale wrote: >> Dear forum, >> >> every time I start GAP I get the message: "gap: halfing pool size." >> Does it mean I allocate to much memory (actually 2GB out of 4GB)? >> Btw, I load a workspace usually, but this message does not depend on >> that. I found nothing concerning this topic online. And for some >> reasons it never appeared on my office machine. >> >> Thanks, >> Benjamin >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum From neunhoef at mcs.st-and.ac.uk Fri Jul 27 11:17:34 2012 From: neunhoef at mcs.st-and.ac.uk (Max Neunhoeffer) Date: Fri, 27 Jul 2012 11:17:34 +0100 Subject: [GAP Forum] halfing pool size In-Reply-To: <501266F9.6030706@gmail.com> References: <50124FAE.4020805@gmail.com> <20120727094254.GA24839@mcs.st-and.ac.uk> <501266F9.6030706@gmail.com> Message-ID: <20120727101734.GA24962@mcs.st-and.ac.uk> Dear Benjamin, thanks for your email. What happens is the following: With GAP 4.5 the memory allocation is done in a different way by default. GAP uses mmap to allocate 4GB as a "pool" but only uses the beginning of it, such that the memory is actually not physically used. The message "halfing pool size" happens, if this allocation does not work, because then GAP tries to half the pool until the allocation goes through. If you get the message once, this means that your OS grants GAP 2GB but not 4GB. Is it possible that you have set a resource limit on the main memory usage in your OS? Try "ulimit -a" and look under "max memory size". You can use GAP's "-s" option to set the pool size to something different or use "-s 0" to go the old allocation method. Cheers, Max. On Fri, Jul 27, 2012 at 12:01:29PM +0200, Benjamin Sambale wrote: > Dear Max, > > I use GAP 4.5.5 on arch linux 64 bit. For creating the workspace I > used the following options (together with the script > CreateWorkspace): > > -m 2048m -T -l "$GAP_DIR" "$@" > > For using the workspace I start GAP with: > > -L /usr/local/gap4r5/bin/wsgap4 -T -l "$GAP_DIR" "$@" > > I'm not sure if it's still necessary to pass the "-T", but this > should be irrelevant. > > Thanks, > Benjamin > > Am 27.07.2012 11:42, schrieb Max Neunhoeffer: > >Dear Benjamin, > > > >just a quick question, are you working on Windows or on what operating > >system? > >How do you exactly start up GAP? In particular the memory related > >options are interesting. > > > >Best regards, > > Max. > >On Fri, Jul 27, 2012 at 10:22:06AM +0200, Benjamin Sambale wrote: > >>Dear forum, > >> > >>every time I start GAP I get the message: "gap: halfing pool size." > >>Does it mean I allocate to much memory (actually 2GB out of 4GB)? > >>Btw, I load a workspace usually, but this message does not depend on > >>that. I found nothing concerning this topic online. And for some > >>reasons it never appeared on my office machine. > >> > >>Thanks, > >>Benjamin > >> > >>_______________________________________________ > >>Forum mailing list > >>Forum at mail.gap-system.org > >>http://mail.gap-system.org/mailman/listinfo/forum > -- Max Neunhoeffer http://www-groups.mcs.st-and.ac.uk/~neunhoef/ > > > > > > > > > > > May the Source be with you! < < < < < < < < < < < < The University of St Andrews is a registered Scottish charity: No SC013532 From kroeker at uni-math.gwdg.de Fri Jul 27 21:33:33 2012 From: kroeker at uni-math.gwdg.de (kroeker) Date: Fri, 27 Jul 2012 22:33:33 +0200 Subject: [GAP Forum] halfing pool size In-Reply-To: <20120727101734.GA24962@mcs.st-and.ac.uk> References: <50124FAE.4020805@gmail.com> <20120727094254.GA24839@mcs.st-and.ac.uk> <501266F9.6030706@gmail.com> <20120727101734.GA24962@mcs.st-and.ac.uk> Message-ID: <5012FB1D.7080703@uni-math.gwdg.de> Hello, the option '-s' is currently not described in the command line help (gap -h); is it by intention or just by accident? And as it is mostly the case, everything can be improved: the GAP message "halfing pool size" could be more descriptive e.g. "allocating x gb memory failed, halfing pool size ". Finally I have a less related question: does GAP provide a command line flag to control the verbosity of gap info/error/debug messages ( as a new GAP user I just don't know)? Best, Jakob Am 27.07.2012 12:17, schrieb Max Neunhoeffer: > Dear Benjamin, > > thanks for your email. What happens is the following: With GAP 4.5 the > memory allocation is done in a different way by default. GAP uses mmap > to allocate 4GB as a "pool" but only uses the beginning of it, such > that the memory is actually not physically used. > > The message "halfing pool size" happens, if this allocation does not > work, because then GAP tries to half the pool until the allocation > goes through. > > If you get the message once, this means that your OS grants GAP 2GB > but not 4GB. Is it possible that you have set a resource limit on the > main memory usage in your OS? > > Try "ulimit -a" and look under "max memory size". > > You can use GAP's "-s" option to set the pool size to something > different or use "-s 0" to go the old allocation method. > > Cheers, > Max. > > On Fri, Jul 27, 2012 at 12:01:29PM +0200, Benjamin Sambale wrote: >> Dear Max, >> >> I use GAP 4.5.5 on arch linux 64 bit. For creating the workspace I >> used the following options (together with the script >> CreateWorkspace): >> >> -m 2048m -T -l "$GAP_DIR" "$@" >> >> For using the workspace I start GAP with: >> >> -L /usr/local/gap4r5/bin/wsgap4 -T -l "$GAP_DIR" "$@" >> >> I'm not sure if it's still necessary to pass the "-T", but this >> should be irrelevant. >> >> Thanks, >> Benjamin >> >> Am 27.07.2012 11:42, schrieb Max Neunhoeffer: >>> Dear Benjamin, >>> >>> just a quick question, are you working on Windows or on what operating >>> system? >>> How do you exactly start up GAP? In particular the memory related >>> options are interesting. >>> >>> Best regards, >>> Max. >>> On Fri, Jul 27, 2012 at 10:22:06AM +0200, Benjamin Sambale wrote: >>>> Dear forum, >>>> >>>> every time I start GAP I get the message: "gap: halfing pool size." >>>> Does it mean I allocate to much memory (actually 2GB out of 4GB)? >>>> Btw, I load a workspace usually, but this message does not depend on >>>> that. I found nothing concerning this topic online. And for some >>>> reasons it never appeared on my office machine. >>>> >>>> Thanks, >>>> Benjamin >>>> >>>> _______________________________________________ >>>> Forum mailing list >>>> Forum at mail.gap-system.org >>>> http://mail.gap-system.org/mailman/listinfo/forum From benjamin.sambale at gmail.com Sat Jul 28 06:41:55 2012 From: benjamin.sambale at gmail.com (Benjamin Sambale) Date: Sat, 28 Jul 2012 07:41:55 +0200 Subject: [GAP Forum] halfing pool size In-Reply-To: <20120727101734.GA24962@mcs.st-and.ac.uk> References: <50124FAE.4020805@gmail.com> <20120727094254.GA24839@mcs.st-and.ac.uk> <501266F9.6030706@gmail.com> <20120727101734.GA24962@mcs.st-and.ac.uk> Message-ID: <50137BA3.1000209@gmail.com> Thanks Max! After using "-s 2048m" the message disappears. Some additional info: my "max memory size" is "unlimited". However, I "only" have 4GB memory which is partly shared by the graphic card I guess. Now GAP starts even faster :-) Best wishes, Benjamin Am 27.07.2012 12:17, schrieb Max Neunhoeffer: > Dear Benjamin, > > thanks for your email. What happens is the following: With GAP 4.5 the > memory allocation is done in a different way by default. GAP uses mmap > to allocate 4GB as a "pool" but only uses the beginning of it, such > that the memory is actually not physically used. > > The message "halfing pool size" happens, if this allocation does not > work, because then GAP tries to half the pool until the allocation > goes through. > > If you get the message once, this means that your OS grants GAP 2GB > but not 4GB. Is it possible that you have set a resource limit on the > main memory usage in your OS? > > Try "ulimit -a" and look under "max memory size". > > You can use GAP's "-s" option to set the pool size to something > different or use "-s 0" to go the old allocation method. > > Cheers, > Max. > > On Fri, Jul 27, 2012 at 12:01:29PM +0200, Benjamin Sambale wrote: >> Dear Max, >> >> I use GAP 4.5.5 on arch linux 64 bit. For creating the workspace I >> used the following options (together with the script >> CreateWorkspace): >> >> -m 2048m -T -l "$GAP_DIR" "$@" >> >> For using the workspace I start GAP with: >> >> -L /usr/local/gap4r5/bin/wsgap4 -T -l "$GAP_DIR" "$@" >> >> I'm not sure if it's still necessary to pass the "-T", but this >> should be irrelevant. >> >> Thanks, >> Benjamin >> >> Am 27.07.2012 11:42, schrieb Max Neunhoeffer: >>> Dear Benjamin, >>> >>> just a quick question, are you working on Windows or on what operating >>> system? >>> How do you exactly start up GAP? In particular the memory related >>> options are interesting. >>> >>> Best regards, >>> Max. >>> On Fri, Jul 27, 2012 at 10:22:06AM +0200, Benjamin Sambale wrote: >>>> Dear forum, >>>> >>>> every time I start GAP I get the message: "gap: halfing pool size." >>>> Does it mean I allocate to much memory (actually 2GB out of 4GB)? >>>> Btw, I load a workspace usually, but this message does not depend on >>>> that. I found nothing concerning this topic online. And for some >>>> reasons it never appeared on my office machine. >>>> >>>> Thanks, >>>> Benjamin >>>> >>>> _______________________________________________ >>>> Forum mailing list >>>> Forum at mail.gap-system.org >>>> http://mail.gap-system.org/mailman/listinfo/forum From jitender_sonu_123 at yahoo.co.in Sat Jul 28 14:48:40 2012 From: jitender_sonu_123 at yahoo.co.in (jitender arora) Date: Sat, 28 Jul 2012 21:48:40 +0800 (SGT) Subject: [GAP Forum] Semigroup homomorphisms Message-ID: <1343483320.83374.YahooMailNeo@web193604.mail.sg3.yahoo.com> Hello, ????????? Thanks for answer of my previous mail. ???????? My question is how i can see all homomorphism from S to S where my? S:=Semigroup( [ Transformation( [ 2, 4, 2, 4 ] ), Transformation( [4, 3, 4,4 ] ) ] ) or i want to see size of the set of all homomorphism from S to S. Please suggest me. Jitender Kumar, Research Scholar, Department of Mathematics, Indian Institute of Technology Guwahati, Phone +91 3612582646. From marek at mitros.org Tue Jul 31 10:37:38 2012 From: marek at mitros.org (Marek Mitros) Date: Tue, 31 Jul 2012 11:37:38 +0200 Subject: [GAP Forum] Remote access to atlasrep package files Message-ID: Hi, I am sometimes using atlasrep package but I do not know how to configure remote access to datagens files. I am reading in documentation that AtlasOfGroupRepresentationsInfo.servers should be set to a list of pairs [ server, path ], where server is a string denoting the http address of a server where files can be fetched that are not stored in the local database, and path is a string describing the path where the data directories on the server reside. I tried following: gap> AtlasOfGroupRepresentationsInfo.servers := [["http://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep",""]]; [ [ "http://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep", "" ] ] gap> g:=AtlasGroup("Th"); fail I cannot file correct values for the pair [server, path] in the atlasrep documentation. Regards, Marek From marek at mitros.org Tue Jul 31 10:42:06 2012 From: marek at mitros.org (Marek Mitros) Date: Tue, 31 Jul 2012 11:42:06 +0200 Subject: [GAP Forum] Remote access to atlasrep package files In-Reply-To: References: Message-ID: Sorry, the last sentece of my previous mail should be: I cannot find correct values for the pair [server, path] in the atlasrep documentation. Regards, Marek On 7/31/12, Marek Mitros wrote: > Hi, > > I am sometimes using atlasrep package but I do not know how to > configure remote access to datagens files. > > I am reading in documentation that > AtlasOfGroupRepresentationsInfo.servers should be set to a list of > pairs [ server, path ], where server is a string denoting the http > address of a server where files can be fetched that are not stored in > the local database, and path is a string describing the path where the > data directories on the server reside. > > I tried following: > gap> AtlasOfGroupRepresentationsInfo.servers := > [["http://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep",""]]; > [ [ "http://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep", "" ] ] > > gap> g:=AtlasGroup("Th"); > fail > > I cannot file correct values for the pair [server, path] in the > atlasrep documentation. > > Regards, > Marek > From alexk at mcs.st-andrews.ac.uk Tue Jul 31 10:41:41 2012 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Tue, 31 Jul 2012 10:41:41 +0100 Subject: [GAP Forum] Remote access to atlasrep package files In-Reply-To: References: Message-ID: <99FA225D-4499-47B7-B117-7E8488631E2E@mcs.st-andrews.ac.uk> Hi Marek, for me it works out of the box: gap> g:=AtlasGroup("Th"); gap> Are you sure that all dependencies are satisfied: Dependencies := rec( GAP := ">= 4.4.12", # do not really need GAP 4.5 features NeededOtherPackages := [ [ "gapdoc", ">= 1.2" ], # [ "gpisotyp", ">= 1.0" ], ], SuggestedOtherPackages := [ [ "browse", ">= 1.4" ], # want `BrowseData.SortKeyFunctionBibRec' [ "ctbllib", ">= 1.1.4" ], # want `LIBTABLE.NameReplacements' [ "tomlib", ">= 1.2.1" ], [ "io", ">= 3.3" ] ], My guess would be that you did not compile the IO package, so it can't fetch the data. HTH, Alexander On 31 Jul 2012, at 10:37, Marek Mitros wrote: > Hi, > > I am sometimes using atlasrep package but I do not know how to > configure remote access to datagens files. > > I am reading in documentation that > AtlasOfGroupRepresentationsInfo.servers should be set to a list of > pairs [ server, path ], where server is a string denoting the http > address of a server where files can be fetched that are not stored in > the local database, and path is a string describing the path where the > data directories on the server reside. > > I tried following: > gap> AtlasOfGroupRepresentationsInfo.servers := > [["http://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep",""]]; > [ [ "http://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep", "" ] ] > > gap> g:=AtlasGroup("Th"); > fail > > I cannot file correct values for the pair [server, path] in the > atlasrep documentation. > > Regards, > Marek > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum -- Dr. Alexander Konovalov School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44/0 (1334) 461633 http://www.cs.st-andrews.ac.uk/~alexk Fax +44/0 (1334) 463278 The University of St Andrews is a charity registered in Scotland:No.SC013532 From neunhoef at mcs.st-and.ac.uk Tue Jul 31 13:47:28 2012 From: neunhoef at mcs.st-and.ac.uk (Max Neunhoeffer) Date: Tue, 31 Jul 2012 13:47:28 +0100 Subject: [GAP Forum] Remote access to atlasrep package files In-Reply-To: References: Message-ID: <20120731124728.GA5975@mcs.st-and.ac.uk> Dear Marek, in my installation (GAP 4.5.5 with AtlasRep 1.5.0) the configuration variable has the follwing value (set automatically): gap> AtlasOfGroupRepresentationsInfo.servers; [ [ "brauer.maths.qmul.ac.uk", "Atlas/" ] ] and this works for me. You can set SetInfoLevel(InfoAtlasRep,2); and then you get more information on where it goes wrong. You could be behind some nasty firewall which blocks outside network access... Best regards, Max. On Tue, Jul 31, 2012 at 11:37:38AM +0200, Marek Mitros wrote: > Hi, > > I am sometimes using atlasrep package but I do not know how to > configure remote access to datagens files. > > I am reading in documentation that > AtlasOfGroupRepresentationsInfo.servers should be set to a list of > pairs [ server, path ], where server is a string denoting the http > address of a server where files can be fetched that are not stored in > the local database, and path is a string describing the path where the > data directories on the server reside. > > I tried following: > gap> AtlasOfGroupRepresentationsInfo.servers := > [["http://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep",""]]; > [ [ "http://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep", "" ] ] > > gap> g:=AtlasGroup("Th"); > fail > > I cannot file correct values for the pair [server, path] in the > atlasrep documentation. > > Regards, > Marek > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum -- Max Neunhoeffer http://www-groups.mcs.st-and.ac.uk/~neunhoef/ > > > > > > > > > > > May the Source be with you! < < < < < < < < < < < < The University of St Andrews is a registered Scottish charity: No SC013532 From matan at svgalib.org Thu Aug 2 22:03:10 2012 From: matan at svgalib.org (Matan Ziv-Av) Date: Fri, 3 Aug 2012 00:03:10 +0300 (IDT) Subject: [GAP Forum] GAP on Android Message-ID: Hello, I compiled a part of GAP 4.5.5 for android. In fact, the binaries are compiled for ARMv7 and statically linked, so they should work on any Linux based system using Cortex-A8 core or later. If there is enough (more than 1GB) space on the /data partition, then no root access is required. An application has write access to a subdirectory under /data/data, so GAP can be installed (if using Android Terminal Emulator, for example) under /data/data/jackpal.androidterm. It is also possible to install to sdcard and have only the binaries and some directories and symlinks in the /data partition. Otherwise, installing requires root, since the storage partition (/mnt/sdcard) is by default mounted with noexec options, and it needs to be remounted with exec option ( mount -o remount,exec /mnt/sdcard ). After remounting, the program can be executed by a non-root user (that has read access to /mnt/sdcard). To install, untar the tar.gz file somewhere. If you do not untar under /mnt/sdcard, edit the included gap4r5/gap.sh accordingly. The HOME environment variable should be set to a directory where .gap with the configuration files should be. To run, execute the file /mnt/sdcard/gap4r5/gap.sh. I removed a few carat and Browse, as they took some work to get working, and I don't use them. Another notable difference is that android does not have /tmp (or equivalent). I changed DirectoryTemporary() to return DirectoryHome(). Download: http://my.svgalib.org/android/gap4r5-1.tar.gz When compiling I noted that a few packages ignore (or overwrite) the CC, CFLAGS and LDFLAGS environment variables, making it harder to cross compile, or to have more control over compilations. The Makefile.in (or similar) in the following subdirectory required small obvious changes: ace/src/ fplsa/ anupq/ guava-3.12/ src/ src/leon cohomolo/ standalone/progs.d kbmag/ -- Matan Ziv-Av. matan at svgalib.org From marek at mitros.org Fri Aug 3 07:42:41 2012 From: marek at mitros.org (Marek Mitros) Date: Fri, 3 Aug 2012 08:42:41 +0200 Subject: [GAP Forum] Working with large conjugacy class Message-ID: Hi, I perform following code in GAP 4.5.5- see below. I see that single matrix 133x133 over GF(4) use 8902 bytes of memory. The size of 2A class is 1 539 000. So (1 539 000 * 8902)/2^20 = 13 065 MB. I start gap session with option -o 15000m (is it OK to allocate 15 GB of memory ?). And I run command c2s:= AsList(c2);; Is there hope to fit whole conjugacy class in memory ? Are there other ways to loop through all large conjugacy class without storing it in memory ? I could store it on the disk for example. I would like to get answer on following questions and other similar. Fix v0 in 2A conjugacy class. I call element x "perpendicular to v0" if Order(x*v0)=2. How many elements there are perpendicular to v0 ? What is the size of maximal commuting subset in 2A. What is the size of abelian group generated by it ? What is the size of set {x: x*v0 belongs to 2A} ? Thanks for any advice. Regards, Marek gap> hn:=AtlasGroup("HN", Dimension, 133); gap> gens:=GeneratorsOfGroup(hn); [ < immutable compressed matrix 133x133 over GF(4) >, < immutable compressed matrix 133x133 over GF(4) > ] gap> Order(gens[1]); 2 gap> c2:=ConjugacyClass(hn,gens[1]); < immutable compressed matrix 133x133 over GF(4) >^G gap> MemoryUsage(gens[1]); 8902 From james.read at oriel.ox.ac.uk Fri Aug 3 12:31:09 2012 From: james.read at oriel.ox.ac.uk (James Read) Date: Fri, 3 Aug 2012 11:31:09 +0000 Subject: [GAP Forum] Modular Group Message-ID: <6D9F49244F02DF4985C8169B51C642CC027986@MBX04.ad.oak.ox.ac.uk> Dear Forum, How can one create the modular group and certain congruence subgroups of the modular group in GAP? In particular I am looking at the nine index 24 subgroups on page 22 here: http://arxiv.org/pdf/1201.3633v2.pdf. Many thanks, James Read From alexk at mcs.st-andrews.ac.uk Fri Aug 3 19:03:02 2012 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Fri, 3 Aug 2012 19:03:02 +0100 Subject: [GAP Forum] Modular Group In-Reply-To: <6D9F49244F02DF4985C8169B51C642CC027986@MBX04.ad.oak.ox.ac.uk> References: <6D9F49244F02DF4985C8169B51C642CC027986@MBX04.ad.oak.ox.ac.uk> Message-ID: <8A726778-822E-4314-922C-6CFE3233E50F@mcs.st-andrews.ac.uk> Dear James, I have a package Congruence which is still under development - I was waiting to GAP 4.5 to make its public release. It should be able to cover most, if not all subgroups from that preprint. Please see http://www.cs.st-andrews.ac.uk/~alexk/papers/Aachen06.pdf for my slides about it. If you wish to get its development version, I may send you an archive. Best wishes, Alexander On 3 Aug 2012, at 12:31, James Read wrote: > Dear Forum, > > > How can one create the modular group and certain congruence subgroups of the modular group in GAP? In particular I am looking at the nine index 24 subgroups on page 22 here: http://arxiv.org/pdf/1201.3633v2.pdf. > > > Many thanks, > > > James Read > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum -- Dr. Alexander Konovalov School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44/0 (1334) 461633 http://www.cs.st-andrews.ac.uk/~alexk Fax +44/0 (1334) 463278 The University of St Andrews is a charity registered in Scotland:No.SC013532 From hulpke at math.colostate.edu Fri Aug 3 19:09:57 2012 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri, 3 Aug 2012 12:09:57 -0600 Subject: [GAP Forum] Working with large conjugacy class In-Reply-To: References: Message-ID: <876B6F6F-BF1E-4D3A-97DD-6268C57BE219@math.colostate.edu> Dear Forum, Dear Marek Mitros, On Aug 3, 2012, at 8/3/12 12:42, Marek Mitros wrote: > Hi, > > I perform following code in GAP 4.5.5- see below. I see that single > matrix 133x133 over GF(4) use 8902 bytes of memory. The size of 2A > class is 1 539 000. So (1 539 000 * 8902)/2^20 = 13 065 MB. > > I start gap session with option -o 15000m (is it OK to allocate 15 GB > of memory ?). And I run command > c2s:= AsList(c2);; > > Is there hope to fit whole conjugacy class in memory ? First you'll need a 64-bit binary, and on that I believe the matrices are larger (I measured 12210 myself) because of packing overhead. Then part of allocated memory is reserved for master pointers, and as there will be some overhead for lists. So you are probably looking at something closer to 25-30GB of memory required. Also (by default matrix group calculations translate to permutation groups which you don't want to do here) I would call c2s:=Orbit(hn,gens[1]);; instead to just calculate conjugates. Also note that sometimes a substantial amount of core memory is used up by the operating system, for example I would expect that allocating 30GB on a 32GB system would be too much. > Are there other > ways to loop through all large conjugacy class without storing it in > memory ? I could store it on the disk for example. Mathematically I cannot think of a fundamentally better scheme if you really want to iterate over all class elements -- the centralizer is maximal and you need to enumerate its cosets. You of course trade runtime for memory, in extremis by storing instead of conjugate matrices only a formal word in the generators that will conjugate this way (and possibly a small fingeroprint of the matrix to make for fast searching), but that is likely prohibitively expensive. Similarly you could use external storage on the disk, but you would have to write all the code for this from scratch. Best, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From A.Egri-Nagy at herts.ac.uk Sat Aug 4 00:42:39 2012 From: A.Egri-Nagy at herts.ac.uk (Attila Egri-Nagy) Date: Sat, 4 Aug 2012 09:42:39 +1000 Subject: [GAP Forum] Working with large conjugacy class In-Reply-To: <876B6F6F-BF1E-4D3A-97DD-6268C57BE219@math.colostate.edu> References: <876B6F6F-BF1E-4D3A-97DD-6268C57BE219@math.colostate.edu> Message-ID: Just a small remark regarding the memory usage of the operating system. On a 32GB machine I routinely use 31500m but first I stop services not needed and also shut down the graphical desktop environment. In case you need exactly that 1.5GB... best, @ On Sat, Aug 4, 2012 at 4:09 AM, Alexander Hulpke wrote: > > > Dear Forum, Dear Marek Mitros, > > On Aug 3, 2012, at 8/3/12 12:42, Marek Mitros wrote: > >> Hi, >> >> I perform following code in GAP 4.5.5- see below. I see that single >> matrix 133x133 over GF(4) use 8902 bytes of memory. The size of 2A >> class is 1 539 000. So (1 539 000 * 8902)/2^20 = 13 065 MB. >> >> I start gap session with option -o 15000m (is it OK to allocate 15 GB >> of memory ?). And I run command >> c2s:= AsList(c2);; >> >> Is there hope to fit whole conjugacy class in memory ? > > First you'll need a 64-bit binary, and on that I believe the matrices are larger (I measured 12210 myself) because of packing overhead. Then part of allocated memory is reserved for master pointers, and as there will be some overhead for lists. So you are probably looking at something closer to 25-30GB of memory required. Also (by default matrix group calculations translate to permutation groups which you don't want to do here) I would call > > c2s:=Orbit(hn,gens[1]);; > > instead to just calculate conjugates. Also note that sometimes a substantial amount of core memory is used up by the operating system, for example I would expect that allocating 30GB on a 32GB system would be too much. > >> Are there other >> ways to loop through all large conjugacy class without storing it in >> memory ? I could store it on the disk for example. > > Mathematically I cannot think of a fundamentally better scheme if you really want to iterate over all class elements -- the centralizer is maximal and you need to enumerate its cosets. > You of course trade runtime for memory, in extremis by storing instead of conjugate matrices only a formal word in the generators that will conjugate this way (and possibly a small fingeroprint of the matrix to make for fast searching), but that is likely prohibitively expensive. Similarly you could use external storage on the disk, but you would have to write all the code for this from scratch. > > Best, > > Alexander Hulpke > > > > > -- Colorado State University, Department of Mathematics, > Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA > email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 > http://www.math.colostate.edu/~hulpke > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From m.fayers at qmul.ac.uk Mon Aug 6 10:36:33 2012 From: m.fayers at qmul.ac.uk (Matthew Fayers) Date: Mon, 6 Aug 2012 10:36:33 +0100 (BST) Subject: [GAP Forum] GAP crashes when reading a syntax error In-Reply-To: <1896279150.312973.1344245030381.JavaMail.root@planck.maths.qmul.ac.uk> Message-ID: <1826919725.313085.1344245793160.JavaMail.root@planck.maths.qmul.ac.uk> Dear GAP forum, I'm running GAP 4.5.5 on Ubuntu 12.04. When I read a file into GAP with the following contents: f:=function() local k; for k in [1] do Print(k));od; end; GAP unexpectedly closes. (This happens on both my machines.) Of course, there is a syntax error in the third line, but it's surprising to me that this causes GAP to crash. Is this a problem with GAP, or have I got something set up badly? _____________________________________________________________________________________________ Matthew Fayers School of Mathematical Sciences Queen Mary, University of London Mile End Road London E1 4NS 020 7882 5479 From A.Egri-Nagy at herts.ac.uk Mon Aug 6 10:54:51 2012 From: A.Egri-Nagy at herts.ac.uk (Attila Egri-Nagy) Date: Mon, 6 Aug 2012 19:54:51 +1000 Subject: [GAP Forum] GAP crashes when reading a syntax error In-Reply-To: <1826919725.313085.1344245793160.JavaMail.root@planck.maths.qmul.ac.uk> References: <1896279150.312973.1344245030381.JavaMail.root@planck.maths.qmul.ac.uk> <1826919725.313085.1344245793160.JavaMail.root@planck.maths.qmul.ac.uk> Message-ID: Same on my machines (all Ubuntu). I experienced this problem many times, but never time to investigate it. I concluded that I should not make syntactic mistakes.. :) I wonder this is a special Ubuntu thing? Anyone else having this problem? attila On Mon, Aug 6, 2012 at 7:36 PM, Matthew Fayers wrote: > Dear GAP forum, > > I'm running GAP 4.5.5 on Ubuntu 12.04. When I read a file into GAP with the following contents: > > f:=function() > local k; > for k in [1] do Print(k));od; > end; > > GAP unexpectedly closes. (This happens on both my machines.) Of course, there is a syntax error in the third line, but it's surprising to me that this causes GAP to crash. Is this a problem with GAP, or have I got something set up badly? > > _____________________________________________________________________________________________ > Matthew Fayers > School of Mathematical Sciences > Queen Mary, University of London > Mile End Road > London E1 4NS > 020 7882 5479 > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From kroeker at uni-math.gwdg.de Mon Aug 6 11:21:00 2012 From: kroeker at uni-math.gwdg.de (kroeker) Date: Mon, 06 Aug 2012 12:21:00 +0200 Subject: [GAP Forum] Fwd: GAP crashes when reading a syntax error Message-ID: <501F9A8C.102@uni-math.gwdg.de> GAP closes due to an assertion failure in read.c:1197, but I didn't investigate further. Jakob -------- Original-Nachricht -------- Betreff: [GAP Forum] GAP crashes when reading a syntax error Datum: Mon, 6 Aug 2012 10:36:33 +0100 (BST) Von: Matthew Fayers An: forum Dear GAP forum, I'm running GAP 4.5.5 on Ubuntu 12.04. When I read a file into GAP with the following contents: f:=function() local k; for k in [1] do Print(k));od; end; GAP unexpectedly closes. (This happens on both my machines.) Of course, there is a syntax error in the third line, but it's surprising to me that this causes GAP to crash. Is this a problem with GAP, or have I got something set up badly? _____________________________________________________________________________________________ Matthew Fayers School of Mathematical Sciences Queen Mary, University of London Mile End Road London E1 4NS 020 7882 5479 _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From max at quendi.de Tue Aug 7 23:26:05 2012 From: max at quendi.de (Max Horn) Date: Wed, 8 Aug 2012 00:26:05 +0200 Subject: [GAP Forum] GAP crashes when reading a syntax error In-Reply-To: <1826919725.313085.1344245793160.JavaMail.root@planck.maths.qmul.ac.uk> References: <1826919725.313085.1344245793160.JavaMail.root@planck.maths.qmul.ac.uk> Message-ID: <8CC5CA29-F7E9-4EEB-AFB7-333F501FE911@quendi.de> Dear Matthew, On 06.08.2012, at 11:36, Matthew Fayers wrote: > Dear GAP forum, > > I'm running GAP 4.5.5 on Ubuntu 12.04. When I read a file into GAP with the following contents: > > f:=function() > local k; > for k in [1] do Print(k));od; > end; > > GAP unexpectedly closes. (This happens on both my machines.) Of course, there is a syntax error in the third line, but it's surprising to me that this causes GAP to crash. Is this a problem with GAP, or have I got something set up badly? Thank you for your report. We know the cause of this issue (it has been reported before on the support list) and we have a fix for it. As such, I believe that this will be corrected in GAP 4.5.6. Cheers, Max From A.Egri-Nagy at herts.ac.uk Wed Aug 8 01:57:32 2012 From: A.Egri-Nagy at herts.ac.uk (Attila Egri-Nagy) Date: Wed, 8 Aug 2012 10:57:32 +1000 Subject: [GAP Forum] GAP crashes when reading a syntax error In-Reply-To: <8CC5CA29-F7E9-4EEB-AFB7-333F501FE911@quendi.de> References: <1826919725.313085.1344245793160.JavaMail.root@planck.maths.qmul.ac.uk> <8CC5CA29-F7E9-4EEB-AFB7-333F501FE911@quendi.de> Message-ID: Dear Max and Forum, It is probably the right place to mention this issue again, but I think there is a need for a public issue/bugtracker for GAP. An issue reported on support at gap-system.org remains invisible from the outside, thus the issue is reported again. This is just wasting time of the users and the developers. Very frustrating and it kills the incentive for contributing toward the fix. We talked about this last year at the Summer School, but seemingly nothing has changed, and I still don't see the benefits of the closed development model. best, @ > > Thank you for your report. We know the cause of this issue (it has been reported before on the support list) and we have a fix for it. As such, I believe that this will be corrected in GAP 4.5.6. > > Cheers, > Max > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From kroeker at uni-math.gwdg.de Fri Aug 10 13:38:00 2012 From: kroeker at uni-math.gwdg.de (kroeker) Date: Fri, 10 Aug 2012 14:38:00 +0200 Subject: [GAP Forum] Fwd: need help with debugging Message-ID: <502500A8.4090809@uni-math.gwdg.de> Hello, probably my first question was overseen, any suggestions how to proceed with debugging ? Thanks, Jakob -------- Original-Nachricht -------- Betreff: need help with debugging Datum: Tue, 31 Jul 2012 14:43:03 +0200 Von: kroeker An: support at gap-system.org Hello, for a special computation using float package I ran into a segfault. I have no experience debugging GAP, any suggestions? Here is the backtrace: Thanks, Jakob Program received signal SIGSEGV, Segmentation fault. 0x0000000000000000 in ?? () (gdb) backtrace #0 0x0000000000000000 in ?? () #1 0x0000000000593655 in KTNumPlist (list=0x100000f5fde0, famfirst=0x7fffffffc1b8) at ../../src/plist.c:317 #2 0x0000000000595266 in TypePlistWithKTnum (list=0x100000f5fde0, ktnum=0x0) at ../../src/plist.c:548 #3 0x00000000005951f5 in TypePlist (list=0x100000f5fde0) at ../../src/plist.c:534 #4 0x0000000000593655 in KTNumPlist (list=0x100000f635d0, famfirst=0x7fffffffc328) at ../../src/plist.c:317 #5 0x0000000000595266 in TypePlistWithKTnum (list=0x100000f635d0, ktnum=0x0) at ../../src/plist.c:548 #6 0x00000000005951f5 in TypePlist (list=0x100000f635d0) at ../../src/plist.c:534 #7 0x0000000000575bd3 in DoFilter (self=0x100000027b30, obj=0x100000f635d0) at ../../src/opers.c:979 #8 0x00000000005761da in DoAndFilter (self=0x100000028898, obj=0x100000f635d0) at ../../src/opers.c:1082 #9 0x00000000005761da in DoAndFilter (self=0x1000000289b0, obj=0x100000f635d0) at ../../src/opers.c:1082 #10 0x00000000005761da in DoAndFilter (self=0x10000002bc18, obj=0x100000f635d0) at ../../src/opers.c:1082 #11 0x000000000050aac5 in EvalFunccall1args (call=168) at ../../src/funcs.c:486 #12 0x00000000004fb6f7 in EvalUnknownBool (expr=168) at ../../src/exprs.c:198 #13 0x00000000004fbcf2 in EvalNot (expr=216) at ../../src/exprs.c:327 #14 0x00000000005c63a2 in ExecIf (stat=440) at ../../src/stats.c:287 #15 0x00000000005c608a in ExecSeqStat7 (stat=32) at ../../src/stats.c:247 #16 0x000000000050d883 in DoExecFunc1args (func=0x100000889a60, arg1=0x100000f635d0) at ../../src/funcs.c:861 #17 0x000000000050aac5 in EvalFunccall1args (call=2480) at ../../src/funcs.c:486 #18 0x00000000005ea1cd in ExecAssLVar11 (stat=2528) at ../../src/vars.c:306 #19 0x00000000005c57f7 in ExecSeqStat (stat=5584) at ../../src/stats.c:161 #20 0x00000000005c92a9 in ExecWhile (stat=5720) at ../../src/stats.c:1048 #21 0x00000000005c57f7 in ExecSeqStat (stat=6224) at ../../src/stats.c:161 #22 0x00000000005c6315 in ExecSeqStat7 (stat=32) at ../../src/stats.c:255 #23 0x000000000050dd29 in DoExecFunc5args (func=0x100000889668, arg1=0x10000062a3a8, arg2=0x1000006297c0, arg3=0x100000ff3e18, arg4=0x100000fbfff0, arg5=0x100000292f88) at ../../src/funcs.c:1033 #24 0x000000000050c6d7 in EvalFunccall5args (call=2608) at ../../src/funcs.c:637 #25 0x00000000005ea80c in ExecAssLVar15 (stat=2688) at ../../src/vars.c:362 #26 0x00000000005c5879 in ExecSeqStat2 (stat=3264) at ../../src/stats.c:177 #27 0x00000000005c63fd in ExecIf (stat=3312) at ../../src/stats.c:291 #28 0x00000000005c5c76 in ExecSeqStat5 (stat=3664) at ../../src/stats.c:217 #29 0x00000000005c92a9 in ExecWhile (stat=3736) at ../../src/stats.c:1048 #30 0x00000000005c57f7 in ExecSeqStat (stat=6968) at ../../src/stats.c:161 #31 0x00000000005c6315 in ExecSeqStat7 (stat=32) at ../../src/stats.c:255 #32 0x000000000050dd29 in DoExecFunc5args (func=0x10000088a420, arg1=0x1000005791b0, arg2=0x10000055d908, arg3=0x10000062a3a8, arg4=0x10000062a3a8, arg5=0x100000292f88) at ../../src/funcs.c:1033 #33 0x000000000050c6d7 in EvalFunccall5args (call=4264) at ../../src/funcs.c:637 #34 0x00000000005e9a02 in ExecAssLVar06 (stat=4344) at ../../src/vars.c:236 #35 0x00000000005c57f7 in ExecSeqStat (stat=5632) at ../../src/stats.c:161 #36 0x00000000005c84c0 in ExecForRange (stat=5744) at ../../src/stats.c:846 #37 0x00000000005c57f7 in ExecSeqStat (stat=5984) at ../../src/stats.c:161 #38 0x00000000005c6315 in ExecSeqStat7 (stat=32) at ../../src/stats.c:255 #39 0x000000000050dbda in DoExecFunc4args (func=0x10000088a320, arg1=0x1000005791b0, arg2=0x10000055d908, arg3=0x1000006297c0, arg4=0x100000535400) at ../../src/funcs.c:987 #40 0x000000000050bdc1 in EvalFunccall4args (call=712) at ../../src/funcs.c:596 #41 0x00000000005e96e4 in ExecAssLVar04 (stat=784) at ../../src/vars.c:208 #42 0x00000000005c61d1 in ExecSeqStat7 (stat=32) at ../../src/stats.c:250 #43 0x000000000050daa4 in DoExecFunc3args (func=0x100000889398, arg1=0x1000005791b0, arg2=0x10000055d908, arg3=0x100000535400) at ../../src/funcs.c:943 #44 0x000000000050b60b in EvalFunccall3args (call=344) at ../../src/funcs.c:558 #45 0x00000000005e93c6 in ExecAssLVar02 (stat=408) at ../../src/vars.c:180 #46 0x00000000005c593c in ExecSeqStat3 (stat=32) at ../../src/stats.c:189 #47 0x000000000050d883 in DoExecFunc1args (func=0x10000078a9a8, arg1=0x100000535400) at ../../src/funcs.c:861 #48 0x0000000000528396 in IntrFuncCallEnd (funccall=1, options=0, nr=1) at ../../src/intrprtr.c:417 #49 0x00000000005ab14d in ReadCallVarAss (follow=3221225472, mode=114 'r') at ../../src/read.c:535 #50 0x00000000005add41 in ReadAtom (follow=3221225472, mode=114 'r') at ../../src/read.c:1384 #51 0x00000000005adf53 in ReadFactor (follow=3221225472, mode=114 'r') at ../../src/read.c:1446 #52 0x00000000005ae149 in ReadTerm (follow=3221225472, mode=114 'r') at ../../src/read.c:1497 #53 0x00000000005ae26f in ReadAri (follow=3221225472, mode=114 'r') at ../../src/read.c:1530 #54 0x00000000005ae3a4 in ReadRel (follow=3221225472, mode=114 'r') at ../../src/read.c:1569 #55 0x00000000005ae546 in ReadAnd (follow=3221225472, mode=114 'r') at ../../src/read.c:1608 #56 0x00000000005ae647 in ReadExpr (follow=3221225472, mode=114 'r') at ../../src/read.c:1634 #57 0x00000000005ab1ec in ReadCallVarAss (follow=3221225472, mode=120 'x') at ../../src/read.c:545 #58 0x00000000005add41 in ReadAtom (follow=3221225472, mode=120 'x') at ../../src/read.c:1384 #59 0x00000000005adf53 in ReadFactor (follow=3221225472, mode=120 'x') at ../../src/read.c:1446 #60 0x00000000005ae149 in ReadTerm (follow=3221225472, mode=120 'x') at ../../src/read.c:1497 #61 0x00000000005ae26f in ReadAri (follow=3221225472, mode=120 'x') at ../../src/read.c:1530 #62 0x00000000005ae3a4 in ReadRel (follow=3221225472, mode=120 'x') at ../../src/read.c:1569 ---Type to continue, or q to quit--- #63 0x00000000005ae546 in ReadAnd (follow=3221225472, mode=120 'x') at ../../src/read.c:1608 #64 0x00000000005ae647 in ReadExpr (follow=3221225472, mode=120 'x') at ../../src/read.c:1634 #65 0x00000000005b0141 in ReadEvalCommand (context=0x100000001c50) at ../../src/read.c:2261 #66 0x000000000050f126 in Shell (context=0x100000001c50, canReturnVoid=0, canReturnObj=0, lastDepth=3, setTime=1, prompt=0x7fffffffd4c0 "gap> ", preCommandHook=0x10000013e270, catchQUIT=1, inFile=0x1000056257e8 "\002", outFile=0x100005625808 "\350\062g") at ../../src/gap.c:306 #67 0x000000000050fac0 in FuncSHELL (self=0x10000000b648, args=0x10000013e278) at ../../src/gap.c:500 #68 0x000000000050a25e in ExecProccallXargs (call=944) at ../../src/funcs.c:387 #69 0x00000000005c5c76 in ExecSeqStat5 (stat=32) at ../../src/stats.c:217 #70 0x000000000050d798 in DoExecFunc0args (func=0x1000000670b8) at ../../src/funcs.c:821 #71 0x0000000000528360 in IntrFuncCallEnd (funccall=0, options=0, nr=0) at ../../src/intrprtr.c:416 #72 0x00000000005ab12a in ReadCallVarAss (follow=3221225472, mode=120 'x') at ../../src/read.c:532 #73 0x00000000005add41 in ReadAtom (follow=3221225472, mode=120 'x') at ../../src/read.c:1384 #74 0x00000000005adf53 in ReadFactor (follow=3221225472, mode=120 'x') at ../../src/read.c:1446 #75 0x00000000005ae149 in ReadTerm (follow=3221225472, mode=120 'x') at ../../src/read.c:1497 #76 0x00000000005ae26f in ReadAri (follow=3221225472, mode=120 'x') at ../../src/read.c:1530 #77 0x00000000005ae3a4 in ReadRel (follow=3221225472, mode=120 'x') at ../../src/read.c:1569 #78 0x00000000005ae546 in ReadAnd (follow=3221225472, mode=120 'x') at ../../src/read.c:1608 #79 0x00000000005ae647 in ReadExpr (follow=3221225472, mode=120 'x') at ../../src/read.c:1634 #80 0x00000000005b0141 in ReadEvalCommand (context=0x100000001c50) at ../../src/read.c:2261 #81 0x00000000005ccc40 in READ_GAP_ROOT (filename=0xcce9c0 "lib/init.g") at ../../src/streams.c:475 #82 0x0000000000518388 in InitializeGap (pargc=0x7fffffffdb8c, argv=0x7fffffffdc98) at ../../src/gap.c:3411 #83 0x000000000051071a in main (argc=2, argv=0x7fffffffdc98, environ=0x7fffffffdcb0) at ../../src/gap.c:793 From n.j.loughlin at newcastle.ac.uk Tue Aug 7 13:36:41 2012 From: n.j.loughlin at newcastle.ac.uk (Nicholas Loughlin) Date: Tue, 7 Aug 2012 12:36:41 +0000 Subject: [GAP Forum] GAP crashes when reading a syntax error In-Reply-To: <1826919725.313085.1344245793160.JavaMail.root@planck.maths.qmul.ac.uk> References: <1896279150.312973.1344245030381.JavaMail.root@planck.maths.qmul.ac.uk>, <1826919725.313085.1344245793160.JavaMail.root@planck.maths.qmul.ac.uk> Message-ID: Hi forum, I tested this on my macbook (versioning below) and couldn't replicate the bug. GAP4, Version: 4.4.12 of 17-Dec-2008, i686-apple-darwin9.6.0-gcc Also couldn't replicate on my linux box, which runs Ubuntu 10.04.4 LTS: GAP4, Version: 4.4.12 of 17-Dec-2008, i486-pc-linux-gnu-i486-linux-gnu-gcc The bug may be specific to later editions of ubuntu and/or GAP? Hope this is helpful, Nick Loughlin ________________________________________ From: forum-bounces at gap-system.org [forum-bounces at gap-system.org] on behalf of Matthew Fayers [m.fayers at qmul.ac.uk] Sent: 06 August 2012 10:36 To: forum Subject: [GAP Forum] GAP crashes when reading a syntax error Dear GAP forum, I'm running GAP 4.5.5 on Ubuntu 12.04. When I read a file into GAP with the following contents: f:=function() local k; for k in [1] do Print(k));od; end; GAP unexpectedly closes. (This happens on both my machines.) Of course, there is a syntax error in the third line, but it's surprising to me that this causes GAP to crash. Is this a problem with GAP, or have I got something set up badly? _____________________________________________________________________________________________ Matthew Fayers School of Mathematical Sciences Queen Mary, University of London Mile End Road London E1 4NS 020 7882 5479 _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From algebra.tau at gmail.com Wed Aug 8 08:53:36 2012 From: algebra.tau at gmail.com (TMU) Date: Wed, 8 Aug 2012 12:23:36 +0430 Subject: [GAP Forum] I need help for programming Message-ID: Dear programmers; My name is A.Nejati. I want to construct a Coset Graph A=Cos(T,H,HbH) in GAP such that T = , H = , a = (3 11 9 7 5)(4 12 10 8 6) , b = (1 12)(2 7)(3 10)(4 8)(5 11)(6 9). How done it is? Sincerely yours De nition: Let G be a group, H a subgroup of G, and S a subset of G. De fine the coset graph of G with respect to H and S to be the directed graph with vertex set [G : H] and such that, for any Hx Hy in V , Hx is connected to Hy if and only if yx-1 in HSH, and denote the di-graph by Cos(G;H;HSH). From max at quendi.de Fri Aug 10 15:49:22 2012 From: max at quendi.de (Max Horn) Date: Fri, 10 Aug 2012 16:49:22 +0200 Subject: [GAP Forum] GAP crashes when reading a syntax error In-Reply-To: References: <1896279150.312973.1344245030381.JavaMail.root@planck.maths.qmul.ac.uk>, <1826919725.313085.1344245793160.JavaMail.root@planck.maths.qmul.ac.uk> Message-ID: <3C290A1A-4C00-437C-9618-9D4AB128FB61@quendi.de> Dear Nick, the issue is specific to the GAP 4.5 series, and does not affect GAP 4.4.12. Max On 07.08.2012, at 14:36, Nicholas Loughlin wrote: > Hi forum, > > I tested this on my macbook (versioning below) and couldn't replicate the bug. > GAP4, Version: 4.4.12 of 17-Dec-2008, i686-apple-darwin9.6.0-gcc > > Also couldn't replicate on my linux box, which runs Ubuntu 10.04.4 LTS: > GAP4, Version: 4.4.12 of 17-Dec-2008, i486-pc-linux-gnu-i486-linux-gnu-gcc > > The bug may be specific to later editions of ubuntu and/or GAP? > > Hope this is helpful, > Nick Loughlin > ________________________________________ > From: forum-bounces at gap-system.org [forum-bounces at gap-system.org] on behalf of Matthew Fayers [m.fayers at qmul.ac.uk] > Sent: 06 August 2012 10:36 > To: forum > Subject: [GAP Forum] GAP crashes when reading a syntax error > > Dear GAP forum, > > I'm running GAP 4.5.5 on Ubuntu 12.04. When I read a file into GAP with the following contents: > > f:=function() > local k; > for k in [1] do Print(k));od; > end; > > GAP unexpectedly closes. (This happens on both my machines.) Of course, there is a syntax error in the third line, but it's surprising to me that this causes GAP to crash. Is this a problem with GAP, or have I got something set up badly? > > _____________________________________________________________________________________________ > Matthew Fayers > School of Mathematical Sciences > Queen Mary, University of London > Mile End Road > London E1 4NS > 020 7882 5479 > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From matan at svgalib.org Fri Aug 10 20:11:10 2012 From: matan at svgalib.org (Matan Ziv-Av) Date: Fri, 10 Aug 2012 22:11:10 +0300 (IDT) Subject: [GAP Forum] I need help for programming In-Reply-To: References: Message-ID: On Wed, 8 Aug 2012, TMU wrote: > Dear programmers; > My name is A.Nejati. I want to construct a Coset Graph A=Cos(T,H,HbH) in > GAP such that T = , H = , a = (3 11 9 7 5)(4 12 10 8 6) , b = (1 > 12)(2 7)(3 10)(4 8)(5 11)(6 9). How done it is? > Sincerely yours > > > > De nition: Let G be a group, H a subgroup of G, and S a subset of G. De > fine the coset graph of G with respect to H and S to be the directed graph > with vertex set [G : H] and such that, for any Hx Hy in V , > Hx is connected to Hy if and only if yx-1 in HSH, > and denote the di-graph by Cos(G;H;HSH). It is natural to translate such a definition to GRAPE: CosetsGraph:=function(G,H,S) local HSH; HSH:=Union(List(S,s->DoubleCoset(H,s,H)));; return Graph(G, RightCosets(G,H), OnRightSets, function(x,y) return Representative(y)*Representative(x)^-1 in HSH; end ); end; -- Matan Ziv-Av. matan at svgalib.org From mbg.nimda at gmail.com Tue Aug 14 17:12:21 2012 From: mbg.nimda at gmail.com (Mbg Nimda) Date: Tue, 14 Aug 2012 18:12:21 +0200 Subject: [GAP Forum] Quotient of an Algebra by its Radical Message-ID: Dear Membres, I have constructed an algebra A, starting by defining a set of matrices M,N, and P, with coefficients in the rationals. I used following commands: * * *A:=Algebra(Rationals, [M,N,P]);* *Dimension(A);inA,* 24 *R:=RadicalOfAlgebra(A);* *Q:=A/R;* *gQ:=GeneratorsOfAlgebra(Q);* [ v.1, v.2, v.3, v.4, v.5, v.6 ] I would like to know if it is possible to either express the generators as representatives or to construct some homomorphism of algebras from A:->Q. Thanks, Marc Bogaerts From r.e.boss at planet.nl Tue Aug 14 19:49:30 2012 From: r.e.boss at planet.nl (R.E. Boss) Date: Tue, 14 Aug 2012 20:49:30 +0200 Subject: [GAP Forum] how to recognise a group? Message-ID: <005101cd7a4d$8a058360$9e108a20$@planet.nl> Hello, I'm new to Gap and using it for a couple of days only and would like to have the next question answered. If I have a multiplication table of a (small) group, how can I determine which group it is? The actual table I have is for group of 48 elements. R.E. Boss From frank.luebeck at math.rwth-aachen.de Wed Aug 15 13:37:01 2012 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Wed, 15 Aug 2012 14:37:01 +0200 Subject: [GAP Forum] Working with large conjugacy class In-Reply-To: References: Message-ID: <20120815123701.GE17538@beteigeuze.math.rwth-aachen.de> On Fri, Aug 03, 2012 at 08:42:41AM +0200, Marek Mitros wrote: > I perform following code in GAP 4.5.5- see below. I see that single > matrix 133x133 over GF(4) use 8902 bytes of memory. The size of 2A > class is 1 539 000. So (1 539 000 * 8902)/2^20 = 13 065 MB. > > I start gap session with option -o 15000m (is it OK to allocate 15 GB > of memory ?). And I run command > c2s:= AsList(c2);; > > Is there hope to fit whole conjugacy class in memory ? Are there other > ways to loop through all large conjugacy class without storing it in > memory ? I could store it on the disk for example. Dear Marek Mitros, dear Forum, It was already discussed that listing the whole class is not very feasible in this case. But let me mention the "orb" package which could be of some help for such a task. It doesn't provide a simple push the button function to run through the class, but with some effort one could find a way to iterate over huge orbits while only storing a small proportion of the points explicitly at any given time. But I would not do this for your questions: > I would like to get answer on following questions and other similar. > Fix v0 in 2A conjugacy class. I call element x "perpendicular to v0" > if Order(x*v0)=2. How many elements there are perpendicular to v0 ? > What is the size of maximal commuting subset in 2A. What is the size > of abelian group generated by it ? What is the size of set {x: x*v0 > belongs to 2A} ? You can answer part of this just using the character table of "HN", using the command 'ClassMultiplicationCoefficient' (and adjusting numbers using the lengths of the conjugacy classes), the documentation of the function contains an interpretation of these numbers: # instead of working with the group hn:=AtlasGroup("HN", Dimension, 133); # use its character table hntab := CharacterTable("HN"); # class 2a corresponds to column 2 of the table 2apos := Position(ClassNames(hntab), "2a"); # there are two classes of involutions corresp to cols 2 and 3 2poss := Positions(OrdersClassRepresentatives(hntab), 2); cllens := SizesConjugacyClasses(hntab);; # elements perpendicular to v0, class wise perp2a := List([1..NrConjugacyClasses(hntab)], i-> List(2poss, k-> ClassMultiplicationCoefficient(hntab, i, 2apos, k) * cllens[k])) / cllens[2apos]; # total number nrperp2a := Sum(perp2a, Sum); Similarly, you can answer your last question. For the "maximal commuting subset in 2A" I have no immediate answer, but I think it should be possible to get at least a sensible upper bound using the character table. And if you need to do some explicit computations with elements you can at least reduce your question to a much smaller set of elements: The centralizer of an element in 2A is of type 2.HS.2. Then ctab := CharacterTable("2.HS.2"); FusionConjugacyClasses(ctab,hntab); shows that the central involution and the second class of the subgroup contain elements in 2A of HN. So, you only need to consider 1+5775 elements in 2.HS.2 to find a maximal commuting set you are looking for. With best regards, Frank L?beck -- /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck at Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From max at quendi.de Wed Aug 15 17:10:33 2012 From: max at quendi.de (Max Horn) Date: Wed, 15 Aug 2012 18:10:33 +0200 Subject: [GAP Forum] Quotient of an Algebra by its Radical In-Reply-To: References: Message-ID: <3948E3E3-C46F-46A7-B5DD-2957D2D72659@quendi.de> Dear Marc, On 14.08.2012, at 18:12, Mbg Nimda wrote: > Dear Membres, > > I have constructed an algebra A, starting by defining a set of matrices > M,N, and P, with coefficients in the rationals. I used following commands: > * > * > *A:=Algebra(Rationals, [M,N,P]);* > > *Dimension(A);inA,* > 24 > *R:=RadicalOfAlgebra(A);* > > *Q:=A/R;* > > *gQ:=GeneratorsOfAlgebra(Q);* > [ v.1, v.2, v.3, v.4, v.5, v.6 ] > > I would like to know if it is possible to either express the generators as > representatives or to construct some homomorphism of algebras from A:->Q. Please try the following code: gap> m:= [ [ 0, 1, 2 ], [ 0, 0, 3 ], [ 0, 0, 0 ] ];; gap> A:= AlgebraWithOneByGenerators( Rationals, [ m ] ); gap> Dimension(A); 3 gap> R:=RadicalOfAlgebra(A); gap> Dimension(R); 2 gap> hom:=NaturalHomomorphismByIdeal(A,R);; # Now we can compute Q as image of hom, and also lift elements from Q back to A. gap> Q:=Image(hom); gap> gQ:=GeneratorsOfAlgebra(Q); [ v.1 ] gap> PreImagesRepresentative(hom, gQ[1]); [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] Hope that helps, Max > > Thanks, > > Marc Bogaerts > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From devout1977 at gmail.com Thu Aug 16 07:03:40 2012 From: devout1977 at gmail.com (Jon) Date: Thu, 16 Aug 2012 01:03:40 -0500 Subject: [GAP Forum] can I get a matrix representation for a specific irreducible representation with GAP? Message-ID: Dear All, I need to get matrix representation to any irreducible representation for a permutation group of specific length. I wonder whether and how I can obtain this information with GAP. I see there are detailed documents on how to use GAP, but I am not strong with group theory, thus, the document reading poses a serious trouble for me. Thus, I wonder whether you can just give me a quick answer for my this question. Thank you very much, Sincerely, Jon From rm43 at evansville.edu Thu Aug 16 13:51:11 2012 From: rm43 at evansville.edu (Robert Morse) Date: Thu, 16 Aug 2012 07:51:11 -0500 Subject: [GAP Forum] how to recognise a group? In-Reply-To: <005101cd7a4d$8a058360$9e108a20$@planet.nl> References: <005101cd7a4d$8a058360$9e108a20$@planet.nl> Message-ID: In my example the table M is the cyclic group. Given the multiplication table say M do the following: Form the group using the multiplication table: gap> G := GroupByMultiplicationTable(M); Ask for some structural information to get an idea what the group is: gap> StructureDescription(G); "C48" Robert F. Morse On Tue, Aug 14, 2012 at 1:49 PM, R.E. Boss wrote: > Hello, > > > > I'm new to Gap and using it for a couple of days only and would like to have the next question answered. > > If I have a multiplication table of a (small) group, how can I determine which group it is? > > The actual table I have is for group of 48 elements. > > > > R.E. Boss > > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From jdm3 at st-and.ac.uk Thu Aug 16 15:39:20 2012 From: jdm3 at st-and.ac.uk (James Mitchell) Date: Thu, 16 Aug 2012 15:39:20 +0100 Subject: [GAP Forum] Codes for Unit Regular Semigroup In-Reply-To: References: Message-ID: Dear Shubh, In GAP 4.4.12 (and in GAP 4.5) there is currently no function to check that a monoid is unit regular. It is not surprising that the IsUnitRegularSemigroup does not work, as this was not the name of a function in GAP when you wrote your email. I have added a function called IsUnitRegularSemigroup to the development version of the Citrus package for GAP 4.5, and this will be available in the next release of Citrus. Regards, James On 17 May 2012 06:30, shubh at iitg.ernet.in wrote: > > Dear Sir, > > I have been using GAP4, Version: 4.4.12. Please tell me, If there is any > code for Unit Regular Semigroup in GAP. That means, can we give a code in > GAP to tell whether a semigroup is Unit Regular or not. > > I tried with the code: > >> IsUnitRegularSemigroup(s); which is not working. > > I would be very grateful if you could help me with this query. > > > With Regards, > \-Shubh > > > -- > Shubh N. Singh > Research Scholar > Department of Mathematics > IIT Guwahati - 781039 > Email: shubh at iitg.ernet.in > Mob. no.: +91-9864221370 > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum -- James Mitchell tinyurl.com/jdmitchell The University of St Andrews is a charity registered in Scotland : No SC013532 From marek at mitros.org Fri Aug 17 08:54:28 2012 From: marek at mitros.org (Marek Mitros) Date: Fri, 17 Aug 2012 09:54:28 +0200 Subject: [GAP Forum] Group with complex matrices Message-ID: Hi, I have diagonal matrix f1 with vector [1, E(5), E(5)^2, etc,... on the diagonal. The order of the matrix is 5. When I perform Size(Group(f1)) it hangs for a minute or so before it gives the answer 5. Why it takes so long ? For human being it is obvious, that group generated by one element of order 5 will be of size 5 and it is abelian. Can you explain what calculation GAP does when determining size of the matrix group ? I observed that matrices over finite fields are processed quicker than complex matrices. Regards, Marek From r.e.boss at planet.nl Fri Aug 17 14:56:47 2012 From: r.e.boss at planet.nl (R.E. Boss) Date: Fri, 17 Aug 2012 15:56:47 +0200 Subject: [GAP Forum] how to recognise a group? In-Reply-To: References: <005101cd7a4d$8a058360$9e108a20$@planet.nl> Message-ID: <001c01cd7c80$24b4a8d0$6e1dfa70$@planet.nl> Thanks for the reply. Problem becomes: how do I enter a multiplication table of 2304 = 48^2 elements into GAP? Is there some read facility? Preparing a list of 48 lists of 48 elements is not the problem, entering by hand is quite another story. R.E. Boss > -----Oorspronkelijk bericht----- > Van: rfmorse at gmail.com [mailto:rfmorse at gmail.com] Namens Robert Morse > Verzonden: donderdag 16 augustus 2012 14:51 > Aan: R.E. Boss > CC: forum at gap-system.org > Onderwerp: Re: [GAP Forum] how to recognise a group? > > In my example the table M is the cyclic group. > > Given the multiplication table say M do the following: > > Form the group using the multiplication table: > > gap> G := GroupByMultiplicationTable(M); > > > Ask for some structural information to get an idea what the group is: > > gap> StructureDescription(G); > "C48" > > Robert F. Morse > > On Tue, Aug 14, 2012 at 1:49 PM, R.E. Boss wrote: > > Hello, > > > > > > > > I'm new to Gap and using it for a couple of days only and would like to have the next question answered. > > > > If I have a multiplication table of a (small) group, how can I determine which group it is? > > > > The actual table I have is for group of 48 elements. > > > > > > > > R.E. Boss > > > > > > > > > > > > _______________________________________________ > > Forum mailing list > > Forum at mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum From hulpke at me.com Fri Aug 17 15:08:38 2012 From: hulpke at me.com (Alexander Hulpke) Date: Fri, 17 Aug 2012 08:08:38 -0600 Subject: [GAP Forum] how to recognise a group? In-Reply-To: <001c01cd7c80$24b4a8d0$6e1dfa70$@planet.nl> References: <005101cd7a4d$8a058360$9e108a20$@planet.nl> <001c01cd7c80$24b4a8d0$6e1dfa70$@planet.nl> Message-ID: Dear Forum, > Problem becomes: how do I enter a multiplication table of 2304 = 48^2 elements into GAP? > Is there some read facility? How about `Read': Create a text file mymatrix:=[[....]]; with an assignment to the multiplication table and read it in with `Read'. (See the manual for more details). Best, Alexander Hulpke From rm43 at evansville.edu Fri Aug 17 15:38:05 2012 From: rm43 at evansville.edu (Robert Morse) Date: Fri, 17 Aug 2012 09:38:05 -0500 Subject: [GAP Forum] how to recognise a group? In-Reply-To: <001c01cd7c80$24b4a8d0$6e1dfa70$@planet.nl> References: <005101cd7a4d$8a058360$9e108a20$@planet.nl> <001c01cd7c80$24b4a8d0$6e1dfa70$@planet.nl> Message-ID: You can create a file with GAP commands and read them into GAP with the Read command. If you put M := [ [ 1, 2, 3, 4, 5 ], [ 2, 3, 4, 5, 1 ], [ 3, 4, 5, 1, 2 ], [ 4, 5, 1, 2, 3 ], [ 5, 1, 2, 3, 4 ] ]; in a file "table.g" and at the GAP command prompt gap> Read("table.g"); gap> M; [ [ 1, 2, 3, 4, 5 ], [ 2, 3, 4, 5, 1 ], [ 3, 4, 5, 1, 2 ], [ 4, 5, 1, 2, 3 ], [ 5, 1, 2, 3, 4 ] ] you see the variable is assigned as needed. I am assuming that you are generating the tables using some program. If so make sure it is formatted as a list of lists that GAP can use. Also look at http://www.gap-system.org/Manuals/doc/ref/chap9.html#X8373AC6B7D5F9167 for more information on the GAP read command. Robert On Fri, Aug 17, 2012 at 8:56 AM, R.E. Boss wrote: > Thanks for the reply. > Problem becomes: how do I enter a multiplication table of 2304 = 48^2 elements into GAP? > Is there some read facility? > Preparing a list of 48 lists of 48 elements is not the problem, entering by hand is quite another story. > > > R.E. Boss > > >> -----Oorspronkelijk bericht----- >> Van: rfmorse at gmail.com [mailto:rfmorse at gmail.com] Namens Robert Morse >> Verzonden: donderdag 16 augustus 2012 14:51 >> Aan: R.E. Boss >> CC: forum at gap-system.org >> Onderwerp: Re: [GAP Forum] how to recognise a group? >> >> In my example the table M is the cyclic group. >> >> Given the multiplication table say M do the following: >> >> Form the group using the multiplication table: >> >> gap> G := GroupByMultiplicationTable(M); >> >> >> Ask for some structural information to get an idea what the group is: >> >> gap> StructureDescription(G); >> "C48" >> >> Robert F. Morse >> >> On Tue, Aug 14, 2012 at 1:49 PM, R.E. Boss wrote: >> > Hello, >> > >> > >> > >> > I'm new to Gap and using it for a couple of days only and would like to have the next question answered. >> > >> > If I have a multiplication table of a (small) group, how can I determine which group it is? >> > >> > The actual table I have is for group of 48 elements. >> > >> > >> > >> > R.E. Boss >> > >> > >> > >> > >> > >> > _______________________________________________ >> > Forum mailing list >> > Forum at mail.gap-system.org >> > http://mail.gap-system.org/mailman/listinfo/forum > From r.e.boss at planet.nl Fri Aug 17 17:48:56 2012 From: r.e.boss at planet.nl (R.E. Boss) Date: Fri, 17 Aug 2012 18:48:56 +0200 Subject: [GAP Forum] how to recognise a group? In-Reply-To: References: <005101cd7a4d$8a058360$9e108a20$@planet.nl> <001c01cd7c80$24b4a8d0$6e1dfa70$@planet.nl> Message-ID: <002501cd7c98$315268d0$93f73a70$@planet.nl> Thanks all for your help. It took some time to fiddle out the directories, but now GAP is crunching on the multiplication table. R.E. Boss > -----Oorspronkelijk bericht----- > Van: rfmorse at gmail.com [mailto:rfmorse at gmail.com] Namens Robert Morse > Verzonden: vrijdag 17 augustus 2012 16:38 > Aan: R.E. Boss > CC: forum at gap-system.org > Onderwerp: Re: [GAP Forum] how to recognise a group? > > You can create a file with GAP commands and read them into GAP with > the Read command. > > If you put > > M := [ [ 1, 2, 3, 4, 5 ], [ 2, 3, 4, 5, 1 ], [ 3, 4, 5, 1, 2 ], [ 4, > 5, 1, 2, 3 ], [ 5, 1, 2, 3, 4 ] ]; > > in a file "table.g" and at the GAP command prompt > > gap> Read("table.g"); > gap> M; > [ [ 1, 2, 3, 4, 5 ], [ 2, 3, 4, 5, 1 ], [ 3, 4, 5, 1, 2 ], [ 4, 5, 1, > 2, 3 ], [ 5, 1, 2, 3, 4 ] ] > > you see the variable is assigned as needed. > > I am assuming that you are generating the tables using some program. > If so make sure it is formatted as a list of lists that GAP can use. > > Also look at > > http://www.gap-system.org/Manuals/doc/ref/chap9.html#X8373AC6B7D5F9167 > > for more information on the GAP read command. > > Robert > > On Fri, Aug 17, 2012 at 8:56 AM, R.E. Boss wrote: > > Thanks for the reply. > > Problem becomes: how do I enter a multiplication table of 2304 = 48^2 elements into GAP? > > Is there some read facility? > > Preparing a list of 48 lists of 48 elements is not the problem, entering by hand is quite another story. > > > > > > R.E. Boss > > > > > >> -----Oorspronkelijk bericht----- > >> Van: rfmorse at gmail.com [mailto:rfmorse at gmail.com] Namens Robert Morse > >> Verzonden: donderdag 16 augustus 2012 14:51 > >> Aan: R.E. Boss > >> CC: forum at gap-system.org > >> Onderwerp: Re: [GAP Forum] how to recognise a group? > >> > >> In my example the table M is the cyclic group. > >> > >> Given the multiplication table say M do the following: > >> > >> Form the group using the multiplication table: > >> > >> gap> G := GroupByMultiplicationTable(M); > >> > >> > >> Ask for some structural information to get an idea what the group is: > >> > >> gap> StructureDescription(G); > >> "C48" > >> > >> Robert F. Morse > >> > >> On Tue, Aug 14, 2012 at 1:49 PM, R.E. Boss wrote: > >> > Hello, > >> > > >> > > >> > > >> > I'm new to Gap and using it for a couple of days only and would like to have the next question answered. > >> > > >> > If I have a multiplication table of a (small) group, how can I determine which group it is? > >> > > >> > The actual table I have is for group of 48 elements. > >> > > >> > > >> > > >> > R.E. Boss > >> > > >> > > >> > > >> > > >> > > >> > _______________________________________________ > >> > Forum mailing list > >> > Forum at mail.gap-system.org > >> > http://mail.gap-system.org/mailman/listinfo/forum > > From hulpke at math.colostate.edu Fri Aug 17 19:03:02 2012 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri, 17 Aug 2012 12:03:02 -0600 Subject: [GAP Forum] Group with complex matrices In-Reply-To: References: Message-ID: Dear Forum, Dear Marek Mitros, On Aug 17, 2012, at 8/17/12 1:54, Marek Mitros wrote: > Hi, > > I have diagonal matrix f1 with vector [1, E(5), E(5)^2, etc,... on the > diagonal. The order of the matrix is 5. When I perform Size(Group(f1)) > it hangs for a minute or so before it gives the answer 5. Why it takes > so long ? For human being it is obvious, that group generated by one > element of order 5 will be of size 5 and it is abelian. I am a bit surprised that it takes several minutes (I tried it with a 5x5 matrix on my machine and the result came back in a few seconds), but in any case there are a couple of steps happening which are due to the fact that these are general purpose algorithms: - GAP expands the generators to rational matrices dimension 4n by forming Galois conjugates. This enables the further algorithms to only work to assume that entries are rational - GAP then tests that the group is finite. This is done using the Minkowski kernel (the kernel when reducing the entries modulo a prime. - GAP determines a faithful permutation representation by acting on vectors such that a vector space basis is included. In your situation this likely leads to redundancy. - Finally a stabilizer chain is computed to determine the group order. > Can you explain what calculation GAP does when determining size of the > matrix group ? > I observed that matrices over finite fields are processed quicker than > complex matrices. Yes. It can skip the dimension blowup and the finiteness test. If you have a choice, working with matrices over a finite field will in generally be much better than working over a field in characteristic zero, even more if this would be an extension. Best, Alexander Hulpke From devout1977 at gmail.com Fri Aug 17 22:50:27 2012 From: devout1977 at gmail.com (Jon) Date: Fri, 17 Aug 2012 16:50:27 -0500 Subject: [GAP Forum] first example towards GAP, need some explanation Message-ID: Dear All, The first example I tried on GAP is about the symmetric group of 4 elements(?). I tried to get its irreducible matrix representation. The outcome I got from GAP is gap> List(g,g->g^reps[3]); [ [ [ 1, 0 ], [ 0, 1 ] ], [ [ 0, E(3) ], [ E(3)^2, 0 ] ], [ [ E(3)^2, 0 ], [ 0, E(3) ] ], [ [ E(3), 0 ], [ 0, E(3)^2 ] ], [ [ 0, E(3)^2 ], [ E(3), 0 ] ], [ [ E(3), 0 ], [ 0, E(3)^2 ] ], [ [ 0, 1 ], [ 1, 0 ] ], [ [ 0, E(3) ], [ E(3)^2, 0 ] ], [ [ E(3)^2, 0 ], [ 0, E(3) ] ], [ [ 0, 1 ], [ 1, 0 ] ], [ [ E(3), 0 ], [ 0, E(3)^2 ] ], [ [ 1, 0 ], [ 0, 1 ] ], [ [ 0, 1 ], [ 1, 0 ] ], [ [ E(3)^2, 0 ], [ 0, E(3) ] ], [ [ 0, E(3) ], [ E(3)^2, 0 ] ], [ [ 0, E(3)^2 ], [ E(3), 0 ] ], [ [ E(3), 0 ], [ 0, E(3)^2 ] ], [ [ 0, E(3)^2 ], [ E(3), 0 ] ], [ [ 1, 0 ], [ 0, 1 ] ], [ [ E(3)^2, 0 ], [ 0, E(3) ] ], [ [ 0, E(3) ], [ E(3)^2, 0 ] ], [ [ 1, 0 ], [ 0, 1 ] ], [ [ 0, E(3)^2 ], [ E(3), 0 ] ], [ [ 0, 1 ], [ 1, 0 ] ] ] My question is: (1) How do I know which matrix corresponds to which group element? (2) What does E(3) mean? (3) There can be different representations which has all matrix elements real, how can I find a similarity transformation which can do this? (4) Can the output be set in a way that these 24 matrices can be read in directly by say Fortran? Thank you very much, Sincerely, Jon From dima at ntu.edu.sg Sat Aug 18 04:09:17 2012 From: dima at ntu.edu.sg (Dima Pasechnik) Date: Sat, 18 Aug 2012 11:09:17 +0800 Subject: [GAP Forum] first example towards GAP, need some explanation In-Reply-To: References: Message-ID: <20120818030917.GB85296@nash.ntu.edu.sg> Dear Jon, > The first example I tried on GAP is about the symmetric group of 4 > elements(?). I tried to get its irreducible matrix representation. The > outcome I got from GAP is > > gap> List(g,g->g^reps[3]); > [ [ [ 1, 0 ], [ 0, 1 ] ], [ [ 0, E(3) ], [ E(3)^2, 0 ] ], [ [ E(3)^2, 0 ], > .... > > My question is: > > (1) How do I know which matrix corresponds to which group element? It's a bit hard to see what you're doing. How did you get all the irreducible representations? Your List(g,g->g^reps[3]); probably means List(g,x->x^reps[3]); In this case you can simply do List(g,x->[x,x^reps[3]]); to get the pairs [group element, its representation]. > (2) What does E(3) mean? Try doing gap> ?E (well, this is to point out the convenient GAP help facility :-)) E(3) is an algebraic number. But in fact, if you group is indeed a symmetric group, it's a bit sub-optimal to work with algebraic numbers, as all the complex irreducible matrix representations of symmetric groups can be written using only rational numbers. As well, please note that the symmetric group of 4 points does not have a faithful irreducible representation of dimension 2. So you have probably constructed a representation with the kernel of order 4. > (3) There can be different representations which has all matrix elements > real, how can I find a similarity transformation which can do this? This is, in principle, easy linear algebra, but I don't know of a specific GAP command for this purpose. (By the way, if two representations are related by a similarity that aren't even considered "different"). > (4) Can the output be set in a way that these 24 matrices can be read in > directly by say Fortran? Hmm, do you want to call Fortran from GAP directly? This can be done. If you just want to write out a text file which can be then read in by another program, PrintTo and AppendTo are GAP commands you can do this. (You'd need to write a loop, I suppose). Best, Dmitrii CONFIDENTIALITY:This email is intended solely for the person(s) named and may be confidential and/or privileged.If you are not the intended recipient,please delete it,notify us and do not copy,use,or disclose its content. Towards A Sustainable Earth:Print Only When Necessary.Thank you. From devout1977 at gmail.com Sat Aug 18 19:13:06 2012 From: devout1977 at gmail.com (Jon) Date: Sat, 18 Aug 2012 14:13:06 -0400 Subject: [GAP Forum] first example towards GAP, need some explanation In-Reply-To: <20120818030917.GB85296@nash.ntu.edu.sg> References: <20120818030917.GB85296@nash.ntu.edu.sg> Message-ID: Dear Dima, Thanks for your detailed explanation. However, algebraic number is a new concept to me. I googled a bit and know the basic idea about it, but still cannot follow the notation of E(3). I used ?E, but it gives a lot series of entries, and I don't know how to check a specific one to look into. I thus wonder whether you could explain a bit more about it, or just give me the mathematical expression for it. By the way, in physics, S(4) is isomorphic to Td point group. In Td, it is known that there exists a 2D vector which can be used to generate all the irreducible matrices to be used (matrix elements only involving real numbers), I thus wonder whether the matrix representation given by GAP is of this type or not, if not, how can I possibly find a similarity transformation to go from GAP result to another form (say results used in physics). I understand that two representations related with a similarity transformation cannot be said to be distinct representation, but I hope you know what I mean here. Thanks again, Sincerely, Jon On Fri, Aug 17, 2012 at 11:09 PM, Dima Pasechnik wrote: > Dear Jon, > > > The first example I tried on GAP is about the symmetric group of 4 > > elements(?). I tried to get its irreducible matrix representation. The > > outcome I got from GAP is > > > > gap> List(g,g->g^reps[3]); > > [ [ [ 1, 0 ], [ 0, 1 ] ], [ [ 0, E(3) ], [ E(3)^2, 0 ] ], [ [ E(3)^2, 0 > ], > > .... > > > > My question is: > > > > (1) How do I know which matrix corresponds to which group element? > > It's a bit hard to see what you're doing. How did you get all the > irreducible representations? > Your List(g,g->g^reps[3]); probably means List(g,x->x^reps[3]); > In this case you can simply do > List(g,x->[x,x^reps[3]]); > to get the pairs [group element, its representation]. > > > (2) What does E(3) mean? > Try doing > gap> ?E > (well, this is to point out the convenient GAP help facility :-)) > > E(3) is an algebraic number. > But in fact, if you group is indeed a symmetric group, it's a bit > sub-optimal to work with algebraic numbers, as all the complex > irreducible matrix representations of symmetric groups can be > written using only rational numbers. > As well, please note that the symmetric group of 4 points does not > have a faithful irreducible representation of dimension 2. > So you have probably constructed a representation with the kernel > of order 4. > > > (3) There can be different representations which has all matrix elements > > real, how can I find a similarity transformation which can do this? > > This is, in principle, easy linear algebra, but I don't know of a specific > GAP command for this purpose. (By the way, if two representations are > related by a similarity that aren't even considered "different"). > > > (4) Can the output be set in a way that these 24 matrices can be read in > > directly by say Fortran? > Hmm, do you want to call Fortran from GAP directly? This can be done. > If you just want to write out a text file which can be then read in > by another program, PrintTo and AppendTo are GAP commands you can do > this. (You'd need to write a loop, I suppose). > > Best, > Dmitrii > > CONFIDENTIALITY:This email is intended solely for the person(s) named and > may be confidential and/or privileged.If you are not the intended > recipient,please delete it,notify us and do not copy,use,or disclose its > content. > > Towards A Sustainable Earth:Print Only When Necessary.Thank you. > From dima at ntu.edu.sg Sun Aug 19 04:37:32 2012 From: dima at ntu.edu.sg (Dima Pasechnik) Date: Sun, 19 Aug 2012 11:37:32 +0800 Subject: [GAP Forum] first example towards GAP, need some explanation In-Reply-To: References: <20120818030917.GB85296@nash.ntu.edu.sg> Message-ID: <20120819033732.GA88853@nash.ntu.edu.sg> On Sun, Aug 19, 2012 at 02:13:06AM +0800, Jon wrote: > Thanks for your detailed explanation. However, algebraic number is a new concept to me. I googled a bit and know the basic idea about it, but still cannot follow the notation of E(3). I used ?E, but it gives a lot series of entries, and I don't know how to check a specific one to look into. I thus wonder whether you could explain a bit more about it, or just give me the mathematical expression for it. OK, so you do gap> ?E and you get a list like [1] .... [2] ... ... If it doesn't fit on one screen, there will be a message at the bottom, saying "hit q to quit, space for next page", etc So, hit q, this gives you GAP prompt back. Now, do gap> ?1 to list the entry number 1 (or ?2 to list entry number 2, etc) By the way, if you're more confortable using a web browser, you can read GAP manual online: http://www.gap-system.org/Manuals/doc/ref/chap0.html#contents It has index, too: http://www.gap-system.org/Manuals/doc/ref/chapInd.html which would lead you to the explanation on E quite easily: http://www.gap-system.org/Manuals/doc/ref/chap18.html#X8631458886314588 E(n), specifically, is a primitiive nth root of unity, i.e. exp(2\pi i/n). Hope this helps, Dmitrii > > By the way, in physics, S(4) is isomorphic to Td point group. In Td, it is known that there exists a 2D vector which can be used to generate all the irreducible matrices to be used (matrix elements only involving real numbers), I thus wonder whether the matrix representation given by GAP is of this type or not, if not, how can I possibly find a similarity transformation to go from GAP result to another form (say results used in physics). I understand that two representations related with a similarity transformation cannot be said to be distinct representation, but I hope you know what I mean here. > > Thanks again, > > Sincerely, > Jon > > > On Fri, Aug 17, 2012 at 11:09 PM, Dima Pasechnik > wrote: > Dear Jon, > > > The first example I tried on GAP is about the symmetric group of 4 > > elements(?). I tried to get its irreducible matrix representation. The > > outcome I got from GAP is > > > > gap> List(g,g->g^reps[3]); > > [ [ [ 1, 0 ], [ 0, 1 ] ], [ [ 0, E(3) ], [ E(3)^2, 0 ] ], [ [ E(3)^2, 0 ], > > .... > > > > My question is: > > > > (1) How do I know which matrix corresponds to which group element? > > It's a bit hard to see what you're doing. How did you get all the > irreducible representations? > Your List(g,g->g^reps[3]); probably means List(g,x->x^reps[3]); > In this case you can simply do > List(g,x->[x,x^reps[3]]); > to get the pairs [group element, its representation]. > > > (2) What does E(3) mean? > Try doing > gap> ?E > (well, this is to point out the convenient GAP help facility :-)) > > E(3) is an algebraic number. > But in fact, if you group is indeed a symmetric group, it's a bit > sub-optimal to work with algebraic numbers, as all the complex > irreducible matrix representations of symmetric groups can be > written using only rational numbers. > As well, please note that the symmetric group of 4 points does not > have a faithful irreducible representation of dimension 2. > So you have probably constructed a representation with the kernel > of order 4. > > > (3) There can be different representations which has all matrix elements > > real, how can I find a similarity transformation which can do this? > > This is, in principle, easy linear algebra, but I don't know of a specific > GAP command for this purpose. (By the way, if two representations are > related by a similarity that aren't even considered "different"). > > > (4) Can the output be set in a way that these 24 matrices can be read in > > directly by say Fortran? > Hmm, do you want to call Fortran from GAP directly? This can be done. > If you just want to write out a text file which can be then read in > by another program, PrintTo and AppendTo are GAP commands you can do > this. (You'd need to write a loop, I suppose). > > Best, > Dmitrii > > CONFIDENTIALITY:This email is intended solely for the person(s) named and may be confidential and/or privileged.If you are not the intended recipient,please delete it,notify us and do not copy,use,or disclose its content. > > Towards A Sustainable Earth:Print Only When Necessary.Thank you. > From devout1977 at gmail.com Sun Aug 19 07:54:30 2012 From: devout1977 at gmail.com (Jon) Date: Sun, 19 Aug 2012 01:54:30 -0500 Subject: [GAP Forum] first example towards GAP, need some explanation In-Reply-To: <20120819033732.GA88853@nash.ntu.edu.sg> References: <20120818030917.GB85296@nash.ntu.edu.sg> <20120819033732.GA88853@nash.ntu.edu.sg> Message-ID: Dear Dima, Thank you for the explanation on E. I should have guessed it to be the case. Now with your confirmation, it is quite reassuring to me. I know of a 2D irreducible representation to be real for S(4), but the 2D irreducible representation returned by GAP is complex. I am wondering whether there exists a unique transformation to bring all the complex matrices pertinent to GAP to real matrices. Or, alternatively, for two representations to be equivalent, should the two sets of matrices be related to each other by a single unitrary transformation? Sincerely, Jon On Sat, Aug 18, 2012 at 10:37 PM, Dima Pasechnik wrote: > On Sun, Aug 19, 2012 at 02:13:06AM +0800, Jon wrote: > > Thanks for your detailed explanation. However, algebraic number is a new > concept to me. I googled a bit and know the basic idea about it, but still > cannot follow the notation of E(3). I used ?E, but it gives a lot series of > entries, and I don't know how to check a specific one to look into. I thus > wonder whether you could explain a bit more about it, or just give me the > mathematical expression for it. > > OK, so you do > gap> ?E > and you get a list like > [1] .... > [2] ... > ... > If it doesn't fit on one screen, there will be a message at the bottom, > saying "hit q to quit, space for next page", etc > So, hit q, this gives you GAP prompt back. > Now, do > gap> ?1 > to list the entry number 1 (or ?2 to list entry number 2, etc) > > By the way, if you're more confortable using a web browser, you can > read GAP manual online: > http://www.gap-system.org/Manuals/doc/ref/chap0.html#contents > It has index, too: > http://www.gap-system.org/Manuals/doc/ref/chapInd.html > which would lead you to the explanation on E quite easily: > http://www.gap-system.org/Manuals/doc/ref/chap18.html#X8631458886314588 > > E(n), specifically, is a primitiive nth root of unity, i.e. > exp(2\pi i/n). > > Hope this helps, > Dmitrii > > > > > > > By the way, in physics, S(4) is isomorphic to Td point group. In Td, it > is known that there exists a 2D vector which can be used to generate all > the irreducible matrices to be used (matrix elements only involving real > numbers), I thus wonder whether the matrix representation given by GAP is > of this type or not, if not, how can I possibly find a similarity > transformation to go from GAP result to another form (say results used in > physics). I understand that two representations related with a similarity > transformation cannot be said to be distinct representation, but I hope you > know what I mean here. > > > > Thanks again, > > > > Sincerely, > > Jon > > > > > > On Fri, Aug 17, 2012 at 11:09 PM, Dima Pasechnik > wrote: > > Dear Jon, > > > > > The first example I tried on GAP is about the symmetric group of 4 > > > elements(?). I tried to get its irreducible matrix representation. The > > > outcome I got from GAP is > > > > > > gap> List(g,g->g^reps[3]); > > > [ [ [ 1, 0 ], [ 0, 1 ] ], [ [ 0, E(3) ], [ E(3)^2, 0 ] ], [ [ E(3)^2, > 0 ], > > > .... > > > > > > My question is: > > > > > > (1) How do I know which matrix corresponds to which group element? > > > > It's a bit hard to see what you're doing. How did you get all the > > irreducible representations? > > Your List(g,g->g^reps[3]); probably means List(g,x->x^reps[3]); > > In this case you can simply do > > List(g,x->[x,x^reps[3]]); > > to get the pairs [group element, its representation]. > > > > > (2) What does E(3) mean? > > Try doing > > gap> ?E > > (well, this is to point out the convenient GAP help facility :-)) > > > > E(3) is an algebraic number. > > But in fact, if you group is indeed a symmetric group, it's a bit > > sub-optimal to work with algebraic numbers, as all the complex > > irreducible matrix representations of symmetric groups can be > > written using only rational numbers. > > As well, please note that the symmetric group of 4 points does not > > have a faithful irreducible representation of dimension 2. > > So you have probably constructed a representation with the kernel > > of order 4. > > > > > (3) There can be different representations which has all matrix > elements > > > real, how can I find a similarity transformation which can do this? > > > > This is, in principle, easy linear algebra, but I don't know of a > specific > > GAP command for this purpose. (By the way, if two representations are > > related by a similarity that aren't even considered "different"). > > > > > (4) Can the output be set in a way that these 24 matrices can be read > in > > > directly by say Fortran? > > Hmm, do you want to call Fortran from GAP directly? This can be done. > > If you just want to write out a text file which can be then read in > > by another program, PrintTo and AppendTo are GAP commands you can do > > this. (You'd need to write a loop, I suppose). > > > > Best, > > Dmitrii > > > > CONFIDENTIALITY:This email is intended solely for the person(s) named > and may be confidential and/or privileged.If you are not the intended > recipient,please delete it,notify us and do not copy,use,or disclose its > content. > > > > Towards A Sustainable Earth:Print Only When Necessary.Thank you. > > > From dima at ntu.edu.sg Sun Aug 19 08:41:40 2012 From: dima at ntu.edu.sg (Dima Pasechnik) Date: Sun, 19 Aug 2012 15:41:40 +0800 Subject: [GAP Forum] first example towards GAP, need some explanation In-Reply-To: References: <20120818030917.GB85296@nash.ntu.edu.sg> <20120819033732.GA88853@nash.ntu.edu.sg> Message-ID: <20120819074140.GA90046@nash.ntu.edu.sg> On Sun, Aug 19, 2012 at 02:54:30PM +0800, Jon wrote: > I know of a 2D irreducible representation to be real for S(4), but the > 2D irreducible representation returned by GAP is complex. I am > wondering whether there exists a unique transformation to bring all > the complex matrices pertinent to GAP to real matrices. Or, > alternatively, for two representations to be equivalent, should the > two sets of matrices be related to each other by a single unitrary > transformation? there is a unique (up to scalar) Hermitean positive definite form preserved by the representation rho, obtained as sum_g rho(g)rho(g)*. One can find then find a transformation which will make rho unitary. Making rho real (one can actually do even better, making them rational!) is harder. IMHO it is easier to construct the rational representations directly rather than trying to tranform the output of IrreducibleRepresentations() into a suitable form. It fact, it's relatively well-known how to do this. (it's somehow still outside the "mainstream" representation theory of finite groups, so even after a graduate course on the subject people are not likely to know this.) Young, after whom e.g. Young diagrams are named, already gave explict formulae for the images of the transpositions (i,i+1) for i=1,...,n-1 in each irreducible representation rho in his works. A modern explanation can be found in recent texts, e.g. by Vershik and Okounkouv. http://www.mat.univie.ac.at/~esiprpr/esi333.pdf Programming these carefully in GAP would be a good coursework project for an undegraduate. HTH, Dmitrii CONFIDENTIALITY:This email is intended solely for the person(s) named and may be confidential and/or privileged.If you are not the intended recipient,please delete it,notify us and do not copy,use,or disclose its content. Towards A Sustainable Earth:Print Only When Necessary.Thank you. From jack at ms.uky.edu Sun Aug 19 22:54:25 2012 From: jack at ms.uky.edu (Jack Schmidt) Date: Sun, 19 Aug 2012 17:54:25 -0400 Subject: [GAP Forum] first example towards GAP, need some explanation In-Reply-To: References: Message-ID: <05C2C546-98D6-4C85-954E-3B158B49905F@ms.uky.edu> [ One has a permutation group and wants to export its irreducible representations to fortran. ] I wrote a naive method to do this in GAP: http://www.ms.uky.edu/~jack/2012-08-19-GAPToFortranIrreps.g.txt The documentation is in the file. Save this file in the directory from which you call GAP (probably with a short name, like fortran.g), then read it into gap with: gap> Read("fortran.g"); Then you can have it create one file per matrix in an easily readable format for fortran using: gap> ExampleUsage( SymmetricGroup(4) ); This function especially is meant to be easy for you to change. The file format is three lines: first line is the dimension of the matrix, second line is the entries of the matrix in column major order, and third line is the name of the group element (meant to be ignored by fortran). You will need Frank Luebeck's unreleased futil package, available from http://www.math.rwth-aachen.de/~Frank.Luebeck/gap/FUtil/ And unless he updates it, you'll need to change two lines in futil/gap/Decimal.gi to change the name "Exp" to "ExpFutil" since these days there is already a function called Exp. The function to rewrite over the real field can be unreasonably slow because it uses no theory; if you need this to work on larger groups, you'll need to use theory. The function to rewrite a representation as unitary (keeping real reps real) does not fit into the GAP philosophy, so I recommend only using it to export to fortran. From r.e.boss at planet.nl Mon Aug 20 08:00:45 2012 From: r.e.boss at planet.nl (R.E. Boss) Date: Mon, 20 Aug 2012 09:00:45 +0200 Subject: [GAP Forum] Equal structure descriptions Message-ID: <001e01cd7ea1$8516a2a0$8f43e7e0$@planet.nl> What can I conclude from the equal structure descriptions below I stumbled upon? R.E. Boss gap> StructureDescription(SmallGroup(64,156)); "Q8 : Q8" gap> StructureDescription(SmallGroup(64,158)); "Q8 : Q8" gap> StructureDescription(SmallGroup(64,155)); "(C8 : C4) : C2" gap> StructureDescription(SmallGroup(64,157)); "(C8 : C4) : C2" gap> StructureDescription(SmallGroup(64,159)); "(C8 : C4) : C2" gap> StructureDescription(SmallGroup(64,160)); "(C2 x C2) . (C2 x D8) = (C4 x C2) . (C2 x C2 x C2)" gap> StructureDescription(SmallGroup(64,179)); "C8 : Q8" gap> StructureDescription(SmallGroup(64,180)); "(C2 x C2) . (C2 x D8) = (C4 x C2) . (C2 x C2 x C2)" From dima at ntu.edu.sg Mon Aug 20 08:47:14 2012 From: dima at ntu.edu.sg (Dima Pasechnik) Date: Mon, 20 Aug 2012 15:47:14 +0800 Subject: [GAP Forum] Equal structure descriptions In-Reply-To: <001e01cd7ea1$8516a2a0$8f43e7e0$@planet.nl> References: <001e01cd7ea1$8516a2a0$8f43e7e0$@planet.nl> Message-ID: <20120820074714.GA93793@nash.ntu.edu.sg> On Mon, Aug 20, 2012 at 03:00:45PM +0800, R.E. Boss wrote: > What can I conclude from the equal structure descriptions below I stumbled upon? > > gap> StructureDescription(SmallGroup(64,156)); > "Q8 : Q8" there is a normal subgroup Q_8 (the group of quaternions), and the quotient of your group over it is isomorphic to Q_8, and the extension is split. > gap> StructureDescription(SmallGroup(64,158)); > "Q8 : Q8" same as above, but the extension is different. > > gap> StructureDescription(SmallGroup(64,155)); > "(C8 : C4) : C2" there is a normal subgroup C_8:C_4 (a split extension of C_8 by C_4) on which C_2 acts nontrivially (C_k denotes the cyclic group of order k). > > gap> StructureDescription(SmallGroup(64,157)); > "(C8 : C4) : C2" as above, but some of the extensions involved are different. > > gap> StructureDescription(SmallGroup(64,159)); > "(C8 : C4) : C2" ditto. > > gap> StructureDescription(SmallGroup(64,160)); > "(C2 x C2) . (C2 x D8) = (C4 x C2) . (C2 x C2 x C2)" there are normal subgroups C_2xC_2 and C_4xC_2. The whole group can be described in two ways: 1) as a (possibly non-split) extension of C_2xC_2 by C_2xC_8 1) as a (possibly non-split) extension of C_4xC_2 by C_2xC_2xC_2. I hope this gives you an idea... Best, Dmitrii CONFIDENTIALITY:This email is intended solely for the person(s) named and may be confidential and/or privileged.If you are not the intended recipient,please delete it,notify us and do not copy,use,or disclose its content. Towards A Sustainable Earth:Print Only When Necessary.Thank you. From sal at cs.st-andrews.ac.uk Mon Aug 20 09:02:41 2012 From: sal at cs.st-andrews.ac.uk (Stephen Linton) Date: Mon, 20 Aug 2012 09:02:41 +0100 Subject: [GAP Forum] Equal structure descriptions In-Reply-To: <2f93435bb456448b8388c4a48b102524@UOS-DUN-CAS4.st-andrews.ac.uk> References: <2f93435bb456448b8388c4a48b102524@UOS-DUN-CAS4.st-andrews.ac.uk> Message-ID: <3F54AD6F-BD04-4F4D-8B98-1D297EBC6B4D@cs.st-andrews.ac.uk> Dear GAP Forum, R.E. Boss asked about non-isomorphic groups with equal structure descriptions. This CAN happen. The manual entry for "StructureDescription" http://www.gap-system.org/Manuals/doc/ref/chap39.html#X8199B74B84446971 says: "The string returned by StructureDescription is an isomorphism invariant: non-isomorphic groups can have the same string value, and two isomorphic groups in different representations can produce different strings." StructureDescription provides an "informal" overview of the structure of a group, which is a useful first view for small groups. More sophisticated function in the same area include IdGroup; the StandardPresentation function of the anupq package and IsomorphismGroups, each of which is described in the appropriate manual. Yours Steve Linton On 20 Aug 2012, at 08:00, R.E. Boss wrote: > What can I conclude from the equal structure descriptions below I stumbled upon? > > > > R.E. Boss > > > > > > gap> StructureDescription(SmallGroup(64,156)); > > "Q8 : Q8" > > gap> StructureDescription(SmallGroup(64,158)); > > "Q8 : Q8" > > > > gap> StructureDescription(SmallGroup(64,155)); > > "(C8 : C4) : C2" > > gap> StructureDescription(SmallGroup(64,157)); > > "(C8 : C4) : C2" > > gap> StructureDescription(SmallGroup(64,159)); > > "(C8 : C4) : C2" > > > > gap> StructureDescription(SmallGroup(64,160)); > > "(C2 x C2) . (C2 x D8) = (C4 x C2) . (C2 x C2 x C2)" > > gap> StructureDescription(SmallGroup(64,179)); > > "C8 : Q8" > > gap> StructureDescription(SmallGroup(64,180)); > > "(C2 x C2) . (C2 x D8) = (C4 x C2) . (C2 x C2 x C2)" > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From kashyap at iiserb.ac.in Mon Aug 20 12:06:15 2012 From: kashyap at iiserb.ac.in (Kashyap Rajeevsarathy) Date: Mon, 20 Aug 2012 16:36:15 +0530 Subject: [GAP Forum] Finding the Sp(4,2)-orbits Message-ID: Hello, I am new to GAP and I was wondering if GAP could help me figure out the following: I would like to know the GAP command for enlisting the orbits of the Sp(4,2)-action on (Z/2Z)^4, where Z/2Z is the field of order 2. Thanks and best regards, Kashyap -- Kashyap Rajeevsarathy Assistant Professor, IISER Bhopal, ITI (Gas Rahat) Building, Govindpura, Bhopal - 462023, Madhya Pradesh, India. From dima at ntu.edu.sg Mon Aug 20 12:50:14 2012 From: dima at ntu.edu.sg (Dima Pasechnik) Date: Mon, 20 Aug 2012 19:50:14 +0800 Subject: [GAP Forum] Finding the Sp(4,2)-orbits In-Reply-To: References: Message-ID: <20120820115014.GA94878@nash.ntu.edu.sg> On Mon, Aug 20, 2012 at 07:06:15PM +0800, Kashyap Rajeevsarathy wrote: > Hello, > > I am new to GAP and I was wondering if GAP could help me figure out the > following: > > I would like to know the GAP command for enlisting the orbits of the > Sp(4,2)-action on (Z/2Z)^4, where Z/2Z is the field of order 2. gap> G:=Sp(4,2); gap> Orbits(G,FullRowSpace(GF(2),4)); will do what you'd like to. However, Sp(2n,2) has just one orbit on nonzero vectors in its natural action, no need to ask GAP, in fact... HTH, Dmitrii CONFIDENTIALITY:This email is intended solely for the person(s) named and may be confidential and/or privileged.If you are not the intended recipient,please delete it,notify us and do not copy,use,or disclose its content. Towards A Sustainable Earth:Print Only When Necessary.Thank you. From r.e.boss at planet.nl Mon Aug 20 15:47:58 2012 From: r.e.boss at planet.nl (R.E. Boss) Date: Mon, 20 Aug 2012 16:47:58 +0200 Subject: [GAP Forum] Equal structure descriptions In-Reply-To: <3F54AD6F-BD04-4F4D-8B98-1D297EBC6B4D@cs.st-andrews.ac.uk> References: <2f93435bb456448b8388c4a48b102524@UOS-DUN-CAS4.st-andrews.ac.uk> <3F54AD6F-BD04-4F4D-8B98-1D297EBC6B4D@cs.st-andrews.ac.uk> Message-ID: <000301cd7ee2$ca1e3b60$5e5ab220$@planet.nl> Thanks. I should have consulted the manual first. Still think it is strange that StructureDescription does not determine the group up to isomorphism. R.E. Boss > -----Oorspronkelijk bericht----- > Van: Stephen Linton [mailto:sal at cs.st-andrews.ac.uk] > Verzonden: maandag 20 augustus 2012 10:03 > Aan: R.E. Boss > CC: forum at gap-system.org > Onderwerp: Re: [GAP Forum] Equal structure descriptions > > Dear GAP Forum, > > R.E. Boss asked about non-isomorphic groups with equal structure descriptions. > This CAN happen. The manual entry for "StructureDescription" > > http://www.gap-system.org/Manuals/doc/ref/chap39.html#X8199B74B84446971 > > says: > > "The string returned by StructureDescription is an isomorphism > invariant: non-isomorphic groups can have the same string value, and two > isomorphic groups in different representations can produce different > strings." > > StructureDescription provides an "informal" overview of the structure of a group, which is a useful > first view for small groups. More sophisticated function in the same area include IdGroup; > the StandardPresentation function of the anupq package and IsomorphismGroups, each of which is described > in the appropriate manual. > > Yours > > Steve Linton > > On 20 Aug 2012, at 08:00, R.E. Boss wrote: > > > What can I conclude from the equal structure descriptions below I stumbled upon? > > > > > > > > R.E. Boss > > > > > > > > > > > > gap> StructureDescription(SmallGroup(64,156)); > > > > "Q8 : Q8" > > > > gap> StructureDescription(SmallGroup(64,158)); > > > > "Q8 : Q8" > > > > > > > > gap> StructureDescription(SmallGroup(64,155)); > > > > "(C8 : C4) : C2" > > > > gap> StructureDescription(SmallGroup(64,157)); > > > > "(C8 : C4) : C2" > > > > gap> StructureDescription(SmallGroup(64,159)); > > > > "(C8 : C4) : C2" > > > > > > > > gap> StructureDescription(SmallGroup(64,160)); > > > > "(C2 x C2) . (C2 x D8) = (C4 x C2) . (C2 x C2 x C2)" > > > > gap> StructureDescription(SmallGroup(64,179)); > > > > "C8 : Q8" > > > > gap> StructureDescription(SmallGroup(64,180)); > > > > "(C2 x C2) . (C2 x D8) = (C4 x C2) . (C2 x C2 x C2)" > > > > > > > > _______________________________________________ > > Forum mailing list > > Forum at mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum From dima at ntu.edu.sg Mon Aug 20 17:17:35 2012 From: dima at ntu.edu.sg (Dima Pasechnik) Date: Tue, 21 Aug 2012 00:17:35 +0800 Subject: [GAP Forum] Equal structure descriptions In-Reply-To: <000301cd7ee2$ca1e3b60$5e5ab220$@planet.nl> References: <2f93435bb456448b8388c4a48b102524@UOS-DUN-CAS4.st-andrews.ac.uk> <3F54AD6F-BD04-4F4D-8B98-1D297EBC6B4D@cs.st-andrews.ac.uk> <000301cd7ee2$ca1e3b60$5e5ab220$@planet.nl> Message-ID: <20120820161735.GA98611@nash.ntu.edu.sg> On Mon, Aug 20, 2012 at 10:47:58PM +0800, R.E. Boss wrote: > Thanks. > I should have consulted the manual first. > > Still think it is strange that StructureDescription does not determine the group up to isomorphism. The main reason is that it's quite nontrivial to describe extensions in a non-verbose way. One would need to use the language of group cohomology, etc. Already conventions like Q_8 for a particular non-split extension of C_4 by C_2 (or of C_2 by C_2xC_2) are a compromise. HTH, Dmitrii CONFIDENTIALITY:This email is intended solely for the person(s) named and may be confidential and/or privileged.If you are not the intended recipient,please delete it,notify us and do not copy,use,or disclose its content. Towards A Sustainable Earth:Print Only When Necessary.Thank you. From chin.bill at gmail.com Mon Aug 20 17:38:59 2012 From: chin.bill at gmail.com (Bill C) Date: Mon, 20 Aug 2012 11:38:59 -0500 Subject: [GAP Forum] Torsion? Message-ID: <7EA32E7C-8C32-438D-B330-D580411DBDDE@gmail.com> I defined a group, with infinite center. I want to know if the center (with many generators) is torsion free. I have tried to use the commands IsTorsion Torsion IsFreeAbelian And they are not recognized. Advice, pointers? Bill From hamidadnan282 at yahoo.com Mon Aug 20 11:05:42 2012 From: hamidadnan282 at yahoo.com (Adnan Hamid) Date: Mon, 20 Aug 2012 11:05:42 +0100 (BST) Subject: [GAP Forum] Programming Message-ID: <1345457142.90928.YahooMailNeo@web171505.mail.ir2.yahoo.com> Dear Programmer; ?Suppose that G=PSL(2,11), c = (1, 2)(3 ,4)(5, 12)(6 ,11)(7, 10)(8 ,9) in G , D10?=DihedralGroup( 10 ), Since G has one conjugacy class of subgroups isomorphic to DihedralGroup( 10 ), we may assume that D10 ?= H. So, L ?= Cos(G,H,HgH), where g ? G is a 2-element such that g^2 ? H, |HgH|/|H| = 5 and? = G. Set?? H g ? H = < x >. Since? H?=DihedralGroup( 10 ), x = c^y for some y ? H. Set d = g^y. Then d ? C(c) ?= DihedralGroup( 24 ) and Cos(G,H,HgH) = Cos(G,H,HdH). Since = G, g has six choices.(C(c) is centralizer c in G). How do I find choices of g? Best regards, From kashyap at iiserb.ac.in Tue Aug 21 08:27:00 2012 From: kashyap at iiserb.ac.in (Kashyap Rajeevsarathy) Date: Tue, 21 Aug 2012 12:57:00 +0530 Subject: [GAP Forum] Finding the Sp(4,2)-orbits In-Reply-To: <20120820115014.GA94878@nash.ntu.edu.sg> References: <20120820115014.GA94878@nash.ntu.edu.sg> Message-ID: Thanks for your response. I apologize for not accurately framing my question. Here is the context in which I asked this question : Let $x_i, y_i$ be the generators of $H = Z^4$.* I need to compute the Sp(4,2)-orbits of $(x_1 \wedge y_1) ^{ \otimes 2}$ and ${(x_1 \wedge y_1) + (x_2 \wedge y_2)}^{\otimes2}$ with respect to the diagonal Sp(4,2)-action on $\wedge^2 H \otimes \wedge ^2H$ (modulo 2)* (\otimes2 refers to the tensor squared and Z refers to ring of integers) . I would greatly appreciate if you could guide me about the best possible way to do this in GAP starting with how to do the following: 1. tensor products of modules 2. wedge products of modules 3. diagonal actions as the ones mentioned above 4. If this requires additional programming, what might be the best way to go about it? 5. Also, could I make GAP display the elements in the orbits in some convenient fashion (like x_1^2 + y_1^2 etc. ). 6. In general, is it possible to make GAP display vectors in the orbits of matrix actions simply as vectors (say [1,1,1,0] etc. ). Thanks, Kahsyap On Mon, Aug 20, 2012 at 5:20 PM, Dima Pasechnik wrote: > On Mon, Aug 20, 2012 at 07:06:15PM +0800, Kashyap Rajeevsarathy wrote: > > Hello, > > > > I am new to GAP and I was wondering if GAP could help me figure out the > > following: > > > > I would like to know the GAP command for enlisting the orbits of the > > Sp(4,2)-action on (Z/2Z)^4, where Z/2Z is the field of order 2. > > gap> G:=Sp(4,2); > gap> Orbits(G,FullRowSpace(GF(2),4)); > > will do what you'd like to. > > However, Sp(2n,2) has just one orbit on nonzero vectors in its > natural action, no need to ask GAP, in fact... > > HTH, > Dmitrii > > CONFIDENTIALITY:This email is intended solely for the person(s) named and > may be confidential and/or privileged.If you are not the intended > recipient,please delete it,notify us and do not copy,use,or disclose its > content. > > Towards A Sustainable Earth:Print Only When Necessary.Thank you. > -- Kashyap Rajeevsarathy Assistant Professor, IISER Bhopal, ITI (Gas Rahat) Building, Govindpura, Bhopal - 462023, Madhya Pradesh, India. From genewardsmith at gmail.com Mon Aug 20 22:25:00 2012 From: genewardsmith at gmail.com (Gene Smith) Date: Mon, 20 Aug 2012 14:25:00 -0700 Subject: [GAP Forum] Total neophyte question about the trivial group in GRAPE Message-ID: I'm just trying to input an adjacency matrix without involving any group action, and apparently I need to define a trivial symmetric group on N letters. Or maybe not. In any case this gives me an error: RequirePackage("grape"); G := TrivialGroup(3); A := [[0,1,0],[0,0,1],[1,0,0]]; Graph( G, [1..3], OnPoints, function(x,y) return A[x][y]=1; end, true ); From sal at cs.st-andrews.ac.uk Tue Aug 21 14:28:10 2012 From: sal at cs.st-andrews.ac.uk (Stephen Linton) Date: Tue, 21 Aug 2012 14:28:10 +0100 Subject: [GAP Forum] Total neophyte question about the trivial group in GRAPE In-Reply-To: <2ba2c1094fd547acad8b84c91ef3e9e2@UOS-DUN-CAS5.st-andrews.ac.uk> References: <2ba2c1094fd547acad8b84c91ef3e9e2@UOS-DUN-CAS5.st-andrews.ac.uk> Message-ID: GRAPE does need every graph to have a (possibly trivial) group of known automorphisms. To construct the trivial permutation group you use G := Group(()); or G := TrivialGroup(IsPermGroup); TrivialGroup can also be used to make groups other than permutation groups. Steve On 20 Aug 2012, at 22:25, Gene Smith wrote: > RequirePackage("grape"); > G := TrivialGroup(3); > A := [[0,1,0],[0,0,1],[1,0,0]]; > Graph( G, [1..3], OnPoints, function(x,y) return A[x][y]=1; end, > true ); From garymakonel at googlemail.com Wed Aug 22 19:14:07 2012 From: garymakonel at googlemail.com (Gary McConnell) Date: Wed, 22 Aug 2012 20:14:07 +0200 Subject: [GAP Forum] from StructureDescription to specific generators? Message-ID: Hi all, I have a finitely presented finite group constituted of 3 generators modulo 6 relations. When I ask for StructureDescription I get something like (Cm x Cn):Ck for appropriate m,n,k as expected. What I would like to do however is to understand what GAP is "thinking of" when it spits this result out: for example, is there an easy way to access the generators of the normal subgroup and the "action" homomorphism from Ck to the automorphism group of Cm x Cn, or some splitting homomorphism, or equivalent - all in terms of the generators I have previously supplied? I believe I have trawled fully through the manual and the forum but cannot find anything - apologies if it is there and I just haven't found it! Many thanks Gary. From james.read at oriel.ox.ac.uk Sat Aug 25 18:51:03 2012 From: james.read at oriel.ox.ac.uk (James Read) Date: Sat, 25 Aug 2012 17:51:03 +0000 Subject: [GAP Forum] Standardized Coset Tables from Permutation Representations Message-ID: <6D9F49244F02DF4985C8169B51C642CC02900F@MBX04.ad.oak.ox.ac.uk> Dear GAP Forum, Suppose I have the permutation representation of a group G on the right cosets of a subgroup H. For example, the permutation representation of the modular group on the right cosets of the principal congruence subgroup Gamma(4) is: (1,10)(11,14)(15,23)(3,24)(2,4)(12,8)(13,16)(20,22)(6,21)(17,19)(9,18)(5,7) (1,2,3)(4,5,6)(7,8,9)(10,11,12)(13,14,15)(16,17,18)(19,20,21)(22,23,24) How can I use this to produce the corresponding standardized coset table in GAP? Obviously writing down a coset table is easy by hand, but I would like to use GAP to automate the procedure and produce the corresponding standardized table (which is not so easy to just write down). By the way, the standardization algorithm can be found on page 167 of Holt et al. - Handbook of Computational Group Theory. Many thanks, James Read From hulpke at me.com Mon Aug 27 00:05:23 2012 From: hulpke at me.com (Alexander Hulpke) Date: Sun, 26 Aug 2012 17:05:23 -0600 Subject: [GAP Forum] Standardized Coset Tables from Permutation Representations In-Reply-To: <6D9F49244F02DF4985C8169B51C642CC02900F@MBX04.ad.oak.ox.ac.uk> References: <6D9F49244F02DF4985C8169B51C642CC02900F@MBX04.ad.oak.ox.ac.uk> Message-ID: <84FADC76-59C3-4BC1-8829-66CB0329756F@me.com> Dear Forum, Dear James Read, > Suppose I have the permutation representation of a group G on the right cosets of a subgroup H. For example, the permutation representation of the modular group on the right cosets of the principal congruence subgroup Gamma(4) is: > > (1,10)(11,14)(15,23)(3,24)(2,4)(12,8)(13,16)(20,22)(6,21)(17,19)(9,18)(5,7) > (1,2,3)(4,5,6)(7,8,9)(10,11,12)(13,14,15)(16,17,18)(19,20,21)(22,23,24) > > How can I use this to produce the corresponding standardized coset table in GAP? Obviously writing down a coset table is easy by hand, but I would like to use GAP to automate the procedure and produce the corresponding standardized table (which is not so easy to just write down). Suppose perms is a list of these permutations. Then tab:=CosetTableBySubgroup(g,Stabilizer(g,1)); StandardizeTable(tab); produces a standardized coset table. (Of course CosetTableBySubgroup) will also work for many other cases of subgroups). Best, Alexander Hulpke From hatlam at gmail.com Thu Aug 30 21:17:18 2012 From: hatlam at gmail.com (Ha T. Lam) Date: Thu, 30 Aug 2012 16:17:18 -0400 Subject: [GAP Forum] Unbound global variable error In-Reply-To: References: Message-ID: Sorry if I double-post this question. I emailed the forum unsubscribed and have been waited moderating for a week. I thought I would try my chance again as a member. Dear GAP forum, > > I'm getting the unbound global variable error when I put the following in > a file and Read it in: > ------------------------------------------- > Foo1:=function() > local g; > g:=2; > Foo2(g); > end; > > Foo2:=function(a) > Print(a,"\n"); > end; > > Foo1(); > ------------------------------------------- > > Syntax error: warning: unbound global variable in temp.gi line 6 > Foo2(g); > ^ > > I'm running GAP 4.5.5. Actually I have a bigger program that gives me > various unbound global variable errors, but I've stripped it down to this, > and still have the error. Any idea why? > > Ha T. Lam > From vipul at math.uchicago.edu Thu Aug 30 21:32:50 2012 From: vipul at math.uchicago.edu (Vipul Naik) Date: Thu, 30 Aug 2012 15:32:50 -0500 Subject: [GAP Forum] Unbound global variable error In-Reply-To: References: Message-ID: <20120830203250.GA4160@math.uchicago.edu> Hello, It is probably the ordering of your function definitions within the file. Try placing the definition of Foo2 above the definition of Foo1. GAP reads the file linearly. This means that when it reads Foo1, it doesn't know what Foo2 is because that point in the file hasn't been reached yet. If you don't want to change the order of the definitions, the problem can be overcome by reading the file twice, as at the second read of the file, GAP "knows" what Foo2 is. Vipul * Quoting Ha T. Lam who at 2012-08-30 16:17:18+0000 (Thu) wrote > Sorry if I double-post this question. I emailed the forum unsubscribed and > have been waited moderating for a week. I thought I would try my chance > again as a member. > > Dear GAP forum, > > > > I'm getting the unbound global variable error when I put the following in > > a file and Read it in: > > ------------------------------------------- > > Foo1:=function() > > local g; > > g:=2; > > Foo2(g); > > end; > > > > Foo2:=function(a) > > Print(a,"\n"); > > end; > > > > Foo1(); > > ------------------------------------------- > > > > Syntax error: warning: unbound global variable in temp.gi line 6 > > Foo2(g); > > ^ > > > > I'm running GAP 4.5.5. Actually I have a bigger program that gives me > > various unbound global variable errors, but I've stripped it down to this, > > and still have the error. Any idea why? > > > > Ha T. Lam > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From hatlam at gmail.com Thu Aug 30 21:37:24 2012 From: hatlam at gmail.com (Ha T. Lam) Date: Thu, 30 Aug 2012 16:37:24 -0400 Subject: [GAP Forum] Unbound global variable error In-Reply-To: <20120830203250.GA4160@math.uchicago.edu> References: <20120830203250.GA4160@math.uchicago.edu> Message-ID: That is exactly the problem. Thank you very much! Ha On Thu, Aug 30, 2012 at 4:32 PM, Vipul Naik wrote: > Hello, > > It is probably the ordering of your function definitions within the > file. Try placing the definition of Foo2 above the definition of Foo1. > > GAP reads the file linearly. This means that when it reads Foo1, it > doesn't know what Foo2 is because that point in the file hasn't been > reached yet. > > If you don't want to change the order of the definitions, the problem > can be overcome by reading the file twice, as at the second read of > the file, GAP "knows" what Foo2 is. > > Vipul > * Quoting Ha T. Lam who at 2012-08-30 16:17:18+0000 (Thu) wrote > > Sorry if I double-post this question. I emailed the forum unsubscribed > and > > have been waited moderating for a week. I thought I would try my chance > > again as a member. > > > > Dear GAP forum, > > > > > > I'm getting the unbound global variable error when I put the following > in > > > a file and Read it in: > > > ------------------------------------------- > > > Foo1:=function() > > > local g; > > > g:=2; > > > Foo2(g); > > > end; > > > > > > Foo2:=function(a) > > > Print(a,"\n"); > > > end; > > > > > > Foo1(); > > > ------------------------------------------- > > > > > > Syntax error: warning: unbound global variable in temp.gi line 6 > > > Foo2(g); > > > ^ > > > > > > I'm running GAP 4.5.5. Actually I have a bigger program that gives me > > > various unbound global variable errors, but I've stripped it down to > this, > > > and still have the error. Any idea why? > > > > > > Ha T. Lam > > > > > _______________________________________________ > > Forum mailing list > > Forum at mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > From alexk at mcs.st-andrews.ac.uk Fri Aug 31 13:53:48 2012 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Fri, 31 Aug 2012 13:53:48 +0100 Subject: [GAP Forum] Torsion? In-Reply-To: <7EA32E7C-8C32-438D-B330-D580411DBDDE@gmail.com> References: <7EA32E7C-8C32-438D-B330-D580411DBDDE@gmail.com> Message-ID: Dear Bill, dear Forum, On 20 Aug 2012, at 17:38, Bill C wrote: > I defined a group, with infinite center. I want to know if the center (with many generators) is torsion free. I have tried to use the commands > > IsTorsion > Torsion > IsFreeAbelian > > And they are not recognized. > Advice, pointers? > > Bill It may be useful to remind that you may use search facilities from the GAP command line. For example, to look for manual entries containing the word 'Torsion', use: gap> ??Torsion Help: several entries match this topic - type ?2 to get match [2] [1] FR (not loaded): IsTorsionGroup [2] FR (not loaded): IsTorsionFreeGroup [3] HAP (not loaded): Torsion subcomplexes [4] HAP (not loaded): TorsionGeneratorsAbelianGroup [5] HAP (not loaded): TorsionSubcomplex [6] HAP (not loaded): VisualizeTorsionSkeleton [7] HAP (not loaded): ReduceTorsionSubcomplex [8] homalg (not loaded): IsTorsionFree [9] homalg (not loaded): IsTorsion [10] homalg (not loaded): TorsionSubobject [11] homalg (not loaded): DegreeOfTorsionFreeness [12] polycyclic: TorsionByPolyEFSeries [13] polycyclic: TorsionSubgroup [14] polycyclic: NormalTorsionSubgroup [15] polycyclic: IsTorsionFree [16] RCWA (not loaded): An infinite subgroup of CT(GF(2)[x]) with many torsion elements Hope this helps, Alexander From hulpke at me.com Sat Sep 1 16:28:51 2012 From: hulpke at me.com (Alexander Hulpke) Date: Sat, 01 Sep 2012 09:28:51 -0600 Subject: [GAP Forum] from StructureDescription to specific generators? In-Reply-To: References: Message-ID: <8A5CF6D5-4406-47AD-ADC2-5F87142222E7@me.com> Dear Gary McConnell, On Aug 22, 2012, at 12:14 PM, Gary McConnell wrote: > is there an easy way to access the generators of the normal > subgroup and the "action" homomorphism from Ck to the automorphism group of > Cm x Cn, or some splitting homomorphism, or equivalent There is no built in function, but you can easily check for decompositions. Lets first try direct products. We need two normal subgroups that intersect trivially and generate the whole group. First get nontrivial normal subgroups. For convenience we sort by group order: gap> g:=SmallGroup(48,9); gap> n:=Filtered(NormalSubgroups(g),x->Size(x)>1 and Size(x) Sort(n,function(a,b) return Size(a) d:=Filtered(Combinations(n,2),x->Size(Intersection(x[1],x[2]))=1 > and Size(x[1])*Size(x[2])=Size(g)); [ [ Group([ f2 ]), Group([ f1, f3, f4, f5 ]) ], [ Group([ f2 ]), Group([ f1*f2, f3, f4, f5 ]) ], [ Group([ f1, f3, f4, f5 ]), Group([ f2*f4 ]) ], [ Group([ f1*f2, f3, f4, f5 ]), Group([ f2*f4 ]) ] ] gap> List(d,x->List(x,Size)); [ [ 2, 24 ], [ 2, 24 ], [ 24, 2 ], [ 24, 2 ] ] So here its always 2 x something. Lets just try the first and investigate the second factor. gap> h:=d[1][2]; Group([ f1, f3, f4, f5 ]) gap> n:=Filtered(NormalSubgroups(h),x->Size(x)>1 and Size(x) Sort(n,function(a,b) return Size(a) d:=Filtered(Combinations(n,2),x->Size(Intersection(x[1],x[2]))=1 > and Size(x[1])*Size(x[2])=Size(h)); [ ] So no direct product here. For semidirect products we test for complements. (This can be done if either N or G/N is solvable): gap> c:=List(n,x->Complementclasses(h,x)); [ [ ], [ Group([ f1, f3, f4 ]) ], [ ], [ ], [ ] ] So only the second normal subgroup has complements. (If there are several classes we can just pick one.) gap> Size(n[2]); 3 clearly cyclic or order 3. This is the first factor Look at the complement: gap> c:=c[2][1]; Group([ f1, f3, f4 ]) gap> Size(c); 8 gap> IsAbelian(c); true gap> AbelianInvariants(c); [ 8 ] So we have a C3 : C8. In this case there is only one nontrivial homomorphism, but for the sake of example lets build it: gap> au:=AutomorphismGroup(n[2]); gap> hom:=GroupHomomorphismByImages(c,au,GeneratorsOfGroup(c), > List(GeneratorsOfGroup(c), > x->ConjugatorAutomorphism(n[2],x))); [ f1, f3, f4 ] -> [ ^f1, ^ of ..., ^ of ... ] So now we have all the constituents so we could build the group as product. First the semidirect bit: gap> s:=SemidirectProduct(c,hom,n[2]); and now the direct product with C2: gap> c2:=CyclicGroup(2);; gap> a:=DirectProduct(s,c2); Lets check that they are indeed isomorphic: gap> IsomorphismGroups(g,a); [ f1, f2, f3, f4, f5 ] -> [ f1, f5, f2, f3, f4 ] So everything went fine. Hope this helps, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From garymakonel at googlemail.com Sun Sep 2 17:37:49 2012 From: garymakonel at googlemail.com (Gary McConnell) Date: Sun, 2 Sep 2012 17:37:49 +0100 Subject: [GAP Forum] from StructureDescription to specific generators? In-Reply-To: <8A5CF6D5-4406-47AD-ADC2-5F87142222E7@me.com> References: <8A5CF6D5-4406-47AD-ADC2-5F87142222E7@me.com> Message-ID: Dear Alexander, This is brilliant - thank you - it gives me a great number of new methods to think about. I should perhaps also mention that another forum member very helpfully pointed out some functions which are not in the manual I have (but which are accessible in the source code apparently), namely SemidirectFactorsOfGroup and DirectFactorsOfGroup which I was able to harness to give me what would appear to be complete lists of these (normal,complement) pairings in the cases I am studying. Many thanks and kind regards Gary. On Sat, Sep 1, 2012 at 4:28 PM, Alexander Hulpke wrote: > Dear Gary McConnell, > > On Aug 22, 2012, at 12:14 PM, Gary McConnell > wrote: > > is there an easy way to access the generators of the normal > subgroup and the "action" homomorphism from Ck to the automorphism group of > Cm x Cn, or some splitting homomorphism, or equivalent > > > There is no built in function, but you can easily check for > decompositions. Lets first try direct products. We need two normal > subgroups that intersect trivially and generate the whole group. First get > nontrivial normal subgroups. For convenience we sort by group order: > > > > > gap> g:=SmallGroup(48,9); > > gap> n:=Filtered(NormalSubgroups(g),x->Size(x)>1 and Size(x) gap> Sort(n,function(a,b) return Size(a) > Now check pairs (Combinations counts x,y as y,x, so no duplicates) for > direct product candidates. > Instead of generation it is cheaper to use orders. > > gap> d:=Filtered(Combinations(n,2),x->Size(Intersection(x[1],x[2]))=1 > > and Size(x[1])*Size(x[2])=Size(g)); > [ [ Group([ f2 ]), Group([ f1, f3, f4, f5 ]) ], > [ Group([ f2 ]), Group([ f1*f2, f3, f4, f5 ]) ], > [ Group([ f1, f3, f4, f5 ]), Group([ f2*f4 ]) ], > [ Group([ f1*f2, f3, f4, f5 ]), Group([ f2*f4 ]) ] ] > gap> List(d,x->List(x,Size)); > [ [ 2, 24 ], [ 2, 24 ], [ 24, 2 ], [ 24, 2 ] ] > > So here its always 2 x something. Lets just try the first and investigate > the second factor. > gap> h:=d[1][2]; > Group([ f1, f3, f4, f5 ]) > > gap> n:=Filtered(NormalSubgroups(h),x->Size(x)>1 and Size(x) gap> Sort(n,function(a,b) return Size(a) gap> d:=Filtered(Combinations(n,2),x->Size(Intersection(x[1],x[2]))=1 > > and Size(x[1])*Size(x[2])=Size(h)); > [ ] > > So no direct product here. For semidirect products we test for > complements. (This can be done if either N or G/N is solvable): > gap> c:=List(n,x->Complementclasses(h,x)); > [ [ ], [ Group([ f1, f3, f4 ]) ], [ ], [ ], [ ] ] > > So only the second normal subgroup has complements. (If there are several > classes we can just pick one.) > > gap> Size(n[2]); > 3 > > clearly cyclic or order 3. This is the first factor Look at the complement: > > gap> c:=c[2][1]; > Group([ f1, f3, f4 ]) > gap> Size(c); > 8 > gap> IsAbelian(c); > true > gap> AbelianInvariants(c); > [ 8 ] > > So we have a C3 : C8. In this case there is only one nontrivial > homomorphism, but for the sake of example lets build it: > > gap> au:=AutomorphismGroup(n[2]); > > gap> hom:=GroupHomomorphismByImages(c,au,GeneratorsOfGroup(c), > > List(GeneratorsOfGroup(c), > > x->ConjugatorAutomorphism(n[2],x))); > [ f1, f3, f4 ] -> [ ^f1, ^ of ..., ^ of ... ] > > So now we have all the constituents so we could build the group as > product. First the semidirect bit: > > gap> s:=SemidirectProduct(c,hom,n[2]); > > > and now the direct product with C2: > > gap> c2:=CyclicGroup(2);; > gap> a:=DirectProduct(s,c2); > > > Lets check that they are indeed isomorphic: > gap> IsomorphismGroups(g,a); > [ f1, f2, f3, f4, f5 ] -> [ f1, f5, f2, f3, f4 ] > > > So everything went fine. > > Hope this helps, > > Alexander Hulpke > > -- Colorado State University, Department of Mathematics, > Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA > email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 > http://www.math.colostate.edu/~hulpke > > > From sam at Math.RWTH-Aachen.De Mon Sep 3 09:06:29 2012 From: sam at Math.RWTH-Aachen.De (Thomas Breuer) Date: Mon, 03 Sep 2012 10:06:29 +0200 Subject: [GAP Forum] Question about symmetric group of nine letters In-Reply-To: References: Message-ID: <20120903080629.GA29124@gemma.math.rwth-aachen.de> Dear Forum, Hamid Shahverdi had asked the following question (in June). > How can one try by gap to show that > > If a centerless group G of order 9! has the following properties, then it > is isomorphic to S_9 > 1) size of all conjugacy classes are equal to the one in S_9. > 2) the order of all maximal abelian subgroups are equal to the one in S_9. First of all, sorry for the late reply. Below is a sketch of a proof. (If one wants then one can replace some of the statements about small simple groups by combinatorial computations.) All the best, Thomas Claim: The symmetric group $S_9$ on nine points is determined by its order, its set of conjugacy class lengths, and the fact that it has trivial centre. Proof: Let $G$ be a finite group of order $|S_9| = 9!$, with trivial centre, and such that the length of each conjugacy class of $G$ is equal to the length of a conjugacy class of $S_9$. First we observe that no sum of class lengths of $S_9$ (with multiplicities, where the multiplicity of $1$ is one) is equal to a prime power that divides $9!$. gap> order:= Factorial( 9 ); 362880 gap> facts:= Collected( Factors( order ) ); [ [ 2, 7 ], [ 3, 4 ], [ 5, 1 ], [ 7, 1 ] ] gap> pparts:= List( facts, pair -> pair[1]^pair[2] ); [ 128, 81, 5, 7 ] gap> ccl:= Set( SizesConjugacyClasses( CharacterTable( "S9" ) ) ); [ 1, 36, 168, 378, 756, 945, 1260, 2240, 2520, 3024, 3360, 7560, 9072, 10080, 11340, 15120, 18144, 20160, 24192, 25920, 30240, 40320, 45360 ] This means that $G$ is not solvable, and does not contain a solvable normal subgroup. Thus $G$ contains a nonabelian simple subgroup $S$, say. Since the order of $S$ is divisible by $5$ or $7$, which divide the order of $G$ only once, no proper power of $S$ can occur as a subgroup of $G$, that is, $G$ contains a nonabelian simple normal subgroup $N$, say. Next we compute a representative of each isomorphism type of those nonabelian simple groups whose order divides $9!$. gap> cand:= Filtered( DivisorsInt( order ), i -> not IsPrimeInt( i ) );; gap> simp:= AllSmallNonabelianSimpleGroups( cand ); [ A5, PSL(2,7), A6, PSL(2,8), A7, PSU(3,3), A8, PSL(3,4), PSp(4,3), A9 ] Finally we compute, for each simple candidate $S$, the class lengths of involutions in $S$. gap> for g in simp do > gccl:= ConjugacyClasses( g ); > filt:= Filtered( gccl, x -> Order( Representative( x ) ) = 2 ); > Print( g, ":\n", List( filt, Size ), "\n" ); > od; A5: [ 15 ] PSL(2,7): [ 21 ] A6: [ 45 ] PSL(2,8): [ 63 ] A7: [ 105 ] PSU(3,3): [ 63 ] A8: [ 210, 105 ] PSL(3,4): [ 315 ] PSp(4,3): [ 45, 270 ] A9: [ 378, 945 ] We see that only the alternating group $A_9$ on nine points has classes of involutions such that some union can form a class of involutions in $G$. Thus $G$ has a normal subgroup isomorphic to $A_9$. Since the centralizer of this subgroup is trivial, $G$ is isomorphic to the symmetric group $S_9$. From marek at mitros.org Fri Sep 7 13:14:59 2012 From: marek at mitros.org (Marek Mitros) Date: Fri, 7 Sep 2012 14:14:59 +0200 Subject: [GAP Forum] GAP on Android Message-ID: Hi, I am using mobile phone with Android OS. Is there way to obtain installable .APK file from GAP community which contains GAP bounded with terminal application. I have tried to install GAP for Android offered by Matan on this forum but no success. I have no rights to execute files on SD card and I have no permissions to copy files to internal memory of the phone. The solution would be to have installable .APK file. Best regards, Marek Mitros From a.j.t.al-juburie at newcastle.ac.uk Sun Sep 9 11:36:23 2012 From: a.j.t.al-juburie at newcastle.ac.uk (Abdulsatar Al-Juburie) Date: Sun, 9 Sep 2012 10:36:23 +0000 Subject: [GAP Forum] Question Message-ID: <5CA877F40086AF4BA25CA77918641744014372@EXMBDB01.campus.ncl.ac.uk> Dear Forum, As you know the usual way to get a finite presentation of a group in GAP is to use IsomorphismFpGroup. In fact I tried to get a presentation of the automorphism group GL(n,Z) of the free Abelian group of rank n by using IsomorphismFpGroup. But it doesn't work for GL(n,Z). However, I ask how to get a fp group out of GL(n, Integers). Best Regards, Abdulsatar From addam.brady at yahoo.com Mon Sep 10 18:07:18 2012 From: addam.brady at yahoo.com (ADDAM BRADY) Date: Mon, 10 Sep 2012 10:07:18 -0700 (PDT) Subject: [GAP Forum] Help Message-ID: <1347296838.62382.YahooMailNeo@web141005.mail.bf1.yahoo.com> Dear forum, ? I am a new user for Gap software. In fact, I tried to use?IsomorphismFpGroup to get a finite presentation of the automorphism group of the free group of rank n. But it does not work. I would be appreciated if you could help me in this matter. ? Best Regards, ? Addam From ahulpke at gmail.com Tue Sep 11 04:23:08 2012 From: ahulpke at gmail.com (Alexander Hulpke) Date: Mon, 10 Sep 2012 21:23:08 -0600 Subject: [GAP Forum] Help/Question In-Reply-To: <1347296838.62382.YahooMailNeo@web141005.mail.bf1.yahoo.com> References: <1347296838.62382.YahooMailNeo@web141005.mail.bf1.yahoo.com> Message-ID: <76847395-2034-4D73-B3F1-8456F11701F6@gmail.com> Dear Gap Forum, Abdulsatar Al-Juburie and Addam Brady both asked about `IsomorphismFpGroup' for infinite groups. Indeed this operation is the one GAP uses to calculate presentations for a given group, but of course the computer can only do what has been programmed in before. Often this is limited to some kind of finiteness, as an algorithm otherwise won't terminate. For IsomorphismFpGroup, such methods exist in GAP for the cases of - Finite groups - Subgroups of finitely presented groups of finite index (I am not aware of other generic algorithms that would work for infinite groups, so very likely this is not a shortcoming of GAP but a fundamental algorithmic problem.) Both GL_n(Z) and the automorphism group of a free group do not fit either of these two classes, so calling `IsomorphismFpGroup' for such a group will simply yield an error message. This does not mean that such presentations are not known -- it simply means that GAP is not a universal library lookup tool that collects all human knowledge. (Looking them up in the library -- for example Wikipedia (automorphism group of a free group) points to Magnus/Karras/Solitar for such a presentation for the automorphism group of the free group, and MR1079696 (92h:20050) Conder, Marston; Robertson, Edmund; Williams, Peter Presentations for $3$-dimensional special linear groups over integer rings. Proc. Amer. Math. Soc. 115 (1992), no. 1, 19?26 gives one for SL_n(Z) from which one can probably obtain one for GL_n(Z)) Best wishes, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From graham.ellis at nuigalway.ie Tue Sep 11 05:09:14 2012 From: graham.ellis at nuigalway.ie (Ellis, Grahamj) Date: Tue, 11 Sep 2012 05:09:14 +0100 Subject: [GAP Forum] Help/Question References: <1347296838.62382.YahooMailNeo@web141005.mail.bf1.yahoo.com> <76847395-2034-4D73-B3F1-8456F11701F6@gmail.com> Message-ID: <47C2E007B3E98F4E8BBC7997F007CE130EE176CA@EVS1.ac.nuigalway.ie> Dear Forum, Adding to Alexander's comments: presentations for *a few* arithmetic groups can be found using GAP. Here are three examples. gap> R:=ResolutionArithmeticGroup("SL(3,Z)",2); Resolution of length 2 in characteristic 0 for . No contracting homotopy available. gap> P:=PresentationOfResolution(R); rec( freeGroup := , gens := [ 26, 23, 43, 27 ], relators := [ f1^2, f2^2, f3^3, f2*f1*f2^-1*f1, f1*f3*f1^-1*f2*f3*f2^-1, f3*f2*f3*f2*f3*f2^-1, f4^-2, f4*f2*f4^-1*f2*f1^-1, f4*f3^-1*f2^-1*f3^-2*f4^-1*f1*f3^-1*f2*f3*f2*f1^-1*f4^-1*f2^-1*f3^-1*f2^ -1*f3*f2^-1, f4*f3^-1*f2^-1*f1*f4*f1^-1*f2*f3*f4*f2*f3*f2*f3*f1^-1*f4^ -1*f3^2*f1*f2^-1*f4^-1*f2*f3^-1*f2*f3*f2*f3^-1*f1^-1*f4^-1*f1*f3*f2^ -1*f3^-1*f2^-1*f3*f2^-1 ] ) gap> R:=ResolutionArithmeticGroup("PSL(4,Z)",2); Resolution of length 2 in characteristic 0 for . No contracting homotopy available. gap> P:=PresentationOfResolution(R); rec( freeGroup := , gens := [ 438, 170, 400, 95, 614, 608, 454, 313 ], relators := [ f2^2, f1^3, f3^3, f1*f2*f1*f2^-1, f3*f2*f3*f1*f3^-1*f1^-1, f1*f3^2*f2*f1*f3^-1*f2^-1, f5^2, f6^2, f4^3, f7^3, f7*f5*f7*f5^-1, f7*f4^-1*f7^2*f4*f6^-1, f7*f4*f7^2*f6^-1*f4^-1, f4*f7*f6*f4*f5^-1*f4^-1*f5^-1*f7^-1, f4*f7*f5*f4^-2*f5^-1*f4^-2*f5*f6^ -1*f4^-2*f3*f1^-1*f3*f2^-1*f3^-1*f1*f3^-1, f5*f4*f7*f5^-1*f4^2*f5*f4^-2*f5^-1*f4^-2*f5*f6^-1*f4^-2*f3*f1^-1*f3*f2^ -1*f3^-1*f1*f3^-1*f1, f8^-1*f5^-1*f7^-1*f8^-1*f4^-1*f7^-1*f4^-1*f7^ -1*f6*f4^-2*f5^-1*f4^-1*f5*f4^2*f6*f4*f5, f8^-1*f7^-2*f8^-1*f4^-1*f7^-1*f4^-1*f7^-1*f6*f4^-2*f5^-1*f4^-1*f5*f4^ 2*f6*f4, f8*f5*f4*f7*f5^-1*f4^2*f5*f4^-1*f5^-1*f4^-2*f6*f7^-1*f4^ -1*f7^-1*f4^-1*f8^-1*f7^-2, f8*f4*f5*f7*f4*f5^-1*f4^2*f5*f7^-2*f4*f6^ -1*f2*f1^-2*f3^-1*f1*f3^-1, f4^2*f6*f5^-1*f4^2*f5*f4^2*f7^-2*f4^-1*f5^ -1*f2*f1^-1*f3*f2*f3^-2*f7^2*f5^-1*f4^-2*f5*f4^-1*f7^-1*f5^-1*f3*f1^ -1*f3*f2*f1^-1*f3^-1*f1*f3^-1 ] ) gap> R:=ResolutionSL2Z(6,2); #I Using the Congruence package for GeneratorsOfGroup ... Resolution of length 2 in characteristic 0 for SL(2,Z[1/6]) . gap> P:=PresentationOfResolution(R); rec( freeGroup := , gens := [ 5, 29, 7, 31, 3, 3, 3, 3, 3, 3, 3, 6, 75, 8, 77, 3, 3, 3, 3, 3, 3, 3, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 ], relators := [ f1^4, f2^6, f2^3*f1^-2, f3^4, f4^6, f4^3*f3^-2, f5, f3^-2*f5^-1*f1^2, f7*f6^-1, f6*f3^-2*f7^-1*f1^2, f10*f3^-2*f8^-1*f1^2, f8*f4^4*f3^-1*f4^4*f3^-1*f4^4*f3^-1*f9^-1*f1*f2^-4, f9*f3*f4^-4*f3*f4^-4*f3*f4^-4*f10^-1*f2^4*f1^-1, f11*f4^-5*f3^-3*f4^-5*f3*f4^-4*f11^-1*f2^5*f1^3*f2^5*f1^3*f2^4, f3^-2*f10^-1*f1^2, f5*f3^-1*f4^-4*f3*f4^-4*f3*f4^-4*f3^2*f8^-1*f1^-2*f2^ 4*f1, f6*f3^-2*f4^4*f3^-1*f4^4*f3^-1*f4^4*f3*f9^-1*f1^-1*f2^-4*f1^2, f7*f3^-2*f4^4*f3^-1*f4^5*f3^3*f4^5*f3^2*f11^-1*f1^-2*f2^-4*f1^-3*f2^ -5*f1^-3*f2^-5*f1^2, f12^4, f13^6, f13^3*f12^-2, f14^4, f15^6, f15^3*f14^-2, f16, f14^-2*f16^-1*f12^2, f18*f17^-1, f17*f14^-2*f18^-1*f12^2, f21*f14^-2*f19^-1*f12^2, f19*f15^4*f14^-1*f15^4*f14^-1*f15^4*f14^-1*f20^-1*f12*f13^-4, f20*f14*f15^-4*f14*f15^-4*f14*f15^-4*f21^-1*f13^4*f12^-1, f22*f15^-5*f14^-3*f15^-5*f14*f15^-4*f22^-1*f13^5*f12^3*f13^5*f12^3*f13^4 , f14^-2*f21^-1*f12^2, f16*f14^-1*f15^-4*f14*f15^-4*f14*f15^-4*f14^ 2*f19^-1*f12^-2*f13^4*f12, f17*f14^-2*f15^4*f14^-1*f15^4*f14^-1*f15^ 4*f14*f20^-1*f12^-1*f13^-4*f12^2, f18*f14^-2*f15^4*f14^-1*f15^5*f14^ 3*f15^5*f14^2*f22^-1*f12^-2*f13^-4*f12^-3*f13^-5*f12^-3*f13^-5*f12^2, f12^-3*f13^-1*f12^-1*f13^4*f12^-1*f1*f2*f1^3*f2^5*f1^3, f24*f12^-2*f23^-1*f1^2, f23*f24^-1, f27*f25^-1, f25*f12*f13^-4*f12*f13^-4*f26^-1*f2^4*f1^-1, f26*f12^-2*f13^4*f12^-1*f13^4*f12^-1*f27^-1*f1*f2^-4*f1^2, f27^-1, f23*f12^-2*f13^4*f12^-1*f13^4*f12*f25^-1*f1^-1*f2^-4*f1^2, f24*f12^-1*f13^-4*f12*f13^-4*f26^-1*f2^4*f1, f28*f12*f13^-4*f12^-3*f13^-1*f12^-1*f14^-1*f12^-2*f13^-4*f12*f13^ -4*f12*f13^-4*f12*f13^-4*f12^-3*f13^-1*f12^-1*f28^-1*f1*f2*f3*f2^5*f1, f30*f12^-3*f14^-3*f29^-1*f3^3*f1^3, f29*f14^-3*f12^-1*f30^-1*f1*f3^3, f33*f12^-1*f15^-5*f14^-3*f15^-5*f12^-2*f13^-4*f12*f13^-4*f12*f13^ -4*f12*f13^-4*f12^-3*f13^-1*f12^-1*f31^-1*f1*f2*f4^5*f3^2*f1, f31*f12^-1*f13^-4*f12^-3*f13^-1*f12^-1*f14^-3*f15^-1*f14^-1*f32^-1*f4^ 5*f3^2*f2^5*f1, f32*f15^-5*f14^-3*f15^-5*f12^-1*f33^-1*f1*f4^5, f28*f12^-1*f13*f12^3*f13^4*f12^-1*f13^4*f12^-1*f13^4*f12^-1*f13^4*f12^ 2*f15^5*f14^3*f15^5*f12^3*f33^-1*f1^-3*f3^-2*f4^-5*f2^-1*f1, f29*f12^-2*f14*f15*f14^3*f12*f13*f12^3*f13^4*f12^-1*f31^-1*f1^-3*f2^ -5*f3^-2*f4^-5*f1^2, f30*f12^-1*f15^5*f14^3*f15^5*f12^2*f32^-1*f1^ -2*f4^-5*f1, f28^-1, f23*f29^-1, f24*f30^-1, f28^-1, f23*f29^-1, f24*f30^-1, f28^-1, f23*f29^-1, f24*f30^-1, f28^-1, f23*f29^-1, f24*f30^-1, f28^-1, f23*f29^-1, f24*f30^-1, f28^-1, f23*f29^-1, f24*f30^-1, f28^-1, f23*f29^-1, f24*f30^-1, f28^-1, f23*f29^-1, f24*f30^-1 ] ) These presentations could probably be simplified using the SimplifiedFpGroup(G) command. Graham School of Mathematics, Statistics and Applied Mathematics National University of Ireland, Galway http://hamilton.nuigalway.ie -----Original Message----- From: forum-bounces at gap-system.org on behalf of Alexander Hulpke Sent: Tue 9/11/2012 04:23 To: forum at gap-system.org gap Cc: Abdulsatar Al-Juburie; ADDAM BRADY Subject: Re: [GAP Forum] Help/Question Dear Gap Forum, Abdulsatar Al-Juburie and Addam Brady both asked about `IsomorphismFpGroup' for infinite groups. Indeed this operation is the one GAP uses to calculate presentations for a given group, but of course the computer can only do what has been programmed in before. Often this is limited to some kind of finiteness, as an algorithm otherwise won't terminate. For IsomorphismFpGroup, such methods exist in GAP for the cases of - Finite groups - Subgroups of finitely presented groups of finite index (I am not aware of other generic algorithms that would work for infinite groups, so very likely this is not a shortcoming of GAP but a fundamental algorithmic problem.) Both GL_n(Z) and the automorphism group of a free group do not fit either of these two classes, so calling `IsomorphismFpGroup' for such a group will simply yield an error message. This does not mean that such presentations are not known -- it simply means that GAP is not a universal library lookup tool that collects all human knowledge. (Looking them up in the library -- for example Wikipedia (automorphism group of a free group) points to Magnus/Karras/Solitar for such a presentation for the automorphism group of the free group, and MR1079696 (92h:20050) Conder, Marston; Robertson, Edmund; Williams, Peter Presentations for $3$-dimensional special linear groups over integer rings. Proc. Amer. Math. Soc. 115 (1992), no. 1, 19-26 gives one for SL_n(Z) from which one can probably obtain one for GL_n(Z)) Best wishes, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From marek at mitros.org Tue Sep 11 09:11:29 2012 From: marek at mitros.org (Marek Mitros) Date: Tue, 11 Sep 2012 10:11:29 +0200 Subject: [GAP Forum] GAP on Android In-Reply-To: References: Message-ID: Dear Forum, I am happy to inform that I was able to start GAP session on my mobile today. Thank you to Matan Ziv-Av who help me out with this. Regards, Marek On 9/7/12, Marek Mitros wrote: > Hi, > > I am using mobile phone with Android OS. Is there way to obtain > installable .APK file from GAP community which contains GAP bounded > with terminal application. I have tried to install GAP for Android > offered by Matan on this forum but no success. I have no rights to > execute files on SD card and I have no permissions to copy files to > internal memory of the phone. The solution would be to have > installable .APK file. > > Best regards, > Marek Mitros > From sievers at math2.nat.tu-bs.de Tue Sep 11 10:35:06 2012 From: sievers at math2.nat.tu-bs.de (sievers at math2.nat.tu-bs.de) Date: Tue, 11 Sep 2012 11:35:06 +0200 Subject: [GAP Forum] Help/Question In-Reply-To: <76847395-2034-4D73-B3F1-8456F11701F6@gmail.com> References: <1347296838.62382.YahooMailNeo@web141005.mail.bf1.yahoo.com> <76847395-2034-4D73-B3F1-8456F11701F6@gmail.com> Message-ID: <20120911093506.GB15653@math2.nat.tu-bs.de> Alexander Hulpke wrote: > Both GL_n(Z) and the automorphism group of a free group do not fit either of these two classes, so calling `IsomorphismFpGroup' for such a group will simply yield an error message. Actually, the fga package does provide a method for IsomorphismFpGroup for automorphism groups of free groups, see http://www.gap-system.org/Manuals/pkg/fga/htm/CHAP002.htm#SECT004 Abdulsatar, in a private mail you also asked about IsomorphismFpGroup for automorphism groups of free groups. Here you are asking about the automorphism group of free *abelian* groups. I'm sorry to inform you that the fga package doesn't handle that case. If you're also interested in the non-abelian case and have trouble there, please give me details about your problems. All the best, Christian Sievers From johannes.hahn at uni-jena.de Tue Sep 11 18:50:54 2012 From: johannes.hahn at uni-jena.de (Johannes Hahn) Date: Tue, 11 Sep 2012 19:50:54 +0200 Subject: [GAP Forum] Bitwise operations Message-ID: <504F79FE.4090302@uni-jena.de> Dear forum, I have a graph whose vertices are subsets of some fixed finite set S, maybe {1,...,n} or {0,...,n-1} or something like that. Now I want to write a function that, given n, outputs the adjacency matrix of this graph. In particular this would be a 2^n by 2^n matrix. Now matrices are indexed by integers. In any normal programming language I would just use integers from 0 to 2^n-1 and bitwise operations to translate from sets to integers. Is there a reasonable way to do that in GAP? I know there are bit-lists that can be used to simulate sets, but there seems to be no method to convert integers to bit-lists and vice-versa. Of course I could implement that by myself, but that seems to be a total waste as this is really a no-cost-operation (if I understand the GAP manual correctly the internal representation of bit-lists are just integers, so there is really nothing to convert here) while a manual implementation by iterated integer division by 2 has a nontrivial cost. Since I not only want to use integers to enumerate subsets of S that one time but instead switching back and forth between sets and integers all the time (e.g. to use the total ordering of the power set of S that is induced by this bijection), I'd really prefer no-cost-operations. Is there an elegant way to do this, maybe with some undocumented functions? Johannes Hahn. From sal at cs.st-andrews.ac.uk Tue Sep 11 20:06:45 2012 From: sal at cs.st-andrews.ac.uk (Stephen Linton) Date: Tue, 11 Sep 2012 20:06:45 +0100 Subject: [GAP Forum] Bitwise operations In-Reply-To: References: Message-ID: <054D3206-F087-422D-8B3B-E9A86B71C65C@cs.st-andrews.ac.uk> Dear Johannes, It would help us to answer your question to know roughly how large n is. Could you give us an idea? Thanks Steve On 11 Sep 2012, at 18:50, Johannes Hahn wrote: > Dear forum, > > I have a graph whose vertices are subsets of some fixed finite set S, > maybe {1,...,n} or {0,...,n-1} or something like that. Now I want to > write a function that, given n, outputs the adjacency matrix of this > graph. In particular this would be a 2^n by 2^n matrix. Now matrices are > indexed by integers. In any normal programming language I would just use > integers from 0 to 2^n-1 and bitwise operations to translate from sets > to integers. Is there a reasonable way to do that in GAP? > I know there are bit-lists that can be used to simulate sets, but there > seems to be no method to convert integers to bit-lists and vice-versa. > Of course I could implement that by myself, but that seems to be a total > waste as this is really a no-cost-operation (if I understand the GAP > manual correctly the internal representation of bit-lists are just > integers, so there is really nothing to convert here) while a manual > implementation by iterated integer division by 2 has a nontrivial cost. > Since I not only want to use integers to enumerate subsets of S that one > time but instead switching back and forth between sets and integers all > the time (e.g. to use the total ordering of the power set of S that is > induced by this bijection), I'd really prefer no-cost-operations. > > Is there an elegant way to do this, maybe with some undocumented functions? > > > Johannes Hahn. > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From johannes.hahn at uni-jena.de Tue Sep 11 20:13:33 2012 From: johannes.hahn at uni-jena.de (Johannes Hahn) Date: Tue, 11 Sep 2012 21:13:33 +0200 Subject: [GAP Forum] Bitwise operations In-Reply-To: <054D3206-F087-422D-8B3B-E9A86B71C65C@cs.st-andrews.ac.uk> References: <054D3206-F087-422D-8B3B-E9A86B71C65C@cs.st-andrews.ac.uk> Message-ID: <504F8D5D.9000600@uni-jena.de> Hi Stephen. n is pretty small. I would be perfectly happy if there was a solution for let's say n<=10 so that everything would fit easily into a 32bit integer. The adjacency matrix is not sparse in general, so it would be very time- and memory-consuming to fill the matrix for much bigger n. My hope is of course, that the conjecture I would like to test, is either true for all n or at least that it fails for some n<=10 :-) Thanks for taking time for this Johannes. Am 11.09.2012 21:06, schrieb Stephen Linton: > Dear Johannes, > > It would help us to answer your question to know roughly how large n is. Could you give us an idea? > > Thanks > > Steve > > On 11 Sep 2012, at 18:50, Johannes Hahn wrote: > >> Dear forum, >> >> I have a graph whose vertices are subsets of some fixed finite set S, >> maybe {1,...,n} or {0,...,n-1} or something like that. Now I want to >> write a function that, given n, outputs the adjacency matrix of this >> graph. In particular this would be a 2^n by 2^n matrix. Now matrices are >> indexed by integers. In any normal programming language I would just use >> integers from 0 to 2^n-1 and bitwise operations to translate from sets >> to integers. Is there a reasonable way to do that in GAP? >> I know there are bit-lists that can be used to simulate sets, but there >> seems to be no method to convert integers to bit-lists and vice-versa. >> Of course I could implement that by myself, but that seems to be a total >> waste as this is really a no-cost-operation (if I understand the GAP >> manual correctly the internal representation of bit-lists are just >> integers, so there is really nothing to convert here) while a manual >> implementation by iterated integer division by 2 has a nontrivial cost. >> Since I not only want to use integers to enumerate subsets of S that one >> time but instead switching back and forth between sets and integers all >> the time (e.g. to use the total ordering of the power set of S that is >> induced by this bijection), I'd really prefer no-cost-operations. >> >> Is there an elegant way to do this, maybe with some undocumented functions? >> >> >> Johannes Hahn. >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum From williamdemeo at gmail.com Wed Sep 12 00:39:32 2012 From: williamdemeo at gmail.com (William DeMeo) Date: Tue, 11 Sep 2012 19:39:32 -0400 Subject: [GAP Forum] GAP on Android In-Reply-To: References: Message-ID: Dear Marek, I for one would be interested in knowing how you accomplished this. Perhaps you would be willing to put together a short webpage with some instructions? ...and maybe this page could be linked to the www.gap-system.org page? Sincerely, William -- William J. DeMeo, Ph.D. Visiting Assistant Professor Department of Mathematics University of South Carolina http://www.math.sc.edu/~williamdemeo mobile:808-298-4874 office:803-777-7510 On Tue, Sep 11, 2012 at 4:11 AM, Marek Mitros wrote: > Dear Forum, > > I am happy to inform that I was able to start GAP session on my mobile today. > > Thank you to Matan Ziv-Av who help me out with this. > > Regards, > Marek > > > On 9/7/12, Marek Mitros wrote: >> Hi, >> >> I am using mobile phone with Android OS. Is there way to obtain >> installable .APK file from GAP community which contains GAP bounded >> with terminal application. I have tried to install GAP for Android >> offered by Matan on this forum but no success. I have no rights to >> execute files on SD card and I have no permissions to copy files to >> internal memory of the phone. The solution would be to have >> installable .APK file. >> >> Best regards, >> Marek Mitros >> > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From matan at svgalib.org Wed Sep 12 07:14:15 2012 From: matan at svgalib.org (Matan Ziv-Av) Date: Wed, 12 Sep 2012 09:14:15 +0300 (IDT) Subject: [GAP Forum] GAP on Android In-Reply-To: References: Message-ID: On Tue, 11 Sep 2012, William DeMeo wrote: > Dear Marek, > > I for one would be interested in knowing how you accomplished this. > Perhaps you would be willing to put together a short webpage with some > instructions? ...and maybe this page could be linked to the > www.gap-system.org page? This is still very experimental but the script worked (with some tweaks) on Samsung Galaxy SII and note, Lenovo tablet and a Sony Ericson, but apparently there are quite a few differences between android systems that make the installation process not so simple. Perhaps it is better to wait with a more "permanent" announcement until a few quirks are worked out. The current instructions for installing without root and without using a huge amount of space on the /data partition are: As a terminal on android you have to use "terminal ide". Note that when first running, you must select the option "install system" in the main menu. https://play.google.com/store/apps/details?id=com.spartacusrex.spartacuside * Download and untar to the /mnt/sdcard directory the file http://my.svgalib.org/android/gap4r5-1.tar.gz This file contains GAP system with a few packages missing, and binaries compiled for arm, linked statically. The fastest way is probably connecting the device to a PC using USB mass storage mode and using the PC to open the file. You can easily tweak the amount of space needed by removing packages you don't need. You can also easily add packages that do not require compiling. * Download the file and save it under /mnt/sdcard http://my.svgalib.org/android/copylink * Open a terminal ide and run the commands: cp /mnt/sdcard/copylink . chmod a+rx ./copylink ./copylink If the last command gives one line of error implying the script did not run, try . ./copylink instead. If it gives a lot of error messages it means the script runs and the errors may be ignored. Now gap shoud be runnable as ./gap4r5/gap.sh If the instruction work for you, I'll be happy to get a report. If they fail, and you have enough expereince with Linux (or Unix), you can probably fix it yourself, I'll be very happy to get a report on what fixes were needed. If the instruction fail and you don't have Linux experience, but have a lot of patience, please report to me, and I can help you to try to get it to work on your system. -- Matan. From marek at mitros.org Wed Sep 12 08:47:39 2012 From: marek at mitros.org (Marek Mitros) Date: Wed, 12 Sep 2012 09:47:39 +0200 Subject: [GAP Forum] GAP on Android In-Reply-To: References: Message-ID: Hello William I can write short instructions how I made GAP working on my mobile and send to the GAP community. GAP owners can decide whether it is worth publishing on web or no. Note however that I am just a user. GAP for Android were compiled by Matan Ziv-Av, who post on this forum as well. I have downloaded GAP version compiled on Android from his page my.svgalib.org. I have also used many instructions from him to cope with Android Linux problems with access rights to files, etc. on my Sony Ericsson Xperia. You need to first have installed some terminal application on which GAP session can be started. For some reason Linux script 'copylink' prepared by Matan did not work properly, so I have executed manually commands from it line by line. GAP installation should be placed on SD card where usually we have more space then on phone internal memory. Unfortunately on SD card we cannot execute programs, so binary files should be located in internal memory and symbolic links created to the GAP folders located on SD card. I have created 100 MB size installation of GAP. I have removed most of the packages and library of small groups. If I need this in future I can just copy new folder to my SD card and make symbolic link to the folder from phone memory. If package contains bin subfolder with some executable than additionally we should copy it to phone memory. Regards, Marek P.S. I have tested that I can use "atlasrep" groups when I copy proper files to the datagens subfolder ! They are not dowloaded automatically since I get some "wget" error, On 9/12/12, William DeMeo wrote: > Dear Marek, > > I for one would be interested in knowing how you accomplished this. > Perhaps you would be willing to put together a short webpage with some > instructions? ...and maybe this page could be linked to the > www.gap-system.org page? > > Sincerely, > William > > > -- > William J. DeMeo, Ph.D. > Visiting Assistant Professor > Department of Mathematics > University of South Carolina > http://www.math.sc.edu/~williamdemeo > mobile:808-298-4874 office:803-777-7510 > > > > On Tue, Sep 11, 2012 at 4:11 AM, Marek Mitros wrote: >> Dear Forum, >> >> I am happy to inform that I was able to start GAP session on my mobile >> today. >> >> Thank you to Matan Ziv-Av who help me out with this. >> >> Regards, >> Marek >> >> >> On 9/7/12, Marek Mitros wrote: >>> Hi, >>> >>> I am using mobile phone with Android OS. Is there way to obtain >>> installable .APK file from GAP community which contains GAP bounded >>> with terminal application. I have tried to install GAP for Android >>> offered by Matan on this forum but no success. I have no rights to >>> execute files on SD card and I have no permissions to copy files to >>> internal memory of the phone. The solution would be to have >>> installable .APK file. >>> >>> Best regards, >>> Marek Mitros >>> >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum > From marek at mitros.org Wed Sep 12 08:59:00 2012 From: marek at mitros.org (Marek Mitros) Date: Wed, 12 Sep 2012 09:59:00 +0200 Subject: [GAP Forum] GAP on Android In-Reply-To: References: Message-ID: FYI I have left following packages in pkg folder for my mobile installation. aclib Alnuth-3.0.0 atlasrep autpgrp crisp cryst crystcat ctbllib fga GAPDoc-1.5.1 io laguna polenta-1.3.1 polycyclic-2.10.1 radiroot resclasses sophus xgap xmod-2.19 The other I have removed. I have also removed "small" folder from main GAP folder. It is not very big (80 MB) but it contains more than 3000 files, so copying to the phone could be slow. Regards, Marek On 9/12/12, Marek Mitros wrote: > Hello William > > I can write short instructions how I made GAP working on my mobile and > send to the GAP community. GAP owners can decide whether it is worth > publishing on web or no. > > Note however that I am just a user. GAP for Android were compiled by > Matan Ziv-Av, who post on this forum as well. I have downloaded GAP > version compiled on Android from his page my.svgalib.org. I have also > used many instructions from him to cope with Android Linux problems > with access rights to files, etc. on my Sony Ericsson Xperia. You need > to first have installed some terminal application on which GAP session > can be started. For some reason Linux script 'copylink' prepared by > Matan did not work properly, so I have executed manually commands from > it line by line. > > GAP installation should be placed on SD card where usually we have > more space then on phone internal memory. Unfortunately on SD card we > cannot execute programs, so binary files should be located in internal > memory and symbolic links created to the GAP folders located on SD > card. > > I have created 100 MB size installation of GAP. I have removed most of > the packages and library of small groups. If I need this in future I > can just copy new folder to my SD card and make symbolic link to the > folder from phone memory. If package contains bin subfolder with some > executable than additionally we should copy it to phone memory. > > Regards, > Marek > > P.S. I have tested that I can use "atlasrep" groups when I copy proper > files to the datagens subfolder ! They are not dowloaded automatically > since I get some "wget" error, > On 9/12/12, William DeMeo wrote: >> Dear Marek, >> >> I for one would be interested in knowing how you accomplished this. >> Perhaps you would be willing to put together a short webpage with some >> instructions? ...and maybe this page could be linked to the >> www.gap-system.org page? >> >> Sincerely, >> William >> >> >> -- >> William J. DeMeo, Ph.D. >> Visiting Assistant Professor >> Department of Mathematics >> University of South Carolina >> http://www.math.sc.edu/~williamdemeo >> mobile:808-298-4874 office:803-777-7510 >> >> >> >> On Tue, Sep 11, 2012 at 4:11 AM, Marek Mitros wrote: >>> Dear Forum, >>> >>> I am happy to inform that I was able to start GAP session on my mobile >>> today. >>> >>> Thank you to Matan Ziv-Av who help me out with this. >>> >>> Regards, >>> Marek >>> >>> >>> On 9/7/12, Marek Mitros wrote: >>>> Hi, >>>> >>>> I am using mobile phone with Android OS. Is there way to obtain >>>> installable .APK file from GAP community which contains GAP bounded >>>> with terminal application. I have tried to install GAP for Android >>>> offered by Matan on this forum but no success. I have no rights to >>>> execute files on SD card and I have no permissions to copy files to >>>> internal memory of the phone. The solution would be to have >>>> installable .APK file. >>>> >>>> Best regards, >>>> Marek Mitros >>>> >>> >>> _______________________________________________ >>> Forum mailing list >>> Forum at mail.gap-system.org >>> http://mail.gap-system.org/mailman/listinfo/forum >> > From darthandrus at gmail.com Wed Sep 12 16:25:19 2012 From: darthandrus at gmail.com (Ivan Andrus) Date: Wed, 12 Sep 2012 17:25:19 +0200 Subject: [GAP Forum] gap-mode now on MELPA Message-ID: <48E23FFB-D2D0-4498-BEAE-2E035B5B31E8@gmail.com> In case anyone is interested I have just made gap-mode available on MELPA, so it can be installed and updated quite easily on newer versions of Emacs. See the instructions at https://bitbucket.org/gvol/gap-mode Let me know if the instructions are unclear, or if you just have a bug or feature request. -Ivan From mbg.nimda at gmail.com Wed Sep 12 18:20:35 2012 From: mbg.nimda at gmail.com (Mbg Nimda) Date: Wed, 12 Sep 2012 19:20:35 +0200 Subject: [GAP Forum] Solving X*A*X^-1 = B for given square matrices A and B; Message-ID: Dear Forum Members, It is indeed possible to solve this by solving the system of equations given by X*A - B*X; if the matrices are n x n then we have to solve n^2 equations in n^2 indeterminates. I use the following code, but I have to run each loop "manually" and I would like to write a for..do...od; loop. rr:=[1..20]*0;; n:=0;; W; #the list of equations n:=n+1; #beginning of the loop 1 r:=W[n]; x_8-x_9+x_10-x_11 d:=11; #this is the only line I have to repeat for each loop and that I would like to be done automatically PolynomialCoefficientsOfPolynomial(r,d); [ x_37-x_39+x_40, -Z(3)^0 ] rr[n]:=[last[1],d]; [ x_37-x_39+x_40, 42 ] for i in [n..20] do r:=W[i]; W[i]:=Value(r, [X(F,d)], [rr[n][1]]); od; So the question is how to obtain the number of the last term of a multivariate polynomial (of degree 1). The purpose of solving this problem is to find a suitable base such that a given nilpotent matrix reduces to diagonal Young blocks. Thanks a lot for any help, Marc Bogaerts From vipul at math.uchicago.edu Thu Sep 13 23:41:33 2012 From: vipul at math.uchicago.edu (Vipul Naik) Date: Thu, 13 Sep 2012 17:41:33 -0500 Subject: [GAP Forum] Has anybody created a browser-runnable version of GAP? Message-ID: <20120913224133.GA32022@math.uchicago.edu> Dear GAP forum, I'm wondering whether anybody has considered or implemented a version of GAP that could be run directly in a modern desktop/laptop web browser, so that people can run quick GAP commands online when working from machines that don't have the software installed. If one wanted to create something like this, how would one go about it, and what are the challenges involved? I am aware of SAGE, which is great for many purposes, but it's quite different from GAP and it has a fairly complicated on-boarding process for somebody who just wants to run a few quick commands. Vipul From dima at ntu.edu.sg Fri Sep 14 04:29:06 2012 From: dima at ntu.edu.sg (Dmitrii (Dima) Pasechnik) Date: Fri, 14 Sep 2012 11:29:06 +0800 Subject: [GAP Forum] Has anybody created a browser-runnable version of GAP? In-Reply-To: <20120913224133.GA32022@math.uchicago.edu> References: <20120913224133.GA32022@math.uchicago.edu> Message-ID: Dear Vipul, Sage does not require any "complicated on-boarding process" to run GAP online. Namely, all you need is to login to sagenb.org (using an account from any major OpenID provider, e.g. Google), open a new worksheet, and (important!) to change the input language to GAP (this can be chosen in a pull-down menu atop the worksheet - the default language is Sage). Then you can perfectly run GAP commands. E.g. I just did this on sagenb: s:=SymmetricGroup(6); h:=SylowSubgroup(s,3); Order(h); and the output was, as expected: Sym( [ 1 .. 6 ] ) Group([ (1,2,3), (4,5,6) ]) 9 Tab-completion for GAP commands works; help also works, although you need to put '?' after the keyword. Thus, " for somebody who just wants to run a few quick commands" this is good enough, IMHO. Installing a sage notebook server is indeed a bit tricky, depending upon how secure it needs to be, etc. Last but not the least, let me point out that installing GAP locally is really very easy, much easier than Sage. HTH, Dmitrii On 14 September 2012 06:41, Vipul Naik wrote: > Dear GAP forum, > > I'm wondering whether anybody has considered or implemented a version > of GAP that could be run directly in a modern desktop/laptop web > browser, so that people can run quick GAP commands online when working > from machines that don't have the software installed. > > If one wanted to create something like this, how would one go about > it, and what are the challenges involved? > > I am aware of SAGE, which is great for many purposes, but it's quite > different from GAP and it has a fairly complicated on-boarding process > for somebody who just wants to run a few quick commands. > > Vipul > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum CONFIDENTIALITY:This email is intended solely for the person(s) named and may be confidential and/or privileged.If you are not the intended recipient,please delete it,notify us and do not copy,use,or disclose its content. Towards A Sustainable Earth:Print Only When Necessary.Thank you. From hatlam at gmail.com Fri Sep 14 21:45:06 2012 From: hatlam at gmail.com (Ha T. Lam) Date: Fri, 14 Sep 2012 16:45:06 -0400 Subject: [GAP Forum] Advise on data structure Message-ID: Dear GAP forum, I have objects which are lists of 3 elements. I want to keep them sorted according to the first elements on the lists, which are integers, but I'm not sure what to use as the data structure so that I can make use of GAP's sorting algorithm. Is there anyway to use nested lists in this case? I looked into Hash, but that only accept non-negative integers. Do you have any advise? Best regards, Ha T. Lam From rm43 at evansville.edu Fri Sep 14 22:18:47 2012 From: rm43 at evansville.edu (Robert Morse) Date: Fri, 14 Sep 2012 16:18:47 -0500 Subject: [GAP Forum] Advise on data structure In-Reply-To: References: Message-ID: The sort command allows for user defined orderings. #Here is a user defined ordering ord := function(x,y) return x[1]<=y[1]; end; # A list lst := [[3,2,1],[2,5,1]];; # Sort using the user defined ordering Sort(lst,ord); # See the result lst; #[ [ 2, 5, 1 ], [ 3, 2, 1 ] ] Sort([[3,2],1,[2,5,1], ord); Robert F. Morse On Fri, Sep 14, 2012 at 3:45 PM, Ha T. Lam wrote: > Dear GAP forum, > > I have objects which are lists of 3 elements. I want to keep them sorted > according to the first elements on the lists, which are integers, but I'm > not sure what to use as the data structure so that I can make use of GAP's > sorting algorithm. Is there anyway to use nested lists in this case? I > looked into Hash, but that only accept non-negative integers. > > Do you have any advise? > > Best regards, > > Ha T. Lam > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From paloff at ya.ru Sat Sep 15 09:03:39 2012 From: paloff at ya.ru (Igor Korepanov) Date: Sat, 15 Sep 2012 12:03:39 +0400 Subject: [GAP Forum] Advise on data structure In-Reply-To: References: Message-ID: <934001347696219@web9f.yandex.ru> Interesting command, by the way! Here is what I tried: gap> o := function(x,y) return true; end;; gap> a := [3,2,5,4,7,6,9,8,0,1];; Sort(a,o); a; [ 1, 0, 8, 9, 6, 7, 4, 5, 2, 3 ] gap> :D Igor 15.09.2012, 01:18, "Robert Morse" : > The sort command allows for user defined orderings. > > #Here is a user defined ordering > ord := function(x,y) return x[1]<=y[1]; end; > > # A list > lst := [[3,2,1],[2,5,1]];; > > # Sort using the user defined ordering > Sort(lst,ord); > > # See the result > lst; > #[ [ 2, 5, 1 ], [ 3, 2, 1 ] ] > > Sort([[3,2],1,[2,5,1], ord); > > Robert F. Morse > > On Fri, Sep 14, 2012 at 3:45 PM, Ha T. Lam wrote: > >> ?Dear GAP forum, >> >> ?I have objects which are lists of 3 elements. I want to keep them sorted >> ?according to the first elements on the lists, which are integers, but I'm >> ?not sure what to use as the data structure so that I can make use of GAP's >> ?sorting algorithm. Is there anyway to use nested lists in this case? I >> ?looked into Hash, but that only accept non-negative integers. >> >> ?Do you have any advise? >> >> ?Best regards, >> >> ?Ha T. Lam >> ?_______________________________________________ >> ?Forum mailing list >> ?Forum at mail.gap-system.org >> ?http://mail.gap-system.org/mailman/listinfo/forum > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From ahulpke at gmail.com Mon Sep 17 00:13:37 2012 From: ahulpke at gmail.com (Alexander Hulpke) Date: Sun, 16 Sep 2012 17:13:37 -0600 Subject: [GAP Forum] Solving X*A*X^-1 = B for given square matrices A and B; In-Reply-To: References: Message-ID: <3D670C59-B843-4AF0-A5E1-83B38BBBD2E9@gmail.com> Dear Form, Dear Mark Bogaerts, Mark Bogaerts asked: > r:=W[n]; > x_8-x_9+x_10-x_11 > d:=11; #this is the only line I have to repeat for each loop and > that I would like to be done automatically > PolynomialCoefficientsOfPolynomial(r,d); > [ x_37-x_39+x_40, -Z(3)^0 ] > rr[n]:=[last[1],d]; > [ x_37-x_39+x_40, 42 ] > for i in [n..20] do r:=W[i]; W[i]:=Value(r, [X(F,d)], [rr[n][1]]); od; > > So the question is how to obtain the number of the last term of a > multivariate polynomial (of degree 1). While for the leading term there is a function `LeadingTermOfPolynomial' (that also allows to use different orderings) there is no specific one for the lowest term. However in your situation it seems you are happy to use the ordering GAP uses for a polynomials terms. (This ordering currently is DegLex and unlikely to change, but this is not guaranteed to be stable in perpetuity should we ever change the underlying arithmetic routines.) If you call ExtRepPolynomialRatFun on a polynomial, you get (what is called the ``ExternalRepresentation', meaning a GAP-language object representing the data stored in the object) a list of the form term,coefficient,term,coefficient,... with terms sorted in increasing order. This is very quick, as it essentially just returns a list that is already stored in the polynomial. In your example x_8-x_9+x_10-x_11 you get gap> ExtRepPolynomialRatFun(a); [ [ 11, 1 ], -1, [ 10, 1 ], 1, [ 9, 1 ], -1, [ 8, 1 ], 1 ] That is the lowest term is x_11^1 with coefficient -1. If you know that the degree is 1, you will only need the indeterminate number 11. Hope this helps. Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From marek at mitros.org Wed Sep 19 14:26:28 2012 From: marek at mitros.org (Marek Mitros) Date: Wed, 19 Sep 2012 15:26:28 +0200 Subject: [GAP Forum] Comparing real numbers Message-ID: Hi, I wonder how I could compare real numbers in GAP i.e. cyclotomics which are real. I try Float but it doesn't work for cyclotomics - any advice ? Say my numbers are limited to CF(5) field. Here is example: sigma:=(E(5)+E(5)^4)/2; # = RealPart(E(5)) = (Sqrt(5)-1)/4 = 0.309... is real number. How I can compare whether it is bigger or smaller that 1/2 ? It is known that this number is equal to Another real number in CF(5) is tau:=-RealPart(E(5)^2); # =-(E(5)^2+E(5)^3)/2=(Sqrt(5)+1)/4 = 0.809...=sigma+1/2 How could I develop function comparing elements of the field generated by sigma and tau ? I mean comparison as real numbers. I can obtain coefficients for given number x: Coefficients(Basis(Field(sigma)), x) Using this can I find the position of the number on real axis ? I.e. compare with another field element or rational number ? I would really be nice to have possibility of comparing real subset of cyclotomics are real numbers in GAP. Regards, Marek From marek at mitros.org Thu Sep 20 10:21:04 2012 From: marek at mitros.org (Marek Mitros) Date: Thu, 20 Sep 2012 11:21:04 +0200 Subject: [GAP Forum] Comparing real numbers In-Reply-To: References: Message-ID: Hi again, Since nobody answers I have created following function for comparing real numbers from field CF(5). It works for numbers tau, tau+1/10^4000. It does not for tau, tau + 1/10^5000 (tau is defined below). Regards, Marek # Function for comparing real numbers from CF(5) field # The idea is to use fibonacci sequence approximating irrational number tau= (Sqrt(5)-1)/2 = 0,61803398874989484820458683436564 # Define basis [1,tau] of the Field(tau). Any number x0 from this field can be presented as a*1+b*tau # for rational numbers a,b. Using approximation f(n)/f(n+1) for tau we obtain approximation # x(n)=a+b*f(n)/f(n+1) for x0. # Case 1: compare irrational number x0 with rational number p0. # In this case we look for n such that both x(n) and x(n+1) are greater than p0 or both smaller than p0. # Since all the time irrational x is between x(n) and x(n+1) we know that x is smaller or greater than p0. # Case 2: compare irrational numbers x0 with y0. # Look for n such that we have both [x(n), x(n+1)] are smaller or bigger than both [y(n), y(n+1)]; # function returns tau:=(Sqrt(5)-1)/2; F:=Field(tau); bas:=Basis(F, [1,tau]); # At first try do not look at efficiency; just obtain good result; returns true when x((a+b*Fibonacci(n)/Fibonacci(n+1)y) and (a+b*Fibonacci(n+1)/Fibonacci(n+2)>y)) ); if n= fail then Print("Cannot compare using maxn approximation\n"); return fail; fi; return (a+b*Fibonacci(n)/Fibonacci(n+1)((a+b*Fibonacci(n)/Fibonacci(n+1)>x) and (a+b*Fibonacci(n+1)/Fibonacci(n+2)>x)) or ((a+b*Fibonacci(n)/Fibonacci(n+1)x) and (a+b*Fibonacci(n+1)/Fibonacci(n+2)>x); else # both irrational cc:=Coefficients(bas, x); a:=cc[1]; b:=cc[2]; cc:=Coefficients(bas, y); c:=cc[1]; d:=cc[2]; n:=First(nstep*[1..maxn/nstep], n->((a+b*Fibonacci(n)/Fibonacci(n+1)c+d*Fibonacci(n)/Fibonacci(n+1)) and (a+b*Fibonacci(n)/Fibonacci(n+1)>c+d*Fibonacci(n+1)/Fibonacci(n+2)) and (a+b*Fibonacci(n+1)/Fibonacci(n+2)>c+d*Fibonacci(n)/Fibonacci(n+1)) and (a+b*Fibonacci(n+1)/Fibonacci(n+2)>c+d*Fibonacci(n+1)/Fibonacci(n+2))) );\ if n= fail then Print("Cannot compare using maxn approximation\n"); return fail; fi; return ((a+b*Fibonacci(n)/Fibonacci(n+1) wrote: > Hi, > > I wonder how I could compare real numbers in GAP i.e. cyclotomics > which are real. I try Float but it doesn't work for cyclotomics - any > advice ? Say my numbers are limited to CF(5) field. Here is example: > sigma:=(E(5)+E(5)^4)/2; # = RealPart(E(5)) = (Sqrt(5)-1)/4 = 0.309... > is real number. How I can compare whether it is bigger or smaller > that 1/2 ? It is known that this number is equal to Another real > number in CF(5) is > tau:=-RealPart(E(5)^2); # =-(E(5)^2+E(5)^3)/2=(Sqrt(5)+1)/4 = > 0.809...=sigma+1/2 > > How could I develop function comparing elements of the field generated > by sigma and tau ? I mean comparison as real numbers. I can obtain > coefficients for given number x: > Coefficients(Basis(Field(sigma)), x) > Using this can I find the position of the number on real axis ? I.e. > compare with another field element or rational number ? > > I would really be nice to have possibility of comparing real subset of > cyclotomics are real numbers in GAP. > > Regards, > Marek > From L.H.Soicher at qmul.ac.uk Thu Sep 20 11:37:48 2012 From: L.H.Soicher at qmul.ac.uk (Leonard Soicher) Date: Thu, 20 Sep 2012 11:37:48 +0100 Subject: [GAP Forum] Comparing real numbers In-Reply-To: References: Message-ID: <20120920103748.GB30251@maths.qmul.ac.uk> Dear GAP-Forum, The following (not user-documented) DESIGN package service function, or parts of its code, may be of some use. Sturm sequences of polynomials are used. DESIGN_IntervalForLeastRealZero( f, a, b, eps) Suppose that f is a univariate polynomial over the rationals, a,b are rational numbers with a<=b, and eps is a positive rational. If f has no real zero in the closed interval [a,b], then this function returns the empty list []. Otherwise, let alpha be the least real zero of f such that a<=alpha<=b. Then this function returns a list [c,d] of rational numbers, with c<=d, d-c<=eps, and c<=alpha<=d. Moreover, c=d if and only if alpha is rational (in which case alpha=c=d). Regards, Leonard On Thu, Sep 20, 2012 at 11:21:04AM +0200, Marek Mitros wrote: > Hi again, > > Since nobody answers I have created following function for comparing > real numbers from field CF(5). It works for numbers tau, > tau+1/10^4000. It does not for tau, tau + 1/10^5000 (tau is defined > below). > > Regards, > Marek > > > # Function for comparing real numbers from CF(5) field > # The idea is to use fibonacci sequence approximating irrational > number tau= (Sqrt(5)-1)/2 = 0,61803398874989484820458683436564 > # Define basis [1,tau] of the Field(tau). Any number x0 from this > field can be presented as a*1+b*tau > # for rational numbers a,b. Using approximation f(n)/f(n+1) for tau we > obtain approximation > # x(n)=a+b*f(n)/f(n+1) for x0. > # Case 1: compare irrational number x0 with rational number p0. > # In this case we look for n such that both x(n) and x(n+1) are > greater than p0 or both smaller than p0. > # Since all the time irrational x is between x(n) and x(n+1) we know > that x is smaller or greater than p0. > # Case 2: compare irrational numbers x0 with y0. > # Look for n such that we have both [x(n), x(n+1)] are smaller or > bigger than both [y(n), y(n+1)]; > > # function returns > tau:=(Sqrt(5)-1)/2; > F:=Field(tau); > bas:=Basis(F, [1,tau]); > > # At first try do not look at efficiency; just obtain good result; > returns true when x comp_real5:=function(x,y) > local cc,a,b,c,d,n, maxn, nstep; > maxn:=10000; nstep:=100; > if not ([x,y] in F^2) then Print ("Numbers outside the tau field, > cannot compare\n"); return fail; fi; > if x=y then return false; > elif IsRat(x) and IsRat(y) then return x elif IsRat(y) then > cc:=Coefficients(bas, x); a:=cc[1]; b:=cc[2]; > n:=First(nstep*[1..maxn/nstep], > n->((a+b*Fibonacci(n)/Fibonacci(n+1) (a+b*Fibonacci(n+1)/Fibonacci(n+2) or ((a+b*Fibonacci(n)/Fibonacci(n+1)>y) and > (a+b*Fibonacci(n+1)/Fibonacci(n+2)>y)) ); > if n= fail then Print("Cannot compare using maxn > approximation\n"); return fail; fi; > return (a+b*Fibonacci(n)/Fibonacci(n+1) (a+b*Fibonacci(n+1)/Fibonacci(n+2) elif IsRat(x) then > cc:=Coefficients(bas, y); a:=cc[1]; b:=cc[2]; > n:=First(nstep*[1..maxn/nstep], > n->((a+b*Fibonacci(n)/Fibonacci(n+1)>x) and > (a+b*Fibonacci(n+1)/Fibonacci(n+2)>x)) > or ((a+b*Fibonacci(n)/Fibonacci(n+1) (a+b*Fibonacci(n+1)/Fibonacci(n+2) if n= fail then Print("Cannot compare using maxn > approximation\n"); return fail; fi; > return (a+b*Fibonacci(n)/Fibonacci(n+1)>x) and > (a+b*Fibonacci(n+1)/Fibonacci(n+2)>x); > else # both irrational > cc:=Coefficients(bas, x); a:=cc[1]; b:=cc[2]; > cc:=Coefficients(bas, y); c:=cc[1]; d:=cc[2]; > n:=First(nstep*[1..maxn/nstep], > n->((a+b*Fibonacci(n)/Fibonacci(n+1) and > (a+b*Fibonacci(n)/Fibonacci(n+1) and > (a+b*Fibonacci(n+1)/Fibonacci(n+2) and > (a+b*Fibonacci(n+1)/Fibonacci(n+2) or ((a+b*Fibonacci(n)/Fibonacci(n+1)>c+d*Fibonacci(n)/Fibonacci(n+1)) > and > (a+b*Fibonacci(n)/Fibonacci(n+1)>c+d*Fibonacci(n+1)/Fibonacci(n+2)) > and > (a+b*Fibonacci(n+1)/Fibonacci(n+2)>c+d*Fibonacci(n)/Fibonacci(n+1)) > and > (a+b*Fibonacci(n+1)/Fibonacci(n+2)>c+d*Fibonacci(n+1)/Fibonacci(n+2))) > );\ > if n= fail then Print("Cannot compare using maxn > approximation\n"); return fail; fi; > return ((a+b*Fibonacci(n)/Fibonacci(n+1) and > (a+b*Fibonacci(n)/Fibonacci(n+1) and > (a+b*Fibonacci(n+1)/Fibonacci(n+2) and > (a+b*Fibonacci(n+1)/Fibonacci(n+2) fi; > end; > > > > > On 9/19/12, Marek Mitros wrote: > > Hi, > > > > I wonder how I could compare real numbers in GAP i.e. cyclotomics > > which are real. I try Float but it doesn't work for cyclotomics - any > > advice ? Say my numbers are limited to CF(5) field. Here is example: > > sigma:=(E(5)+E(5)^4)/2; # = RealPart(E(5)) = (Sqrt(5)-1)/4 = 0.309... > > is real number. How I can compare whether it is bigger or smaller > > that 1/2 ? It is known that this number is equal to Another real > > number in CF(5) is > > tau:=-RealPart(E(5)^2); # =-(E(5)^2+E(5)^3)/2=(Sqrt(5)+1)/4 = > > 0.809...=sigma+1/2 > > > > How could I develop function comparing elements of the field generated > > by sigma and tau ? I mean comparison as real numbers. I can obtain > > coefficients for given number x: > > Coefficients(Basis(Field(sigma)), x) > > Using this can I find the position of the number on real axis ? I.e. > > compare with another field element or rational number ? > > > > I would really be nice to have possibility of comparing real subset of > > cyclotomics are real numbers in GAP. > > > > Regards, > > Marek > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From A.C.Aitchison at dpmms.cam.ac.uk Thu Sep 20 17:39:18 2012 From: A.C.Aitchison at dpmms.cam.ac.uk (Dr Andrew C Aitchison) Date: Thu, 20 Sep 2012 17:39:18 +0100 (BST) Subject: [GAP Forum] GAP 4.5.5 release In-Reply-To: <54C08EFE-F973-4A71-8EAF-46AA8DDAD5D4@mcs.st-andrews.ac.uk> References: <54C08EFE-F973-4A71-8EAF-46AA8DDAD5D4@mcs.st-andrews.ac.uk> Message-ID: On Thu, 19 Jul 2012, Alexander Konovalov wrote: > Please note that we will regularly update the GAP distribution to include > new versions of GAP packages, but we will not announce each of them to the > Forum. We intend to use the Forum to announce updates of the core GAP > system and only of some packages which may fix serious issues or have > major influence on GAP. I see that 4.5.6 has been released. I had understood "updates of the core GAP system" to mean that I would see an announcement of 4.5.6 here, but I have not. Have I misunderstood ? -- Dr. Andrew C. Aitchison Computer Officer, DPMMS, Cambridge A.C.Aitchison at dpmms.cam.ac.uk http://www.dpmms.cam.ac.uk/~werdna From alexk at mcs.st-andrews.ac.uk Thu Sep 20 17:44:12 2012 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Thu, 20 Sep 2012 17:44:12 +0100 Subject: [GAP Forum] GAP 4.5.6 release Message-ID: Dear GAP Forum, In July 2012 we released the first update to GAP 4.5. We thank all GAP users who have sent us feedback and reported problems after this release. Taking this feedback into account, we have prepared the next update, GAP 4.5.6, which is available now for download from our website http://www.gap-system.org as well as via alternative GAP distributions listed at http://www.gap-system.org/Download/#alternatives You may access the overview of changes in GAP 4.5.6 by entering '?Changes between GAP 4.4 and GAP 4.5' in GAP 4.5.6 and scrolling till the end of the chapter, or view it online at http://www.gap-system.org/Manuals//doc/changes/chap2.html#X79311F9185A267DB In addition, GAP 4.5.6 contains four new packages: AutoDoc, Convex, PolymakeInterface and ToolsForHomalg, as well as new versions of packages cvec, GradedModules and MatricesForHomalg. We encourage all users to upgrade to GAP 4.5.6. If you need any help or would like to report any problems, please do not hesitate to contact us at support at gap-system.org. Please note that we will regularly update the GAP distribution to include new versions of GAP packages, but we will not announce each of them to the Forum. We intend to use the Forum to announce updates of the core GAP system and only of some packages which may fix serious issues or have major influence on GAP. Wishing you fun and success using GAP, The GAP Group From alexk at mcs.st-andrews.ac.uk Thu Sep 20 17:52:58 2012 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Thu, 20 Sep 2012 17:52:58 +0100 Subject: [GAP Forum] GAP 4.5.5 release In-Reply-To: References: <54C08EFE-F973-4A71-8EAF-46AA8DDAD5D4@mcs.st-andrews.ac.uk> Message-ID: <7196F05E-19C2-4FAE-AD81-937F0C359FE4@mcs.st-andrews.ac.uk> Dear Dr. Aitchison, dear GAP Forum, Thank you for this question - yes, we do intend to announce GAP 4.5.6, 4.5.7 etc. - in fact, I've just sent the announcement to the GAP Forum, prompted by your question. What we may not announce each time is when e.g. GAP 4.5.6 will be re-wrapped with an updated selection of packages - these updates will be only listed at http://www.gap-system.org/Releases/index.html Please be aware that not all alternative distributions listed at http://www.gap-system.org/Download/#alternatives may be updated to GAP 4.5.6 simultaneously with making the new release publicly available via the GAP website, though all their maintainers have a commitment to update them within several days. These alternatives normally have a way to figure out easily which version of GAP do they offer. Best wishes, Alexander On 20 Sep 2012, at 17:39, Dr Andrew C Aitchison wrote: > On Thu, 19 Jul 2012, Alexander Konovalov wrote: > >> Please note that we will regularly update the GAP distribution to include >> new versions of GAP packages, but we will not announce each of them to the >> Forum. We intend to use the Forum to announce updates of the core GAP >> system and only of some packages which may fix serious issues or have >> major influence on GAP. > > I see that 4.5.6 has been released. > > I had understood "updates of the core GAP system" to mean that > I would see an announcement of 4.5.6 here, but I have not. > Have I misunderstood ? > > -- > Dr. Andrew C. Aitchison Computer Officer, DPMMS, Cambridge > A.C.Aitchison at dpmms.cam.ac.uk http://www.dpmms.cam.ac.uk/~werdna -- Dr. Alexander Konovalov School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44/0 (1334) 461633 http://www.cs.st-andrews.ac.uk/~alexk Fax +44/0 (1334) 463278 The University of St Andrews is a charity registered in Scotland:No.SC013532 From kroeker at uni-math.gwdg.de Sun Sep 23 14:59:17 2012 From: kroeker at uni-math.gwdg.de (kroeker) Date: Sun, 23 Sep 2012 15:59:17 +0200 Subject: [GAP Forum] manipulating polynomials Message-ID: <505F15B5.5070001@uni-math.gwdg.de> Dear Forum and dear Alexander, recently Marc Bogaerds asked how to get the constant term of a polynomial. Instead of using ExtRepPolynomialRatFun directly it is thinkable to provide additional functions like 'ConstantTerm' or 'CoefficientOfPolynomial' Now you may ask why this is useful? The core GAP polynomial manipulation function set is sufficient but very basic. Extensive polynomial manipulation using ExtRepPolynomialRatFun would be very tedious and computationally expensive ( e.g. coefficient access compexity) and I experienced this in a recent join project to compute Hurwitz map approximations. An example and working definition for 'ConstantTerm' and 'CoefficientOfPolynomial' is attached. In fact, I defined even more useful functions as attached (e.g. evaluating/differentiating a polynomial tensor, coercing polynomials to different rings, counting variables appeared in a polynomial, a more handy format for factors of a polynomial in comparison to 'Factors', etc.) Please let me know, if you would like to see some this functions in a special package or in the GAP core or whatever. Best, Jakob -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: constantTerm URL: From ahulpke at gmail.com Sun Sep 23 20:10:43 2012 From: ahulpke at gmail.com (Alexander Hulpke) Date: Sun, 23 Sep 2012 13:10:43 -0600 Subject: [GAP Forum] manipulating polynomials In-Reply-To: <505F15B5.5070001@uni-math.gwdg.de> References: <505F15B5.5070001@uni-math.gwdg.de> Message-ID: Dear Forum, Dear Jakob Kroeker, The following will be in parts a rather technical response. The executive summary is that GAP sometimes has to do tradeoffs that make its internal data types not perfect for all occasions, but that there are also a multitude of functions to interact with these data types that can be of help. On Sep 23, 2012, at 7:59 AM, kroeker wrote: > The core GAP polynomial manipulation function set is sufficient but very basic. Extensive polynomial manipulation using ExtRepPolynomialRatFun would be very tedious and computationally expensive > ( e.g. coefficient access compexity) and I experienced this in a recent join project to compute Hurwitz map approximations. > > An example and working definition for 'ConstantTerm' and 'CoefficientOfPolynomial' is attached. I'm the first one to admit that the polynomial arithmetic in GAP is not as fast as that in a dedicated ``polynomial'' system. However also a reasonable amount of care has gone into it and it would not be trivial to rebuild equivalent functionality from scratch. A function to access individual coefficients is probably useful for multiple users and I will see to add it to the next version of GAP. However your approach (storing the polynomial a second time in a dictionary) is unnecessarily memory intensive, and (as I believe sorted lists are used inside this type of dictionary anyhow) can be easily be improved upon by doing a binary search directly through the (sorted! polynomials in GAP assume that the terms are stored sorted and if not could produce arithmetic errors!) coefficients. Concretely, I would expect the function InstallMethod(CoefficientOfPolynomial,"binary search in extrep",IsIdenticalObj, [IsPolynomial,IsPolynomial],0, function(pol,mon) local a,b,fam,ep,em,cmp,mid; fam:=FamilyObj(pol); ep:=ExtRepPolynomialRatFun(pol); em:=ExtRepPolynomialRatFun(mon); if Length(em)<>2 or not IsOne(em[2]) then Error("second parameter must be monomial"); fi; em:=em[1]; # binary search in steps of 2 -- this could be in the kernel to be faster cmp:=fam!.zippedSum[1]; # monomial comparison function a:=1; b:=Length(ep)-1; while a (e.g. evaluating/differentiating a polynomial tensor, You are aware of `Derivative'? > coercing polynomials to different rings, Polynomials don't belong to a ring but to a coefficients family. If you want to transfer between finite characteristic and characteristic zero, care has to be taken that the ``right'' interpretation for finite field elements is chosen, e.g. do you want -p/2..p/2 or 0..p-1? > counting variables appeared in a polynomial, There is OccuringVariableIndices from which the number is easily deduced. I realize that not all of this is documented in the manual. If you need a specific function or information about a particular library function please feel free to ask. Best, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From iuliansimion at gmail.com Mon Sep 24 11:24:29 2012 From: iuliansimion at gmail.com (Iulian Simion) Date: Mon, 24 Sep 2012 12:24:29 +0200 Subject: [GAP Forum] manipulating polynomials In-Reply-To: References: <505F15B5.5070001@uni-math.gwdg.de> Message-ID: Dear Forum, Dear Jakob, Dear Alexander, I had some experience with polynomials in GAP (situations where one considers several polynomial rings with a lot of variables, polynomial rings over polynomial rings, etc) and had to implement my one set of functions for polynomial manipulations. The way I see it, the main difficulty is that the ExtRepPolynomialRatFun, the implemented representation of polynomials, seems to label all indeterminates of all polynomial ring instances with integers in some common global list which stacks up during the lifetime of a GAP instance. This has probably good performance reasons and is in my opinion the main reason why one has to go through some tedious book-keeping for good implementations of additional functionality. There is already PositionSorted which searches through a sorted list. Then the function CoefficientOfPolynomial could be a bit shorter: InstallMethod(CoefficientOfPolynomial,"search in sorted extrep",IsIdenticalObj, [IsPolynomial,IsPolynomial],0, function(pol,mon) local ep,em,pos; ep:=ExtRepPolynomialRatFun(pol); em:=ExtRepPolynomialRatFun(mon); if Length(em)<>2 or not IsOne(em[2]) then Error("second parameter must be monomial"); fi; # using PositionSorted (assuming the ext-rep is sorted) pos:=PositionSorted(ep{2*[1..Length(ep)/2]-1},em[1],FamilyObj(pol)!.zippedSum[1]); if ep[2*pos-1]=em[1] then return ep[2*pos]; else return fam!.zeroCoefficient; fi; end); I have many good reasons why I am using GAP but polynomial manipulation is not something the system aims at (at the moment?). I think GAP would have a good chance for fast polynomial manipulations but this would required (as already mentioned) some extensive implementation and probably a rethinking of the Polynomial data structure. all the best, Iulian On Sun, Sep 23, 2012 at 9:10 PM, Alexander Hulpke wrote: > Dear Forum, Dear Jakob Kroeker, > > The following will be in parts a rather technical response. The executive > summary is that GAP sometimes has to do tradeoffs that make its internal > data types not perfect for all occasions, but that there are also a > multitude of functions to interact with these data types that can be of > help. > > On Sep 23, 2012, at 7:59 AM, kroeker wrote: > > > The core GAP polynomial manipulation function set is sufficient but very > basic. Extensive polynomial manipulation using ExtRepPolynomialRatFun would > be very tedious and computationally expensive > > ( e.g. coefficient access compexity) and I experienced this in a recent > join project to compute Hurwitz map approximations. > > > > An example and working definition for 'ConstantTerm' and > 'CoefficientOfPolynomial' is attached. > > I'm the first one to admit that the polynomial arithmetic in GAP is not as > fast as that in a dedicated ``polynomial'' system. However also a > reasonable amount of care has gone into it and it would not be trivial to > rebuild equivalent functionality from scratch. > > A function to access individual coefficients is probably useful for > multiple users and I will see to add it to the next version of GAP. > > However your approach (storing the polynomial a second time in a > dictionary) is unnecessarily memory intensive, and (as I believe sorted > lists are used inside this type of dictionary anyhow) can be easily be > improved upon by doing a binary search directly through the (sorted! > polynomials in GAP assume that the terms are stored sorted and if not could > produce arithmetic errors!) coefficients. Concretely, I would expect the > function > > InstallMethod(CoefficientOfPolynomial,"binary search in > extrep",IsIdenticalObj, > [IsPolynomial,IsPolynomial],0, > function(pol,mon) > local a,b,fam,ep,em,cmp,mid; > > fam:=FamilyObj(pol); > ep:=ExtRepPolynomialRatFun(pol); > em:=ExtRepPolynomialRatFun(mon); > if Length(em)<>2 or not IsOne(em[2]) then > Error("second parameter must be monomial"); > fi; > em:=em[1]; > # binary search in steps of 2 -- this could be in the kernel to be faster > cmp:=fam!.zippedSum[1]; # monomial comparison function > a:=1; > b:=Length(ep)-1; > while a mid:=a+2*QuoInt(b-a,4); > if cmp(ep[mid],em) then > a:=mid+2; > else > b:=mid; > fi; > od; > if a=b and ep[a]=em then > return ep[a+1]; > else > return fam!.zeroCoefficient; > fi; > end); > > to perform as well as the one you proposed while avoiding the storage > duplication. > > I'm a bit reluctant to add ``personal convenience'' functions (such as > ``more handy format for factors'') to the main GAP system as this likely is > dependent on personal preference. > > > (e.g. evaluating/differentiating a polynomial tensor, > You are aware of `Derivative'? > > > coercing polynomials to different rings, > Polynomials don't belong to a ring but to a coefficients family. If you > want to transfer between finite characteristic and characteristic zero, > care has to be taken that the ``right'' interpretation for finite field > elements is chosen, e.g. do you want -p/2..p/2 or 0..p-1? > > > counting variables appeared in a polynomial, > There is OccuringVariableIndices from which the number is easily deduced. > > I realize that not all of this is documented in the manual. If you need a > specific function or information about a particular library function please > feel free to ask. > > Best, > > Alexander Hulpke > > > > > -- Colorado State University, Department of Mathematics, > Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA > email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 > http://www.math.colostate.edu/~hulpke > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From williamdemeo at gmail.com Mon Sep 24 23:10:50 2012 From: williamdemeo at gmail.com (William DeMeo) Date: Mon, 24 Sep 2012 18:10:50 -0400 Subject: [GAP Forum] Different output from Action function in GAP 4.5.5 Message-ID: Dear Forum, I recently tried to reproduce some GAP output for an example that appears in a manuscript that was recently accepted in final form by the publisher. However, using GAP 4.5.5 I now get different output than what appears in my paper. (I wrote the paper while using GAP 4.4.12.) Here's the relevant part of the example: In GAP 4.4.12: gap> g:=Group([(1,2),(1,2,3)]);; gap> G:=Action(g,g,OnRight); Group([ (1,5)(2,4)(3,6), (1,2,3)(4,5,6) ]) gap> for b in AllBlocks(G) do Print(Orbit(G,b,OnSets)-1,"\n"); od; [ [ 0, 4 ], [ 1, 5 ], [ 2, 3 ] ] [ [ 0, 1, 2 ], [ 3, 4, 5 ] ] [ [ 0, 3 ], [ 1, 4 ], [ 2, 5 ] ] [ [ 0, 5 ], [ 2, 4 ], [ 1, 3 ] ] In GAP 4.5.5: gap> g:=Group([(1,2),(1,3,2)]);; gap> G:=Action(g,g,OnRight); Group([ (1,3)(2,4)(5,6), (1,5,4)(2,6,3) ]) gap> for b in AllBlocks(G) do Print(Orbit(G,b,OnSets)-1,"\n"); od; [ [ 0, 2 ], [ 1, 4 ], [ 3, 5 ] ] [ [ 0, 3, 4 ], [ 1, 2, 5 ] ] [ [ 0, 5 ], [ 2, 4 ], [ 1, 3 ] ] [ [ 0, 1 ], [ 2, 3 ], [ 4, 5 ] ] In the paper, I refer to the labels appearing in these blocks, and I really don't want to change all of these references and figures to conform to the GAP 4.5.5 labelling scheme. Is there any way I can get the Action function to produce a group labelled as in the 4.4.12 version? I tried Action(g,AsSortedList(g),OnRight); but that only causes the 4.4.12 labelling to change to the 4.4.5 labelling. Any suggestions would be greatly appreciated. I suppose I could add a footnote in my paper that says these results can only be reproduced using GAP 4.4.12, but obviously that is less than ideal. Thanks! William -- William DeMeo Department of Mathematics University of South Carolina http://www.math.sc.edu/~williamdemeo mobile:808-298-4874 office:803-777-7510 From burkhard at hoefling.name Mon Sep 24 23:56:55 2012 From: burkhard at hoefling.name (=?iso-8859-1?Q?Burkhard_H=F6fling?=) Date: Tue, 25 Sep 2012 00:56:55 +0200 Subject: [GAP Forum] Different output from Action function in GAP 4.5.5 In-Reply-To: References: Message-ID: <7CF28543-BCEA-4D89-A66B-42938C50DE98@hoefling.name> On 2012-09-25, at 00:10 , William DeMeo wrote: > Dear Forum, > > I recently tried to reproduce some GAP output for an example that > appears in a manuscript that was recently accepted in final form by > the publisher. However, using GAP 4.5.5 I now get different output > than what appears in my paper. (I wrote the paper while using GAP > 4.4.12.) Seems that GAP 4.5.5 uses a different list of elements when computing the action. If you use an explicit list of elements, you'll get the previous action: gap> g:=Group([(1,2),(1,2,3)]);; gap> G := Action (g,[ (), (1,2,3), (1,3,2), (2,3), (1,2), (1,3) ], OnRight); Group([ (1,5)(2,4)(3,6), (1,2,3)(4,5,6) ]) gap> for b in AllBlocks(G) do Print(Orbit(G,b,OnSets)-1,"\n"); od; [ [ 0, 4 ], [ 1, 5 ], [ 2, 3 ] ] [ [ 0, 1, 2 ], [ 3, 4, 5 ] ] [ [ 0, 3 ], [ 1, 4 ], [ 2, 5 ] ] [ [ 0, 5 ], [ 2, 4 ], [ 1, 3 ] ] Actually, you could have used `Enumerator(G)' instead of the elements list, but then that enumerator could also change in the future. Cheers Burkhard. From williamdemeo at gmail.com Mon Sep 24 23:59:15 2012 From: williamdemeo at gmail.com (William DeMeo) Date: Mon, 24 Sep 2012 18:59:15 -0400 Subject: [GAP Forum] Different output from Action function in GAP 4.5.5 In-Reply-To: <7CF28543-BCEA-4D89-A66B-42938C50DE98@hoefling.name> References: <7CF28543-BCEA-4D89-A66B-42938C50DE98@hoefling.name> Message-ID: Thank you very much. Alexander sent me a similar answer. Thank you both! -William On Mon, Sep 24, 2012 at 6:56 PM, Burkhard H?fling wrote: > > On 2012-09-25, at 00:10 , William DeMeo wrote: > >> Dear Forum, >> >> I recently tried to reproduce some GAP output for an example that >> appears in a manuscript that was recently accepted in final form by >> the publisher. However, using GAP 4.5.5 I now get different output >> than what appears in my paper. (I wrote the paper while using GAP >> 4.4.12.) > > Seems that GAP 4.5.5 uses a different list of elements when computing the action. If you use an explicit list of elements, you'll get the previous action: > > gap> g:=Group([(1,2),(1,2,3)]);; > gap> G := Action (g,[ (), (1,2,3), (1,3,2), (2,3), (1,2), (1,3) ], OnRight); > Group([ (1,5)(2,4)(3,6), (1,2,3)(4,5,6) ]) > gap> for b in AllBlocks(G) do Print(Orbit(G,b,OnSets)-1,"\n"); od; > [ [ 0, 4 ], [ 1, 5 ], [ 2, 3 ] ] > [ [ 0, 1, 2 ], [ 3, 4, 5 ] ] > [ [ 0, 3 ], [ 1, 4 ], [ 2, 5 ] ] > [ [ 0, 5 ], [ 2, 4 ], [ 1, 3 ] ] > > Actually, you could have used `Enumerator(G)' instead of the elements list, but then that enumerator could also change in the future. > > Cheers > > Burkhard. > > From benjamin.sambale at gmail.com Tue Sep 25 16:02:58 2012 From: benjamin.sambale at gmail.com (Benjamin Sambale) Date: Tue, 25 Sep 2012 17:02:58 +0200 Subject: [GAP Forum] bug in StructureDescription? Message-ID: <5061C7A2.2020807@gmail.com> Hi, I use GAP 4.5.6 on arch linux 64 bit and just came across the following strange behavior: Define a certain group of order 7^6 by p:=7; F:=FreeGroup("a","b","c","d","e","f"); AssignGeneratorVariables(F); G:=F/[a^p,b^p,c^p,d^p,e^p,f^p,Comm(b,a)*c^-1,Comm(c,a)*d^-1,Comm(d,a)*e^-1,Comm(d,b)*f^-1,Comm(e,b)*f^-1, Comm(d,c)*f,Comm(a,e),Comm(a,f),Comm(b,c),Comm(b,f),Comm(c,e),Comm(c,f),Comm(d,e),Comm(d,f),Comm(e,f)]; G:=Image(IsomorphismPermGroup(G)); (sorry for lack of minimality) Then one can check that: gap> DerivedSubgroup(G)=FrattiniSubgroup(G); true Moreover: gap> StructureDescription(DerivedSubgroup(G)); "C7 x ((C7 x C7) : C7)" However: gap> StructureDescription(FrattiniSubgroup(G)); Error, Record: '.permpcgsNormalSteps' must have an assigned value Even more interesting, if I apply the same command again, I get: gap> StructureDescription(FrattiniSubgroup(G)); Error, illegal access to record component `Unbind(obj.relativeOrders)' of the object . (Objects by default do not have record components. The error might be a relic from translated GAP3 code.) What is wrong here? (I know that StructureDescription is of little use here anyway.) Benjamin From hulpke at me.com Fri Sep 28 16:18:56 2012 From: hulpke at me.com (hulpke at me.com) Date: Fri, 28 Sep 2012 09:18:56 -0600 Subject: [GAP Forum] bug in StructureDescription? In-Reply-To: <5061C7A2.2020807@gmail.com> References: <5061C7A2.2020807@gmail.com> Message-ID: <1367E425-B904-4EF1-8D5E-DCB7216ECF91@me.com> Dear Benjamin Sambale, Thank you very much for reporting this bug. It will be corrected in the next release. > What is wrong here? (I know that StructureDescription is of little use here anyway.) The library code for working with PCGS for permutation groups assumed that the PCGS (policyclic generating set) for a new group has an entry permpcgsNormalSteps, indicating how the pcgs fits to an elementary abelian series. This is not true for PCGS created by the package `crisp' and the library code therefore needs to check for this property. (Starting GAP without loading the package ``crisp'' thus is a tremporary workaround.) Best, Alexander From graham.ellis at nuigalway.ie Fri Sep 28 17:03:03 2012 From: graham.ellis at nuigalway.ie (Ellis, Grahamj) Date: Fri, 28 Sep 2012 17:03:03 +0100 Subject: [GAP Forum] Has anybody created a browser-runnable version of GAP? References: <20120913224133.GA32022@math.uchicago.edu> Message-ID: <47C2E007B3E98F4E8BBC7997F007CE131077120B@EVS1.ac.nuigalway.ie> Dear Vipul, An undergraduate student at Galway started to build a web browser for GAP as a summer project. You are welcome to try it at http://artin.nuigalway.ie/gap_calculator/gap_terminal . Graham School of Mathematics, Statistics and Applied Mathematics National University of Ireland, Galway http://hamilton.nuigalway.ie -----Original Message----- From: forum-bounces at gap-system.org on behalf of Vipul Naik Sent: Thu 9/13/2012 23:41 To: forum at gap-system.org Subject: [GAP Forum] Has anybody created a browser-runnable version of GAP? Dear GAP forum, I'm wondering whether anybody has considered or implemented a version of GAP that could be run directly in a modern desktop/laptop web browser, so that people can run quick GAP commands online when working from machines that don't have the software installed. If one wanted to create something like this, how would one go about it, and what are the challenges involved? I am aware of SAGE, which is great for many purposes, but it's quite different from GAP and it has a fairly complicated on-boarding process for somebody who just wants to run a few quick commands. Vipul _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From algebra.tau at gmail.com Sat Sep 29 11:25:28 2012 From: algebra.tau at gmail.com (TMU) Date: Sat, 29 Sep 2012 13:55:28 +0330 Subject: [GAP Forum] I need help Message-ID: Dear gap forum; I want to save my workspace qua when exit the gap and return, i access to my work. How does it. please help me. Best regards From williamdemeo at gmail.com Sat Sep 29 15:50:56 2012 From: williamdemeo at gmail.com (William DeMeo) Date: Sat, 29 Sep 2012 10:50:56 -0400 Subject: [GAP Forum] I need help In-Reply-To: References: Message-ID: You can use the SaveWorkspace command. First do gap> SaveWorkspace("filename"); Then, if you start GAP with the command gap -L filename your workspace will be loaded. This is explained in Chapter 3 of the GAP manual here: http://www.gap-system.org/Manuals/doc/ref/chap3.html#X7CB282757ACB1C09 Hope that helps, William On Sep 29, 2012 6:25 AM, "TMU" wrote: > Dear gap forum; > I want to save my workspace qua when exit the gap and return, i access to > my work. How does it. > please help me. > Best regards > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From algebra.tau at gmail.com Sun Sep 30 11:23:05 2012 From: algebra.tau at gmail.com (TMU) Date: Sun, 30 Sep 2012 13:53:05 +0330 Subject: [GAP Forum] Help Message-ID: Dear ; I want to construct the central extension of group G of group H by group K and find it's subgroups . How can does it? definition of central extension of a group is attached. Best regards ; From zeinab_foruzanfar at iust.ac.ir Sun Sep 30 17:43:41 2012 From: zeinab_foruzanfar at iust.ac.ir (zeinab foruzanfar) Date: Sun, 30 Sep 2012 20:13:41 +0330 Subject: [GAP Forum] Help Message-ID: Hi I have a problem. Please help me. Let $G$ be a finite group and $N$ is a normal subgroup of $G$. Consider $K_G(A)$ be the number of conjugacy classes of $G$ that intersect $A$ nontrivially. I want to classify groups $G$ in which $K_G(G-N)=4$. Is there a Gap-program to give me the groups satisfying above condition? Thank you Zeinab From zeinab_foruzanfar at iust.ac.ir Mon Oct 1 13:29:44 2012 From: zeinab_foruzanfar at iust.ac.ir (zeinab foruzanfar) Date: Mon, 01 Oct 2012 15:59:44 +0330 Subject: [GAP Forum] Help Message-ID: Hi I have a problem. Please help me. Is there a Gap-Program to give me the order of conjugacy classes representative a Frobenius group with complement $N$ and Kernel $K$. Thanks Zeinab From mbg.nimda at gmail.com Mon Oct 1 15:38:41 2012 From: mbg.nimda at gmail.com (Mbg Nimda) Date: Mon, 1 Oct 2012 16:38:41 +0200 Subject: [GAP Forum] Problem installing GGAP Message-ID: Dear Forum Members, When I installed GGAP on a new PC a got an error starting Gap: This applcation has failed to start because MSVCR100.dll was not found. Re-installing the application may fix thiis problem. I installed this dll in the \WINDOWS\SYSTEM32 I restarted the computer I reinstalled GGAP I restarted the computer But to no avail, I'm still getting the same message. Any help welcome! Marc Bogaerts From algebra56.tau56 at yahoo.com Mon Oct 1 21:55:53 2012 From: algebra56.tau56 at yahoo.com (Ali Nejati) Date: Mon, 1 Oct 2012 13:55:53 -0700 (PDT) Subject: [GAP Forum] Fw: central extension In-Reply-To: <1349124856.42105.YahooMailNeo@web113704.mail.gq1.yahoo.com> References: <1349124856.42105.YahooMailNeo@web113704.mail.gq1.yahoo.com> Message-ID: <1349124953.24642.YahooMailNeo@web113718.mail.gq1.yahoo.com> Dear Gap; How can i find the subgroups of? the central extension Z2.PSL(3, 4) of Z2 by PSL(3, 4)? Best regards; From kashyap at iiserb.ac.in Tue Oct 2 05:31:24 2012 From: kashyap at iiserb.ac.in (Kashyap Rajeevsarathy) Date: Tue, 2 Oct 2012 10:01:24 +0530 Subject: [GAP Forum] Listing the class representatives of PGL(2, Z/pZ) and PSL(2, Z/pZ) Message-ID: Dear Forum, Is there a way to make GAP list the elements the elements of the class representatives of class representatives of PGL(2,Z/pZ) and PGL(2,Z/pZ) as 2x2 matrices? Thanks, Kashyap From kroeker at uni-math.gwdg.de Tue Oct 2 16:24:29 2012 From: kroeker at uni-math.gwdg.de (=?utf-8?B?Ikpha29iIEtyw7ZrZXIi?=) Date: Tue, 2 Oct 2012 17:24:29 +0200 Subject: [GAP Forum] Problem installing GGAP In-Reply-To: References: Message-ID: <6d6bc912257e120e24a9e20e0303cda9.squirrel@webmail.uni-math.gwdg.de> Dear Marc, I guess you have to install Microsoft Visual C++ Runtime; you can find it in the web (which version you need depends on your hardware (I guess you bought a 64 bit system?) and maybe on the installed os (XP/Vista/Windows 7) If you still have problems, do not hesitate to ask, but consider the remark at the end ( google it first ) Best, Jakob P.S. did you try to feed Google with the problem ? If not, please try it next time you ask first. On Mon, October 1, 2012 4:38 pm, Mbg Nimda wrote: > Dear Forum Members, > > > When I installed GGAP on a new PC a got an error starting Gap: > > > This applcation has failed to start because MSVCR100.dll was not > found. Re-installing the application may fix thiis problem. > > I installed this dll in the \WINDOWS\SYSTEM32 > > > I restarted the computer > > > I reinstalled GGAP > > > I restarted the computer > > > But to no avail, I'm still getting the same message. > > > Any help welcome! > > > Marc Bogaerts > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > From hulpke at math.colostate.edu Tue Oct 2 16:45:18 2012 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Tue, 2 Oct 2012 09:45:18 -0600 Subject: [GAP Forum] Listing the class representatives of PGL(2, Z/pZ) and PSL(2, Z/pZ) In-Reply-To: References: Message-ID: <9A3CE073-444F-4F9F-890F-79146FB6FFC3@math.colostate.edu> Dear Forum, On Oct 1, 2012, at 10/1/12 10:31, Kashyap Rajeevsarathy wrote: > Dear Forum, > > Is there a way to make GAP list the elements the elements of the class > representatives of class representatives of PGL(2,Z/pZ) and PGL(2,Z/pZ) as > 2x2 matrices? PGL as a permutation group is obtained from GL by acting on 1-dimensional spaces, a corresponding homomorphism is stored in PGL as G!.actionHomomorphism Thus for example: gap> g:=PGL(3,3); Group([ (6,7)(8,11)(9,13)(10,12), (1,2,5,7,13,3,8,6,10,9,12,4,11) ]) gap> hom:=g!.actionHomomorphism; gap> reps:=List(ConjugacyClasses(g),Representative);; gap> List(reps,x->PreImagesRepresentative(hom,x)); will give you a list of matrices representing the classes of PGL. Best, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From mbg.nimda at gmail.com Tue Oct 2 17:45:37 2012 From: mbg.nimda at gmail.com (Mbg Nimda) Date: Tue, 2 Oct 2012 18:45:37 +0200 Subject: [GAP Forum] Fwd: Problem installing GGAP In-Reply-To: <506B027D.1040409@fastmail.fm> References: <67DB26AD-9D92-4F28-AB41-7D75C8F856D9@mcs.st-andrews.ac.uk> <506B027D.1040409@fastmail.fm> Message-ID: On 2 October 2012 17:04, Yevgen Muntyan wrote: > Hi, > > It's my bug, msvcr100.dll should be distributed with ggap, but it's not. To > get it to work, you need to install this package: > http://www.microsoft.com/en-us/download/details.aspx?id=5555. Note that ggap > doesn't really work with GAP 4.5 on windows (it might, if you are lucky, but > most probably it won't). However, it should work fine with GAP 4.4. > > Thank you, > Yevgen > Dear Mr. Yevgen, I did a complete restauration of everithing and it works. Well, in the sense that ggap start up with?ut error, but after it says "loading" it says "GAP not running" so surely you are right it doesn't work with GAP 4.5, but I cant't find GAP 4.4 anywhere so should I give up? Thanks, Marc. From alexk at mcs.st-andrews.ac.uk Tue Oct 2 18:30:11 2012 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Tue, 2 Oct 2012 18:30:11 +0100 Subject: [GAP Forum] Fwd: Problem installing GGAP In-Reply-To: References: <67DB26AD-9D92-4F28-AB41-7D75C8F856D9@mcs.st-andrews.ac.uk> <506B027D.1040409@fastmail.fm> Message-ID: <04B96064-FDFF-4FCB-881B-6302D4D14701@mcs.st-andrews.ac.uk> Dear Marc, On 2 Oct 2012, at 17:45, Mbg Nimda wrote: > On 2 October 2012 17:04, Yevgen Muntyan wrote: >> Hi, >> >> It's my bug, msvcr100.dll should be distributed with ggap, but it's not. To >> get it to work, you need to install this package: >> http://www.microsoft.com/en-us/download/details.aspx?id=5555. Note that ggap >> doesn't really work with GAP 4.5 on windows (it might, if you are lucky, but >> most probably it won't). However, it should work fine with GAP 4.4. >> >> Thank you, >> Yevgen >> > Dear Mr. Yevgen, > I did a complete restauration of everithing and it works. Well, in the > sense that ggap start up with?ut error, but after it says "loading" it > says "GAP not running" so surely you are right it doesn't work with > GAP 4.5, but I cant't find GAP 4.4 anywhere so should I give up? GAP 4.4 is still available from our ftp server: explore ftp://ftp.gap-system.org/pub/gap/gap44/ and remember to get two archives, for the core system and for the latest packages. Of course, GAP 4.4.12 is December 2008 and many things have been fixed and/or improved in GAP 4.5 since that time. Hope this helps, Alexander From a.j.t.al-juburie at newcastle.ac.uk Tue Oct 2 15:08:52 2012 From: a.j.t.al-juburie at newcastle.ac.uk (Abdulsatar Al-Juburie) Date: Tue, 2 Oct 2012 14:08:52 +0000 Subject: [GAP Forum] Question Message-ID: <5CA877F40086AF4BA25CA77918641744015005@EXMBDB01.campus.ncl.ac.uk> Dear Forum, In fact I deal with a simple graph Gamma, so if the vertex set V= [x1, ... ,xn] and E = [[xi1 , xi2], ... ,[xik , xi(k+1)]]. However, I ask it's possible in Gap to make elements of E multisets of size 2 , and if it's possible can you give me an example please. I would be appreciated if you could help me in this matter. Best Regards, Abdulsatar From muntyan at fastmail.fm Tue Oct 2 22:12:10 2012 From: muntyan at fastmail.fm (Yevgen Muntyan) Date: Tue, 02 Oct 2012 14:12:10 -0700 Subject: [GAP Forum] Fwd: Problem installing GGAP In-Reply-To: References: <67DB26AD-9D92-4F28-AB41-7D75C8F856D9@mcs.st-andrews.ac.uk> <506B027D.1040409@fastmail.fm> Message-ID: <1349212330.8161.140661135645497.27ED2907@webmail.messagingengine.com> On Tue, Oct 2, 2012, at 09:45, Mbg Nimda wrote: > On 2 October 2012 17:04, Yevgen Muntyan wrote: > > Hi, > > > > It's my bug, msvcr100.dll should be distributed with ggap, but it's not. To > > get it to work, you need to install this package: > > http://www.microsoft.com/en-us/download/details.aspx?id=5555. Note that ggap > > doesn't really work with GAP 4.5 on windows (it might, if you are lucky, but > > most probably it won't). However, it should work fine with GAP 4.4. > > > > Thank you, > > Yevgen > > > Dear Mr. Yevgen, > I did a complete restauration of everithing and it works. Well, in the > sense that ggap start up with?ut error, but after it says "loading" it > says "GAP not running" so surely you are right it doesn't work with > GAP 4.5, but I cant't find GAP 4.4 anywhere so should I give up? Yes, giving up is pretty much the only option. It's sad, but it is what it is. Sorry about that. Thanks, Yevgen From marek at mitros.org Wed Oct 3 13:13:18 2012 From: marek at mitros.org (Marek Mitros) Date: Wed, 3 Oct 2012 14:13:18 +0200 Subject: [GAP Forum] Sqrt(1+2i) Message-ID: Dear Forum Users, I need to calculate Sqrt(1+2i) i.e. find the complex number z=a+bi such that z^2=(1+2i). Using traditional pen and paper I calculated that a=Sqrt((1+Sqrt(5))/2) and b=Sqrt((Sqrt(5)-1)/2). But how to express these numbers in GAP ? Is this number cyclotomic or not ? Using formula for tangent (x/2) = (1-cos(x))/sin(x) I obtain number c=1+ ((Sqrt(5)-1)/2)*i which is collinear with needed number i.e. have the same angle. So we have ImaginaryPart(c*(1-2*i))=0. Another question I have is how to normalize complex number in GAP. E.g. I have number c=1+ ((Sqrt(5)-1)/2)*i and I would like to find number c/|c| i.e. lying on unit circle on complex plane. If the |c|^2 is rational then I can apply Sqrt. But this does not work for real cyclotomics. Any advice ? Regards, Marek From Bill.Allombert at math.u-bordeaux1.fr Wed Oct 3 13:39:33 2012 From: Bill.Allombert at math.u-bordeaux1.fr (Bill Allombert) Date: Wed, 3 Oct 2012 14:39:33 +0200 Subject: [GAP Forum] Sqrt(1+2i) In-Reply-To: References: Message-ID: <20121003123933.GB2689@yellowpig> On Wed, Oct 03, 2012 at 02:13:18PM +0200, Marek Mitros wrote: > Dear Forum Users, > > I need to calculate Sqrt(1+2i) i.e. find the complex number z=a+bi > such that z^2=(1+2i). Using traditional pen and paper I calculated > that a=Sqrt((1+Sqrt(5))/2) and b=Sqrt((Sqrt(5)-1)/2). But how to > express these numbers in GAP ? Is this number cyclotomic or not ? This number is not cyclotomic (mostly because 5 is not a square in Z). x:=Indeterminate(Rationals,"x"); t:=GaloisType((x^2-1)^2+4); IsAbelian(TransitiveGroup(4,t)); false Cheers, Bill. From denis_kirilyuk at tut.by Mon Oct 8 13:06:03 2012 From: denis_kirilyuk at tut.by (=?KOI8-R?B?68nSyczAyyDkxc7J0w==?=) Date: Mon, 8 Oct 2012 15:06:03 +0300 Subject: [GAP Forum] (no subject) Message-ID: Hello! Tell me, please. Is there a packages in GAP for n-ary groups? From cesarneyit at gmail.com Mon Oct 8 15:36:11 2012 From: cesarneyit at gmail.com (Cesar Neyit Galindo-Martinez) Date: Mon, 8 Oct 2012 09:36:11 -0500 Subject: [GAP Forum] Invariant cohomology Message-ID: Dear forum users, I need calculate invariant 2 and 3 cocycles. I will explain; suppose that a finite group G acts on a finite group K, then G acts on C^*(K,T) ( T is the complex numbers of module 1), I am interested in H^*(K,T)^G, the cohomology of the G-invariant cochains C^*(K,T)^G. Someone knows how calculate H^*(K,T)^G using GAP? thanks in advance. C?sar -- C?sar Neyit Galindo. URL:https://sites.google.com/site/neyitgalindo/ From marek at mitros.org Tue Oct 9 09:00:50 2012 From: marek at mitros.org (Marek Mitros) Date: Tue, 9 Oct 2012 10:00:50 +0200 Subject: [GAP Forum] AtlasSubgroup Message-ID: Dear Forum, On my work PC functions "AtlasSubgropup" and "AtlasProgram" does not work. However I have proper files copied to the folders C:\gap4r4\pkg\atlasrep\dataword\ C:\gap4r5\pkg\atlasrep\dataword\ I have two installations of GAP - 4.4 and 4.5. On both it is the same. Here is result of example script on GAP 4.4: gap> LoadPackage("atlasrep"); -------------------------------------------------------------------- Loading AtlasRep 1.5.0 (An Atlas of Group Representations) by Robert A. Wilson (http://www.maths.qmw.ac.uk/~raw), Richard A. Parker (richpark at gmx.co.uk), Simon Nickerson (http://web.mat.bham.ac.uk/S.Nickerson), John N. Bray (http://www.maths.qmw.ac.uk/~jnb), and Thomas Breuer (http://www.math.rwth-aachen.de/~Thomas.Breuer). -------------------------------------------------------------------- true gap> g:=AtlasGroup("HN"); gap> sub:=AtlasSubgroup("HN", 3); fail gap> AtlasProgram("HN", "maxes", 3); fail gap> AtlasOfGroupRepresentationsInfo.remote; true gap> AtlasOfGroupRepresentationsInfo.remote:=false; false gap> sub:=AtlasSubgroup("HN", 3); fail and on GAP 4.5 gap> LoadPackage("atlasrep"); true gap> g:=AtlasGroup("HN"); gap> sub:=AtlasSubgroup("HN", 3); fail gap> AtlasProgram("HN", "maxes", 3); fail gap> AtlasOfGroupRepresentationsInfo.remote; true gap> AtlasOfGroupRepresentationsInfo.remote:=false; false gap> sub:=AtlasSubgroup("HN", 3); fail Note that I have file C:\gap4r5\pkg\atlasrep\dataword\HNG1-max3W1 on disk and C:\gap4r4\pkg\atlasrep\dataword\HNG1-max3W1 as well. So AtlasSubgroup should take this file. How can I verify why GAP does not see program files on folder ? On my home PC it is working correctly, but the remote access to Atlas web page works OK and downloads proper file if needed. On work PC the remote access is not working due to some firewall settings I suppose. So I would like GAP to access local files. Regards, Marek From marek at mitros.org Wed Oct 10 17:01:13 2012 From: marek at mitros.org (Marek Mitros) Date: Wed, 10 Oct 2012 18:01:13 +0200 Subject: [GAP Forum] AtlasSubgroup In-Reply-To: References: Message-ID: Hello again, I would like to thank you to Thomas Breuer who help me out to solve the problem. The reason was Winzip who when unzipping the MeatAxe program files to atlasrep/dataword folder added chr(13) before chr(10) (\r before \n) in each line of the file. It caused that GAP has not understood the MeatAxe format. When I unzipped using RAR then it is OK now. I have unzipped the file http://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep/atlasrepdata.tar.gz with all atlas files from datagens and dataword subfolders. Regards, Marek On 10/9/12, Marek Mitros wrote: > Dear Forum, > > On my work PC functions "AtlasSubgropup" and "AtlasProgram" does not > work. However I have proper files copied to the folders > C:\gap4r4\pkg\atlasrep\dataword\ > C:\gap4r5\pkg\atlasrep\dataword\ > > I have two installations of GAP - 4.4 and 4.5. On both it is the same. > Here is result of example script on GAP 4.4: > > gap> LoadPackage("atlasrep"); > -------------------------------------------------------------------- > Loading AtlasRep 1.5.0 (An Atlas of Group Representations) > by Robert A. Wilson (http://www.maths.qmw.ac.uk/~raw), > Richard A. Parker (richpark at gmx.co.uk), > Simon Nickerson (http://web.mat.bham.ac.uk/S.Nickerson), > John N. Bray (http://www.maths.qmw.ac.uk/~jnb), and > Thomas Breuer (http://www.math.rwth-aachen.de/~Thomas.Breuer). > -------------------------------------------------------------------- > true > gap> g:=AtlasGroup("HN"); > > gap> sub:=AtlasSubgroup("HN", 3); > fail > gap> AtlasProgram("HN", "maxes", 3); > fail > gap> AtlasOfGroupRepresentationsInfo.remote; > true > gap> AtlasOfGroupRepresentationsInfo.remote:=false; > false > gap> sub:=AtlasSubgroup("HN", 3); > fail > > and on GAP 4.5 > > gap> LoadPackage("atlasrep"); > true > gap> g:=AtlasGroup("HN"); > > gap> sub:=AtlasSubgroup("HN", 3); > fail > gap> AtlasProgram("HN", "maxes", 3); > fail > gap> AtlasOfGroupRepresentationsInfo.remote; > true > gap> AtlasOfGroupRepresentationsInfo.remote:=false; > false > gap> sub:=AtlasSubgroup("HN", 3); > fail > > Note that I have file C:\gap4r5\pkg\atlasrep\dataword\HNG1-max3W1 on > disk and C:\gap4r4\pkg\atlasrep\dataword\HNG1-max3W1 as well. So > AtlasSubgroup should take this file. How can I verify why GAP does not > see program files on folder ? > > On my home PC it is working correctly, but the remote access to Atlas > web page works OK and downloads proper file if needed. On work PC the > remote access is not working due to some firewall settings I suppose. > So I would like GAP to access local files. > > Regards, > Marek > From benjamin.sambale at gmail.com Tue Oct 23 12:06:50 2012 From: benjamin.sambale at gmail.com (Benjamin) Date: Tue, 23 Oct 2012 13:06:50 +0200 Subject: [GAP Forum] Sylow 7-subgroup of the Monster Message-ID: <50867A4A.3010406@gmail.com> Dear all, how can I construct a Sylow 7-subgroup of the Monster group in GAP? Best wishes, Benjamin From benjamin.sambale at gmail.com Wed Oct 24 08:56:35 2012 From: benjamin.sambale at gmail.com (Benjamin Sambale) Date: Wed, 24 Oct 2012 09:56:35 +0200 Subject: [GAP Forum] Sylow 7-subgroup of the Monster In-Reply-To: <20121024072557.GA15573@gemma.math.rwth-aachen.de> References: <50867A4A.3010406@gmail.com> <20121024072557.GA15573@gemma.math.rwth-aachen.de> Message-ID: <50879F33.5070603@gmail.com> Dear Thomas, thanks a lot for your help! In the mean time, Burkhard K?lshammer and I determined the isomorphism type by theoretical arguments. In case this is of any interest, the Sylow 7-subgroup of the Monster is characterized by the following data: Size: 7^6, Exponent: 7, 7-Rank: 3, contains 7^{1+4}_+. Best wishes, Benjamin Am 24.10.2012 09:25, schrieb Thomas Breuer: > Dear Benjamin, dear GAP Forum, > > if the embedding into the Monster group need not be explicit > then the following works. > > The current version of GAP's character table library contains > a few character tables of subgroups of the Monster group > that contain a Sylow 7 subgroup of the Monster group. > > gap> m:= CharacterTable( "M" ); > CharacterTable( "M" ) > gap> Collected( Factors( Size( m ) ) ); > [ [ 2, 46 ], [ 3, 20 ], [ 5, 9 ], [ 7, 6 ], [ 11, 2 ], [ 13, 3 ], > [ 17, 1 ], [ 19, 1 ], [ 23, 1 ], [ 29, 1 ], [ 31, 1 ], [ 41, 1 ], > [ 47, 1 ], [ 59, 1 ], [ 71, 1 ] ] > gap> src:= NamesOfFusionSources( m );; > gap> srctbls:= List( src, CharacterTable );; > gap> filt:= Filtered( srctbls, x -> Size( x ) mod 7^6 = 0 ); > [ CharacterTable( "7^(2+1+2):GL2(7)" ), > CharacterTable( "7^(1+4):(3x2.S7)" ), CharacterTable( "7^1+4.2A7" ) ] > > For some of these character tables, a construction of the corresponding > group is known. > > gap> info:= List( filt, GroupInfoForCharacterTable ); > [ [ [ "AtlasGroup", [ "7^(2+1+2):GL2(7)" ] ] ], > [ [ "AtlasGroup", [ "7^(1+4):(3x2.S7)" ] ] ], [ ] ] > gap> g:= GroupForGroupInfo( info[1][1] ); > > gap> syl:= SylowSubgroup( g, 7 ); > > gap> pc:= Image( IsomorphismPcGroup( syl ) ); > Group([ f1, f2, f3, f4, f5, f6 ]) > > I hope this helps. > > All the best, > Thomas > > > On Tue, Oct 23, 2012 at 01:06:50PM +0200, Benjamin wrote: >> Dear all, >> >> how can I construct a Sylow 7-subgroup of the Monster group in GAP? >> >> Best wishes, >> Benjamin > From a.j.t.al-juburie at newcastle.ac.uk Sun Oct 7 20:17:50 2012 From: a.j.t.al-juburie at newcastle.ac.uk (Abdulsatar Al-Juburie) Date: Sun, 07 Oct 2012 19:17:50 -0000 Subject: [GAP Forum] subsets Message-ID: <5CA877F40086AF4BA25CA7791864174401B8C2@EXMBCT01.campus.ncl.ac.uk> Dear GAP forum, Let X be a finite set and let x be a fixed element of X. Is there any function in GAP that generates all subsets of X that contains x. Best wishes Abdulsatar From stefan at mcs.st-and.ac.uk Wed Oct 24 10:39:30 2012 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Wed, 24 Oct 2012 10:39:30 +0100 (BST) Subject: [GAP Forum] subsets In-Reply-To: <5CA877F40086AF4BA25CA7791864174401B8C2@EXMBCT01.campus.ncl.ac.uk> References: <5CA877F40086AF4BA25CA7791864174401B8C2@EXMBCT01.campus.ncl.ac.uk> Message-ID: Dear Forum, Abdulsatar Al-Juburie asked: > Let X be a finite set and let x be a fixed element of X. > Is there any function in GAP that generates all subsets of X that contains x. Provided that the set X is small enough such that the desired list of subsets fits into the memory of the computer, the following statement will do what you want: List(Combinations(Difference(X,[x])),Y->Union(Y,[x])); Hope this helps, Stefan Kohl From alexk at mcs.st-andrews.ac.uk Wed Oct 24 15:38:56 2012 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Wed, 24 Oct 2012 15:38:56 +0100 Subject: [GAP Forum] subsets In-Reply-To: References: <5CA877F40086AF4BA25CA7791864174401B8C2@EXMBCT01.campus.ncl.ac.uk> Message-ID: <4BEA6EC3-8D87-47E8-8606-35F3D921A666@mcs.st-andrews.ac.uk> On 24 Oct 2012, at 10:39, Stefan Kohl wrote: > Dear Forum, > > Abdulsatar Al-Juburie asked: > >> Let X be a finite set and let x be a fixed element of X. >> Is there any function in GAP that generates all subsets of X that contains x. > > Provided that the set X is small enough such that the desired list > of subsets fits into the memory of the computer, the following statement > will do what you want: > > List(Combinations(Difference(X,[x])),Y->Union(Y,[x])); Additionally, if one needs to enumerate such subsets, but not necessarily keep all of them in the memory at the same time, then these two functions (which were introduced in GAP 4.5) may be useful: * IteratorOfCombinations( mset[, k] ) * EnumeratorOfCombinations( mset ) They may be helpful when the desired list of subsets is not fitting into the memory, but its enumeration is still feasible, or when one wants to enumerate them in parallel. To see the documentation, enter `?IteratorOfCombinations' or `?EnumeratorOfCombinations' in GAP. Hope this helps, Alexander From sandeepr.murthy at gmail.com Thu Oct 25 00:59:09 2012 From: sandeepr.murthy at gmail.com (Sandeep Murthy) Date: Thu, 25 Oct 2012 00:59:09 +0100 Subject: [GAP Forum] Problem installing GAP 4.5 using BOB Message-ID: Hi, I am unable to install GAP 4.5 using BOB. I think I followed all the instructions on this page: http://www.cs.st-andrews.ac.uk/~neunhoef/Computer/Software/Gap/bob.html#installprereq . Firstly, I am running Mac OS X 10.8.2 on a new system, which did not have Xcode. So I started by installing XCode, and then installing MacPorts. After this I downloaded bob-osx.dmg, and then ran that. I then ran the 'bob' script, but I got the following output: -------------------------------------------------------------------------------------------------------------------------------------------------- sudo port install readline +universal ncurses +universal gawk wget xorg-libX11 xorg-libXaw WARNING: Improper use of the sudo command could lead to data loss or the deletion of important system files. Please double-check your typing when using sudo. Type "man sudo" for more information. To proceed, enter your password, or type Ctrl-C to abort. Password: Warning: The Command Line Tools for Xcode don't appear to be installed; most ports will likely fail to build. Warning: See http://guide.macports.org/chunked/installing.xcode.html for more information. ---> Computing dependencies for readline ---> Dependencies to be installed: ncurses ---> Fetching archive for ncurses ---> Attempting to fetch ncurses-5.9_1+universal.darwin_12.i386-x86_64.tbz2 from http://lil.fr.packages.macports.org/ncurses ---> Attempting to fetch ncurses-5.9_1+universal.darwin_12.i386-x86_64.tbz2 from http://mse.uk.packages.macports.org/sites/packages.macports.org/ncurses ---> Attempting to fetch ncurses-5.9_1+universal.darwin_12.i386-x86_64.tbz2 from http://packages.macports.org/ncurses ---> Fetching distfiles for ncurses ---> Attempting to fetch ncurses-5.9.tar.gz from ftp://ftp.lip6.fr/pub/gnu/ncurses ---> Verifying checksum(s) for ncurses ---> Extracting ncurses ---> Applying patches to ncurses ---> Configuring ncurses Error: org.macports.configure for port ncurses returned: configure failure: command execution failed Error: Failed to install ncurses Please see the log file for port ncurses for details: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_ncurses/ncurses/main.log Error: The following dependencies were not installed: ncurses To report a bug, follow the instructions in the guide: http://guide.macports.org/#project.tickets Error: Processing of port readline failed -------------------------------------------------------------------------------------------------------------------------------------------------- I don't know what the problem here is. Firstly, it is saying that Xcode is lacking some components, but it is up to date. Could it be a problem with file permissions? I have turned-on FileVault (the file encryption system), and firewall, and have selected a security option which only allows those applications to be run which have been downloaded from the Mac App store or from "identified developers". Any help or suggestions as to how to proceed would be greatly appreciated. Sincerely, Sandeep. From justin at mac.com Thu Oct 25 01:35:07 2012 From: justin at mac.com (Justin C. Walker) Date: Wed, 24 Oct 2012 17:35:07 -0700 Subject: [GAP Forum] Problem installing GAP 4.5 using BOB In-Reply-To: References: Message-ID: <78F270A7-984F-49CC-8672-8AE4752137B2@mac.com> Dear Sandeep, Dear Forum, On Oct 24, 2012, at 16:59 , Sandeep Murthy wrote: > I am unable to install GAP 4.5 using BOB. > > I think I followed all the instructions on this page: > > http://www.cs.st-andrews.ac.uk/~neunhoef/Computer/Software/Gap/bob.html#installprereq > . > > Firstly, I am running Mac OS X 10.8.2 on a new system, which did not have > Xcode. So I started by installing XCode, and then installing MacPorts. > After > this I downloaded bob-osx.dmg, and then ran that. I then ran the 'bob' > script, > but I got the following output: [snip] > Any help or suggestions as to how to proceed would be greatly appreciated. Is it possible that you did not install the command-line tools? With recent versions of Xcode, this is a separate step, done after Xcode installation is done. Open Xcode Preferences, and select Downloads, and then the Components tab. There should be a line for command line tools. If it doesn't say downloaded/installed, click that line to start the installation. Then rerun the Gap installation. If you do have the tools installed, then I'm out of hunches. HTH Justin -- Justin C. Walker, Curmudgeon-At-Large Institute for the Enhancement of the Director's Income -------- Experience is what you get when you don't get what you want. -------- From jfdm at st-andrews.ac.uk Thu Oct 25 01:36:22 2012 From: jfdm at st-andrews.ac.uk (Jan de Muijnck-Hughes) Date: Thu, 25 Oct 2012 00:36:22 +0000 Subject: [GAP Forum] Problem installing GAP 4.5 using BOB In-Reply-To: References: Message-ID: <40D88D18-F8AF-4036-954A-2B335FCBC3EB@st-andrews.ac.uk> Sandeep; One thing to note when installing XCode version 4.3 and later is that the command line tools are not installed by default. To install the command line tools, you have to download them using the 'Components' tab of the 'Downloads' preference pane in the preferences for Xcode. The developer website for Xcode has more information. http://developer.apple.com/library/ios/#documentation/DeveloperTools/Conceptual/WhatsNewXcode/Articles/xcode_4_3.html#//apple_ref/doc/uid/1006-SW1 ------------- -------- ----- --- -- - - Thanking you for your time. Jan de Muijnck-Hughes PhD Candidate School of Computer Science University of St Andrews tel: +44 (0)1334 461624 http://www.cs.st-andrews.ac.uk/~jfdm The University of St Andrews is a charity registered in Scotland No.SCO13532 On 25 Oct 2012, at 00:59, Sandeep Murthy wrote: > Hi, > > I am unable to install GAP 4.5 using BOB. > > I think I followed all the instructions on this page: > > http://www.cs.st-andrews.ac.uk/~neunhoef/Computer/Software/Gap/bob.html#installprereq > . > > Firstly, I am running Mac OS X 10.8.2 on a new system, which did not have > Xcode. So I started by installing XCode, and then installing MacPorts. > After > this I downloaded bob-osx.dmg, and then ran that. I then ran the 'bob' > script, > but I got the following output: > > -------------------------------------------------------------------------------------------------------------------------------------------------- > > sudo port install readline +universal ncurses +universal gawk wget > xorg-libX11 xorg-libXaw > > WARNING: Improper use of the sudo command could lead to data loss > or the deletion of important system files. Please double-check your > typing when using sudo. Type "man sudo" for more information. > > To proceed, enter your password, or type Ctrl-C to abort. > > Password: > Warning: The Command Line Tools for Xcode don't appear to be installed; > most ports will likely fail to build. > Warning: See http://guide.macports.org/chunked/installing.xcode.html for > more information. > ---> Computing dependencies for readline > ---> Dependencies to be installed: ncurses > ---> Fetching archive for ncurses > ---> Attempting to fetch > ncurses-5.9_1+universal.darwin_12.i386-x86_64.tbz2 from > http://lil.fr.packages.macports.org/ncurses > ---> Attempting to fetch > ncurses-5.9_1+universal.darwin_12.i386-x86_64.tbz2 from > http://mse.uk.packages.macports.org/sites/packages.macports.org/ncurses > ---> Attempting to fetch > ncurses-5.9_1+universal.darwin_12.i386-x86_64.tbz2 from > http://packages.macports.org/ncurses > ---> Fetching distfiles for ncurses > ---> Attempting to fetch ncurses-5.9.tar.gz from > ftp://ftp.lip6.fr/pub/gnu/ncurses > ---> Verifying checksum(s) for ncurses > ---> Extracting ncurses > ---> Applying patches to ncurses > ---> Configuring ncurses > Error: org.macports.configure for port ncurses returned: configure failure: > command execution failed > Error: Failed to install ncurses > Please see the log file for port ncurses for details: > /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_ncurses/ncurses/main.log > Error: The following dependencies were not installed: ncurses > To report a bug, follow the instructions in the guide: > http://guide.macports.org/#project.tickets > Error: Processing of port readline failed > > > -------------------------------------------------------------------------------------------------------------------------------------------------- > > I don't know what the problem here is. Firstly, it is saying that Xcode is > lacking some components, > but it is up to date. Could it be a problem with file permissions? I have > turned-on FileVault (the file > encryption system), and firewall, and have selected a security option which > only allows those applications > to be run which have been downloaded from the Mac App store or from > "identified developers". > > Any help or suggestions as to how to proceed would be greatly appreciated. > > Sincerely, Sandeep. > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From sandeepr.murthy at gmail.com Thu Oct 25 01:57:27 2012 From: sandeepr.murthy at gmail.com (Sandeep Murthy) Date: Thu, 25 Oct 2012 01:57:27 +0100 Subject: [GAP Forum] Fwd: Problem installing GAP 4.5 using BOB In-Reply-To: <5676B51C-A34F-452B-885E-50D785A3665F@gmail.com> References: <40D88D18-F8AF-4036-954A-2B335FCBC3EB@st-andrews.ac.uk> <5676B51C-A34F-452B-885E-50D785A3665F@gmail.com> Message-ID: Hi, what is the target directory of the 'bob' script? I've received the following message in the terminal on running this script: Cannot create log file "bob.log" in target directory. Stopping. I am guessing it doesn't have write access in the target directory, which is ... Sandeep. ---------- Forwarded message ---------- From: Sandeep Murthy Date: 25 October 2012 01:46 Subject: Re: [GAP Forum] Problem installing GAP 4.5 using BOB To: Jan de Muijnck-Hughes , GAP forum < forum at gap-system.org> Cc: "Justin C. Walker" Hi, OK, I found the component download within the preferences, and it is downloading the command line tools. Hopefully it will work now. Thanks. Sandeep. On 25 Oct 2012, at 01:36, Jan de Muijnck-Hughes wrote: > Sandeep; > > One thing to note when installing XCode version 4.3 and later is that the command line tools are not installed by default. To install the command line tools, you have to download them using the 'Components' tab of the 'Downloads' preference pane in the preferences for Xcode. > > The developer website for Xcode has more information. > > http://developer.apple.com/library/ios/#documentation/DeveloperTools/Conceptual/WhatsNewXcode/Articles/xcode_4_3.html#//apple_ref/doc/uid/1006-SW1 > > ------------- -------- ----- --- -- - - > Thanking you for your time. > > Jan de Muijnck-Hughes > > PhD Candidate > School of Computer Science > University of St Andrews > > tel: +44 (0)1334 461624 > http://www.cs.st-andrews.ac.uk/~jfdm > > > The University of St Andrews is a charity > registered in Scotland No.SCO13532 > > On 25 Oct 2012, at 00:59, Sandeep Murthy > wrote: > >> Hi, >> >> I am unable to install GAP 4.5 using BOB. >> >> I think I followed all the instructions on this page: >> >> http://www.cs.st-andrews.ac.uk/~neunhoef/Computer/Software/Gap/bob.html#installprereq >> . >> >> Firstly, I am running Mac OS X 10.8.2 on a new system, which did not have >> Xcode. So I started by installing XCode, and then installing MacPorts. >> After >> this I downloaded bob-osx.dmg, and then ran that. I then ran the 'bob' >> script, >> but I got the following output: >> >> -------------------------------------------------------------------------------------------------------------------------------------------------- >> >> sudo port install readline +universal ncurses +universal gawk wget >> xorg-libX11 xorg-libXaw >> >> WARNING: Improper use of the sudo command could lead to data loss >> or the deletion of important system files. Please double-check your >> typing when using sudo. Type "man sudo" for more information. >> >> To proceed, enter your password, or type Ctrl-C to abort. >> >> Password: >> Warning: The Command Line Tools for Xcode don't appear to be installed; >> most ports will likely fail to build. >> Warning: See http://guide.macports.org/chunked/installing.xcode.html for >> more information. >> ---> Computing dependencies for readline >> ---> Dependencies to be installed: ncurses >> ---> Fetching archive for ncurses >> ---> Attempting to fetch >> ncurses-5.9_1+universal.darwin_12.i386-x86_64.tbz2 from >> http://lil.fr.packages.macports.org/ncurses >> ---> Attempting to fetch >> ncurses-5.9_1+universal.darwin_12.i386-x86_64.tbz2 from >> http://mse.uk.packages.macports.org/sites/packages.macports.org/ncurses >> ---> Attempting to fetch >> ncurses-5.9_1+universal.darwin_12.i386-x86_64.tbz2 from >> http://packages.macports.org/ncurses >> ---> Fetching distfiles for ncurses >> ---> Attempting to fetch ncurses-5.9.tar.gz from >> ftp://ftp.lip6.fr/pub/gnu/ncurses >> ---> Verifying checksum(s) for ncurses >> ---> Extracting ncurses >> ---> Applying patches to ncurses >> ---> Configuring ncurses >> Error: org.macports.configure for port ncurses returned: configure failure: >> command execution failed >> Error: Failed to install ncurses >> Please see the log file for port ncurses for details: >> /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_ncurses/ncurses/main.log >> Error: The following dependencies were not installed: ncurses >> To report a bug, follow the instructions in the guide: >> http://guide.macports.org/#project.tickets >> Error: Processing of port readline failed >> >> >> -------------------------------------------------------------------------------------------------------------------------------------------------- >> >> I don't know what the problem here is. Firstly, it is saying that Xcode is >> lacking some components, >> but it is up to date. Could it be a problem with file permissions? I have >> turned-on FileVault (the file >> encryption system), and firewall, and have selected a security option which >> only allows those applications >> to be run which have been downloaded from the Mac App store or from >> "identified developers". >> >> Any help or suggestions as to how to proceed would be greatly appreciated. >> >> Sincerely, Sandeep. >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum > From gordon.royle at uwa.edu.au Thu Oct 25 03:11:56 2012 From: gordon.royle at uwa.edu.au (Gordon Royle) Date: Thu, 25 Oct 2012 10:11:56 +0800 Subject: [GAP Forum] Error with rsync installation Message-ID: <8F1B44C7-6E36-44FE-9D5A-6B984EA50E4E@uwa.edu.au> I got this error when using rsync Creating new workspace. Using gapsync/CreateWorkspace.sh ... (You can customize this by copying gapsync/CreateWorkspace.sh to local/bin/CreateWorkspace and editing this copy.) gapsync/CreateWorkspace.sh: bin/i686-pc-linux-gnu-gcc-default32/gap: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory Also creating new workspace for 64-bit version ... Using gapsync/CreateWorkspace.sh x86_64 ... (You can customize this by copying gapsync/CreateWorkspace.sh to local/bin/CreateWorkspace64 or local/bin/CreateWorkspace and editing this copy.) The 64 bit version appears to work, but the 32-bit version doesn't. System details: $ uname -a Linux ECM-MATHS-015.uniwa.uwa.edu.au 2.6.32-279.2.1.el6.x86_64 #1 SMP Thu Jul 5 21:08:58 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux I could probably get by with the 64-bit version, but just wondered what was happening? Professor Gordon Royle School of Mathematics and Statistics University of Western Australia Gordon.Royle at uwa.edu.au From frank.luebeck at math.rwth-aachen.de Thu Oct 25 08:53:25 2012 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Thu, 25 Oct 2012 09:53:25 +0200 Subject: [GAP Forum] Error with rsync installation In-Reply-To: <8F1B44C7-6E36-44FE-9D5A-6B984EA50E4E@uwa.edu.au> References: <8F1B44C7-6E36-44FE-9D5A-6B984EA50E4E@uwa.edu.au> Message-ID: <20121025075325.GA30545@beteigeuze.math.rwth-aachen.de> On Thu, Oct 25, 2012 at 10:11:56AM +0800, Gordon Royle wrote: > I got this error when using rsync > > Creating new workspace. > Using gapsync/CreateWorkspace.sh ... > (You can customize this by copying gapsync/CreateWorkspace.sh to > local/bin/CreateWorkspace and editing this copy.) > gapsync/CreateWorkspace.sh: bin/i686-pc-linux-gnu-gcc-default32/gap: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory > Also creating new workspace for 64-bit version ... > Using gapsync/CreateWorkspace.sh x86_64 ... > (You can customize this by copying gapsync/CreateWorkspace.sh to > local/bin/CreateWorkspace64 or local/bin/CreateWorkspace > and editing this copy.) > > > The 64 bit version appears to work, but the 32-bit version doesn't. > > System details: > > $ uname -a > Linux ECM-MATHS-015.uniwa.uwa.edu.au 2.6.32-279.2.1.el6.x86_64 #1 SMP Thu Jul 5 21:08:58 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux Dear Gordon, dear Forum, From this I guess that you cannot start any (dynamically linked) 32-bit application on that machine. The requirements for the 32-bit GAP executable are very small, you just need to install the 32-bit version of the standard C library (with the corresponding linker). Your Linux distribution should contain a package for that, called something like libc6-i386 or libc6:i386 or glibc.i686 or similar. I thought that this would be installed by default on almost any x86_64 Linux machine. Best regards, Frank -- /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck at Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From gordon.royle at uwa.edu.au Thu Oct 25 09:33:19 2012 From: gordon.royle at uwa.edu.au (Gordon Royle) Date: Thu, 25 Oct 2012 16:33:19 +0800 Subject: [GAP Forum] Error with rsync installation In-Reply-To: <20121025075325.GA30545@beteigeuze.math.rwth-aachen.de> References: <8F1B44C7-6E36-44FE-9D5A-6B984EA50E4E@uwa.edu.au> <20121025075325.GA30545@beteigeuze.math.rwth-aachen.de> Message-ID: On 25/10/2012, at 3:53 PM, Frank L?beck wrote: The requirements for the 32-bit GAP executable are very small, you just need to install the 32-bit version of the standard C library (with the corresponding linker). Your Linux distribution should contain a package for that, called something like libc6-i386 or libc6:i386 or glibc.i686 or similar. I thought that this would be installed by default on almost any x86_64 Linux machine. OK, thanks. I shall forward this directly to my system administrator. Unfortunately I have so little knowledge of the "nuts and bolts" of linking, compiling, static, dynamic etc, that while I grasp the general meaning of what you said, I have no actual idea of how to "install a 32 bit version of the standard C library", nor where to look for it. :-) However the system is a new Red Hat Enterprise Linux distribution so I am surprised it doesn't come with the bits it needs. When I compiled from scratch instead (configure; make;), no complaints were raised, but perhaps it made only the 64-bit version ?? Thanks again Gordon Professor Gordon Royle School of Mathematics and Statistics University of Western Australia Gordon.Royle at uwa.edu.au From neunhoef at mcs.st-and.ac.uk Thu Oct 25 09:58:59 2012 From: neunhoef at mcs.st-and.ac.uk (Max Neunhoeffer) Date: Thu, 25 Oct 2012 09:58:59 +0100 Subject: [GAP Forum] [GAP Support] Fwd: Problem installing GAP 4.5 using BOB In-Reply-To: References: <40D88D18-F8AF-4036-954A-2B335FCBC3EB@st-andrews.ac.uk> <5676B51C-A34F-452B-885E-50D785A3665F@gmail.com> Message-ID: <20121025085859.GB14755@mcs.st-and.ac.uk> Hi Sandeep and all, indeed BOB's "default target directory" is the directory in which the "bob" executable is. If you clicked on the bob executable in the dmg file it probably tried to write to the dmg file which failed. Alexander's advice is right, copy "bob" to some writable directory and execute it there. If you run it from the command line you can also use the "-t" switch to specify the target directory explicitly. I hope this helps. Cheers, Max. P.S.: I will also upgrade the instructions to the latest of Apple's (successful) tries to annoy me. On Thu, Oct 25, 2012 at 08:51:45AM +0100, Alexander Konovalov wrote: > Hi Sandeep, > > I presume that you're clicking in the script after mounting the .dmg file? > I suspect that it tries to write at the same location. On Lion, it should > use the user's home directory, but just in case this feature does not work > on a newer system, could you try to copy the script to some writable place > and run there? > > Best wishes, > Alexander > > > > On 25 Oct 2012, at 01:57, Sandeep Murthy wrote: > > > Hi, > > > > what is the target directory of the 'bob' script? > > I've received the following message in the terminal > > on running this script: > > > > Cannot create log file "bob.log" in target directory. Stopping. > > > > I am guessing it doesn't have write access in the > > target directory, which is ... > > > > Sandeep. > > > > > > > > > > ---------- Forwarded message ---------- > > From: Sandeep Murthy > > Date: 25 October 2012 01:46 > > Subject: Re: [GAP Forum] Problem installing GAP 4.5 using BOB > > To: Jan de Muijnck-Hughes , GAP forum < > > forum at gap-system.org> > > Cc: "Justin C. Walker" > > > > > > Hi, > > > > OK, I found the component download within > > the preferences, and it is downloading the > > command line tools. > > > > Hopefully it will work now. > > > > Thanks. > > > > Sandeep. > > > > On 25 Oct 2012, at 01:36, Jan de Muijnck-Hughes > > wrote: > > > >> Sandeep; > >> > >> One thing to note when installing XCode version 4.3 and later is that the > > command line tools are not installed by default. To install the command > > line tools, you have to download them using the 'Components' tab of the > > 'Downloads' preference pane in the preferences for Xcode. > >> > >> The developer website for Xcode has more information. > >> > >> > > http://developer.apple.com/library/ios/#documentation/DeveloperTools/Conceptual/WhatsNewXcode/Articles/xcode_4_3.html#//apple_ref/doc/uid/1006-SW1 > >> > >> ------------- -------- ----- --- -- - - > >> Thanking you for your time. > >> > >> Jan de Muijnck-Hughes > >> > >> PhD Candidate > >> School of Computer Science > >> University of St Andrews > >> > >> tel: +44 (0)1334 461624 > >> http://www.cs.st-andrews.ac.uk/~jfdm > >> > >> > >> The University of St Andrews is a charity > >> registered in Scotland No.SCO13532 > >> > >> On 25 Oct 2012, at 00:59, Sandeep Murthy > >> wrote: > >> > >>> Hi, > >>> > >>> I am unable to install GAP 4.5 using BOB. > >>> > >>> I think I followed all the instructions on this page: > >>> > >>> > > http://www.cs.st-andrews.ac.uk/~neunhoef/Computer/Software/Gap/bob.html#installprereq > >>> . > >>> > >>> Firstly, I am running Mac OS X 10.8.2 on a new system, which did not have > >>> Xcode. So I started by installing XCode, and then installing MacPorts. > >>> After > >>> this I downloaded bob-osx.dmg, and then ran that. I then ran the 'bob' > >>> script, > >>> but I got the following output: > >>> > >>> > > -------------------------------------------------------------------------------------------------------------------------------------------------- > >>> > >>> sudo port install readline +universal ncurses +universal gawk wget > >>> xorg-libX11 xorg-libXaw > >>> > >>> WARNING: Improper use of the sudo command could lead to data loss > >>> or the deletion of important system files. Please double-check your > >>> typing when using sudo. Type "man sudo" for more information. > >>> > >>> To proceed, enter your password, or type Ctrl-C to abort. > >>> > >>> Password: > >>> Warning: The Command Line Tools for Xcode don't appear to be installed; > >>> most ports will likely fail to build. > >>> Warning: See http://guide.macports.org/chunked/installing.xcode.html for > >>> more information. > >>> ---> Computing dependencies for readline > >>> ---> Dependencies to be installed: ncurses > >>> ---> Fetching archive for ncurses > >>> ---> Attempting to fetch > >>> ncurses-5.9_1+universal.darwin_12.i386-x86_64.tbz2 from > >>> http://lil.fr.packages.macports.org/ncurses > >>> ---> Attempting to fetch > >>> ncurses-5.9_1+universal.darwin_12.i386-x86_64.tbz2 from > >>> http://mse.uk.packages.macports.org/sites/packages.macports.org/ncurses > >>> ---> Attempting to fetch > >>> ncurses-5.9_1+universal.darwin_12.i386-x86_64.tbz2 from > >>> http://packages.macports.org/ncurses > >>> ---> Fetching distfiles for ncurses > >>> ---> Attempting to fetch ncurses-5.9.tar.gz from > >>> ftp://ftp.lip6.fr/pub/gnu/ncurses > >>> ---> Verifying checksum(s) for ncurses > >>> ---> Extracting ncurses > >>> ---> Applying patches to ncurses > >>> ---> Configuring ncurses > >>> Error: org.macports.configure for port ncurses returned: configure > > failure: > >>> command execution failed > >>> Error: Failed to install ncurses > >>> Please see the log file for port ncurses for details: > >>> > > /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_ncurses/ncurses/main.log > >>> Error: The following dependencies were not installed: ncurses > >>> To report a bug, follow the instructions in the guide: > >>> http://guide.macports.org/#project.tickets > >>> Error: Processing of port readline failed > >>> > >>> > >>> > > -------------------------------------------------------------------------------------------------------------------------------------------------- > >>> > >>> I don't know what the problem here is. Firstly, it is saying that Xcode > > is > >>> lacking some components, > >>> but it is up to date. Could it be a problem with file permissions? I > > have > >>> turned-on FileVault (the file > >>> encryption system), and firewall, and have selected a security option > > which > >>> only allows those applications > >>> to be run which have been downloaded from the Mac App store or from > >>> "identified developers". > >>> > >>> Any help or suggestions as to how to proceed would be greatly > > appreciated. > >>> > >>> Sincerely, Sandeep. > >>> _______________________________________________ > >>> Forum mailing list > >>> Forum at mail.gap-system.org > >>> http://mail.gap-system.org/mailman/listinfo/forum > >> > > _______________________________________________ > > Forum mailing list > > Forum at mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > > > -- > Dr. Alexander Konovalov School of Computer Science > & Centre for Interdisciplinary Research in Computational Algebra > University of St Andrews Tel +44/0 (1334) 461633 > http://www.cs.st-andrews.ac.uk/~alexk Fax +44/0 (1334) 463278 > The University of St Andrews is a charity registered in Scotland:No.SC013532 > > > > > > > > > _______________________________________________ > Support mailing list > Support at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/support -- Max Neunhoeffer http://www-groups.mcs.st-and.ac.uk/~neunhoef/ > > > > > > > > > > > May the Source be with you! < < < < < < < < < < < < The University of St Andrews is a registered Scottish charity: No SC013532 From smurth01 at mail.bbk.ac.uk Thu Oct 25 01:43:32 2012 From: smurth01 at mail.bbk.ac.uk (Sandeep Murthy) Date: Thu, 25 Oct 2012 01:43:32 +0100 Subject: [GAP Forum] Problem installing GAP 4.5 using BOB In-Reply-To: <40D88D18-F8AF-4036-954A-2B335FCBC3EB@st-andrews.ac.uk> References: <40D88D18-F8AF-4036-954A-2B335FCBC3EB@st-andrews.ac.uk> Message-ID: <5C13182C-93F8-4AC7-97AC-0E0071915F11@gmail.com> Hi, OK, I found the component download within the preferences, and it is downloading the command line tools. Hopefully it will work now. Thanks. Sandeep. On 25 Oct 2012, at 01:36, Jan de Muijnck-Hughes wrote: > Sandeep; > > One thing to note when installing XCode version 4.3 and later is that the command line tools are not installed by default. To install the command line tools, you have to download them using the 'Components' tab of the 'Downloads' preference pane in the preferences for Xcode. > > The developer website for Xcode has more information. > > http://developer.apple.com/library/ios/#documentation/DeveloperTools/Conceptual/WhatsNewXcode/Articles/xcode_4_3.html#//apple_ref/doc/uid/1006-SW1 > > ------------- -------- ----- --- -- - - > Thanking you for your time. > > Jan de Muijnck-Hughes > > PhD Candidate > School of Computer Science > University of St Andrews > > tel: +44 (0)1334 461624 > http://www.cs.st-andrews.ac.uk/~jfdm > > > The University of St Andrews is a charity > registered in Scotland No.SCO13532 > > On 25 Oct 2012, at 00:59, Sandeep Murthy > wrote: > >> Hi, >> >> I am unable to install GAP 4.5 using BOB. >> >> I think I followed all the instructions on this page: >> >> http://www.cs.st-andrews.ac.uk/~neunhoef/Computer/Software/Gap/bob.html#installprereq >> . >> >> Firstly, I am running Mac OS X 10.8.2 on a new system, which did not have >> Xcode. So I started by installing XCode, and then installing MacPorts. >> After >> this I downloaded bob-osx.dmg, and then ran that. I then ran the 'bob' >> script, >> but I got the following output: >> >> -------------------------------------------------------------------------------------------------------------------------------------------------- >> >> sudo port install readline +universal ncurses +universal gawk wget >> xorg-libX11 xorg-libXaw >> >> WARNING: Improper use of the sudo command could lead to data loss >> or the deletion of important system files. Please double-check your >> typing when using sudo. Type "man sudo" for more information. >> >> To proceed, enter your password, or type Ctrl-C to abort. >> >> Password: >> Warning: The Command Line Tools for Xcode don't appear to be installed; >> most ports will likely fail to build. >> Warning: See http://guide.macports.org/chunked/installing.xcode.html for >> more information. >> ---> Computing dependencies for readline >> ---> Dependencies to be installed: ncurses >> ---> Fetching archive for ncurses >> ---> Attempting to fetch >> ncurses-5.9_1+universal.darwin_12.i386-x86_64.tbz2 from >> http://lil.fr.packages.macports.org/ncurses >> ---> Attempting to fetch >> ncurses-5.9_1+universal.darwin_12.i386-x86_64.tbz2 from >> http://mse.uk.packages.macports.org/sites/packages.macports.org/ncurses >> ---> Attempting to fetch >> ncurses-5.9_1+universal.darwin_12.i386-x86_64.tbz2 from >> http://packages.macports.org/ncurses >> ---> Fetching distfiles for ncurses >> ---> Attempting to fetch ncurses-5.9.tar.gz from >> ftp://ftp.lip6.fr/pub/gnu/ncurses >> ---> Verifying checksum(s) for ncurses >> ---> Extracting ncurses >> ---> Applying patches to ncurses >> ---> Configuring ncurses >> Error: org.macports.configure for port ncurses returned: configure failure: >> command execution failed >> Error: Failed to install ncurses >> Please see the log file for port ncurses for details: >> /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_ncurses/ncurses/main.log >> Error: The following dependencies were not installed: ncurses >> To report a bug, follow the instructions in the guide: >> http://guide.macports.org/#project.tickets >> Error: Processing of port readline failed >> >> >> -------------------------------------------------------------------------------------------------------------------------------------------------- >> >> I don't know what the problem here is. Firstly, it is saying that Xcode is >> lacking some components, >> but it is up to date. Could it be a problem with file permissions? I have >> turned-on FileVault (the file >> encryption system), and firewall, and have selected a security option which >> only allows those applications >> to be run which have been downloaded from the Mac App store or from >> "identified developers". >> >> Any help or suggestions as to how to proceed would be greatly appreciated. >> >> Sincerely, Sandeep. >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum > From dima at ntu.edu.sg Thu Oct 25 10:49:46 2012 From: dima at ntu.edu.sg (Dima Pasechnik) Date: Thu, 25 Oct 2012 17:49:46 +0800 Subject: [GAP Forum] Error with rsync installation In-Reply-To: <20121025075325.GA30545@beteigeuze.math.rwth-aachen.de> References: <8F1B44C7-6E36-44FE-9D5A-6B984EA50E4E@uwa.edu.au> <20121025075325.GA30545@beteigeuze.math.rwth-aachen.de> Message-ID: <20121025094946.GA70497@nash.ntu.edu.sg> On Thu, Oct 25, 2012 at 03:53:25PM +0800, Frank L?beck wrote: > On Thu, Oct 25, 2012 at 10:11:56AM +0800, Gordon Royle wrote: > > I got this error when using rsync > > > > Creating new workspace. > > Using gapsync/CreateWorkspace.sh ... > > (You can customize this by copying gapsync/CreateWorkspace.sh to > > local/bin/CreateWorkspace and editing this copy.) > > gapsync/CreateWorkspace.sh: bin/i686-pc-linux-gnu-gcc-default32/gap: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory > > Also creating new workspace for 64-bit version ... > > Using gapsync/CreateWorkspace.sh x86_64 ... > > (You can customize this by copying gapsync/CreateWorkspace.sh to > > local/bin/CreateWorkspace64 or local/bin/CreateWorkspace > > and editing this copy.) > > > > > > The 64 bit version appears to work, but the 32-bit version doesn't. > > > > System details: > > > > $ uname -a > > Linux ECM-MATHS-015.uniwa.uwa.edu.au 2.6.32-279.2.1.el6.x86_64 #1 SMP Thu Jul 5 21:08:58 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux > > Dear Gordon, dear Forum, > > >From this I guess that you cannot start any (dynamically linked) 32-bit > application on that machine. > > The requirements for the 32-bit GAP executable are very small, you just > need to install the 32-bit version of the standard C library (with the > corresponding linker). > > Your Linux distribution should contain a package for that, called something > like libc6-i386 or libc6:i386 or glibc.i686 or similar. I thought that > this would be installed by default on almost any x86_64 Linux machine. if your CPU is an AMD 64-bit cpu, on Debian/Ubuntu this package is called ia32-libs. I don't think it's that standard. After all, that's usually only needed if one has to run a commercial 32-bit application, which is not available as a 64-bit one --- and this is unusual. You might also need to set LD_LIBRARY_PATH=/usr/lib32 in the shell to specify the location of these libraries. (They don't really cohabit well with the 64-bit libraries, thus you need this kludge.) HTH, Dima CONFIDENTIALITY:This email is intended solely for the person(s) named and may be confidential and/or privileged.If you are not the intended recipient,please delete it,notify us and do not copy,use,or disclose its content. Towards A Sustainable Earth:Print Only When Necessary.Thank you. From dima at ntu.edu.sg Thu Oct 25 10:55:22 2012 From: dima at ntu.edu.sg (Dima Pasechnik) Date: Thu, 25 Oct 2012 17:55:22 +0800 Subject: [GAP Forum] Error with rsync installation In-Reply-To: References: <8F1B44C7-6E36-44FE-9D5A-6B984EA50E4E@uwa.edu.au> <20121025075325.GA30545@beteigeuze.math.rwth-aachen.de> Message-ID: <20121025095522.GB70497@nash.ntu.edu.sg> On Thu, Oct 25, 2012 at 04:33:19PM +0800, Gordon Royle wrote: > > On 25/10/2012, at 3:53 PM, Frank L?beck wrote: > > The requirements for the 32-bit GAP executable are very small, you just > need to install the 32-bit version of the standard C library (with the > corresponding linker). > > Your Linux distribution should contain a package for that, called something > like libc6-i386 or libc6:i386 or glibc.i686 or similar. I thought that > this would be installed by default on almost any x86_64 Linux machine. > > OK, thanks. > > I shall forward this directly to my system administrator. > > Unfortunately I have so little knowledge of the "nuts and bolts" of linking, compiling, static, dynamic etc, that while I grasp the general meaning of what you said, I have no actual idea of how to "install a 32 bit version of the standard C library", nor where to look for it. :-) > > However the system is a new Red Hat Enterprise Linux distribution so I am surprised it doesn't come with the bits it needs. When I compiled from scratch instead (configure; make;), no complaints were raised, but perhaps it made only the 64-bit version ?? I suppose it did. It's not easy to cross-compile things (i.e. build executables for platforms different from what you do the building), you need to jump some hoops. And still, running such an executable is a different story (e.g. you can cross-compile for Windows or an iPhone on Linux - but running the resulting executables is a completely different story). HTH, Dima > > > Thanks again > > Gordon > > > > Professor Gordon Royle > School of Mathematics and Statistics > University of Western Australia > Gordon.Royle at uwa.edu.au > > > > > > > > > > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum CONFIDENTIALITY:This email is intended solely for the person(s) named and may be confidential and/or privileged.If you are not the intended recipient,please delete it,notify us and do not copy,use,or disclose its content. Towards A Sustainable Earth:Print Only When Necessary.Thank you. From frank.luebeck at math.rwth-aachen.de Thu Oct 25 11:47:40 2012 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Thu, 25 Oct 2012 12:47:40 +0200 Subject: [GAP Forum] Error with rsync installation In-Reply-To: <20121025095522.GB70497@nash.ntu.edu.sg> References: <8F1B44C7-6E36-44FE-9D5A-6B984EA50E4E@uwa.edu.au> <20121025075325.GA30545@beteigeuze.math.rwth-aachen.de> <20121025095522.GB70497@nash.ntu.edu.sg> Message-ID: <20121025104740.GB30545@beteigeuze.math.rwth-aachen.de> On Thu, Oct 25, 2012 at 05:55:22PM +0800, Dima Pasechnik wrote: > On Thu, Oct 25, 2012 at 04:33:19PM +0800, Gordon Royle wrote: > > However the system is a new Red Hat Enterprise Linux distribution so I am surprised it doesn't come with the bits it needs. When I compiled from scratch instead (configure; make;), no complaints were raised, but perhaps it made only the 64-bit version ?? > > I suppose it did. It's not easy to cross-compile things (i.e. build > executables for platforms different from what you do the building), you > need to jump some hoops. And still, running such an executable is a > different story (e.g. you can cross-compile for Windows or an iPhone on > Linux - but running the resulting executables is a completely different > story). Yes, a simple './configure; make' will compile a 64 bit version on your system. Compiling a 32 bit executable for GAP is also easy if your system is set up for it. You need 32 bit header files for the C library and maybe the readline and ncurses libraries, at least the latter are rarely installed in default Linux installations. Then you can say './configure ABI=32; make'. I would not call this "cross-compilation", it makes complete sense to compile and use a 32 bit version of GAP on 64 bit systems. There are some comments on this in: http://www.math.rwth-aachen.de/~Frank.Luebeck/gap/rsync/index.html#32versus64 Best regards, Frank -- /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck at Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From frank.luebeck at math.rwth-aachen.de Thu Oct 25 12:06:37 2012 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Thu, 25 Oct 2012 13:06:37 +0200 Subject: [GAP Forum] Error with rsync installation In-Reply-To: <20121025094946.GA70497@nash.ntu.edu.sg> References: <8F1B44C7-6E36-44FE-9D5A-6B984EA50E4E@uwa.edu.au> <20121025075325.GA30545@beteigeuze.math.rwth-aachen.de> <20121025094946.GA70497@nash.ntu.edu.sg> Message-ID: <20121025110637.GC30545@beteigeuze.math.rwth-aachen.de> On Thu, Oct 25, 2012 at 05:49:46PM +0800, Dima Pasechnik wrote: > On Thu, Oct 25, 2012 at 03:53:25PM +0800, Frank L?beck wrote: > > The requirements for the 32-bit GAP executable are very small, you just > > need to install the 32-bit version of the standard C library (with the > > corresponding linker). > > > > Your Linux distribution should contain a package for that, called something > > like libc6-i386 or libc6:i386 or glibc.i686 or similar. I thought that > > this would be installed by default on almost any x86_64 Linux machine. > > if your CPU is an AMD 64-bit cpu, on Debian/Ubuntu this package is called ia32-libs. > I don't think it's that standard. After all, that's usually only needed > if one has to run a commercial 32-bit application, which is not > available as a 64-bit one --- and this is unusual. > Dear Dima, dear Forum, The ia32-libs on (older) Debian/Ubuntu and derived systems installs a lot of 32 bit libraries, these are indeed not installed in standard installations. But for the GAP executables (including package kernel modules) it is as I said before: I made sure that only the basic "libc6-i386", resp. "libc6:i386", package is needed and this is installed by default in all Debian/Ubuntu derived distributions I know of. > You might also need to set LD_LIBRARY_PATH=/usr/lib32 > in the shell to specify the location of these libraries. No, this is not needed on Debian/Ubuntu and co., the libraries are of course installed in the default path. Sorry for the technicalities, to conclude: - For most people the Linux executables coming with the rsync distribution will just work. - If the 32 bit version doesn't work for you, then - either ignore this problem and only use the 'gap64L' and 'gap64'commands - or install the package to run 32 bit executables as mentioned above Best regards again, Frank -- /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck at Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From ivmog84 at gmail.com Wed Oct 31 07:07:20 2012 From: ivmog84 at gmail.com (=?KOI8-R?B?7c/HyczYztnIIOnXwc4g4NLYxdfJ3g==?=) Date: Wed, 31 Oct 2012 13:07:20 +0600 Subject: [GAP Forum] Creating groups by a multiplication rule Message-ID: Dear Gap forum, I have a problem and I wonder if I can handle it with the help of GAP. Consider a collection G of elements of Z_2^15 (not a subgroup) of size 2048. Define an operation in the following manner: x*y=x+y^pi_x, where + is the ordinary addition in Z_2. Here pi_x is the permutation on {1..n} attached to the element x by some rule. Permutations can vary from one element to another. I have certain values for these permutation, such that (G,*) is a group. I want to realize this group in computer and carry out manipulations with it (for example, find subgroups of index 2). Can this be done using GAP? Any such group can be generated by a certain set of 35 elements. So, generally speaking, the problem I faced was creating a group by some multiplication rule. According to the GAP documentation, it can be done using domains. However, I could not succeed in creating new domain with operation. I could not find an appropriate example, neither. I would be grateful, if someone helps me with any of the questions above. Best wishes, Ivan Mogilnykh From alexk at mcs.st-andrews.ac.uk Wed Oct 31 10:36:52 2012 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Wed, 31 Oct 2012 10:36:52 +0000 Subject: [GAP Forum] Creating groups by a multiplication rule In-Reply-To: References: Message-ID: <68045191-A959-4085-9314-1225B6DC3B3E@mcs.st-andrews.ac.uk> Dear Ivan, On 31 Oct 2012, at 07:07, ????????? ???? ??????? wrote: > Dear Gap forum, > > I have a problem and I wonder if I can handle it with the help of GAP. > Consider a collection G of elements of Z_2^15 (not a subgroup) of size 2048. > Define an operation in the following manner: x*y=x+y^pi_x, where + is the > ordinary addition in Z_2. > Here pi_x is the permutation on {1..n} attached to the element x by some > rule. > Permutations can vary from one element to another. > I have certain values for these permutation, such that (G,*) is a group. > I want to realize this group in computer and carry out manipulations with > it (for example, find subgroups of index 2). > Can this be done using GAP? > Any such group can be generated by a certain set of 35 elements. > > So, generally speaking, the problem I faced was creating a group by some > multiplication rule. > According to the GAP documentation, it can be done using domains. However, > I could not succeed in creating new domain with operation. > I could not find an appropriate example, neither. > I would be grateful, if someone helps me with any of the questions above. > > Best wishes, > Ivan Mogilnykh In this sutuation, it may be worth to try ArithmeticElementCreator documented in the chapter "Examples of Extending the System" of the Reference manual (enter ?ArithmeticElementCreator in GAP to see the documentation). As the manual says, "This function offers a simple interface to create new arithmetic elements by providing functions that perform addition, multiplication and so forth, conforming to the specification spec. ArithmeticElementCreator creates a new category, representation and family for the new arithmetic elements being defined, and returns a function which takes the "defining data" of an element and returns the corresponding new arithmetic element." If you wish to have more control over the actions which are automated by ArithmeticElementCreator, then look at Chapter "An Example ? Residue Class Rings" of the reference manual. Also, my package Circle provides functionality for computations in adjoint groups of finite associative rings, and allows to construct circle objects w.r.t. the circle multiplication r*s=r+s+rs and create multiplicative groups, generated by such objects. It may serve as another example of extending the GAP system with new multiplicative objects. Hope this helps, Alexander From Inneke.Van.Gelder at vub.ac.be Thu Nov 1 15:20:38 2012 From: Inneke.Van.Gelder at vub.ac.be (ivgelder) Date: Thu, 01 Nov 2012 16:20:38 +0100 Subject: [GAP Forum] IsomorphismMatrixAlgebra Message-ID: <226cc7735d2d7bb98e433d96c7154cfe@imapproxy.vub.ac.be> Dear GAP forum, Can you please explain me the working of the method IsomorphismMatrixAlgebra? I ask this since I am looking for an explicit isomorphism between a Wedderburn component of a semisimple finite group algebra and a matrix algebra. Thanks! Inneke Van Gelder From roberto.radina at libero.it Thu Nov 1 15:36:32 2012 From: roberto.radina at libero.it (=?iso-8859-1?b?Um9iZXJ0byBS4GRpbmE=?=) Date: Thu, 1 Nov 2012 16:36:32 +0100 Subject: [GAP Forum] monochromatic help wanted Message-ID: Dear forum, is it possible to turn off the colors of the help pages in the terminal (that is, when you type "?" at the "gap>" prompt) ? (GAP 4.5.6 under Windows XP) From e.obrien at auckland.ac.nz Thu Nov 1 23:23:29 2012 From: e.obrien at auckland.ac.nz (Eamonn O'Brien) Date: Fri, 02 Nov 2012 12:23:29 +1300 Subject: [GAP Forum] Workshop, Braunschweig, May 21-24, 2013 Message-ID: <50930471.5090004@auckland.ac.nz> We will run a workshop entitled "Questions, Algorithms, and Computations in Abstract Group Theory", at the University of Braunschweig from May 21-24, 2013. Our aim is to combine researchers from the areas of group theory, computer science and algebraic geometry to obtain new advances in the algorithmic theory of abstract groups. Speakers include: * Jack Button (Cambridge) * Bob Gilman (New York) * Derek Holt (Warwick) * Jim Howie (Edinburgh) * Olga Kharlampovich (Montreal) * Martin Kreuzer (Passau) * Markus Lohrey (Leibzig) * Sarah Rees (Newcastle) * Saul Schleimer (Warwick) * Ben Steinberg (Ottawa and CUNY) More details about the workshop can be found at http://www.icm.tu-bs.de/~beick/conf/qac.html Best wishes. Eamonn O'Brien From frank.luebeck at math.rwth-aachen.de Fri Nov 2 16:05:26 2012 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Fri, 02 Nov 2012 17:05:26 +0100 Subject: [GAP Forum] monochromatic help wanted In-Reply-To: References: Message-ID: <20121102160526.GG31157@beteigeuze.math.rwth-aachen.de> On Thu, Nov 01, 2012 at 04:36:32PM +0100, Roberto R?dina wrote: > Dear forum, > is it possible to turn off the colors of the help pages in the terminal (that is, when you type "?" at the "gap>" prompt) ? > > > (GAP 4.5.6 under Windows XP) Dear Roberto R?dina, dear Forum, Since GAP 4.5 users can configure the way help sections are displayed in text mode (in the terminal running GAP) or in HTML mode (in a web browser). In a running GAP session the setting can be changed with the commands SetGAPDocTextTheme, resp. SetGAPDocHTMLStyle See the help pages for these commands for more details. For example, the commands SetGAPDocTextTheme("none"); or SetGAPDocTextTheme("old"); would cause that no colors are used to markup the text version of the help sections. (If only a specific color disturbs you, there is also the possibility to change just that.) If you want to use one of the above options in all GAP sessions by default you can specify that in your 'gap.ini' file, add a line like SetUserPreference( "gapdoc", "TextTheme", [ "none" ] ); Users of the HTML help may want to use something like SetUserPreference( "gapdoc", "HTMLStyle", [ "default", "ragged" ] ); and/or SetUserPreference( "gapdoc", "UseMathJax", true ); If you do not yet use a gap.ini file, see the help section of 'WriteGapIniFile' to learn how to create one. With best regards, Frank L?beck -- /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck at Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From degraaf at science.unitn.it Sat Nov 3 07:43:08 2012 From: degraaf at science.unitn.it (Willem de Graaf) Date: Sat, 3 Nov 2012 08:43:08 +0100 Subject: [GAP Forum] IsomorphismMatrixAlgebra In-Reply-To: <226cc7735d2d7bb98e433d96c7154cfe@imapproxy.vub.ac.be> References: <226cc7735d2d7bb98e433d96c7154cfe@imapproxy.vub.ac.be> Message-ID: Dear Inneke, If the algebra has a one then IsomorphismMatrixAlgebra constructs the right regular representation. So the elements of the algebra act on the algebra via multiplication on the right. Best wishes, Willem de Graaf On Thu, Nov 1, 2012 at 4:20 PM, ivgelder wrote: > Dear GAP forum, > > > Can you please explain me the working of the method > IsomorphismMatrixAlgebra? > > I ask this since I am looking for an explicit isomorphism between a > Wedderburn component of a semisimple finite group algebra and a matrix > algebra. > > > Thanks! > > Inneke Van Gelder > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From mschaps at math.biu.ac.il Sun Nov 4 14:31:24 2012 From: mschaps at math.biu.ac.il (Malka Schaps) Date: Sun, 4 Nov 2012 16:31:24 +0200 Subject: [GAP Forum] strange error in while loop Message-ID: Dear All, I was implementing a Brauer character mapping for spin blocks, and used a loop Flag := 0 while Flag = 0 ... ... ... od; The loop worked fine and went around three times, and then at some point Flag := 1 It got to the od; at the bottom, jumped up to the while and then I got an error message error no 1st choice method for '[ ]'with 2 arguments in Flag = 0 called from ..... What causes such an error? I got it once before, when trying to read entries in an empty list, but Flag is not a list. Thanks, Malka Schaps Prof. Malka Schaps partment of Mathematics Bar-Ilan University Ramat-Gan,Israel 52900 Office: 03-5318767 From zeinab_foruzanfar at iust.ac.ir Mon Nov 5 10:29:47 2012 From: zeinab_foruzanfar at iust.ac.ir (zeinab foruzanfar) Date: Mon, 05 Nov 2012 13:59:47 +0330 Subject: [GAP Forum] Frobenius group Message-ID: Hi I have a problem. Please help me. Is there a Gap-Program to give me a Frobenius group with complement $N$ and Kernel $K$. Thanks Zeinab From stefan at mcs.st-and.ac.uk Tue Nov 6 11:11:43 2012 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Tue, 6 Nov 2012 11:11:43 -0000 (UTC) Subject: [GAP Forum] RCWA 3.4.0 Message-ID: Dear Forum, this is to announce the release of RCWA 3.4.0. The RCWA package permits computations in [R]esidue-[C]lass-[W]ise [A]ffine groups, which are (typically infinite) permutation groups acting on Z or on suitable other rings. RCWA 3.4.0 is available for download at http://www.gap-system.org/Packages/rcwa.html A number of examples for the use of RCWA can be found at http://www.gap-system.org/Manuals/pkg/rcwa/doc/chap7.html The list of changes from earlier versions can be found in the file CHANGES which is included in the distribution. Any questions, comments, suggestions, usage reports etc. are highly welcome! Wishing you fun and success using this package, Stefan Kohl ----------------------------------------------------------------------------- http://www.gap-system.org/DevelopersPages/StefanKohl/ ----------------------------------------------------------------------------- From fvanhove at cage.UGent.be Tue Nov 6 11:32:36 2012 From: fvanhove at cage.UGent.be (Frederic Vanhove) Date: Tue, 06 Nov 2012 12:32:36 +0100 Subject: [GAP Forum] applying permutation to subset: strange problem? Message-ID: <5098F554.9060101@cage.UGent.be> Dear members of the Forum, I was experimenting with some permutation groups, and noticed that I had some difficulties to have GAP compute the image of a subset under a certain permutation. In particular: the following works just fine: g:=AllPrimitiveGroups(DegreeOperation,12)[2]; h:=Stabilizer(g,[1,2],OnSets); w:=Random(h); orbits:=Orbits(h,[1..12]); OnSets(orbits[1],w); while this produces an error: g:=AllPrimitiveGroups(DegreeOperation,12)[2]; h:=Stabilizer(g,[1,2],OnSets); w:=Random(h); orbits:=Orbits(h,[1..12]); OnSets(orbits[2],w); The respective outputs are: gap> g:=AllPrimitiveGroups(DegreeOperation,12)[2]; M(12) gap> h:=Stabilizer(g,[1,2],OnSets); Group([ (5,9,6,11)(7,12,10,8), (5,10,6,7)(8,9,12,11), (4,7)(5,8)(6,9)(11,12), (4,8)(5,9)(6,7)(10,11), (3,4,10,5)(6,7,9,8), (1,2)(4,12)(5,11)(6,10) ]) gap> w:=Random(h); (3,12)(4,7,10,5,8,6,11,9) gap> orbits:=Orbits(h,[1..12]); [ [ 1, 2 ], [ 3, 4, 7, 8, 10, 12, 5, 6, 9, 11 ] ] gap> OnSets(orbits[1],w); [ 1, 2 ] and: gap> g:=AllPrimitiveGroups(DegreeOperation,12)[2]; M(12) gap> h:=Stabilizer(g,[1,2],OnSets); Group([ (5,9,6,11)(7,12,10,8), (5,10,6,7)(8,9,12,11), (4,7)(5,8)(6,9)(11,12), (4,8)(5,9)(6,7)(10,11), (3,4,10,5)(6,7,9,8), (1,2)(4,12)(5,11)(6,10) ]) gap> w:=Random(h); (3,7,6,10,4,11,5,9)(8,12) gap> orbits:=Orbits(h,[1..12]); [ [ 1, 2 ], [ 3, 4, 7, 8, 10, 12, 5, 6, 9, 11 ] ] gap> OnSets(orbits[2],w); OnSets: must be a set (not a list (plain,cyc,nsort,imm)) not in any function Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can replace via 'return ;' to continue This is rather strange, as there seems to be no real difference between orbits[1] and orbits[2] (I mean: in the way they have been stored?) Kind regards, Fr?d?ric From burkhard at hoefling.name Tue Nov 6 12:05:33 2012 From: burkhard at hoefling.name (=?iso-8859-1?Q?Burkhard_H=F6fling?=) Date: Tue, 6 Nov 2012 13:05:33 +0100 Subject: [GAP Forum] applying permutation to subset: strange problem? In-Reply-To: <5098F554.9060101@cage.UGent.be> References: <5098F554.9060101@cage.UGent.be> Message-ID: <3AB9C1EB-BF8A-4048-970B-5AC75C38E1C7@hoefling.name> On 2012-11-06, at 12:32 , Frederic Vanhove wrote: > gap> orbits:=Orbits(h,[1..12]); > [ [ 1, 2 ], [ 3, 4, 7, 8, 10, 12, 5, 6, 9, 11 ] ] > gap> OnSets(orbits[2],w); > OnSets: must be a set (not a list (plain,cyc,nsort,imm)) > not in any function > Entering break read-eval-print loop ... > you can 'quit;' to quit to outer loop, or > you can replace via 'return ;' to continue The error message tells you that the second orbit is not a set in the GAP sense (i.e., a strictly sorted list). As the documentation about Orbits states, the result contains lists of points, not necessarily sets. To do what you intended, just convert the list to a set first: OnSets(Set(orbits[2]),w); Regards, Burkhard. From alexk at mcs.st-andrews.ac.uk Tue Nov 6 17:48:07 2012 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Tue, 6 Nov 2012 17:48:07 +0000 Subject: [GAP Forum] strange error in while loop In-Reply-To: References: Message-ID: Dear Prof. Schaps, On 4 Nov 2012, at 14:31, Malka Schaps wrote: > Dear All, > I was implementing a Brauer character mapping for spin blocks, and > used a loop > > Flag := 0 > while Flag = 0 > ... > ... > ... > od; > The loop worked fine and went around three times, and then at some point > Flag := 1 > > It got to the od; at the bottom, jumped up to the while and then I got > an error message > > error no 1st choice method for '[ ]'with 2 arguments in Flag = 0 called > from ..... > > > What causes such an error? I got it once before, when trying to read > entries in an empty list, but Flag is not a list. > > Thanks, > Malka Schaps There may be several possible reasons for this message. First of all, could you check what's the value of the variable Flag in the break loop: brk> Flag; - it may be that Flag is a global variable which was overwritten in some other place. If this is the case, try to rename your 'Flag' to 'flag' or something more unique. Second, sometimes it's difficult for GAP to report the precise location of an error, and the place is reported with the little offset. Errors reporting was improved in GAP 4.5 - if you're using GAP 4.5 we would be grateful if you could send us a simple example how to reproduce this problem. So, if this is the case, it may happen that the message > no 1st choice method for '[ ]'with 2 arguments comes from the line next to the one where the condition Flag=0 is actually checked. You may try to instrument the code by adding additional Print statements to catch the line which causes the actual problem. Finally, entering in GAP '??NoMethodFound' will display the manual section "7.1 Recovery from NoMethodFound-Errors" which contains some additional hints and auxiliary functions like 'ShowArguments' which may be helpful in this case. Hope this helps - please let me know if you would like further help. Best regards, Alexander From Juergen.Fuss at fh-hagenberg.at Mon Nov 5 21:36:10 2012 From: Juergen.Fuss at fh-hagenberg.at (Fuss Juergen) Date: Mon, 5 Nov 2012 22:36:10 +0100 Subject: [GAP Forum] Frobenius group In-Reply-To: References: Message-ID: Dear Zeinab. The GAP package SONATA has a function FrobeniusGroup, which might be of interest to you. Find details at http://www.gap-system.org/Manuals/pkg/sonata/htm/ref/CHAP009.htm Regards, Juergen -----Original Message----- From: forum-bounces at gap-system.org [mailto:forum-bounces at gap-system.org] On Behalf Of zeinab foruzanfar Sent: Montag, 05. November 2012 11:30 To: forum at gap-system.org Subject: [GAP Forum] Frobenius group Hi I have a problem. Please help me. Is there a Gap-Program to give me a Frobenius group with complement $N$ and Kernel $K$. Thanks Zeinab _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From vtvan2k1 at gmail.com Wed Nov 7 02:46:14 2012 From: vtvan2k1 at gmail.com (Vo Tam Van) Date: Wed, 7 Nov 2012 10:46:14 +0800 Subject: [GAP Forum] about the complexity of computation automorphism group of (n, k) binary linear codes Message-ID: Dear all, I am looking for the formula of complexity of computation automorphism group of (n,k) binary linear codes. I think it would be (n!) or greater by using the brute-force algorithm. Does anyone have an optimal algorithm to reduce the complexity. Please tell me the algorithm and the formula of complexity of computation automorphism group. Does it depend only on n or both n and k? Thank you very much and I am looking forward to your reply. Best Regards, Vo Tam Van From J.Howie at hw.ac.uk Thu Nov 8 10:12:35 2012 From: J.Howie at hw.ac.uk (Jim Howie) Date: Thu, 08 Nov 2012 10:12:35 +0000 Subject: [GAP Forum] Maths Jobs at Heriot-Watt Message-ID: <509B8593.70401@hw.ac.uk> Dear Colleagues, Apologies for multiple mailings. Please pass this on to anyone who may be interested Many thanks, Jim Howie ----------------------------------------------------------------------------------------------------------------------------------- Lecturer/Senior Lecturer/Reader/Professor in Mathematics The Department of Mathematics at Heriot-Watt University, Edinburgh, would like to invite applications for the above post. The Department is a member of the Maxwell Institute for Mathematical Sciences and candidates should have a strong research track record in any branch of mathematics that will contribute to the dynamic research environment within the Maxwell Institute. Candidates should also be able to engage in the Heriot-Watt undergraduate and postgraduate mathematics teaching programmes. Closing date: 7 December 2012. More details at http://www.hw.ac.uk/about/careers/job-opportunities/lecturersenior-lecturerreaderprofessor-mathematics.htm ----- Sunday Times Scottish University of the Year 2011-2013 Top in the UK for student experience Fourth university in the UK and top in Scotland (National Student Survey 2012) We invite research leaders and ambitious early career researchers to join us in leading and driving research in key inter-disciplinary themes. Please see www.hw.ac.uk/researchleaders for further information and how to apply. Heriot-Watt University is a Scottish charity registered under charity number SC000278. From fvanhove at cage.UGent.be Thu Nov 8 10:22:19 2012 From: fvanhove at cage.UGent.be (Frederic Vanhove) Date: Thu, 08 Nov 2012 11:22:19 +0100 Subject: [GAP Forum] applying permutation to subset: strange problem? In-Reply-To: <3AB9C1EB-BF8A-4048-970B-5AC75C38E1C7@hoefling.name> References: <5098F554.9060101@cage.UGent.be> <3AB9C1EB-BF8A-4048-970B-5AC75C38E1C7@hoefling.name> Message-ID: <509B87DB.9090303@cage.UGent.be> Hello, thank you both, that seems to do the trick! Kind regards, Fr?d?ric Op 06/11/12 13:16, Muhammad Shah schreef: > Dear Fr?d?ric, > The command OnSet takes two arguments a set and a group g. In the > first case you are taking a set which is orbits[1]:=[1,2] > While in second case it is not a set as (orbits[2]:= [ 3, 4, 7, 8, 10, > 12, 5, 6, 9, 11 ] whish is not SSortted so not a set.that is why it > gives error. > you should make it first a set like the following > gap> g:=AllPrimitiveGroups(DegreeOperation,12)[2]; > M(12) > gap> h:=Stabilizer(g,[1,2],OnSets); > Group([ (5,9,6,11)(7,12,10,8), (5,10,6,7)(8,9,12,11), > (4,7)(5,8)(6,9)(11,12), (4,8)(5,9)(6,7)(10,11), > (3,4,10,5)(6,7,9,8), (1,2)(4,12)(5,11)(6,10) ]) > gap> w:=Random(h); > (3,12)(4,7,10,5,8,6,11,9) > gap> orbits:=Orbits(h,[1..12]); > [ [ 1, 2 ], [ 3, 4, 7, 8, 10, 12, 5, 6, 9, 11 ] ] > gap> OnSets(Set(orbits[2]),w); > [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ] > gap> > I hope this helps > Muhammad Shah Op 06/11/12 13:05, Burkhard H?fling schreef: > On 2012-11-06, at 12:32 , Frederic Vanhove wrote: > >> gap> orbits:=Orbits(h,[1..12]); >> [ [ 1, 2 ], [ 3, 4, 7, 8, 10, 12, 5, 6, 9, 11 ] ] >> gap> OnSets(orbits[2],w); >> OnSets: must be a set (not a list (plain,cyc,nsort,imm)) >> not in any function >> Entering break read-eval-print loop ... >> you can 'quit;' to quit to outer loop, or >> you can replace via 'return ;' to continue > The error message tells you that the second orbit is not a set in the GAP sense (i.e., a strictly sorted list). As the documentation about Orbits states, the result contains lists of points, not necessarily sets. To do what you intended, just convert the list to a set first: > > OnSets(Set(orbits[2]),w); > > Regards, > > Burkhard. From lijr07 at gmail.com Sat Nov 10 11:50:04 2012 From: lijr07 at gmail.com (Jianrong Li) Date: Sat, 10 Nov 2012 19:50:04 +0800 Subject: [GAP Forum] List all elements in a Weyl group using GAP. Message-ID: Dear members of the Forum, I use the following codes to list all elements in B3 Weyl group. Are there some other methods which can obtain the list of elements in Weyl group in GAP? Thank you very much. Best wishes, Jianrong. F:=FreeGroup("a", "b", "c"); gap> B:=F/[ F.1^2, F.2^2, F.3^2, (F.1*F.2)^4, (F.2*F.3)^3, (F.3*F.1)^2 ]; gap> Size(B); 48 gap> Elements(B); [ , a*b*a*b*c*b*a*b, c, c*b, a*b*a*b, b*a*b*c*b*a*b*c, a*b*a*b*c*b*a*b*c, a*b*a*c*b*a*b*c, b*a*b*c, a*c, b, a*c*b*a*b, b*a*b*c*b*a*b, b*c, a*c*b*a, a*b*a*b*c*b, a*c*b*a*b*c, a*b*a*b*c*b*a, c*b*a*b*c, a, a*b*a*c*b*a, b*c*b*a*b*c, b*a, c*b*a*b, b*c*b, a*b*a, a*b*c*b*a*b*c, a*b*a*b*c, b*a*c*b*a*b, a*b*c*b*a*b, b*a*b*c*b*a, a*b*a*c*b*a*b, b*a*b*c*b, c*b*a, b*a*b, a*b*c*b, b*c*b*a, a*b, b*a*c*b*a, a*b*a*c*b, b*a*c*b*a*b*c, a*b*a*c, a*b*c, b*a*c, a*c*b, b*a*c*b, a*b*c*b*a, b*c*b*a*b ] gap> From shahmaths_problem at hotmail.com Sat Nov 10 12:40:31 2012 From: shahmaths_problem at hotmail.com (muhammad shah) Date: Sat, 10 Nov 2012 17:40:31 +0500 Subject: [GAP Forum] List all elements in a Weyl group using GAP. In-Reply-To: References: Message-ID: Dear Jianrong, I think you want the elements of B in permutation form so that you can work with them easily. If so, then it can be done easily as following gap> F:=FreeGroup("a", "b", "c"); gap> B:=F/[ F.1^2, F.2^2, F.3^2, (F.1*F.2)^4, (F.2*F.3)^3, (F.3*F.1)^2 ]; gap> Size(B); 48 gap> Elements(B); [ , a*b*a*b*c*b*a*b, c, c*b, a*b*a*b, b*a*b*c*b*a*b*c, a*b*a*b*c*b*a*b*c, a*b*a*c*b*a*b*c, b*a*b*c, a*c, b, a*c*b*a*b, b*a*b*c*b*a*b, b*c, a*c*b*a, a*b*a*b*c*b, a*c*b*a*b*c, a*b*a*b*c*b*a, c*b*a*b*c, a, a*b*a*c*b*a, b*c*b*a*b*c, b*a, c*b*a*b, b*c*b, a*b*a, a*b*c*b*a*b*c, a*b*a*b*c, b*a*c*b*a*b, a*b*c*b*a*b, b*a*b*c*b*a, a*b*a*c*b*a*b, b*a*b*c*b, c*b*a, b*a*b, a*b*c*b, b*c*b*a, a*b, b*a*c*b*a, a*b*a*c*b, b*a*c*b*a*b*c, a*b*a*c, a*b*c, b*a*c, a*c*b, b*a*c*b, a*b*c*b*a, b*c*b*a*b ] gap> iso:=IsomorphismPermGroup(B); [ a, b, c ] -> [ (2,3)(4,6)(8,10)(9,11), (1,2)(3,5)(6,8)(7,9)(11,12), (2,4)(3,6)(5,7)(8,9)(10,11) ] gap> C:=Image(iso); Group([ (2,3)(4,6)(8,10)(9,11), (1,2)(3,5)(6,8)(7,9)(11,12), (2,4)(3,6)(5,7)(8,9)(10,11) ]) gap> Elements(C); [ (), (2,3)(4,6)(8,10)(9,11), (2,4)(3,6)(5,7)(8,9)(10,11), (2,6)(3,4)(5,7)(8,11)(9,10), (1,2)(3,5)(6,8)(7,9)(11,12), (1,2,4)(3,8,7)(5,9,6)(10,12,11), (1,2,5,3)(4,8,10,6)(7,9,12,11), (1,2,8,12,11,6)(3,4,5,9,10,7), (1,3,5,2)(4,6,10,8)(7,11,12,9), (1,3)(2,5)(4,10)(7,11)(9,12), (1,3,10,12,9,4)(2,6,5,11,8,7), (1,3,6)(2,10,7)(4,5,11)(8,12,9), (1,4,2)(3,7,8)(5,6,9)(10,11,12), (1,4)(3,9)(5,8)(6,7)(10,12), (1,4,9,12,10,3)(2,7,8,11,5,6), (1,4,7,6)(2,9,11,3)(5,8,12,10), (1,5)(4,8)(6,10)(7,12), (1,5)(2,3)(4,10)(6,8)(7,12)(9,11), (1,5,12,7)(2,8,9,4)(3,10,11,6), (1,5,12,7)(2,10,9,6)(3,8,11,4), (1,6,11,12,8,2)(3,7,10,9,5,4), (1,6,7,4)(2,3,11,9)(5,10,12,8), (1,6,3)(2,7,10)(4,11,5)(8,9,12), (1,6)(2,11)(4,7)(5,10)(8,12), (1,7,12,5)(2,4,9,8)(3,6,11,10), (1,7,12,5)(2,6,9,10)(3,4,11,8), (1,7)(2,9)(3,11)(5,12), (1,7)(2,11)(3,9)(4,6)(5,12)(8,10), (1,8)(3,9)(4,5)(6,12)(7,10), (1,8,3,12,6,9)(2,5,10,11,7,4), (1,8,7,10)(2,9,11,3)(4,12,6,5), (1,8,11)(2,12,6)(3,5,10)(4,9,7), (1,9,6,12,3,8)(2,4,7,11,10,5), (1,9)(2,7)(3,12)(5,11)(6,8), (1,9,10)(2,8,5)(3,4,12)(6,7,11), (1,9,5,11)(2,12,3,7)(4,8,10,6), (1,10,7,8)(2,3,11,9)(4,5,6,12), (1,10,9)(2,5,8)(3,12,4)(6,11,7), (1,10)(2,11)(4,12)(5,6)(7,8), (1,10,2,12,4,11)(3,5,8,9,7,6), (1,11,8)(2,6,12)(3,10,5)(4,7,9), (1,11,5,9)(2,7,3,12)(4,6,10,8), (1,11,4,12,2,10)(3,6,7,9,8,5), (1,11)(2,12)(3,7)(4,10)(5,9), (1,12)(2,8)(3,10)(4,9)(6,11), (1,12)(2,9)(3,11)(4,8)(5,7)(6,10), (1,12)(2,10)(3,8)(4,11)(6,9), (1,12)(2,11)(3,9)(4,10)(5,7)(6,8) ] gap> Size(C); 48 Regards, Muhammad Shah > Date: Sat, 10 Nov 2012 19:50:04 +0800 > From: lijr07 at gmail.com > To: forum at gap-system.org > Subject: [GAP Forum] List all elements in a Weyl group using GAP. > > Dear members of the Forum, > > I use the following codes to list all elements in B3 Weyl group. > > Are there some other methods which can obtain the list of elements in Weyl > group in GAP? Thank you very much. > > Best wishes, > Jianrong. > > F:=FreeGroup("a", "b", "c"); > > gap> B:=F/[ F.1^2, F.2^2, F.3^2, (F.1*F.2)^4, (F.2*F.3)^3, (F.3*F.1)^2 ]; > > gap> Size(B); > 48 > gap> Elements(B); > [ , a*b*a*b*c*b*a*b, c, c*b, a*b*a*b, b*a*b*c*b*a*b*c, > a*b*a*b*c*b*a*b*c, a*b*a*c*b*a*b*c, b*a*b*c, a*c, b, a*c*b*a*b, > b*a*b*c*b*a*b, b*c, a*c*b*a, a*b*a*b*c*b, a*c*b*a*b*c, a*b*a*b*c*b*a, > c*b*a*b*c, a, a*b*a*c*b*a, b*c*b*a*b*c, b*a, c*b*a*b, b*c*b, a*b*a, > a*b*c*b*a*b*c, a*b*a*b*c, b*a*c*b*a*b, a*b*c*b*a*b, b*a*b*c*b*a, > a*b*a*c*b*a*b, b*a*b*c*b, c*b*a, b*a*b, a*b*c*b, b*c*b*a, a*b, b*a*c*b*a, > a*b*a*c*b, b*a*c*b*a*b*c, a*b*a*c, a*b*c, b*a*c, a*c*b, b*a*c*b, > a*b*c*b*a, > b*c*b*a*b ] > gap> > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From frank.luebeck at math.rwth-aachen.de Sat Nov 10 13:21:45 2012 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Sat, 10 Nov 2012 14:21:45 +0100 Subject: [GAP Forum] List all elements in a Weyl group using GAP. In-Reply-To: References: Message-ID: <20121110132145.GA32058@beteigeuze.math.rwth-aachen.de> On Sat, Nov 10, 2012 at 07:50:04PM +0800, Jianrong Li wrote: > I use the following codes to list all elements in B3 Weyl group. > > Are there some other methods which can obtain the list of elements in Weyl > group in GAP? Thank you very much. > > Best wishes, > Jianrong. > > F:=FreeGroup("a", "b", "c"); > > gap> B:=F/[ F.1^2, F.2^2, F.3^2, (F.1*F.2)^4, (F.2*F.3)^3, (F.3*F.1)^2 ]; > > gap> Size(B); > 48 > gap> Elements(B); > [ , a*b*a*b*c*b*a*b, c, c*b, a*b*a*b, b*a*b*c*b*a*b*c, > a*b*a*b*c*b*a*b*c, a*b*a*c*b*a*b*c, b*a*b*c, a*c, b, a*c*b*a*b, [...] Dear Jianrong Li, dear Forum, With GAPs current functionality for Weyl groups you could do the following. # create the Weyl group in the default GAP: W := WeylGroup( RootSystem( SimpleLieAlgebra("E", 6, Rationals) ) ); # after loading the 'QuaGroup' package it can be done more conveniently LoadPackage("QuaGroup"); W := WeylGroup( RootSystem("E", 6) ); # The following function yields the elements of W as words which are # represented as lists of generator indices. # This function also shows how to generate the words one by one which # may be interesting for large W. WeylElements := function(W) local rk, rho, o, res, wt; rk := Length(GeneratorsOfGroup(W)); rho := List([1..rk], i-> 1); o := WeylOrbitIterator(W, rho); res := []; while not IsDoneIterator(o) do wt:=NextIterator(o); Add(res, ConjugateDominantWeightWithWord(W,wt)[2]); od; return res; end; els := WeylElements(W);; Length(els); els[100]; # translating such a word into an element of W (a matrix): wgens := GeneratorsOfGroup(W);; mat := Product(wgens{els[100]}, One(W)); With best regards, Frank L?beck -- /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck at Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From stefan at mcs.st-and.ac.uk Mon Nov 12 11:20:19 2012 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Mon, 12 Nov 2012 11:20:19 -0000 (UTC) Subject: [GAP Forum] A permutation group with huge finite orbits Message-ID: Dear Forum, this is to pose you a little problem, in no way a general question but just a nice example -- maybe some of you finds the answer: Let r(m) denote the residue class r + mZ of the integers. Given disjoint residue classes r1(m1) and r2(m2), let the class transposition (r1(m1),r2(m2)) be the permutation of Z which interchanges r1+k*m1 and r2+k*m2 for every integer k and which fixes all other points. Put a := (0(2),1(2)), b := (0(5),4(5)) and c := (1(4),0(6)), and let G := < Sym(Z). The claims on this group are: 1. All orbits under the action of G on Z are finite. 2. Except for the orbit of 0, orbits of G coincide with cycles of g := abc. None of these has been proved so far, but it is known that all cycles of g containing positive integers less than 173176 are finite -- e.g. the cycle of 32 has length 6296, the one of 736 has length 495448, and the cycle of 25952 has length 245719352 and a maximum of about 10^5759. The little problem for you is now to find the length of the cycle of 173176. This may require nothing more than a little patience -- but who knows ... ! You may deal with the problem in GAP as follows: gap> LoadPackage("rcwa"); gap> a := ClassTransposition(0,2,1,2);; gap> b := ClassTransposition(0,5,4,5);; gap> c := ClassTransposition(1,4,0,6);; gap> G := Group(a,b,c); gap> g := a*b*c; gap> Length(Cycle(g,32)); 6296 gap> Length(Cycle(g,736)); 495448 gap> Length(Cycle(g,173176)); The last command will exhaust the memory of your computer even if it has a lot, so I suggest not to store the iterates: n := 173176; length := 0; max := n; repeat n := n^g; length := length + 1; if n > max then max := n; Print("New maximum with ",LogInt(n,10)+1," digits reached after ", length," iterations.\n"); fi; until n = 173176; Print("The cycle length is ",length,".\n"); Please let me know if you have any questions or if you find something, and Good luck! Stefan ----------------------------------------------------------------------------- http://www.gap-system.org/DevelopersPages/StefanKohl/ ----------------------------------------------------------------------------- From sylow2subgroup at gmail.com Tue Nov 13 07:59:15 2012 From: sylow2subgroup at gmail.com (David Harden) Date: Tue, 13 Nov 2012 02:59:15 -0500 Subject: [GAP Forum] Compiling GAP code in a Windows environment Message-ID: I have GAP installed on my Windows machine. I am interested in doing a computation which makes use of a long list (of permutations on 32 points) and repeating the same operations many times over, so I think compiling my code can give me a substantial speed-up. How do I compile? From A.C.Aitchison at dpmms.cam.ac.uk Tue Nov 13 13:27:27 2012 From: A.C.Aitchison at dpmms.cam.ac.uk (Dr Andrew C Aitchison) Date: Tue, 13 Nov 2012 13:27:27 +0000 (GMT) Subject: [GAP Forum] Gap release numbers Message-ID: I note that gap4r5p6_2012_11_04-18_46 has been released. The previous release was gap4r5p6_2012_09_16-01_02 and the one before gap4r5p5_2012_07_16-17_17. What should I deduce from the fact that the latest release wasn't called gap4r5p7_2012_11_04-18_46 (...p7_...) ? -- Dr. Andrew C. Aitchison Computer Officer, DPMMS, Cambridge A.C.Aitchison at dpmms.cam.ac.uk http://www.dpmms.cam.ac.uk/~werdna From alexk at mcs.st-andrews.ac.uk Tue Nov 13 13:42:27 2012 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Tue, 13 Nov 2012 13:42:27 +0000 Subject: [GAP Forum] Gap release numbers In-Reply-To: References: Message-ID: <3CD8691F-2308-4B81-82F1-1B7942A92142@mcs.st-andrews.ac.uk> This is the package update for GAP 4.5.6: the core system is unchanged (this is why the version number is the same), the packages are given at the date specified by the timestamp. Packages that are updated since the previous release are listed at http://www.gap-system.org/Releases/4.5.6.html Hope this helps, Alexander On 13 Nov 2012, at 13:27, Dr Andrew C Aitchison wrote: > > I note that gap4r5p6_2012_11_04-18_46 has been released. > > The previous release was gap4r5p6_2012_09_16-01_02 and the one before gap4r5p5_2012_07_16-17_17. > > What should I deduce from the fact that the latest release wasn't called gap4r5p7_2012_11_04-18_46 (...p7_...) ? > > -- > Dr. Andrew C. Aitchison Computer Officer, DPMMS, Cambridge > A.C.Aitchison at dpmms.cam.ac.uk http://www.dpmms.cam.ac.uk/~werdna From stefan at mcs.st-and.ac.uk Tue Nov 13 13:46:59 2012 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Tue, 13 Nov 2012 13:46:59 -0000 (UTC) Subject: [GAP Forum] Gap release numbers In-Reply-To: References: Message-ID: Dear Forum, Andrew C Aitchison asked: > I note that gap4r5p6_2012_11_04-18_46 has been released. > > The previous release was gap4r5p6_2012_09_16-01_02 > and the one before gap4r5p5_2012_07_16-17_17. > > What should I deduce from the fact that the latest release > wasn't called gap4r5p7_2012_11_04-18_46 (...p7_...) ? Since the release of GAP 4.5, the archive names consist of 1. the version of the GAP 'core' system, which is 4.5.5 respectively 4.5.6 in the cases you mentioned, and 2. the timestamp of the collection of packages (there are presently about 100 of them), where e.g. 2012_11_04-18_46 stands for November 4, 2012, 18:46 UTC. Hope this helps, Stefan From fvanhove at cage.UGent.be Fri Nov 16 12:01:39 2012 From: fvanhove at cage.UGent.be (Frederic Vanhove) Date: Fri, 16 Nov 2012 13:01:39 +0100 Subject: [GAP Forum] Putting variables in strings Message-ID: <50A62B23.2080901@cage.UGent.be> Hello this is probably a very basic thing but I struggled to find the proper commands. I would like to have GAP write output to several files, the names of which are automatically generated. So I would like to have something like this: for i in [1..10] do PrintTo("outputfile"+i+".txt", i^3); od; Essentiallly, I just have to find the right way to get the proper string. How can I do this? Thanks, Fr?d?ric From alexk at mcs.st-andrews.ac.uk Fri Nov 16 12:06:40 2012 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Fri, 16 Nov 2012 12:06:40 +0000 Subject: [GAP Forum] Putting variables in strings In-Reply-To: <50A62B23.2080901@cage.UGent.be> References: <50A62B23.2080901@cage.UGent.be> Message-ID: <11B11BA0-3C35-4664-B867-CE4D7A1D02EB@mcs.st-andrews.ac.uk> Hello Frederic, Try this: PrintTo( Concatenation( "outputfile", String(i), ".txt" ), i^3); Hope this helps! Alexander On 16 Nov 2012, at 12:01, Frederic Vanhove wrote: > Hello > > this is probably a very basic thing but I struggled to find the proper commands. > I would like to have GAP write output to several files, the names of which are automatically generated. > > So I would like to have something like this: > > for i in [1..10] do > PrintTo("outputfile"+i+".txt", i^3); > od; > > Essentiallly, I just have to find the right way to get the proper string. > How can I do this? > > Thanks, > Fr?d?ric > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum -- Dr. Alexander Konovalov School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44/0 (1334) 461633 http://www.cs.st-andrews.ac.uk/~alexk Fax +44/0 (1334) 463278 The University of St Andrews is a charity registered in Scotland:No.SC013532 From fvanhove at cage.UGent.be Fri Nov 16 13:19:42 2012 From: fvanhove at cage.UGent.be (Frederic Vanhove) Date: Fri, 16 Nov 2012 14:19:42 +0100 Subject: [GAP Forum] Putting variables in strings In-Reply-To: <11B11BA0-3C35-4664-B867-CE4D7A1D02EB@mcs.st-andrews.ac.uk> References: <50A62B23.2080901@cage.UGent.be> <11B11BA0-3C35-4664-B867-CE4D7A1D02EB@mcs.st-andrews.ac.uk> Message-ID: <50A63D6E.7090208@cage.UGent.be> Thanks, that seems to work! Op 16/11/12 13:06, Alexander Konovalov schreef: > Hello Frederic, > > Try this: > > PrintTo( Concatenation( "outputfile", String(i), ".txt" ), i^3); > > Hope this helps! > Alexander > > > On 16 Nov 2012, at 12:01, Frederic Vanhove wrote: > >> Hello >> >> this is probably a very basic thing but I struggled to find the proper commands. >> I would like to have GAP write output to several files, the names of which are automatically generated. >> >> So I would like to have something like this: >> >> for i in [1..10] do >> PrintTo("outputfile"+i+".txt", i^3); >> od; >> >> Essentiallly, I just have to find the right way to get the proper string. >> How can I do this? >> >> Thanks, >> Fr?d?ric >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum > > -- > Dr. Alexander Konovalov School of Computer Science > & Centre for Interdisciplinary Research in Computational Algebra > University of St Andrews Tel +44/0 (1334) 461633 > http://www.cs.st-andrews.ac.uk/~alexk Fax +44/0 (1334) 463278 > The University of St Andrews is a charity registered in Scotland:No.SC013532 > > > > > > From alexk at mcs.st-andrews.ac.uk Mon Nov 19 12:53:35 2012 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Mon, 19 Nov 2012 12:53:35 +0000 Subject: [GAP Forum] Overloading functions In-Reply-To: References: Message-ID: On 11 May 2012, at 11:49, Marek Mitros wrote: > Hi, > > I tried to define ComplexConjugate function for octonions - see below. > In this is my function for conjugating the octonion. > > gap> ComplexConjugate:=function(o) return conj(o); end; > Variable: 'ComplexConjugate' is read only > > I would like to use function which use > . Is there way in GAP to overload standard > function, so it works also for my octonions ? > > The workaround would be to copy function from lib/matrix.gi and modify > but it is less convenient. Dear Marek, dear Forum, I've seen that this old message in the Forum was not answered by anyone. In case this question still makes sense, then is is possible for you just to install a method for ComplexConjugate for octonions? ComplexConjugate is an attribute, and the GAP library already has several methods for ComplexConjugate installed for different kinds of objects - you may find examples in the files from the 'lib' directory. Hope this helps, Alexander From marek at mitros.org Mon Nov 19 13:29:33 2012 From: marek at mitros.org (Marek Mitros) Date: Mon, 19 Nov 2012 14:29:33 +0100 Subject: [GAP Forum] Overloading functions In-Reply-To: References: Message-ID: Dear Alexander, I do not know how to install function ComplexConjugate for octonions. I believe I should use "InstallMethod(..." instead of "ComplexConjugate:=function(x)...". I below quote example for a list. It seems advanced technique for standard GAP user :) But maybe I will try it next time. Regarding the ReflectionMat I discovered that I can pass parameter "conj" which is function which conjugate matrix element. So I managed with my original problem. Regards, Marek Here is example I found in lib/cyclotom.gi InstallMethod( ComplexConjugate, "for a list", [ IsList ], function( list ) local result, i; result:= []; for i in [ 1 .. Length( list ) ] do if IsBound( list[i] ) then result[i]:= ComplexConjugate( list[i] ); fi; od; return result; end ); On 11/19/12, Alexander Konovalov wrote: > On 11 May 2012, at 11:49, Marek Mitros wrote: > >> Hi, >> >> I tried to define ComplexConjugate function for octonions - see below. >> In this is my function for conjugating the octonion. >> >> gap> ComplexConjugate:=function(o) return conj(o); end; >> Variable: 'ComplexConjugate' is read only >> >> I would like to use function which use >> . Is there way in GAP to overload standard >> function, so it works also for my octonions ? >> >> The workaround would be to copy function from lib/matrix.gi and modify >> but it is less convenient. > > Dear Marek, dear Forum, > > I've seen that this old message in the Forum was not answered by anyone. > > In case this question still makes sense, then is is possible for you just > to install a method for ComplexConjugate for octonions? > > ComplexConjugate is an attribute, and the GAP library already has several > methods for ComplexConjugate installed for different kinds of objects - > you may find examples in the files from the 'lib' directory. > > Hope this helps, > Alexander > > > From alexk at mcs.st-andrews.ac.uk Mon Nov 19 14:26:31 2012 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Mon, 19 Nov 2012 14:26:31 +0000 Subject: [GAP Forum] A permutation group with huge finite orbits In-Reply-To: References: Message-ID: <87860D8A-D5F9-4A71-A4FD-86F3C66A4200@mcs.st-andrews.ac.uk> Dear Stefan, On 12 Nov 2012, at 11:20, Stefan Kohl wrote: > Dear Forum, > > this is to pose you a little problem, in no way a general question but just > a nice example -- maybe some of you finds the answer: > > Let r(m) denote the residue class r + mZ of the integers. > Given disjoint residue classes r1(m1) and r2(m2), let the class transposition > (r1(m1),r2(m2)) be the permutation of Z which interchanges r1+k*m1 and r2+k*m2 > for every integer k and which fixes all other points. > > Put a := (0(2),1(2)), b := (0(5),4(5)) and c := (1(4),0(6)), and let > > G := < Sym(Z). > > The claims on this group are: > > 1. All orbits under the action of G on Z are finite. > 2. Except for the orbit of 0, orbits of G coincide with cycles of g := abc. > > None of these has been proved so far, but it is known that all cycles of g > containing positive integers less than 173176 are finite -- e.g. the cycle > of 32 has length 6296, the one of 736 has length 495448, and the cycle of > 25952 has length 245719352 and a maximum of about 10^5759. > > The little problem for you is now to find the length of the cycle of 173176. > This may require nothing more than a little patience -- but who knows ... ! I've started this computation a week ago, being lured by hopefully little patience that I may need to have, having no hint from you how much patience do I really need ;-). So, after one week, the last line of the output says: New maximum with 76785 digits reached after 15621898577 iterations. Hope this is useful if anybody else would be interested in this problem. I've stopped it now since the computer must be restarted by some other reasons. Is this the new upper bound, or you've already managed to achieve a higher number of iterations on your own? How do you know that all cycles for smaller positive integers are finite - was it checked with a help of a computer? Thanks, Alexander > You may deal with the problem in GAP as follows: > > gap> LoadPackage("rcwa"); > gap> a := ClassTransposition(0,2,1,2);; > gap> b := ClassTransposition(0,5,4,5);; > gap> c := ClassTransposition(1,4,0,6);; > gap> G := Group(a,b,c); > > gap> g := a*b*c; > > gap> Length(Cycle(g,32)); > 6296 > gap> Length(Cycle(g,736)); > 495448 > gap> Length(Cycle(g,173176)); > > The last command will exhaust the memory of your computer even if it has > a lot, so I suggest not to store the iterates: > > n := 173176; length := 0; max := n; > repeat > n := n^g; > length := length + 1; > if n > max then > max := n; > Print("New maximum with ",LogInt(n,10)+1," digits reached after ", > length," iterations.\n"); > fi; > until n = 173176; > Print("The cycle length is ",length,".\n"); > > Please let me know if you have any questions or if you find something, and > > Good luck! > > Stefan > > ----------------------------------------------------------------------------- > http://www.gap-system.org/DevelopersPages/StefanKohl/ > ----------------------------------------------------------------------------- > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum -- Dr. Alexander Konovalov School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44/0 (1334) 461633 http://www.cs.st-andrews.ac.uk/~alexk Fax +44/0 (1334) 463278 The University of St Andrews is a charity registered in Scotland:No.SC013532 From stefan at mcs.st-and.ac.uk Mon Nov 19 17:05:42 2012 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Mon, 19 Nov 2012 17:05:42 -0000 (UTC) Subject: [GAP Forum] A permutation group with huge finite orbits In-Reply-To: <87860D8A-D5F9-4A71-A4FD-86F3C66A4200@mcs.st-andrews.ac.uk> References: <87860D8A-D5F9-4A71-A4FD-86F3C66A4200@mcs.st-andrews.ac.uk> Message-ID: Dear Alexander, >> The little problem for you is now to find the length of the cycle of 173176. >> This may require nothing more than a little patience -- but who knows ... ! > > I've started this computation a week ago, being lured by hopefully little > patience that I may need to have, having no hint from you how much patience > do I really need ;-). So, after one week, the last line of the output says: > > New maximum with 76785 digits reached after 15621898577 iterations. Then you had notably more patience than me -- thanks and congratulations! -- I stopped the computation after about 5700000000 iterations and a maximum slightly above 10^40000. > How do you know that all cycles for smaller positive integers are finite > - was it checked with a help of a computer? Yes, I have checked that by computer. -- Most cycles are MUCH shorter! In any case, checking all cycles for positive integers less than 173176 took altogether MUCH less computing time than even only the 5700000000 iterations I did on the cycle of 173176 -- let alone the 15621898577 you did!! Short cycles (length <= 100) intersecting nontrivially with [0..100] are for example: gap> ShortCycles(g,[0..100],100); [ [ 0 ], [ 1, 4, 12, 18, 15, 10, 11, 14, 19, 13, 9, 8, 6, 7, 5 ], [ 2, 3 ], [ 16, 24, 42, 43, 29, 28, 36, 54, 59, 58, 55, 50, 51, 37, 25, 20, 30, 31, 34, 39, 38, 35, 21, 17 ], [ 22, 23 ], [ 26, 27 ], [ 46, 47 ], [ 52, 78, 75, 70, 71, 74, 79, 53 ], [ 62, 63 ], [ 76, 114, 119, 118, 115, 110, 111, 77 ], [ 82, 83 ], [ 86, 87 ], [ 92, 138, 135, 130, 131, 134, 139, 93 ] ] Actually the natural density of the set of integers belonging to cycles of length <= 24 is at least 47/108. -- To find this, we use that finite cycles of that particular permutation often (likely: always) come in infinite series that correspond to cycles on the set of all residue classes of Z: gap> cycs := ShortResidueClassCycles(g,480,24); [ [ 2(60), 3(60) ], [ 22(60), 23(60) ], [ 26(60), 27(60) ], [ 46(60), 47(60) ], [ 52(120), 78(180), 75(180), 70(180), 71(180), 74(180), 79(180), 53(120) ], [ 76(120), 114(180), 119(180), 118(180), 115(180), 110(180), 111(180), 77(120) ], [ 92(120), 138(180), 135(180), 130(180), 131(180), 134(180), 139(180), 93(120) ], [ 116(120), 174(180), 179(180), 178(180), 175(180), 170(180), 171(180), 117(120) ], [ 16(480), 24(720), 42(1080), 43(1080), 29(720), 28(720), 36(1080), 54(1620), 59(1620), 58(1620), 55(1620), 50(1620), 51(1620), 37(1080), 25(720), 20(720), 30(1080), 31(1080), 34(1080), 39(1080), 38(1080), 35(1080), 21(720), 17(480) ], [ 176(480), 264(720), 402(1080), 403(1080), 269(720), 268(720), 396(1080), 594(1620), 599(1620), 598(1620), 595(1620), 590(1620), 591(1620), 397(1080), 265(720), 260(720), 390(1080), 391(1080), 394(1080), 399(1080), 398(1080), 395(1080), 261(720), 177(480) ], [ 232(480), 348(720), 516(1080), 774(1620), 779(1620), 778(1620), 775(1620), 770(1620), 771(1620), 517(1080), 345(720), 340(720), 510(1080), 511(1080), 514(1080), 519(1080), 518(1080), 515(1080), 341(720), 344(720), 522(1080), 523(1080), 349(720), 233(480) ], [ 392(480), 588(720), 876(1080), 1314(1620), 1319(1620), 1318(1620), 1315(1620), 1310(1620), 1311(1620), 877(1080), 585(720), 580(720), 870(1080), 871(1080), 874(1080), 879(1080), 878(1080), 875(1080), 581(720), 584(720), 882(1080), 883(1080), 589(720), 393(480) ] ] gap> time; # quick 203 gap> Density(Union(Flat(cycs))); 47/108 Also finding the lengths of all cycles containing positive integers less than 1000 takes no more than a few seconds: gap> CycleRepresentativesAndLengths(g,[0..1000]); [ [ 1, 15 ], [ 2, 2 ], [ 16, 24 ], [ 22, 2 ], [ 26, 2 ], [ 32, 6296 ], [ 46, 2 ], [ 52, 8 ], [ 56, 296 ], [ 62, 2 ], [ 76, 8 ], [ 82, 2 ], [ 86, 2 ], [ 92, 8 ], [ 106, 2 ], [ 112, 104 ], [ 116, 8 ], [ 122, 2 ], [ 136, 440 ], [ 142, 2 ], [ 146, 2 ], [ 152, 40 ], [ 166, 2 ], [ 172, 8 ], [ 176, 24 ], [ 182, 2 ], [ 196, 8 ], [ 202, 2 ], [ 206, 2 ], [ 212, 8 ], [ 226, 2 ], [ 232, 24 ], [ 236, 8 ], [ 242, 2 ], [ 256, 56 ], [ 262, 2 ], [ 266, 2 ], [ 272, 408 ], [ 286, 2 ], [ 292, 8 ], [ 296, 104 ], [ 302, 2 ], [ 316, 8 ], [ 322, 2 ], [ 326, 2 ], [ 332, 8 ], [ 346, 2 ], [ 352, 264 ], [ 356, 8 ], [ 362, 2 ], [ 376, 1304 ], [ 382, 2 ], [ 386, 2 ], [ 392, 24 ], [ 406, 2 ], [ 412, 8 ], [ 416, 200 ], [ 422, 2 ], [ 436, 8 ], [ 442, 2 ], [ 446, 2 ], [ 452, 8 ], [ 466, 2 ], [ 472, 104 ], [ 476, 8 ], [ 482, 2 ], [ 496, 24 ], [ 502, 2 ], [ 506, 2 ], [ 512, 696 ], [ 526, 2 ], [ 532, 8 ], [ 536, 3912 ], [ 542, 2 ], [ 556, 8 ], [ 562, 2 ], [ 566, 2 ], [ 572, 8 ], [ 586, 2 ], [ 592, 888 ], [ 596, 8 ], [ 602, 2 ], [ 616, 728 ], [ 622, 2 ], [ 626, 2 ], [ 632, 2776 ], [ 646, 2 ], [ 652, 8 ], [ 656, 24 ], [ 662, 2 ], [ 676, 8 ], [ 682, 2 ], [ 686, 2 ], [ 692, 8 ], [ 706, 2 ], [ 712, 24 ], [ 716, 8 ], [ 722, 2 ], [ 736, 495448 ], [ 742, 2 ], [ 746, 2 ], [ 752, 1272 ], [ 766, 2 ], [ 772, 8 ], [ 776, 376 ], [ 782, 2 ], [ 796, 8 ], [ 802, 2 ], [ 806, 2 ], [ 812, 8 ], [ 826, 2 ], [ 832, 120 ], [ 836, 8 ], [ 842, 2 ], [ 856, 2264 ], [ 862, 2 ], [ 866, 2 ], [ 872, 24 ], [ 886, 2 ], [ 892, 8 ], [ 896, 132760 ], [ 902, 2 ], [ 916, 8 ], [ 922, 2 ], [ 926, 2 ], [ 932, 8 ], [ 946, 2 ], [ 952, 456 ], [ 956, 8 ], [ 962, 2 ], [ 976, 24 ], [ 982, 2 ], [ 986, 2 ], [ 992, 1064 ] ] gap> time; 2824 I still think that likely all cycles are finite -- if my understanding of it is right, besides the regularities mentioned above, cycles behave in some sense roughly like a simple random walk on Z, and are finite if the random walk is recurrent. In this "model", +1 in the random walk on Z roughly corresponds to multiplication by some constant, and -1 corresponds to division by that constant. If that describes cycles of g in a satisfactory way, that means of course also that cycles may sometimes be pretty long -- for example if a random walk on Z has reached a value in the 100000's, it usually takes a while until it gets back to 0 for the next time ... . Proving finiteness of all cycles may be pretty hard, however. Best wishes, Stefan From Bill.Allombert at math.u-bordeaux1.fr Mon Nov 19 17:51:56 2012 From: Bill.Allombert at math.u-bordeaux1.fr (Bill Allombert) Date: Mon, 19 Nov 2012 18:51:56 +0100 Subject: [GAP Forum] A permutation group with huge finite orbits In-Reply-To: References: <87860D8A-D5F9-4A71-A4FD-86F3C66A4200@mcs.st-andrews.ac.uk> Message-ID: <20121119175156.GA19238@yellowpig> On Mon, Nov 19, 2012 at 05:05:42PM -0000, Stefan Kohl wrote: > Proving finiteness of all cycles may be pretty hard, however. Indeed, this problem is too close to the Collatz ((3n+1)/2) conjecture for comfort. The Collatz sequence can be restated in your notation by asking whether the orbits of Z under M are finite, where M is the submonoid of Z^Z generated by a = (1(2)->2(3)) and b = (0(2)->0(1)) (a and b are not one-to-one). Cheers, Bill. From alexk at mcs.st-andrews.ac.uk Mon Nov 19 20:18:45 2012 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Mon, 19 Nov 2012 20:18:45 +0000 Subject: [GAP Forum] Overloading functions In-Reply-To: References: Message-ID: <6F02B980-2AC5-42B2-9D70-184A4D06A06C@mcs.st-andrews.ac.uk> Glad that you've found a workaround, Marek. I also don't know how octonions are constructed in your code, but if they permit IsOctonion filter and you already have a function to perform the conjugation, it may be installed as a method similarly to this example: > InstallMethod( ComplexConjugate, > "for an octonion", > [ IsOctonion ], > function( oct ) > ... > ... > return result; > end ); More information may be found in the reference manual, starting from Chapter 78 "Method Selection" and Tutorial (Chapter 8 "Operations and Methods"). Best wishes, Alexander On 19 Nov 2012, at 13:29, Marek Mitros wrote: > Dear Alexander, > > I do not know how to install function ComplexConjugate for octonions. > I believe I should use "InstallMethod(..." instead of > "ComplexConjugate:=function(x)...". I below quote example for a list. > It seems advanced technique for standard GAP user :) But maybe I will > try it next time. > > Regarding the ReflectionMat I discovered that I can pass parameter > "conj" which is function which conjugate matrix element. So I managed > with my original problem. > > Regards, > Marek > > > Here is example I found in lib/cyclotom.gi > > InstallMethod( ComplexConjugate, > "for a list", > [ IsList ], > function( list ) > local result, i; > > result:= []; > for i in [ 1 .. Length( list ) ] do > if IsBound( list[i] ) then > result[i]:= ComplexConjugate( list[i] ); > fi; > od; > return result; > end ); > > > On 11/19/12, Alexander Konovalov wrote: >> On 11 May 2012, at 11:49, Marek Mitros wrote: >> >>> Hi, >>> >>> I tried to define ComplexConjugate function for octonions - see below. >>> In this is my function for conjugating the octonion. >>> >>> gap> ComplexConjugate:=function(o) return conj(o); end; >>> Variable: 'ComplexConjugate' is read only >>> >>> I would like to use function which use >>> . Is there way in GAP to overload standard >>> function, so it works also for my octonions ? >>> >>> The workaround would be to copy function from lib/matrix.gi and modify >>> but it is less convenient. >> >> Dear Marek, dear Forum, >> >> I've seen that this old message in the Forum was not answered by anyone. >> >> In case this question still makes sense, then is is possible for you just >> to install a method for ComplexConjugate for octonions? >> >> ComplexConjugate is an attribute, and the GAP library already has several >> methods for ComplexConjugate installed for different kinds of objects - >> you may find examples in the files from the 'lib' directory. >> >> Hope this helps, >> Alexander >> >> >> -- Dr. Alexander Konovalov School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44/0 (1334) 461633 http://www.cs.st-andrews.ac.uk/~alexk Fax +44/0 (1334) 463278 The University of St Andrews is a charity registered in Scotland:No.SC013532 From stefan at mcs.st-and.ac.uk Mon Nov 19 21:04:05 2012 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Mon, 19 Nov 2012 21:04:05 -0000 (UTC) Subject: [GAP Forum] A permutation group with huge finite orbits In-Reply-To: <20121119175156.GA19238@yellowpig> References: <87860D8A-D5F9-4A71-A4FD-86F3C66A4200@mcs.st-andrews.ac.uk> <20121119175156.GA19238@yellowpig> Message-ID: On Mon, November 19, 2012 5:51 pm, Bill Allombert wrote: > On Mon, Nov 19, 2012 at 05:05:42PM -0000, Stefan Kohl wrote: >> Proving finiteness of all cycles may be pretty hard, however. > > Indeed, this problem is too close to the Collatz ((3n+1)/2) conjecture > for comfort. Most likely yes. -- But I wouldn't claim right away that it is really of similar difficulty. There are some regularities, e.g. except for the cycle containing 1, all cycles seem to have either length 2 or length congruent to 8 mod 16 etc. > The Collatz sequence can be restated in your notation by > asking whether the orbits of Z under M are finite, where M is the submonoid > of Z^Z generated by a = (1(2)->2(3)) and b = (0(2)->0(1)) > (a and b are not one-to-one). You can actually do the same with a group. -- The group G := <(1(2),4(6)),(1(3),2(6)),(2(3),4(6))> < Sym(Z) acts transitively on the set of positive integers which are not divisible by 6 if and only if the 3n+1 conjecture holds. The group G can be entered by pasting the following into GAP: a := ClassTransposition(1,2,4,6); b := ClassTransposition(1,3,2,6); c := ClassTransposition(2,3,4,6); G := Group(a,b,c); Best wishes, Stefan From kksa at math.ku.dk Tue Nov 20 13:24:20 2012 From: kksa at math.ku.dk (Kasper Andersen) Date: Tue, 20 Nov 2012 14:24:20 +0100 (CET) Subject: [GAP Forum] Postdoc In-Reply-To: <05784DBB-22AE-4EB9-8FF1-B55448196BE3@cornell.edu> References: <05784DBB-22AE-4EB9-8FF1-B55448196BE3@cornell.edu> Message-ID: Dear forum, We would like to advertise a postdoc position in "Experimental Mathematics" at University of Copenhagen, Denmark. Details and the full advertisement can be found at http://www.math.ku.dk/english/about/jobs/2012postdocxm/ best wishes, Kasper Andersen From msorouhesh at gmail.com Thu Nov 22 06:49:30 2012 From: msorouhesh at gmail.com (Mr. Sorouhesh) Date: Thu, 22 Nov 2012 10:19:30 +0330 Subject: [GAP Forum] Why doesn't this lines work properly Message-ID: Dear Froum, I am working on a GAP manual and write the following common commands to verify some facts in a self-made Semigroup: > f:=FreeSemigroup(2);; > a:=f.1;; b:=f.2;; > s:=f/[[a^2,a],[b^3,b],[a*b*a,b*a]];; > e:=Elements(s); [ s1, s2, s1*s2, s2*s1, s2^2, s1*s2^2, s2*s1*s2, s2^2*s1, s2*s1*s2^2, s2^2*s1*s2, s2^2*s1*s2^2 ] Now I write: > List([1..5],k->g[1]*g[2]=g[k]); [ false, false, *true*, false, false ] which works good. Now this one: > List([1..5],k->g[1]*g[2]=g[2]*g[k]); [ *false*, false, false, false, false ] which shows an defect in the program when k=1. I think, in that case, it should write "true". Please hint me on a right way. Thanks. From fvanhove at cage.UGent.be Sun Nov 25 11:34:51 2012 From: fvanhove at cage.UGent.be (Frederic Vanhove) Date: Sun, 25 Nov 2012 12:34:51 +0100 Subject: [GAP Forum] command to retrieve current date/time Message-ID: <50B2025B.1030007@cage.UGent.be> Hello, I was wondering if there is any way to let GAP return the current date or time. I know that using time; one can get the number of milliseconds the last operation took. However, I would like to do a long computation, and I would want GAP to print from to time what he has done already and how long that has already taken. Is that possible? Many thanks, Kind regards, Fr?d?ric From alexk at mcs.st-andrews.ac.uk Sun Nov 25 12:40:12 2012 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Sun, 25 Nov 2012 12:40:12 +0000 Subject: [GAP Forum] command to retrieve current date/time In-Reply-To: <50B2025B.1030007@cage.UGent.be> References: <50B2025B.1030007@cage.UGent.be> Message-ID: <15C67119-7EAD-4291-B46C-0C0660766A8D@mcs.st-andrews.ac.uk> Hello Frederic, On 25 Nov 2012, at 11:34, Frederic Vanhove wrote: > Hello, > > I was wondering if there is any way to let GAP return the current date or time. You may just use "Exec" this to print it: gap> Exec("date"); Fri 4 Sep 2009 14:12:34 BST The SCSCP package has also an auxiliary finction "CurrentTimestamp" to get it as a string: gap> CurrentTimestamp(); "Tue 30 Mar 2010 11:19:38 BST" > I know that using > time; > one can get the number of milliseconds the last operation took. > > However, I would like to do a long computation, and I would want GAP to print from to time what he has done already and how long that has already taken. 'time;' gives you the CPU time in milliseconds. When I am doing measurements which require real time, my recipe is to use IO_gettimeofday from the IO package, which returns the current time up to microseconds: gap> LoadPackage("io"); gap> curtime1:=IO_gettimeofday(); rec( tv_sec := 1255709571, tv_usec := 402983 ) gap> runtime:=function(t1,t2) return 1000000*(t2.tv_sec-t1.tv_sec)+t2.tv_usec-t1.tv_usec; end; gap> curtime2:=IO_gettimeofday(); rec( tv_sec := 1255709571, tv_usec := 458394 ) gap> runtime(curtime1,curtime2); 55411 Hope this is useful, Alexander From sandeepr.murthy at gmail.com Sun Nov 25 12:59:36 2012 From: sandeepr.murthy at gmail.com (Sandeep Murthy) Date: Sun, 25 Nov 2012 12:59:36 +0000 Subject: [GAP Forum] command to retrieve current date/time In-Reply-To: <50B2025B.1030007@cage.UGent.be> References: <50B2025B.1030007@cage.UGent.be> Message-ID: <50B21638.2090100@gmail.com> Hi, It seems an example is given on p. 148 of the GAP Reference Manual, using the Process function to call the OS date/time function. I guess, you could do something like this ... gap> date := Filename( DirectoriesSystemPrograms(), "date" ); gap> startTime := ""; a := OutputTextString( startTime, true ); gap> Process( DirectoryCurrent(), date, InputTextNone(), a, [] ); .... your computations ... gap> currTime := ""; b := OutputTextString( currTime, true ); gap> Process( DirectoryCurrent(), date, InputTextNone(), b, [] ); gap> startTime; currTime; Sincerely, Sandeep. Frederic Vanhove wrote: > Hello, > > I was wondering if there is any way to let GAP return the current date > or time. > > I know that using > time; > one can get the number of milliseconds the last operation took. > > However, I would like to do a long computation, and I would want GAP to > print from to time what he has done already and how long that has > already taken. > > Is that possible? > > Many thanks, > Kind regards, > Fr?d?ric > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From sl4 at st-andrews.ac.uk Sun Nov 25 14:30:52 2012 From: sl4 at st-andrews.ac.uk (Stephen Linton) Date: Sun, 25 Nov 2012 14:30:52 +0000 Subject: [GAP Forum] command to retrieve current date/time In-Reply-To: <47270a10384b436ca0d07399319f14f0@UOS-DUN-CAS3.st-andrews.ac.uk> References: <47270a10384b436ca0d07399319f14f0@UOS-DUN-CAS3.st-andrews.ac.uk> Message-ID: <150ACA69-8943-4B09-B169-E71B23B177CA@st-andrews.ac.uk> There is a function Runtime() which returns the number of milliseconds of CPU time GAP has used since starting, and a related function Runtimes() which gives slightly more detail. On 32 bit systems both commands may wrap round, giving strange results after a few days. Steve On 25 Nov 2012, at 11:34, Frederic Vanhove wrote: > Hello, > > I was wondering if there is any way to let GAP return the current date > or time. > > I know that using > time; > one can get the number of milliseconds the last operation took. > > However, I would like to do a long computation, and I would want GAP to > print from to time what he has done already and how long that has > already taken. > > Is that possible? > > Many thanks, > Kind regards, > Fr?d?ric > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From member at linkedin.com Mon Nov 26 01:24:36 2012 From: member at linkedin.com (Leonard Chastkofsky via LinkedIn) Date: Mon, 26 Nov 2012 01:24:36 +0000 (UTC) Subject: [GAP Forum] Invitation to connect on LinkedIn Message-ID: <1612070367.18366049.1353893076353.JavaMail.app@ela4-app2317.prod> LinkedIn ------------ Leonard Chastkofsky requested to add you as a connection on LinkedIn: ------------------------------------------ Guang, I'd like to add you to my professional network on LinkedIn. - Leonard Accept invitation from Leonard Chastkofsky http://www.linkedin.com/e/m6t9ff-h9ywzblk-6b/yyKiECF05t8gMi_bE2jdiMBKEidJE6s_/blk/I244307558_140/3wOtCVFbmdxnSVFbm8JrnpKqlZJrmZzbmNJpjRQnOpBtn9QfmhBt71BoSd1p65Lr6lOfP0QclYUdjkTc3cQd399bRdhoT1zrCkTbPcSc38UcP4RdPALrCBxbOYWrSlI/eml-comm_invm-b-in_ac-inv28/?hs=false&tok=3xzcPPP7kkk5w1 View profile of Leonard Chastkofsky http://www.linkedin.com/e/m6t9ff-h9ywzblk-6b/rso/63717885/_028/name/143234312_I244307558_140/?hs=false&tok=02IVDPthckk5w1 ------------------------------------------ You are receiving Invitation emails. This email was intended for Guang Rao. Learn why this is included: http://www.linkedin.com/e/m6t9ff-h9ywzblk-6b/plh/http%3A%2F%2Fhelp%2Elinkedin%2Ecom%2Fapp%2Fanswers%2Fdetail%2Fa_id%2F4788/-GXI/?hs=false&tok=0MNzerwvckk5w1 (c) 2012, LinkedIn Corporation. 2029 Stierlin Ct, Mountain View, CA 94043, USA. From Inneke.Van.Gelder at vub.ac.be Mon Nov 26 15:57:38 2012 From: Inneke.Van.Gelder at vub.ac.be (Inneke Van Gelder) Date: Mon, 26 Nov 2012 16:57:38 +0100 Subject: [GAP Forum] subfields of big finite fields Message-ID: <1353945458.1991.23.camel@ivgelder-desktop> Dear GAP forum, I extend GF(2) by a primitive 19-th root of unity as follows: gap> xi:=PrimitiveRoot(GF(2^18))^((2^18-1)/19); z gap> F:=GF(GF(2),MinimalPolynomial(GF(2),xi)); However I am interested in the subfields of this field. But this causes an error in GAP: gap> Subfields(F); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 2nd choice method found for `Subfields' on 1 arguments called from ( ) called from read-eval loop at line 28 of *stdin* you can 'quit;' to quit to outer loop, or you can 'return;' to continue Is there a way to get around this error? Thanks Inneke Van Gelder From Bill.Allombert at math.u-bordeaux1.fr Mon Nov 26 16:27:40 2012 From: Bill.Allombert at math.u-bordeaux1.fr (Bill Allombert) Date: Mon, 26 Nov 2012 17:27:40 +0100 Subject: [GAP Forum] subfields of big finite fields In-Reply-To: <1353945458.1991.23.camel@ivgelder-desktop> References: <1353945458.1991.23.camel@ivgelder-desktop> Message-ID: <20121126162740.GA5448@yellowpig> On Mon, Nov 26, 2012 at 04:57:38PM +0100, Inneke Van Gelder wrote: > Dear GAP forum, > > > I extend GF(2) by a primitive 19-th root of unity as follows: > > gap> xi:=PrimitiveRoot(GF(2^18))^((2^18-1)/19); > z > gap> F:=GF(GF(2),MinimalPolynomial(GF(2),xi)); > > > However I am interested in the subfields of this field. But this causes > an error in GAP: > > Is there a way to get around this error? Galois theory predict that the set of subfields is exactly {GF(2^d) for all d dividing 18} and you can even write a generator of each fields in term of a power of PrimitiveRoot(GF(2^18)) as PrimitiveRoot(GF(2^18))^((2^18-1)/(2^d-1)). Cheers, Bill. From fvanhove at cage.UGent.be Wed Nov 28 13:54:33 2012 From: fvanhove at cage.UGent.be (Frederic Vanhove) Date: Wed, 28 Nov 2012 14:54:33 +0100 Subject: [GAP Forum] replacing group action by permutations of [1..n] In-Reply-To: <1612070367.18366049.1353893076353.JavaMail.app@ela4-app2317.prod> References: <1612070367.18366049.1353893076353.JavaMail.app@ela4-app2317.prod> Message-ID: <50B61799.6040307@cage.UGent.be> Dear forum, in the following two examples, GAP constructs a group of permutations, not represented as elements of the symmetric group S_n: h:=PSL(2,5); g:=AutomorphismGroup(h); Elements(g); gf:=GF(64); g:=GaloisGroup(gf); Elements(g); However, I would like to have an equivalent representation on respectively [1..60] and [1..64]. Is this possible? Many thanks, Kind regards, Fr?d?ric From stefan at mcs.st-and.ac.uk Wed Nov 28 14:30:53 2012 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Wed, 28 Nov 2012 14:30:53 -0000 (UTC) Subject: [GAP Forum] replacing group action by permutations of [1..n] In-Reply-To: <50B61799.6040307@cage.UGent.be> References: <1612070367.18366049.1353893076353.JavaMail.app@ela4-app2317.prod> <50B61799.6040307@cage.UGent.be> Message-ID: Dear Frederic, > in the following two examples, GAP constructs a group of permutations, > not represented as elements of the symmetric group S_n: > > h:=PSL(2,5); > g:=AutomorphismGroup(h); > Elements(g); > > gf:=GF(64); > g:=GaloisGroup(gf); > Elements(g); > > However, I would like to have an equivalent representation on > respectively [1..60] and [1..64]. > > Is this possible? Yes. -- You can do the following: gap> h:=PSL(2,5); Group([ (3,5)(4,6), (1,2,5)(3,4,6) ]) gap> g:=AutomorphismGroup(h); gap> g_regular := Action(g,AsList(g),OnRight); gap> DegreeAction(g_regular); 120 and gap> gf:=GF(64); GF(2^6) gap> g:=GaloisGroup(gf); gap> gf_regular := Action(g,AsList(gf),OnPoints); Group([ (3,4)(5,6,8)(7,10,9)(11,12,14,18,25,38)(13,16,21,31,51,39) (15,19,28,45,26,40)(17,23,34,58,52,41)(20,29,48,32,53,42)(22,33,55,46,27,43) (24,36,62,59,54,44)(30,49,35,60,56,47)(37,64,63,61,57,50) ]) gap> DegreeAction(gf_regular); # -> |GF(2^6)| - |GF(2)| = 64 - 2, prime field is fixed 62 Hope this helps, Stefan ----------------------------------------------------------------------------- http://www.gap-system.org/DevelopersPages/StefanKohl/ ----------------------------------------------------------------------------- From hulpke at me.com Wed Nov 28 14:35:39 2012 From: hulpke at me.com (hulpke at me.com) Date: Wed, 28 Nov 2012 07:35:39 -0700 Subject: [GAP Forum] replacing group action by permutations of [1..n] In-Reply-To: <50B61799.6040307@cage.UGent.be> References: <1612070367.18366049.1353893076353.JavaMail.app@ela4-app2317.prod> <50B61799.6040307@cage.UGent.be> Message-ID: Dear Frederic, Dear Forum, > in the following two examples, GAP constructs a group of permutations, not represented as elements of the symmetric group S_n: > > h:=PSL(2,5); > g:=AutomorphismGroup(h); > Elements(g); > > > gf:=GF(64); > g:=GaloisGroup(gf); > Elements(g); > > However, I would like to have an equivalent representation on respectively [1..60] and [1..64]. > > Is this possible? You want the actions of the groups on the respective domains. If you ever want to get back to homomorphisms you likely will want to do this using action homomorphisms: gap> e:=Elements(g); [ IdentityMapping( GF(2^6) ), FrobeniusAutomorphism( GF(2^6) )^4, FrobeniusAutomorphism( GF(2^6) )^2, FrobeniusAutomorphism( GF(2^6) )^3, FrobeniusAutomorphism( GF(2^6) ), FrobeniusAutomorphism( GF(2^6) )^5 ] gap> hom:=ActionHomomorphism(g,e,OnRight,"surjective"); # the "surjective" is not strictly necessary but if not given the map will be into S6 with same image. gap> Image(hom); Group([ (1,5,3,4,2,6) ]) Points are numbered as the elements list `e' is. Best, Alexander From stefan at mcs.st-and.ac.uk Wed Nov 28 14:36:55 2012 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Wed, 28 Nov 2012 14:36:55 -0000 (UTC) Subject: [GAP Forum] replacing group action by permutations of [1..n] In-Reply-To: References: <1612070367.18366049.1353893076353.JavaMail.app@ela4-app2317.prod> <50B61799.6040307@cage.UGent.be> Message-ID: On Wed, November 28, 2012 2:30 pm, Stefan Kohl wrote: > Dear Frederic, > >> in the following two examples, GAP constructs a group of permutations, >> not represented as elements of the symmetric group S_n: >> >> h:=PSL(2,5); >> g:=AutomorphismGroup(h); >> Elements(g); >> >> gf:=GF(64); >> g:=GaloisGroup(gf); >> Elements(g); >> >> However, I would like to have an equivalent representation on >> respectively [1..60] and [1..64]. >> >> Is this possible? > > Yes. -- You can do the following: > > gap> h:=PSL(2,5); > Group([ (3,5)(4,6), (1,2,5)(3,4,6) ]) > gap> g:=AutomorphismGroup(h); > > gap> g_regular := Action(g,AsList(g),OnRight); > > gap> DegreeAction(g_regular); > 120 Ah, I see you asked for the action on 60 points -- so do: gap> gp := Action(g,h,OnPoints); gap> DegreeAction(gp); # 60 - 1, identity is fixed by every automorphism 59 Stefan From hulpke at math.colostate.edu Wed Nov 28 16:16:53 2012 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Wed, 28 Nov 2012 09:16:53 -0700 Subject: [GAP Forum] subfields of big finite fields In-Reply-To: <1353945458.1991.23.camel@ivgelder-desktop> References: <1353945458.1991.23.camel@ivgelder-desktop> Message-ID: <4C024C6A-9471-4AA4-9043-83E2B528E73A@math.colostate.edu> Dear Forum, Dear Inneke, > I extend GF(2) by a primitive 19-th root of unity as follows: > > gap> xi:=PrimitiveRoot(GF(2^18))^((2^18-1)/19); > z > gap> F:=GF(GF(2),MinimalPolynomial(GF(2),xi)); > > > However I am interested in the subfields of this field. But this causes > an error in GAP: > > gap> Subfields(F); > Error, no method found! For debugging hints type ?Recovery from Indeed (while we know their orders from theory) GAP currently does not have a method for giving subfields in terms of a user-selected primitive root. Such a method will be added in the next release. In case it is of help for your calculation, here are (calculated in the development version) the subfields in terms of your primitive root: gap> Subfields(F); [ Field([!Z(2)^0]), Field([a^17+a^16+a^11+a^9+a^7+a^6+a^5+a^4+a]), Field([a^15+a^13+a^10+a^9+a^6+a^4+Z(2)^0]), Field([a^17+a^16+a^15+a^13+a^11+a^10+a^9+a^7+a^6+a^5+a^4+a]), Field([a^17+a^13+a^12+a^11+a^10+a^9+a^8+a^7+a^6+a^2+Z(2)^0]), ] I hope this is of help, Alexander -- Alexander Hulpke, Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From fvanhove at cage.UGent.be Thu Nov 29 12:12:02 2012 From: fvanhove at cage.UGent.be (Frederic Vanhove) Date: Thu, 29 Nov 2012 13:12:02 +0100 Subject: [GAP Forum] Finding or determining existence equivalence permutation representations? Message-ID: <50B75112.5080507@cage.UGent.be> Dear forum, thanks with the help yesterday on permutation representations. I had another related question: suppose I have some groups (let us assume of the same size but not necessarily isomorphic), represented by permutations on sets of the same size. Is there any way to determine if the representations are equivalent and if so, to actually see the equivalence? To be specific, in this example: q:=3; h:=DirectProduct(CyclicGroup(q),CyclicGroup(q)); gtemp:=AutomorphismGroup(h); Difference(Elements(h),[Elements(h)[1]]); g:=Action(gtemp,Difference(Elements(h),[Elements(h)[1]]),OnPoints); w:=AllTransitiveGroups(DegreeOperation,q^2-1,Size,(q^2-1)*q*(q-1)); How could I see which group action in w is equivalent to g? Would this also be possible for much larger groups? Thanks, Kind regards, Fr?d?ric From hulpke at math.colostate.edu Thu Nov 29 17:31:35 2012 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu, 29 Nov 2012 10:31:35 -0700 Subject: [GAP Forum] Finding or determining existence equivalence permutation representations? In-Reply-To: <50B75112.5080507@cage.UGent.be> References: <50B75112.5080507@cage.UGent.be> Message-ID: <4F9578BB-E3C1-4CE3-9D88-8D3AC12693C4@math.colostate.edu> Dear Forum, Dear Frederic, > I had another related question: suppose I have some groups (let us assume of the same size but not necessarily isomorphic), represented by permutations on sets of the same size. > Is there any way to determine if the representations are equivalent and if so, to actually see the equivalence? You want an element in the corresponding symmetric group that conjugates one group to the other: gap> s8:=SymmetricGroup(8); Sym( [ 1 .. 8 ] ) gap> RepresentativeAction(s8,g,w[1]); (2,4,6,3,5,8) gap> RepresentativeAction(s8,g,w[2]); fail > q:=3; > h:=DirectProduct(CyclicGroup(q),CyclicGroup(q)); > gtemp:=AutomorphismGroup(h); > Difference(Elements(h),[Elements(h)[1]]); > g:=Action(gtemp,Difference(Elements(h),[Elements(h)[1]]),OnPoints); > > w:=AllTransitiveGroups(DegreeOperation,q^2-1,Size,(q^2-1)*q*(q-1)); > > How could I see which group action in w is equivalent to g? The transitive groups and primitive groups libraries provide functions TransitiveIdentification and PrimitiveIdentification that give the number of the group in the respective library. As they can use the classification of the groups they can avoid the hard isomorphism test and instead check a sufficient number of invariants. > Would this also be possible for much larger groups? In most cases RepresentativeAction should work fine for degrees up to the 10000s or even 100000, but I would not be surprised if one could construct particular situations even in degree 1000s where it will take substantial time. Best, Alexander -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From rehrenf at maths.bham.ac.uk Fri Nov 30 02:14:29 2012 From: rehrenf at maths.bham.ac.uk (Felix Rehren) Date: Fri, 30 Nov 2012 15:14:29 +1300 Subject: [GAP Forum] Data structures underlying algebra Message-ID: Dear all, I am hoping for some advice about efficiency and good practice to implement the algebras I am building in GAP. The overall method is building a larger space, then finding a quotient which satisfies my axioms. I have a vector space W over the rationals of (at least) several hundred dimensions. It has a small subspace V (of dimension < sqrt(dim(W))) which is endowed with an algebra product V x V -> W. To implement this product, I keep a list of lists of elements of W, i.e. structure constants a table---call it M---which has ~dim(W)^2 entries in the rationals. The product of two vectors u, v is the naive implementation: u * v = Sum( u[i] * v[j] * M[i][j] ). Typically M has not many zero entries, and few entries which are entirely zero vectors. I would estimate around 25% of the rationals are 0, but there are proportionally much fewer i,j for which M[i][j] is the zero vector. I (at one stage) keep track of unknowns in the algebra by unbound entries in M. There is more information than this, because the algebra is linked to a group, so I keep another list B whose elements I know are ordered to correspond with the basis elements. Often V, W (and M) will be modified. In particular, I take quotients by subspaces. Currently I am doing this manually, i.e. rewriting the vectors and tables myself. This is because I wanted to keep close control of the basis, and the documentation of NaturalHomomorphismBySubspace didn't seem to let me do that. Sometimes, I want to blow W up, maybe adding dim(V) or maybe increasing by an order of magnitude, and of course all of the old information should still be there, but the new dimensions correspond to new unknowns, so again I keep my basis under close control. I use quite a lot of products, so I am wondering if this is really a good way of doing things. Is this a good way to store and use the table M? I also have the action of my group G on W recorded; I take the generators of G, build corresponding dim(W) x dim(W) matrices (these are relatively sparse, but definitely in the rationals), and generate the matrix group from these, then find the GroupHomomorphismByImagesNC. I very often take orbits of vectors from W under the group G; the action is via this homomorphism. Is this sensible? I would be pleased to hear any suggestions. Also, of course I can provide any further information. Thanks, Felix From fvanhove at cage.UGent.be Fri Nov 30 11:53:40 2012 From: fvanhove at cage.UGent.be (Frederic Vanhove) Date: Fri, 30 Nov 2012 12:53:40 +0100 Subject: [GAP Forum] GRAPE: using trivial group Message-ID: <50B89E44.1080003@cage.UGent.be> Dear forum, I have yet another question on group actions. In GRAPE, one can construct graph with a specific group. Unfortunately, this turns against me when I just want a trivial group. For instance, this works: LoadPackage("grape"); q:=13; gf:=GaloisField(q); graph:=Graph(GaloisGroup(gf), Elements(gf), OnPoints,function(x,y) return (x-y)^((q-1)/2)=One(gf); end,true); but this doesn't work; LoadPackage("grape"); q:=13; gf:=GaloisField(q); graph:=Graph(Group(()), Elements(gf), OnPoints,function(x,y) return (x-y)^((q-1)/2)=One(gf); end,true); It's probably just a matter of defining the trivial group on the right set in the proper way, but how should one do this? Many thanks, Kind regards, Fr?d?ric From L.H.Soicher at qmul.ac.uk Fri Nov 30 14:30:27 2012 From: L.H.Soicher at qmul.ac.uk (Leonard Soicher) Date: Fri, 30 Nov 2012 14:30:27 +0000 Subject: [GAP Forum] GRAPE: using trivial group In-Reply-To: <50B89E44.1080003@cage.UGent.be> References: <50B89E44.1080003@cage.UGent.be> Message-ID: <20121130143027.GA12362@maths.qmul.ac.uk> Dear Fr?d?ric, Dear GAP-Forum, > but this doesn't work; > > LoadPackage("grape"); > q:=13; > gf:=GaloisField(q); > graph:=Graph(Group(()), Elements(gf), OnPoints,function(x,y) return > (x-y)^((q-1)/2)=One(gf); end,true); > > It's probably just a matter of defining the trivial group on the > right set in the proper way, but how should one do this? What I suggest is to define a function for the trivial action of a group: trivialaction := function(x,g) return x; end; Then the following will work: LoadPackage("grape"); q:=13; gf:=GaloisField(q); graph:=Graph(Group(()), Elements(gf), trivialaction, function(x,y) return (x-y)^((q-1)/2)=One(gf); end,true); All the best, Leonard From gutsche at momo.math.rwth-aachen.de Sun Dec 2 14:16:43 2012 From: gutsche at momo.math.rwth-aachen.de (Sebastian Gutsche) Date: Sun, 02 Dec 2012 15:16:43 +0100 Subject: [GAP Forum] When is an ImmediateMethod triggered? Message-ID: <50BB62CB.5000208@momo.math.rwth-aachen.de> Dear all, I have discovered that an ImmediateMethod is only triggered once for every object, exactly when the filter given in the implementation of the ImmediateMethod becomes true for the object, even if the computation ends without an result (TryNextMethod without second choice). This makes sense! It is also implicitly stated in the documentation, but not 100% clear, so I wanted to ask if this is true. Now, for some features, I need a possibility to trigger a method (without a return, or a partial immediate one which ends in TryNextMethod) at every time a filter is set to true for the object and the method is applicable. Is there a possibility to do this without installing the same partial immediate method with the filter which can become true eventually for every filter, so it will be triggered every time a filter comes true? I really would prefer a global solution, since I don't want to spam the method selection with a (metric) ton of ImmediateMethods. But if it is no problem to install many ImmediateMethods, I think I can life with that solution. From the solution a second question arises: If an ImmediateMethod is installed, and is applicable to an object directly, will it be triggered? Best wishes, Sebastian From zeinab_foruzanfar at iust.ac.ir Mon Dec 3 07:39:12 2012 From: zeinab_foruzanfar at iust.ac.ir (zeinab foruzanfar) Date: Mon, 03 Dec 2012 11:09:12 +0330 Subject: [GAP Forum] Semidirect Product of C_2^4 and A_5 Message-ID: Hi I'm trying to write a Gap-program for (Z2?Z2?Z2?Z2)??A5. Please Help me. Thanks From stefan at mcs.st-and.ac.uk Mon Dec 3 10:43:33 2012 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Mon, 3 Dec 2012 10:43:33 -0000 (UTC) Subject: [GAP Forum] Semidirect Product of C_2^4 and A_5 In-Reply-To: References: Message-ID: Dear Forum, Zeinab Foruzanfar asked: > I'm trying to write a Gap-program for (Z2??Z2??Z2??Z2)?????A5. Please Help me. The easiest is of course to construct the direct product, but I guess you rather want one of the perfect groups of the structure you give. To construct them, you can do the following: 1. Define the normal subgroup: gap> N := Group((1,2),(3,4),(5,6),(7,8));; 2. Compute the automorphism group: gap> A := AutomorphismGroup(N); gap> Size(A); 20160 3. Embed A5: gap> phi := IsomorphismPermGroup(A);; gap> Ap := Image(phi); Group([ (4,8)(5,9)(6,10)(7,11), (1,8,4,2)(3,9,12,6)(5,10)(7,11,13,14), (8,12)(9,13)(10,14)(11,15), () ]) gap> A5 := IsomorphicSubgroups(Ap,AlternatingGroup(5)); [ [ (1,4,5,3,2), (1,5)(2,4) ] -> [ (1,2,5,9,15)(3,7,12,6,14)(4,11,10,8,13), (1,5)(2,15)(3,10)(6,11)(7,14)(8,12) ], [ (1,4,5,3,2), (1,5)(2,4) ] -> [ (1,2,11,12,4)(3,9,7,8,5)(6,10,14,15,13), (1,5)(2,15)(3,10)(6,11)(7,14)(8,12) ] ] --> Up to conjugacy there are 2 embeddings of A5 into Aut(N). 4. Construct the corresponding semidirect products: gap> G := SemidirectProduct(PreImage(phi,Image(A5[1])),N); gap> Size(G); 960 gap> IsPerfect(G); true gap> IdGroup(G); [ 960, 11358 ] gap> H := SemidirectProduct(PreImage(phi,Image(A5[2])),N); gap> Size(H); 960 gap> IsPerfect(H); true gap> IdGroup(H); [ 960, 11357 ] 5. These are all such perfect groups: gap> NrPerfectGroups(960); 2 Hope this helps, Stefan From fvanhove at cage.UGent.be Wed Dec 5 12:05:09 2012 From: fvanhove at cage.UGent.be (Frederic Vanhove) Date: Wed, 05 Dec 2012 13:05:09 +0100 Subject: [GAP Forum] ActionHomomorphism: can I also get Message-ID: <50BF3875.6020704@cage.UGent.be> Dear forum, some time ago the command ActionHomomorphism was recommend to me. I was now wondering, if I have two equivalent permutation groups, can I get a bijection between the groups as well as a corresponding bijection between the sets on which they act? For instance: g1:=Group((1,2),(3,4),(1,3)); g2:=Group((1,2),(2,3)); gaction1:=Action(Stabilizer(g1,1),[2..4],OnPoints); gaction2:=Action(g2,[1..3],OnPoints); ActionHomomorphism(gaction1,gaction2); (of course, I want to consider much bigger sets) Thanks, Kind regards, Fr?d?ric From ahulpke at gmail.com Wed Dec 5 17:59:52 2012 From: ahulpke at gmail.com (Alexander Hulpke) Date: Wed, 5 Dec 2012 10:59:52 -0700 Subject: [GAP Forum] ActionHomomorphism: can I also get In-Reply-To: <50BF3875.6020704@cage.UGent.be> References: <50BF3875.6020704@cage.UGent.be> Message-ID: <8678325B-0962-4780-80AE-F7223F1A36D6@gmail.com> Dear Forum, Dear Drederic, > some time ago the command ActionHomomorphism was recommend to me. I was now wondering, if I have two equivalent permutation groups, can I get a bijection between the groups as well as a corresponding bijection between the sets on which they act? > > For instance: > > g1:=Group((1,2),(3,4),(1,3)); > g2:=Group((1,2),(2,3)); > > gaction1:=Action(Stabilizer(g1,1),[2..4],OnPoints); > gaction2:=Action(g2,[1..3],OnPoints); Your syntax is a bit confused here. Basically Action(G,set,op)=Image(ActionHomomorphism(G,set,op)). The action homomorphism preserves the connection to the initial group, the action is just the resulting permutation group. Thus > ActionHomomorphism(gaction1,gaction2); does not make sense. If you call `RepresentativeAction(symmetricgroup,g1,g2)' you get a permutation that conjugates one group into the other. So it is a bijection between the groups given by a bijection of the underlying domain. However I suspect that you actually want to test for equivalence of actions, i.e. you have a group G acting on two sets omega1 and omega2 and you want to see whether there is a bijection between the sets that makes the actions equivalent. In this case you need to find a permutation that maps the images of the same generating set to each other. This is actually a cheaper test than the one for mapping the groups. For example, consider these two actions of S4 on sets of order 2 or on cosets of a subgroup. gap> G:=SymmetricGroup(4); Sym( [ 1 .. 4 ] ) gap> c:=Combinations([1..4],2); [ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 2, 3 ], [ 2, 4 ], [ 3, 4 ] ] gap> act1:=ActionHomomorphism(G,c,OnSets,"surjective"); gap> U:=Subgroup(G,[(1,3),(2,4)]); Group([ (1,3), (2,4) ]) gap> Index(G,U); 6 gap> T:=RightCosets(G,U); [ RightCoset(Group( [ (1,3), (2,4) ] ),()), RightCoset(Group( [ (1,3), (2,4) ] ),(3,4)), RightCoset(Group( [ (1,3), (2,4) ] ),(2,3)), RightCoset(Group( [ (1,3), (2,4) ] ),(1,2)), RightCoset(Group( [ (1,3), (2,4) ] ),(1,2)(3,4)), RightCoset(Group( [ (1,3), (2,4) ] ),(1,3,4,2)) ] gap> act2:=ActionHomomorphism(G,T,OnRight,"surjective"); gap> imgs1:=List(GeneratorsOfGroup(G),x->Image(act1,x)); [ (1,4,6,3)(2,5), (2,4)(3,5) ] gap> imgs2:=List(GeneratorsOfGroup(G),x->Image(act2,x)); [ (1,5)(2,3,4,6), (1,4)(2,5) ] Now search for an element that maps the elements of imgs1 to those of imgs2 in the same arrangement: gap> rep:=RepresentativeAction(SymmetricGroup(6),imgs1,imgs2,OnTuples); (1,3,2) Verify: gap> List(imgs1,x->x^(1,3,2)); [ (1,5)(2,3,4,6), (1,4)(2,5) ] So (1,3,2) is the permutation indicating how to reorder the elements of c to get the same action. If you can replace the symmetric group with something smaller (you might do a prearrangement by hand so that for example both actions have the same blocks) this will help in larger degrees. (If this is not of help or not what you want feel free to send me the actual problem you want to solve.) Best, Alexander From fvanhove at cage.UGent.be Thu Dec 6 07:02:19 2012 From: fvanhove at cage.UGent.be (Frederic Vanhove) Date: Thu, 06 Dec 2012 08:02:19 +0100 Subject: [GAP Forum] ActionHomomorphism: can I also get In-Reply-To: <8678325B-0962-4780-80AE-F7223F1A36D6@gmail.com> References: <50BF3875.6020704@cage.UGent.be> <8678325B-0962-4780-80AE-F7223F1A36D6@gmail.com> Message-ID: <50C042FB.3020005@cage.UGent.be> Hello, thanks for your reply, but I'm afraid I don't really understand. Perhaps it would indeed help if I'd explain what I really want to do: #small permutation representation gsmall:=AllPrimitiveGroups(DegreeOperation,40,Size,51840)[1]; #big permutation representation g:=AllPrimitiveGroups(DegreeOperation,1120, Size, 9170703360)[2]; subset:=[ 1, 3, 13, 53, 106, 143, 149, 161, 233, 263, 268, 281, 284, 295, 333, 370, 378, 410, 421, 439, 459, 496, 541, 546, 565, 597, 628, 683, 695, 696, 698, 738, 795, 868, 881, 907, 934, 999, 1021, 1038 ]; gstab:=Action(Stabilizer(g,subset,OnSets),subset,OnPoints); Size(gstab);DegreeAction(gstab); (note: the stabilizer in g of subset does not act faithfully on that subset, it has size 51840*486.) Now suppose I have found (through a separate and lengthy computation) that [1,3,5,6,10] is a peculiar subset of [1..40] with respect to the first representation. How could I transform it into a corresponding subset of [ 1, 3, 13, 53, 106, 143, 149, 161, 233, 263, 268, 281, 284, 295, 333, 370, 378, 410, 421, 439, 459, 496, 541, 546, 565, 597, 628, 683, 695, 696, 698, 738, 795, 868, 881, 907, 934, 999, 1021, 1038 ] ? Many thanks, Kind regards, Fr?d?ric Op 05/12/12 18:59, Alexander Hulpke schreef: > > Dear Forum, Dear Drederic, > >> some time ago the command ActionHomomorphism was recommend to me. I was now wondering, if I have two equivalent permutation groups, can I get a bijection between the groups as well as a corresponding bijection between the sets on which they act? >> >> For instance: >> >> g1:=Group((1,2),(3,4),(1,3)); >> g2:=Group((1,2),(2,3)); >> >> gaction1:=Action(Stabilizer(g1,1),[2..4],OnPoints); >> gaction2:=Action(g2,[1..3],OnPoints); > Your syntax is a bit confused here. Basically > Action(G,set,op)=Image(ActionHomomorphism(G,set,op)). > The action homomorphism preserves the connection to the initial group, the action is just the resulting permutation group. Thus >> ActionHomomorphism(gaction1,gaction2); > does not make sense. > > If you call `RepresentativeAction(symmetricgroup,g1,g2)' you get a permutation that conjugates one group into the other. So it is a bijection between the groups given by a bijection of the underlying domain. > > However I suspect that you actually want to test for equivalence of actions, i.e. you have a group G acting on two sets omega1 and omega2 and you want to see whether there is a bijection between the sets that makes the actions equivalent. In this case you need to find a permutation that maps the images of the same generating set to each other. This is actually a cheaper test than the one for mapping the groups. > > For example, consider these two actions of S4 on sets of order 2 or on cosets of a subgroup. > > gap> G:=SymmetricGroup(4); > Sym( [ 1 .. 4 ] ) > gap> c:=Combinations([1..4],2); > [ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 2, 3 ], [ 2, 4 ], [ 3, 4 ] ] > gap> act1:=ActionHomomorphism(G,c,OnSets,"surjective"); > > gap> U:=Subgroup(G,[(1,3),(2,4)]); > Group([ (1,3), (2,4) ]) > gap> Index(G,U); > 6 > gap> T:=RightCosets(G,U); > [ RightCoset(Group( [ (1,3), (2,4) ] ),()), > RightCoset(Group( [ (1,3), (2,4) ] ),(3,4)), > RightCoset(Group( [ (1,3), (2,4) ] ),(2,3)), > RightCoset(Group( [ (1,3), (2,4) ] ),(1,2)), > RightCoset(Group( [ (1,3), (2,4) ] ),(1,2)(3,4)), > RightCoset(Group( [ (1,3), (2,4) ] ),(1,3,4,2)) ] > gap> act2:=ActionHomomorphism(G,T,OnRight,"surjective"); > > gap> imgs1:=List(GeneratorsOfGroup(G),x->Image(act1,x)); > [ (1,4,6,3)(2,5), (2,4)(3,5) ] > gap> imgs2:=List(GeneratorsOfGroup(G),x->Image(act2,x)); > [ (1,5)(2,3,4,6), (1,4)(2,5) ] > > Now search for an element that maps the elements of imgs1 to those of imgs2 in the same arrangement: > > gap> rep:=RepresentativeAction(SymmetricGroup(6),imgs1,imgs2,OnTuples); > (1,3,2) > > Verify: > gap> List(imgs1,x->x^(1,3,2)); > [ (1,5)(2,3,4,6), (1,4)(2,5) ] > > > So (1,3,2) is the permutation indicating how to reorder the elements of c to get the same action. > > If you can replace the symmetric group with something smaller (you might do a prearrangement by hand so that for example both actions have the same blocks) this will help in larger degrees. > > (If this is not of help or not what you want feel free to send me the actual problem you want to solve.) > > Best, > > Alexander > > From jitender_sonu_123 at yahoo.co.in Thu Dec 6 21:21:00 2012 From: jitender_sonu_123 at yahoo.co.in (jitender arora) Date: Fri, 7 Dec 2012 05:21:00 +0800 (SGT) Subject: [GAP Forum] (no subject) Message-ID: <1354828860.49200.YahooMailNeo@web193602.mail.sg3.yahoo.com> http://equinoxchamberplayers.org/chamber/images/iusn1g8t.php From jitender_sonu_123 at yahoo.co.in Thu Dec 6 21:21:00 2012 From: jitender_sonu_123 at yahoo.co.in (jitender arora) Date: Fri, 7 Dec 2012 05:21:00 +0800 (SGT) Subject: [GAP Forum] (no subject) Message-ID: <1354828860.49200.YahooMailNeo@web193602.mail.sg3.yahoo.com> http://equinoxchamberplayers.org/chamber/images/iusn1g8t.php From john.bamberg at uwa.edu.au Thu Dec 6 11:32:47 2012 From: john.bamberg at uwa.edu.au (John Bamberg) Date: Thu, 6 Dec 2012 19:32:47 +0800 Subject: [GAP Forum] ActionHomomorphism: can I also get In-Reply-To: <50C042FB.3020005@cage.UGent.be> References: <50BF3875.6020704@cage.UGent.be> <8678325B-0962-4780-80AE-F7223F1A36D6@gmail.com> <50C042FB.3020005@cage.UGent.be> Message-ID: <56810B82-2578-44D9-AC9B-9E884607AC23@uwa.edu.au> Hi Fr?d?ric, Good to see you on the GAP forum! I have the solution for you, and it is just the last few lines to Alex's solution: tau := RepresentativeAction(SymmetricGroup(40), gsmall, gstab); peculiar := [1,3,5,6,10]; peculiartwo := subset{OnSets(peculiar,tau)}; That should give you the equivalent set for your group Stabilizer(g,subset,OnSets) (before you took the permutation representation). Cheers, John. On 06/12/2012, at 6:02 PM, Frederic Vanhove wrote: > Hello, > > thanks for your reply, but I'm afraid I don't really understand. > Perhaps it would indeed help if I'd explain what I really want to do: > > #small permutation representation > gsmall:=AllPrimitiveGroups(DegreeOperation,40,Size,51840)[1]; > > #big permutation representation > g:=AllPrimitiveGroups(DegreeOperation,1120, Size, 9170703360)[2]; > > subset:=[ 1, 3, 13, 53, 106, 143, 149, 161, 233, 263, 268, 281, 284, > 295, 333, 370, > 378, 410, 421, 439, 459, 496, 541, 546, 565, 597, 628, 683, 695, 696, > 698, > 738, 795, 868, 881, 907, 934, 999, 1021, 1038 ]; > gstab:=Action(Stabilizer(g,subset,OnSets),subset,OnPoints); > Size(gstab);DegreeAction(gstab); > > (note: the stabilizer in g of subset does not act faithfully on that > subset, it has size 51840*486.) > > > Now suppose I have found (through a separate and lengthy computation) > that [1,3,5,6,10] is a peculiar subset of [1..40] with respect to the > first representation. How could I transform it into a corresponding > subset of > [ 1, 3, 13, 53, 106, 143, 149, 161, 233, 263, 268, 281, 284, 295, 333, 370, > 378, 410, 421, 439, 459, 496, 541, 546, 565, 597, 628, 683, 695, 696, > 698, > 738, 795, 868, 881, 907, 934, 999, 1021, 1038 ] > ? > > Many thanks, > Kind regards, > Fr?d?ric > > > > > > > Op 05/12/12 18:59, Alexander Hulpke schreef: >> >> Dear Forum, Dear Drederic, >> >>> some time ago the command ActionHomomorphism was recommend to me. I was now wondering, if I have two equivalent permutation groups, can I get a bijection between the groups as well as a corresponding bijection between the sets on which they act? >>> >>> For instance: >>> >>> g1:=Group((1,2),(3,4),(1,3)); >>> g2:=Group((1,2),(2,3)); >>> >>> gaction1:=Action(Stabilizer(g1,1),[2..4],OnPoints); >>> gaction2:=Action(g2,[1..3],OnPoints); >> Your syntax is a bit confused here. Basically >> Action(G,set,op)=Image(ActionHomomorphism(G,set,op)). >> The action homomorphism preserves the connection to the initial group, the action is just the resulting permutation group. Thus >>> ActionHomomorphism(gaction1,gaction2); >> does not make sense. >> >> If you call `RepresentativeAction(symmetricgroup,g1,g2)' you get a permutation that conjugates one group into the other. So it is a bijection between the groups given by a bijection of the underlying domain. >> >> However I suspect that you actually want to test for equivalence of actions, i.e. you have a group G acting on two sets omega1 and omega2 and you want to see whether there is a bijection between the sets that makes the actions equivalent. In this case you need to find a permutation that maps the images of the same generating set to each other. This is actually a cheaper test than the one for mapping the groups. >> >> For example, consider these two actions of S4 on sets of order 2 or on cosets of a subgroup. >> >> gap> G:=SymmetricGroup(4); >> Sym( [ 1 .. 4 ] ) >> gap> c:=Combinations([1..4],2); >> [ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 2, 3 ], [ 2, 4 ], [ 3, 4 ] ] >> gap> act1:=ActionHomomorphism(G,c,OnSets,"surjective"); >> >> gap> U:=Subgroup(G,[(1,3),(2,4)]); >> Group([ (1,3), (2,4) ]) >> gap> Index(G,U); >> 6 >> gap> T:=RightCosets(G,U); >> [ RightCoset(Group( [ (1,3), (2,4) ] ),()), >> RightCoset(Group( [ (1,3), (2,4) ] ),(3,4)), >> RightCoset(Group( [ (1,3), (2,4) ] ),(2,3)), >> RightCoset(Group( [ (1,3), (2,4) ] ),(1,2)), >> RightCoset(Group( [ (1,3), (2,4) ] ),(1,2)(3,4)), >> RightCoset(Group( [ (1,3), (2,4) ] ),(1,3,4,2)) ] >> gap> act2:=ActionHomomorphism(G,T,OnRight,"surjective"); >> >> gap> imgs1:=List(GeneratorsOfGroup(G),x->Image(act1,x)); >> [ (1,4,6,3)(2,5), (2,4)(3,5) ] >> gap> imgs2:=List(GeneratorsOfGroup(G),x->Image(act2,x)); >> [ (1,5)(2,3,4,6), (1,4)(2,5) ] >> >> Now search for an element that maps the elements of imgs1 to those of imgs2 in the same arrangement: >> >> gap> rep:=RepresentativeAction(SymmetricGroup(6),imgs1,imgs2,OnTuples); >> (1,3,2) >> >> Verify: >> gap> List(imgs1,x->x^(1,3,2)); >> [ (1,5)(2,3,4,6), (1,4)(2,5) ] >> >> >> So (1,3,2) is the permutation indicating how to reorder the elements of c to get the same action. >> >> If you can replace the symmetric group with something smaller (you might do a prearrangement by hand so that for example both actions have the same blocks) this will help in larger degrees. >> >> (If this is not of help or not what you want feel free to send me the actual problem you want to solve.) >> >> Best, >> >> Alexander >> >> > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From Jason.B.Hill at colorado.edu Mon Dec 10 02:59:57 2012 From: Jason.B.Hill at colorado.edu (Jason B Hill) Date: Sun, 9 Dec 2012 19:59:57 -0700 Subject: [GAP Forum] A permutation group with huge finite orbits In-Reply-To: References: <87860D8A-D5F9-4A71-A4FD-86F3C66A4200@mcs.st-andrews.ac.uk> <20121119175156.GA19238@yellowpig> Message-ID: Forum, The length of the orbit is 47610700792. Using C with GMP and OpenMP, the result can be found in roughly 3 days on a new core i7 machine. It is possible to compute the orbit in both directions at the same time on separate cores, stopping when they meet somewhere in the orbit. The maximum length of a digit in the orbit is 76,785. You can find the C code here: http://www.jasonbhill.com/residue-collatz/ With GMP and GCC installed, you could compile with something like: gcc -O3 -o length-residue-orbit-omp length-residue-orbit-omp.c -lgmp -fopenmp And then, on my machine, using: time ./length-residue-orbit-omp produces: total iterations: 47610700792 real 4469m55.660s (About 3.1 days) user 8736m34.552s sys 1m43.818s Cheers, Jason On Mon, Nov 19, 2012 at 2:04 PM, Stefan Kohl wrote: > On Mon, November 19, 2012 5:51 pm, Bill Allombert wrote: > > On Mon, Nov 19, 2012 at 05:05:42PM -0000, Stefan Kohl wrote: > >> Proving finiteness of all cycles may be pretty hard, however. > > > > Indeed, this problem is too close to the Collatz ((3n+1)/2) conjecture > > for comfort. > > Most likely yes. -- But I wouldn't claim right away that it is really > of similar difficulty. There are some regularities, e.g. except for > the cycle containing 1, all cycles seem to have either length 2 or length > congruent to 8 mod 16 etc. > > > The Collatz sequence can be restated in your notation by > > asking whether the orbits of Z under M are finite, where M is the > submonoid > > of Z^Z generated by a = (1(2)->2(3)) and b = (0(2)->0(1)) > > (a and b are not one-to-one). > > You can actually do the same with a group. -- The group > > G := <(1(2),4(6)),(1(3),2(6)),(2(3),4(6))> < Sym(Z) > > acts transitively on the set of positive integers which are not > divisible by 6 if and only if the 3n+1 conjecture holds. > > The group G can be entered by pasting the following into GAP: > > a := ClassTransposition(1,2,4,6); > b := ClassTransposition(1,3,2,6); > c := ClassTransposition(2,3,4,6); > G := Group(a,b,c); > > Best wishes, > > Stefan > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > -- Jason B. Hill http://www.jasonbhill.com | Jason.B.Hill at Colorado.edu From stefan at mcs.st-and.ac.uk Mon Dec 10 13:44:14 2012 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Mon, 10 Dec 2012 13:44:14 -0000 (UTC) Subject: [GAP Forum] A permutation group with huge finite orbits In-Reply-To: References: <87860D8A-D5F9-4A71-A4FD-86F3C66A4200@mcs.st-andrews.ac.uk> <20121119175156.GA19238@yellowpig> Message-ID: Dear Jason, dear Forum, > The length of the orbit is 47610700792. > > Using C with GMP and OpenMP, the result can be found in roughly 3 days on a > new core i7 machine. It is possible to compute the orbit in both directions > at the same time on separate cores, stopping when they meet somewhere in > the orbit. The maximum length of a digit in the orbit is 76,785. > > You can find the C code here: http://www.jasonbhill.com/residue-collatz/ Thanks. -- Great!! Just two remarks: 1. In your C program you apply the mappings a, b and c separately. It is possible to reduce the number of arithmetic operations by evaluating the product g := abc and applying it as one mapping. We have gap> LoadPackage("rcwa"); gap> a := ClassTransposition(0,2,1,2);; gap> b := ClassTransposition(0,5,4,5);; gap> c := ClassTransposition(1,4,0,6);; gap> g := a*b*c;; gap> Display(g); Rcwa permutation of Z with modulus 60 / | n-1 if n in 3(30) U 9(30) U 17(30) U 23(30) U 27(30) U 29(30) | 3n/2 if n in 0(20) U 12(20) U 16(20) | n+1 if n in 2(20) U 6(20) U 10(20) | (2n+1)/3 if n in 7(30) U 13(30) U 19(30) | n+3 if n in 1(30) U 11(30) | n-5 if n in 15(30) U 25(30) n |-> < (3n+12)/2 if n in 4(20) | (3n-12)/2 if n in 8(20) | n+5 if n in 14(20) | n-3 if n in 18(20) | (2n-7)/3 if n in 5(30) | (2n+9)/3 if n in 21(30) | \ 2. There does not seem to be an obvious reason why the cycles of abc always traverse entire orbits of G = , and at least on a first glance one doesn't see a pattern in which order a cycle of abc traverses an orbit of G. Nevertheless, computational evidence supports so far the assumption that cycles of abc correspond to orbits of . Thanks again and Best regards, Stefan ----------------------------------------------------------------------------- http://www.gap-system.org/DevelopersPages/StefanKohl/ ----------------------------------------------------------------------------- From stefan at mcs.st-and.ac.uk Mon Dec 10 18:06:41 2012 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Mon, 10 Dec 2012 18:06:41 -0000 (UTC) Subject: [GAP Forum] A permutation group with huge finite orbits In-Reply-To: References: <87860D8A-D5F9-4A71-A4FD-86F3C66A4200@mcs.st-andrews.ac.uk> <20121119175156.GA19238@yellowpig> Message-ID: Dear Jason, > The length of the orbit is 47610700792. > > Using C with GMP and OpenMP, the result can be found in roughly 3 days on a > new core i7 machine. It is possible to compute the orbit in both directions > at the same time on separate cores, stopping when they meet somewhere in > the orbit. The maximum length of a digit in the orbit is 76,785. > > You can find the C code here: http://www.jasonbhill.com/residue-collatz/ I have compared the performance of your C program and GAP -- for the 495448-cycle of 736, your C program took about 0.25s, while GAP (compiled with GMP) took about 1.25s. Thus your program was about 5 times faster. For the 245719352-cycle of 25952, I measured 875s (your program) vs. 1200s (GAP), so when numbers get large (in the 1000's of digits), GAP's overhead apparently becomes less relevant for the performance. Congratulations for solving my puzzle!!! Stefan From nehamakhijani at gmail.com Mon Dec 10 22:04:28 2012 From: nehamakhijani at gmail.com (Neha Wadhwani) Date: Mon, 10 Dec 2012 17:04:28 -0500 Subject: [GAP Forum] Irreducible representation of dihedral group D20 over GF(8) Message-ID: Hi I am not able to understand if the following is actually a well defined homomorphism! *G:=DihedralGroup(20);* *b:=G.1*G.2;* f1*f2 *b^2;* of ... *phi:=IrreducibleRepresentations(G,GF(8));* [ Pcgs([ f1, f2, f3 ]) -> [ [ [ Z(2)^0 ] ], [ [ Z(2)^0 ] ], [ [ Z(2)^0 ] ] ], Pcgs([ f1, f2, f3 ]) -> [ [ [ Z(2)^0, 0*Z(2), Z(2^3), Z(2)^0 ], [ 0*Z(2), Z(2)^0, Z(2^3)^6, Z(2^3)^3 ], [ 0*Z(2), 0*Z(2), Z(2^3), Z(2^3)^3 ], [ 0*Z(2), 0*Z(2), Z(2^3)^2, Z(2)^0 ] ], [ [ Z(2^3)^6, Z(2^3)^5, Z(2^3)^6, Z(2^3) ], [ Z(2^3)^4, Z(2^3), Z(2)^0, Z(2^3)^5 ], [ Z(2^3)^2, Z(2^3)^6, Z(2^3)^3, Z(2^3)^4 ], [ Z(2^3)^5, Z(2)^0, Z(2^3)^3, Z(2^3)^6 ] ], [ [ Z(2^3)^2, Z(2^3)^4, Z(2^3), 0*Z(2) ], [ Z(2^3)^3, Z(2^3), 0*Z(2), Z(2^3) ], [ Z(2^3), Z(2^3), Z(2^3)^3, Z(2^3)^5 ], [ Z(2)^0, 0*Z(2), Z(2^3)^4, Z(2^3)^2 ] ] ] ] *phi2:=phi[2];;* * * *Image(phi2,b)^2;* [ [ Z(2^3)^6, Z(2^3)^3, 0*Z(2), 0*Z(2) ], [ Z(2^3)^2, Z(2^3)^4, 0*Z(2), 0*Z(2) ], [ Z(2^3)^4, Z(2^3)^3, Z(2^3), Z(2^3)^6 ], [ Z(2^3)^2, Z(2^3)^6, Z(2^3)^5, Z(2^3)^5 ] ] *which is not an identity matrix..* * * *Please let me know if I am going wrong....* * * *Thanks!* From anvita21 at gmail.com Tue Dec 11 07:03:30 2012 From: anvita21 at gmail.com (Anvita) Date: Tue, 11 Dec 2012 14:03:30 +0700 Subject: [GAP Forum] AbsoluteIrreducibleModules error Message-ID: Dear Forum, According to the Manual, the command AbsoluteIrreducibleModules(G, F, dim) returns a list of all absolutely irreducible modules of G over the field F in dimension dim. However, it seems to produce an error if the field F is not prime. C:=CyclicGroup(3); AbsoluteIrreducibleModules(C,GF(4),1); Error, List Element: [1] must have an assigned value in ... Certainly, the modules in this example are easy to find by hand, but I first came about this error when trying to compute a more complicated and meaningful example. Thank you, Anvita From fvanhove at cage.UGent.be Mon Dec 17 12:18:31 2012 From: fvanhove at cage.UGent.be (Frederic Vanhove) Date: Mon, 17 Dec 2012 13:18:31 +0100 Subject: [GAP Forum] GRAPE package: bicomponents wrt original vertices? Message-ID: <50CF0D97.7060705@cage.UGent.be> Dear forum, I was considering graphs again, and I had another question about the package GRAPE, in particular about the command "Bicomponents". If I first do: LoadPackage("grape"); trivialaction := function(x,g) return x; end; n:=6;s:=[1000..1000+n-1]; graph:=Graph(Group(()), s, trivialaction, function(x,y) return (((x-y) mod n) in [n-1,1]); end,true); then the output of the following code: Vertices(graph);Bicomponents(graph); is: [ 1 .. 6 ] [ [ 1, 3, 5 ], [ 2, 4, 6 ] ] This is of course correct, but my original graph had vertices [1000..1000+n-1], and I would like to have my bicomponents in terms of those vertices. Is that possible? Thanks, Fr?d?ric From dima at ntu.edu.sg Mon Dec 17 13:23:15 2012 From: dima at ntu.edu.sg (Dmitrii (Dima) Pasechnik) Date: Mon, 17 Dec 2012 21:23:15 +0800 Subject: [GAP Forum] GRAPE package: bicomponents wrt original vertices? In-Reply-To: <50CF0D97.7060705@cage.UGent.be> References: <50CF0D97.7060705@cage.UGent.be> Message-ID: Frederic, your original vertex names are not lost: gap> VertexNames(graph); [ 1000 .. 1005 ] Then you can do gap> List(Bicomponents(graph),t->List(t,y->VertexName(graph,y))); [ [ 1000, 1002, 1004 ], [ 1001, 1003, 1005 ] ] HTH, Dmitrii On 17 December 2012 20:18, Frederic Vanhove wrote: > Dear forum, > > I was considering graphs again, and I had another question about the > package GRAPE, in particular about the command "Bicomponents". > > If I first do: > > LoadPackage("grape"); > trivialaction := function(x,g) return x; end; > n:=6;s:=[1000..1000+n-1]; > graph:=Graph(Group(()), s, trivialaction, function(x,y) return (((x-y) > mod n) in [n-1,1]); end,true); > > then the output of the following code: > > Vertices(graph);Bicomponents(graph); > > is: > > [ 1 .. 6 ] > [ [ 1, 3, 5 ], [ 2, 4, 6 ] ] > > This is of course correct, but my original graph had vertices > [1000..1000+n-1], and I would like to have my bicomponents in terms of > those vertices. Is that possible? > > Thanks, > Fr?d?ric > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum CONFIDENTIALITY:This email is intended solely for the person(s) named and may be confidential and/or privileged.If you are not the intended recipient,please delete it,notify us and do not copy,use,or disclose its content. Towards A Sustainable Earth:Print Only When Necessary.Thank you. From Bill.Allombert at math.u-bordeaux1.fr Mon Dec 17 13:25:56 2012 From: Bill.Allombert at math.u-bordeaux1.fr (Bill Allombert) Date: Mon, 17 Dec 2012 14:25:56 +0100 Subject: [GAP Forum] abelianized of transitive groups Message-ID: <20121217132556.GA30451@yellowpig> Dear GAP forum, I have a question which is indirectly related to GAP. Let G a transitive subgroup of S_n. I need a bound for [G:G'](=#G/G') in term of n. Is there theoretical and/or heuristic result in this direction ? What is the best way to compute [G:G'] ? It seems AbelianInvariants is faster than Size(G/DerivedSugroup(G)). Cheers, Bill. From hulpke at me.com Mon Dec 17 14:53:22 2012 From: hulpke at me.com (hulpke at me.com) Date: Mon, 17 Dec 2012 07:53:22 -0700 Subject: [GAP Forum] abelianized of transitive groups In-Reply-To: <20121217132556.GA30451@yellowpig> References: <20121217132556.GA30451@yellowpig> Message-ID: Dear Bill, Dear Forum, > I have a question which is indirectly related to GAP. > > Let G a transitive subgroup of S_n. I need a bound for [G:G'](=#G/G') > in term of n. Is there theoretical and/or heuristic result in this direction ? Heuristic: n^2/p (respectively n^2/4 for p=2) occurs for degree p^a and that bound works for all degrees <=31. I don't have a general proof. > > What is the best way to compute [G:G'] ? It seems AbelianInvariants is faster > than Size(G/DerivedSugroup(G)). Size(G)/Size(DerivedSubgroup(G)); If you form the quotient inside `Size' you first construct the factor group. Best, Alexander From lijr07 at gmail.com Tue Dec 18 00:30:25 2012 From: lijr07 at gmail.com (Jianrong Li) Date: Tue, 18 Dec 2012 08:30:25 +0800 Subject: [GAP Forum] presentations of Lie algebras in GAP Message-ID: Dear Forum, If we know a set of generator of a Lie algebra, can we use GAP to give a presentation of the Lie algebra? For example, for $sl_2$ (over $\mathbb{C}$), if we know $e=(0, 1; 0, 0)$, $f=(0, 0; 1, 0)$ , $h=(1, 0; 0, -1)$, how to write a presentation of $sl_2$ from these matrices? What about the case of positive characteristics ($\mathbb{C}$ is replaced by some field of a positive characteristic)? Thank you very much. With best wishes, Jianrong. From alexk at mcs.st-andrews.ac.uk Tue Dec 18 14:38:46 2012 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Tue, 18 Dec 2012 14:38:46 +0000 Subject: [GAP Forum] GAP 4.5.7 release announcement Message-ID: <6393BB2C-2F98-4410-BE38-9A530B1C94DC@mcs.st-andrews.ac.uk> Dear GAP Forum, We have just released the next minor release, GAP 4.5.7, which is available now for download from the GAP website http://www.gap-system.org and eventually will be also available via alternative GAP distributions listed at http://www.gap-system.org/Download/#alternatives You may access the overview of changes in GAP 4.5.7 by entering '?Changes between GAP 4.4 and GAP 4.5' in GAP 4.5.7 and scrolling till the end of the chapter, or view it online at http://www.gap-system.org/Manuals/doc/changes/chap2.html#X81528B5F78B996D2 In addition to fixed bugs in the core GAP system, GAP 4.5.7 contains two new packages: * Float package by L. Bartholdi, which extends GAP floating-point capabilities by providing new floating-point handlers for high-precision real, interval and complex arithmetic using MPFR, MPFI, MPC or CXSC external libraries. It also contains a very high-performance implementation of the LLL (Lenstra-Lenstra-Lov?sz) lattice reduction algorithm via the external library FPLLL. * ToricVarieties package by S. Gutsche, which provides data structures to handle toric varieties by their commutative algebra structure and by their combinatorics. Also, the new version 1.2.0 of FGA package fixes a bug that may, under certain conditions, lead to wrong results in GroupHomomorphismByImagesNC. We encourage all users to upgrade to GAP 4.5.7. If you need any help or would like to report any problems, please do not hesitate to contact us at support at gap-system.org. Please note that we are regularly updating the GAP distribution to include new versions of GAP packages, but we may not announce each of them to the Forum. We intend to use the Forum to announce updates of the core GAP system and only of some packages which may fix serious issues or have major influence on GAP. Wishing you fun and success using GAP, The GAP Group From degraaf at science.unitn.it Wed Dec 19 06:19:57 2012 From: degraaf at science.unitn.it (Willem de Graaf) Date: Wed, 19 Dec 2012 07:19:57 +0100 Subject: [GAP Forum] presentations of Lie algebras in GAP In-Reply-To: References: Message-ID: Dear Forum, Jianrong, Currently there is no functionality in GAP for the problem that you describe (getting a presentation of a given Lie algebra). However, if the Lie algebra is finite dimensional one can take as generators the elements of a basis, and the relations follow from the multiplication table. It would, however, not be a very interesting presentation. Best wishes, Willem de Graaf On Tue, Dec 18, 2012 at 1:30 AM, Jianrong Li wrote: > Dear Forum, > > If we know a set of generator of a Lie algebra, can we use GAP to give a > presentation of the Lie algebra? For example, for $sl_2$ (over > $\mathbb{C}$), if we know $e=(0, 1; 0, 0)$, $f=(0, 0; 1, 0)$ , $h=(1, 0; 0, > -1)$, how to write a presentation of $sl_2$ from these matrices? > > What about the case of positive characteristics ($\mathbb{C}$ is replaced > by some field of a positive characteristic)? > > Thank you very much. > With best wishes, > Jianrong. > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From fvanhove at cage.UGent.be Wed Dec 19 16:30:23 2012 From: fvanhove at cage.UGent.be (Frederic Vanhove) Date: Wed, 19 Dec 2012 17:30:23 +0100 Subject: [GAP Forum] building group action without losing original names? Message-ID: <50D1EB9F.1070309@cage.UGent.be> Hello, I have yet another question on (equivalent) group actions. When I build an action on a set, is there way to have GAP store a bijection between the original points on which he acts, and the labels [1..v]? For instance, when I do: G:=SymmetricGroup(4); g:=AutomorphismGroup(G); act:=Action(g,G,OnPoints); Orbits(act); the output in the end is: [ [ 2, 7, 5, 21, 16, 13 ], [ 3, 11, 6, 9, 20, 4, 17, 14 ], [ 8, 24, 23, 15, 10, 18 ], [ 12, 22, 19 ] ] while elements of G itself look like (1,4)(2,3), and I would want the orbits in that form. (This is just an example, I had other more complicated sets in mind) Kind regards, Fr?d?ric From r_n_tsai at yahoo.com Thu Dec 20 06:49:13 2012 From: r_n_tsai at yahoo.com (R.N. Tsai) Date: Wed, 19 Dec 2012 22:49:13 -0800 (PST) Subject: [GAP Forum] naming convention for basis of highest weight modules Message-ID: <1355986153.39583.YahooMailNeo@web121202.mail.ne1.yahoo.com> Dear gap-forum, Is the naming convention for the basis of highest weight modules described anywhere? For example : gap>L:=SimpleLieAlgebra("A",2,Rationals);; gap>M1:=HighestWeightModule(L,[1,0]);; gap>B1:=Basis(M1);; gap>M2:=TensorProductOfAlgebraModules(M1,M1);; gap>B2:=Basis(M2);; gap> BasisVectors(B1); [ 1*v0, y1*v0, y3*v0 ] gap> BasisVectors(B2); [ 1*(1*v01*v0), 1*(1*v0y1*v0), 1*(1*v0y3*v0), 1*(y1*v01*v0), 1*(y1*v0y1*v0), 1*(y1*v0y3*v0),? ? 1*(y3*v01*v0), 1*(y3*v0y1*v0), 1*(y3*v0y3*v0) ] 1*v0,y1*v0,y3*v0 seems an odd choice without knowing where it came from. Thanks, r.n. From dima at ntu.edu.sg Thu Dec 20 07:02:00 2012 From: dima at ntu.edu.sg (Dmitrii (Dima) Pasechnik) Date: Thu, 20 Dec 2012 15:02:00 +0800 Subject: [GAP Forum] building group action without losing original names? In-Reply-To: <50D1EB9F.1070309@cage.UGent.be> References: <50D1EB9F.1070309@cage.UGent.be> Message-ID: Dear Fr?d?ric, dear all, On 20 December 2012 00:30, Frederic Vanhove wrote: > Hello, > > I have yet another question on (equivalent) group actions. > When I build an action on a set, is there way to have GAP store a > bijection between the original points on which he acts, and the labels > [1..v]? > > For instance, when I do: > > G:=SymmetricGroup(4); > g:=AutomorphismGroup(G); > act:=Action(g,G,OnPoints); > Orbits(act); > > the output in the end is: > [ [ 2, 7, 5, 21, 16, 13 ], [ 3, 11, 6, 9, 20, 4, 17, 14 ], > [ 8, 24, 23, 15, 10, 18 ], [ 12, 22, 19 ] ] isn't the following what you need? gap> Orbits(g,G,OnPoints); [ [ () ], [ (1,4), (1,2), (2,4), (2,3), (1,3), (3,4) ], [ (1,2,4), (1,2,3), (1,4,2), (2,3,4), (1,3,2), (1,3,4), (2,4,3), (1,4,3) ], [ (1,3,4,2), (1,3,2,4), (1,2,3,4), (1,2,4,3), (1,4,2,3), (1,4,3,2) ], [ (1,3)(2,4), (1,4)(2,3), (1,2)(3,4) ] ] HTH, Dmitrii > > while elements of G itself look like (1,4)(2,3), and I would want the > orbits in that form. > (This is just an example, I had other more complicated sets in mind) > CONFIDENTIALITY:This email is intended solely for the person(s) named and may be confidential and/or privileged.If you are not the intended recipient,please delete it,notify us and do not copy,use,or disclose its content. Towards A Sustainable Earth:Print Only When Necessary.Thank you. From ahulpke at gmail.com Fri Dec 21 00:23:42 2012 From: ahulpke at gmail.com (Alexander Hulpke) Date: Thu, 20 Dec 2012 17:23:42 -0700 Subject: [GAP Forum] building group action without losing original names? In-Reply-To: <50D1EB9F.1070309@cage.UGent.be> References: <50D1EB9F.1070309@cage.UGent.be> Message-ID: <0856EEB1-8EB1-4324-A406-31E620E65AEA@gmail.com> Dear Forum, On Dec 19, 2012, at 9:30 AM, Frederic Vanhove wrote: > > > I have yet another question on (equivalent) group actions. > When I build an action on a set, is there way to have GAP store a bijection between the original points on which he acts, and the labels [1..v]? The bijection is always simple [1..v], i.e. the action is on the elements as arranged in a listi, if neccessary calling `Enumerator' on the domain. In your example this correspondence is easier to see if you explicitly take an element list for G: gap> elm:=AsSSortedList(G); [ (), (3,4), (2,3), (2,3,4), (2,4,3), (2,4), (1,2), (1,2)(3,4), (1,2,3), (1,2,3,4), (1,2,4,3), (1,2,4), (1,3,2), (1,3,4,2), (1,3), (1,3,4), (1,3)(2,4), (1,3,2,4), (1,4,3,2), (1,4,2), (1,4,3), (1,4), (1,4,2,3), (1,4)(2,3) ] gap> act:=Action(g,G,OnPoints); gap> Orbits(act); [ [ 2, 6, 7, 3, 15, 22 ], [ 4, 5, 12, 21, 20, 16, 13, 9 ], [ 8, 17, 24 ], [ 10, 14, 11, 19, 23, 18 ] ] gap> elm{ [2, 6, 7, 3, 15, 22 ]}; # one orbit [ (3,4), (2,4), (1,2), (2,3), (1,3), (1,4) ] (This is specified in the manual section 41.7 The Permutation Image of an Action http://www.gap-system.org/Manuals/doc/ref/chap41.html#X87F73CCA7921DE65 Best wishes, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From anvita21 at gmail.com Fri Dec 21 09:46:57 2012 From: anvita21 at gmail.com (Anvita) Date: Fri, 21 Dec 2012 16:46:57 +0700 Subject: [GAP Forum] Delayed printing Message-ID: Dear Forum, Why does the program ------------------------------------- repeat Print("Before the pause..."); for i in [1..2^28-1] do od; # pause Print("After the pause\n"); until true; ------------------------------------- behave in the same way as ------------------------------------- repeat for i in [1..2^28-1] do od; # pause Print("Before the pause..."); Print("After the pause\n"); until true; ------------------------------------- instead of printing the first message immediately? Thank you, Anvita From A.Egri-Nagy at herts.ac.uk Fri Dec 21 09:54:10 2012 From: A.Egri-Nagy at herts.ac.uk (Attila Egri-Nagy) Date: Fri, 21 Dec 2012 20:54:10 +1100 Subject: [GAP Forum] Delayed printing In-Reply-To: References: Message-ID: Hey Anvita, You can use the special character '\c' to flush the buffer like: Print("Before the pause...\c"); @ > On Fri, Dec 21, 2012 at 8:46 PM, Anvita wrote: >> Dear Forum, >> >> Why does the program >> >> ------------------------------------- >> repeat >> Print("Before the pause..."); >> for i in [1..2^28-1] do od; # pause >> Print("After the pause\n"); >> until true; >> ------------------------------------- >> >> behave in the same way as >> >> ------------------------------------- >> repeat >> for i in [1..2^28-1] do od; # pause >> Print("Before the pause..."); >> Print("After the pause\n"); >> until true; >> ------------------------------------- >> >> instead of printing the first message immediately? >> >> Thank you, >> Anvita >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum From juanpide at gmail.com Sun Dec 16 00:10:16 2012 From: juanpide at gmail.com (Pi) Date: Sun, 16 Dec 2012 01:10:16 +0100 Subject: [GAP Forum] GAP vs PARI/GP Message-ID: Hello How do you compare this two free programs: PARI/GP and GAP? regards From bmonson at unb.ca Tue Dec 18 15:59:35 2012 From: bmonson at unb.ca (Barry Monson) Date: Tue, 18 Dec 2012 15:59:35 +0000 Subject: [GAP Forum] Cryst and CrystCat packages Message-ID: Dear colleagues, I have a question about the Cryst and CrystCat packages in Gap. Is it possible to classify a given (and legitimate) AffineCrystGroupOnRight G according to standard nomenclature? Of course, I have a 4-dimensional example (whose point group is SymmetricGroup(4)). I would like to know where it fits into the Brown...Zassenhaus classification. On the other hand, since this is really just for my own curiosity, I don't much want to have to read that book more carefully. It is a bit daunting. I understand my G quite well. Besides the faithful affine representation I have a nice presentation and a further geometric interpretation. G is the so-called monodromy group of the pyramid over an apeirogon (infinite sided polygon). Thanks, Barry. From john.bamberg at uwa.edu.au Fri Dec 21 10:02:35 2012 From: john.bamberg at uwa.edu.au (John Bamberg) Date: Fri, 21 Dec 2012 18:02:35 +0800 Subject: [GAP Forum] Delayed printing In-Reply-To: References: Message-ID: You need to flush the buffer with \c: Print("print now\c"); On 21/12/2012, at 5:46 PM, Anvita wrote: > Dear Forum, > > Why does the program > > ------------------------------------- > repeat > Print("Before the pause..."); > for i in [1..2^28-1] do od; # pause > Print("After the pause\n"); > until true; > ------------------------------------- > > behave in the same way as > > ------------------------------------- > repeat > for i in [1..2^28-1] do od; # pause > Print("Before the pause..."); > Print("After the pause\n"); > until true; > ------------------------------------- > > instead of printing the first message immediately? > > Thank you, > Anvita > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From a.j.t.al-juburie at newcastle.ac.uk Fri Dec 21 18:57:27 2012 From: a.j.t.al-juburie at newcastle.ac.uk (Abdulsatar Al-Juburie) Date: Fri, 21 Dec 2012 18:57:27 +0000 Subject: [GAP Forum] Question Message-ID: <5CA877F40086AF4BA25CA779186417440316A7@EXMBDB01.campus.ncl.ac.uk> Dear GAP Forum, I have a presentation of group G (Permutation group) and w in G. However, my question is that "there is any way in GAP to find w written as a product of generators of the presentation?" I would be appreciated if you could help me in this matter. Best Regards, Abdulsatar From ahulpke at gmail.com Tue Dec 25 15:55:53 2012 From: ahulpke at gmail.com (Alexander Hulpke) Date: Tue, 25 Dec 2012 08:55:53 -0700 Subject: [GAP Forum] Question In-Reply-To: <5CA877F40086AF4BA25CA779186417440316A7@EXMBDB01.campus.ncl.ac.uk> References: <5CA877F40086AF4BA25CA779186417440316A7@EXMBDB01.campus.ncl.ac.uk> Message-ID: Dear Forum, On Dec 21, 2012, at 11:57 AM, Abdulsatar Al-Juburie wrote: > I have a presentation of group G (Permutation group) and w in G. > However, my question is that "there is any way in GAP to find w written as a product of generators of the presentation?" The manual section 39.5 Expressing Group Elements as Words in Generators explains how to do this (both a shortest possible word with much memory requirement, or a reasonably short word with less memory cost). Merry Christmas! Alexander Hulpke From glomp at optonline.net Wed Dec 26 17:37:32 2012 From: glomp at optonline.net (GARY LOMP) Date: Wed, 26 Dec 2012 12:37:32 -0500 (EST) Subject: [GAP Forum] Simple read won't work in Microsoft Windows Message-ID: <409b209b.3ea9f.13bd84a66d4.Webtop.14@optonline.net> OS: windows 7 file is C:/gap4r5/test_gap.g command that refuses to execute is Read( "C:/gap4r5/test_gap.g" ); The file was created in notepad and is a text file. The file contains two lines: A:=Factorial( 10 ); B:=Factorial( 20 ); The response is gap> Read( "C:/gap4r5/test_gap.g" ); Error, file "C:/gap4r5/test_gap.g" must exist and be readable called from ( ) called from read-eval loop at line 6 of *stdin* you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> The file exists and is a text file. Changing the drive letter to lower case changes nothing. Thanks G Lomp From glomp at optonline.net Wed Dec 26 22:28:44 2012 From: glomp at optonline.net (GARY LOMP) Date: Wed, 26 Dec 2012 17:28:44 -0500 (EST) Subject: [GAP Forum] Running GAP commnads from a file Message-ID: <693e31b2.3f35d.13bd954fef6.Webtop.14@optonline.net> I created the following file A:=Factorial( 10 ); B:=Factorial( 20 ); I can read it in (now that I have been advised that windows hides the extension .txt on my file, which is test_gap.g) IMO, this is nothing short of pure confusion, but that's Microsoft for you. There is no error message. I would expect the variables A and B to be defined since the "manual" says the file is read and executed. But they are not. Seems extremely unintuitive and there are no direct paths to any reference that I can find. This is more basic than "Hello, world", yet it doesn't yield. Any help will be appreciated. A user manual that provides a straight forward indication of the "secrets" would be great! Does it exist? GL From dima at ntu.edu.sg Thu Dec 27 03:21:18 2012 From: dima at ntu.edu.sg (Dmitrii (Dima) Pasechnik) Date: Thu, 27 Dec 2012 11:21:18 +0800 Subject: [GAP Forum] Running GAP commnads from a file In-Reply-To: <693e31b2.3f35d.13bd954fef6.Webtop.14@optonline.net> References: <693e31b2.3f35d.13bd954fef6.Webtop.14@optonline.net> Message-ID: Dear all, On 27 December 2012 06:28, GARY LOMP > wrote: I created the following file A:=Factorial( 10 ); B:=Factorial( 20 ); I can read it in (now that I have been advised that windows hides the extension .txt on my file, which is test_gap.g) IMO, this is nothing short of pure confusion, but that's Microsoft for you. There is no error message. I would expect the variables A and B to be defined since the "manual" says the file is read and executed. But they are not. Do you mean to say that after Read(); you evaluate A at the GAP prompt and don't see gap> A; 3628800 but see gap> A; Variable: 'A' must have a value If the latter, it looks as if your file actually didn't get read. Please try to modify your file as follows: A:=Factorial( 10 ); B:=Factorial( 20 ); Print(A); Then a successful Read() will also result in 10! being printed. If this does not happen, post your GAP version and Windows version (not sure if GAP is tested, or even meant to work, on Windows 8) here. Best, Dmitrii ________________________________ CONFIDENTIALITY:This email is intended solely for the person(s) named and may be confidential and/or privileged.If you are not the intended recipient,please delete it,notify us and do not copy,use,or disclose its content. Towards A Sustainable Earth:Print Only When Necessary.Thank you. From lijr07 at gmail.com Mon Dec 31 11:51:04 2012 From: lijr07 at gmail.com (Jianrong Li) Date: Mon, 31 Dec 2012 19:51:04 +0800 Subject: [GAP Forum] How to work in the two-element field F_2 in GAP. Message-ID: Dear Forum, I want to work over the field F_2 with only two elements 0, 1. 1+1=0. I have matrices with entries 0, 1. The multiplication of the matrices are over F_2. I would like to define the default field as F_2. How could I do that in GAP? I tried DefaultField(Z(2)). But it seems that this doesn't work. Thank you very much. Best wishes, Jianrong. From sandeepr.murthy at gmail.com Mon Dec 31 11:58:38 2012 From: sandeepr.murthy at gmail.com (Sandeep Murthy) Date: Mon, 31 Dec 2012 11:58:38 +0000 Subject: [GAP Forum] How to work in the two-element field F_2 in GAP. In-Reply-To: References: Message-ID: <50E17DEE.1070201@gmail.com> Hi, Creating finite fields is described in section 59.3 of the GAP reference manual. GaloisField(2) (also GF(2)) will get you the field of two elements 0,1. Sandeep. Jianrong Li wrote: > Dear Forum, > > I want to work over the field F_2 with only two elements 0, 1. 1+1=0. > > I have matrices with entries 0, 1. The multiplication of the matrices are > over F_2. > > I would like to define the default field as F_2. How could I do that in GAP? > > I tried DefaultField(Z(2)). But it seems that this doesn't work. > > Thank you very much. > > Best wishes, > Jianrong. > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From sandeepr.murthy at gmail.com Mon Dec 31 12:22:02 2012 From: sandeepr.murthy at gmail.com (Sandeep Murthy) Date: Mon, 31 Dec 2012 12:22:02 +0000 Subject: [GAP Forum] How to work in the two-element field F_2 in GAP. In-Reply-To: References: <50E17DEE.1070201@gmail.com> Message-ID: <50E1836A.2050100@gmail.com> Hi, It seems you are passing 0 and 1 literally to create the default field, in which case you will get the field of rationals, in which of course 1 + 1 = 2 <> 0. You can't refer to the zero and one of GF(2) literally by 0 and 1. The zero is denoted by 0*Z(2), the one by Z(2)^0 (or also just by Z(2)). So the default field you want will be obtained by DefaultField( 0*Z(2), Z(2) ) FOr convenience you could just do o := 0*Z(2); e := Z(2); and then do your operations. Sandeep. Jianrong Li wrote: > Dear Sandeep, > > Thank you very much. But how to make the default field to be GF(2)? I > use the command GF(2), and try 1+1, but it returns 2. > > With best wishes, > Jianrong. > > > > 2012/12/31 Sandeep Murthy > > > Hi, > > Creating finite fields is described in section 59.3 of > the GAP reference manual. > > GaloisField(2) (also GF(2)) will get you the field of > two elements 0,1. > > Sandeep. > > > Jianrong Li wrote: > > Dear Forum, > > I want to work over the field F_2 with only two elements 0, 1. > 1+1=0. > > I have matrices with entries 0, 1. The multiplication of the > matrices are > over F_2. > > I would like to define the default field as F_2. How could I do > that in GAP? > > I tried DefaultField(Z(2)). But it seems that this doesn't work. > > Thank you very much. > > Best wishes, > Jianrong. > _________________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/__mailman/listinfo/forum > > > From caranti at science.unitn.it Mon Dec 31 12:35:55 2012 From: caranti at science.unitn.it (Andrea Caranti) Date: Mon, 31 Dec 2012 13:35:55 +0100 Subject: [GAP Forum] How to work in the two-element field F_2 in GAP. In-Reply-To: References: Message-ID: One way to deal with this is to write your matrices with 0's and 1's, and then do a *cast* as in the example below gap> [[1,0],[0,1]] * One(GF(2)); [ [ Z(2)^0, 0*Z(2) ], [ 0*Z(2), Z(2)^0 ] ] Best, Andrea On 31 December 2012 12:51, Jianrong Li wrote: > Dear Forum, > > I want to work over the field F_2 with only two elements 0, 1. 1+1=0. > > I have matrices with entries 0, 1. The multiplication of the matrices are > over F_2. > > I would like to define the default field as F_2. How could I do that in > GAP? > > I tried DefaultField(Z(2)). But it seems that this doesn't work. > > Thank you very much. > > Best wishes, > Jianrong. > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From lijr07 at gmail.com Mon Dec 31 15:57:28 2012 From: lijr07 at gmail.com (Jianrong Li) Date: Mon, 31 Dec 2012 23:57:28 +0800 Subject: [GAP Forum] find maximal subalgebras using GAP Message-ID: Dear Forum, I have a Lie algebra A (the basis of the Lie algebra A is given explicitly by matrices). Is there some function in GAP which can find subalgebras (in particular, maximal subalgebras) of A? I searched the manual but I am not able to find such functions. Thank you very much. With best wishes, Jianrong. From paloff at ya.ru Mon Dec 31 17:30:50 2012 From: paloff at ya.ru (Igor Korepanov) Date: Mon, 31 Dec 2012 21:30:50 +0400 Subject: [GAP Forum] Happy New Year Message-ID: <1182211356975050@web16d.yandex.ru> Dear Forum, has anyone noticed that New Year is approaching? Two and a half hours left here near Moscow, and it has already come to Japan and Taiwan - places with which I am somehow related, personally? My grad student is continuing to write our "piecewise-linear" package in GAP; as of now, we have used some GAP specifics (not present in Maxima which I also like) when calculating fundamental groups; in the future we may also use finite fields. Anyhow, I would like to express my best wishes to the GAP people :D Igor From lijr at lzu.edu.cn Mon Dec 31 16:07:38 2012 From: lijr at lzu.edu.cn (=?GBK?B?wO69qMjZ?=) Date: Mon, 31 Dec 2012 16:07:38 -0000 Subject: [GAP Forum] find maximal subalgebras using GAP Message-ID: <3612b8.433ba.13bf1b7cbc6.Coremail.lijr@lzu.edu.cn> Dear Forum, I have a Lie algebra A (the basis of A is given by matrices explicitly). Is there some function in GAP which can compute all subalgebras (in particular, maximal subalgebras of A) in GAP? I searched the manual of GAP, but I am not able to find such functions. Thank you very much. With best wishes, Jianrong.