Transposing a matrix without incurring additional storage
David A. Zein · 2002
Transposing a rectangular matrix without incurring additional storage (i.e. transposing the matrix in place) consists of decomposing the absolute locations of the matrix into disjoint cyclic subgroups. Any element of the subgroup can be used as a primer to generate all the locations of the elements in the transposed matrix using a recursive operation or mapping to be precisely defined. The cyclic subgroup generators are the only additional storage required. The method has been implemented in both APL and FORTRAN.>