Perhaps, I should explain that certain terms in the 
C version of transposeSquare are really constants. For 
example, if the argument is i. 9, then

%:@#  is width or 3
# is width*height or 9

I hope that helps.

On Mon, 28 Jan 2013, Brian Schott wrote:

        I am trying to use objective C and am using j to develop some pieces. I
have the verb `transposeSquare` which transposes a square matrix's indices using
indices and reproduces j's Transpose. In C code the indices are named ii and are
being generated in a for loop as follows, where width and height are actually
both 13 but my j examples use 3 instead of 13.

for (int ii = 0 ; ii < width * height ; ++ii)

   transposeSquare =: (] <.@% %:@#)+#| %:@# *]
   transposeSquare i. 9
0 3 6 1 4 7 2 5 8
   ,|:i. 3 3           NB. this is the "J way"
0 3 6 1 4 7 2 5 8

        Now with C code for loop in mind I need a verb which first does what
transposeSquare does and then reverses the indices using the operators available
to C so that the result of the verb would be as follows.

   ,|.|:i. 3 3         NB. this is the "J way"
2 5 8 1 4 7 0 3 6

        That is, I need a verb (say, reverseOfTranspose, rOT), which gives the
same result as ,|.|:i. 3 3 but with the scalar argument 3 and is limited to C
operators.

(B=)
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to