Hi Lawrence, the “ill-formed number” is because "j." is a verb, quite different to “j” which is part of a noun construct (like 3j4, or 1e3 for 1000).
So in your examples ... NB. But wait, not so fast: 1j.(2^0.5)%2 |ill-formed number NB. No NB. Now try to separate the “j.” verb with a space either side to make it clear to J that this is not “1jxxx” where J would assume you are trying to make a complex constant. 1 j. (2^0.5)%2 1j0.707107 The reason is that J can also directly interpret ‘complex constants’ entered directly using the j notation (as a continuous sequence of non-blank chars)… 3j4 NB. This is a single complex constant 3+i4 3j4 3 j4 NB. But now J tries to view this as a list of (3) and (j4) which which J would assume is (3) and a variable called (j4). |syntax error | 3 j4 As Henry points out, the NuVoc page is quite a bit clearer on this topic. HTH, Regards Rob > On 1 Jul 2017, at 1:14 pm, Lawrence Wickert <[email protected]> wrote: > > Hello, I am a old EE still trying to learn. I am a real beginner having no > end of problems with specifying complex numbers. I am using j64-804 on > ubuntu 12.04. I am either doing something really stupid or I need to update > to 806. Updating anything gives me heartburn or worse so I hope it is just > my misunderstanding of basic principles. Although I have a bad habit of RTFM > as a last resort I have tried the Dictionary to no avail. I appreciate any > guidance. > > 0j(2^0.5)%2 > |ill-formed number > > 0j((2^0.5)%2) > |ill-formed number > > j.(2^0.5)%2 > 0j0.707107 > NB. Eureaka, OK, I get it! > > NB. But wait, not so fast: > 1j.(2^0.5)%2 > |ill-formed number > NB. No > > 1j(2^0.5)%2 > |ill-formed number > NB. Still No > > 1+j.(2^0.5)%2 > 1j0.707107 > NB. This works! > > Let's try to do something with it: > k=:(0 1+j.(2^0.5)%2 3 4 0 5) > |length error > | k=:(0 1 +j.(2^0.5)%2 3 4 0 5) > > NB. Maybe parantheses will help: > k=:(0 (1+j.(2^0.5)%2) 3 4 0 5) > |syntax error > | k=:( 0(1+j.(2^0.5)%2)3 4 0 5) > > NB. This one has to work: > k=:(0 1j0.7071 3 4 0 5) > k > 0 1j0.7071 3 4 0 5 > NB. It does but it can't be the only way to do it. > > NB. One last rry: > g=: 1+j.(2^0.5)%2 > g > 1j0.707107 > NB. That's nice. > > k=:(0 g 3 4 0 5) > |syntax error > | k=:( 0 g 3 4 0 5) > NB. This isn't nice. > > Lost in the high desert of New Mexico, Larry Wickert > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
