-z * invNorm);
-z * invNorm, w * invNorm);
    public Quaternion inverse() {        float norm = w * w + x * x + y * y + z * z;        if (norm > 0.0) {            float invNorm = 1.0f / norm;            return new Quaternion(                w * invNorm,                -x * invNorm,                -y * invNorm,                -z * invNorm);        } else {            // return an invalid result to flag the error            return null;        }    }