Just to stir the pot, here is a definition from script ~system/main/validate.ijs which I found in J602:
iscomplex=: -. @ (-: +) :: 0: iscomplex 1 0 iscomplex 1j0 0 iscomplex 1j2 1 iscomplex 1j0 2j0 0 iscomplex 1j0 2j3 1 iscomplex 1.2 1j2 1 iscomplex 'a' 0 Kip On 1/22/2012 2:14 PM, Linda Alvord wrote: > How can you create a number in the complex plane that happens to lie on the > real axis? How do you keep its complexness? > > a=:(i.6)j.0 > a > 0 1 2 3 4 5 > > Even when you use j. the numbers have moved into the set of real numbers. > > Linda. > > -----Original Message----- > From: programming-boun...@jsoftware.com > [mailto:programming-boun...@jsoftware.com] On Behalf Of Henry Rich > Sent: Sunday, January 22, 2012 12:09 PM > To: Programming forum > Subject: Re: [Jprogramming] 5|0 1 2 3 4 is not equal to 5|0 1 2 3 4 j.0 > > As Don said, make sure you understand complex floor before you start coding. > > Henry Rich > > On 1/22/2012 11:38 AM, Marshall Lochbaum wrote: >> The theory of moduli is based on the quotient group of the integers by a >> subgroup. For instance, the integers (mod 2) are produced by taking all > the >> integers and identifying all the ones that are even, as well as all the >> ones that are odd. Then we get a two-element group which we can preform >> addition on: even+even=even, even+odd=odd, etc. >> >> To reduce a number in a particular modulus, we need to find a canonical >> representation for that number. For positive numbers n the choice is > fairly >> simple: n|l gives the l' such that 0<=l'<n. In the complex plane, a number >> generates a grid by taking its product with the Gaussian integers; try >> 'dot; pensize 2' plot , 1j2 * j./~i:10 >> to see what I mean. Then what we want is a canonical form for what happens >> when we identify all those points together. We're allowed to "shift" by > any >> Gaussian integer times the modulus. >> >> Based on this, I think a good way to calculate the modulus is to get the >> number into the square that lies counterclockwise of the modulus number. >> Practically, this means we decompose a complex number y into (a j.b)*x, > and >> then return (1|a)j.(1|b) . >> >> I'll see if I can get around to editing this. I have a working copy of the >> source, but I haven't made sense of it entirely. >> >> Marshall >> >> On Sun, Jan 22, 2012 at 10:45 AM, Raul Miller<rauldmil...@gmail.com> > wrote: >> >>> Yes, this is a bug. >>> >>> Someone should fix it. >>> >>> J is open source. (Though distributed sources do not compile for me, >>> and I keep getting sidetracked when I investigate forks that might >>> compile.) >>> >>> -- >>> Raul >>> ---------------------------------------------------------------------- >>> 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 > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm