code: public static ZMatrixRMaj householder(ZMatrixRMaj u , double gamma ) {
          int N = u.getDataLength()/2;
          // u*u^H
          ZMatrixRMaj uut = new ZMatrixRMaj(N,N);
          VectorVectorMult_ZDRM.outerProdH(u, u, uut);
          // foo = -gamma*u*u^H
          CommonOps_ZDRM.elementMultiply(uut,-gamma,0,uut);
  
          // I + foo
          for (int i = 0; i < N; i++) {
              int index = (i*uut.numCols+i)*2;
              uut.data[index] = 1 + uut.data[index];
          }
  
          return uut;
      }
docs: Q = I - gamma*u*u<sup>H</sup>