\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{\log \left({\left(e^{\cos x - \cos y}\right)}^{\left(\frac{\sqrt{2} \cdot \left(\left({\left(\sin x\right)}^{3} - {\left(\frac{\sin y}{16}\right)}^{3}\right) \cdot \left(\sin y - \frac{\sin x}{16}\right)\right)}{\sin x \cdot \sin x + \left(\frac{\sin y}{16} \cdot \sin x + \frac{\sin y}{16} \cdot \frac{\sin y}{16}\right)}\right)}\right) + 2}{3 \cdot \left(\left(1 + \frac{\sqrt{5} - 1}{2} \cdot \cos x\right) + \cos y \cdot \frac{\frac{{3}^{3} - 5 \cdot \sqrt{5}}{\mathsf{fma}\left(3, 3, \mathsf{fma}\left(\sqrt{5}, 3, 5\right)\right)}}{2}\right)}double f(double x, double y) {
double r157421 = 2.0;
double r157422 = sqrt(r157421);
double r157423 = x;
double r157424 = sin(r157423);
double r157425 = y;
double r157426 = sin(r157425);
double r157427 = 16.0;
double r157428 = r157426 / r157427;
double r157429 = r157424 - r157428;
double r157430 = r157422 * r157429;
double r157431 = r157424 / r157427;
double r157432 = r157426 - r157431;
double r157433 = r157430 * r157432;
double r157434 = cos(r157423);
double r157435 = cos(r157425);
double r157436 = r157434 - r157435;
double r157437 = r157433 * r157436;
double r157438 = r157421 + r157437;
double r157439 = 3.0;
double r157440 = 1.0;
double r157441 = 5.0;
double r157442 = sqrt(r157441);
double r157443 = r157442 - r157440;
double r157444 = r157443 / r157421;
double r157445 = r157444 * r157434;
double r157446 = r157440 + r157445;
double r157447 = r157439 - r157442;
double r157448 = r157447 / r157421;
double r157449 = r157448 * r157435;
double r157450 = r157446 + r157449;
double r157451 = r157439 * r157450;
double r157452 = r157438 / r157451;
return r157452;
}
double f(double x, double y) {
double r157453 = x;
double r157454 = cos(r157453);
double r157455 = y;
double r157456 = cos(r157455);
double r157457 = r157454 - r157456;
double r157458 = exp(r157457);
double r157459 = 2.0;
double r157460 = sqrt(r157459);
double r157461 = sin(r157453);
double r157462 = 3.0;
double r157463 = pow(r157461, r157462);
double r157464 = sin(r157455);
double r157465 = 16.0;
double r157466 = r157464 / r157465;
double r157467 = pow(r157466, r157462);
double r157468 = r157463 - r157467;
double r157469 = r157461 / r157465;
double r157470 = r157464 - r157469;
double r157471 = r157468 * r157470;
double r157472 = r157460 * r157471;
double r157473 = r157461 * r157461;
double r157474 = r157466 * r157461;
double r157475 = r157466 * r157466;
double r157476 = r157474 + r157475;
double r157477 = r157473 + r157476;
double r157478 = r157472 / r157477;
double r157479 = pow(r157458, r157478);
double r157480 = log(r157479);
double r157481 = r157480 + r157459;
double r157482 = 3.0;
double r157483 = 1.0;
double r157484 = 5.0;
double r157485 = sqrt(r157484);
double r157486 = r157485 - r157483;
double r157487 = r157486 / r157459;
double r157488 = r157487 * r157454;
double r157489 = r157483 + r157488;
double r157490 = pow(r157482, r157462);
double r157491 = r157484 * r157485;
double r157492 = r157490 - r157491;
double r157493 = fma(r157485, r157482, r157484);
double r157494 = fma(r157482, r157482, r157493);
double r157495 = r157492 / r157494;
double r157496 = r157495 / r157459;
double r157497 = r157456 * r157496;
double r157498 = r157489 + r157497;
double r157499 = r157482 * r157498;
double r157500 = r157481 / r157499;
return r157500;
}



Bits error versus x



Bits error versus y
Initial program 0.5
rmApplied flip3--0.5
Simplified0.5
Simplified0.5
rmApplied add-log-exp0.5
Simplified0.5
rmApplied flip3--0.5
Applied associate-*l/0.5
Applied associate-*r/0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2019179 +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))))))