| Karim Belabas on Fri, 27 Jul 2018 03:32:09 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: Running time of bnfinit() |
* Jeroen Demeyer [2018-07-26 09:38]:
> do you happen to have a rule-of-thumb to estimate the running time of a
> bnfinit() call, say in terms of the degree and discriminant?
Not really. An average estimate, possibly, but with *huge* deviations...
Basically, [assuming GRH]
(not the defining polynomial!), a discriminant < 10^40 should be fine
[between a few seconds and a few minutes] but there will be bad exceptions.
Compare the following "random" fields with roughly the same discriminants,
around 10^40-ish:
- bnfinit(polcyclo(31)) : trivial (0.1 s, although degree 30!),
- bnfinit(x^2 - nextprime(10^40)) : "easy" (3 minutes)
- bnfinit(x^2 - nextprime(10^44)) : "tougher" (40 minutes)
Conversely a few fields of degree ~100 have been "easily" computed in
about 10-20 hours, but don't expect to succeed every time...
> For Sage, we want to have a heuristic of when it's "easy" to compute
> bnfinit().
I don't know how to guarantee that it'll be easy. In any case, you
should never compute a bnfinit when it's not absolutely necessary.
[ I.e. you should do it on the fly when the extra structure is a
prerequisite for a specific function call. ]
Cheers,
K.B.
--
Karim Belabas, IMB (UMR 5251) Tel: (+33) (0)5 40 00 26 17
Universite de Bordeaux Fax: (+33) (0)5 40 00 21 23
351, cours de la Liberation http://www.math.u-bordeaux.fr/~kbelabas/
F-33405 Talence (France) http://pari.math.u-bordeaux.fr/ [PARI/GP]
`