Version for readers: ]a=:8+i.15 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
]b=:15#15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 ]c=:a-b _7 _6 _5 _4 _3 _2 _1 0 1 2 3 4 5 6 7 f=: 13 :'(x#2)#:y' f ] #:~ 2 #~ [ NB.f a NB.$f a 15 225 Note that f is converting to binary using antibase ]aa=:6 f a 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1 1 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 0 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 0 ]bb=:6 f b 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 ]cc=:aa-bb 0 0 0 _1 _1 _1 0 0 0 _1 _1 0 0 0 0 _1 0 _1 0 0 0 _1 0 0 0 0 0 0 _1 _1 0 0 0 0 _1 0 0 0 0 0 0 _1 0 0 0 0 0 0 0 1 _1 _1 _1 _1 0 1 _1 _1 _1 0 0 1 _1 _1 0 _1 0 1 _1 _1 0 0 0 1 _1 0 _1 _1 0 1 _1 0 _1 0 0 1 _1 0 0 _1 These are the numbers J believes are the integers in i:7 . Actually the numbers from _7 to 0 would be quite easy to live with as they are summetric to the positive numbers with alternating negative and positive integers. You can spot positive and negative numbers by the sign of the first digit. ]d=:16+i.31 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 ]e=:31#31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 ]k=:d-e _15 _14 _13 _12 _11 _10 _9 _8 _7 _6 _5 _4 _3 _2 _1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ]dd=:10 f d 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 1 0 1 1 1 0 ]ee=:10 f e 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 ]kk=:dd-ee 0 0 0 0 0 0 _1 _1 _1 _1 0 0 0 0 0 0 _1 _1 _1 0 0 0 0 0 0 0 _1 _1 0 _1 0 0 0 0 0 0 _1 _1 0 0 0 0 0 0 0 0 _1 0 _1 _1 0 0 0 0 0 0 _1 0 _1 0 0 0 0 0 0 0 _1 0 0 _1 0 0 0 0 0 0 _1 0 0 0 0 0 0 0 0 0 0 _1 _1 _1 0 0 0 0 0 0 0 _1 _1 0 0 0 0 0 0 0 0 _1 0 _1 0 0 0 0 0 0 0 _1 0 0 0 0 0 0 0 0 0 0 _1 _1 0 0 0 0 0 0 0 0 _1 0 0 0 0 0 0 0 0 0 0 _1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 _1 _1 _1 _1 _1 0 0 0 0 1 _1 _1 _1 _1 0 0 0 0 0 1 _1 _1 _1 0 _1 0 0 0 0 1 _1 _1 _1 0 0 0 0 0 0 1 _1 _1 0 _1 _1 0 0 0 0 1 _1 _1 0 _1 0 0 0 0 0 1 _1 _1 0 0 _1 0 0 0 0 1 _1 _1 0 0 0 0 0 0 0 1 _1 0 _1 _1 _1 0 0 0 0 1 _1 0 _1 _1 0 0 0 0 0 1 _1 0 _1 0 _1 0 0 0 0 1 _1 0 _1 0 0 0 0 0 0 1 _1 0 0 _1 _1 0 0 0 0 1 _1 0 0 _1 0 0 0 0 0 1 _1 0 0 0 _1 These two displays above are numbers that you get from J without using #: ]ccc=:#.cc _7 _6 _5 _4 _3 _2 _1 0 1 2 3 4 5 6 7 ]kkk=:#.kk _15 _14 _13 _12 _11 _10 _9 _8 _7 _6 _5 _4 _3 _2 _1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 c-:ccc 1 k-:kkk 1 In each case, #. Interprets them correctly and uses them without problem. Here's the problem. You can never put enough 2's in the function to allow #: to work in the same way That it works for positive numbers. ]cccc=:10 f c 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 ]kkkk=:10 f k 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 ]kkkk2=:11 f k 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 I thought that an odd number of 2's might help, but it didn't. w=: 13 :'(x,y)$|.2^i.y' ]kk 0 0 0 0 0 0 _1 _1 _1 _1 0 0 0 0 0 0 _1 _1 _1 0 0 0 0 0 0 0 _1 _1 0 _1 0 0 0 0 0 0 _1 _1 0 0 0 0 0 0 0 0 _1 0 _1 _1 0 0 0 0 0 0 _1 0 _1 0 0 0 0 0 0 0 _1 0 0 _1 0 0 0 0 0 0 _1 0 0 0 0 0 0 0 0 0 0 _1 _1 _1 0 0 0 0 0 0 0 _1 _1 0 0 0 0 0 0 0 0 _1 0 _1 0 0 0 0 0 0 0 _1 0 0 0 0 0 0 0 0 0 0 _1 _1 0 0 0 0 0 0 0 0 _1 0 0 0 0 0 0 0 0 0 0 _1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 _1 _1 _1 _1 _1 0 0 0 0 1 _1 _1 _1 _1 0 0 0 0 0 1 _1 _1 _1 0 _1 0 0 0 0 1 _1 _1 _1 0 0 0 0 0 0 1 _1 _1 0 _1 _1 0 0 0 0 1 _1 _1 0 _1 0 0 0 0 0 1 _1 _1 0 0 _1 0 0 0 0 1 _1 _1 0 0 0 0 0 0 0 1 _1 0 _1 _1 _1 0 0 0 0 1 _1 0 _1 _1 0 0 0 0 0 1 _1 0 _1 0 _1 0 0 0 0 1 _1 0 _1 0 0 0 0 0 0 1 _1 0 0 _1 _1 0 0 0 0 1 _1 0 0 _1 0 0 0 0 0 1 _1 0 0 0 _1 ]kkkk=:31 _6 {."2 kk 0 0 _1 _1 _1 _1 0 0 _1 _1 _1 0 0 0 _1 _1 0 _1 0 0 _1 _1 0 0 0 0 _1 0 _1 _1 0 0 _1 0 _1 0 0 0 _1 0 0 _1 0 0 _1 0 0 0 0 0 0 _1 _1 _1 0 0 0 _1 _1 0 0 0 0 _1 0 _1 0 0 0 _1 0 0 0 0 0 0 _1 _1 0 0 0 0 _1 0 0 0 0 0 0 _1 0 0 0 0 0 0 1 _1 _1 _1 _1 _1 1 _1 _1 _1 _1 0 1 _1 _1 _1 0 _1 1 _1 _1 _1 0 0 1 _1 _1 0 _1 _1 1 _1 _1 0 _1 0 1 _1 _1 0 0 _1 1 _1 _1 0 0 0 1 _1 0 _1 _1 _1 1 _1 0 _1 _1 0 1 _1 0 _1 0 _1 1 _1 0 _1 0 0 1 _1 0 0 _1 _1 1 _1 0 0 _1 0 1 _1 0 0 0 _1 So watch this: w=: 13 :'(x,y)$|.2^i.y' 15 w 10 15 w 10 512 256 128 64 32 16 8 4 2 1 512 256 128 64 32 16 8 4 2 1 512 256 128 64 32 16 8 4 2 1 512 256 128 64 32 16 8 4 2 1 512 256 128 64 32 16 8 4 2 1 512 256 128 64 32 16 8 4 2 1 512 256 128 64 32 16 8 4 2 1 512 256 128 64 32 16 8 4 2 1 512 256 128 64 32 16 8 4 2 1 512 256 128 64 32 16 8 4 2 1 512 256 128 64 32 16 8 4 2 1 512 256 128 64 32 16 8 4 2 1 512 256 128 64 32 16 8 4 2 1 512 256 128 64 32 16 8 4 2 1 512 256 128 64 32 16 8 4 2 1 $cc 15 6 cc 0 0 0 _1 _1 _1 0 0 0 _1 _1 0 0 0 0 _1 0 _1 0 0 0 _1 0 0 0 0 0 0 _1 _1 0 0 0 0 _1 0 0 0 0 0 0 _1 0 0 0 0 0 0 0 1 _1 _1 _1 _1 0 1 _1 _1 _1 0 0 1 _1 _1 0 _1 0 1 _1 _1 0 0 0 1 _1 0 _1 _1 0 1 _1 0 _1 0 0 1 _1 0 0 _1 15 w 6 32 16 8 4 2 1 32 16 8 4 2 1 32 16 8 4 2 1 32 16 8 4 2 1 32 16 8 4 2 1 32 16 8 4 2 1 32 16 8 4 2 1 32 16 8 4 2 1 32 16 8 4 2 1 32 16 8 4 2 1 32 16 8 4 2 1 32 16 8 4 2 1 32 16 8 4 2 1 32 16 8 4 2 1 32 16 8 4 2 1 (15 w 6)*cc 0 0 0 _4 _2 _1 0 0 0 _4 _2 0 0 0 0 _4 0 _1 0 0 0 _4 0 0 0 0 0 0 _2 _1 0 0 0 0 _2 0 0 0 0 0 0 _1 0 0 0 0 0 0 0 16 _8 _4 _2 _1 0 16 _8 _4 _2 0 0 16 _8 _4 0 _1 0 16 _8 _4 0 0 0 16 _8 0 _2 _1 0 16 _8 0 _2 0 0 16 _8 0 0 _1 +/"1 (15 w 6)*cc _7 _6 _5 _4 _3 _2 _1 0 1 2 3 4 5 6 7 w=: 13 :'(x,y)$|.2^i.y' , $ [: |. 2 ^ [: i. ] 15 w 10 512 256 128 64 32 16 8 4 2 1 512 256 128 64 32 16 8 4 2 1 512 256 128 64 32 16 8 4 2 1 512 256 128 64 32 16 8 4 2 1 512 256 128 64 32 16 8 4 2 1 512 256 128 64 32 16 8 4 2 1 512 256 128 64 32 16 8 4 2 1 512 256 128 64 32 16 8 4 2 1 512 256 128 64 32 16 8 4 2 1 512 256 128 64 32 16 8 4 2 1 512 256 128 64 32 16 8 4 2 1 512 256 128 64 32 16 8 4 2 1 512 256 128 64 32 16 8 4 2 1 512 256 128 64 32 16 8 4 2 1 512 256 128 64 32 16 8 4 2 1 $cc 15 6 cc 0 0 0 _1 _1 _1 0 0 0 _1 _1 0 0 0 0 _1 0 _1 0 0 0 _1 0 0 0 0 0 0 _1 _1 0 0 0 0 _1 0 0 0 0 0 0 _1 0 0 0 0 0 0 0 1 _1 _1 _1 _1 0 1 _1 _1 _1 0 0 1 _1 _1 0 _1 0 1 _1 _1 0 0 0 1 _1 0 _1 _1 0 1 _1 0 _1 0 0 1 _1 0 0 _1 15 w 6 32 16 8 4 2 1 32 16 8 4 2 1 32 16 8 4 2 1 32 16 8 4 2 1 32 16 8 4 2 1 32 16 8 4 2 1 32 16 8 4 2 1 32 16 8 4 2 1 32 16 8 4 2 1 32 16 8 4 2 1 32 16 8 4 2 1 32 16 8 4 2 1 32 16 8 4 2 1 32 16 8 4 2 1 32 16 8 4 2 1 (15 w 6)*cc 0 0 0 _4 _2 _1 0 0 0 _4 _2 0 0 0 0 _4 0 _1 0 0 0 _4 0 0 0 0 0 0 _2 _1 0 0 0 0 _2 0 0 0 0 0 0 _1 0 0 0 0 0 0 0 16 _8 _4 _2 _1 0 16 _8 _4 _2 0 0 16 _8 _4 0 _1 0 16 _8 _4 0 0 0 16 _8 0 _2 _1 0 16 _8 0 _2 0 0 16 _8 0 0 _1 +/"1 (15 w 6)*cc _7 _6 _5 _4 _3 _2 _1 0 1 2 3 4 5 6 7 I thought it was going to require cases to deal with both positive and negative numbers. I'm sure I am providing something much too simplistic but maybe it help you. See the next post for a list you can paste in a file and run in jijx. Linda -----Original Message----- From: programming-boun...@jsoftware.com [mailto:programming-boun...@jsoftware.com] On Behalf Of Linda Alvord Sent: Sunday, December 11, 2011 5:03 AM To: 'Programming forum' Subject: [Jprogramming] #: needs growing room ]a=:8+i.15 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ]aa=:2 2 2 2 2#:a 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 1 0 ]b=:15#15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 ]bb=:2 2 2 2 2#:b 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 ]c=:a-b _7 _6 _5 _4 _3 _2 _1 0 1 2 3 4 5 6 7 ]cc=:aa-bb 0 0 _1 _1 _1 0 0 _1 _1 0 0 0 _1 0 _1 0 0 _1 0 0 0 0 0 _1 _1 0 0 0 _1 0 0 0 0 0 _1 0 0 0 0 0 1 _1 _1 _1 _1 1 _1 _1 _1 0 1 _1 _1 0 _1 1 _1 _1 0 0 1 _1 0 _1 _1 1 _1 0 _1 0 1 _1 0 0 _1 The negatives look good! 2 2 2 2 2#.cc _7 _6 _5 _4 _3 _2 _1 0 1 2 3 4 5 6 7 #. Is still happy Now convert the positives to positives that look good. ]gg=:2 2 2 2 2 #:+/"1 dd*8 5$|.2^i.5 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 dd 0 0 0 0 0 1 _1 _1 _1 _1 1 _1 _1 _1 0 1 _1 _1 0 _1 1 _1 _1 0 0 1 _1 0 _1 _1 1 _1 0 _1 0 1 _1 0 0 _1 I don't remember ever seeing negative binary numbers but pasting the good negatives to the good positives makes a nice symmetric image. Linda ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm