\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), \sqrt[3]{{\left(\left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\left(\left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}\right) \cdot \sqrt[3]{\cos x} - \cos y\right) + \mathsf{fma}\left(-\cos y, 1, \cos y\right)\right)\right)}^{3}}, 2\right)}{\mathsf{fma}\left(\frac{3 - \sqrt{5}}{2}, \cos y, \mathsf{fma}\left(\frac{\sqrt{5} - 1}{2}, \cos x, 1\right)\right)}}{3}double f(double x, double y) {
double r162403 = 2.0;
double r162404 = sqrt(r162403);
double r162405 = x;
double r162406 = sin(r162405);
double r162407 = y;
double r162408 = sin(r162407);
double r162409 = 16.0;
double r162410 = r162408 / r162409;
double r162411 = r162406 - r162410;
double r162412 = r162404 * r162411;
double r162413 = r162406 / r162409;
double r162414 = r162408 - r162413;
double r162415 = r162412 * r162414;
double r162416 = cos(r162405);
double r162417 = cos(r162407);
double r162418 = r162416 - r162417;
double r162419 = r162415 * r162418;
double r162420 = r162403 + r162419;
double r162421 = 3.0;
double r162422 = 1.0;
double r162423 = 5.0;
double r162424 = sqrt(r162423);
double r162425 = r162424 - r162422;
double r162426 = r162425 / r162403;
double r162427 = r162426 * r162416;
double r162428 = r162422 + r162427;
double r162429 = r162421 - r162424;
double r162430 = r162429 / r162403;
double r162431 = r162430 * r162417;
double r162432 = r162428 + r162431;
double r162433 = r162421 * r162432;
double r162434 = r162420 / r162433;
return r162434;
}
double f(double x, double y) {
double r162435 = 2.0;
double r162436 = sqrt(r162435);
double r162437 = x;
double r162438 = sin(r162437);
double r162439 = y;
double r162440 = sin(r162439);
double r162441 = 16.0;
double r162442 = r162440 / r162441;
double r162443 = r162438 - r162442;
double r162444 = r162436 * r162443;
double r162445 = r162438 / r162441;
double r162446 = r162440 - r162445;
double r162447 = cos(r162437);
double r162448 = cbrt(r162447);
double r162449 = r162448 * r162448;
double r162450 = r162449 * r162448;
double r162451 = cos(r162439);
double r162452 = r162450 - r162451;
double r162453 = -r162451;
double r162454 = 1.0;
double r162455 = fma(r162453, r162454, r162451);
double r162456 = r162452 + r162455;
double r162457 = r162446 * r162456;
double r162458 = 3.0;
double r162459 = pow(r162457, r162458);
double r162460 = cbrt(r162459);
double r162461 = fma(r162444, r162460, r162435);
double r162462 = 3.0;
double r162463 = 5.0;
double r162464 = sqrt(r162463);
double r162465 = r162462 - r162464;
double r162466 = r162465 / r162435;
double r162467 = 1.0;
double r162468 = r162464 - r162467;
double r162469 = r162468 / r162435;
double r162470 = fma(r162469, r162447, r162467);
double r162471 = fma(r162466, r162451, r162470);
double r162472 = r162461 / r162471;
double r162473 = r162472 / r162462;
return r162473;
}



Bits error versus x



Bits error versus y
Initial program 0.5
Simplified0.5
rmApplied add-cbrt-cube0.5
Applied add-cbrt-cube0.5
Applied cbrt-unprod0.5
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 2020025 +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))))))