code: public Quaternionf difference(Quaternionf other, Quaternionf dest) {
          float invNorm = 1.0f / (x * x + y * y + z * z + w * w);
          float x = -this.x * invNorm;
          float y = -this.y * invNorm;
          float z = -this.z * invNorm;
          float w = this.w * invNorm;
          dest.set(w * other.x + x * other.w + y * other.z - z * other.y,
                   w * other.y - x * other.z + y * other.w + z * other.x,
                   w * other.z + x * other.y - y * other.x + z * other.w,
                   w * other.w - x * other.x - y * other.y - z * other.z);
          return dest;
      }
docs: /* (non-Javadoc)
  @see org.joml.Quaternionfc#difference(org.joml.Quaternionf, org.joml.Quaternionf)