Bill Allombert on Sat, 04 Jun 2011 12:04:50 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: leading_term and constant_term / lg in polynomials


On Fri, Jun 03, 2011 at 07:33:26PM -0400, Charles Greathouse wrote:
> These inline functions are almost too simple to be wrong, but I'm
> finding bizarre behavior.  Minimal test function:
> 
> long
> test(GEN f)
> {
> 	if (typ(f) != t_POL)
> 		pari_err(typeer, "test");
> 	GEN LEAD = leading_term(f);
> 	if (!isint1(LEAD)) {
> 		pari_printf("%Ps: Leading term is %Ps; polynomial has length %d.
> Constant term: %Ps.\n", f, LEAD, lg(f), constant_term(f));
> 		return 0;
> 	}
> 	return 1;
> }
> 
> Loading into gp via gp2c, I get
> 
> >test(x^2-1)
> -x + 1: Leading term is -1; polynomial has length 4. Constant term: 1.

On the face of it this is correct: if f=-x + 1, then the rest follows.
What is more puzzling is why f=-x + 1 while you expect it to be equal to x^2-1.
Something is wrong somewhere but outside the sample you sent: here it works:
? install(test,lG,,"../test.so")
? test(x^2-1)
%1 = 1

Cheers,
Bill.