\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 + \frac{\left(\left(\sqrt{\sqrt{2}} \cdot \left(\sqrt{\sqrt{2}} \cdot \left(\sin x \cdot \sin x - \frac{\sin y}{16} \cdot \frac{\sin y}{16}\right)\right)\right) \cdot \left(\sin y - \frac{\sin x}{16}\right)\right) \cdot \left({\left(\cos x\right)}^{3} - {\left(\cos y\right)}^{3}\right)}{\left(\cos y \cdot \left(\cos y + \cos x\right) + \cos x \cdot \cos x\right) \cdot \left(\sin x + \frac{\sin y}{16}\right)}}{3 \cdot \left(\left(1 + \frac{\sqrt{5} - 1}{2} \cdot \cos x\right) + \frac{\frac{3 \cdot 3 + \left(-5\right)}{3 + \sqrt{5}}}{2} \cdot \cos y\right)}double f(double x, double y) {
double r148419 = 2.0;
double r148420 = sqrt(r148419);
double r148421 = x;
double r148422 = sin(r148421);
double r148423 = y;
double r148424 = sin(r148423);
double r148425 = 16.0;
double r148426 = r148424 / r148425;
double r148427 = r148422 - r148426;
double r148428 = r148420 * r148427;
double r148429 = r148422 / r148425;
double r148430 = r148424 - r148429;
double r148431 = r148428 * r148430;
double r148432 = cos(r148421);
double r148433 = cos(r148423);
double r148434 = r148432 - r148433;
double r148435 = r148431 * r148434;
double r148436 = r148419 + r148435;
double r148437 = 3.0;
double r148438 = 1.0;
double r148439 = 5.0;
double r148440 = sqrt(r148439);
double r148441 = r148440 - r148438;
double r148442 = r148441 / r148419;
double r148443 = r148442 * r148432;
double r148444 = r148438 + r148443;
double r148445 = r148437 - r148440;
double r148446 = r148445 / r148419;
double r148447 = r148446 * r148433;
double r148448 = r148444 + r148447;
double r148449 = r148437 * r148448;
double r148450 = r148436 / r148449;
return r148450;
}
double f(double x, double y) {
double r148451 = 2.0;
double r148452 = sqrt(r148451);
double r148453 = sqrt(r148452);
double r148454 = x;
double r148455 = sin(r148454);
double r148456 = r148455 * r148455;
double r148457 = y;
double r148458 = sin(r148457);
double r148459 = 16.0;
double r148460 = r148458 / r148459;
double r148461 = r148460 * r148460;
double r148462 = r148456 - r148461;
double r148463 = r148453 * r148462;
double r148464 = r148453 * r148463;
double r148465 = r148455 / r148459;
double r148466 = r148458 - r148465;
double r148467 = r148464 * r148466;
double r148468 = cos(r148454);
double r148469 = 3.0;
double r148470 = pow(r148468, r148469);
double r148471 = cos(r148457);
double r148472 = pow(r148471, r148469);
double r148473 = r148470 - r148472;
double r148474 = r148467 * r148473;
double r148475 = r148471 + r148468;
double r148476 = r148471 * r148475;
double r148477 = r148468 * r148468;
double r148478 = r148476 + r148477;
double r148479 = r148455 + r148460;
double r148480 = r148478 * r148479;
double r148481 = r148474 / r148480;
double r148482 = r148451 + r148481;
double r148483 = 3.0;
double r148484 = 1.0;
double r148485 = 5.0;
double r148486 = sqrt(r148485);
double r148487 = r148486 - r148484;
double r148488 = r148487 / r148451;
double r148489 = r148488 * r148468;
double r148490 = r148484 + r148489;
double r148491 = r148483 * r148483;
double r148492 = -r148485;
double r148493 = r148491 + r148492;
double r148494 = r148483 + r148486;
double r148495 = r148493 / r148494;
double r148496 = r148495 / r148451;
double r148497 = r148496 * r148471;
double r148498 = r148490 + r148497;
double r148499 = r148483 * r148498;
double r148500 = r148482 / r148499;
return r148500;
}



Bits error versus x



Bits error versus y
Results
Initial program 0.5
rmApplied flip--0.5
Simplified0.4
rmApplied flip3--0.5
Applied flip--0.5
Applied associate-*r/0.5
Applied associate-*l/0.5
Applied frac-times0.5
Simplified0.5
rmApplied add-sqr-sqrt0.5
Applied sqrt-prod0.5
Applied associate-*l*0.4
Final simplification0.4
herbie shell --seed 1978988140
(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))))))