public Quaterniond mul(Quaterniond q) {
        return mul(q.x, q.y, q.z, q.w);
    }
public Quaterniond mul(Quaterniond q) {
        return mul(q.x, q.y, q.z, q.w);
    }
public Quaterniond mul ( Quaterniond q ) { return mul ( q . x , q . y , q . z , q . w ) ; }
Multiplies another quaternion with this one.

@param q The quaternion to multiply with
@return A new quaternion, which is the product of both
Multiplies another quaternion with this one .