static multiplyQuaternionsFlat( dst, dstOffset, src0, srcOffset0, src1, srcOffset1 ) {

		const x0 = src0[ srcOffset0 ];
		const y0 = src0[ srcOffset0 + 1 ];
		const z0 = src0[ srcOffset0 + 2 ];
		const w0 = src0[ srcOffset0 + 3 ];

		const x1 = src1[ srcOffset1 ];
		const y1 = src1[ srcOffset1 + 1 ];
		const z1 = src1[ srcOffset1 + 2 ];
		const w1 = src1[ srcOffset1 + 3 ];

		dst[ dstOffset ] = x0 * w1 + w0 * x1 + y0 * z1 - z0 * y1;
		dst[ dstOffset + 1 ] = y0 * w1 + w0 * y1 + z0 * x1 - x0 * z1;
		dst[ dstOffset + 2 ] = z0 * w1 + w0 * z1 + x0 * y1 - y0 * x1;
		dst[ dstOffset + 3 ] = w0 * w1 - x0 * x1 - y0 * y1 - z0 * z1;

		return dst;

	}
Multiplies two quaternions. This implementation assumes the quaternion data are managed
in flat arrays.

@param {Array<number>} dst - The destination array.
@param {number} dstOffset - An offset into the destination array.
@param {Array<number>} src0 - The source array of the first quaternion.
@param {number} srcOffset0 - An offset into the first source array.
@param {Array<number>} src1 -  The source array of the second quaternion.
@param {number} srcOffset1 - An offset into the second source array.
@return {Array<number>} The destination array.
@see {@link Quaternion#multiplyQuaternions}.