in math/src/fft/concurrent.rs [200:212]
fn transpose_square_2<T>(matrix: &mut [T], size: usize) {
debug_assert_eq!(matrix.len(), 2 * size * size);
// iterate over upper-left triangle, working in 1x2 blocks
for row in 0..size {
for col in (row..size).skip(1) {
let i = (row * size + col) * 2;
let j = (col * size + row) * 2;
matrix.swap(i, j);
matrix.swap(i + 1, j + 1);
}
}
}