\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(\cos x - \cos y, \left(\mathsf{fma}\left(1, \sin x, -\frac{\sqrt[3]{\sin y}}{\sqrt[3]{16}} \cdot \frac{\sqrt[3]{\sin y} \cdot \sqrt[3]{\sin y}}{\sqrt[3]{16} \cdot \sqrt[3]{16}}\right) \cdot \sqrt{2} + \left(\frac{\sqrt[3]{\sin y} \cdot \sqrt[3]{\sin y}}{\sqrt[3]{16} \cdot \sqrt[3]{16}} \cdot \left(\left(-\frac{\sqrt[3]{\sin y}}{\sqrt[3]{16}}\right) + \frac{\sqrt[3]{\sin y}}{\sqrt[3]{16}}\right)\right) \cdot \sqrt{2}\right) \cdot \left(\sin y - \frac{\sin x}{16}\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 r227255 = 2.0;
double r227256 = sqrt(r227255);
double r227257 = x;
double r227258 = sin(r227257);
double r227259 = y;
double r227260 = sin(r227259);
double r227261 = 16.0;
double r227262 = r227260 / r227261;
double r227263 = r227258 - r227262;
double r227264 = r227256 * r227263;
double r227265 = r227258 / r227261;
double r227266 = r227260 - r227265;
double r227267 = r227264 * r227266;
double r227268 = cos(r227257);
double r227269 = cos(r227259);
double r227270 = r227268 - r227269;
double r227271 = r227267 * r227270;
double r227272 = r227255 + r227271;
double r227273 = 3.0;
double r227274 = 1.0;
double r227275 = 5.0;
double r227276 = sqrt(r227275);
double r227277 = r227276 - r227274;
double r227278 = r227277 / r227255;
double r227279 = r227278 * r227268;
double r227280 = r227274 + r227279;
double r227281 = r227273 - r227276;
double r227282 = r227281 / r227255;
double r227283 = r227282 * r227269;
double r227284 = r227280 + r227283;
double r227285 = r227273 * r227284;
double r227286 = r227272 / r227285;
return r227286;
}
double f(double x, double y) {
double r227287 = x;
double r227288 = cos(r227287);
double r227289 = y;
double r227290 = cos(r227289);
double r227291 = r227288 - r227290;
double r227292 = 1.0;
double r227293 = sin(r227287);
double r227294 = sin(r227289);
double r227295 = cbrt(r227294);
double r227296 = 16.0;
double r227297 = cbrt(r227296);
double r227298 = r227295 / r227297;
double r227299 = r227295 * r227295;
double r227300 = r227297 * r227297;
double r227301 = r227299 / r227300;
double r227302 = r227298 * r227301;
double r227303 = -r227302;
double r227304 = fma(r227292, r227293, r227303);
double r227305 = 2.0;
double r227306 = sqrt(r227305);
double r227307 = r227304 * r227306;
double r227308 = -r227298;
double r227309 = r227308 + r227298;
double r227310 = r227301 * r227309;
double r227311 = r227310 * r227306;
double r227312 = r227307 + r227311;
double r227313 = r227293 / r227296;
double r227314 = r227294 - r227313;
double r227315 = r227312 * r227314;
double r227316 = fma(r227291, r227315, r227305);
double r227317 = 3.0;
double r227318 = r227316 / r227317;
double r227319 = 5.0;
double r227320 = sqrt(r227319);
double r227321 = r227317 - r227320;
double r227322 = r227321 / r227305;
double r227323 = 1.0;
double r227324 = r227320 - r227323;
double r227325 = r227324 / r227305;
double r227326 = fma(r227288, r227325, r227323);
double r227327 = fma(r227290, r227322, r227326);
double r227328 = r227318 / r227327;
return r227328;
}



Bits error versus x



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