code: public static void initializeW(final int blockLength,
                                     final DSubmatrixD1 W, final DSubmatrixD1 Y,
                                     final int widthB, final double b) {
  
          final double dataW[] = W.original.data;
          final double dataY[] = Y.original.data;
  
          for( int i = W.row0; i < W.row1; i += blockLength ) {
              int heightW = Math.min( blockLength , W.row1 - i );
  
              int indexW = i*W.original.numCols + heightW*W.col0;
              int indexY = i*Y.original.numCols + heightW*Y.col0;
  
              // take in account the first element in V being 1
              if( i == W.row0 ) {
                  dataW[indexW] = -b;
                  indexW += widthB;
                  indexY += widthB;
                  for( int k = 1; k < heightW; k++ , indexW += widthB , indexY += widthB ) {
                      dataW[indexW] = -b* dataY[indexY];
                  }
              } else {
                  for( int k = 0; k < heightW; k++ , indexW += widthB , indexY += widthB ) {
                      dataW[indexW] = -b* dataY[indexY];
                  }
              }
          }
      }
docs: <p>
  Sets W to its initial value using the first column of 'y' and the value of 'b':
  <br>
  W = -&beta;v<br>
  <br>
  where v = Y(:,0).
  </p>
  
  @param blockLength size of the inner block
  @param W Submatrix being initialized.
  @param Y Contains householder vector
  @param widthB How wide the W block matrix is.
  @param b beta