Well, as I just said to Lunnon, I think you can zero the entries of the lower triangle of an arbitrary NxN matrix in the order N-1 : 2N-3 : : 4 N+3 3 N+2 : 2 N+1 2N-5 1 N 2N-4 ... etc, i.e. raster scan, column by column, going upward within each column. Each zeroing is performed using an adjacent-coordinate 2x2 rotation affecting rows k and k-1 only and zeroing the entry in row k. Note no previously zeroed entry ever is unzeroed. If original matrix was orthogonal then final matrix is upper-triangular orthog hence is identity matrix. And by the way, every procedure of this kind is quite numerically stable as is well known (see any computational linear algebra book), unlike if non-orthogonal transformations were being used, when that often is much more of a problem. I had also earlier suggested to Lunnon this alternative ordering of the entries being zeroed 7 4 8 2 5 9 1 3 6 ... again each entry is zeroed by a 2x2 rotation affecting only rows k and k-1, where the entry in row k is the one being zeroed (and the entry above it, in row k-1, is altered too); and again each zeroing should never unzero any previously zeroed entry. -- Warren D. Smith http://RangeVoting.org <-- add your endorsement (by clicking "endorse" as 1st step)