NB. Here is a model for ^ that has 0 = 1 + ^ 0j1*1p1
load 'numeric'
cos =: clean@(2&o.)
sin =: clean@(1&o.)
mexp =: 3 : 0
'u v' =. +. y
(^u)*(cos v)+0j1*sin v
)
exp =: 3 : 0
mexp y
:
mexp y * ^. x
)
i =: 0j1
pi =: 1p1
2 exp 3
8
i exp 2
_1
0 = 1 + exp i*pi
1
exp _24
3.77513e_11
NB. That is, exp x remains positive for real x
Kip Murray
Kip Murray wrote:
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
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm