code: public static double computeTauAndDivideCol( final int blockLength ,
                                                   final DSubmatrixD1 Y ,
                                                   final int col , final double max ) {
          final int width = Math.min(blockLength,Y.col1-Y.col0);
  
          final double dataY[] = Y.original.data;
  
          double top=0;
          double norm2 = 0;
  
          for( int i = Y.row0; i < Y.row1; i += blockLength ) {
              int height = Math.min( blockLength , Y.row1 - i );
  
              int index = i*Y.original.numCols + height*Y.col0 + col;
  
              if( i == Y.row0 ) {
                  index += width*col;
                  // save this value so that the sign can be determined later on
                  top = dataY[index] /= max;
                  norm2 += top*top;
                  index += width;
  
                  for( int k = col+1; k < height; k++ , index += width ) {
                      double val = dataY[index] /= max;
                      norm2 += val*val;
                  }
              } else {
                  for( int k = 0; k < height; k++ , index += width ) {
                      double val = dataY[index] /= max;
                      norm2 += val*val;
                  }
              }
          }
  
          norm2 = Math.sqrt(norm2);
  
          if( top < 0 )
              norm2 = -norm2;
  
          return norm2;
      }
docs: <p>
  From the specified column of Y tau is computed and each element is divided by 'max'.
  See code below:
  </p>
  
  <pre>
  for i=col:Y.numRows
  Y[i][col] = u[i][col] / max
  tau = tau + u[i][col]*u[i][col]
  end
  tau = sqrt(tau)
  if( Y[col][col] &lt; 0 )
  tau = -tau;
  </pre>