Bill Allombert on Wed, 14 May 2003 19:51:13 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: partial factorization |
On Wed, May 14, 2003 at 01:27:25PM -0400, Igor Schein wrote: > Hi, > > I am aware of the following functions which support partial > factorization of discriminant, internally or through an optional flag: > > galoisinit galoisinit do not support partial factyorisation, but uses it as a tool to speed up a computation. This is quite different. > nfdisc > polred > polredabs You forget nfbasis. > nfinit and bnfinit don't. I was wondering, is it possible to enable > PF for them, or is there a prohibitive reason not to do that? They both support partial factorisation via nfbasis: ??nfinit ... The special input format [x,B] is also accepted where x is a polynomial as above and B is the integer basis, as computed by nfbasis. This can be useful since nfinit uses the round 4 algorithm by default, which can be very slow in pathological cases where round 2 (nfbasis(x,2)) would succeed very quickly. (BTW, this comment about round 4 is probably outdated). Try nfinitpartial(pol)=nfinit([pol,nfbasis(pol,1)]) and bnfinitpartial(pol)=bnfinit(nfinitpartial(pol)) However, you need to understand what does the above, i.e. what happen for prime you did not consider. I am not sure nfinitpartial() is a sane idea, but what is often useful is to compute nfinit above a single prime. Currently the only way I know of with PARI is to do: nfinitatp(P,p)=nfinit([P,nfbasis(P,0,Mat([p,valuation(poldisc(P),p)]))],1); Cheers, Bill