\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(\left(\sin x + \left(-{\left(\frac{\sqrt[3]{\sin y}}{\sqrt[3]{16}}\right)}^{3}\right)\right) \cdot \sqrt{2} + \left(\left(-{\left(\frac{\sqrt[3]{\sin y}}{\sqrt[3]{16}}\right)}^{3}\right) + {\left(\frac{\sqrt[3]{\sin y}}{\sqrt[3]{16}}\right)}^{3}\right) \cdot \sqrt{2}, \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 r124404 = 2.0;
double r124405 = sqrt(r124404);
double r124406 = x;
double r124407 = sin(r124406);
double r124408 = y;
double r124409 = sin(r124408);
double r124410 = 16.0;
double r124411 = r124409 / r124410;
double r124412 = r124407 - r124411;
double r124413 = r124405 * r124412;
double r124414 = r124407 / r124410;
double r124415 = r124409 - r124414;
double r124416 = r124413 * r124415;
double r124417 = cos(r124406);
double r124418 = cos(r124408);
double r124419 = r124417 - r124418;
double r124420 = r124416 * r124419;
double r124421 = r124404 + r124420;
double r124422 = 3.0;
double r124423 = 1.0;
double r124424 = 5.0;
double r124425 = sqrt(r124424);
double r124426 = r124425 - r124423;
double r124427 = r124426 / r124404;
double r124428 = r124427 * r124417;
double r124429 = r124423 + r124428;
double r124430 = r124422 - r124425;
double r124431 = r124430 / r124404;
double r124432 = r124431 * r124418;
double r124433 = r124429 + r124432;
double r124434 = r124422 * r124433;
double r124435 = r124421 / r124434;
return r124435;
}
double f(double x, double y) {
double r124436 = x;
double r124437 = sin(r124436);
double r124438 = y;
double r124439 = sin(r124438);
double r124440 = cbrt(r124439);
double r124441 = 16.0;
double r124442 = cbrt(r124441);
double r124443 = r124440 / r124442;
double r124444 = 3.0;
double r124445 = pow(r124443, r124444);
double r124446 = -r124445;
double r124447 = r124437 + r124446;
double r124448 = 2.0;
double r124449 = sqrt(r124448);
double r124450 = r124447 * r124449;
double r124451 = r124446 + r124445;
double r124452 = r124451 * r124449;
double r124453 = r124450 + r124452;
double r124454 = r124437 / r124441;
double r124455 = r124439 - r124454;
double r124456 = cos(r124436);
double r124457 = cos(r124438);
double r124458 = r124456 - r124457;
double r124459 = r124455 * r124458;
double r124460 = fma(r124453, r124459, r124448);
double r124461 = 3.0;
double r124462 = r124460 / r124461;
double r124463 = 5.0;
double r124464 = sqrt(r124463);
double r124465 = r124461 - r124464;
double r124466 = r124465 / r124448;
double r124467 = 1.0;
double r124468 = r124464 - r124467;
double r124469 = r124468 / r124448;
double r124470 = fma(r124456, r124469, r124467);
double r124471 = fma(r124457, r124466, r124470);
double r124472 = r124462 / r124471;
return r124472;
}



Bits error versus x



Bits error versus y
Initial program 0.5
Simplified0.4
rmApplied add-cube-cbrt0.4
Applied add-cube-cbrt0.4
Applied times-frac0.4
Applied add-sqr-sqrt32.2
Applied prod-diff32.2
Applied distribute-lft-in32.2
Simplified0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019198 +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))))))