Said L the incoming ray (at a point $P$). $R$ is the reflected ray. $N$ is the normal to the surface at the point $P$. $\alpha$ is the angle between $N$ and $L$ (and $N$ and $R$ also). It is assumed a smooth surface (like a plane). $P_{R1}$ is the projection of the vector $R$ on the plane. $R_2$ is the vector that joins the vector $R$ and $P_{R1}$. Now you have,
$R= P_{R1} + R_2$ (sum of vectors)
$P_{R1} = -L+R_2$
Thus: $R=2R_2-L$
Now, exploiting the property of dot product (namely scalar product)
$R_2 = (N\cdot L)/|N|$ (because $R_2$ is $L\cos(\alpha)$ because is the projection of $L$ on $N$)
where $N\cdot L$ is the dot product and $|N|$ is the magnitude (the module) of vector $N$. But the vector $N$ is the normal that typically has $|N|=1$ Thus:
$R = 2(N\cdot L)-L$
But my book (3D Computer Graphics, Alan Watt) tells that:
$R_2 = (N\cdot L)N$
Rather for me is:
$R_2=(N\cdot L)/|N| = N\cdot L$ (because $|N|=1$)
I don't understand this point.