\frac{2.0 + \left(\left(\sqrt{2.0} \cdot \left(\sin x - \frac{\sin y}{16.0}\right)\right) \cdot \left(\sin y - \frac{\sin x}{16.0}\right)\right) \cdot \left(\cos x - \cos y\right)}{3.0 \cdot \left(\left(1.0 + \frac{\sqrt{5.0} - 1.0}{2.0} \cdot \cos x\right) + \frac{3.0 - \sqrt{5.0}}{2.0} \cdot \cos y\right)}\frac{\mathsf{fma}\left(\left(\left(\left(\cos x - \cos y\right) \cdot \sqrt{\sqrt{2.0}}\right) \cdot \sqrt{\sqrt{2.0}}\right) \cdot \left(\sin x - \frac{\sin y}{16.0}\right), \sin y - \frac{\sin x}{16.0}, 2.0\right)}{3.0 \cdot \mathsf{fma}\left(\frac{\frac{3.0 \cdot 3.0 - 5.0}{\sqrt{5.0} + 3.0}}{2.0}, \cos y, \mathsf{fma}\left(\cos x, \frac{\sqrt{5.0} - 1.0}{2.0}, 1.0\right)\right)}double f(double x, double y) {
double r10728243 = 2.0;
double r10728244 = sqrt(r10728243);
double r10728245 = x;
double r10728246 = sin(r10728245);
double r10728247 = y;
double r10728248 = sin(r10728247);
double r10728249 = 16.0;
double r10728250 = r10728248 / r10728249;
double r10728251 = r10728246 - r10728250;
double r10728252 = r10728244 * r10728251;
double r10728253 = r10728246 / r10728249;
double r10728254 = r10728248 - r10728253;
double r10728255 = r10728252 * r10728254;
double r10728256 = cos(r10728245);
double r10728257 = cos(r10728247);
double r10728258 = r10728256 - r10728257;
double r10728259 = r10728255 * r10728258;
double r10728260 = r10728243 + r10728259;
double r10728261 = 3.0;
double r10728262 = 1.0;
double r10728263 = 5.0;
double r10728264 = sqrt(r10728263);
double r10728265 = r10728264 - r10728262;
double r10728266 = r10728265 / r10728243;
double r10728267 = r10728266 * r10728256;
double r10728268 = r10728262 + r10728267;
double r10728269 = r10728261 - r10728264;
double r10728270 = r10728269 / r10728243;
double r10728271 = r10728270 * r10728257;
double r10728272 = r10728268 + r10728271;
double r10728273 = r10728261 * r10728272;
double r10728274 = r10728260 / r10728273;
return r10728274;
}
double f(double x, double y) {
double r10728275 = x;
double r10728276 = cos(r10728275);
double r10728277 = y;
double r10728278 = cos(r10728277);
double r10728279 = r10728276 - r10728278;
double r10728280 = 2.0;
double r10728281 = sqrt(r10728280);
double r10728282 = sqrt(r10728281);
double r10728283 = r10728279 * r10728282;
double r10728284 = r10728283 * r10728282;
double r10728285 = sin(r10728275);
double r10728286 = sin(r10728277);
double r10728287 = 16.0;
double r10728288 = r10728286 / r10728287;
double r10728289 = r10728285 - r10728288;
double r10728290 = r10728284 * r10728289;
double r10728291 = r10728285 / r10728287;
double r10728292 = r10728286 - r10728291;
double r10728293 = fma(r10728290, r10728292, r10728280);
double r10728294 = 3.0;
double r10728295 = r10728294 * r10728294;
double r10728296 = 5.0;
double r10728297 = r10728295 - r10728296;
double r10728298 = sqrt(r10728296);
double r10728299 = r10728298 + r10728294;
double r10728300 = r10728297 / r10728299;
double r10728301 = r10728300 / r10728280;
double r10728302 = 1.0;
double r10728303 = r10728298 - r10728302;
double r10728304 = r10728303 / r10728280;
double r10728305 = fma(r10728276, r10728304, r10728302);
double r10728306 = fma(r10728301, r10728278, r10728305);
double r10728307 = r10728294 * r10728306;
double r10728308 = r10728293 / r10728307;
return r10728308;
}



Bits error versus x



Bits error versus y
Initial program 0.4
Simplified0.4
rmApplied flip--0.5
Simplified0.4
rmApplied add-sqr-sqrt0.4
Applied sqrt-prod0.4
Applied associate-*r*0.4
Final simplification0.4
herbie shell --seed 2019158 +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))))))