code: @Override
      public ZMatrixRMaj getQ(ZMatrixRMaj Q , boolean compact ) {
          if( compact )
              Q = UtilDecompositons_ZDRM.checkIdentity(Q,numRows,minLength);
          else
              Q = UtilDecompositons_ZDRM.checkIdentity(Q,numRows,numRows);
  
          for( int j = minLength-1; j >= 0; j-- ) {
              double u[] = dataQR[j];
  
              double vvReal = u[j*2];
              double vvImag = u[j*2+1];
  
              u[j*2]   = 1;
              u[j*2+1] = 0;
              double gammaReal = gammas[j];
  
              QrHelperFunctions_ZDRM.rank1UpdateMultR(Q, u,0, gammaReal,j, j, numRows, v);
  
              u[j*2]   = vvReal;
              u[j*2+1] = vvImag;
          }
  
          return Q;
      }
docs: Computes the Q matrix from the imformation stored in the QR matrix.  This
  operation requires about 4(m<sup>2</sup>n-mn<sup>2</sup>+n<sup>3</sup>/3) flops.
  
  @param Q The orthogonal Q matrix.