Karim Belabas on Mon, 27 Oct 2014 11:08:38 +0100


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

Re: A Strange problem


* Allan MacLeod [2014-10-27 10:57]:
> Over the weekend, I was developing some software in Pari which needs
> to check whether rational polynomials are squares over the rationals.
> 
> I used  isqsquare(polynomial,&root)
> 
> At the start of the program, everything worked fine and the roots,
> when found, were rational.
> 
> At a certain point, however, the roots changed to having real
> coefficients which completely screwed the code.
> 
> I got round the problem by writing my own "idiot" test subroutine,
> which works fine.
> 
> This problem occurred using Pari 2.7.2, Pari 2.6.0, and Pari 2.3.4.
> 
> Any suggestions as to what I did wrong?

Indeed, I can reproduce the problem:

(11:05) gp > issquare((x+1/2)^2,&n); n
%1 = 1.0000000000000000000*x + 0.5000000000000000000

The current (faulty) code works as you expected iff the constant coefficient
is an integer.

I'll fix the problem shortly. In the meantime, a simple workaround is to kill
the content first.

Thanks for your report!

    K.B.
--
Karim Belabas, IMB (UMR 5251)  Tel: (+33) (0)5 40 00 26 17
Universite de Bordeaux         Fax: (+33) (0)5 40 00 69 50
351, cours de la Liberation    http://www.math.u-bordeaux1.fr/~kbelabas/
F-33405 Talence (France)       http://pari.math.u-bordeaux1.fr/  [PARI/GP]
`