| 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]