Karim Belabas on Sat, 10 Mar 2007 19:23:39 +0100

 Re: Desired behaviour ?

```* Bill Allombert [2007-03-10 18:53]:
> On Sat, Mar 10, 2007 at 05:34:22PM +0100, Loic Grenie wrote:
> >
> >     I'm just wondering if there is a strong reason why 1.*I*I has an
> >   imaginary part (equal to 0., but it's there). For instance neither I*I*1.
> >   nor 1.*(I*I) have any imaginary part.
>
> My understanding is that I*I should return -1+0*I but wrongly return
> -1. So 1.*I*I should have an imaginary part (along with I*I*1. and
> 1.*(I*I) of course).
>
> The rationale is that arithmetic operation should preserve the
> definition domain so that domain detection work:

More precisely, I*I might return -1+0*I for the reason you indicate, but
simplify(-1+0*I) should definitely return -1.

Since "automatic simplification" (\y) is on by default, things could
become even more confusing:

? a = I*I
%1 = -1  \\ t_INT

with a = -1 + 0*I. Nice.

K.B.

P.S: I have no strong feelings either way. This is among the things that
just "always worked that way" for no particular reason except immediate
simplicity.

The precise behaviour of a basic operation on the PARI types is not
explicitly documented. ("Anything that should make sense does, with the
expected result. Unless it does not".)

--
Karim Belabas                  Tel: (+33) (0)5 40 00 26 17
Universite Bordeaux 1          Fax: (+33) (0)5 40 00 69 50
351, cours de la Liberation    http://www.math.u-bordeaux.fr/~belabas/
F-33405 Talence (France)       http://pari.math.u-bordeaux.fr/  [PARI/GP]

```