module.exports = multiply /** * Multiplies two quat's * * @param {quat} out the receiving quaternion * @param {quat} a the first operand * @param {quat} b the second operand * @returns {quat} out */ function multiply (out, a, b) { var ax = a[0], ay = a[1], az = a[2], aw = a[3], bx = b[0], by = b[1], bz = b[2], bw = b[3] out[0] = ax * bw + aw * bx + ay * bz - az * by out[1] = ay * bw + aw * by + az * bx - ax * bz out[2] = az * bw + aw * bz + ax * by - ay * bx out[3] = aw * bw - ax * bx - ay * by - az * bz return out }