\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{\mathsf{fma}\left(\sqrt[3]{\left(\left(2 \cdot \sqrt{2}\right) \cdot \left(\left(\left(\sin x - \frac{\sin y}{16}\right) \cdot \left(\sin x - \frac{\sin y}{16}\right)\right) \cdot \left(\sin x - \frac{\sin y}{16}\right)\right)\right) \cdot \left(\left(\cos x - \cos y\right) \cdot \left(\mathsf{fma}\left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}, \sqrt[3]{\cos x}, -\cos y\right) \cdot \left(\cos x - \cos y\right)\right)\right)}, \sin y - \frac{\sin x}{16}, 2\right)}{3 \cdot \mathsf{fma}\left(\frac{3 - \sqrt{5}}{2}, \cos y, \mathsf{fma}\left(\cos x, \frac{\sqrt{5} - 1}{2}, 1\right)\right)}double f(double x, double y) {
double r7529961 = 2.0;
double r7529962 = sqrt(r7529961);
double r7529963 = x;
double r7529964 = sin(r7529963);
double r7529965 = y;
double r7529966 = sin(r7529965);
double r7529967 = 16.0;
double r7529968 = r7529966 / r7529967;
double r7529969 = r7529964 - r7529968;
double r7529970 = r7529962 * r7529969;
double r7529971 = r7529964 / r7529967;
double r7529972 = r7529966 - r7529971;
double r7529973 = r7529970 * r7529972;
double r7529974 = cos(r7529963);
double r7529975 = cos(r7529965);
double r7529976 = r7529974 - r7529975;
double r7529977 = r7529973 * r7529976;
double r7529978 = r7529961 + r7529977;
double r7529979 = 3.0;
double r7529980 = 1.0;
double r7529981 = 5.0;
double r7529982 = sqrt(r7529981);
double r7529983 = r7529982 - r7529980;
double r7529984 = r7529983 / r7529961;
double r7529985 = r7529984 * r7529974;
double r7529986 = r7529980 + r7529985;
double r7529987 = r7529979 - r7529982;
double r7529988 = r7529987 / r7529961;
double r7529989 = r7529988 * r7529975;
double r7529990 = r7529986 + r7529989;
double r7529991 = r7529979 * r7529990;
double r7529992 = r7529978 / r7529991;
return r7529992;
}
double f(double x, double y) {
double r7529993 = 2.0;
double r7529994 = sqrt(r7529993);
double r7529995 = r7529993 * r7529994;
double r7529996 = x;
double r7529997 = sin(r7529996);
double r7529998 = y;
double r7529999 = sin(r7529998);
double r7530000 = 16.0;
double r7530001 = r7529999 / r7530000;
double r7530002 = r7529997 - r7530001;
double r7530003 = r7530002 * r7530002;
double r7530004 = r7530003 * r7530002;
double r7530005 = r7529995 * r7530004;
double r7530006 = cos(r7529996);
double r7530007 = cos(r7529998);
double r7530008 = r7530006 - r7530007;
double r7530009 = cbrt(r7530006);
double r7530010 = r7530009 * r7530009;
double r7530011 = -r7530007;
double r7530012 = fma(r7530010, r7530009, r7530011);
double r7530013 = r7530012 * r7530008;
double r7530014 = r7530008 * r7530013;
double r7530015 = r7530005 * r7530014;
double r7530016 = cbrt(r7530015);
double r7530017 = r7529997 / r7530000;
double r7530018 = r7529999 - r7530017;
double r7530019 = fma(r7530016, r7530018, r7529993);
double r7530020 = 3.0;
double r7530021 = 5.0;
double r7530022 = sqrt(r7530021);
double r7530023 = r7530020 - r7530022;
double r7530024 = r7530023 / r7529993;
double r7530025 = 1.0;
double r7530026 = r7530022 - r7530025;
double r7530027 = r7530026 / r7529993;
double r7530028 = fma(r7530006, r7530027, r7530025);
double r7530029 = fma(r7530024, r7530007, r7530028);
double r7530030 = r7530020 * r7530029;
double r7530031 = r7530019 / r7530030;
return r7530031;
}



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
Applied add-cbrt-cube0.5
Applied cbrt-unprod0.5
Simplified0.5
rmApplied add-cube-cbrt0.4
Applied fma-neg0.4
Final simplification0.4
herbie shell --seed 2019168 +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))))))