This is great!  /Kip

Roger Hui wrote:
In J6.03:

   0j1 ^ i.5 4
1 0j1 _1 0j_1
1 0j1 _1 0j_1
1 0j1 _1 0j_1
1 0j1 _1 0j_1
1 0j1 _1 0j_1



----- Original Message -----
From: Roger Hui <[email protected]>
Date: Thursday, May 21, 2009 17:46
Subject: Re: [Jchat] Clean elementary functions?
To: Chat forum <[email protected]>

I am in sympathy with your concern.
A solution in the particular case of z^n is to do
repeated squaring instead of ^n*^.z .
The interpreter already does that for real z .



----- Original Message -----
From: Kip Murray <[email protected]>
Date: Thursday, May 21, 2009 15:48
Subject: [Jchat] Clean elementary functions?
To: Chat forum <[email protected]>

Caution, rant follows.  /Kip Murray


    NB. It is too bad that whereas

    0j1*0j1
_1

    NB. and

    *:0j1
_1

    NB. we get

    0j1^2
_1j1.22465e_16


    NB. The culprit appears to be

    1 o. o. 1
1.22465e_16


    NB. because 0j1^2 is calculated as

    ^ 2 * ^. 0j1
_1j1.22465e_16

    NB. which has real part

    2 o. o. 1
_1

    NB. and imaginary part

    1 o. o. 1
1.22465e_16

NB. Sometimes I think verb "clean" should be incorporated NB. in the elementary functions! Maybe just in 1&o. and 2&o. NB. The TI-83 calculator gives "clean" results for i^2 and e^(i pi).

    load 'numeric'

    clean 0j1^2
_1

    clean ^ 0j1 * 1p1
_1

    0j1^2
_1j1.22465e_16

    ^ 0j1 * 1p1
_1j1.22465e_16

    clean
1e_10&$: :(4 : 0)
if. L. y do.
   x clean each y
else.
   if. (3!:0 y) e. 16 16384 do.
     j./"1 y * x <: | y=. +.y
   else.
     y * x <: |y
   end.
end.
)
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to