code: public static void computeW_Column(final int blockLength ,
                                         final DSubmatrixD1 Y , final DSubmatrixD1 W ,
                                         final double temp[], final double beta[] , int betaIndex ) {
  
          final int widthB = W.col1-W.col0;
  
          // set the first column in W
          initializeW(blockLength, W, Y, widthB, beta[betaIndex++]);
  
          final int min = Math.min(widthB,W.row1-W.row0);
  
          // set up rest of the columns
          for( int j = 1; j < min; j++ ) {
              //compute the z vector and insert it into W
              computeY_t_V(blockLength,Y,j,temp);
              computeZ(blockLength,Y,W,j,temp,beta[betaIndex++]);
          }
      }
docs: <p>
  Computes W from the householder reflectors stored in the columns of the column block
  submatrix Y.
  </p>
  
  <p>
  Y = v<sup>(1)</sup><br>
  W = -&beta;<sub>1</sub>v<sup>(1)</sup><br>
  for j=2:r<br>
  &nbsp;&nbsp;z = -&beta;(I +WY<sup>T</sup>)v<sup>(j)</sup> <br>
  &nbsp;&nbsp;W = [W z]<br>
  &nbsp;&nbsp;Y = [Y v<sup>(j)</sup>]<br>
  end<br>
  <br>
  where v<sup>(.)</sup> are the house holder vectors, and r is the block length.  Note that
  Y already contains the householder vectors so it does not need to be modified.
  </p>
  
  <p>
  Y and W are assumed to have the same number of rows and columns.
  </p>
  
  @param Y Input matrix containing householder vectors.  Not modified.
  @param W Resulting W matrix. Modified.
  @param temp Used internally.  Must have W.numCols elements.
  @param beta Beta's for householder vectors.
  @param betaIndex Index of first relevant beta.