code: public static boolean decomposeQR_block_col( final int blockLength ,
                                                   final DSubmatrixD1 Y ,
                                                   final double gamma[] )
      {
          int width = Y.col1-Y.col0;
          int height = Y.row1-Y.row0;
          int min = Math.min(width,height);
          for( int i = 0; i < min; i++ ) {
              // compute the householder vector
              if (!computeHouseHolderCol(blockLength, Y, gamma, i))
                  return false;
  
              // apply to rest of the columns in the block
              rank1UpdateMultR_Col(blockLength,Y,i,gamma[Y.col0+i]);
          }
  
          return true;
      }
docs: Performs a standard QR decomposition on the specified submatrix that is one block wide.
  
  @param blockLength
  @param Y
  @param gamma