| John Cremona on Thu, 14 May 2026 12:04:01 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| helping nfinit |
In gp, ?nfinit says that the first parameter must be a polynomial. The longer documentation in ??nfinit says that the first parameter can be a pair or triple [pol,B], [pol,B,P] or [pol,listP] where B is a lift of an integral basis, P and listP are lists of primes. But the example given if nfinit([pol,10^3]) which shows that the second parameter can be a bound on the primes and not just a list of primes. Perhaps this should be corrected (if I am right)? Also, the situation I am in is that as well as a polynomial pol (monic irreducible and integral) defining the field, I have a collection of known algebraic integers a2=Mod(g2,pol), a3=Mod(g3,pol), .... It seems that knowing these should help nfinit but I don't see an easy way of doing so. In one example, the degree is 45, the minpolys of a2 and a3 (both of full degree) have discriminants which are too large to factor but the gcd of their discriminants -- which is the field discriminant times a much smaller square -- can be factored. In my example that gcd is 2^10 times an integer with 117 digits which can be factored in reasonable time (under a minute on my 10-year-old laptop) as the product of 709, 11652785276119009306943, 33453572138997299442641, 3430518186990900226076508080139548308272997052056646116033470256885927. If I do nfinit([pol,plist]) where plist contains 2 and these primes then I can see that the field discriminant is just their product (with no factor of 2 and all is well). So this is an example where knowing just pol=minpoly(a2) it is impossible (in practice) to get an integral basis, but knowing minpoly(a3) also makes it possible. Hence my feature request would be to all nfinit to be given a list of polynomials, rather than just one, with the assumption that they do all define the same field. John PS I have given away some hints as to where this example comes from!