\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{2.0 + \left(\cos x - \cos y\right) \cdot \left(\log \left(e^{\left(\sqrt[3]{\sqrt{2.0}} \cdot \sqrt[3]{\sqrt{2.0}}\right) \cdot \left(\sqrt[3]{\sqrt{2.0}} \cdot \left(\sin x - \frac{\sin y}{16.0}\right)\right)}\right) \cdot \left(\sin y - \frac{\sin x}{16.0}\right)\right)}{3.0 \cdot \left(\left(1.0 + \left(\sqrt{\frac{\sqrt{5.0} - 1.0}{2.0}} \cdot \cos x\right) \cdot \sqrt{\frac{\sqrt{5.0} - 1.0}{2.0}}\right) + \cos y \cdot \frac{\frac{3.0 \cdot 3.0 - 5.0}{\sqrt{5.0} + 3.0}}{2.0}\right)}double f(double x, double y) {
double r12204311 = 2.0;
double r12204312 = sqrt(r12204311);
double r12204313 = x;
double r12204314 = sin(r12204313);
double r12204315 = y;
double r12204316 = sin(r12204315);
double r12204317 = 16.0;
double r12204318 = r12204316 / r12204317;
double r12204319 = r12204314 - r12204318;
double r12204320 = r12204312 * r12204319;
double r12204321 = r12204314 / r12204317;
double r12204322 = r12204316 - r12204321;
double r12204323 = r12204320 * r12204322;
double r12204324 = cos(r12204313);
double r12204325 = cos(r12204315);
double r12204326 = r12204324 - r12204325;
double r12204327 = r12204323 * r12204326;
double r12204328 = r12204311 + r12204327;
double r12204329 = 3.0;
double r12204330 = 1.0;
double r12204331 = 5.0;
double r12204332 = sqrt(r12204331);
double r12204333 = r12204332 - r12204330;
double r12204334 = r12204333 / r12204311;
double r12204335 = r12204334 * r12204324;
double r12204336 = r12204330 + r12204335;
double r12204337 = r12204329 - r12204332;
double r12204338 = r12204337 / r12204311;
double r12204339 = r12204338 * r12204325;
double r12204340 = r12204336 + r12204339;
double r12204341 = r12204329 * r12204340;
double r12204342 = r12204328 / r12204341;
return r12204342;
}
double f(double x, double y) {
double r12204343 = 2.0;
double r12204344 = x;
double r12204345 = cos(r12204344);
double r12204346 = y;
double r12204347 = cos(r12204346);
double r12204348 = r12204345 - r12204347;
double r12204349 = sqrt(r12204343);
double r12204350 = cbrt(r12204349);
double r12204351 = r12204350 * r12204350;
double r12204352 = sin(r12204344);
double r12204353 = sin(r12204346);
double r12204354 = 16.0;
double r12204355 = r12204353 / r12204354;
double r12204356 = r12204352 - r12204355;
double r12204357 = r12204350 * r12204356;
double r12204358 = r12204351 * r12204357;
double r12204359 = exp(r12204358);
double r12204360 = log(r12204359);
double r12204361 = r12204352 / r12204354;
double r12204362 = r12204353 - r12204361;
double r12204363 = r12204360 * r12204362;
double r12204364 = r12204348 * r12204363;
double r12204365 = r12204343 + r12204364;
double r12204366 = 3.0;
double r12204367 = 1.0;
double r12204368 = 5.0;
double r12204369 = sqrt(r12204368);
double r12204370 = r12204369 - r12204367;
double r12204371 = r12204370 / r12204343;
double r12204372 = sqrt(r12204371);
double r12204373 = r12204372 * r12204345;
double r12204374 = r12204373 * r12204372;
double r12204375 = r12204367 + r12204374;
double r12204376 = r12204366 * r12204366;
double r12204377 = r12204376 - r12204368;
double r12204378 = r12204369 + r12204366;
double r12204379 = r12204377 / r12204378;
double r12204380 = r12204379 / r12204343;
double r12204381 = r12204347 * r12204380;
double r12204382 = r12204375 + r12204381;
double r12204383 = r12204366 * r12204382;
double r12204384 = r12204365 / r12204383;
return r12204384;
}



Bits error versus x



Bits error versus y
Results
Initial program 0.5
rmApplied add-log-exp0.5
rmApplied flip--0.5
Simplified0.4
rmApplied add-sqr-sqrt0.4
Applied associate-*l*0.4
rmApplied add-cube-cbrt0.4
Applied associate-*l*0.4
Final simplification0.4
herbie shell --seed 2019164
(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))))))