\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)}\mathsf{fma}\left(\left(\sqrt{2} \cdot \left(\sin x + \left(-\frac{\sqrt[3]{\sin y}}{\sqrt[3]{16}}\right) \cdot \left(\frac{\sqrt[3]{\sin y}}{\sqrt[3]{16}} \cdot \frac{\sqrt[3]{\sin y}}{\sqrt[3]{16}}\right)\right) + \sqrt{2} \cdot \mathsf{fma}\left(-\frac{\sqrt[3]{\sin y}}{\sqrt[3]{16}}, \frac{\sqrt[3]{\sin y}}{\sqrt[3]{16}} \cdot \frac{\sqrt[3]{\sin y}}{\sqrt[3]{16}}, \frac{\sqrt[3]{\sin y}}{\sqrt[3]{16}} \cdot \left(\frac{\sqrt[3]{\sin y}}{\sqrt[3]{16}} \cdot \frac{\sqrt[3]{\sin y}}{\sqrt[3]{16}}\right)\right)\right) \cdot \left(\sin y - \frac{\sin x}{16}\right), \cos x - \cos y, 2\right) \cdot \frac{1}{\mathsf{fma}\left(\frac{3 - \sqrt{5}}{2}, \cos y, \mathsf{fma}\left(\cos x, \frac{\sqrt{5} - 1}{2}, 1\right)\right) \cdot 3}double f(double x, double y) {
double r11075438 = 2.0;
double r11075439 = sqrt(r11075438);
double r11075440 = x;
double r11075441 = sin(r11075440);
double r11075442 = y;
double r11075443 = sin(r11075442);
double r11075444 = 16.0;
double r11075445 = r11075443 / r11075444;
double r11075446 = r11075441 - r11075445;
double r11075447 = r11075439 * r11075446;
double r11075448 = r11075441 / r11075444;
double r11075449 = r11075443 - r11075448;
double r11075450 = r11075447 * r11075449;
double r11075451 = cos(r11075440);
double r11075452 = cos(r11075442);
double r11075453 = r11075451 - r11075452;
double r11075454 = r11075450 * r11075453;
double r11075455 = r11075438 + r11075454;
double r11075456 = 3.0;
double r11075457 = 1.0;
double r11075458 = 5.0;
double r11075459 = sqrt(r11075458);
double r11075460 = r11075459 - r11075457;
double r11075461 = r11075460 / r11075438;
double r11075462 = r11075461 * r11075451;
double r11075463 = r11075457 + r11075462;
double r11075464 = r11075456 - r11075459;
double r11075465 = r11075464 / r11075438;
double r11075466 = r11075465 * r11075452;
double r11075467 = r11075463 + r11075466;
double r11075468 = r11075456 * r11075467;
double r11075469 = r11075455 / r11075468;
return r11075469;
}
double f(double x, double y) {
double r11075470 = 2.0;
double r11075471 = sqrt(r11075470);
double r11075472 = x;
double r11075473 = sin(r11075472);
double r11075474 = y;
double r11075475 = sin(r11075474);
double r11075476 = cbrt(r11075475);
double r11075477 = 16.0;
double r11075478 = cbrt(r11075477);
double r11075479 = r11075476 / r11075478;
double r11075480 = -r11075479;
double r11075481 = r11075479 * r11075479;
double r11075482 = r11075480 * r11075481;
double r11075483 = r11075473 + r11075482;
double r11075484 = r11075471 * r11075483;
double r11075485 = r11075479 * r11075481;
double r11075486 = fma(r11075480, r11075481, r11075485);
double r11075487 = r11075471 * r11075486;
double r11075488 = r11075484 + r11075487;
double r11075489 = r11075473 / r11075477;
double r11075490 = r11075475 - r11075489;
double r11075491 = r11075488 * r11075490;
double r11075492 = cos(r11075472);
double r11075493 = cos(r11075474);
double r11075494 = r11075492 - r11075493;
double r11075495 = fma(r11075491, r11075494, r11075470);
double r11075496 = 1.0;
double r11075497 = 3.0;
double r11075498 = 5.0;
double r11075499 = sqrt(r11075498);
double r11075500 = r11075497 - r11075499;
double r11075501 = r11075500 / r11075470;
double r11075502 = 1.0;
double r11075503 = r11075499 - r11075502;
double r11075504 = r11075503 / r11075470;
double r11075505 = fma(r11075492, r11075504, r11075502);
double r11075506 = fma(r11075501, r11075493, r11075505);
double r11075507 = r11075506 * r11075497;
double r11075508 = r11075496 / r11075507;
double r11075509 = r11075495 * r11075508;
return r11075509;
}



Bits error versus x



Bits error versus y
Initial program 0.5
Simplified0.5
rmApplied div-inv0.5
rmApplied add-cube-cbrt0.5
Applied add-cube-cbrt0.5
Applied times-frac0.5
Applied add-sqr-sqrt32.3
Applied prod-diff32.3
Applied distribute-lft-in32.3
Simplified0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2019174 +o rules:numerics
(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))))))