LAPACK's QR routine stores Q as Householder reflectors. It scales the reflection vector $v$ with $1/v_1$, so the first element of the result becomes $1$, so it doesn't have to be stored. And it stores a separate $\tau$ vector, which contains the needed scale factors. So a reflector matrix is like this: $$H=I-\tau v v^T,$$
where $v$ is not normalized. While, in textbooks, the reflector matrix is
$$H = I-2vv^T,$$
where $v$ is normalized.
Why does LAPACK scale $v$ with $1/v_1$, instead of normalizing it?
Needed storage is the same (instead of $\tau$, $v_1$ has to be stored), and afterwards, applying $H$ can be done faster, as there is no need to multiply with $\tau$ (multiplication with $2$ in the textbook version can be optimized, if instead of simple normalization, $v$ is scaled by $\sqrt 2/\|v\|$).
(The reason of my question is that I'm writing an QR and SVD routine, and I'd like to know the reason of this decision, whether I need to follow it or not)