code: public static DMatrixRMaj createReflector(DMatrix1Row u ) {
          if( !MatrixFeatures_DDRM.isVector(u))
              throw new IllegalArgumentException("u must be a vector");
  
          double norm = NormOps_DDRM.fastNormF(u);
          double gamma = -2.0/(norm*norm);
  
          DMatrixRMaj Q = CommonOps_DDRM.identity(u.getNumElements());
          CommonOps_DDRM.multAddTransB(gamma,u,u,Q);
  
          return Q;
      }
docs: <p>
  Creates a reflector from the provided vector.<br>
  <br>
  Q = I - &gamma; u u<sup>T</sup><br>
  &gamma; = 2/||u||<sup>2</sup>
  </p>
  
  <p>
  In practice {@link VectorVectorMult_DDRM#householder(double, DMatrixD1, DMatrixD1, DMatrixD1)}  multHouseholder}
  should be used for performance reasons since there is no need to calculate Q explicitly.
  </p>
  
  @param u A vector. Not modified.
  @return An orthogonal reflector.