\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{\log \left(e^{\log \left(e^{\left(\sin x - \frac{\sin y}{16}\right) \cdot \sqrt{2}}\right) \cdot \left(\sin y - \frac{\sin x}{16}\right)}\right) \cdot \left(\cos x - \cos y\right) + 2}{\left(\frac{\frac{3 \cdot 3 - 5}{\sqrt{5} + 3}}{2} \cdot \cos y + \left(\frac{\sqrt{5} - 1}{2} \cdot \cos x + 1\right)\right) \cdot 3}double f(double x, double y) {
double r8880645 = 2.0;
double r8880646 = sqrt(r8880645);
double r8880647 = x;
double r8880648 = sin(r8880647);
double r8880649 = y;
double r8880650 = sin(r8880649);
double r8880651 = 16.0;
double r8880652 = r8880650 / r8880651;
double r8880653 = r8880648 - r8880652;
double r8880654 = r8880646 * r8880653;
double r8880655 = r8880648 / r8880651;
double r8880656 = r8880650 - r8880655;
double r8880657 = r8880654 * r8880656;
double r8880658 = cos(r8880647);
double r8880659 = cos(r8880649);
double r8880660 = r8880658 - r8880659;
double r8880661 = r8880657 * r8880660;
double r8880662 = r8880645 + r8880661;
double r8880663 = 3.0;
double r8880664 = 1.0;
double r8880665 = 5.0;
double r8880666 = sqrt(r8880665);
double r8880667 = r8880666 - r8880664;
double r8880668 = r8880667 / r8880645;
double r8880669 = r8880668 * r8880658;
double r8880670 = r8880664 + r8880669;
double r8880671 = r8880663 - r8880666;
double r8880672 = r8880671 / r8880645;
double r8880673 = r8880672 * r8880659;
double r8880674 = r8880670 + r8880673;
double r8880675 = r8880663 * r8880674;
double r8880676 = r8880662 / r8880675;
return r8880676;
}
double f(double x, double y) {
double r8880677 = x;
double r8880678 = sin(r8880677);
double r8880679 = y;
double r8880680 = sin(r8880679);
double r8880681 = 16.0;
double r8880682 = r8880680 / r8880681;
double r8880683 = r8880678 - r8880682;
double r8880684 = 2.0;
double r8880685 = sqrt(r8880684);
double r8880686 = r8880683 * r8880685;
double r8880687 = exp(r8880686);
double r8880688 = log(r8880687);
double r8880689 = r8880678 / r8880681;
double r8880690 = r8880680 - r8880689;
double r8880691 = r8880688 * r8880690;
double r8880692 = exp(r8880691);
double r8880693 = log(r8880692);
double r8880694 = cos(r8880677);
double r8880695 = cos(r8880679);
double r8880696 = r8880694 - r8880695;
double r8880697 = r8880693 * r8880696;
double r8880698 = r8880697 + r8880684;
double r8880699 = 3.0;
double r8880700 = r8880699 * r8880699;
double r8880701 = 5.0;
double r8880702 = r8880700 - r8880701;
double r8880703 = sqrt(r8880701);
double r8880704 = r8880703 + r8880699;
double r8880705 = r8880702 / r8880704;
double r8880706 = r8880705 / r8880684;
double r8880707 = r8880706 * r8880695;
double r8880708 = 1.0;
double r8880709 = r8880703 - r8880708;
double r8880710 = r8880709 / r8880684;
double r8880711 = r8880710 * r8880694;
double r8880712 = r8880711 + r8880708;
double r8880713 = r8880707 + r8880712;
double r8880714 = r8880713 * r8880699;
double r8880715 = r8880698 / r8880714;
return r8880715;
}



Bits error versus x



Bits error versus y
Results
Initial program 0.5
rmApplied add-log-exp0.5
rmApplied flip--0.5
Simplified0.5
rmApplied add-log-exp0.5
Final simplification0.5
herbie shell --seed 2019169
(FPCore (x y)
:name "Diagrams.TwoD.Path.Metafont.Internal:hobbyF from diagrams-contrib-1.3.0.5"
(/ (+ 2.0 (* (* (* (sqrt 2.0) (- (sin x) (/ (sin y) 16.0))) (- (sin y) (/ (sin x) 16.0))) (- (cos x) (cos y)))) (* 3.0 (+ (+ 1.0 (* (/ (- (sqrt 5.0) 1.0) 2.0) (cos x))) (* (/ (- 3.0 (sqrt 5.0)) 2.0) (cos y))))))