\frac{2 + \left(\left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)\right) \cdot \left(\sin y - \frac{\sin x}{16}\right)\right) \cdot \left(\cos x - \cos y\right)}{3 \cdot \left(\left(1 + \frac{\sqrt{5} - 1}{2} \cdot \cos x\right) + \frac{3 - \sqrt{5}}{2} \cdot \cos y\right)}\frac{2 + \log \left(e^{\left(\log \left(e^{\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)}\right) \cdot \left(\sin y - \frac{\sin x}{16}\right)\right) \cdot \left(\cos x - \cos y\right)}\right)}{3 \cdot \left(\left(1 + \frac{\sqrt{5} - 1}{2} \cdot \cos x\right) + \frac{\frac{3 \cdot 3 - 5}{3 + \sqrt{5}}}{2} \cdot \cos y\right)}double f(double x, double y) {
double r231549 = 2.0;
double r231550 = sqrt(r231549);
double r231551 = x;
double r231552 = sin(r231551);
double r231553 = y;
double r231554 = sin(r231553);
double r231555 = 16.0;
double r231556 = r231554 / r231555;
double r231557 = r231552 - r231556;
double r231558 = r231550 * r231557;
double r231559 = r231552 / r231555;
double r231560 = r231554 - r231559;
double r231561 = r231558 * r231560;
double r231562 = cos(r231551);
double r231563 = cos(r231553);
double r231564 = r231562 - r231563;
double r231565 = r231561 * r231564;
double r231566 = r231549 + r231565;
double r231567 = 3.0;
double r231568 = 1.0;
double r231569 = 5.0;
double r231570 = sqrt(r231569);
double r231571 = r231570 - r231568;
double r231572 = r231571 / r231549;
double r231573 = r231572 * r231562;
double r231574 = r231568 + r231573;
double r231575 = r231567 - r231570;
double r231576 = r231575 / r231549;
double r231577 = r231576 * r231563;
double r231578 = r231574 + r231577;
double r231579 = r231567 * r231578;
double r231580 = r231566 / r231579;
return r231580;
}
double f(double x, double y) {
double r231581 = 2.0;
double r231582 = sqrt(r231581);
double r231583 = x;
double r231584 = sin(r231583);
double r231585 = y;
double r231586 = sin(r231585);
double r231587 = 16.0;
double r231588 = r231586 / r231587;
double r231589 = r231584 - r231588;
double r231590 = r231582 * r231589;
double r231591 = exp(r231590);
double r231592 = log(r231591);
double r231593 = r231584 / r231587;
double r231594 = r231586 - r231593;
double r231595 = r231592 * r231594;
double r231596 = cos(r231583);
double r231597 = cos(r231585);
double r231598 = r231596 - r231597;
double r231599 = r231595 * r231598;
double r231600 = exp(r231599);
double r231601 = log(r231600);
double r231602 = r231581 + r231601;
double r231603 = 3.0;
double r231604 = 1.0;
double r231605 = 5.0;
double r231606 = sqrt(r231605);
double r231607 = r231606 - r231604;
double r231608 = r231607 / r231581;
double r231609 = r231608 * r231596;
double r231610 = r231604 + r231609;
double r231611 = r231603 * r231603;
double r231612 = r231611 - r231605;
double r231613 = r231603 + r231606;
double r231614 = r231612 / r231613;
double r231615 = r231614 / r231581;
double r231616 = r231615 * r231597;
double r231617 = r231610 + r231616;
double r231618 = r231603 * r231617;
double r231619 = r231602 / r231618;
return r231619;
}



Bits error versus x



Bits error versus y
Results
Initial program 0.5
rmApplied flip--0.5
Simplified0.4
rmApplied add-log-exp0.5
rmApplied add-log-exp0.5
Final simplification0.5
herbie shell --seed 2019303
(FPCore (x y)
:name "Diagrams.TwoD.Path.Metafont.Internal:hobbyF from diagrams-contrib-1.3.0.5"
:precision binary64
(/ (+ 2 (* (* (* (sqrt 2) (- (sin x) (/ (sin y) 16))) (- (sin y) (/ (sin x) 16))) (- (cos x) (cos y)))) (* 3 (+ (+ 1 (* (/ (- (sqrt 5) 1) 2) (cos x))) (* (/ (- 3 (sqrt 5)) 2) (cos y))))))