\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 r173099 = 2.0;
double r173100 = sqrt(r173099);
double r173101 = x;
double r173102 = sin(r173101);
double r173103 = y;
double r173104 = sin(r173103);
double r173105 = 16.0;
double r173106 = r173104 / r173105;
double r173107 = r173102 - r173106;
double r173108 = r173100 * r173107;
double r173109 = r173102 / r173105;
double r173110 = r173104 - r173109;
double r173111 = r173108 * r173110;
double r173112 = cos(r173101);
double r173113 = cos(r173103);
double r173114 = r173112 - r173113;
double r173115 = r173111 * r173114;
double r173116 = r173099 + r173115;
double r173117 = 3.0;
double r173118 = 1.0;
double r173119 = 5.0;
double r173120 = sqrt(r173119);
double r173121 = r173120 - r173118;
double r173122 = r173121 / r173099;
double r173123 = r173122 * r173112;
double r173124 = r173118 + r173123;
double r173125 = r173117 - r173120;
double r173126 = r173125 / r173099;
double r173127 = r173126 * r173113;
double r173128 = r173124 + r173127;
double r173129 = r173117 * r173128;
double r173130 = r173116 / r173129;
return r173130;
}
double f(double x, double y) {
double r173131 = 2.0;
double r173132 = sqrt(r173131);
double r173133 = x;
double r173134 = sin(r173133);
double r173135 = y;
double r173136 = sin(r173135);
double r173137 = 16.0;
double r173138 = r173136 / r173137;
double r173139 = r173134 - r173138;
double r173140 = r173132 * r173139;
double r173141 = r173134 / r173137;
double r173142 = r173136 - r173141;
double r173143 = cos(r173133);
double r173144 = cos(r173135);
double r173145 = r173143 - r173144;
double r173146 = r173142 * r173145;
double r173147 = fma(r173140, r173146, r173131);
double r173148 = 3.0;
double r173149 = r173147 / r173148;
double r173150 = cbrt(r173148);
double r173151 = r173150 * r173150;
double r173152 = 5.0;
double r173153 = cbrt(r173152);
double r173154 = sqrt(r173153);
double r173155 = fabs(r173153);
double r173156 = r173154 * r173155;
double r173157 = -r173156;
double r173158 = fma(r173151, r173150, r173157);
double r173159 = -r173155;
double r173160 = r173159 + r173155;
double r173161 = r173154 * r173160;
double r173162 = r173158 + r173161;
double r173163 = r173162 / r173131;
double r173164 = sqrt(r173152);
double r173165 = 1.0;
double r173166 = r173164 - r173165;
double r173167 = r173166 / r173131;
double r173168 = fma(r173143, r173167, r173165);
double r173169 = fma(r173144, r173163, r173168);
double r173170 = r173149 / r173169;
return r173170;
}



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 2019305 +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))))))