Igor Schein on Mon, 30 Nov 1998 13:05:20 -0500

 Re: Discriminant of non-monic polynomials

```On Mon, Nov 30, 1998 at 08:05:43AM -0500, Karim.Belabas@math.u-psud.fr wrote:

> > ? g(pol)=subst(pol,x,2*x+1) \\ If pol is f(x) then g(pol) is f(2*x+1)
> > ? poldisc(g(polcyclo(57)))
> >   ***   Warning: normalizing a polynomial with 0 leading term.
> >   ***   bus error: bug in GP (please report).

FIXED

> >
> > ? nfdisc(g(x^12-x-1))
> >   ***   impossible assignment I-->S

FIXED

> > ? nfdisc(g(polcyclo(23)))
> >   ***   the PARI stack overflows !!!
> >
> >   ***   Warning: doubling stack size; new stack = 8000000.
> > ? nfdisc(g(polcyclo(23)))
> >   ***   the PARI stack overflows !!!
> >
> >   ***   Warning: doubling stack size; new stack = 16000000.

Now it doubles only once.  Kevin, I'm just curious, what parisize
did you use in 2.0.11 when you tried this one?

>
> >
> > ??nfdisc tells me "preferably monic".  How do I interprete this?  Does
> > it mean that nfdisc will give reliable output only for monic
> > polynomials?
>
> No: we use the obvious (and highly inefficient) change of variable to
> reduce
> to monic form (it's theoretically possible to work directly with
> non-monic
> polynomials, but it will be a _real_ pain to adapt the code...). [then
> call
> polred to try and lower the huge index which we just introduced].
>
> It's usually a bad idea to use non-monic polynomials, since internally
> we are
> going to transform them and work on a different polynomial. It's more
> efficient to do the change of variable yourself and reduce the output
> via
> polred / polredabs. Hence the warning.

Hmm, are you saying that I can come up with a better change of variable
than nfinit() family of commands performs?  Also, would you consider it
useful to do the reduction automatically inside nfdisc().

Thanks for the patch

Igor
```