> < ^ Date: Thu, 25 Nov 1999 14:18:48 GMT
> < ^ From: Willem de Graaf <degraaf@math.uu.nl >
^ Subject: bugfix #12 for GAP3

Dear Forum,

This is to announce bugfix number 12 for GAP3. You should *not* apply this
bugfix to GAP4.
The priority of this fix is high.

This fix corrects:
1) a problem with the arithmetic for finite fields,
2) a problem with the functions `Coefficients' and `in' for elements
of row spaces.

Error 1 may cause GAP to return wrong results. More specifically,
computing `( Z( q )^m )^n' may give
wrong results. In GAP3.4.4 without this bugfix the following happens:

gap> ( Z(3^10)^36369 )^59048;
Z(3^10)^13568

and this last answer should return the identity of the field with 3^10
elements.

Error 2 may cause wrong results, or may cause GAP to give an error
message. This error occurs only if `Coefficients' or `in' are called for a
row vector whose length differs from the length of the vectors in the row
space in question; this means that in practice, this error is not likely
to occur.

At the end of this message there are some examples illustrating the fix.

Many thanks to David Bowen for reporting error 1.

To apply the fix, load the zoo archive 'fix12.zoo' from the
bugfixes web page
http://www-gap.dcs.st-and.ac.uk/~gap/Info/bugfixes.html
Alternatively you can find this file in the 'gap-3.4.4/bugfixes' directory of
the GAP ftp distribution.

Unpack the file in the home directory of your GAP distribution (the
directory containing the 'lib' and 'grp' directories) using 'unzoo -x
fix12.zoo'. `unzoo' may ask you for permissions to overwrite files,
answer this with Y)es or A)ll. This will replace the erroneous file by
fixed versions.

As this fix changes the source you will have to recompile. Windows and MAC
users will find new binaries, together with installation instructions,
on the web page of the GAP3 distribution
(http://www-history.mcs.st-and.ac.uk/~gap/Info/distrib.html).

You can remove the file 'description12' afterwards.

Willem de Graaf 25-Nov-99

#############################################################################
#
# these commands should run without error if fix12 has been applied.
#
F:= GF(3^10);
r:= F.root;
qq:= Size( F ) - 1;
if (r^36369)^qq <> One(F) then Print("Error\n"); fi;

v:= GF(2)^2;;
b:= Basis( v, [ [ 1, 1 ], [ 0, 1 ] ] * Z(2) );;
IsSemiEchelonBasis( b );;
Coefficients( b, [ 0*Z(2) ] );
[ 0*Z(2) ] in v;

> < [top]