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
