Karim BELABAS on Fri, 10 Oct 2003 17:46:04 +0200 (MEST) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: polredabs failure |
On Thu, 9 Oct 2003, Igor Schein wrote: > Now, continuing the same topic: > > %1 = x^16 - 4*x^15 + 8*x^14 - 8*x^13 + 6*x^12 - 16*x^11 + 40*x^10 - 32*x^9 - 50*x^8 + 160*x^7 - 176*x^6 + 40*x^5 + 140*x^4 - 192*x^3 + 112*x^2 - 32*x + 4 > ? polredabs(%) > %2 = x^16 - 4*x^15 + 12*x^14 - 36*x^13 + 88*x^12 - 164*x^11 + 252*x^10 - 324*x^9 + 354*x^8 - 324*x^7 + 252*x^6 - 164*x^5 + 88*x^4 - 36*x^3 + 12*x^2 - 4*x + 1 > ? polredabs(%) > %3 = x^16 - 8*x^15 + 36*x^14 - 108*x^13 + 244*x^12 - 436*x^11 + 636*x^10 - 780*x^9 + 831*x^8 - 780*x^7 + 636*x^6 - 436*x^5 + 244*x^4 - 108*x^3 + 36*x^2 - 8*x + 1 > \\ Takes 2 iterations to stabilize These polynomials have the same norm. All are valid results, and there's no guarantee that iterating polredabs as above stabilizes at all. > Also... > ? #polredabs(%1,4) > %4 = 13 > ? #polredabs(%2,4) > %5 = 22 > ? #polredabs(%3,4) > %6 = 24 > > What is causing discrepancy between the last 3 results, precision > issues or probabilistic nature of algorithm? The algorithm is not probabilistic, but changing the input yields a priori different behaviour. What exactly occurs is that a fixed number of vectors of minimal norm are stored, the rest being discarded. Since many of them have the same characteristic polynomial, it may occur that some polynomial is not represented in the end. This does not follow the documented behaviour of the (,4) flag, and is rather pointless. I have made the above buffersize dynamic, so that no minimal vector should ever be discarded [ in polredabs. It's too dangerous in a general situation... ] Cheers, Karim. -- Karim Belabas Tel: (+33) (0)1 69 15 57 48 Dép. de Mathématiques, Bât. 425 Fax: (+33) (0)1 69 15 60 19 Université Paris-Sud http://www.math.u-psud.fr/~belabas/ F-91405 Orsay (France) http://www.parigp-home.de/ [PARI/GP]