code: @Override
      public DMatrixRMaj getV(DMatrixRMaj V , boolean transpose , boolean compact ) {
          V = handleV(V, transpose, compact,m,n,min);
          CommonOps_DDRM.setIdentity(V);
  
  //        UBV.print();
  
          // todo the very first multiplication can be avoided by setting to the rank1update output
          for( int j = min-1; j >= 0; j-- ) {
              u[j+1] = 1;
              for( int i = j+2; i < n; i++ ) {
                  u[i] = UBV.get(j,i);
              }
              if( transpose )
                  QrHelperFunctions_DDRM.rank1UpdateMultL(V, u, gammasV[j], j + 1, j + 1, n);
              else
                  QrHelperFunctions_DDRM.rank1UpdateMultR(V, u, gammasV[j], j + 1, j + 1, n, this.b);
          }
  
          return V;
      }
docs: Returns the orthogonal V matrix.
  
  @param V If not null then the results will be stored here.  Otherwise a new matrix will be created.
  @return The extracted Q matrix.