I have two vectors $\vec a$ and $\vec b$ in 3d space. Both of these vectors has length (magnitude) 1 and begin from the origin, so $\vec a$ can be turned into $\vec b$ by a unit quaternion $q$:
$$\vec b = q^{-1} \vec a q$$
So the question is: how can I get this quaternion $q$ that turns vector $\vec a$ into vector $\vec b$? Speaking about why I need this, actually the problem's to rotate a bunch of points, while $\vec a$ and $\vec b$ just set the rotation. And I had to do this exactly using quaternion math, not matrixes or angles.
Any help on how I can solve this would be appreciated, but the better way is to get a rotation quaternion directly without finding a matrix and converting it into a quaternion. Thank in advance!
NOTE: The angle between these two vectors can't be greater than 90°.