quat_interpolate man page
quat_interpolate — Constructs a quaternion representing a rotation between from and to. Allegro game programming library.
void quat_interpolate(const QUAT *from, const QUAT *to, float t, QUAT *out);
Constructs a quaternion that represents a rotation between from and to. The argument t can be anything between 0 and 1 and represents where between from and to the result will be. 0 returns from, 1 returns to, and 0.5 will return a rotation exactly in between. The result is copied to out. This function will create the short rotation (less than 180 degrees) between from and to.