\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(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right), \left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\cos x - \cos y\right), 2\right)}{3}}{\mathsf{fma}\left(\cos y, \frac{\mathsf{fma}\left(\sqrt[3]{3} \cdot \sqrt[3]{3}, \sqrt[3]{3}, -\sqrt{\sqrt[3]{5}} \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}, \mathsf{fma}\left(\cos x, \frac{\sqrt{5} - 1}{2}, 1\right)\right)}double f(double x, double y) {
double r192325 = 2.0;
double r192326 = sqrt(r192325);
double r192327 = x;
double r192328 = sin(r192327);
double r192329 = y;
double r192330 = sin(r192329);
double r192331 = 16.0;
double r192332 = r192330 / r192331;
double r192333 = r192328 - r192332;
double r192334 = r192326 * r192333;
double r192335 = r192328 / r192331;
double r192336 = r192330 - r192335;
double r192337 = r192334 * r192336;
double r192338 = cos(r192327);
double r192339 = cos(r192329);
double r192340 = r192338 - r192339;
double r192341 = r192337 * r192340;
double r192342 = r192325 + r192341;
double r192343 = 3.0;
double r192344 = 1.0;
double r192345 = 5.0;
double r192346 = sqrt(r192345);
double r192347 = r192346 - r192344;
double r192348 = r192347 / r192325;
double r192349 = r192348 * r192338;
double r192350 = r192344 + r192349;
double r192351 = r192343 - r192346;
double r192352 = r192351 / r192325;
double r192353 = r192352 * r192339;
double r192354 = r192350 + r192353;
double r192355 = r192343 * r192354;
double r192356 = r192342 / r192355;
return r192356;
}
double f(double x, double y) {
double r192357 = 2.0;
double r192358 = sqrt(r192357);
double r192359 = x;
double r192360 = sin(r192359);
double r192361 = y;
double r192362 = sin(r192361);
double r192363 = 16.0;
double r192364 = r192362 / r192363;
double r192365 = r192360 - r192364;
double r192366 = r192358 * r192365;
double r192367 = r192360 / r192363;
double r192368 = r192362 - r192367;
double r192369 = cos(r192359);
double r192370 = cos(r192361);
double r192371 = r192369 - r192370;
double r192372 = r192368 * r192371;
double r192373 = fma(r192366, r192372, r192357);
double r192374 = 3.0;
double r192375 = r192373 / r192374;
double r192376 = cbrt(r192374);
double r192377 = r192376 * r192376;
double r192378 = 5.0;
double r192379 = cbrt(r192378);
double r192380 = sqrt(r192379);
double r192381 = fabs(r192379);
double r192382 = r192380 * r192381;
double r192383 = -r192382;
double r192384 = fma(r192377, r192376, r192383);
double r192385 = -r192381;
double r192386 = r192385 + r192381;
double r192387 = r192380 * r192386;
double r192388 = r192384 + r192387;
double r192389 = r192388 / r192357;
double r192390 = sqrt(r192378);
double r192391 = 1.0;
double r192392 = r192390 - r192391;
double r192393 = r192392 / r192357;
double r192394 = fma(r192369, r192393, r192391);
double r192395 = fma(r192370, r192389, r192394);
double r192396 = r192375 / r192395;
return r192396;
}



Bits error versus x



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