Karim BELABAS on Tue, 15 Dec 1998 22:42:47 +0100 (MET)


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

Re: interesting *randomness* issue


[Igor:]
> ? randpol(d,b)=x^d+sum(k=0,d-1,(random(2*b+1)-b)*x^k)
> ? v=[];for(k=1,2000,t=randpol(8,2);if(polisirreducible(t),polgalois(t),);v=concat(v,[t])) 
> ? matsize(v)
> [1, 2000]
> ? length(Set(v))
> 816
> 
> So first I define a function which returns a random monic polynomial
> of degree d and absolute value of coefficients <= b
> 
> Then I generate 2000 random polynomials of degree 8 and run
> polgalois() on those which are irreducible.  From the 4th command
> it's clear that they're not random anymore.  And indeed, if you print
> the vector v above, you'll see that it hits a loop of length 8 in the
> end of the first 1000, and loops forever.  
> 
> However, if I use degree 7 polynomials instead, the pseudo-randomness
> is fine.  
> 
> So I am curious how come polgalois() causes random number generator to 
> go berserk.

Because somebody forgot to remove a debugging command once the version was
made final (it did not affect the results...).

  Karim.

*** src/modules/galois.c.orig   Tue Dec 15 16:30:25 1998
--- src/modules/galois.c        Tue Dec 15 22:40:22 1998
***************
*** 744,750 ****
      fprintferr("\n$$$$$ Tschirnhaus transformation of degree %ld:
$$$$$\n",d);
      flusherr();
    }
!   v=varn(po); h=polun[v]; setrand(1);
    do
    {
      avma = av0;
--- 744,750 ----
      fprintferr("\n$$$$$ Tschirnhaus transformation of degree %ld:
$$$$$\n",d);
      flusherr();
    }
!   v=varn(po); h=polun[v];
    do
    {
      avma = av0;

--
Karim Belabas                    email: Karim.Belabas@math.u-psud.fr
Dep. de Mathematiques, Bat. 425
Universite Paris-Sud             Tel: (00 33) 1 69 15 57 48
F-91405 Orsay (France)           Fax: (00 33) 1 69 15 60 19
--
PARI/GP Home Page: http://pari.home.ml.org