I recently started reading OpenGL Superbible 5th edition and noticed the following:

Having just taken linear algebra this seemed odd to me. The column vector is of dimension 4×1 and the matrix is 4×4, how is it possible to multiply them together? If the vector were a row-vector and the output were a row vector I agree that it would be possible, but this?
Update: I emailed the author and he said that I was correct. He noticed the order was wrong in the previous edition of the book, however it ended up not being fixed in the 5th edition.
I agree: it should be a column vector that’s pre-multiplied by the identity matrix.
If it’s a row vector, then the RHS needs to be a row vector as well to make the dimensions match.