target/generated-sources/template/com/flowpowered/math/imaginary/Quaterniond.java
public Quaterniond mul(double x, double y, double z, double w) {
        return new Quaterniond(
                this.w * x + this.x * w + this.y * z - this.z * y,
                this.w * y + this.y * w + this.z * x - this.x * z,
                this.w * z + this.z * w + this.x * y - this.y * x,
                this.w * w - this.x * x - this.y * y - this.z * z);
    }
public Quaterniond mul(double x, double y, double z, double w) {
        return new Quaterniond(
                this.w * x + this.x * w + this.y * z - this.z * y,
                this.w * y + this.y * w + this.z * x - this.x * z,
                this.w * z + this.z * w + this.x * y - this.y * x,
                this.w * w - this.x * x - this.y * y - this.z * z);
    }
Multiplies the double components of another quaternion with this one.

@param x The x (imaginary) component of the quaternion to multiply with
@param y The y (imaginary) component of the quaternion to multiply with
@param z The z (imaginary) component of the quaternion to multiply with
@param w The w (real) component of the quaternion to multiply with
@return A new quaternion, which is the product of both