\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 + \frac{\left(\left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\left(\cos x \cdot \cos x\right) \cdot \cos x - \cos y \cdot \left(\cos y \cdot \cos y\right)\right)\right) \cdot \left(\left(\sin x - \frac{\sin y}{16}\right) \cdot \sqrt[3]{\left(\left(\frac{\sin y}{16} + \sin x\right) \cdot \sqrt{2}\right) \cdot \left(\left(\left(\frac{\sin y}{16} + \sin x\right) \cdot \sqrt{2}\right) \cdot \left(\left(\frac{\sin y}{16} + \sin x\right) \cdot \sqrt{2}\right)\right)}\right)}{\left(\left(\cos x + \cos y\right) \cdot \cos y + \cos x \cdot \cos x\right) \cdot \left(\frac{\sin y}{16} + \sin x\right)}}{3 \cdot \left(\left(1 + \cos x \cdot \frac{\sqrt{5} - 1}{2}\right) + \frac{\frac{3 \cdot 3 - 5}{\sqrt{5} + 3}}{2} \cdot \cos y\right)}double f(double x, double y) {
double r11814453 = 2.0;
double r11814454 = sqrt(r11814453);
double r11814455 = x;
double r11814456 = sin(r11814455);
double r11814457 = y;
double r11814458 = sin(r11814457);
double r11814459 = 16.0;
double r11814460 = r11814458 / r11814459;
double r11814461 = r11814456 - r11814460;
double r11814462 = r11814454 * r11814461;
double r11814463 = r11814456 / r11814459;
double r11814464 = r11814458 - r11814463;
double r11814465 = r11814462 * r11814464;
double r11814466 = cos(r11814455);
double r11814467 = cos(r11814457);
double r11814468 = r11814466 - r11814467;
double r11814469 = r11814465 * r11814468;
double r11814470 = r11814453 + r11814469;
double r11814471 = 3.0;
double r11814472 = 1.0;
double r11814473 = 5.0;
double r11814474 = sqrt(r11814473);
double r11814475 = r11814474 - r11814472;
double r11814476 = r11814475 / r11814453;
double r11814477 = r11814476 * r11814466;
double r11814478 = r11814472 + r11814477;
double r11814479 = r11814471 - r11814474;
double r11814480 = r11814479 / r11814453;
double r11814481 = r11814480 * r11814467;
double r11814482 = r11814478 + r11814481;
double r11814483 = r11814471 * r11814482;
double r11814484 = r11814470 / r11814483;
return r11814484;
}
double f(double x, double y) {
double r11814485 = 2.0;
double r11814486 = y;
double r11814487 = sin(r11814486);
double r11814488 = x;
double r11814489 = sin(r11814488);
double r11814490 = 16.0;
double r11814491 = r11814489 / r11814490;
double r11814492 = r11814487 - r11814491;
double r11814493 = cos(r11814488);
double r11814494 = r11814493 * r11814493;
double r11814495 = r11814494 * r11814493;
double r11814496 = cos(r11814486);
double r11814497 = r11814496 * r11814496;
double r11814498 = r11814496 * r11814497;
double r11814499 = r11814495 - r11814498;
double r11814500 = r11814492 * r11814499;
double r11814501 = r11814487 / r11814490;
double r11814502 = r11814489 - r11814501;
double r11814503 = r11814501 + r11814489;
double r11814504 = sqrt(r11814485);
double r11814505 = r11814503 * r11814504;
double r11814506 = r11814505 * r11814505;
double r11814507 = r11814505 * r11814506;
double r11814508 = cbrt(r11814507);
double r11814509 = r11814502 * r11814508;
double r11814510 = r11814500 * r11814509;
double r11814511 = r11814493 + r11814496;
double r11814512 = r11814511 * r11814496;
double r11814513 = r11814512 + r11814494;
double r11814514 = r11814513 * r11814503;
double r11814515 = r11814510 / r11814514;
double r11814516 = r11814485 + r11814515;
double r11814517 = 3.0;
double r11814518 = 1.0;
double r11814519 = 5.0;
double r11814520 = sqrt(r11814519);
double r11814521 = r11814520 - r11814518;
double r11814522 = r11814521 / r11814485;
double r11814523 = r11814493 * r11814522;
double r11814524 = r11814518 + r11814523;
double r11814525 = r11814517 * r11814517;
double r11814526 = r11814525 - r11814519;
double r11814527 = r11814520 + r11814517;
double r11814528 = r11814526 / r11814527;
double r11814529 = r11814528 / r11814485;
double r11814530 = r11814529 * r11814496;
double r11814531 = r11814524 + r11814530;
double r11814532 = r11814517 * r11814531;
double r11814533 = r11814516 / r11814532;
return r11814533;
}



Bits error versus x



Bits error versus y
Results
Initial program 0.5
rmApplied flip--0.5
Simplified0.4
rmApplied add-sqr-sqrt0.4
Applied sqrt-prod0.4
Applied associate-*l*0.4
rmApplied flip3--0.4
Applied flip--0.5
Applied associate-*r/0.4
Applied associate-*r/0.5
Applied associate-*l/0.4
Applied frac-times0.4
Simplified0.4
Simplified0.4
rmApplied add-cbrt-cube0.5
Final simplification0.5
herbie shell --seed 2019172
(FPCore (x y)
:name "Diagrams.TwoD.Path.Metafont.Internal:hobbyF from diagrams-contrib-1.3.0.5"
(/ (+ 2.0 (* (* (* (sqrt 2.0) (- (sin x) (/ (sin y) 16.0))) (- (sin y) (/ (sin x) 16.0))) (- (cos x) (cos y)))) (* 3.0 (+ (+ 1.0 (* (/ (- (sqrt 5.0) 1.0) 2.0) (cos x))) (* (/ (- 3.0 (sqrt 5.0)) 2.0) (cos y))))))