\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 + \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 \frac{\mathsf{fma}\left(\cos x, \cos x, \cos y \cdot \left(\cos y + \cos x\right)\right) \cdot \left(\cos x - \cos y\right)}{\mathsf{fma}\left(\cos y, \cos x + \cos y, \cos x \cdot \cos x\right)}}{3 \cdot \left(\left(1 + \frac{\sqrt{5} - 1}{2} \cdot \cos x\right) + \frac{3 - \sqrt{5}}{2} \cdot \cos y\right)}double f(double x, double y) {
double r266518 = 2.0;
double r266519 = sqrt(r266518);
double r266520 = x;
double r266521 = sin(r266520);
double r266522 = y;
double r266523 = sin(r266522);
double r266524 = 16.0;
double r266525 = r266523 / r266524;
double r266526 = r266521 - r266525;
double r266527 = r266519 * r266526;
double r266528 = r266521 / r266524;
double r266529 = r266523 - r266528;
double r266530 = r266527 * r266529;
double r266531 = cos(r266520);
double r266532 = cos(r266522);
double r266533 = r266531 - r266532;
double r266534 = r266530 * r266533;
double r266535 = r266518 + r266534;
double r266536 = 3.0;
double r266537 = 1.0;
double r266538 = 5.0;
double r266539 = sqrt(r266538);
double r266540 = r266539 - r266537;
double r266541 = r266540 / r266518;
double r266542 = r266541 * r266531;
double r266543 = r266537 + r266542;
double r266544 = r266536 - r266539;
double r266545 = r266544 / r266518;
double r266546 = r266545 * r266532;
double r266547 = r266543 + r266546;
double r266548 = r266536 * r266547;
double r266549 = r266535 / r266548;
return r266549;
}
double f(double x, double y) {
double r266550 = 2.0;
double r266551 = sqrt(r266550);
double r266552 = x;
double r266553 = sin(r266552);
double r266554 = y;
double r266555 = sin(r266554);
double r266556 = 16.0;
double r266557 = r266555 / r266556;
double r266558 = r266553 - r266557;
double r266559 = r266551 * r266558;
double r266560 = exp(r266559);
double r266561 = log(r266560);
double r266562 = r266553 / r266556;
double r266563 = r266555 - r266562;
double r266564 = r266561 * r266563;
double r266565 = cos(r266552);
double r266566 = cos(r266554);
double r266567 = r266566 + r266565;
double r266568 = r266566 * r266567;
double r266569 = fma(r266565, r266565, r266568);
double r266570 = r266565 - r266566;
double r266571 = r266569 * r266570;
double r266572 = r266565 + r266566;
double r266573 = r266565 * r266565;
double r266574 = fma(r266566, r266572, r266573);
double r266575 = r266571 / r266574;
double r266576 = r266564 * r266575;
double r266577 = r266550 + r266576;
double r266578 = 3.0;
double r266579 = 1.0;
double r266580 = 5.0;
double r266581 = sqrt(r266580);
double r266582 = r266581 - r266579;
double r266583 = r266582 / r266550;
double r266584 = r266583 * r266565;
double r266585 = r266579 + r266584;
double r266586 = r266578 - r266581;
double r266587 = r266586 / r266550;
double r266588 = r266587 * r266566;
double r266589 = r266585 + r266588;
double r266590 = r266578 * r266589;
double r266591 = r266577 / r266590;
return r266591;
}



Bits error versus x



Bits error versus y
Initial program 0.5
rmApplied flip3--0.5
Simplified0.5
rmApplied add-log-exp0.5
rmApplied difference-cubes0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2020034 +o rules:numerics
(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))))))