docs: @Override
      public DMatrixRMaj getQ(DMatrixRMaj Q , boolean compact ) {
          if( compact ) {
              if( Q == null ) {
                  Q = CommonOps_DDRM.identity(numRows,minLength);
              } else {
                  if( Q.numRows != numRows || Q.numCols != minLength ) {
                      throw new IllegalArgumentException("Unexpected matrix dimension.");
                  } else {
                      CommonOps_DDRM.setIdentity(Q);
                  }
              }
          } else {
              if( Q == null ) {
                  Q = CommonOps_DDRM.identity(numRows);
              } else {
                  if( Q.numRows != numRows || Q.numCols != numRows ) {
                      throw new IllegalArgumentException("Unexpected matrix dimension.");
                  } else {
                      CommonOps_DDRM.setIdentity(Q);
                  }
              }
          }
  
          for( int j = minLength-1; j >= 0; j-- ) {
              u[j] = 1;
              for( int i = j+1; i < numRows; i++ ) {
                  u[i] = QR.get(i,j);
              }
              QrHelperFunctions_DDRM.rank1UpdateMultR(Q, u, gammas[j], j, j, numRows, v);
          }
  
          return Q;
      }