recursive ctranspose