So, earlier today I asked the question
How to transform this matrix & swap its columns in a simple way?
and was given useful and elaborated answers. Now, I'm still not used to the "Array", "Reverse", "Map", etc. functions (which were new to me this morning) and this question is in fact a particular case of the other one :
I would like to transform matrix $\mathbf A = \begin{pmatrix} a_{11}&b_{11}&a_{12}&b_{12}&a_{13}&b_{13}\\ a_{21}&b_{21}&a_{22}&b_{22}&a_{23}&b_{23} \\ a_{31}&b_{31}&a_{32}&b_{32}&a_{33}&b_{33} \\ a_{41}&b_{41}&a_{42}&b_{42}&a_{43}&b_{43} \\ a_{51}&b_{51}&a_{52}&b_{52}&a_{53}&b_{54} \\ a_{61}&b_{61}&a_{62}&b_{62}&a_{63}&b_{63} \\ a_{71}&b_{71}&a_{72}&b_{72}&a_{73}&b_{73} \\ a_{81}&b_{81}&a_{82}&b_{82}&a_{83}&b_{83} \end{pmatrix}$ into matrix $\mathbf B = \begin{pmatrix} a_{83}&-b_{83}&a_{82}&-b_{82}&a_{81}&-b_{81} \\ a_{73}&-b_{73}&a_{72}&-b_{72}&a_{71}&-b_{71}\\ a_{63}&-b_{63}&a_{62}&-b_{62}&a_{61}&-b_{61} \\ a_{53}&-b_{53}&a_{52}&-b_{52}&a_{51}&-b_{51} \\ a_{43}&-b_{43}&a_{42}&-b_{42}&a_{41}&-b_{41}\\ a_{33}&-b_{33}&a_{32}&-b_{32}&a_{31}&-b_{31} \\ a_{23}&-b_{23}&a_{22}&-b_{22}&a_{21}&-b_{21} \\ a_{13}&-b_{13}&a_{12}&-b_{12}&a_{11}&-b_{11} \end{pmatrix}$.
In fact, to do this, I can multiply matrix $\mathbf A$ by the anti-diagonal identity matrix on the left : $\begin{pmatrix} 0&0&0&0&0&0&0&1\\ 0&0&0&0&0&0&1&0 \\ 0&0&0&0&0&1&0&0 \\ 0&0&0&0&1&0&0&0 \\ 0&0&0&1&0&0&0&0 \\ 0&0&1&0&0&0&0&0 \\ 0&1&0&0&0&0&0&0 \\ 1&0&0&0&0&0&0&0 \end{pmatrix}$, and multiply on the right by $\begin{pmatrix} 0&0&0&0&0&0&1&0\\ 0&0&0&0&0&0&0&-1 \\ 0&0&0&0&1&0&0&0 \\ 0&0&0&0&0&-1&0&0 \\ 0&0&1&0&0&0&0&0 \\ 0&0&0&-1&0&0&0&0 \\ 1&0&0&0&0&0&0&0 \\ 0&-1&0&0&0&0&0&0\end{pmatrix}$ to obtain matrix $\mathbf B$.
But I can't figure out how to generalize this to $\{n\times m,\ n>8,\ m>6\}$ size matrices, and most importantly how to make it efficient in terms of time consumption... Does anyone have any ideas?
Thanks in advance.
Mathematica expression of A :
A = Table[Sequence @@ {a[i, j], b[i, j]}, {i, 8}, {j, 3}]
Additional note : What I intend to do is to :
Turn the matrix upside down
Treat block matrices by sets of two columns and in each set
- Change the sign of the second column of each set
- Finally flipping the matrix as in a mirror image (but keeping the sets of two columns in order : for the example above $\rightarrow$ columns 1 & 2 become 4 & 6; columns 2 & 3 stay in their place (only in this example); columns 4 & 6 become 1 & 2.

Arrayyou are using? – Mr.Wizard Feb 18 '13 at 08:33sa[x__]has two underscores in the pattern and you can check that both invocations ofsaactually use two arguments. I used this abbreviation in order to clarify the ultimate line, which otherwise would be obscured by the two references toSparseArray[Array[..]]. – whuber Feb 18 '13 at 17:09