code: public static DMatrixRMaj transpose(DMatrixRMaj A, DMatrixRMaj A_tran)
      {
          if( A_tran == null ) {
              A_tran = new DMatrixRMaj(A.numCols,A.numRows);
          } else {
              if( A.numRows != A_tran.numCols || A.numCols != A_tran.numRows ) {
                  throw new MatrixDimensionException("Incompatible matrix dimensions");
              }
          }
  
          if( A.numRows > EjmlParameters.TRANSPOSE_SWITCH &&
                  A.numCols > EjmlParameters.TRANSPOSE_SWITCH )
              TransposeAlgs_DDRM.block(A,A_tran,EjmlParameters.BLOCK_WIDTH);
          else
              TransposeAlgs_DDRM.standard(A,A_tran);
  
          return A_tran;
      }
docs: <p>
  Transposes matrix 'a' and stores the results in 'b':<br>
  <br>
  b<sub>ij</sub> = a<sub>ji</sub><br>
  where 'b' is the transpose of 'a'.
  </p>
  
  @param A The original matrix.  Not modified.
  @param A_tran Where the transpose is stored. If null a new matrix is created. Modified.
  @return The transposed matrix.