\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{\frac{\mathsf{fma}\left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right), \left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\mathsf{fma}\left(\frac{-\cos y}{2}, 2, {\left(\sqrt[3]{\cos x}\right)}^{3}\right) + \left(\cos y - \cos y\right)\right), 2\right)}{\mathsf{fma}\left(\frac{\mathsf{fma}\left(\sqrt[3]{3} \cdot \sqrt[3]{3}, \sqrt[3]{3}, -\sqrt{\sqrt[3]{5}} \cdot \sqrt{\sqrt[3]{5} \cdot \sqrt[3]{5}}\right) + \sqrt{\sqrt[3]{5}} \cdot \left(\left(-\left|\sqrt[3]{5}\right|\right) + \left|\sqrt[3]{5}\right|\right)}{2}, \cos y, \mathsf{fma}\left(\frac{\sqrt{5} - 1}{2}, \cos x, 1\right)\right)}}{3}double f(double x, double y) {
double r193473 = 2.0;
double r193474 = sqrt(r193473);
double r193475 = x;
double r193476 = sin(r193475);
double r193477 = y;
double r193478 = sin(r193477);
double r193479 = 16.0;
double r193480 = r193478 / r193479;
double r193481 = r193476 - r193480;
double r193482 = r193474 * r193481;
double r193483 = r193476 / r193479;
double r193484 = r193478 - r193483;
double r193485 = r193482 * r193484;
double r193486 = cos(r193475);
double r193487 = cos(r193477);
double r193488 = r193486 - r193487;
double r193489 = r193485 * r193488;
double r193490 = r193473 + r193489;
double r193491 = 3.0;
double r193492 = 1.0;
double r193493 = 5.0;
double r193494 = sqrt(r193493);
double r193495 = r193494 - r193492;
double r193496 = r193495 / r193473;
double r193497 = r193496 * r193486;
double r193498 = r193492 + r193497;
double r193499 = r193491 - r193494;
double r193500 = r193499 / r193473;
double r193501 = r193500 * r193487;
double r193502 = r193498 + r193501;
double r193503 = r193491 * r193502;
double r193504 = r193490 / r193503;
return r193504;
}
double f(double x, double y) {
double r193505 = 2.0;
double r193506 = sqrt(r193505);
double r193507 = x;
double r193508 = sin(r193507);
double r193509 = y;
double r193510 = sin(r193509);
double r193511 = 16.0;
double r193512 = r193510 / r193511;
double r193513 = r193508 - r193512;
double r193514 = r193506 * r193513;
double r193515 = r193508 / r193511;
double r193516 = r193510 - r193515;
double r193517 = cos(r193509);
double r193518 = -r193517;
double r193519 = 2.0;
double r193520 = r193518 / r193519;
double r193521 = cos(r193507);
double r193522 = cbrt(r193521);
double r193523 = 3.0;
double r193524 = pow(r193522, r193523);
double r193525 = fma(r193520, r193519, r193524);
double r193526 = r193517 - r193517;
double r193527 = r193525 + r193526;
double r193528 = r193516 * r193527;
double r193529 = fma(r193514, r193528, r193505);
double r193530 = 3.0;
double r193531 = cbrt(r193530);
double r193532 = r193531 * r193531;
double r193533 = 5.0;
double r193534 = cbrt(r193533);
double r193535 = sqrt(r193534);
double r193536 = r193534 * r193534;
double r193537 = sqrt(r193536);
double r193538 = r193535 * r193537;
double r193539 = -r193538;
double r193540 = fma(r193532, r193531, r193539);
double r193541 = fabs(r193534);
double r193542 = -r193541;
double r193543 = r193542 + r193541;
double r193544 = r193535 * r193543;
double r193545 = r193540 + r193544;
double r193546 = r193545 / r193505;
double r193547 = sqrt(r193533);
double r193548 = 1.0;
double r193549 = r193547 - r193548;
double r193550 = r193549 / r193505;
double r193551 = fma(r193550, r193521, r193548);
double r193552 = fma(r193546, r193517, r193551);
double r193553 = r193529 / r193552;
double r193554 = r193553 / r193530;
return r193554;
}



Bits error versus x



Bits error versus y
Initial program 0.5
Simplified0.4
rmApplied add-cube-cbrt0.6
Applied sqrt-prod0.6
Applied add-cube-cbrt0.6
Applied prod-diff0.4
Simplified0.5
rmApplied add-cube-cbrt0.5
Applied add-cube-cbrt0.5
Applied prod-diff0.5
Simplified0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2020039 +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))))))