\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 - \frac{\sin y}{16}\right) \cdot \sqrt{2}, \left(\sin y - \sin x \cdot 0.0625\right) \cdot \left(\cos x - \cos y\right), 2\right)}{3}}{\mathsf{fma}\left(\cos y, \frac{\frac{3 \cdot 3 - 5}{\sqrt{5} + 3}}{2}, \mathsf{fma}\left(\frac{\sqrt{5} - 1}{2}, \cos x, 1\right)\right)}double f(double x, double y) {
double r10082926 = 2.0;
double r10082927 = sqrt(r10082926);
double r10082928 = x;
double r10082929 = sin(r10082928);
double r10082930 = y;
double r10082931 = sin(r10082930);
double r10082932 = 16.0;
double r10082933 = r10082931 / r10082932;
double r10082934 = r10082929 - r10082933;
double r10082935 = r10082927 * r10082934;
double r10082936 = r10082929 / r10082932;
double r10082937 = r10082931 - r10082936;
double r10082938 = r10082935 * r10082937;
double r10082939 = cos(r10082928);
double r10082940 = cos(r10082930);
double r10082941 = r10082939 - r10082940;
double r10082942 = r10082938 * r10082941;
double r10082943 = r10082926 + r10082942;
double r10082944 = 3.0;
double r10082945 = 1.0;
double r10082946 = 5.0;
double r10082947 = sqrt(r10082946);
double r10082948 = r10082947 - r10082945;
double r10082949 = r10082948 / r10082926;
double r10082950 = r10082949 * r10082939;
double r10082951 = r10082945 + r10082950;
double r10082952 = r10082944 - r10082947;
double r10082953 = r10082952 / r10082926;
double r10082954 = r10082953 * r10082940;
double r10082955 = r10082951 + r10082954;
double r10082956 = r10082944 * r10082955;
double r10082957 = r10082943 / r10082956;
return r10082957;
}
double f(double x, double y) {
double r10082958 = x;
double r10082959 = sin(r10082958);
double r10082960 = y;
double r10082961 = sin(r10082960);
double r10082962 = 16.0;
double r10082963 = r10082961 / r10082962;
double r10082964 = r10082959 - r10082963;
double r10082965 = 2.0;
double r10082966 = sqrt(r10082965);
double r10082967 = r10082964 * r10082966;
double r10082968 = 0.0625;
double r10082969 = r10082959 * r10082968;
double r10082970 = r10082961 - r10082969;
double r10082971 = cos(r10082958);
double r10082972 = cos(r10082960);
double r10082973 = r10082971 - r10082972;
double r10082974 = r10082970 * r10082973;
double r10082975 = fma(r10082967, r10082974, r10082965);
double r10082976 = 3.0;
double r10082977 = r10082975 / r10082976;
double r10082978 = r10082976 * r10082976;
double r10082979 = 5.0;
double r10082980 = r10082978 - r10082979;
double r10082981 = sqrt(r10082979);
double r10082982 = r10082981 + r10082976;
double r10082983 = r10082980 / r10082982;
double r10082984 = r10082983 / r10082965;
double r10082985 = 1.0;
double r10082986 = r10082981 - r10082985;
double r10082987 = r10082986 / r10082965;
double r10082988 = fma(r10082987, r10082971, r10082985);
double r10082989 = fma(r10082972, r10082984, r10082988);
double r10082990 = r10082977 / r10082989;
return r10082990;
}



Bits error versus x



Bits error versus y
Initial program 0.5
Simplified0.4
rmApplied flip--0.5
Simplified0.4
Taylor expanded around inf 0.4
Final simplification0.4
herbie shell --seed 2019172 +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))))))