code: protected void updateA( int w )
      {
          final double u[] = dataQR[w];
  
          for( int j = w+1; j < numCols; j++ ) {
  
              final double colQ[] = dataQR[j];
              // first element in u is assumed to be 1.0 + 0*i
              double realSum = colQ[w*2];
              double imagSum = colQ[w*2+1];
  
              for( int k = w+1; k < numRows; k++ ) {
                  double realU = u[k*2];
                  double imagU = -u[k*2+1];
  
                  double realQ = colQ[k*2];
                  double imagQ = colQ[k*2+1];
  
                  realSum += realU*realQ - imagU*imagQ;
                  imagSum += imagU*realQ + realU*imagQ;
              }
              realSum *= gamma;
              imagSum *= gamma;
  
              colQ[w*2  ] -= realSum;
              colQ[w*2+1] -= imagSum;
  
              for( int i = w+1; i < numRows; i++ ) {
                  double realU = u[i*2];
                  double imagU = u[i*2+1];
  
                  colQ[i*2]  -= realU*realSum - imagU*imagSum;
                  colQ[i*2+1]-= imagU*realSum + realU*imagSum;
              }
          }
      }
docs: <p>
  Takes the results from the householder computation and updates the 'A' matrix.<br>
  <br>
  A = (I - &gamma;*u*u<sup>H</sup>)A
  </p>
  
  @param w The submatrix.