code: public DMatrixRMaj getH(DMatrixRMaj H ) {
          H = UtilDecompositons_DDRM.checkZeros(H,N,N);
  
          // copy the first row
          System.arraycopy(QH.data, 0, H.data, 0, N);
  
          for( int i = 1; i < N; i++ ) {
              for( int j = i-1; j < N; j++ ) {
                  H.set(i,j, QH.get(i,j));
              }
          }
  
          return H;
      }
docs: An upper Hessenberg matrix from the decomposition.
  
  @param H If not null then the results will be stored here.  Otherwise a new matrix will be created.
  @return The extracted H matrix.