クォータニオン (Quaternion) の合成、かけ算

自分用のメモとして、
http://d.hatena.ne.jp/yfp/20040610#p2
に追加。
qL, qR, qqがクォータニオン
q (w, v) = q (w, (x, y, z))という構成。

qq.v = qL.w * qR.v + qL.v * qR.w + qL.v x qR.v
qq.w = qL.w * qR.w - (qL.v・qR.v)
qq.x = qL.w * qR.x + qL.x * qR.w + qL.y * qR.z - qL.z * qR.y;
qq.y = qL.w * qR.y + qL.y * qR.w + qL.z * qR.x - qL.x * qR.z;
qq.z = qL.w * qR.z + qL.z * qR.w + qL.x * qR.y - qL.y * qR.x;
qq.w = qL.w * qR.w - qL.x * qR.x - qL.y * qR.y - qL.z * qR.z;