\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(\frac{\left(\sqrt{2} \cdot \left(\sqrt[3]{\sin x \cdot \sin x - \frac{\sin y}{16} \cdot \frac{\sin y}{16}} \cdot \sqrt[3]{\sin x \cdot \sin x - \frac{\sin y}{16} \cdot \frac{\sin y}{16}}\right)\right) \cdot \sqrt[3]{\sin x \cdot \sin x - \frac{\sin y}{16} \cdot \frac{\sin y}{16}}}{\sin x + \frac{\sin y}{16}}, \left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\mathsf{fma}\left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}, \sqrt[3]{\cos x}, -\cos y \cdot 1\right) + \mathsf{fma}\left(-\cos y, 1, \cos y\right)\right), 2\right)}{3}}{\mathsf{fma}\left(\frac{3 - \sqrt{5}}{2}, \cos y, \mathsf{fma}\left(\frac{\sqrt{5} - 1}{2}, \cos x, 1\right)\right)}double f(double x, double y) {
double r175501 = 2.0;
double r175502 = sqrt(r175501);
double r175503 = x;
double r175504 = sin(r175503);
double r175505 = y;
double r175506 = sin(r175505);
double r175507 = 16.0;
double r175508 = r175506 / r175507;
double r175509 = r175504 - r175508;
double r175510 = r175502 * r175509;
double r175511 = r175504 / r175507;
double r175512 = r175506 - r175511;
double r175513 = r175510 * r175512;
double r175514 = cos(r175503);
double r175515 = cos(r175505);
double r175516 = r175514 - r175515;
double r175517 = r175513 * r175516;
double r175518 = r175501 + r175517;
double r175519 = 3.0;
double r175520 = 1.0;
double r175521 = 5.0;
double r175522 = sqrt(r175521);
double r175523 = r175522 - r175520;
double r175524 = r175523 / r175501;
double r175525 = r175524 * r175514;
double r175526 = r175520 + r175525;
double r175527 = r175519 - r175522;
double r175528 = r175527 / r175501;
double r175529 = r175528 * r175515;
double r175530 = r175526 + r175529;
double r175531 = r175519 * r175530;
double r175532 = r175518 / r175531;
return r175532;
}
double f(double x, double y) {
double r175533 = 2.0;
double r175534 = sqrt(r175533);
double r175535 = x;
double r175536 = sin(r175535);
double r175537 = r175536 * r175536;
double r175538 = y;
double r175539 = sin(r175538);
double r175540 = 16.0;
double r175541 = r175539 / r175540;
double r175542 = r175541 * r175541;
double r175543 = r175537 - r175542;
double r175544 = cbrt(r175543);
double r175545 = r175544 * r175544;
double r175546 = r175534 * r175545;
double r175547 = r175546 * r175544;
double r175548 = r175536 + r175541;
double r175549 = r175547 / r175548;
double r175550 = r175536 / r175540;
double r175551 = r175539 - r175550;
double r175552 = cos(r175535);
double r175553 = cbrt(r175552);
double r175554 = r175553 * r175553;
double r175555 = cos(r175538);
double r175556 = 1.0;
double r175557 = r175555 * r175556;
double r175558 = -r175557;
double r175559 = fma(r175554, r175553, r175558);
double r175560 = -r175555;
double r175561 = fma(r175560, r175556, r175555);
double r175562 = r175559 + r175561;
double r175563 = r175551 * r175562;
double r175564 = fma(r175549, r175563, r175533);
double r175565 = 3.0;
double r175566 = r175564 / r175565;
double r175567 = 5.0;
double r175568 = sqrt(r175567);
double r175569 = r175565 - r175568;
double r175570 = r175569 / r175533;
double r175571 = 1.0;
double r175572 = r175568 - r175571;
double r175573 = r175572 / r175533;
double r175574 = fma(r175573, r175552, r175571);
double r175575 = fma(r175570, r175555, r175574);
double r175576 = r175566 / r175575;
return r175576;
}



Bits error versus x



Bits error versus y
Initial program 0.4
Simplified0.4
rmApplied add-cube-cbrt0.5
Applied add-cube-cbrt0.5
Applied prod-diff0.5
Applied distribute-lft-in0.5
Simplified0.5
Simplified0.5
Simplified0.4
rmApplied flip--0.4
Applied associate-*r/0.4
rmApplied add-cube-cbrt0.4
Applied associate-*r*0.4
Final simplification0.4
herbie shell --seed 2020089 +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))))))