code: public static void computeV_blockVector( final int blockLength ,
                                               final DSubmatrixD1 A ,
                                               final double gammas[] ,
                                               final DSubmatrixD1 V )
      {
          int blockHeight = Math.min(blockLength,A.row1-A.row0);
          if( blockHeight <= 1 )
              return;
          int width = A.col1-A.col0;
          int num = Math.min(width-1,blockHeight);
  
          for( int i = 0; i < num; i++ ) {
              double gamma = gammas[A.row0+i];
  
              // compute y
              computeY(blockLength,A,V,i,gamma);
  
              // compute v from y
              computeRowOfV(blockLength,A,V,i,gamma);
          }
      }
docs: <p>
  Given an already computed tridiagonal decomposition, compute the V row block vector.<br>
  <br>
  y(:) = A*u<br>
  v(i) = y - (1/2)*&gamma;*(y^T*u)*u
  </p>