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