Gerhard Niklasch on Mon, 29 Jun 1998 16:54:47 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: 2.0.9 comments/bugs


In response to:
> Message-Id: <5520.199806291430@omega.ex.ac.uk.maths.exeter.ac.uk>
> Date: 	Mon, 29 Jun 1998 16:30:07 +0200
> From: "John Cremona (Maths)" <cremona@noether.ex.ac.uk>

Thanks for the feedback!  (It's been eerily quiet on this list
all the last week...)

> 1. "make" in examples gives compiler warning and the executable
>    crashes:

Found also by Willy Susilo, fixed for 2.0.10.  If you don't want to
wait for it  (I only have to code another 300 lines or so in the
factoring driver :^),  apply this one-liner:

bash$ diff -u src/language/anal.c.orig src/language/anal.c
--- src/language/anal.c.orig    Mon Jun 22 11:49:27 1998
+++ src/language/anal.c Mon Jun 22 12:20:42 1998
@@ -174,7 +174,7 @@
   GEN x;
 
   strcpy(tmp,t); filtre(tmp, f_INIT | f_REG);
-  x = lisseq0(tmp,0); free(tmp);
+  x = lisseq0(tmp, expr); free(tmp);
   return x;
 }
 
2.0.10 will also include a _much_ cleaner matexp.c example, and a
library function to read a gp expression from stdin and return the
resulting GEN (created on the stack).

> 3. factorint(2^128+1) causes 
> 
>   *** segmentation fault: bug in GP (please report)

Known and fixed for 2.0.10 -- Karim, any objections against me posting
your first patch to the list, or do you want to do it yourself, or shall
we just wait until 2.0.10 is wrapped up?

Another problem with the factoring-related code is that currently,
after dividing off small primes, it does essentially

    while (f isn't prime) <replace f with a proper factor of f>;

and whereas this used to work fine with ellfacteur() as the factoring
engine (because ellfacteur() tends to return one of the smallest prime
factors of its argument),  it behaves horribly with the new mpqs()
(which returns just _some_ nontrivial factor)  when there are 3 or
more large prime factors.  This is why I'm working heavily on a
replacement for the above loops...

(There are a few further issues, eg that mpqs() cannot factor prime
powers, that a Pollard rho stage should run first for a limited span
of time, etc.  All this is being heavily worked on, and to a certain
extent already working.)

> The alpha has the following benchmarks:
> 
> alpha21164   533Mhz    Linux 2.0.34  gcc X11 ?dl2?    6511    6685   2.0.9
> 
> (I don't know the answer to the dl2 question...)

If you got a [BUG] in the static bench output but not in the dynamic
column, it's dl, if you got a [BUG] in both, it's nothing, and if you
got no [BUG], it's dl2.  Thanks again!

Enjoy, Gerhard