\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(\frac{{\left(\cos x\right)}^{3} - {\left(\cos y\right)}^{3}}{\mathsf{fma}\left(\cos x, \cos x, \cos y \cdot \left(\cos x + \cos y\right)\right)}, \left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)\right) \cdot \left(\sin y - \frac{\sin x}{16}\right), 2\right) \cdot \frac{\frac{1}{3}}{\mathsf{fma}\left(\cos y, \frac{\frac{3 \cdot 3 - 5}{3 + \sqrt{5}}}{2}, \mathsf{fma}\left(\cos x, \frac{\sqrt{5} - 1}{2}, 1\right)\right)}double f(double x, double y) {
double r267412 = 2.0;
double r267413 = sqrt(r267412);
double r267414 = x;
double r267415 = sin(r267414);
double r267416 = y;
double r267417 = sin(r267416);
double r267418 = 16.0;
double r267419 = r267417 / r267418;
double r267420 = r267415 - r267419;
double r267421 = r267413 * r267420;
double r267422 = r267415 / r267418;
double r267423 = r267417 - r267422;
double r267424 = r267421 * r267423;
double r267425 = cos(r267414);
double r267426 = cos(r267416);
double r267427 = r267425 - r267426;
double r267428 = r267424 * r267427;
double r267429 = r267412 + r267428;
double r267430 = 3.0;
double r267431 = 1.0;
double r267432 = 5.0;
double r267433 = sqrt(r267432);
double r267434 = r267433 - r267431;
double r267435 = r267434 / r267412;
double r267436 = r267435 * r267425;
double r267437 = r267431 + r267436;
double r267438 = r267430 - r267433;
double r267439 = r267438 / r267412;
double r267440 = r267439 * r267426;
double r267441 = r267437 + r267440;
double r267442 = r267430 * r267441;
double r267443 = r267429 / r267442;
return r267443;
}
double f(double x, double y) {
double r267444 = x;
double r267445 = cos(r267444);
double r267446 = 3.0;
double r267447 = pow(r267445, r267446);
double r267448 = y;
double r267449 = cos(r267448);
double r267450 = pow(r267449, r267446);
double r267451 = r267447 - r267450;
double r267452 = r267445 + r267449;
double r267453 = r267449 * r267452;
double r267454 = fma(r267445, r267445, r267453);
double r267455 = r267451 / r267454;
double r267456 = 2.0;
double r267457 = sqrt(r267456);
double r267458 = sin(r267444);
double r267459 = sin(r267448);
double r267460 = 16.0;
double r267461 = r267459 / r267460;
double r267462 = r267458 - r267461;
double r267463 = r267457 * r267462;
double r267464 = r267458 / r267460;
double r267465 = r267459 - r267464;
double r267466 = r267463 * r267465;
double r267467 = fma(r267455, r267466, r267456);
double r267468 = 1.0;
double r267469 = 3.0;
double r267470 = r267468 / r267469;
double r267471 = r267469 * r267469;
double r267472 = 5.0;
double r267473 = r267471 - r267472;
double r267474 = sqrt(r267472);
double r267475 = r267469 + r267474;
double r267476 = r267473 / r267475;
double r267477 = r267476 / r267456;
double r267478 = 1.0;
double r267479 = r267474 - r267478;
double r267480 = r267479 / r267456;
double r267481 = fma(r267445, r267480, r267478);
double r267482 = fma(r267449, r267477, r267481);
double r267483 = r267470 / r267482;
double r267484 = r267467 * r267483;
return r267484;
}



Bits error versus x



Bits error versus y
Initial program 0.5
Simplified0.4
rmApplied flip--0.5
Simplified0.4
rmApplied *-un-lft-identity0.4
Applied div-inv0.5
Applied times-frac0.5
Simplified0.5
rmApplied flip3--0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2020047 +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))))))