x \cdot \tan \left(\frac{x}{2}\right) + \frac{\left(q1 + q2 \cdot \sqrt{3}\right) \cdot \sinh q1 + \left(q1 \cdot \sqrt{3} - q2\right) \cdot \sin q2}{\cosh q1 + \cos q2}x \cdot \tan \left(\frac{x}{2}\right) + \frac{\left(q1 + q2 \cdot \sqrt{3}\right) \cdot \sinh q1 + \left(q1 \cdot \sqrt{3} - q2\right) \cdot \sin q2}{\cosh q1 + \cos q2}double code(double x, double q1, double q2) {
return ((double) (((double) (x * ((double) tan(((double) (x / 2.0)))))) + ((double) (((double) (((double) (((double) (q1 + ((double) (q2 * ((double) sqrt(3.0)))))) * ((double) sinh(q1)))) + ((double) (((double) (((double) (q1 * ((double) sqrt(3.0)))) - q2)) * ((double) sin(q2)))))) / ((double) (((double) cosh(q1)) + ((double) cos(q2))))))));
}
double code(double x, double q1, double q2) {
return ((double) (((double) (x * ((double) tan(((double) (x / 2.0)))))) + ((double) (((double) (((double) (((double) (q1 + ((double) (q2 * ((double) sqrt(3.0)))))) * ((double) sinh(q1)))) + ((double) (((double) (((double) (q1 * ((double) sqrt(3.0)))) - q2)) * ((double) sin(q2)))))) / ((double) (((double) cosh(q1)) + ((double) cos(q2))))))));
}



Bits error versus x



Bits error versus q1



Bits error versus q2
Results
Initial program 1.7
Final simplification1.7
herbie shell --seed 2020153
(FPCore (x q1 q2)
:name "(+ (* x (tan (/ x 2))) (/ (+ (* (+ q1 (* q2 (sqrt 3))) (sinh q1)) (* (- (* q1 (sqrt 3)) q2) (sin q2))) (+ (cosh q1) (cos q2))))"
:precision binary64
(+ (* x (tan (/ x 2.0))) (/ (+ (* (+ q1 (* q2 (sqrt 3.0))) (sinh q1)) (* (- (* q1 (sqrt 3.0)) q2) (sin q2))) (+ (cosh q1) (cos q2)))))