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

Reply via email to