This file is indexed.

/usr/share/gap/doc/changes/chap4.html is in gap-doc 4r6p5-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

   1
   2
   3
   4
   5
   6
   7
   8
   9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  29
  30
  31
  32
  33
  34
  35
  36
  37
  38
  39
  40
  41
  42
  43
  44
  45
  46
  47
  48
  49
  50
  51
  52
  53
  54
  55
  56
  57
  58
  59
  60
  61
  62
  63
  64
  65
  66
  67
  68
  69
  70
  71
  72
  73
  74
  75
  76
  77
  78
  79
  80
  81
  82
  83
  84
  85
  86
  87
  88
  89
  90
  91
  92
  93
  94
  95
  96
  97
  98
  99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 294
 295
 296
 297
 298
 299
 300
 301
 302
 303
 304
 305
 306
 307
 308
 309
 310
 311
 312
 313
 314
 315
 316
 317
 318
 319
 320
 321
 322
 323
 324
 325
 326
 327
 328
 329
 330
 331
 332
 333
 334
 335
 336
 337
 338
 339
 340
 341
 342
 343
 344
 345
 346
 347
 348
 349
 350
 351
 352
 353
 354
 355
 356
 357
 358
 359
 360
 361
 362
 363
 364
 365
 366
 367
 368
 369
 370
 371
 372
 373
 374
 375
 376
 377
 378
 379
 380
 381
 382
 383
 384
 385
 386
 387
 388
 389
 390
 391
 392
 393
 394
 395
 396
 397
 398
 399
 400
 401
 402
 403
 404
 405
 406
 407
 408
 409
 410
 411
 412
 413
 414
 415
 416
 417
 418
 419
 420
 421
 422
 423
 424
 425
 426
 427
 428
 429
 430
 431
 432
 433
 434
 435
 436
 437
 438
 439
 440
 441
 442
 443
 444
 445
 446
 447
 448
 449
 450
 451
 452
 453
 454
 455
 456
 457
 458
 459
 460
 461
 462
 463
 464
 465
 466
 467
 468
 469
 470
 471
 472
 473
 474
 475
 476
 477
 478
 479
 480
 481
 482
 483
 484
 485
 486
 487
 488
 489
 490
 491
 492
 493
 494
 495
 496
 497
 498
 499
 500
 501
 502
 503
 504
 505
 506
 507
 508
 509
 510
 511
 512
 513
 514
 515
 516
 517
 518
 519
 520
 521
 522
 523
 524
 525
 526
 527
 528
 529
 530
 531
 532
 533
 534
 535
 536
 537
 538
 539
 540
 541
 542
 543
 544
 545
 546
 547
 548
 549
 550
 551
 552
 553
 554
 555
 556
 557
 558
 559
 560
 561
 562
 563
 564
 565
 566
 567
 568
 569
 570
 571
 572
 573
 574
 575
 576
 577
 578
 579
 580
 581
 582
 583
 584
 585
 586
 587
 588
 589
 590
 591
 592
 593
 594
 595
 596
 597
 598
 599
 600
 601
 602
 603
 604
 605
 606
 607
 608
 609
 610
 611
 612
 613
 614
 615
 616
 617
 618
 619
 620
 621
 622
 623
 624
 625
 626
 627
 628
 629
 630
 631
 632
 633
 634
 635
 636
 637
 638
 639
 640
 641
 642
 643
 644
 645
 646
 647
 648
 649
 650
 651
 652
 653
 654
 655
 656
 657
 658
 659
 660
 661
 662
 663
 664
 665
 666
 667
 668
 669
 670
 671
 672
 673
 674
 675
 676
 677
 678
 679
 680
 681
 682
 683
 684
 685
 686
 687
 688
 689
 690
 691
 692
 693
 694
 695
 696
 697
 698
 699
 700
 701
 702
 703
 704
 705
 706
 707
 708
 709
 710
 711
 712
 713
 714
 715
 716
 717
 718
 719
 720
 721
 722
 723
 724
 725
 726
 727
 728
 729
 730
 731
 732
 733
 734
 735
 736
 737
 738
 739
 740
 741
 742
 743
 744
 745
 746
 747
 748
 749
 750
 751
 752
 753
 754
 755
 756
 757
 758
 759
 760
 761
 762
 763
 764
 765
 766
 767
 768
 769
 770
 771
 772
 773
 774
 775
 776
 777
 778
 779
 780
 781
 782
 783
 784
 785
 786
 787
 788
 789
 790
 791
 792
 793
 794
 795
 796
 797
 798
 799
 800
 801
 802
 803
 804
 805
 806
 807
 808
 809
 810
 811
 812
 813
 814
 815
 816
 817
 818
 819
 820
 821
 822
 823
 824
 825
 826
 827
 828
 829
 830
 831
 832
 833
 834
 835
 836
 837
 838
 839
 840
 841
 842
 843
 844
 845
 846
 847
 848
 849
 850
 851
 852
 853
 854
 855
 856
 857
 858
 859
 860
 861
 862
 863
 864
 865
 866
 867
 868
 869
 870
 871
 872
 873
 874
 875
 876
 877
 878
 879
 880
 881
 882
 883
 884
 885
 886
 887
 888
 889
 890
 891
 892
 893
 894
 895
 896
 897
 898
 899
 900
 901
 902
 903
 904
 905
 906
 907
 908
 909
 910
 911
 912
 913
 914
 915
 916
 917
 918
 919
 920
 921
 922
 923
 924
 925
 926
 927
 928
 929
 930
 931
 932
 933
 934
 935
 936
 937
 938
 939
 940
 941
 942
 943
 944
 945
 946
 947
 948
 949
 950
 951
 952
 953
 954
 955
 956
 957
 958
 959
 960
 961
 962
 963
 964
 965
 966
 967
 968
 969
 970
 971
 972
 973
 974
 975
 976
 977
 978
 979
 980
 981
 982
 983
 984
 985
 986
 987
 988
 989
 990
 991
 992
 993
 994
 995
 996
 997
 998
 999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>GAP (changes) - Chapter 4: Overview of updates for GAP 4.4</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="generator" content="GAPDoc2HTML" />
<link rel="stylesheet" type="text/css" href="manual.css" />
<script src="manual.js" type="text/javascript"></script>
<script type="text/javascript">overwriteStyle();</script>
</head>
<body class="chap4"  onload="jscontent()">


<div class="chlinktop"><span class="chlink1">Goto Chapter: </span><a href="chap0.html">Top</a>  <a href="chap1.html">1</a>  <a href="chap2.html">2</a>  <a href="chap3.html">3</a>  <a href="chap4.html">4</a>  <a href="chap5.html">5</a>  <a href="chapInd.html">Ind</a>  </div>

<div class="chlinkprevnexttop">&nbsp;<a href="chap0.html">[Top of Book]</a>&nbsp;  <a href="chap0.html#contents">[Contents]</a>&nbsp;  &nbsp;<a href="chap3.html">[Previous Chapter]</a>&nbsp;  &nbsp;<a href="chap5.html">[Next Chapter]</a>&nbsp;  </div>

<p id="mathjaxlink" class="pcenter"><a href="chap4_mj.html">[MathJax on]</a></p>
<p><a id="X78AE465E7AA00F25" name="X78AE465E7AA00F25"></a></p>
<div class="ChapSects"><a href="chap4.html#X78AE465E7AA00F25">4 <span class="Heading">Overview of updates for <strong class="pkg">GAP</strong> 4.4</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4.html#X82AB84287ED2B8FF">4.1 <span class="Heading"><strong class="pkg">GAP</strong> 4.4 Bugfix 2 (April 2004)</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4.html#X8208E7F578754467">4.2 <span class="Heading"><strong class="pkg">GAP</strong> 4.4 Bugfix 3 (May 2004)</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4.html#X87A965F97E6E6BD0">4.3 <span class="Heading"><strong class="pkg">GAP</strong> 4.4 Bugfix 4 (December 2004)</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4.html#X80221EDA877CC106">4.4 <span class="Heading"><strong class="pkg">GAP</strong> 4.4 Update 5 (May 2005)</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4.html#X80F9D3E07DD59BD9">4.5 <span class="Heading"><strong class="pkg">GAP</strong> 4.4 Update 6 (September 2005)</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4.html#X7B8B22C77DC970F8">4.6 <span class="Heading"><strong class="pkg">GAP</strong> 4.4 Update 7 (March 2006)</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4.html#X7B61699179F631E0">4.7 <span class="Heading"><strong class="pkg">GAP</strong> 4.4 Update 8 (September 2006)</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4.html#X81B223647C9BD9B9">4.8 <span class="Heading"><strong class="pkg">GAP</strong> 4.4 Update 9 (November 2006)</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4.html#X7BB4EC1F7B130FD5">4.9 <span class="Heading"><strong class="pkg">GAP</strong> 4.4 Update 10 (October 2007)</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4.html#X7E4C6820809F2384">4.10 <span class="Heading"><strong class="pkg">GAP</strong> 4.4 Update 11 (December 2008)</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4.html#X7F5BBE877AAA4BEE">4.11 <span class="Heading"><strong class="pkg">GAP</strong> 4.4 Update 12 (December 2008)</span></a>
</span>
</div>
</div>

<h3>4 <span class="Heading">Overview of updates for <strong class="pkg">GAP</strong> 4.4</span></h3>

<p>This chapter lists changes in the main system (excluding packages) that have been corrected or added in bugfixes and updates for <strong class="pkg">GAP</strong> 4.4.</p>

<p><a id="X82AB84287ED2B8FF" name="X82AB84287ED2B8FF"></a></p>

<h4>4.1 <span class="Heading"><strong class="pkg">GAP</strong> 4.4 Bugfix 2 (April 2004)</span></h4>

<p>Fixed bugs which could lead to crashes:</p>


<ul>
<li><p>A crash when incorrect types of arguments are passed to <code class="code">FileString</code>.</p>

</li>
</ul>
<p>Other fixed bugs:</p>


<ul>
<li><p>A bug in <code class="code">DerivedSubgroupTom</code> and <code class="code">DerivedSubgroupsTom</code>.</p>

</li>
<li><p>An error in the inversion of certain <code class="code">ZmodnZObj</code> elements.</p>

</li>
<li><p>A wrong display string of the numerator in rational functions returned by <code class="code">MolienSeriesWithGivenDenominator</code> (in the case that the constant term of this numerator is zero).</p>

</li>
</ul>
<p><a id="X8208E7F578754467" name="X8208E7F578754467"></a></p>

<h4>4.2 <span class="Heading"><strong class="pkg">GAP</strong> 4.4 Bugfix 3 (May 2004)</span></h4>

<p>Fixed bugs which could produce wrong results:</p>


<ul>
<li><p>Incorrect setting of system variables (e.g., home directory and command line options) after loading a workspace.</p>

</li>
<li><p>Wrong handling of integer literals within functions or loops on 64-bit architectures (only integers in the range from <span class="SimpleMath">2^28</span> to <span class="SimpleMath">2^60</span>).</p>

</li>
</ul>
<p>Fixed bugs which could lead to crashes:</p>


<ul>
<li><p>A problem in the installation of the multiplication routine for matrices that claimed to be applicable for more general list multiplications.</p>

</li>
<li><p>A problem when computing weight distributions of codes with weights &gt; <span class="SimpleMath">2^28</span>.</p>

</li>
</ul>
<p>Other fixed bugs:</p>


<ul>
<li><p>Problems with the online help with some manual sections.</p>

</li>
<li><p>Problems of the online help on Windows systems.</p>

</li>
<li><p>A problem in <code class="code">GQuotients</code> when mapping from a finitely presented group which has a free direct factor.</p>

</li>
<li><p>A bug in the function <code class="code">DisplayRevision</code>.</p>

</li>
<li><p>The trivial finitely presented group on no generators was not recognized as finitely presented.</p>

</li>
<li><p>A problem with <code class="code">Process</code>.</p>

</li>
<li><p>A problem when intersecting subgroups of finitely presented groups that are represented in "quotient representation" with the quotient not apermutation group.</p>

</li>
<li><p>A bug in the generic <code class="code">Intersection2</code> method for vector spaces, in the case that both spaces are trivial.</p>

</li>
<li><p>Enable ReeGroup(q) for <span class="SimpleMath">q = 3</span>.</p>

</li>
</ul>
<p><a id="X87A965F97E6E6BD0" name="X87A965F97E6E6BD0"></a></p>

<h4>4.3 <span class="Heading"><strong class="pkg">GAP</strong> 4.4 Bugfix 4 (December 2004)</span></h4>

<p>Fixed bugs which could produce wrong results:</p>


<ul>
<li><p>An error in the <code class="code">Order</code> method for matrices over cyclotomic fields which caused this method to return <code class="code">infinity</code> for matrices of finite order in certain cases.</p>

</li>
<li><p>Representations computed by <code class="code">IrreducibleRepresentations</code> in characteristic 0 erraneously claimed to be faithful.</p>

</li>
<li><p>A primitive representation of degree 574 for PSL(2,41) has been missing in the classification on which the <strong class="pkg">GAP</strong> library was built.</p>

</li>
<li><p>A bug in <code class="code">Append</code> for compressed vectors over GF(2): if the length of the result is 1 mod 32 (or 64) the last entry was forgotten to copy.</p>

</li>
<li><p>A problem with the Ree group Ree(3) of size 1512 claiming to be simple.</p>

</li>
<li><p>An error in the membership test for groups GU(n,q) and SU(n,q) for non-prime <span class="SimpleMath">q</span>.</p>

</li>
<li><p>An error in the kernel code for ranges which caused e.g. <code class="code">-1 in [1..2]</code> to return <code class="keyw">true</code>.</p>

</li>
<li><p>An error recording boolean lists in saved workspaces.</p>

</li>
<li><p>A problem in the selection function for primitive and transitive groups if no degree is given.</p>

</li>
<li><p><code class="code">ReducedConfluentRewritingSystem</code> returning a cached result that might not conform to the ordering specified.</p>

</li>
</ul>
<p>Other fixed bugs:</p>


<ul>
<li><p>A problem with the function <code class="code">SuggestUpdates</code> to check for the most recent version of packages available.</p>

</li>
<li><p>A problem that caused <code class="code">MatrixOfAction</code> to produce an error when the algebra module was constructed as a direct sum.</p>

</li>
<li><p>Problems with computing <span class="SimpleMath">n</span>-th power maps of character tables, where n is negative and the table does not yet store its irreducible characters.</p>

</li>
<li><p>Element conjugacy in large-base permutation groups sometimes was unnecessarily inefficient.</p>

</li>
<li><p>A missing method for getting the letter representation of an associate word in straight line program representation.</p>

</li>
<li><p>A problem with the construction of vector space bases where the given list of basis vectors is itself an object that was returned by <code class="code">Basis</code>.</p>

</li>
<li><p>A problem of <code class="code">AbelianInvariantsMultiplier</code> insisting that a result of <code class="code">IsomorphismFpGroup</code> is known to be surjective.</p>

</li>
<li><p>An error in the routine for <code class="code">Resultant</code> if one of the polynomials has degree zero.</p>

</li>
</ul>
<p><a id="X80221EDA877CC106" name="X80221EDA877CC106"></a></p>

<h4>4.4 <span class="Heading"><strong class="pkg">GAP</strong> 4.4 Update 5 (May 2005)</span></h4>

<p>Fixed bugs which could produce wrong results:</p>


<ul>
<li><p><code class="func">GroupWithGenerators</code> (<a href="../../doc/ref/chap39.html#X8589EF9C7B658B94"><span class="RefLink">Reference: GroupWithGenerators</span></a>) returned a meaningless group object instead of signaling an error when it was called with an empty list of generators.</p>

</li>
<li><p>When computing preimages under an embedding into a direct product of permutation groups, if the element was not in the image of the embedding then a permutation had been returned instead of <code class="code">fail</code>.</p>

</li>
<li><p>Two problems with <code class="func">PowerMod</code> (<a href="../../doc/ref/chap56.html#X805A35D684B7A952"><span class="RefLink">Reference: PowerMod</span></a>) for polynomials. [Reported by Jack Schmidt]</p>

</li>
<li><p>Some methods for computing the sum of ideals returned the first summand instead of the sum. [Reported by Alexander Konovalov]</p>

</li>
<li><p>Wrong result in <code class="func">Intersection</code> (<a href="../../doc/ref/chap30.html#X851069107CACF98E"><span class="RefLink">Reference: Intersection</span></a>) for pc groups.</p>

</li>
<li><p>The function <code class="func">CompareVersionNumbers</code> (<a href="../../doc/ref/chap76.html#X787DFEB383545A49"><span class="RefLink">Reference: CompareVersionNumbers</span></a>) erroneously ignored leading non-digit characters.</p>

<p>A new feature in the corrected version is an optional third argument <code class="code">"equal"</code>, which causes the function to return <code class="code">true</code> only if the first two arguments describe equal version numbers; documentation is available in the ext-manual. This new feature is used in <code class="func">LoadPackage</code> (<a href="../../doc/ref/chap76.html#X79B373A77B29D1F5"><span class="RefLink">Reference: LoadPackage</span></a>), now one can require a specific version of a package.</p>

<p>The library code still contained parts of the handling of completion files for packages, which does not work and therefore had already been removed from the documentation. This code has now been removed.</p>

<p>Now a new component <code class="code">PreloadFile</code> is supported in <code class="func">The PackageInfo.g File</code> (<a href="../../doc/ref/chap76.html#X85C8DE357EE424D8"><span class="RefLink">Reference: The PackageInfo.g File</span></a>) files; if it is bound then the file in question is read immediately before the package or its documentation is loaded.</p>

</li>
<li><p>The result of <code class="func">String</code> (<a href="../../doc/ref/chap27.html#X81FB5BE27903EC32"><span class="RefLink">Reference: String</span></a>) for strings not in <code class="func">IsStringRep</code> (<a href="../../doc/ref/chap27.html#X7A17EDF8785C9F58"><span class="RefLink">Reference: IsStringRep</span></a>) that occur as list entries or record components was erroneously missing the double quotes around the strings.</p>

</li>
<li><p>A bug which caused <code class="func">InducedPcgs</code> (<a href="../../doc/ref/chap45.html#X7F0EB20080590B23"><span class="RefLink">Reference: InducedPcgs</span></a>) to return a pcgs which is not induced wrt. the parent pcgs of <code class="code">pcgs</code>. This may cause unpredictable behaviour, e. g. when <code class="code">SiftedPcElement</code> is used subsequently. [Reported by Alexander Konovalov]</p>

</li>
<li><p>Fixed a bug in <code class="code">SmallGroupsInformation(512)</code>.</p>

</li>
<li><p><code class="func">PowerModCoeffs</code> (<a href="../../doc/ref/chap23.html#X825F8F357FB1BF56"><span class="RefLink">Reference: PowerModCoeffs</span></a>) with exponent 1 for compressed vectors did not reduce (a copy of) the input vector before returning it. [Reported by Frank Lübeck]</p>

</li>
<li><p>Sorting a mutable non-plain list (e.g., a compressed matrix over fields of order &lt; 257) could potentially destroy that object. [Reported by Alexander Hulpke]</p>

</li>
<li><p>Under rare circumstances computing the closure of a permutation group by a normalizing element could produce a corrupted stabilizer chain. (The underlying algorithm uses random elements, probability of failure was below 1 percent). [Reported by Thomas Breuer]</p>

</li>
</ul>
<p>Fixed bugs which could lead to crashes:</p>


<ul>
<li><p>Some code and comments in the <strong class="pkg">GAP</strong> kernel assumed that there is no garbage collection during the core printing function <code class="code">Pr</code>, which is not correct. This could cause <strong class="pkg">GAP</strong> in rare cases to crash during printing permutations, cyclotomics or strings with zero bytes. [Reported by Warwick Harvey]</p>

</li>
</ul>
<p>Other fixed bugs:</p>


<ul>
<li><p>A rare problem with the choice of prime in the Dixon-Schneider algorithm for computing the character table of a group. [Reported by Jack Schmidt]</p>

</li>
<li><p><code class="func">DirectProduct</code> (<a href="../../doc/ref/chap49.html#X861BA02C7902A4F4"><span class="RefLink">Reference: DirectProduct</span></a>) for trivial permutation groups returned a strange object.</p>

</li>
<li><p>A problem with <code class="func">PolynomialReduction</code> (<a href="../../doc/ref/chap66.html#X7C99593584D478D7"><span class="RefLink">Reference: PolynomialReduction</span></a>) running into an infinite loop.</p>

</li>
<li><p>Adding linear mappings with different image domains was not possible. [Reported by Pasha Zusmanovich]</p>

</li>
<li><p>Multiplying group ring elements with rationals was not possible. [Reported by Laurent Bartholdi]</p>

</li>
<li><p><code class="func">Random</code> (<a href="../../doc/ref/chap14.html#X85361FAE8088C006"><span class="RefLink">Reference: Random Sources</span></a>) now works for finite fields of size larger than <span class="SimpleMath">2^28</span>. [Reported by Jack Schmidt]</p>

</li>
<li><p>Univariate polynomial creators did modify the coefficient list passed. [Reported by Jürgen Müller]</p>

</li>
<li><p>Fixed <code class="func">IntHexString</code> (<a href="../../doc/ref/chap27.html#X7B6D118184F692A0"><span class="RefLink">Reference: IntHexString</span></a>) to accept arguments not in <code class="code">IsStringRep</code>; the argument is now first converted if necessary. [Reported by Kenn Heinrich]</p>

</li>
<li><p>The library code for stabilizer chains contained quite some explicit references to the identity <code class="code">()</code>. This is unfortunate if one works with permutation groups, the elements of which are not plain permutations but objects which carry additional information like a memory, how they were obtained from the group generators. For such cases it is much cleaner to use the <code class="code">One(...)</code> operation instead of <code class="code">()</code>, such that the library code can be used for a richer class of group objects. This fix contains only rather trivial changes <code class="code">()</code> to <code class="code">One(...)</code> which were carefully checked by me. The tests for permutation groups all run without a problem. However, it is relatively difficult to provide test code for this particular change, since the "improvement" only shows up when one generates new group objects. This is for example done in the package <strong class="pkg">recog</strong> which is in preparation. [Reported by Akos Seress and Max Neunhöffer]</p>

</li>
<li><p>Using <code class="code">{}</code> to select elements of a known inhomogenous dense list produced a list that might falsely claim to be known inhomogenous, which could lead to a segfault if the list typing code tried to mark it homogenous, since the code intended to catch such errors also had a bug. [Reported by Steve Linton]</p>

</li>
<li><p>The record for the generic iterator construction of subspaces domains of non-row spaces was not complete.</p>

</li>
<li><p>When a workspace has been created without packages(<code class="code">-A</code> option) and is loaded into a <strong class="pkg">GAP</strong> session without packages (same option) then an error message is printed.</p>

</li>
<li><p>So far the functions <code class="func">IsPrimeInt</code> (<a href="../../doc/ref/chap14.html#X78FDA4437EDCA70C"><span class="RefLink">Reference: IsPrimeInt</span></a>) and <code class="func">IsProbablyPrimeInt</code> (<a href="../../doc/ref/chap14.html#X78FDA4437EDCA70C"><span class="RefLink">Reference: IsProbablyPrimeInt</span></a>) are essentially the same except that <code class="code">IsPrimeInt</code> issues an additional warning when (non-proven) probable primes are considered as primes.</p>

<p>These warnings now print the probable primes in question as well; if a probable prime is used several times then the warning is also printed several times; there is no longer a warning for some known large primes; the warnings can be switched off. See <code class="func">IsPrimeInt</code> (<a href="../../doc/ref/chap14.html#X78FDA4437EDCA70C"><span class="RefLink">Reference: IsPrimeInt</span></a>) for more details.</p>

<p>If we get a reasonable primality test in <strong class="pkg">GAP</strong> we will change the definition of <code class="code">IsPrimeInt</code> to do a proper test.</p>

</li>
<li><p>Corrected some names of primitive groups in degree 26. [Reported by Robert F. Bailey]</p>

</li>
</ul>
<p>New or improved functionality:</p>


<ul>
<li><p>Several changes for <code class="func">ConwayPolynomial</code> (<a href="../../doc/ref/chap59.html#X7C2425A786F09054"><span class="RefLink">Reference: ConwayPolynomial</span></a>):</p>


<ul>
<li><p>many new pre-computed polynomials</p>

</li>
<li><p>put data in several separate files (only read when needed)</p>

</li>
<li><p>added info on origins of pre-computed polynomials</p>

</li>
<li><p>improved performance of <code class="func">ConwayPolynomial</code> (<a href="../../doc/ref/chap59.html#X7C2425A786F09054"><span class="RefLink">Reference: ConwayPolynomial</span></a>) and <code class="func">IsPrimitivePolynomial</code> (<a href="../../doc/ref/chap66.html#X834B54947FAADEA4"><span class="RefLink">Reference: IsPrimitivePolynomial</span></a>) for p &lt; 256</p>

</li>
<li><p>improved documentation of <code class="code">ConwayPolynomial</code></p>

</li>
<li><p>added and documented new functions <code class="func">IsCheapConwayPolynomial</code> (<a href="../../doc/ref/chap59.html#X78A7C1247E129AD9"><span class="RefLink">Reference: IsCheapConwayPolynomial</span></a>) and <code class="func">RandomPrimitivePolynomial</code> (<a href="../../doc/ref/chap59.html#X7ECC593583E68A6C"><span class="RefLink">Reference: RandomPrimitivePolynomial</span></a>)</p>

</li>
</ul>
</li>
<li><p>Added method for <code class="func">NormalBase</code> (<a href="../../doc/ref/chap58.html#X8236A8B47E6AAD93"><span class="RefLink">Reference: NormalBase</span></a>) for extensions of finite fields.</p>

</li>
<li><p>Added more help viewers for the HTML version of the documentation (firefox, mozilla, konqueror, w3m, safari).</p>

</li>
<li><p>New function <code class="func">ColorPrompt</code> (<a href="../../doc/ref/chap3.html#X84F3481C8466C7FC"><span class="RefLink">Reference: ColorPrompt</span></a>). (Users of former versions of a <code class="code">colorprompt.g</code> file: Now you just need a <code class="code">ColorPrompt(true);</code> in your <code class="code">.gaprc</code> file.)</p>

</li>
<li><p>Specialised kernel functions to support <strong class="pkg">GUAVA</strong> 2.0. <strong class="pkg">GAP</strong> will only load <strong class="pkg">GUAVA</strong> in version at least 2.002 after this update.</p>

</li>
<li><p>Now there is a kernel function <code class="code">CYC_LIST</code> for converting a list of rationals into a cyclotomic, without arithmetics overhead.</p>

</li>
<li><p>New functions <code class="func">ContinuedFractionExpansionOfRoot</code> (<a href="../../doc/ref/chap15.html#X874C161B83416092"><span class="RefLink">Reference: ContinuedFractionExpansionOfRoot</span></a>) and <code class="func">ContinuedFractionApproximationOfRoot</code> (<a href="../../doc/ref/chap15.html#X8059667580A039A6"><span class="RefLink">Reference: ContinuedFractionApproximationOfRoot</span></a>) for computing continued fraction expansions and continued fraction approximations of real roots of polynomials with integer coefficients.</p>

</li>
<li><p>A method for computing structure descriptions for finite groups, available via <code class="func">StructureDescription</code> (<a href="../../doc/ref/chap39.html#X8199B74B84446971"><span class="RefLink">Reference: StructureDescription</span></a>).</p>

</li>
<li><p>This change contains the new, extended version of the <strong class="pkg">SmallGroups</strong> package. For example, the groups of orders <span class="SimpleMath">p^4</span>, <span class="SimpleMath">p^5</span>, <span class="SimpleMath">p^6</span> for arbitrary primes <span class="SimpleMath">p</span>, the groups of square-free order and the groups of cube-free order at most 50000 are included now. For more detailed information see the announcement of the extended package.</p>

</li>
<li><p>The function <code class="code">ShowPackageVariables</code> gives an overview of the global variables in a package. It is thought as a utility for package authors and referees. (It uses the new function <code class="code">IsDocumentedVariable</code>.)</p>

</li>
<li><p>The mechanisms for testing <strong class="pkg">GAP</strong> has been improved:</p>


<ul>
<li><p>The information whether a test file belongs to the list in <code class="code">tst/testall.g</code> is now stored in the test file itself.</p>

</li>
<li><p>Some targets for testing have been added to the <code class="code">Makefile</code> in the <strong class="pkg">GAP</strong> root directory, the output of the tests goes to the new directory <code class="code">dev/log</code>.</p>

</li>
<li><p>Utility functions for testing are in the new file <code class="code">tst/testutil.g</code>. Now the loops over (some or all) files <code class="code">tst/*.tst</code> can be performed with a function call, and the file <code class="code">tst/testall.g</code> can be created automatically; the file <code class="code">tst/testfull.g</code> is now obsolete. The remormalization of the scaling factors can now be done using a <strong class="pkg">GAP</strong> function, so the file <code class="code">tst/renorm.g</code> is obsolete.</p>

</li>
<li><p>Now the functions <code class="code">START_TEST</code> and <code class="code">STOP_TEST</code> use components in <code class="code">GAPInfo</code> instead of own globals, and the random number generator is always reset in <code class="code">START_TEST</code>.</p>

</li>
<li><p><code class="code">GAPInfo.SystemInformation</code> now takes two arguments, now one can use it easier in the tests.</p>

</li>
</ul>
</li>
<li><p><code class="func">MultiplicationTable</code> (<a href="../../doc/ref/chap35.html#X849BDCC27C4C3191"><span class="RefLink">Reference: MultiplicationTable</span></a>) is now an attribute, and the construction of a magma, monoid, etc. from multiplication tables has been unified.</p>

</li>
</ul>
<p><a id="X80F9D3E07DD59BD9" name="X80F9D3E07DD59BD9"></a></p>

<h4>4.5 <span class="Heading"><strong class="pkg">GAP</strong> 4.4 Update 6 (September 2005)</span></h4>

<p>Attribution of bugfixes and improved functionalities to those who reported or provided these, respectively, is still fairly incomplete and inconsistent with this update. We apologise for this fact and will discuss until the next update how to improve this feature.</p>

<p>Fixed bugs which could produce wrong results:</p>


<ul>
<li><p>The perfect group library does not contain any information on the trivial group, so the trivial group must be handled specially. <code class="func">PerfectGroup</code> (<a href="../../doc/ref/chap50.html#X7906BBA7818E9415"><span class="RefLink">Reference: PerfectGroup</span></a>) and <code class="code">NrPerfectLibraryGroups</code> were changed to indicate that the trivial group is not part of the library.</p>

</li>
<li><p>The descriptions of <code class="code">PerfectGroup(734832,3)</code> and <code class="code">PerfectGroup(864000,3)</code> were corrected in the <code class="func">Finite Perfect Groups</code> (<a href="../../doc/ref/chap50.html#X7A884ECF813C2026"><span class="RefLink">Reference: Finite Perfect Groups</span></a>) library of perfect groups.</p>

</li>
<li><p>The functions <code class="func">EpimorphismSchurCover</code> (<a href="../../doc/ref/chap39.html#X7F619DDA7DD6C43B"><span class="RefLink">Reference: EpimorphismSchurCover</span></a>) and <code class="func">AbelianInvariantsMultiplier</code> (<a href="../../doc/ref/chap39.html#X792BC39D7CEB1D27"><span class="RefLink">Reference: AbelianInvariantsMultiplier</span></a>) may have produced wrong results without warning [Reported by Colin Ingalls]. These problems are fixed. However, the methods currently used can be expected to be slower than the ones used before; we hope to fix this in the next version of <strong class="pkg">GAP</strong>.</p>

</li>
<li><p><code class="func">DerivedSubgroup</code> (<a href="../../doc/ref/chap39.html#X7CC17CF179ED7EF2"><span class="RefLink">Reference: DerivedSubgroup</span></a>) and <code class="func">CommutatorSubgroup</code> (<a href="../../doc/ref/chap39.html#X7A9A3D5578CE33A0"><span class="RefLink">Reference: CommutatorSubgroup</span></a>) for permutation groups sometimes returned groups with an incorrect stabilizer chain due to a missing verification step after a random Schreier Sims.</p>

</li>
<li><p><code class="func">NaturalHomomorphismByNormalSubgroup</code> (<a href="../../doc/ref/chap39.html#X80FC390C7F38A13F"><span class="RefLink">Reference: NaturalHomomorphismByNormalSubgroup</span></a>) for FpGroups did unnecessary rewrites.</p>

</li>
<li><p>The alternating group <span class="SimpleMath">A_3</span> incorrectly claimed to be not simple.</p>

</li>
<li><p><code class="func">ExponentSyllable</code> (<a href="../../doc/ref/chap37.html#X7E91575F848F4526"><span class="RefLink">Reference: ExponentSyllable</span></a>) for straight line program elements gave a wrong result.</p>

</li>
<li><p><code class="func">PrimePGroup</code> (<a href="../../doc/ref/chap39.html#X87356BAA7E9E2142"><span class="RefLink">Reference: PrimePGroup</span></a>) is defined to return <code class="code">fail</code> for trivial groups, but if the group was constructed as a factor or subgroup of a known <span class="SimpleMath">p</span>-group, the value of <span class="SimpleMath">p</span> was retained.</p>

</li>
<li><p>The functions <code class="func">TestPackageAvailability</code> (<a href="../../doc/ref/chap76.html#X8580DF257E4D7046"><span class="RefLink">Reference: TestPackageAvailability</span></a>) and <code class="func">LoadPackage</code> (<a href="../../doc/ref/chap76.html#X79B373A77B29D1F5"><span class="RefLink">Reference: LoadPackage</span></a>) did not work correctly when one asked for a particular version of the package, via a version number starting with the character <code class="code">=</code>, in the sense that a version with a larger version number was loaded if it was available. [Reported by Burkhard Höfling]</p>

</li>
<li><p>The generator names constructed by <code class="func">AlgebraByStructureConstants</code> (<a href="../../doc/ref/chap62.html#X7CC58DFD816E6B65"><span class="RefLink">Reference: AlgebraByStructureConstants</span></a>) were nonsense.</p>

</li>
<li><p>The undocumented function (but recently advertised on gap-dev) <code class="code">COPY_LIST_ENTRIES</code> did not handle overlapping source and destination areas correctly in some cases.</p>

</li>
<li><p>The elements in a free magma ring have the filter <code class="func">IsAssociativeElement</code> (<a href="../../doc/ref/chap31.html#X7979AFAA80FF795A"><span class="RefLink">Reference: IsAssociativeElement</span></a>) set whenever the elements in the underlying magma and in the coefficients ring have this filter set. [Reported by Randy Cone]</p>

</li>
<li><p>The function <code class="func">InstallValue</code> (<a href="../../doc/ref/chap79.html#X7A23F09886E936D2"><span class="RefLink">Reference: InstallValue</span></a>) must not be used for objects in the filter <code class="code">IsFamily</code> because these objects are compared via <code class="func">IsIdenticalObj</code> (<a href="../../doc/ref/chap12.html#X7961183378DFB902"><span class="RefLink">Reference: IsIdenticalObj</span></a>). [Reported by Max Neunhöffer]</p>

</li>
</ul>
<p>Fixed bugs which could lead to crashes:</p>


<ul>
<li><p>Problem in composition series for permutation groups for non-Frobenius groups with regular point stabilizer.</p>

</li>
<li><p>After lots of computations with compressed GF(2) vectors <strong class="pkg">GAP</strong> occasionally crashed. The reason were three missing <code class="code">CHANGED_BAG</code>s in <code class="code">SemiEchelonPListGF2Vecs</code>. They were missing, because a garbage collection could be triggered during the computation such that newly created bags could become "old". It is not possible to provide test code because the error condition cannot easily be reproduced. [Reported by Klaus Lux]</p>

</li>
<li><p>Minor bug that crashed <strong class="pkg">GAP</strong>: The type of <code class="code">IMPLICATIONS</code> could not be determined in a fresh session. [Reported by Marco Costantini]</p>

</li>
<li><p><code class="func">Assert</code> (<a href="../../doc/ref/chap7.html#X830E443284780FB9"><span class="RefLink">Reference: Assert</span></a>) caused an infinite loop if called as the first line of a function called from another function.</p>

</li>
</ul>
<p>Other fixed bugs:</p>


<ul>
<li><p>Wrong choice of prime in Dixon-Schneider if prime is bigger than group order (if group has large exponent).</p>

</li>
<li><p>Groebner basis code ran into problems when comparing monomial orderings.</p>

</li>
<li><p>When testing for conjugacy of a primitive group to an imprimitive group,<strong class="pkg">GAP</strong> runs into an error in EARNS calculation. [Reported by John Jones]</p>

</li>
<li><p>The centre of a magma is commonly defined to be the set of elements that commute and associate with all elements. The previous definition left out "associate" and caused problems with extending the functionality to nonassociative loops. [Reported by Petr Vojtechovsky]</p>

</li>
<li><p>New kernel methods for taking the intersection and difference between sets of substantially different sizes give a big performance increase.</p>

</li>
<li><p>The commands <code class="func">IsNaturalSymmetricGroup</code> (<a href="../../doc/ref/chap43.html#X8129BE59781478E1"><span class="RefLink">Reference: IsNaturalSymmetricGroup</span></a>) and <code class="func">IsNaturalAlternatingGroup</code> (<a href="../../doc/ref/chap43.html#X8129BE59781478E1"><span class="RefLink">Reference: IsNaturalAlternatingGroup</span></a>) are faster and should run much less often into inefficient tests.</p>

</li>
<li><p>The perfect group library, see <code class="func">Finite Perfect Groups</code> (<a href="../../doc/ref/chap50.html#X7A884ECF813C2026"><span class="RefLink">Reference: Finite Perfect Groups</span></a>), is split into several files which are loaded and unloaded to keep memory usage down. The global variable <code class="code">PERFSELECT</code> is a blist which indicates which orders are currently loaded. An off-by-one error wrongly added the last order of the previous file into the list of valid orders when a new file was loaded. A subsequent access to this order raises an error.</p>

</li>
<li><p>Up to now, the method installed for testing the membership of rationals in the field of rationals via <code class="func">IsRat</code> (<a href="../../doc/ref/chap17.html#X7ED018F5794935F7"><span class="RefLink">Reference: IsRat</span></a>) was not called; instead a more general method was used that called <code class="func">Conductor</code> (<a href="../../doc/ref/chap18.html#X815D6EC57CBA9827"><span class="RefLink">Reference: Conductor (for a cyclotomic)</span></a>) and thus was much slower. Now the special method has been ranked up by changing the requirements in the method installation.</p>

</li>
<li><p>Fixed a bug in <code class="code">APPEND_VEC8BIT</code>, which was triggered in the following situation: Let <code class="code">e</code> be the number of field elements stored in one byte. If a compressed 8bit-vector <code class="code">v</code> had length not divisible by <code class="code">e</code> and another compressed 8-bit vector <code class="code">w</code> was appended, such that the sum of the lengths became divisible by <code class="code">e</code>, then one 0 byte too much was written, which destroyed the <code class="code">TNUM</code> of the next <strong class="pkg">GAP</strong> object in memory. [Reported by Klaus Lux]</p>

</li>
<li><p><code class="func">PermutationCycle</code> (<a href="../../doc/ref/chap41.html#X81D4EA42810974A0"><span class="RefLink">Reference: PermutationCycle</span></a>) returned <code class="code">fail</code> if the cycle was not a contiguous subset of the specified domain. [Reported by Luc Teirlinck]</p>

</li>
<li><p>Now <code class="func">Inverse</code> (<a href="../../doc/ref/chap31.html#X78EE524E83624057"><span class="RefLink">Reference: Inverse</span></a>) correctly returns <code class="code">fail</code> for zeros in finite fields (and does no longer enter a break loop).</p>

</li>
<li><p>Up to now, <code class="func">CharacterDegrees</code> (<a href="../../doc/ref/chap71.html#X81FEFF768134481A"><span class="RefLink">Reference: CharacterDegrees</span></a>) ignored the attribute <code class="func">Irr</code> (<a href="../../doc/ref/chap71.html#X873B3CC57E9A5492"><span class="RefLink">Reference: Irr</span></a>) if the argument was a group that knew that it was solvable.</p>

</li>
<li><p>The function <code class="code">Debug</code> now prints a meaningful message if the user tries to debug an operation. Also, the help file for <code class="code">vi</code> is now available in the case of several <strong class="pkg">GAP</strong> root directories.</p>

</li>
<li><p>It is no longer possible to create corrupt objects via ranges of length &gt;<span class="SimpleMath">2^28</span>, resp. &gt;<span class="SimpleMath">2^60</span> (depending on the architecture). The limitation concerning the arguments of ranges is documented. [Reported by Stefan Kohl]</p>

</li>
<li><p>Now <code class="func">IsElementaryAbelian</code> (<a href="../../doc/ref/chap39.html#X813C952F80E775D4"><span class="RefLink">Reference: IsElementaryAbelian</span></a>) and <code class="func">ClassPositionsOfMinimalNormalSubgroups</code> (<a href="../../doc/ref/chap71.html#X850C7D947B3DBFA2"><span class="RefLink">Reference: ClassPositionsOfMinimalNormalSubgroups</span></a>) are available for ordinary character tables. Now the operation <code class="func">CharacterTableIsoclinic</code> (<a href="../../doc/ref/chap71.html#X85BE46F784B83938"><span class="RefLink">Reference: CharacterTableIsoclinic</span></a>) is an attribute, and there is another new attribute <code class="func">SourceOfIsoclinicTable</code> (<a href="../../doc/ref/chap71.html#X85BE46F784B83938"><span class="RefLink">Reference: SourceOfIsoclinicTable</span></a>) that points back to the original table; this is used for computing the Brauer tables of those tables in the character table library that are computed using <code class="code">CharacterTableIsoclinic</code>. Now <code class="func">ClassPositionsOfDerivedSubgroup</code> (<a href="../../doc/ref/chap71.html#X79EE7BE17BD343D5"><span class="RefLink">Reference: ClassPositionsOfDerivedSubgroup</span></a>) avoids calling <code class="func">Irr</code> (<a href="../../doc/ref/chap71.html#X873B3CC57E9A5492"><span class="RefLink">Reference: Irr</span></a>), since <code class="func">LinearCharacters</code> (<a href="../../doc/ref/chap71.html#X8549899A7DE206BA"><span class="RefLink">Reference: LinearCharacters</span></a>) is sufficient. Now <code class="func">ClassPositionsOfElementaryAbelianSeries</code> (<a href="../../doc/ref/chap71.html#X86ABB2E179D7F6E1"><span class="RefLink">Reference: ClassPositionsOfElementaryAbelianSeries</span></a>) works also for the table of the trivial group. Restrictions of character objects know that they are characters.</p>

<p>A few formulations in the documentation concerning character tables have been improved slightly.</p>

</li>
<li><p>Up to now, <code class="func">IsPGroup</code> (<a href="../../doc/ref/chap39.html#X8089F18C810B7E3E"><span class="RefLink">Reference: IsPGroup</span></a>) has rarely been set. Now many basic operations such as <code class="func">SylowSubgroup</code> (<a href="../../doc/ref/chap39.html#X7AA351308787544C"><span class="RefLink">Reference: SylowSubgroup</span></a>) set this attribute on the returned result.</p>

</li>
<li><p>Computing an enumerator for a semigroup required too much time because it used all elements instead of the given generators. [Reported by Manuel Delgado]</p>

</li>
<li><p>Avoid potential error message when working with automorphism groups.</p>

</li>
<li><p>Fixed wrong page references in manual indices.</p>

</li>
<li><p>Make <code class="code">MutableCopyMat</code> an operation and install the former function which does call <code class="func">List</code> (<a href="../../doc/ref/chap21.html#X7B256AE5780F140A"><span class="RefLink">Reference: Lists</span></a>) with <code class="func">ShallowCopy</code> (<a href="../../doc/ref/chap12.html#X846BC7107C352031"><span class="RefLink">Reference: ShallowCopy</span></a>) the default method for lists. Also use this in a few appropriate places.</p>

</li>
<li><p>An old DEC compiler doesn't like C preprocessor directives that are preceded by whitespace. Removed such whitespace. [Reported by Chris Wensley]</p>

</li>
</ul>
<p>New or improved functionality:</p>


<ul>
<li><p>The primitive groups library has been extended to degree 2499.</p>

</li>
<li><p>New operation <code class="func">Remove</code> (<a href="../../doc/ref/chap21.html#X7E98B11B79BA9167"><span class="RefLink">Reference: Remove</span></a>) and extended functionality of <code class="func">Add</code> (<a href="../../doc/ref/chap21.html#X795EC9D67E34DAB0"><span class="RefLink">Reference: Add</span></a>) with an optional argument giving the position of the insertion. They are based on an efficient kernel function <code class="code">COPY_LIST_ENTRIES</code>.</p>

</li>
<li><p>Added fast kernel implementation of Tarjan's algorithm for strongly connected components of a directed graph.</p>

</li>
<li><p>Now <code class="func">IsProbablyPrimeInt</code> (<a href="../../doc/ref/chap14.html#X78FDA4437EDCA70C"><span class="RefLink">Reference: IsProbablyPrimeInt</span></a>) can be used with larger numbers. (Made internal function <code class="code">TraceModQF</code> non-recursive.)</p>

</li>
<li><p>A new operation <code class="func">PadicValuation</code> (<a href="../../doc/ref/chap56.html#X8559CC7B80C479F1"><span class="RefLink">Reference: PadicValuation</span></a>) and a corresponding method for rationals.</p>

</li>
<li><p>A new operation <code class="func">PartialFactorization</code> (<a href="../../doc/ref/chap14.html#X786FF92C7C54BF97"><span class="RefLink">Reference: PartialFactorization</span></a>) has been added, and a corresponding method for integers has been installed. This method allows one to specify the amount of work to be spent on looking for factors.</p>

</li>
<li><p>The generators of full s. c. algebras can now be accessed with the dot operator. [Reported by Marcus Bishop]</p>

</li>
<li><p>New Conway polynomials computed by Kate Minola, John Bray, Richard Parker.</p>

</li>
<li><p>A new attribute <code class="func">EpimorphismFromFreeGroup</code> (<a href="../../doc/ref/chap39.html#X7FE8A3B08458A1BF"><span class="RefLink">Reference: EpimorphismFromFreeGroup</span></a>). The code has been written by Alexander Hulpke.</p>

</li>
<li><p>The functions <code class="func">Lambda</code> (<a href="../../doc/ref/chap15.html#X85296F3087611B03"><span class="RefLink">Reference: Lambda</span></a>), <code class="func">Phi</code> (<a href="../../doc/ref/chap15.html#X85A0C67982D9057A"><span class="RefLink">Reference: Phi</span></a>), <code class="func">Sigma</code> (<a href="../../doc/ref/chap15.html#X823707DF821E79A0"><span class="RefLink">Reference: Sigma</span></a>), and <code class="func">Tau</code> (<a href="../../doc/ref/chap15.html#X798C62847EE0372E"><span class="RefLink">Reference: Tau</span></a>) have been turned into operations, to admit the installation of methods for arguments other than integers.</p>

</li>
<li><p>Up to now, one could assign only lists with <code class="func">InstallFlushableValue</code> (<a href="../../doc/ref/chap79.html#X7A23F09886E936D2"><span class="RefLink">Reference: InstallFlushableValue</span></a>). Now also records are admitted.</p>

</li>
<li><p><code class="func">InstallMethod</code> (<a href="../../doc/ref/chap78.html#X837EFDAB7BEF290B"><span class="RefLink">Reference: InstallMethod</span></a>) now admits entering a list of strings instead of a list of required filters. Each such string must evaluate to a filter when used as the argument of <code class="func">EvalString</code> (<a href="../../doc/ref/chap27.html#X7DE4CCD285440659"><span class="RefLink">Reference: EvalString</span></a>). The advantage of this variant is that these strings are used to compose an info string (which is shown by <code class="code">ApplicableMethod</code>) that reflects exactly the required filters.</p>

</li>
<li><p>In test files that are read with <code class="func">ReadTest</code> (<a href="../../doc/ref/chap7.html#X7DBA18E38405A147"><span class="RefLink">Reference: ReadTest</span></a>), the assertion level is set to 2 between <code class="code">START_TEST</code> and <code class="code">STOP_TEST</code>. This may result in runtimes for the tests that are substantially longer than the usual runtimes with default assertion level 0. In particular this is the reason why some of the standard test files require more time in <strong class="pkg">GAP</strong> 4.4.6 than in <strong class="pkg">GAP</strong> 4.4.5.</p>

</li>
<li><p>Some very basic functionality for floats.</p>

</li>
</ul>
<p><a id="X7B8B22C77DC970F8" name="X7B8B22C77DC970F8"></a></p>

<h4>4.6 <span class="Heading"><strong class="pkg">GAP</strong> 4.4 Update 7 (March 2006)</span></h4>

<p>New or improved functionality:</p>


<ul>
<li><p>The <code class="func">Display</code> (<a href="../../doc/ref/chap6.html#X83A5C59278E13248"><span class="RefLink">Reference: Display</span></a>) functionality for character tables has been extended by addition of an option to show power maps and centralizer orders in a format similar to that used in the ATLAS. Furthermore the options handling is now hierarchical, in order to admit more flexible overloading.</p>

</li>
<li><p>For the function <code class="func">LowIndexSubgroupsFpGroup</code> (<a href="../../doc/ref/chap47.html#X85C5151380E19122"><span class="RefLink">Reference: LowIndexSubgroupsFpGroup</span></a>), there is now an iterator variant <code class="code">LowIndexSubgroupsFpGroupIterator</code>. [Suggested (and based on code contributed) by Michael Hartley]</p>

</li>
<li><p>Semigroup functionality in <strong class="pkg">GAP</strong> has been improved and extended. Green's relations are now stored differently, making the system more amenable to new methods for computing these relations in special cases. It is now possible to calculate Green's classes etc. without computing the entire semigroup or necessarily loading the package <strong class="pkg">MONOID</strong>. Furthermore, the Froidure-Pin algorithm has now been implemented in <strong class="pkg">GAP</strong>.</p>

</li>
<li><p>Functionality for creating free products of any list of groups for which a finite presentation can be determined had been added. This function returns a finitely presented group. This functionality includes the <code class="code">Embedding</code> operation. As an application of this new code a specialized direct product operation has been added for finitely presented groups which returns a finitely presented group. This application includes <code class="code">Embedding</code> and <code class="code">Projection</code> functionality.</p>

</li>
<li><p>Some new Straight Line Program (SLP) functionality has been added. The new functions take given SLPs and create new ones by restricting to a subset of the results, or to an intermediate result or by calculating the product of the results of two SLPs.</p>

</li>
<li><p>New code has been added to allow group elements with memory; that is, they store automatically how they were derived from some given set of generators. Note that there is not yet documentation for this functionality, but some packages already use it.</p>

</li>
<li><p>New code has been added to handle matrices and vectors in such a way that they do not change their representation in a generic manner.</p>

</li>
<li><p>The <code class="func">Irr</code> (<a href="../../doc/ref/chap71.html#X873B3CC57E9A5492"><span class="RefLink">Reference: Irr</span></a>) method for <span class="SimpleMath">p</span>-solvable <span class="SimpleMath">p</span>-modular Brauer tables now keeps the order of the irreducibles in the ordinary table.</p>

</li>
<li><p><strong class="pkg">GAP</strong> can now handle any finite field for which the Conway polynomial is known or can be computed.</p>

</li>
<li><p>New Conway polynomials provided by John Bray and Kate Minola have been added.</p>

</li>
<li><p>The <code class="func">ReadTest</code> (<a href="../../doc/ref/chap7.html#X7DBA18E38405A147"><span class="RefLink">Reference: ReadTest</span></a>) methods for strings (filenames) and streams now automatically set the screen width (see <code class="func">SizeScreen</code> (<a href="../../doc/ref/chap6.html#X8723E0A1837894F3"><span class="RefLink">Reference: SizeScreen</span></a>)) to 80 before the tests, and reset it afterwards.</p>

</li>
<li><p>Now a few more checks are done during the <code class="code">configure</code> phase of compiling for future use of some I/O functions of the C-library in a package. Also the path to the <strong class="pkg">GAP</strong> binaries for the <strong class="pkg">GAP</strong> compiler is now handled via autoconf. Finally, now <code class="code">autoconf</code> version 2.59 is used.</p>

</li>
</ul>
<p>Fixed bugs which could produce wrong results:</p>


<ul>
<li><p>Some technical errors in the functions for compressed vectors and matrices which could lead to corruption of internal data structures and so to crashes or conceivably to wrong results. [Reported by Roman Schmied]</p>

</li>
<li><p>A potential problem in the generic method for the undocumented operation <code class="code">DirectFactorsOfGroup</code>: It was silently assumed that <code class="func">NormalSubgroups</code> (<a href="../../doc/ref/chap39.html#X80237A847E24E6CF"><span class="RefLink">Reference: NormalSubgroups</span></a>) delivers the trivial subgroup as first and the whole group as last entry of the resulting list.</p>

</li>
<li><p>The code for sublists of compressed vectors created by <code class="code">vec{range}</code> may write one byte beyond the space allocated for the new vector, overwriting part of the next object in the workspace. Thanks to Jack Schmidt for narrowing down the problem.</p>

</li>
<li><p>Given a class function object of value zero, an <code class="func">Arithmetic Operations for Class Functions</code> (<a href="../../doc/ref/chap72.html#X83B9F0C5871A5F7F"><span class="RefLink">Reference: Arithmetic Operations for Class Functions</span></a>) method for a class function erroneously did not return <code class="code">fail</code>. [Reported by Jack Schmidt]</p>

</li>
<li><p>The <code class="func">Arithmetic Operations for Class Functions</code> (<a href="../../doc/ref/chap72.html#X83B9F0C5871A5F7F"><span class="RefLink">Reference: Arithmetic Operations for Class Functions</span></a>) method for a class function erroneously returned a finite number if one of the values was nonreal, not a cyclotomic integer, and had norm 1.</p>

</li>
<li><p>Two missing perfect groups were added, and the permutation degree lowered on the perfect groups with the largest degrees. [Reported by Jack Schmidt]</p>

</li>
<li><p>When a character table was displayed with <code class="func">Printing Character Tables</code> (<a href="../../doc/ref/chap71.html#X7C1941F17BE9FC21"><span class="RefLink">Reference: Printing Character Tables</span></a>), the centralizer order displayed for the first class shown was not correct if it did not involve all prime divisors of the group. [Reported by Jack Schmidt]</p>

</li>
<li><p>The first argument of the function <code class="func">VectorSpace</code> (<a href="../../doc/ref/chap61.html#X805413157CE9BECF"><span class="RefLink">Reference: VectorSpace</span></a>) must be a field. This is checked from now on. [Reported by Laurent Bartholdi]</p>

</li>
<li><p>Up to now, it was possible to create a group object from a semigroup of cyclotomics using <code class="func">AsGroup</code> (<a href="../../doc/ref/chap39.html#X7A0747F17B50D967"><span class="RefLink">Reference: AsGroup</span></a>), although groups of cyclotomics are not admissible. [Reported by Alexander Konovalov]</p>

</li>
<li><p>The documentation of <code class="code">CharacteristicPolynomial(F,mat)</code> was ambiguous if <code class="code">FieldOfMatrix(mat) &lt;= F &lt; DefaultFieldOfMatrix(mat)</code>. In particular, the result was representation dependent. This was fixed by introducing a second field which specifies the vector space which mat acts upon. [Reported by Jack Schmidt]</p>

</li>
<li><p><code class="code">AssociatedReesMatrixSemigroupOfDClass</code> produced an incorrect sandwich matrix for the semigroup created. This matrix is an attribute set when creating the Rees matrix semigroup but is not used for creating the semigroup. The incorrect result was returned when <code class="code">SandwichMatrix</code> was called. [Reported by Nelson Silva and Joao Araujo]</p>

</li>
<li><p>The literal <code class="code">"compiled"</code> was given an incorrect length. The kernel was then unable to find compiled library code as the search path was incorrect. Also the documentation example had an error in the path used to invoke the <code class="file">gac</code> compiler.</p>

</li>
<li><p>The twisting group in a generic wreath product might have had intransitive action. [Reported by Laurent Bartholdi]</p>

</li>
<li><p>There was an arithmetic bug in the polynomial reduction code.</p>

</li>
</ul>
<p>Fixed bugs which could lead to crashes:</p>


<ul>
<li><p>Bug 1 in the list of fixed bugs which could lead to wrong results could also potentially lead to crashes.</p>

</li>
</ul>
<p>Other fixed bugs:</p>


<ul>
<li><p>The matrices of invariant forms stored as values of the attributes <code class="func">InvariantBilinearForm</code> (<a href="../../doc/ref/chap44.html#X7C08385A81AB05E1"><span class="RefLink">Reference: InvariantBilinearForm</span></a>), <code class="func">InvariantQuadraticForm</code> (<a href="../../doc/ref/chap44.html#X7BCACC007EB9B613"><span class="RefLink">Reference: InvariantQuadraticForm</span></a>), and <code class="func">InvariantSesquilinearForm</code> (<a href="../../doc/ref/chap44.html#X82F22079852130C9"><span class="RefLink">Reference: InvariantSesquilinearForm</span></a>), for matrix groups over finite fields, are now in the (compressed) format returned by <code class="func">ImmutableMatrix</code> (<a href="../../doc/ref/chap24.html#X7DED2522828B6C30"><span class="RefLink">Reference: ImmutableMatrix</span></a>).</p>

</li>
<li><p><code class="code">String</code> now returns an immutable string, by making a copy before changing the argument.</p>

</li>
<li><p><code class="code">permutation^0</code> and <code class="code">permutation^1</code> were not handled with special code in the kernel, hence were very slow for big permutations. [Reported by Max Neunhöffer]</p>

</li>
<li><p>Added code to cache the induced pcgs for an arbitrary parent pcgs. (This code was formerly part of the <strong class="pkg">CRISP</strong> package.)</p>

</li>
<li><p>This fix consists of numerous changes to improve support for direct products, including: - new methods for <code class="code">PcgsElementaryAbelianSeries</code>, <code class="code">PcgsChiefSeries</code>, <code class="code">ExponentsOfPcElement</code>, <code class="code">DepthOfPcElement</code> for direct products - fixed <code class="code">EnumeratorOfPcgs</code> to test for membership first - new methods for membership test in groups which have an induced pcgs - added <code class="code">GroupOfPcgs</code> attribute to pcgs in various methods - fixed declarations of <code class="code">PcgsElementaryAbelianSeries</code>, <code class="code">PcgsChiefSeries</code> (the declared argument was a pcgs, not a group) [Reported by Roman Schmied]</p>

</li>
<li><p>Corrected a term ordering problem encountered by the basis construction code for finite dimensional vector spaces of multivariate rational functions. [Reported by Jan Draisma]</p>

</li>
<li><p>When the factor of a finite dimensional group ring by an ideal was formed, a method intended for free algebras modulo relations was used, and the returned factor algebra could be used for (almost) nothing. [Reported by Heiko Dietrich]</p>

</li>
<li><p>Up to now, <code class="func">PowerMap</code> (<a href="../../doc/ref/chap73.html#X781FAA497E3B4D1A"><span class="RefLink">Reference: PowerMap</span></a>) ran into an error when one asked for the n-th power map where n was not a small integer. This happened in some <strong class="pkg">GAP</strong> library functions if the exponent of the character table in question was not a small integer.</p>

</li>
<li><p>Up to now, the test whether a finite field element was contained in a group of finite field elements ran into an error if the element was not in the field generated by the group elements. [Reported by Heiko Dietrich]</p>

</li>
<li><p>Conjugacy classes of natural (special) linear groups are now always returned with trivial class first.</p>

</li>
<li><p>Up to now, it could happen that <code class="func">CheckFixedPoints</code> (<a href="../../doc/ref/chap73.html#X7B6EC10C7F7411E9"><span class="RefLink">Reference: CheckFixedPoints</span></a>) reduced an entry in its second argument to a list containing only one integer but did not replace the list by that integer; according to the conventions, this replacement should be done.</p>

</li>
<li><p>The functions <code class="code">PrintTo</code> and <code class="code">AppendTo</code> did not work correctly for streams. [Reported by Marco Costantini]</p>

</li>
<li><p>The function <code class="code">Basis</code> did not return a value when it was called with the argument <code class="code">Rationals</code>. [Reported by Klaus Lux]</p>

</li>
<li><p>For certain matrix groups, the function <code class="code">StructureDescription</code> raised an error message. The reason for this was that a trivial method for <code class="code">IsGeneralLinearGroup</code> for matrix groups in <code class="code">lib/grpmat.gi</code> which is ranked higher than the nontrivial method for generic groups in <code class="code">lib/grpnames.gi</code> called the operation <code class="code">IsNaturalGL</code>, for which there was no nontrivial method available. [Reported by Nilo de Roock]</p>

</li>
<li><p>Action on sets of length 1 was not correctly handled. [Reported by Mathieu Dutour]</p>

</li>
<li><p>Now <code class="code">WriteByte</code> admits writing zero characters to all streams. [Reported by Marco Costantini]</p>

</li>
<li><p>The conjugacy test for subgroups tests for elementary abelian regular normal subgroup (EARNS) conjugacy. The fix will catch this in the case that the second group has no EARNS. [Reported by Andrew Johnson]</p>

</li>
<li><p>So far, the UNIX installation didn't result in a correct gap.sh if the installation path contained space characters. Now it should handle this case correctly, as well as other unusual characters in path names (except for double quotes).</p>

</li>
</ul>
<p><a id="X7B61699179F631E0" name="X7B61699179F631E0"></a></p>

<h4>4.7 <span class="Heading"><strong class="pkg">GAP</strong> 4.4 Update 8 (September 2006)</span></h4>

<p>New or improved functionality:</p>


<ul>
<li><p>A function <code class="func">Positions</code> (<a href="../../doc/ref/chap21.html#X7FA9648883AE1B88"><span class="RefLink">Reference: Positions</span></a>) with underlying operation <code class="code">PositionsOp</code>, which returns the list of all positions at which a given object appears in a given list.</p>

</li>
<li><p><code class="func">LogFFE</code> (<a href="../../doc/ref/chap59.html#X7B049A3478B369E4"><span class="RefLink">Reference: LogFFE</span></a>) now returns <code class="code">fail</code> when the element is not a power of the base.</p>

</li>
<li><p>It is now allowed to continue long integers, strings or identifiers by ending a line with a backslash or with a backslash and carriage return character. So, files with <strong class="pkg">GAP</strong> code and DOS/Windows-style line breaks are now valid input on all architectures.</p>

</li>
<li><p>The command line for starting the session and the system environment are now available in <code class="code">GAPInfo.SystemCommandLine</code> and <code class="code">GAPInfo.SystemEnvironment</code>.</p>

</li>
<li><p>Names of all bound global variables and all component names are available on <strong class="pkg">GAP</strong> level.</p>

</li>
<li><p>Added a few new Conway polynomials computed by Kate Minola and John Bray.</p>

</li>
<li><p>There is a new concept of <em>random sources</em>, see <code class="func">IsRandomSource</code> (<a href="../../doc/ref/chap14.html#X82E31A697E389F1D"><span class="RefLink">Reference: IsRandomSource</span></a>), which provides random number generators which are independent of each other. There is kernel code for the Mersenne twister random number generator (based on the code by Makoto Matsumoto distributed at <span class="URL"><a href="http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html">http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html</a></span>). It provides fast 32-bit pseudorandom integers with a period of length <span class="SimpleMath">2^19937-1</span> and a 623-dimensional equidistribution. The library methods for random elements of lists and for random (long) integers are using the Mersenne twister now.</p>

</li>
<li><p>In line editing mode (usual input mode without -n option) in lines starting with <code class="code">gap&gt; </code>, <code class="code">&gt; </code> or <code class="code">brk&gt; </code> this beginning part is immediately removed. This is a convenient feature that allows one to cut and paste input lines from other sessions or from manual examples into the current session.</p>

</li>
</ul>
<p>Fixed bugs which could produce wrong results:</p>


<ul>
<li><p>The function <code class="func">Decomposition</code> (<a href="../../doc/ref/chap25.html#X7911A60384C511AB"><span class="RefLink">Reference: Decomposition</span></a>) returned coefficient vectors also in certain situations where in fact no decomposition exists. This happened only if the matrix entered as the first argument contained irrational values and a row in the matrix entered as the second argument did not respect the algebraic conjugacy relations between the columns of the first argument. So there was no problem for the usual cases that the two matrices are integral or that they are lists of Brauer characters. [Reported by Jürgen Müller]</p>

</li>
<li><p>PC group homomorphisms can claim a wrong kernel after composition. [Reported by Serge Bouc]</p>

</li>
<li><p>The return value of <code class="func">OctaveAlgebra</code> (<a href="../../doc/ref/chap62.html#X78C88A38853A8443"><span class="RefLink">Reference: OctaveAlgebra</span></a>) had an inconsistent defining structure constants table for the case of coefficients fields not containing the integer zero. [Reported by Gábor Nagy]</p>

</li>
<li><p>The manual guarantees that a conjugator automorphism has a conjugating element in the group if possible. This was not guaranteed.</p>

</li>
<li><p><code class="func">StabChain</code> (<a href="../../doc/ref/chap43.html#X80B5CF78829495C2"><span class="RefLink">Reference: StabChain (for a group (and a record))</span></a>) for symmetric groups gave a wrong result if fixed points were prescribed for base.</p>

</li>
<li><p>Contrary to what is documented the function <code class="code">POW_OBJ_INT</code> returned an immutable result for <code class="code">POW_OBJ_INT(m,1)</code> for a mutable object <code class="code">m</code>. This is triggered by the code <code class="code">m^1</code>.</p>

</li>
<li><p><code class="func">PseudoRandom</code> (<a href="../../doc/ref/chap30.html#X811B5BD47DC5356B"><span class="RefLink">Reference: PseudoRandom</span></a>) for a group had a problem if the group had lots of equal generators. The produced elements were extremely poorly distributed in that case. This is now fixed for the case that elements of the group can easily be sorted.</p>

</li>
<li><p>Fixed the bug that the type of a boolean list (see <code class="func">More about Boolean Lists</code> (<a href="../../doc/ref/chap22.html#X7C71B225841DFC0F"><span class="RefLink">Reference: More about Boolean Lists</span></a>)) was computed wrongly: The type previously had <code class="code">IS_PLIST_REP</code> instead of <code class="code">IS_BLIST_REP</code> in its filter list.</p>

</li>
<li><p><code class="func">Orbits</code> (<a href="../../doc/ref/chap41.html#X81E0FF0587C54543"><span class="RefLink">Reference: Orbits</span></a>) did not respect a special <code class="func">PositionCanonical</code> (<a href="../../doc/ref/chap21.html#X7B4B10AE81602D4E"><span class="RefLink">Reference: PositionCanonical</span></a>) method for right transversals. [Reported by Steve Costenoble]</p>

</li>
<li><p>Wrong results for <code class="func">GcdInt</code> (<a href="../../doc/ref/chap14.html#X7A4FEFCA8128E3C3"><span class="RefLink">Reference: GcdInt</span></a>) for some arguments on 64 bit systems only. [Reported by Robert Morse]</p>

</li>
<li><p>When prescribing a subgroup to be included, the low index algorithm for fp groups sometimes returned subgroups which are in fact conjugate. (No subgroups are missing.) [Reported by Ignaz Soroko]</p>

</li>
</ul>
<p>Fixed bugs which could lead to crashes:</p>


<ul>
<li><p>The command line option <code class="code">-x</code> allowed arguments &gt; 256 which can then result in internal buffers overflowing. Now bigger numbers in the argument are equivalent to <code class="code">-x 256</code>. [Reported by Michael Hartley]</p>

</li>
</ul>
<p>Other fixed bugs:</p>


<ul>
<li><p>Two special methods for the operation <code class="func">CompositionMapping2</code> (<a href="../../doc/ref/chap32.html#X86486B687B7077AC"><span class="RefLink">Reference: CompositionMapping2</span></a>) were not correct, such that composing (and multiplying) certain group homomorphisms did not work. [Reported by Peter Mayr]</p>

</li>
<li><p>In the definition of <code class="func">FrobeniusCharacterValue</code> (<a href="../../doc/ref/chap72.html#X79BACBC47B4C413E"><span class="RefLink">Reference: FrobeniusCharacterValue</span></a>), it had been stated erroneously that the value must lie in the field of <span class="SimpleMath">p^n</span>-th roots of unity; the correct condition is that the value must lie in the field of <span class="SimpleMath">(p^n-1)</span>-th roots of unity. [Reported by Jack Schmidt]</p>

</li>
<li><p>The function <code class="func">DirectProduct</code> (<a href="../../doc/ref/chap49.html#X861BA02C7902A4F4"><span class="RefLink">Reference: DirectProduct</span></a>) failed when one of the factors was known to be infinite.</p>

</li>
<li><p>For a linear action homomorphism <code class="code">PreImageElm</code> was very slow because there was no good method to check for injectivity, which is needed for nearly all good methods for <code class="code">PreImageElm</code>. This change adds such a new method for <code class="code">IsInjective</code>. [Reported by Akos Seress]</p>

</li>
<li><p>Rare errors in the complement routine for permutation groups.</p>

</li>
<li><p>Blocks code now uses jellyfish-style random elements to avoid bad Schreier trees.</p>

</li>
<li><p>A method for <code class="func">IsPolycyclicGroup</code> (<a href="../../doc/ref/chap39.html#X7D7456077D3D1B86"><span class="RefLink">Reference: IsPolycyclicGroup</span></a>) has been added. Such a method was missing so far.</p>

</li>
<li><p>Corrected <code class="func">EpimorphismSchurCover</code> (<a href="../../doc/ref/chap39.html#X7F619DDA7DD6C43B"><span class="RefLink">Reference: EpimorphismSchurCover</span></a>) to handle the trivial group correctly. Added new methods that follow immediately from computing the Schur Cover of a group. The attribute <code class="func">Epicentre</code> (<a href="../../doc/ref/chap39.html#X819E8AEC835F8CD1"><span class="RefLink">Reference: Epicentre</span></a>), the operations <code class="func">NonabelianExteriorSquare</code> (<a href="../../doc/ref/chap39.html#X8739CD4686301A0E"><span class="RefLink">Reference: NonabelianExteriorSquare</span></a>) and <code class="func">EpimorphismNonabelianExteriorSquare</code> (<a href="../../doc/ref/chap39.html#X7E1C8CD77CDB9F71"><span class="RefLink">Reference: EpimorphismNonabelianExteriorSquare</span></a>), and the property <code class="func">IsCentralFactor</code> (<a href="../../doc/ref/chap39.html#X7BF8DB3D8300BB3F"><span class="RefLink">Reference: IsCentralFactor</span></a>) are added to the library with documentation and references.</p>

</li>
<li><p>Display the correct expression in a call stack trace if an operation was called somewhere up due to the evaluation of a unary or binary operation.</p>

</li>
<li><p>Made <code class="code">StripMemory</code> an operation rather than a global function. Added <code class="code">ForgetMemory</code> operation.</p>

</li>
<li><p>Adjust things slightly to make later conversion to new vectors/matrices easier. Nothing of this should be visible.</p>

</li>
<li><p>Corrected some details in the documentation of the <strong class="pkg">GAP</strong> language. [Reported by Alexander Konovalov]</p>

</li>
<li><p>Now <code class="func">PositionSorted</code> (<a href="../../doc/ref/chap21.html#X7A122E848464E534"><span class="RefLink">Reference: PositionSorted</span></a>) is much faster on long mutable plain lists. (The former operation is substituted by a function and a new operation <code class="code">PositionSortedOp</code>.) [Reported by Silviu Radu]</p>

</li>
<li><p>Now it is possible to switch repeated warnings off when working with iterative polynomial rings.</p>

</li>
</ul>
<p><a id="X81B223647C9BD9B9" name="X81B223647C9BD9B9"></a></p>

<h4>4.8 <span class="Heading"><strong class="pkg">GAP</strong> 4.4 Update 9 (November 2006)</span></h4>

<p>Fixed bugs which could produce wrong results:</p>


<ul>
<li><p>The methods of <code class="func">ReadByte</code> (<a href="../../doc/ref/chap10.html#X79E1E6A57AE58BB8"><span class="RefLink">Reference: ReadByte</span></a>) for reading from files or terminals returned wrong results for characters in the range <code class="code">[128..255]</code>. [Reported by Yevgen Muntyan]</p>

</li>
</ul>
<p>Other fixed bugs:</p>


<ul>
<li><p>A method for the operation <code class="func">PseudoRandom</code> (<a href="../../doc/ref/chap30.html#X811B5BD47DC5356B"><span class="RefLink">Reference: PseudoRandom</span></a>) did not succeed.</p>

</li>
<li><p>A fix for <code class="code">Orbits</code> with a set of points as a seed.</p>

</li>
<li><p>Added a generic method such that <code class="func">Positions</code> (<a href="../../doc/ref/chap21.html#X7FA9648883AE1B88"><span class="RefLink">Reference: Positions</span></a>) works with all types of lists.</p>

</li>
<li><p>Fixed a problem in choosing the prime in the Dixon-Schneider algorithm. [Reported by Toshio Sumi]</p>

</li>
</ul>
<p>New or improved functionality:</p>


<ul>
<li><p><code class="code">ReducedOrdinary</code> was used in the manual, but was not documented, being a synonym for the documented <code class="code">ReducedCharacters</code>. Changed manual examples to use the latter form. [Reported by Vahid Dabbaghian]</p>

</li>
</ul>
<p><a id="X7BB4EC1F7B130FD5" name="X7BB4EC1F7B130FD5"></a></p>

<h4>4.9 <span class="Heading"><strong class="pkg">GAP</strong> 4.4 Update 10 (October 2007)</span></h4>

<p>New or improved functionality:</p>


<ul>
<li><p>Files in the <code class="file">cnf</code> directory of the <strong class="pkg">GAP</strong> distribution are now archived as binary files. Now <strong class="pkg">GAP</strong> can be installed with UNIX or with WINDOWS style line breaks on any system and should work without problems.</p>

</li>
<li><p>Since large finite fields are available, some restrictions in the code for computing irreducible modules over finite fields are no longer necessary. (They had been introduced in order to give better error messages.)</p>

</li>
<li><p>Made PositionSublist faster in case the search string does not contain repetitive patterns.</p>

</li>
<li><p>The function <code class="code">MakeImmutable</code> now returns its argument.</p>

</li>
<li><p>Dynamically loaded modules now work on Mac OS X. As a consequence, this allows to work with the Browse, EDIM and IO packages on Mac OS X.</p>

</li>
<li><p>Introduced <code class="code">ViewObj</code> and <code class="code">PrintObj</code> methods for algebraic number fields. Made them applicable to <code class="code">AlgebraicExtension</code> by adding the property <code class="code">IsNumberField</code> in the infinite field case.</p>

</li>
<li><p>The function <code class="func">CharacterTableRegular</code> (<a href="../../doc/ref/chap71.html#X85DB8AE7786A2DB5"><span class="RefLink">Reference: CharacterTableRegular</span></a>) is documented now.</p>

</li>
<li><p>The function <code class="func">ScalarProduct</code> (<a href="../../doc/ref/chap72.html#X855FD9F983D275CD"><span class="RefLink">Reference: ScalarProduct (for characters)</span></a>) now accepts also Brauer characters as arguments.</p>

</li>
<li><p>The function <code class="func">QuaternionAlgebra</code> (<a href="../../doc/ref/chap62.html#X83DF4BCC7CE494FC"><span class="RefLink">Reference: QuaternionAlgebra</span></a>) now accepts also a list of field elements instead of a field. Also, now the comparison of return values (w.r.t. equality, containment) yields <code class="code">true</code> if the parameters coincide and the ground fields fit.</p>

</li>
<li><p>The function <code class="func">RemoveCharacters</code> (<a href="../../doc/ref/chap27.html#X86EBB6EB829723E4"><span class="RefLink">Reference: RemoveCharacters</span></a>) is now documented.</p>

</li>
<li><p>Lists in <strong class="pkg">GAP</strong> sometimes occupy memory for possible additional entries. Now plain lists and strings read by <strong class="pkg">GAP</strong> and the lists returned by <code class="func">List</code> (<a href="../../doc/ref/chap21.html#X7B256AE5780F140A"><span class="RefLink">Reference: Lists</span></a>) only occupy the memory they really need. For more details see the documentation of the new function <code class="func">EmptyPlist</code> (<a href="../../doc/ref/chap21.html#X78BF67A5802E93AD"><span class="RefLink">Reference: EmptyPlist</span></a>).</p>

</li>
<li><p>There are some new Conway polynomials in characteristic 2 and 3 provided by Kate Minola.</p>

</li>
<li><p>A new operation <code class="code">MemoryUsage</code> determines the memory usage in bytes of an object and all its subobjects. It does not consider families and types but handles arbitrary self-referential structures of objects.</p>

</li>
</ul>
<p>Fixed bugs which could produce wrong results:</p>


<ul>
<li><p>When forming the semidirect product of a matrix group with a vector space over a non-prime field the embedding of the vector space gave a wrong result. [Reported by anvita21]</p>

</li>
<li><p>DefaultRing failed for constant polynomials over nonprime fields. [Reported by Stefan Kohl]</p>

</li>
<li><p>The method in ffeconway.gi that gets coefficients WRT to the canonical basis of the field from the representation is only correct if the basis is over the prime field. Added a TryNextMethod if this is not the case. [Reported by Alla Detinko]</p>

</li>
<li><p>Creating a large (&gt;<span class="SimpleMath">2^16</span>) field over a non-prime subfield went completely wrong. [Reported by Jack Schmidt, from Alla Detinko]</p>

</li>
<li><p>A method for Coefficients for Conway polynomial FFEs didn't check that the basis provided was the canonical basis of the RIGHT field. [Reported by Bettina Eick]</p>

</li>
<li><p>An elementary abelian series was calculated wrongly. [Reported by N. Sieben]</p>

</li>
<li><p>Orbits on sets of transformations failed.</p>

</li>
<li><p>Wrong methods for <code class="func">GeneratorsOfRing</code> (<a href="../../doc/ref/chap56.html#X7D0428D87E63288C"><span class="RefLink">Reference: GeneratorsOfRing</span></a>) and <code class="func">GeneratorsOfRingWithOne</code> (<a href="../../doc/ref/chap56.html#X7F9F122C831BCDD1"><span class="RefLink">Reference: GeneratorsOfRingWithOne</span></a>) have been removed. These methods were based on the assumption that one can obtain a set of ring generators by taking the union of a known set of field generators, the set of the inverses of these field generators and {1}.</p>

</li>
<li><p>The name of a group of order 117600 and degree 50 was incorrect in the <code class="func">Primitive Permutation Groups</code> (<a href="../../doc/ref/chap50.html#X7AE00EA7791F2574"><span class="RefLink">Reference: Primitive Permutation Groups</span></a>) Primitive Permutation Groups library. In particular, a group was wrongly labelled as PGL(2, 49).</p>

</li>
<li><p>There was a possible error in <code class="code">SubgroupsSolvableGroup</code> when computing subgroups within a subgroup.</p>

</li>
<li><p>An error in 2-Cohomology computation for pc groups was fixed.</p>

</li>
<li><p><code class="code">IsConjugate</code> used normality in a wrong supergroup</p>

</li>
</ul>
<p>Fixed bugs which could lead to crashes:</p>


<ul>
<li><p><strong class="pkg">GAP</strong> crashed when the <code class="code">PATH</code> environment variable was not set. [Reported by Robert F. Morse]</p>

</li>
<li><p><strong class="pkg">GAP</strong> could crash when started with option <code class="code">-x 1</code>. Now the number of columns is initialized with at least 2. [Reported by Robert F. Morse]</p>

</li>
<li><p>After loading a saved workspace <strong class="pkg">GAP</strong> crashed when one tried to slice a compressed vector over a field with 2 &lt; q &lt;= 256 elements, which had already existed in the saved workspace. [Reported by Laurent Bartholdi]</p>

</li>
<li><p><code class="code">FFECONWAY.WriteOverSmallestCommonField</code> tripped up when the common field is smaller than the field over which some of the vector elements are written, because it did a test based on the degree of the element, not the field it is written over. [Reported by Thomas Breuer]</p>

</li>
<li><p>Fixed the following error: When an FFE in the Conway polynomial representation actually lied in a field that is handled in the internal representation (eg <span class="SimpleMath">GF(3)</span>) and you tried to write it over a bigger field that is ALSO handled internally (eg <span class="SimpleMath">GF(9)</span>) you got an element written over the larger field, but in the Conway polynomial representation, which is forbidden. [Reported by Jack Schmidt]</p>

</li>
<li><p>Attempting to compress a vector containing elements of a small finite field represented as elements of a bigger (external) field caused a segfault. [Reported by Edmund Robertson]</p>

</li>
<li><p><strong class="pkg">GAP</strong> crashed when <code class="code">BlistList</code> was called with a range and a list containing large integers or non-integers. [Reported by Laurent Bartholdi]</p>

</li>
<li><p><strong class="pkg">GAP</strong> no longer crashes when <code class="code">OnTuples</code> is called with a list that contains holes. [Reported by Thomas Breuer]</p>

</li>
</ul>
<p>Other fixed bugs:</p>


<ul>
<li><p><code class="code">Socle</code> for the trivial group could produce an error message.</p>

</li>
<li><p><code class="func">DirectoryContents</code> (<a href="../../doc/ref/chap9.html#X7B225E5282534EDA"><span class="RefLink">Reference: DirectoryContents</span></a>) ran into an error for immutable strings without trailing slash as argument. [Reported by Thomas Breuer]</p>

</li>
<li><p>The functions <code class="func">IsInjective</code> (<a href="../../doc/ref/chap32.html#X7F065FD7822C0A12"><span class="RefLink">Reference: IsInjective</span></a>) and <code class="func">IsSingleValued</code> (<a href="../../doc/ref/chap32.html#X86D44C8A78BF1981"><span class="RefLink">Reference: IsSingleValued</span></a>) did not work for general linear mappings with trivial (pre)image. [Reported by Alper Odabas]</p>

</li>
<li><p>Creating an enumerator for a prime field with more than 65536 elements ran into an infinite recursion. [Reported by Akos Seress]</p>

</li>
<li><p>The performance of <code class="code">List</code>, <code class="code">Filtered</code>, <code class="code">Number</code>, <code class="code">ForAll</code> and <code class="code">ForAny</code> if applied to non-internally represented lists was improved. Also the performance of iterators for lists was slightly improved.</p>

</li>
<li><p>Finite field elements now know that they can be sorted easily which improves performance in certain lookups.</p>

</li>
<li><p>A method for <code class="func">IsSubset</code> (<a href="../../doc/ref/chap30.html#X79CA175481F8105F"><span class="RefLink">Reference: IsSubset</span></a>) was missing for the case that exactly one argument is an inhomogeneous list. [Reported by Laurent Bartholdi]</p>

</li>
<li><p>Long integers in expressions are now printed (was not yet implemented). [Reported by Thomas Breuer]</p>

</li>
<li><p>Fixed kernel function for printing records.</p>

</li>
<li><p>New C library interfaces (e.g., to ncurses in the <strong class="pkg">Browse</strong> package) need some more memory to be allocated with <code class="code">malloc</code>. The default value of <strong class="pkg">GAP</strong> <code class="code">-a</code> option is now <code class="code">2m&gt;</code>.</p>

</li>
<li><p>Avoid warnings about pointer types by newer gcc compilers.</p>

</li>
<li><p><code class="code">IsBound(l[pos])</code> was failing for a large integer <var class="Arg">pos</var> only when coded (e.g. in a loop or function body).</p>

</li>
<li><p><code class="code">ZmodpZObj</code> is now a synonym for <code class="code">ZmodnZObj</code> such that from now on such objects print in a way that can be read back into <strong class="pkg">GAP</strong>.</p>

</li>
<li><p>The outdated note that binary streams are not yet implemented has been removed.</p>

</li>
</ul>
<p><a id="X7E4C6820809F2384" name="X7E4C6820809F2384"></a></p>

<h4>4.10 <span class="Heading"><strong class="pkg">GAP</strong> 4.4 Update 11 (December 2008)</span></h4>

<p>Fixed bugs which could produce wrong results:</p>


<ul>
<li><p><code class="func">MemoryUsage</code> (<a href="../../doc/ref/chap12.html#X7F4D216B7DF7BE9D"><span class="RefLink">Reference: MemoryUsage</span></a>) on objects with no subobjects left them in the cache and thus reported 0 in subsequent calls to MemoryUsage for the same object. [Reported by Stefan Kohl]</p>

</li>
<li><p><code class="func">Irr</code> (<a href="../../doc/ref/chap71.html#X873B3CC57E9A5492"><span class="RefLink">Reference: Irr</span></a>) might be missing characters. [Reported by Angel del Rio]</p>

</li>
<li><p>Up to now, it was allowed to call the function <code class="func">FullMatrixAlgebraCentralizer</code> (<a href="../../doc/ref/chap62.html#X7D0EB1437D3D9495"><span class="RefLink">Reference: FullMatrixAlgebraCentralizer</span></a>) with a field and a list of matrices such that the entries of the matrices were not contained in the field; in this situation, the result did not fit to the documentation. Now the entries of the matrices are required to lie in the field, if not then an error is signaled.</p>

</li>
<li><p>For those finite fields that are regarded as field extensions over non-prime fields (one can construct such fields with <code class="func">AsField</code> (<a href="../../doc/ref/chap58.html#X7C193B7D7AFB29BE"><span class="RefLink">Reference: AsField</span></a>)), the function <code class="func">DefiningPolynomial</code> (<a href="../../doc/ref/chap58.html#X7ADDCBF47E2ED3D4"><span class="RefLink">Reference: DefiningPolynomial</span></a>) erroneously returned a polynomial w.r.t. the extension of the prime field. [Reported by Stefan Kohl]</p>

</li>
<li><p>Since the release of <strong class="pkg">GAP</strong> 4.4.10, the return values of the function <code class="func">QuaternionAlgebra</code> (<a href="../../doc/ref/chap62.html#X83DF4BCC7CE494FC"><span class="RefLink">Reference: QuaternionAlgebra</span></a>) were not consistent w.r.t. the attribute <code class="func">GeneratorsOfAlgebra</code> (<a href="../../doc/ref/chap62.html#X83B055F37EBF2438"><span class="RefLink">Reference: GeneratorsOfAlgebra</span></a>); the returned list could have length four or five. Now always the list of elements of the canonical basis is returned.</p>

</li>
<li><p><code class="func">MonomialGrevlexOrdering</code> (<a href="../../doc/ref/chap66.html#X8094C733808D1799"><span class="RefLink">Reference: MonomialGrevlexOrdering</span></a>) calculated a wrong ordering in certain cases. [Reported by Paul Smith]</p>

</li>
<li><p>The (<strong class="pkg">GAP</strong> kernel) method for the operation <code class="func">IntersectSet</code> (<a href="../../doc/ref/chap21.html#X8473AA657FEC3D4D"><span class="RefLink">Reference: IntersectSet</span></a>) for ranges had two bugs, which could yield a result range with either too few or too many elements. As a consequence, for example the <code class="func">Intersection</code> (<a href="../../doc/ref/chap30.html#X851069107CACF98E"><span class="RefLink">Reference: Intersection</span></a>) results for ranges could be wrong. [Reported by Matthew Fayers]</p>

</li>
<li><p>Fixed a bug in the short-form display of elements of larger finite fields, a bug in some cross-field conversions and some inefficiencies and a missing method in the <code class="func">LogFFE</code> (<a href="../../doc/ref/chap59.html#X7B049A3478B369E4"><span class="RefLink">Reference: LogFFE</span></a>) code. [Reported by Jia Huang]</p>

</li>
<li><p>In rare cases <code class="func">SmithNormalFormIntegerMatTransforms</code> (<a href="../../doc/ref/chap25.html#X839C1F9E87273A93"><span class="RefLink">Reference: SmithNormalFormIntegerMatTransforms</span></a>) returned a wrong normal form (the version without transforming matrices did not have this problem). This is fixed. [Reported by Alexander Hulpke]</p>

</li>
<li><p>The variant of the function <code class="func">StraightLineProgram</code> (<a href="../../doc/ref/chap37.html#X7AECA57280DA3195"><span class="RefLink">Reference: StraightLineProgram (for a list of lines (and the number of generators))</span></a>) that takes a string as its first argument returned wrong results if the last character of this string was a closing bracket.</p>

</li>
<li><p>The code for central series in a permutation group used too tight a bound and thus falsely return a nilpotent permutation group as non-nilpotent.</p>

</li>
</ul>
<p>Fixed bugs which could lead to crashes:</p>


<ul>
<li><p>Under certain circumstances the kernel code for position in blists would access a memory location just after the end of the blist. If this location was not accessible, a crash could result. This was corrected and the code was cleaned up. [Reported by Alexander Hulpke]</p>

</li>
</ul>
<p>Other fixed bugs:</p>


<ul>
<li><p>The function <code class="func">IsomorphismTypeInfoFiniteSimpleGroup</code> (<a href="../../doc/ref/chap39.html#X7C6AA6897C4409AC"><span class="RefLink">Reference: IsomorphismTypeInfoFiniteSimpleGroup</span></a>) can be called with a positive integer instead of a group, and then returns information about the simple group(s) of this order. (This feature is currently undocumented.) For the argument 1, however, it ran into an infinite loop.</p>

</li>
<li><p>A lookup in an empty dictionary entered a break loop. Now returns <code class="code">fail</code>. [Reported by Laurent Bartholdi]</p>

</li>
<li><p>The c++ keyword <code class="code">and</code> can no longer be used as a macro parameter in the kernel. [Reported by Paul Smith]</p>

</li>
<li><p>The operation <code class="func">KernelOfMultiplicativeGeneralMapping</code> (<a href="../../doc/ref/chap32.html#X81A5A5CF846E5FBF"><span class="RefLink">Reference: KernelOfMultiplicativeGeneralMapping</span></a>) has methods designed to handle maps between permutation groups in a two-step approach, but did not reliably trigger the second step. This has now been fixed, preventing a slow infinite loop repeating the first step. This was normally only seen as part of a larger calculation.</p>

</li>
<li><p>There were two methods for the operation <code class="func">Intersection2</code> (<a href="../../doc/ref/chap30.html#X851069107CACF98E"><span class="RefLink">Reference: Intersection2</span></a>) which have implicitly assumed that finiteness of a collection can always be decided. Now, these methods check for <code class="func">IsFinite</code> (<a href="../../doc/ref/chap30.html#X808A4061809A6E67"><span class="RefLink">Reference: IsFinite</span></a>) and <code class="func">CanComputeSize</code> (<a href="../../doc/ref/chap39.html#X83245C82835D496C"><span class="RefLink">Reference: CanComputeSize</span></a>) prior to calling <code class="func">IsFinite</code> (<a href="../../doc/ref/chap30.html#X808A4061809A6E67"><span class="RefLink">Reference: IsFinite</span></a>).</p>

</li>
<li><p>Made error message in case of corrupted help book information (manual.six file) shorter and more informative. [Reported by Alexander Hulpke]</p>

</li>
<li><p><strong class="pkg">GAP</strong> cannot call methods with more than six arguments. Now the functions <code class="func">NewOperation</code> (<a href="../../doc/ref/chap79.html#X85A9E019795B79D6"><span class="RefLink">Reference: NewOperation</span></a>), <code class="func">DeclareOperation</code> (<a href="../../doc/ref/chap79.html#X843F48137B899BC3"><span class="RefLink">Reference: DeclareOperation</span></a>), and <code class="func">InstallMethod</code> (<a href="../../doc/ref/chap78.html#X837EFDAB7BEF290B"><span class="RefLink">Reference: InstallMethod</span></a>) signal an error if one attempts to declare an operation or to install a method with more than six arguments.</p>

</li>
<li><p>Up to now, <code class="func">IsOne</code> (<a href="../../doc/ref/chap31.html#X814D78347858EC13"><span class="RefLink">Reference: IsOne</span></a>) had a special method for general mappings, which was much worse than the generic method; this special method has now been removed.</p>

</li>
<li><p>When printing elements of an algebraic extension parentheses around coefficients were missing. [Reported by Maxim Hendriks]</p>

</li>
</ul>
<p>New or improved functionality:</p>


<ul>
<li><p>Make dynamic loading of modules possible on CYGWIN using a DLL based approach. Also move to using autoconf version 2.61.</p>

</li>
<li><p>One can now call <code class="func">Basis</code> (<a href="../../doc/ref/chap61.html#X837BE54C80DE368E"><span class="RefLink">Reference: Basis</span></a>), <code class="func">Iterator</code> (<a href="../../doc/ref/chap30.html#X83ADF8287ED0668E"><span class="RefLink">Reference: Iterator</span></a>) etc. with the return value of the function <code class="func">AlgebraicExtension</code> (<a href="../../doc/ref/chap67.html#X7CDA90537D2BAC8A"><span class="RefLink">Reference: AlgebraicExtension</span></a>).</p>

</li>
<li><p>The function <code class="func">FrobeniusCharacterValue</code> (<a href="../../doc/ref/chap72.html#X79BACBC47B4C413E"><span class="RefLink">Reference: FrobeniusCharacterValue</span></a>) returned <code class="code">fail</code> for results that require a finite field with more than 65536 elements. Meanwhile <strong class="pkg">GAP</strong> can handle larger finite fields, so this restriction was removed. (It is still possible that <code class="func">FrobeniusCharacterValue</code> (<a href="../../doc/ref/chap72.html#X79BACBC47B4C413E"><span class="RefLink">Reference: FrobeniusCharacterValue</span></a>) returns <code class="code">fail</code>.)</p>

</li>
<li><p>Methods for testing membership in general linear groups and special linear groups over the integers have been added.</p>

</li>
<li><p>Methods for <code class="func">String</code> (<a href="../../doc/ref/chap27.html#X81FB5BE27903EC32"><span class="RefLink">Reference: String</span></a>) and <code class="code">ViewString</code> for full row modules have been added. Further, a default method for <code class="func">IsRowModule</code> (<a href="../../doc/ref/chap57.html#X7C8F844783F4FA09"><span class="RefLink">Reference: IsRowModule</span></a>) has been added, which returns <code class="code">false</code> for objects which are not free left modules.</p>

</li>
<li><p>A <code class="code">ViewString</code> method for objects with name has been added.</p>

</li>
<li><p>The method for <code class="func">View</code> (<a href="../../doc/ref/chap6.html#X851902C583B84CDC"><span class="RefLink">Reference: View</span></a>) for polynomial rings has been improved, and methods for <code class="func">String</code> (<a href="../../doc/ref/chap27.html#X81FB5BE27903EC32"><span class="RefLink">Reference: String</span></a>) and <code class="code">ViewString</code> for polynomial rings have been added.</p>

</li>
<li><p><code class="func">Binomial</code> (<a href="../../doc/ref/chap16.html#X7A9AF5F58682819D"><span class="RefLink">Reference: Binomial</span></a>) now works with huge <code class="code">n</code>.</p>

</li>
<li><p>The function <code class="func">InducedClassFunctionsByFusionMap</code> (<a href="../../doc/ref/chap72.html#X7C72003880743D28"><span class="RefLink">Reference: InducedClassFunctionsByFusionMap</span></a>) is now documented.</p>

</li>
<li><p>The return values of the function <code class="func">QuaternionAlgebra</code> (<a href="../../doc/ref/chap62.html#X83DF4BCC7CE494FC"><span class="RefLink">Reference: QuaternionAlgebra</span></a>) now store that they are division rings (if optional parameters are given then of course ths depends on these parameters).</p>

</li>
</ul>
<p><a id="X7F5BBE877AAA4BEE" name="X7F5BBE877AAA4BEE"></a></p>

<h4>4.11 <span class="Heading"><strong class="pkg">GAP</strong> 4.4 Update 12 (December 2008)</span></h4>

<p>Fixed bugs which could lead to crashes:</p>


<ul>
<li><p>A bug whereby leaving an incomplete statement on a line (for instance typing while and then return) when prompt colouring was in use could lead to <strong class="pkg">GAP</strong> crashing.</p>

</li>
</ul>
<p>Other fixed bugs:</p>


<ul>
<li><p>A bug which made the command-line editor unusable in a 64-bit version of <strong class="pkg">GAP</strong> on Mac OS X.</p>

</li>
</ul>

<div class="chlinkprevnextbot">&nbsp;<a href="chap0.html">[Top of Book]</a>&nbsp;  <a href="chap0.html#contents">[Contents]</a>&nbsp;  &nbsp;<a href="chap3.html">[Previous Chapter]</a>&nbsp;  &nbsp;<a href="chap5.html">[Next Chapter]</a>&nbsp;  </div>


<div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a href="chap0.html">Top</a>  <a href="chap1.html">1</a>  <a href="chap2.html">2</a>  <a href="chap3.html">3</a>  <a href="chap4.html">4</a>  <a href="chap5.html">5</a>  <a href="chapInd.html">Ind</a>  </div>

<hr />
<p class="foot">generated by <a href="http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc">GAPDoc2HTML</a></p>
</body>
</html>