\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 \mathsf{fma}\left(\sqrt[3]{\sin x} \cdot \sqrt[3]{\sin x}, \sqrt[3]{\sin x}, -\frac{{\left(\sqrt[3]{\sin y}\right)}^{3}}{16}\right) + \sqrt{2} \cdot \left(\left(-\frac{{\left(\sqrt[3]{\sin y}\right)}^{3}}{16}\right) + \frac{{\left(\sqrt[3]{\sin y}\right)}^{3}}{16}\right), \left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\cos x - \cos y\right), 2\right)}{3}}{\mathsf{fma}\left(\cos y, \frac{3 - \sqrt{5}}{2}, \mathsf{fma}\left(\cos x, \frac{\sqrt{5} - 1}{2}, 1\right)\right)}double f(double x, double y) {
double r198420 = 2.0;
double r198421 = sqrt(r198420);
double r198422 = x;
double r198423 = sin(r198422);
double r198424 = y;
double r198425 = sin(r198424);
double r198426 = 16.0;
double r198427 = r198425 / r198426;
double r198428 = r198423 - r198427;
double r198429 = r198421 * r198428;
double r198430 = r198423 / r198426;
double r198431 = r198425 - r198430;
double r198432 = r198429 * r198431;
double r198433 = cos(r198422);
double r198434 = cos(r198424);
double r198435 = r198433 - r198434;
double r198436 = r198432 * r198435;
double r198437 = r198420 + r198436;
double r198438 = 3.0;
double r198439 = 1.0;
double r198440 = 5.0;
double r198441 = sqrt(r198440);
double r198442 = r198441 - r198439;
double r198443 = r198442 / r198420;
double r198444 = r198443 * r198433;
double r198445 = r198439 + r198444;
double r198446 = r198438 - r198441;
double r198447 = r198446 / r198420;
double r198448 = r198447 * r198434;
double r198449 = r198445 + r198448;
double r198450 = r198438 * r198449;
double r198451 = r198437 / r198450;
return r198451;
}
double f(double x, double y) {
double r198452 = 2.0;
double r198453 = sqrt(r198452);
double r198454 = x;
double r198455 = sin(r198454);
double r198456 = cbrt(r198455);
double r198457 = r198456 * r198456;
double r198458 = y;
double r198459 = sin(r198458);
double r198460 = cbrt(r198459);
double r198461 = 3.0;
double r198462 = pow(r198460, r198461);
double r198463 = 16.0;
double r198464 = r198462 / r198463;
double r198465 = -r198464;
double r198466 = fma(r198457, r198456, r198465);
double r198467 = r198453 * r198466;
double r198468 = r198465 + r198464;
double r198469 = r198453 * r198468;
double r198470 = r198467 + r198469;
double r198471 = r198455 / r198463;
double r198472 = r198459 - r198471;
double r198473 = cos(r198454);
double r198474 = cos(r198458);
double r198475 = r198473 - r198474;
double r198476 = r198472 * r198475;
double r198477 = fma(r198470, r198476, r198452);
double r198478 = 3.0;
double r198479 = r198477 / r198478;
double r198480 = 5.0;
double r198481 = sqrt(r198480);
double r198482 = r198478 - r198481;
double r198483 = r198482 / r198452;
double r198484 = 1.0;
double r198485 = r198481 - r198484;
double r198486 = r198485 / r198452;
double r198487 = fma(r198473, r198486, r198484);
double r198488 = fma(r198474, r198483, r198487);
double r198489 = r198479 / r198488;
return r198489;
}



Bits error versus x



Bits error versus y
Initial program 0.5
Simplified0.4
rmApplied *-un-lft-identity0.4
Applied add-cube-cbrt0.4
Applied times-frac0.4
Applied add-cube-cbrt0.5
Applied prod-diff0.5
Applied distribute-lft-in0.5
Simplified0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2019323 +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))))))