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

Reply via email to