> < ^ Date: Wed, 05 Jun 1996 14:46:00 +0100 (MET)
> < ^ From: Thomas Breuer <Thomas.Breuer@Math.RWTH-Aachen.DE >
^ Subject: BUGFIX #11 (DANGEROUS problem in VE package)

This mail contains a bugfix for a dangerous problem in GAP 3.4.3.
*You should apply this bugfix as soon as possible if you are
computing with the VE share package*.
The problem is in 'PrintVEInput', and may cause wrong results for
presentations in characteristic zero that involve proper fractions.

HOW TO APPLY

The problem is a dangerous problem, because it may cause a computation
to produce incorrect results without a warning. Thus the bugfix has
high priority, and we recommend that you apply it as soon as possible
if you are using the VE share package.

Go to the GAP directory (the directory with the 'pkg/' subdirectory),
name this mail 'bugfix11.dif', and issue the command:

patch -p0 < bugfix11.dif

If 'patch' writes "I can't seem to find a patch in there" try 'patch -v'.
If 'patch -v' gives an error message or reports a version older than 2.1,
get 2.1 from 'ftp://FTP.Math.RWTH-Aachen.DE/pub/gap/utils/patch2_1.zoo'.

This patch changes only a file with GAP code.
Thus you need not recompile the VE standalones.

VERSION

GAP 3.4.3.0

DESCRIPTION

'PrintVEInput' may produce a wrong input file for the VE program
in characteristic zero if the presentation contains non-integral
rationals.
This may cause the standalone to crash, or may yield an incorrect
result.

CORRECT BEHAVIOUR

gap> RequirePackage( "ve" );
gap> a:= FreeAlgebra( Rationals, 1 );;
gap> a:= a / [ a.1 - One( a ), 1/2 * a.1 - 1/2 * One( a ) ];;
gap> a.operations.MatAlgebraA( a );
UnitalAlgebra( Rationals, [ [ [ 1 ] ] ] )

COMMENT

'Int' is called for the coefficients of the words in the presentation,
which is necessary for nonzero characteristics, but obviously should
not be done in characteristic zero.

PATCH

Prereq: 3.0
--- pkg/ve/gap/ve.g     1994/05/10 19:14:38
+++ pkg/ve/gap/ve.g     1996/06/05 10:48:53
@@ -112,7 +112,11 @@
     fi;

     for j in [ 1 .. Length( elm.words ) ] do
-      coeff:= Int( elm.coeff[j] );
+      if char = 0 then
+        coeff:= elm.coeff[j];
+      else
+        coeff:= Int( elm.coeff[j] );
+      fi;
       if j > 1 and coeff > 0 then
         Pr( "+" );
       fi;
END OF  bugfix11.dif ________________________________________________________

> < [top]