\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{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 \mathsf{log1p}\left(\mathsf{expm1}\left(\cos x - \cos y\right)\right)}{3 \cdot \left(\left(1 + \frac{\sqrt{5} - 1}{2} \cdot \cos x\right) + \frac{\mathsf{fma}\left(\sqrt[3]{3} \cdot \sqrt[3]{3}, \sqrt[3]{3}, \left(-\sqrt{\sqrt[3]{5}}\right) \cdot \left|\sqrt[3]{5}\right|\right) + \sqrt{\sqrt[3]{5}} \cdot \left(\left(-\left|\sqrt[3]{5}\right|\right) + \left|\sqrt[3]{5}\right|\right)}{2} \cdot \cos y\right)}double f(double x, double y) {
double r174345 = 2.0;
double r174346 = sqrt(r174345);
double r174347 = x;
double r174348 = sin(r174347);
double r174349 = y;
double r174350 = sin(r174349);
double r174351 = 16.0;
double r174352 = r174350 / r174351;
double r174353 = r174348 - r174352;
double r174354 = r174346 * r174353;
double r174355 = r174348 / r174351;
double r174356 = r174350 - r174355;
double r174357 = r174354 * r174356;
double r174358 = cos(r174347);
double r174359 = cos(r174349);
double r174360 = r174358 - r174359;
double r174361 = r174357 * r174360;
double r174362 = r174345 + r174361;
double r174363 = 3.0;
double r174364 = 1.0;
double r174365 = 5.0;
double r174366 = sqrt(r174365);
double r174367 = r174366 - r174364;
double r174368 = r174367 / r174345;
double r174369 = r174368 * r174358;
double r174370 = r174364 + r174369;
double r174371 = r174363 - r174366;
double r174372 = r174371 / r174345;
double r174373 = r174372 * r174359;
double r174374 = r174370 + r174373;
double r174375 = r174363 * r174374;
double r174376 = r174362 / r174375;
return r174376;
}
double f(double x, double y) {
double r174377 = 2.0;
double r174378 = sqrt(r174377);
double r174379 = x;
double r174380 = sin(r174379);
double r174381 = y;
double r174382 = sin(r174381);
double r174383 = 16.0;
double r174384 = r174382 / r174383;
double r174385 = r174380 - r174384;
double r174386 = r174378 * r174385;
double r174387 = r174380 / r174383;
double r174388 = r174382 - r174387;
double r174389 = r174386 * r174388;
double r174390 = cos(r174379);
double r174391 = cos(r174381);
double r174392 = r174390 - r174391;
double r174393 = expm1(r174392);
double r174394 = log1p(r174393);
double r174395 = r174389 * r174394;
double r174396 = r174377 + r174395;
double r174397 = 3.0;
double r174398 = 1.0;
double r174399 = 5.0;
double r174400 = sqrt(r174399);
double r174401 = r174400 - r174398;
double r174402 = r174401 / r174377;
double r174403 = r174402 * r174390;
double r174404 = r174398 + r174403;
double r174405 = cbrt(r174397);
double r174406 = r174405 * r174405;
double r174407 = cbrt(r174399);
double r174408 = sqrt(r174407);
double r174409 = -r174408;
double r174410 = fabs(r174407);
double r174411 = r174409 * r174410;
double r174412 = fma(r174406, r174405, r174411);
double r174413 = -r174410;
double r174414 = r174413 + r174410;
double r174415 = r174408 * r174414;
double r174416 = r174412 + r174415;
double r174417 = r174416 / r174377;
double r174418 = r174417 * r174391;
double r174419 = r174404 + r174418;
double r174420 = r174397 * r174419;
double r174421 = r174396 / r174420;
return r174421;
}



Bits error versus x



Bits error versus y
Initial program 0.5
rmApplied add-cube-cbrt0.6
Applied sqrt-prod0.6
Applied add-cube-cbrt0.6
Applied prod-diff0.4
Simplified0.4
Simplified0.5
rmApplied log1p-expm1-u0.5
Final simplification0.5
herbie shell --seed 2019235 +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))))))