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


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

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]