code: @Override
      public DMatrixRMaj getU(DMatrixRMaj U , boolean transpose , boolean compact ) {
          U = handleU(U, transpose, compact,m,n,min);
          CommonOps_DDRM.setIdentity(U);
  
          for( int i = 0; i < m; i++ ) u[i] = 0;
  
          for( int j = min-1; j >= 0; j-- ) {
              u[j] = 1;
              for( int i = j+1; i < m; i++ ) {
                  u[i] = UBV.get(i,j);
              }
              if( transpose )
                  QrHelperFunctions_DDRM.rank1UpdateMultL(U, u, gammasU[j], j, j, m);
              else
                  QrHelperFunctions_DDRM.rank1UpdateMultR(U, u, gammasU[j], j, j, m, this.b);
          }
  
          return U;
      }
docs: Returns the orthogonal U matrix.
  
  @param U If not null then the results will be stored here.  Otherwise a new matrix will be created.
  @return The extracted Q matrix.