Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
| Download
GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
Project: cocalc-sagemath-dev-slelievre
Views: 418346<Chapter Label="HistoryOfGAP44">1<Heading>Overview of updates for &GAP; 4.4</Heading>23This chapter lists changes in the main system (excluding packages)4that have been corrected or added in bugfixes and updates for5&GAP; 4.4.67<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->8<Section Label="fix442">9<Heading>&GAP; 4.4 Bugfix 2 (April 2004)</Heading>1011Fixed bugs which could lead to crashes:12<List>13<Item>14A crash when incorrect types of arguments are passed to <C>FileString</C>.15</Item>16</List>1718Other fixed bugs:19<List>20<Item>A bug in <C>DerivedSubgroupTom</C> and <C>DerivedSubgroupsTom</C>.21</Item>22<Item>An error in the inversion of certain <C>ZmodnZObj</C> elements.23</Item>24<Item>A wrong display string of the numerator in rational25functions returned by <C>MolienSeriesWithGivenDenominator</C>26(in the case that the constant term of this numerator is zero).27</Item>28</List>2930</Section>3132<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->3334<Section Label="fix443">35<Heading>&GAP; 4.4 Bugfix 3 (May 2004)</Heading>3637Fixed bugs which could produce wrong results:3839<List>40<Item>Incorrect setting of system variables (e.g., home directory41and command line options) after loading a workspace.42</Item>43<Item>Wrong handling of integer literals within functions or loops44on 64-bit architectures (only integers in the range from45<M>2^{28}</M> to <M>2^{60}</M>).46</Item>47</List>4849Fixed bugs which could lead to crashes:5051<List>52<Item>A problem in the installation of the multiplication routine53for matrices that claimed to be applicable for more general list54multiplications.55</Item>56<Item>A problem when computing weight distributions of codes with57weights > <M>2^{28}</M>.58</Item>59</List>6061Other fixed bugs:6263<List>64<Item>Problems with the online help with some manual sections.65</Item>66<Item>Problems of the online help on Windows systems.67</Item>68<Item>A problem in <C>GQuotients</C> when mapping from a finitely69presented group which has a free direct factor.70</Item>71<Item>A bug in the function <C>DisplayRevision</C>.72</Item>73<Item>The trivial finitely presented group on no generators was not74recognized as finitely presented.75</Item>76<Item>A problem with <C>Process</C>.77</Item>78<Item>A problem when intersecting subgroups of finitely presented79groups that are represented in <Q>quotient representation</Q> with80the quotient not apermutation group.81</Item>82<Item>A bug in the generic <C>Intersection2</C> method for vector83spaces, in the case that both spaces are trivial.84</Item>85<Item>Enable ReeGroup(q) for <M>q = 3</M>.86</Item>87</List>8889</Section>9091<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->9293<Section Label="fix444">94<Heading>&GAP; 4.4 Bugfix 4 (December 2004)</Heading>9596Fixed bugs which could produce wrong results:9798<List>99<Item>100An error in the <C>Order</C> method for matrices over101cyclotomic fields which caused this method to return <C>infinity</C>102for matrices of finite order in certain cases.103</Item>104<Item>105Representations computed by <C>IrreducibleRepresentations</C>106in characteristic 0 erraneously claimed to be faithful.107</Item>108<Item>A primitive representation of degree 574 for PSL(2,41)109has been missing in the classification on which the &GAP;110library was built.111</Item>112<Item>113A bug in <C>Append</C> for compressed vectors over GF(2): if the114length of the result is 1 mod 32 (or 64) the last entry was115forgotten to copy.116</Item>117<Item>118A problem with the Ree group Ree(3) of size 1512 claiming119to be simple.120</Item>121<Item>122An error in the membership test for groups123GU(n,q) and SU(n,q) for non-prime <M>q</M>.124</Item>125<Item>126An error in the kernel code for ranges which caused e.g.127<C>-1 in [1..2]</C> to return <K>true</K>.128</Item>129<Item>130An error recording boolean lists in saved workspaces.131</Item>132<Item>133A problem in the selection function for primitive and134transitive groups if no degree is given.135</Item>136<Item>137<C>ReducedConfluentRewritingSystem</C>138returning a cached result that might139not conform to the ordering specified.140</Item>141</List>142143Other fixed bugs:144145<List>146<Item>147A problem with the function <C>SuggestUpdates</C> to check for148the most recent version of packages available.149</Item>150<Item>151A problem that caused <C>MatrixOfAction</C> to produce an error when152the algebra module was constructed as a direct sum.153</Item>154<Item>155Problems with computing <M>n</M>-th power maps of character tables,156where n is negative and the table does not yet store its irreducible157characters.158</Item>159<Item>160Element conjugacy in large-base permutation groups sometimes was161unnecessarily inefficient.162</Item>163<Item>164A missing method for getting the letter representation of an associate165word in straight line program representation.166</Item>167<Item>168A problem with the construction of vector space bases where the given list169of basis vectors is itself an object that was returned by <C>Basis</C>.170</Item>171<Item>172A problem of <C>AbelianInvariantsMultiplier</C> insisting that a result of173<C>IsomorphismFpGroup</C> is known to be surjective.174</Item>175<Item>176An error in the routine for <C>Resultant</C>177if one of the polynomials has degree zero.178</Item>179</List>180181</Section>182183<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->184185<Section Label="fix445">186<Heading>&GAP; 4.4 Update 5 (May 2005)</Heading>187188Fixed bugs which could produce wrong results:189<List>190<Item>191<Ref BookName="ref" Func="GroupWithGenerators"/>192returned a meaningless group object instead of signaling an error193when it was called with an empty list of generators.194</Item>195<Item>196When computing preimages under an embedding into a direct product197of permutation groups, if the element was not in the image of the198embedding then a permutation had been returned instead199of <C>fail</C>.200</Item>201<Item>202Two problems with <Ref BookName="ref" Func="PowerMod"/>203for polynomials. [Reported by Jack Schmidt]204</Item>205<Item>206Some methods for computing the sum of ideals returned the first207summand instead of the sum. [Reported by Alexander Konovalov]208</Item>209<Item>210Wrong result in <Ref BookName="ref" Func="Intersection"/> for pc groups.211</Item>212<Item>213The function <Ref BookName="ref" Func="CompareVersionNumbers"/>214erroneously ignored leading non-digit characters.215<P/>216A new feature in the corrected version is an optional third argument217<C>"equal"</C>, which causes the function to return218<C>true</C> only if the first two arguments describe219equal version numbers; documentation is available in the ext-manual.220This new feature is used in <Ref BookName="ref" Func="LoadPackage"/>,221now one can require a specific version of a package.222<P/>223The library code still contained parts of the handling of completion224files for packages, which does not work and therefore had already225been removed from the documentation. This code has now been removed.226<P/>227Now a new component <C>PreloadFile</C> is supported in228<Ref BookName="ref" Func="The PackageInfo.g File"/> files;229if it is bound then the file in question is read immediately before the230package or its documentation is loaded.231</Item>232<Item>233The result of <Ref BookName="ref" Func="String"/> for strings not234in <Ref BookName="ref" Func="IsStringRep"/> that occur as list235entries or record components was erroneously missing the double236quotes around the strings.237</Item>238<Item>239A bug which caused <Ref BookName="ref" Func="InducedPcgs"/> to240return a pcgs which is not induced wrt. the parent pcgs of241<C>pcgs</C>. This may cause unpredictable behaviour, e. g.242when <C>SiftedPcElement</C> is used subsequently.243[Reported by Alexander Konovalov]244</Item>245<Item>246Fixed a bug in <C>SmallGroupsInformation(512)</C>.247</Item>248<Item>249<Ref BookName="ref" Func="PowerModCoeffs"/> with exponent 1 for250compressed vectors did not reduce (a copy of) the input vector251before returning it. [Reported by Frank Lübeck]252</Item>253<Item>254Sorting a mutable non-plain list (e.g., a compressed matrix over255fields of order < 257) could potentially destroy that object.256[Reported by Alexander Hulpke]257</Item>258<Item>259Under rare circumstances computing the closure of a permutation260group by a normalizing element could produce a corrupted stabilizer261chain. (The underlying algorithm uses random elements, probability262of failure was below 1 percent). [Reported by Thomas Breuer]263</Item>264</List>265266Fixed bugs which could lead to crashes:267<List>268<Item>269Some code and comments in the &GAP; kernel assumed that there is no270garbage collection during the core printing function <C>Pr</C>,271which is not correct. This could cause &GAP; in rare cases to272crash during printing permutations, cyclotomics or strings with273zero bytes. [Reported by Warwick Harvey]274</Item>275</List>276277Other fixed bugs:278<List>279280<Item>281A rare problem with the choice of prime in the Dixon-Schneider282algorithm for computing the character table of a group.283[Reported by Jack Schmidt]284</Item>285286<Item>287<Ref BookName="ref" Func="DirectProduct"/> for trivial permutation288groups returned a strange object.289</Item>290291<Item>292A problem with <Ref BookName="ref" Func="PolynomialReduction"/>293running into an infinite loop.294</Item>295296<Item>297Adding linear mappings with different image domains298was not possible. [Reported by Pasha Zusmanovich]299</Item>300301<Item>302Multiplying group ring elements with rationals was not303possible. [Reported by Laurent Bartholdi]304</Item>305306<Item>307<Ref BookName="ref" Func="Random"/>308now works for finite fields of size309larger than <M>2^{28}</M>. [Reported by Jack Schmidt]310</Item>311312<Item>313Univariate polynomial creators did modify the coefficient314list passed. [Reported by Jürgen Müller]315</Item>316317<Item>318Fixed <Ref BookName="ref" Func="IntHexString"/> to accept319arguments not in <C>IsStringRep</C>; the argument is320now first converted if necessary. [Reported by Kenn Heinrich]321</Item>322323<Item>324The library code for stabilizer chains contained quite some325explicit references to the identity <C>()</C>.326This is unfortunate if one works with permutation groups, the327elements of which are not plain permutations but objects which328carry additional information like a memory, how they were obtained329from the group generators. For such cases it is much cleaner to330use the <C>One(...)</C> operation instead of <C>()</C>, such that331the library code can be used for a richer class of group objects.332This fix contains only rather trivial changes <C>()</C> to333<C>One(...)</C> which were carefully checked by me. The334tests for permutation groups all run without a problem. However, it is335relatively difficult to provide test code for this particular change,336since the "improvement" only shows up when one generates new group337objects. This is for example done in the package338<Package>recog</Package> which is in preparation.339[Reported by Akos Seress and Max Neunhöffer]340</Item>341342<Item>343Using <C>{}</C> to select elements of a known inhomogenous dense list344produced a list that might falsely claim to be known inhomogenous,345which could lead to a segfault if the list typing code tried to mark346it homogenous, since the code intended to catch such errors also had347a bug. [Reported by Steve Linton]348</Item>349350<Item>351The record for the generic iterator construction of subspaces domains352of non-row spaces was not complete.353</Item>354355<Item>356When a workspace has been created without packages(<C>-A</C> option)357and is loaded into a &GAP; session without packages (same option)358then an error message is printed.359</Item>360361<Item>362So far the functions <Ref BookName="ref" Func="IsPrimeInt"/> and363<Ref BookName="ref" Func="IsProbablyPrimeInt"/> are essentially the364same except that <C>IsPrimeInt</C> issues an additional365warning when (non-proven) probable primes are considered as primes.366<P/>367These warnings now print the probable primes in question as well;368if a probable prime is used several times then the warning is also369printed several times; there is no longer a warning for some known370large primes; the warnings can be switched off. See371<Ref BookName="ref" Func="IsPrimeInt"/> for more details.372<P/>373If we get a reasonable primality test in &GAP; we will change the374definition of <C>IsPrimeInt</C> to do a proper test.375</Item>376377<Item>378Corrected some names of primitive groups in degree 26.379[Reported by Robert F. Bailey]380</Item>381382</List>383384New or improved functionality:385<List>386387<Item>388Several changes for <Ref BookName="ref" Func="ConwayPolynomial"/>:389<List>390<Item> many new pre-computed polynomials </Item>391<Item> put data in several separate files (only read when needed) </Item>392<Item> added info on origins of pre-computed polynomials </Item>393<Item> improved performance of <Ref BookName="ref" Func="ConwayPolynomial"/>394and <Ref BookName="ref" Func="IsPrimitivePolynomial"/> for p < 256 </Item>395<Item> improved documentation of <C>ConwayPolynomial</C> </Item>396<Item> added and documented new functions397<Ref BookName="ref" Func="IsCheapConwayPolynomial"/> and398<Ref BookName="ref" Func="RandomPrimitivePolynomial"/>399</Item>400</List>401</Item>402403<Item>404Added method for <Ref BookName="ref" Func="NormalBase"/>405for extensions of finite fields.406</Item>407408<Item>409Added more help viewers for the HTML version of the documentation410(firefox, mozilla, konqueror, w3m, safari).411</Item>412413<Item>414New function <Ref BookName="ref" Func="ColorPrompt"/>.415(Users of former versions of a <C>colorprompt.g</C> file:416Now you just need a <C>ColorPrompt(true);</C> in your417<C>.gaprc</C> file.)418</Item>419420<Item>421422Specialised kernel functions to support <Package>GUAVA</Package>4232.0. &GAP; will only load <Package>GUAVA</Package>424in version at least 2.002 after this update.425426</Item>427428<Item>429Now there is a kernel function <C>CYC_LIST</C>430for converting a list of rationals into a cyclotomic,431without arithmetics overhead.432</Item>433434<Item>435New functions436<Ref BookName="ref" Func="ContinuedFractionExpansionOfRoot"/> and437<Ref BookName="ref" Func="ContinuedFractionApproximationOfRoot"/>438for computing continued fraction expansions and continued fraction439approximations of real roots of polynomials with integer coefficients.440</Item>441442<Item>443A method for computing structure descriptions for finite groups,444available via <Ref BookName="ref" Func="StructureDescription"/>.445</Item>446447<Item>448This change contains the new, extended version of the449<Package>SmallGroups</Package> package. For example, the groups of450orders <M>p^4</M>, <M>p^5</M>, <M>p^6</M> for arbitrary primes451<M>p</M>, the groups of square-free order and the groups of452cube-free order at most 50000 are included now. For more detailed453information see the announcement of the extended package.454</Item>455456<Item>457The function <C>ShowPackageVariables</C> gives458an overview of the global variables in a package.459It is thought as a utility for package authors and referees.460(It uses the new function <C>IsDocumentedVariable</C>.)461</Item>462463<Item>464The mechanisms for testing &GAP; has been improved:465<List>466<Item> The information whether a test file belongs to the list in467<C>tst/testall.g</C> is now stored in the test file468itself.</Item>469<Item> Some targets for testing have been added to the470<C>Makefile</C> in the &GAP; root directory,471the output of the tests goes to the new directory472<C>dev/log</C>.</Item>473<Item> Utility functions for testing are in the new file474<C>tst/testutil.g</C>.475Now the loops over (some or all) files <C>tst/*.tst</C>476can be performed with a function call, and the file477<C>tst/testall.g</C> can be created automatically;478the file <C>tst/testfull.g</C> is now obsolete.479The remormalization of the scaling factors can now be done using a &GAP;480function, so the file <C>tst/renorm.g</C> is481obsolete.</Item>482<Item> Now the functions <C>START_TEST</C>483and <C>STOP_TEST</C> use components in484<C>GAPInfo</C> instead of own globals,485and the random number generator is always reset in486<C>START_TEST</C>.</Item>487<Item> <C>GAPInfo.SystemInformation</C> now takes two488arguments, now one can use it easier in the tests.</Item>489</List>490</Item>491492<Item>493<Ref BookName="ref" Func="MultiplicationTable"/> is now an attribute,494and the construction of a magma, monoid, etc. from multiplication495tables has been unified.496</Item>497</List>498499</Section>500501<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->502503<Section Label="fix446">504<Heading>&GAP; 4.4 Update 6 (September 2005)</Heading>505506Attribution of bugfixes and improved functionalities to those who507reported or provided these, respectively, is still fairly incomplete508and inconsistent with this update. We apologise for this fact and will509discuss until the next update how to improve this feature.510<P/>511512Fixed bugs which could produce wrong results:513<List>514515<Item>516The perfect group library does not contain any information517on the trivial group, so the trivial group must be handled518specially. <Ref BookName="ref" Func="PerfectGroup"/> and519<C>NrPerfectLibraryGroups</C> were changed520to indicate that the trivial group is not part of the library.521</Item>522523<Item>524The descriptions of <C>PerfectGroup(734832,3)</C>525and <C>PerfectGroup(864000,3)</C> were corrected526in the <Ref BookName="ref" Func="Finite Perfect Groups"/>527library of perfect groups.528</Item>529530<Item>531The functions532<Ref BookName="ref" Func="EpimorphismSchurCover"/> and533<Ref BookName="ref" Func="AbelianInvariantsMultiplier"/>534may have produced wrong results without warning535[Reported by Colin Ingalls]. These problems are fixed.536However, the methods currently used can be expected to537be slower than the ones used before; we hope to fix this538in the next version of &GAP;.539</Item>540541<Item>542<Ref BookName="ref" Func="DerivedSubgroup"/> and543<Ref BookName="ref" Func="CommutatorSubgroup"/> for permutation544groups sometimes returned groups with an incorrect stabilizer545chain due to a missing verification step after a random Schreier Sims.546</Item>547548<Item>549<Ref BookName="ref" Func="NaturalHomomorphismByNormalSubgroup"/>550for FpGroups did unnecessary rewrites.551</Item>552553<Item>554The alternating group <M>A_3</M> incorrectly claimed to be not simple.555</Item>556557<Item>558<Ref BookName="ref" Func="ExponentSyllable"/> for straight line559program elements gave a wrong result.560561</Item>562563<Item>564<Ref BookName="ref" Func="PrimePGroup"/> is defined to return565<C>fail</C> for trivial groups, but if the group was constructed566as a factor or subgroup of a known <M>p</M>-group, the value of567<M>p</M> was retained.568</Item>569570<Item>571The functions <Ref BookName="ref" Func="TestPackageAvailability"/>572and <Ref BookName="ref" Func="LoadPackage"/> did not work correctly573when one asked for a574particular version of the package, via a version number starting with575the character <C>=</C>, in the sense that a version576with a larger version number was loaded if it was available.577[Reported by Burkhard Höfling]578</Item>579580<Item>581The generator names constructed by582<Ref BookName="ref" Func="AlgebraByStructureConstants"/>583were nonsense.584</Item>585586<Item>587The undocumented function (but recently advertised on gap-dev)588<C>COPY_LIST_ENTRIES</C> did not handle overlapping source and589destination areas correctly in some cases.590</Item>591592<Item>593The elements in a free magma ring have the filter594<Ref BookName="ref" Func="IsAssociativeElement"/> set595whenever the elements in the underlying magma and in596the coefficients ring have this filter set.597[Reported by Randy Cone]598</Item>599600<Item>601The function <Ref BookName="ref" Func="InstallValue"/> must not602be used for objects in the filter <C>IsFamily</C> because these603objects are compared via <Ref BookName="ref" Func="IsIdenticalObj"/>.604[Reported by Max Neunhöffer]605</Item>606607</List>608609Fixed bugs which could lead to crashes:610<List>611612<Item>613Problem in composition series for permutation groups for614non-Frobenius groups with regular point stabilizer.615</Item>616617<Item>618After lots of computations with compressed GF(2) vectors619&GAP; occasionally crashed. The reason were three missing620<C>CHANGED_BAG</C>s in <C>SemiEchelonPListGF2Vecs</C>.621They were missing, because a garbage collection could be622triggered during the computation such that newly created bags623could become <Q>old</Q>. It is not possible to provide test624code because the error condition cannot easily be reproduced.625[Reported by Klaus Lux]626</Item>627628<Item>629Minor bug that crashed &GAP;:630The type of <C>IMPLICATIONS</C>631could not be determined in a fresh session. [Reported by Marco Costantini]632</Item>633634<Item>635<Ref BookName="ref" Func="Assert"/>636caused an infinite loop if called637as the first line of a function called from another function.638</Item>639</List>640641Other fixed bugs:642<List>643644<Item>645Wrong choice of prime in Dixon-Schneider if prime is bigger than646group order (if group has large exponent).647</Item>648649<Item>650Groebner basis code ran into problems when comparing monomial651orderings.652</Item>653654<Item>655When testing for conjugacy of a primitive group to an imprimitive656group,&GAP; runs into an error in EARNS calculation.657[Reported by John Jones]658</Item>659660<Item>661The centre of a magma is commonly defined to be the set of elements662that commute and associate with all elements. The previous definition663left out <Q>associate</Q> and caused problems with extending the664functionality to nonassociative loops. [Reported by Petr Vojtechovsky]665</Item>666667<Item>668New kernel methods for taking the intersection and difference between669sets of substantially different sizes give a big performance increase.670</Item>671672<Item>673The commands674<Ref BookName="ref" Func="IsNaturalSymmetricGroup"/> and675<Ref BookName="ref" Func="IsNaturalAlternatingGroup"/> are faster and676should run much less677often into inefficient tests.678</Item>679680<Item>681The perfect group library, see682<Ref BookName="ref" Func="Finite Perfect Groups"/>, is split into683several files which are loaded and unloaded to keep memory usage684down. The global variable <C>PERFSELECT</C> is a blist which685indicates which orders are currently loaded. An off-by-one error686wrongly added the last order of the previous file into the list of687valid orders when a new file was loaded. A subsequent access to688this order raises an error.689</Item>690691<Item>692Up to now, the method installed for testing the membership of rationals693in the field of rationals via <Ref BookName="ref" Func="IsRat"/>694was not called; instead a more general method was used that called695<Ref BookName="ref" Func="Conductor"/> and thus was much slower.696Now the special method has been ranked up by changing the requirements697in the method installation.698</Item>699700<Item>701Fixed a bug in <C>APPEND_VEC8BIT</C>, which was triggered in the702following situation: Let <C>e</C> be the number of field elements703stored in one byte. If a compressed 8bit-vector <C>v</C> had length704not divisible by <C>e</C> and another compressed 8-bit vector705<C>w</C> was appended, such that the sum of the lengths became706divisible by <C>e</C>, then one 0 byte too much was written, which707destroyed the <C>TNUM</C> of the next &GAP; object in memory.708[Reported by Klaus Lux]709</Item>710711<Item>712<Ref BookName="ref" Func="PermutationCycle"/> returned <C>fail</C>713if the cycle was not a contiguous subset of the specified domain.714[Reported by Luc Teirlinck]715</Item>716717<Item>718Now <Ref BookName="ref" Func="Inverse"/> correctly returns719<C>fail</C> for zeros in finite fields (and does no longer720enter a break loop).721</Item>722723<Item>724Up to now, <Ref BookName="ref" Func="CharacterDegrees"/> ignored the attribute725<Ref BookName="ref" Func="Irr"/>726if the argument was a group that knew that it was solvable.727</Item>728729<Item>730The function <C>Debug</C> now prints a meaningful message731if the user tries to debug an operation.732Also, the help file for <C>vi</C> is now available in733the case of several &GAP; root directories.734</Item>735736<Item>737It is no longer possible to create corrupt objects via ranges of738length ><M>2^{28}</M>, resp. ><M>2^{60}</M> (depending on739the architecture). The limitation concerning the arguments of740ranges is documented. [Reported by Stefan Kohl]741</Item>742743<Item>744Now <Ref BookName="ref" Func="IsElementaryAbelian"/> and745<Ref BookName="ref" Func="ClassPositionsOfMinimalNormalSubgroups"/>746are available for ordinary character tables. Now the operation747<Ref BookName="ref" Func="CharacterTableIsoclinic"/> is748an attribute, and there is another new attribute749<Ref BookName="ref" Func="SourceOfIsoclinicTable"/> that points back to the750original table; this is used for computing the Brauer tables of those751tables in the character table library that are computed using752<C>CharacterTableIsoclinic</C>.753Now <Ref BookName="ref" Func="ClassPositionsOfDerivedSubgroup"/>754avoids calling <Ref BookName="ref" Func="Irr"/>,755since <Ref BookName="ref" Func="LinearCharacters"/> is sufficient.756Now <Ref BookName="ref" Func="ClassPositionsOfElementaryAbelianSeries"/>757works also for the table of the trivial group.758Restrictions of character objects know that they are characters.759<P/>760A few formulations in the documentation concerning character tables have761been improved slightly.762</Item>763764<Item>765Up to now, <Ref BookName="ref" Func="IsPGroup"/> has rarely been set.766Now many basic operations such as <Ref BookName="ref" Func="SylowSubgroup"/>767set this attribute on the returned result.768</Item>769770<Item>771Computing an enumerator for a semigroup required too much time772because it used all elements instead of the given generators.773[Reported by Manuel Delgado]774</Item>775776<Item>777Avoid potential error message when working with automorphism groups.778</Item>779780<Item>781Fixed wrong page references in manual indices.782</Item>783784<Item>785Make <C>MutableCopyMat</C> an operation and install786the former function which does call <Ref BookName="ref" Func="List"/> with787<Ref BookName="ref" Func="ShallowCopy"/> the default method for lists. Also788use this in a few appropriate places.789</Item>790791<Item>792An old DEC compiler doesn't like C preprocessor directives that are793preceded by whitespace. Removed such whitespace. [Reported by Chris Wensley]794</Item>795796</List>797798799New or improved functionality:800801<List>802803<Item>804The primitive groups library has been extended to degree 2499.805</Item>806807<Item>808New operation809<Ref BookName="ref" Func="Remove"/>810and extended functionality of811<Ref BookName="ref" Func="Add"/> with812an optional argument giving the position of the insertion. They are based813on an efficient kernel function <C>COPY_LIST_ENTRIES</C>.814</Item>815816<Item>817Added fast kernel implementation of Tarjan's818algorithm for strongly connected components of a819directed graph.820</Item>821822<Item>823Now <Ref BookName="ref" Func="IsProbablyPrimeInt"/> can be used with larger numbers.824(Made internal function <C>TraceModQF</C> non-recursive.)825</Item>826827<Item>828A new operation <Ref BookName="ref" Func="PadicValuation"/>829and a corresponding method for rationals.830</Item>831832<Item>833A new operation <Ref BookName="ref" Func="PartialFactorization"/> has been834added, and a corresponding method for integers has been installed.835This method allows one to specify the amount of work to be spent on looking836for factors.837</Item>838839<Item>840The generators of full s. c. algebras can now be accessed841with the dot operator. [Reported by Marcus Bishop]842</Item>843844<Item>845New Conway polynomials computed by Kate Minola, John Bray, Richard Parker.846</Item>847848<Item>849A new attribute <Ref BookName="ref" Func="EpimorphismFromFreeGroup"/>.850The code has been written by Alexander Hulpke.851</Item>852853<Item>854The functions855<Ref BookName="ref" Func="Lambda"/>,856<Ref BookName="ref" Func="Phi"/>,857<Ref BookName="ref" Func="Sigma"/>, and858<Ref BookName="ref" Func="Tau"/>859have been turned into operations, to admit the installation of methods860for arguments other than integers.861</Item>862863<Item>864Up to now, one could assign only lists with865<Ref BookName="ref" Func="InstallFlushableValue"/>.866Now also records are admitted.867</Item>868869<Item>870<Ref BookName="ref" Func="InstallMethod"/> now admits entering a list of871strings instead of a list of required filters.872Each such string must evaluate to a filter when used as the argument of873<Ref BookName="ref" Func="EvalString"/>.874The advantage of this variant is that these strings are used to compose875an info string (which is shown by <C>ApplicableMethod</C>)876that reflects exactly the required filters.877</Item>878879<Item>880In test files that are read with <C>ReadTest</C>,881the assertion level is set to 2 between <C>START_TEST</C>882and <C>STOP_TEST</C>.883This may result in runtimes for the tests that are substantially longer884than the usual runtimes with default assertion level 0.885In particular this is the reason why some of the standard test files require886more time in &GAP; 4.4.6 than in887&GAP; 4.4.5.888</Item>889890<Item>891Some very basic functionality for floats.892</Item>893894</List>895896</Section>897898<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->899900<Section Label="fix447">901<Heading>&GAP; 4.4 Update 7 (March 2006)</Heading>902903New or improved functionality:904905<List>906907<Item>908The <Ref BookName="ref" Func="Display"/>909functionality for character tables has been extended by addition910of an option to show power maps and centralizer orders in a format911similar to that used in the ATLAS.912Furthermore the options handling is now hierarchical,913in order to admit more flexible overloading.914</Item>915916<Item>917For the function <Ref BookName="ref" Func="LowIndexSubgroupsFpGroup"/>,918there is now an iterator variant919<C>LowIndexSubgroupsFpGroupIterator</C>.920[Suggested (and based on code contributed) by Michael Hartley]921</Item>922923<Item>924Semigroup functionality in &GAP; has been improved925and extended. Green's relations are now stored differently, making the system926more amenable to new methods for computing these relations in special cases.927It is now possible to calculate928Green's classes etc. without computing the entire semigroup or necessarily929loading the package <Package>MONOID</Package>.930Furthermore, the Froidure-Pin algorithm has now been implemented in931&GAP;.932</Item>933934<Item>935Functionality for creating free products of any list of groups for which936a finite presentation can be determined had been added. This937function returns a finitely presented group. This functionality includes938the <C>Embedding</C> operation.939940As an application of this new code a specialized direct product941operation has been added for finitely presented groups which942returns a finitely presented group. This application includes943<C>Embedding</C> and <C>Projection</C> functionality.944</Item>945946<Item>947Some new Straight Line Program (SLP) functionality has been added.948The new functions take given SLPs and create new ones by restricting949to a subset of the results, or to an intermediate result or by calculating950the product of the results of two SLPs.951</Item>952953<Item>954New code has been added to allow group elements with memory;955that is, they store956automatically how they were derived from some given set of generators.957Note that there is not yet documentation for this functionality,958but some packages already use it.959</Item>960961<Item>962New code has been added to handle matrices and vectors in such a way that963they do not change their representation in a generic manner.964</Item>965966<Item>967The <Ref BookName="ref" Func="Irr"/>968method for <M>p</M>-solvable <M>p</M>-modular Brauer tables now keeps969the order of the irreducibles in the ordinary table.970</Item>971972<Item>973&GAP; can now handle any finite field for which the974Conway polynomial is known or can be computed.975</Item>976977<Item>978New Conway polynomials provided by John Bray and Kate Minola have been added.979</Item>980981<Item>982The <C>ReadTest</C>983methods for strings (filenames) and streams now automatically set984the screen width (see <Ref BookName="ref" Func="SizeScreen"/>) to 80 before the tests,985and reset it afterwards.986</Item>987988<Item>989Now a few more checks are done during the <C>configure</C>990phase of compiling for future use of some I/O functions of the C-library991in a package. Also the path to the &GAP; binaries for the &GAP; compiler is992now handled via autoconf. Finally, now <C>autoconf</C>993version 2.59 is used.994</Item>995996</List>997998Fixed bugs which could produce wrong results:9991000<List>10011002<Item>1003Some technical errors in the functions for compressed vectors and matrices1004which could lead to corruption of internal data structures and so to crashes1005or conceivably to wrong results. [Reported by Roman Schmied]1006</Item>10071008<Item>1009A potential problem in the generic method for the undocumented operation1010<C>DirectFactorsOfGroup</C>:1011It was silently assumed that1012<Ref BookName="ref" Func="NormalSubgroups"/>1013delivers the trivial subgroup as first and1014the whole group as last entry of the resulting list.1015</Item>10161017<Item>1018The code for sublists of compressed vectors created by <C>vec{range}</C> may write1019one byte beyond the space allocated for the new vector, overwriting part of the next1020object in the workspace. Thanks to Jack Schmidt for narrowing down the problem.1021</Item>10221023<Item>1024Given a class function object of value zero, an1025<Ref BookName="ref" Func="Arithmetic Operations for Class Functions"/>1026method for a class function1027erroneously did not return <C>fail</C>.1028[Reported by Jack Schmidt]1029</Item>10301031<Item>1032The <Ref BookName="ref" Func="Arithmetic Operations for Class Functions"/>1033method for a class function1034erroneously returned a finite number if one of the values1035was nonreal, not a cyclotomic integer, and had norm 1.1036</Item>10371038<Item>1039Two missing perfect groups were added, and the permutation degree lowered on1040the perfect groups with the largest degrees. [Reported by Jack Schmidt]1041</Item>10421043<Item>1044When a character table was displayed with1045<Ref BookName="ref" Func="Printing Character Tables"/>,1046the centralizer order displayed for the first class shown1047was not correct if it did not involve1048all prime divisors of the group. [Reported by Jack Schmidt]1049</Item>10501051<Item>1052The first argument of the function <Ref BookName="ref" Func="VectorSpace"/> must be a field.1053This is checked from now on. [Reported by Laurent Bartholdi]1054</Item>10551056<Item>1057Up to now, it was possible to create a group object from a semigroup of1058cyclotomics using <Ref BookName="ref" Func="AsGroup"/>,1059although groups of cyclotomics are not admissible. [Reported by Alexander Konovalov]1060</Item>10611062<Item>1063The documentation of1064<C>CharacteristicPolynomial(F,mat)</C>1065was ambiguous if1066<C>FieldOfMatrix(mat) <= F <1067DefaultFieldOfMatrix(mat)</C>.1068In particular, the1069result was representation dependent. This was fixed by introducing a second1070field which specifies the vector space which mat acts upon. [Reported by Jack Schmidt]1071</Item>10721073<Item>1074<C>AssociatedReesMatrixSemigroupOfDClass</C> produced an incorrect1075sandwich matrix for the semigroup created. This matrix is an1076attribute set when creating the Rees matrix semigroup but is1077not used for creating the semigroup. The incorrect result was returned1078when <C>SandwichMatrix</C> was called. [Reported by Nelson Silva and Joao Araujo]1079</Item>10801081<Item>1082The literal <C>"compiled"</C> was given an incorrect length. The1083kernel was then unable to find compiled library code as the search1084path was incorrect. Also the documentation example had an error in1085the path used to invoke the <F>gac</F> compiler.1086</Item>10871088<Item>1089The twisting group in a generic wreath product might1090have had intransitive action. [Reported by Laurent Bartholdi]1091</Item>10921093<Item>1094There was an arithmetic bug in the polynomial reduction code.1095</Item>1096</List>109710981099Fixed bugs which could lead to crashes:11001101<List>11021103<Item>1104Bug 1 in the list of fixed bugs which could lead to wrong results1105could also potentially lead to crashes.1106</Item>11071108</List>110911101111Other fixed bugs:11121113<List>11141115<Item>1116The matrices of invariant forms stored as values of the attributes1117<Ref BookName="ref" Func="InvariantBilinearForm"/>,1118<Ref BookName="ref" Func="InvariantQuadraticForm"/>, and1119<Ref BookName="ref" Func="InvariantSesquilinearForm"/>,1120for matrix groups over finite fields,1121are now in the (compressed) format returned by1122<Ref BookName="ref" Func="ImmutableMatrix"/>.1123</Item>11241125<Item>1126<C>String</C> now returns an immutable string,1127by making a copy before changing the argument.1128</Item>11291130<Item>1131<C>permutation^0</C> and <C>permutation^1</C> were not handled with1132special code in the kernel, hence were very slow for big permutations.1133[Reported by Max Neunhöffer]1134</Item>11351136<Item>1137Added code to cache the induced pcgs for an arbitrary parent pcgs. (This code1138was formerly part of the <Package>CRISP</Package> package.)1139</Item>11401141<Item>1142This fix consists of numerous changes to improve support for1143direct products, including:1144- new methods for <C>PcgsElementaryAbelianSeries</C>,1145<C>PcgsChiefSeries</C>,1146<C>ExponentsOfPcElement</C>,1147<C>DepthOfPcElement</C> for direct products1148- fixed <C>EnumeratorOfPcgs</C> to test for membership first1149- new methods for membership test in groups which have an induced pcgs1150- added <C>GroupOfPcgs</C> attribute to pcgs in various methods1151- fixed declarations of <C>PcgsElementaryAbelianSeries</C>,1152<C>PcgsChiefSeries</C>1153(the declared argument was a pcgs, not a group) [Reported by Roman Schmied]1154</Item>11551156<Item>1157Corrected a term ordering problem encountered by the basis construction1158code for finite dimensional vector spaces of multivariate rational1159functions. [Reported by Jan Draisma]1160</Item>11611162<Item>1163When the factor of a finite dimensional group ring by an ideal was formed,1164a method intended for free algebras modulo relations was used,1165and the returned factor algebra could be used for (almost) nothing.1166[Reported by Heiko Dietrich]1167</Item>11681169<Item>1170Up to now, <Ref BookName="ref" Func="PowerMap"/> ran into an error1171when one asked for the n-th power map where n was not a small integer.1172This happened in some &GAP; library functions1173if the exponent of the character table in question was not a small integer.1174</Item>11751176<Item>1177Up to now, the test whether a finite field element was contained in a group1178of finite field elements ran into an error if the element was not in the1179field generated by the group elements. [Reported by Heiko Dietrich]1180</Item>11811182<Item>1183Conjugacy classes of natural (special) linear groups are now always returned1184with trivial class first.1185</Item>11861187<Item>1188Up to now, it could happen that <Ref BookName="ref" Func="CheckFixedPoints"/>1189reduced an entry in its1190second argument to a list containing only one integer1191but did not replace the list by that integer;1192according to the conventions, this replacement should be done.1193</Item>11941195<Item>1196The functions <C>PrintTo</C> and1197<C>AppendTo</C> did not work correctly for streams.1198[Reported by Marco Costantini]1199</Item>12001201<Item>1202The function <C>Basis</C> did not return a value1203when it was called with the argument <C>Rationals</C>.1204[Reported by Klaus Lux]1205</Item>12061207<Item>1208For certain matrix groups, the function1209<C>StructureDescription</C> raised an error message.1210The reason for this was that a trivial method for1211<C>IsGeneralLinearGroup</C> for matrix groups in1212<C>lib/grpmat.gi</C> which is ranked higher than1213the nontrivial method for generic groups in1214<C>lib/grpnames.gi</C> called the operation1215<C>IsNaturalGL</C>, for which there was no nontrivial1216method available. [Reported by Nilo de Roock]1217</Item>12181219<Item>1220Action on sets of length 1 was not correctly handled.1221[Reported by Mathieu Dutour]1222</Item>12231224<Item>1225Now <C>WriteByte</C> admits writing zero characters to1226all streams. [Reported by Marco Costantini]1227</Item>12281229<Item>1230The conjugacy test for subgroups tests for elementary abelian regular1231normal subgroup (EARNS) conjugacy. The fix will1232catch this in the case that the second group has no EARNS.1233[Reported by Andrew Johnson]1234</Item>12351236<Item>1237So far, the UNIX installation didn't result in a correct gap.sh if the1238installation path contained space characters. Now it should handle this1239case correctly, as well as other unusual characters in path names1240(except for double quotes).1241</Item>12421243</List>12441245</Section>12461247<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->12481249<Section Label="fix448">1250<Heading>&GAP; 4.4 Update 8 (September 2006)</Heading>12511252New or improved functionality:12531254<List>12551256<Item>1257A function <Ref BookName="ref" Func="Positions"/> with underlying operation1258<C>PositionsOp</C>, which returns the list1259of all positions at which a given object appears in a given list.1260</Item>12611262<Item>1263<Ref BookName="ref" Func="LogFFE"/>1264now returns <C>fail</C>1265when the element is not a power of the base.1266</Item>12671268<Item>1269It is now allowed to continue long integers, strings or identifiers by1270ending a line with a backslash or with a backslash and carriage return1271character. So, files with &GAP; code and1272DOS/Windows-style line breaks are now valid input on all architectures.1273</Item>12741275<Item>1276The command line for starting the session and the system environment are now1277available in <C>GAPInfo.SystemCommandLine</C> and1278<C>GAPInfo.SystemEnvironment</C>.1279</Item>12801281<Item>1282Names of all bound global variables and all component names are available1283on &GAP; level.1284</Item>12851286<Item>1287Added a few new Conway polynomials computed by Kate Minola and John Bray.1288</Item>12891290<Item>1291There is a new concept of <E>random sources</E>, see1292<Ref BookName="ref" Func="IsRandomSource"/>, which provides random number1293generators which are independent of each other.1294There is kernel code for the Mersenne twister random number generator1295(based on the code by Makoto Matsumoto distributed at1296<URL>http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html</URL>).1297It provides fast 32-bit pseudorandom integers with a period of length1298<M>2^{19937}-1</M>1299and a 623-dimensional equidistribution. The library methods for random1300elements of lists and for random (long) integers are using the Mersenne1301twister now.<P/>1302</Item>13031304<Item>1305In line editing mode (usual input mode without -n option) in lines starting1306with <C>gap> </C>, <C>> </C> or1307<C>brk> </C> this beginning part is immediately1308removed. This is a convenient feature that allows one to cut and paste1309input lines from other sessions or from manual examples into the current1310session.1311</Item>1312</List>13131314Fixed bugs which could produce wrong results:13151316<List>13171318<Item>1319The function <Ref BookName="ref" Func="Decomposition"/>1320returned coefficient vectors also in certain1321situations where in fact no decomposition exists.1322This happened only if the matrix entered as the first argument1323contained irrational values1324and a row in the matrix entered as the second argument did not respect the1325algebraic conjugacy relations between the columns of the first argument.1326So there was no problem for the usual cases that the two matrices are1327integral or that they are lists of Brauer characters. [Reported by Jürgen Müller]1328</Item>13291330<Item>1331PC group homomorphisms can claim a wrong kernel after1332composition. [Reported by Serge Bouc]1333</Item>13341335<Item>1336The return value of <Ref BookName="ref" Func="OctaveAlgebra"/> had an inconsistent1337defining structure constants table for the case of coefficients fields1338not containing the integer zero. [Reported by Gábor Nagy]1339</Item>13401341<Item>1342The manual guarantees that a conjugator automorphism has a conjugating1343element in the group if possible. This was not guaranteed.1344</Item>13451346<Item>1347<Ref BookName="ref" Func="StabChain"/>1348for symmetric groups gave a wrong result if fixed points were1349prescribed for base.1350</Item>13511352<Item>1353Contrary to what is documented the function1354<C>POW_OBJ_INT</C> returned an immutable result for1355<C>POW_OBJ_INT(m,1)</C> for a mutable object1356<C>m</C>. This is triggered by the code1357<C>m^1</C>.1358</Item>13591360<Item>1361<Ref BookName="ref" Func="PseudoRandom"/> for a group1362had a problem if the group had lots of equal1363generators. The produced elements were extremely poorly distributed in1364that case. This is now fixed for the case that elements of the group1365can easily be sorted.1366</Item>13671368<Item>1369Fixed the bug that the type of a boolean list (see1370<Ref BookName="ref" Func="More about Boolean Lists"/>)1371was computed wrongly: The type previously had <C>IS_PLIST_REP</C>1372instead of <C>IS_BLIST_REP</C> in its filter list.1373</Item>13741375<Item>1376<Ref BookName="ref" Func="Orbits"/>1377did not respect a special <Ref BookName="ref" Func="PositionCanonical"/> method for right1378transversals. [Reported by Steve Costenoble]1379</Item>13801381<Item>1382Wrong results for <Ref BookName="ref" Func="GcdInt"/>1383for some arguments on 64 bit systems only.1384[Reported by Robert Morse]1385</Item>13861387<Item>1388When prescribing a subgroup to be included, the low index algorithm for fp1389groups sometimes returned subgroups which are in fact conjugate. (No1390subgroups are missing.) [Reported by Ignaz Soroko]1391</Item>1392</List>139313941395Fixed bugs which could lead to crashes:13961397<List>13981399<Item>1400The command line option <C>-x</C> allowed1401arguments > 256 which1402can then result in internal buffers overflowing. Now bigger numbers1403in the argument are equivalent to <C>-x 256</C>.1404<!--1405Can't really test it except by starting gap -x 300 and checking SizeScreen();1406With the fix it is [256,24], without it was [300,24]. -->1407[Reported by Michael Hartley]1408</Item>1409</List>141014111412Other fixed bugs:14131414<List>14151416<Item>1417Two special methods for the operation1418<Ref BookName="ref" Func="CompositionMapping2"/> were not correct,1419such that composing (and multiplying) certain group homomorphisms1420did not work. [Reported by Peter Mayr]1421</Item>14221423<Item>1424In the definition of1425<Ref BookName="ref" Func="FrobeniusCharacterValue"/>, it had been stated erroneously1426that the value must lie in the field of <M>p^n</M>-th roots of unity;1427the correct condition is that the value must lie in the field of1428<M>(p^n-1)</M>-th roots of unity. [Reported by Jack Schmidt]1429</Item>14301431<Item>1432The function <Ref BookName="ref" Func="DirectProduct"/> failed when one of the factors was known to be1433infinite.1434</Item>14351436<Item>1437For a linear action homomorphism <C>PreImageElm</C>1438was very slow because there was no good method to check for injectivity,1439which is needed for nearly all good methods for1440<C>PreImageElm</C>. This change adds such a new1441method for <C>IsInjective</C>. [Reported by Akos Seress]1442</Item>14431444<Item>1445Rare errors in the complement routine for permutation groups.1446</Item>14471448<Item>1449Blocks code now uses jellyfish-style random elements to avoid bad Schreier1450trees.1451</Item>14521453<Item>1454A method for <Ref BookName="ref" Func="IsPolycyclicGroup"/> has been added.1455Such a method was missing so far.1456</Item>14571458<Item>1459Corrected <Ref BookName="ref" Func="EpimorphismSchurCover"/> to handle1460the trivial group correctly.1461Added new methods that follow immediately from computing1462the Schur Cover of a group. The attribute1463<Ref BookName="ref" Func="Epicentre"/>, the operations1464<Ref BookName="ref" Func="NonabelianExteriorSquare"/> and1465<Ref BookName="ref" Func="EpimorphismNonabelianExteriorSquare"/>, and1466the property <Ref BookName="ref" Func="IsCentralFactor"/> are added to the1467library with documentation and references.1468</Item>14691470<Item>1471Display the correct expression in a call stack trace1472if an operation was called somewhere up due to the evaluation1473of a unary or binary operation.1474</Item>14751476<Item>1477Made <C>StripMemory</C> an operation rather than a1478global function. Added <C>ForgetMemory</C> operation.1479</Item>14801481<Item>1482Adjust things slightly to make later conversion to new vectors/matrices1483easier. Nothing of this should be visible.1484</Item>14851486<Item>1487Corrected some details in the documentation of the &GAP;1488language. [Reported by Alexander Konovalov]1489</Item>14901491<Item>1492Now <Ref BookName="ref" Func="PositionSorted"/> is much faster on long mutable1493plain lists. (The former operation is substituted by a function and a new1494operation <C>PositionSortedOp</C>.) [Reported by Silviu Radu]1495</Item>14961497<Item>1498Now it is possible to switch repeated warnings off when working with1499iterative polynomial rings.1500</Item>1501</List>15021503</Section>15041505<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->15061507<Section Label="fix449">1508<Heading>&GAP; 4.4 Update 9 (November 2006)</Heading>15091510Fixed bugs which could produce wrong results:15111512<List>15131514<Item>1515The methods of1516<Ref BookName="ref" Func="ReadByte"/>1517for reading from files or terminals returned wrong1518results for characters in the range <C>[128..255]</C>.1519[Reported by Yevgen Muntyan]1520</Item>1521</List>152215231524Other fixed bugs:15251526<List>15271528<Item>1529A method for the operation1530<Ref BookName="ref" Func="PseudoRandom"/> did not succeed.1531</Item>15321533<Item>1534A fix for <C>Orbits</C> with a set of points as a seed.1535</Item>15361537<Item>1538Added a generic method such that <Ref BookName="ref" Func="Positions"/>1539works with all types of lists.1540</Item>15411542<Item>1543Fixed a problem in choosing the prime in the Dixon-Schneider algorithm.1544[Reported by Toshio Sumi]1545</Item>1546</List>15471548New or improved functionality:15491550<List>15511552<Item>1553<C>ReducedOrdinary</C> was used in the manual, but was not documented,1554being a synonym for the documented <C>ReducedCharacters</C>. Changed1555manual examples to use the latter form. [Reported by Vahid Dabbaghian]1556</Item>1557</List>15581559</Section>15601561<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->15621563<Section Label="fix4410">1564<Heading>&GAP; 4.4 Update 10 (October 2007)</Heading>156515661567New or improved functionality:15681569<List>15701571<Item>1572Files in the <F>cnf</F> directory of the &GAP;1573distribution are now archived as binary files. Now &GAP;1574can be installed with UNIX or with WINDOWS style1575line breaks on any system and should work without problems.1576</Item>15771578<Item>1579Since large finite fields are available,1580some restrictions in the code for computing irreducible modules1581over finite fields are no longer necessary.1582(They had been introduced in order to give better error messages.)1583</Item>15841585<Item>1586Made PositionSublist faster in case the search string does not contain1587repetitive patterns.1588</Item>15891590<Item>1591The function <C>MakeImmutable</C> now returns1592its argument.1593</Item>15941595<Item>1596Dynamically loaded modules now work on Mac OS X. As a consequence,1597this allows to work with the Browse, EDIM and IO packages on Mac OS X.1598</Item>15991600<Item>1601Introduced <C>ViewObj</C> and1602<C>PrintObj</C> methods for algebraic number fields. Made1603them applicable to <C>AlgebraicExtension</C> by adding the1604property <C>IsNumberField</C> in the infinite field case.1605</Item>16061607<Item>1608The function1609<Ref BookName="ref" Func="CharacterTableRegular"/>1610is documented now.1611</Item>16121613<Item>1614The function1615<Ref BookName="ref" Func="ScalarProduct"/>1616now accepts also Brauer characters as arguments.1617</Item>16181619<Item>1620The function1621<Ref BookName="ref" Func="QuaternionAlgebra"/>1622now accepts also a list of field elements instead of a field.1623Also, now the comparison of return values (w.r.t. equality, containment)1624yields <C>true</C> if the parameters coincide and the1625ground fields fit.1626</Item>16271628<Item>1629The function1630<Ref BookName="ref" Func="RemoveCharacters"/> is now documented.1631</Item>16321633<Item>1634Lists in &GAP; sometimes occupy memory for1635possible additional entries. Now plain lists and strings read by &GAP;1636and the lists returned by <Ref BookName="ref" Func="List"/>1637only occupy the memory they really need. For more details see the1638documentation of the new function1639<Ref BookName="ref" Func="EmptyPlist"/>.1640</Item>16411642<Item>1643There are some new Conway polynomials in characteristic 2 and 3 provided by1644Kate Minola.1645</Item>16461647<Item>1648A new operation <C>MemoryUsage</C> determines the1649memory usage in bytes of an object and all its subobjects. It does1650not consider families and types but handles arbitrary self-referential1651structures of objects.1652</Item>1653</List>165416551656Fixed bugs which could produce wrong results:16571658<List>16591660<Item>1661When forming the semidirect product of a matrix group with a vector space1662over a non-prime field1663the embedding of the vector space gave a wrong result. [Reported by anvita21]1664</Item>16651666<Item>1667DefaultRing failed for constant polynomials over nonprime fields.1668[Reported by Stefan Kohl]1669</Item>16701671<Item>1672The method in ffeconway.gi that gets coefficients WRT to the1673canonical basis of the field from the representation is only correct1674if the basis is over the prime field. Added a TryNextMethod if this1675is not the case. [Reported by Alla Detinko]1676</Item>16771678<Item>16791680Creating a large (><M>2^{16}</M>) field over a non-prime subfield went1681completely wrong. [Reported by Jack Schmidt, from Alla Detinko]1682</Item>16831684<Item>1685A method for Coefficients for Conway polynomial FFEs1686didn't check that the basis provided was the canonical basis of1687the RIGHT field.1688[Reported by Bettina Eick]1689</Item>16901691<Item>1692An elementary abelian series was calculated wrongly. [Reported by N. Sieben]1693</Item>16941695<Item>1696Orbits on sets of transformations failed.1697</Item>16981699<Item>1700Wrong methods for <Ref BookName="ref" Func="GeneratorsOfRing"/>1701and <Ref BookName="ref" Func="GeneratorsOfRingWithOne"/>1702have been removed. These methods were based on the assumption1703that one can obtain a set of ring generators by taking the1704union of a known set of field generators, the set of the1705inverses of these field generators and {1}.1706</Item>17071708<Item>1709The name of a group of order 117600 and degree 50 was1710incorrect in the <Ref BookName="ref" Func="Primitive Permutation Groups"/>1711Primitive Permutation Groups library. In particular, a group1712was wrongly labelled as PGL(2, 49).1713</Item>17141715<Item>1716There was a possible error in <C>SubgroupsSolvableGroup</C> when computing1717subgroups within a subgroup.1718</Item>17191720<Item>1721An error in 2-Cohomology computation for pc groups was fixed.1722</Item>17231724<Item>1725<C>IsConjugate</C> used normality in a wrong supergroup1726</Item>1727</List>172817291730Fixed bugs which could lead to crashes:17311732<List>17331734<Item>1735&GAP; crashed when the1736<C>PATH</C> environment variable was not set. [Reported by Robert F. Morse]1737</Item>17381739<Item>1740&GAP; could crash when started with option <C>-x 1</C>.1741Now the number of columns is initialized with at1742least 2. [Reported by Robert F. Morse]1743</Item>17441745<Item>1746After loading a saved workspace &GAP;1747crashed when one tried to slice1748a compressed vector over a field with 2 < q <= 256 elements, which had1749already existed in the saved workspace. [Reported by Laurent Bartholdi]1750</Item>17511752<Item>1753<C>FFECONWAY.WriteOverSmallestCommonField</C> tripped up when the common1754field is smaller than the field over which some of the vector elements1755are written, because it did a test based on the degree of the element,1756not the field it is written over. [Reported by Thomas Breuer]1757</Item>17581759<Item>17601761Fixed the following error:1762When an FFE in the Conway polynomial representation actually lied in a1763field that is handled in the internal representation (eg <M>GF(3)</M>)1764and you tried to write it over a bigger field that is ALSO handled1765internally (eg <M>GF(9)</M>) you got an element written over the larger1766field, but in the Conway polynomial representation, which is forbidden.1767[Reported by Jack Schmidt]1768</Item>17691770<Item>1771Attempting to compress a vector containing elements of a small finite field1772represented as elements of a bigger (external) field caused a1773segfault. [Reported by Edmund Robertson]1774</Item>17751776<Item>1777&GAP; crashed when <C>BlistList</C> was called with a range and a list1778containing large integers or non-integers. [Reported by Laurent Bartholdi]1779</Item>17801781<Item>1782&GAP; no longer crashes when <C>OnTuples</C> is called with a list that1783contains holes. [Reported by Thomas Breuer]1784</Item>1785</List>178617871788Other fixed bugs:17891790<List>17911792<Item>1793<C>Socle</C> for the trivial group could produce an error message.1794</Item>17951796<Item>1797<Ref BookName="ref" Func="DirectoryContents"/> ran into an error for immutable strings1798without trailing slash as argument. [Reported by Thomas Breuer]1799</Item>18001801<Item>1802The functions <Ref BookName="ref" Func="IsInjective"/>1803and <Ref BookName="ref" Func="IsSingleValued"/>1804did not work for general linear mappings with trivial (pre)image.1805[Reported by Alper Odabas]1806</Item>18071808<Item>1809Creating an enumerator for a prime field with more than 65536 elements ran1810into an infinite recursion. [Reported by Akos Seress]1811</Item>18121813<Item>1814The performance of <C>List</C>, <C>Filtered</C>, <C>Number</C>,1815<C>ForAll</C> and <C>ForAny</C> if1816applied to non-internally represented lists was improved. Also1817the performance of iterators for lists was slightly improved.1818</Item>18191820<Item>1821Finite field elements now know that they can be sorted easily which1822improves performance in certain lookups.1823</Item>18241825<Item>1826A method for <Ref BookName="ref" Func="IsSubset"/>1827was missing for the case that exactly one argument1828is an inhomogeneous list. [Reported by Laurent Bartholdi]1829</Item>18301831<Item>1832Long integers in expressions are now printed (was not yet implemented).1833[Reported by Thomas Breuer]1834</Item>18351836<Item>1837Fixed kernel function for printing records.1838</Item>18391840<Item>1841New C library interfaces (e.g., to ncurses in the <Package>Browse</Package>1842package) need some more memory to be allocated with <C>malloc</C>. The1843default value of &GAP; <C>-a</C> option is now <C>2m></C>.1844</Item>18451846<Item>1847Avoid warnings about pointer types by newer gcc compilers.1848</Item>18491850<Item>1851<C>IsBound(l[pos])</C> was failing for a large integer <A>pos</A>1852only when coded (e.g. in a loop or function body).1853</Item>18541855<Item>1856<C>ZmodpZObj</C> is now a synonym for1857<C>ZmodnZObj</C> such that from now on such1858objects print in a way that can be read back into &GAP;.1859</Item>18601861<Item>1862The outdated note that binary streams are not yet implemented has been1863removed.1864</Item>1865</List>18661867</Section>18681869<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->18701871<Section Label="fix4411">1872<Heading>&GAP; 4.4 Update 11 (December 2008)</Heading>18731874Fixed bugs which could produce wrong results:18751876<List>18771878<Item>1879<Ref BookName="ref" Func="MemoryUsage"/> on objects with no subobjects left them in the cache and1880thus reported 0 in subsequent calls to MemoryUsage for the same1881object. [Reported by Stefan Kohl]1882</Item>18831884<Item>1885<Ref BookName="ref" Func="Irr"/> might be missing characters. [Reported by Angel del Rio]1886</Item>18871888<Item>1889Up to now, it was allowed to call the function1890<Ref BookName="ref" Func="FullMatrixAlgebraCentralizer"/>1891with a field and a list of matrices such that the entries of the matrices1892were not contained in the field;1893in this situation, the result did not fit to the documentation.1894Now the entries of the matrices are required to lie in the field,1895if not then an error is signaled.1896</Item>18971898<Item>1899For those finite fields that are regarded as field extensions over1900non-prime fields (one can construct such fields with1901<Ref BookName="ref" Func="AsField"/>),1902the function <Ref BookName="ref" Func="DefiningPolynomial"/>1903erroneously returned a polynomial w.r.t. the extension of1904the prime field. [Reported by Stefan Kohl]1905</Item>19061907<Item>1908Since the release of &GAP; 4.4.10,1909the return values of the function1910<Ref BookName="ref" Func="QuaternionAlgebra"/>1911were not consistent w.r.t. the attribute1912<Ref BookName="ref" Func="GeneratorsOfAlgebra"/>;1913the returned list could have length four or five.1914Now always the list of elements of the canonical basis is returned.1915</Item>19161917<Item>1918<Ref BookName="ref" Func="MonomialGrevlexOrdering"/>1919calculated a wrong ordering in certain cases. [Reported by Paul Smith]1920</Item>19211922<Item>1923The (&GAP; kernel) method for the operation1924<Ref BookName="ref" Func="IntersectSet"/> for ranges had two bugs,1925which could yield a result range with either too few or too many elements.1926As a consequence, for example the <Ref BookName="ref" Func="Intersection"/>1927results for ranges could be1928wrong. [Reported by Matthew Fayers]1929</Item>19301931<Item>1932Fixed a bug in the short-form display of elements of larger finite fields, a bug in some1933cross-field conversions and some inefficiencies and a missing method in the1934<Ref BookName="ref" Func="LogFFE"/> code. [Reported by Jia Huang]1935</Item>19361937<Item>1938In rare cases <Ref BookName="ref" Func="SmithNormalFormIntegerMatTransforms"/>1939returned a wrong normal form (the version without transforming matrices1940did not have this problem). This is fixed. [Reported by Alexander Hulpke]1941</Item>19421943<Item>1944The variant of the function <Ref BookName="ref" Func="StraightLineProgram"/>1945that takes a string1946as its first argument returned wrong results if the last character of this1947string was a closing bracket.1948</Item>19491950<Item>1951The code for central series in a permutation group used too tight a bound1952and thus falsely return a nilpotent permutation group as non-nilpotent.1953</Item>1954</List>195519561957Fixed bugs which could lead to crashes:19581959<List>19601961<Item>1962Under certain circumstances the kernel code for position in blists1963would access a memory location just after the end of the blist. If1964this location was not accessible, a crash could result. This was corrected1965and the code was cleaned up. [Reported by Alexander Hulpke]1966</Item>1967</List>196819691970Other fixed bugs:19711972<List>19731974<Item>1975The function <Ref BookName="ref" Func="IsomorphismTypeInfoFiniteSimpleGroup"/>1976can be called with a positive integer instead of a group,1977and then returns information about the simple group(s) of this order.1978(This feature is currently undocumented.)1979For the argument 1, however, it ran into an infinite loop.1980</Item>19811982<Item>1983A lookup in an empty dictionary entered a break loop.1984Now returns <C>fail</C>. [Reported by Laurent Bartholdi]1985</Item>19861987<Item>1988The c++ keyword <C>and</C> can no longer be used as a macro parameter1989in the kernel. [Reported by Paul Smith]1990</Item>19911992<Item>1993The operation <Ref BookName="ref" Func="KernelOfMultiplicativeGeneralMapping"/> has1994methods designed to handle maps between permutation groups in a two-step approach,1995but did not reliably trigger the second step. This has now been fixed, preventing1996a slow infinite loop repeating the first step. This was normally only seen1997as part of a larger calculation.1998</Item>19992000<Item>2001There were two methods for the operation2002<Ref BookName="ref" Func="Intersection2"/>2003which have implicitly assumed2004that finiteness of a collection can always be decided. Now, these methods2005check for <Ref BookName="ref" Func="IsFinite"/> and2006<Ref BookName="ref" Func="CanComputeSize"/> prior to calling2007<Ref BookName="ref" Func="IsFinite"/>.2008</Item>20092010<Item>2011Made error message in case of corrupted help book information2012(manual.six file) shorter and more informative. [Reported by Alexander Hulpke]2013</Item>20142015<Item>2016&GAP; cannot call methods with more than six2017arguments.2018Now the functions <Ref BookName="ref" Func="NewOperation"/>,2019<Ref BookName="ref" Func="DeclareOperation"/>, and2020<Ref BookName="ref" Func="InstallMethod"/>2021signal an error if one attempts to declare an operation or to install2022a method with more than six arguments.2023</Item>20242025<Item>2026Up to now, <Ref BookName="ref" Func="IsOne"/>2027had a special method for general2028mappings, which was much worse than the generic method;2029this special method has now been removed.2030</Item>20312032<Item>2033When printing elements of an algebraic extension parentheses around2034coefficients were missing. [Reported by Maxim Hendriks]2035</Item>2036</List>203720382039New or improved functionality:20402041<List>20422043<Item>2044Make dynamic loading of modules possible on CYGWIN using a DLL based2045approach. Also move to using autoconf version 2.61.2046</Item>20472048<Item>2049One can now call2050<Ref BookName="ref" Func="Basis"/>,2051<Ref BookName="ref" Func="Iterator"/>2052etc. with the return value of the function2053<Ref BookName="ref" Func="AlgebraicExtension"/>.2054</Item>20552056<Item>2057The function <Ref BookName="ref" Func="FrobeniusCharacterValue"/>2058returned <C>fail</C> for results that require2059a finite field with more than 65536 elements.2060Meanwhile &GAP; can handle larger finite fields,2061so this restriction was removed.2062(It is still possible that2063<Ref BookName="ref" Func="FrobeniusCharacterValue"/> returns <C>fail</C>.)2064</Item>20652066<Item>2067Methods for testing membership in general linear groups and special linear2068groups over the integers have been added.2069</Item>20702071<Item>2072Methods for <Ref BookName="ref" Func="String"/> and2073<C>ViewString</C> for full row modules have2074been added. Further, a default method for2075<Ref BookName="ref" Func="IsRowModule"/>2076has been2077added, which returns2078<C>false</C> for objects2079which are not free left modules.2080</Item>20812082<Item>2083A <C>ViewString</C> method for objects with name2084has been added.2085</Item>20862087<Item>2088The method for <Ref BookName="ref" Func="View"/>2089for polynomial rings has been improved, and methods for2090<Ref BookName="ref" Func="String"/> and2091<C>ViewString</C> for polynomial rings2092have been added.2093</Item>20942095<Item>2096<Ref BookName="ref" Func="Binomial"/> now works with huge <C>n</C>.2097</Item>20982099<Item>2100The function <Ref BookName="ref" Func="InducedClassFunctionsByFusionMap"/>2101is now documented.2102</Item>21032104<Item>2105The return values of the function2106<Ref BookName="ref" Func="QuaternionAlgebra"/>2107now store that they are division rings (if optional parameters are given2108then of course ths depends on these parameters).2109</Item>2110</List>21112112</Section>21132114<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->21152116<Section Label="fix4412">2117<Heading>&GAP; 4.4 Update 12 (December 2008)</Heading>21182119Fixed bugs which could lead to crashes:21202121<List>2122<Item>2123A bug whereby leaving an incomplete statement on a2124line (for instance typing while and then return)2125when prompt colouring was in use could lead to &GAP;2126crashing.2127</Item>2128</List>21292130Other fixed bugs:2131<List>2132<Item>2133A bug which made the command-line editor unusable2134in a 64-bit version of &GAP; on Mac OS X.2135</Item>2136</List>21372138</Section>21392140</Chapter>21412142<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->2143<!-- %% -->2144<!-- %E -->214521462147