Gerhard Niklasch on Thu, 10 Sep 1998 00:28:32 +0200 (MET DST) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: Another bug? |
In response to > Message-Id: <19980909181618.N3370@io.txc.com> > Date: Wed, 9 Sep 1998 18:16:18 -0400 > From: Igor Schein <igor@txc.com> > > Hi, > > ? factor(250*x-54*x^7) > > [3*x^2 - 5 1] > > [x 1] > > [9*x^4 + 15*x^2 + 25 1] Look closely at the leading coefficients... factorback() is correct. > Where is the scalar gone? Factorization of polynomials implicitly works over the _field_ of coefficients, not over the _ring_ they generate, and throws the content away. Compute it and split it off explicitly if you need it. One of the side effects of _not_ dragging explicit strong typing around with every object... In a system like Magma, polynomials would always `know' exactly to which ring they belong. PARI's polynomials don't; there's no difference in the internal representation between f = 250*x-54*x^7 considered as an element of Z[X], or of Q[X], or even of Q(sqrt(15))[x] for that matter (factornf will happily accept a polynomial with coefficients in Q to be factored) -- although f has different factorizations in each of the three cases. factor() defaults to Q[x] if the coefficients can be regarded as elements of Q. See ??factor or The Fine Manual for an example and some further explanation. :) Cheers, Gerhard