code: public Quaternionf mul(double x, double y, double z, double w) {
          return mul((float) x, (float) y, (float) z, (float) w);
      }
docs: 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