\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 \mathsf{fma}\left(\sqrt[3]{\sin x} \cdot \sqrt[3]{\sin x}, \sqrt[3]{\sin x}, -\frac{{\left(\sqrt[3]{\sin y}\right)}^{3}}{16}\right) + \sqrt{2} \cdot \left(\left(-\frac{{\left(\sqrt[3]{\sin y}\right)}^{3}}{16}\right) + \frac{{\left(\sqrt[3]{\sin y}\right)}^{3}}{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{3 - \sqrt{5}}{2}, \mathsf{fma}\left(\cos x, \frac{\sqrt{5} - 1}{2}, 1\right)\right)}double f(double x, double y) {
double r159270 = 2.0;
double r159271 = sqrt(r159270);
double r159272 = x;
double r159273 = sin(r159272);
double r159274 = y;
double r159275 = sin(r159274);
double r159276 = 16.0;
double r159277 = r159275 / r159276;
double r159278 = r159273 - r159277;
double r159279 = r159271 * r159278;
double r159280 = r159273 / r159276;
double r159281 = r159275 - r159280;
double r159282 = r159279 * r159281;
double r159283 = cos(r159272);
double r159284 = cos(r159274);
double r159285 = r159283 - r159284;
double r159286 = r159282 * r159285;
double r159287 = r159270 + r159286;
double r159288 = 3.0;
double r159289 = 1.0;
double r159290 = 5.0;
double r159291 = sqrt(r159290);
double r159292 = r159291 - r159289;
double r159293 = r159292 / r159270;
double r159294 = r159293 * r159283;
double r159295 = r159289 + r159294;
double r159296 = r159288 - r159291;
double r159297 = r159296 / r159270;
double r159298 = r159297 * r159284;
double r159299 = r159295 + r159298;
double r159300 = r159288 * r159299;
double r159301 = r159287 / r159300;
return r159301;
}
double f(double x, double y) {
double r159302 = 2.0;
double r159303 = sqrt(r159302);
double r159304 = x;
double r159305 = sin(r159304);
double r159306 = cbrt(r159305);
double r159307 = r159306 * r159306;
double r159308 = y;
double r159309 = sin(r159308);
double r159310 = cbrt(r159309);
double r159311 = 3.0;
double r159312 = pow(r159310, r159311);
double r159313 = 16.0;
double r159314 = r159312 / r159313;
double r159315 = -r159314;
double r159316 = fma(r159307, r159306, r159315);
double r159317 = r159303 * r159316;
double r159318 = r159315 + r159314;
double r159319 = r159303 * r159318;
double r159320 = r159317 + r159319;
double r159321 = r159305 / r159313;
double r159322 = r159309 - r159321;
double r159323 = cos(r159304);
double r159324 = cos(r159308);
double r159325 = r159323 - r159324;
double r159326 = r159322 * r159325;
double r159327 = fma(r159320, r159326, r159302);
double r159328 = 3.0;
double r159329 = r159327 / r159328;
double r159330 = 5.0;
double r159331 = sqrt(r159330);
double r159332 = r159328 - r159331;
double r159333 = r159332 / r159302;
double r159334 = 1.0;
double r159335 = r159331 - r159334;
double r159336 = r159335 / r159302;
double r159337 = fma(r159323, r159336, r159334);
double r159338 = fma(r159324, r159333, r159337);
double r159339 = r159329 / r159338;
return r159339;
}



Bits error versus x



Bits error versus y
Initial program 0.5
Simplified0.4
rmApplied *-un-lft-identity0.4
Applied add-cube-cbrt0.4
Applied times-frac0.4
Applied add-cube-cbrt0.5
Applied prod-diff0.5
Applied distribute-lft-in0.5
Simplified0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2019323 +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))))))