\frac{2.0 + \left(\left(\sqrt{2.0} \cdot \left(\sin x - \frac{\sin y}{16.0}\right)\right) \cdot \left(\sin y - \frac{\sin x}{16.0}\right)\right) \cdot \left(\cos x - \cos y\right)}{3.0 \cdot \left(\left(1.0 + \frac{\sqrt{5.0} - 1.0}{2.0} \cdot \cos x\right) + \frac{3.0 - \sqrt{5.0}}{2.0} \cdot \cos y\right)}\frac{2.0 \cdot 2.0 - \left(\left(\left(\sin y - \frac{\sin x}{16.0}\right) \cdot \left(\sqrt{2.0} \cdot \left(\sin x - \frac{\sin y}{16.0}\right)\right)\right) \cdot \left(\cos x - \cos y\right)\right) \cdot \left(\left(\left(\sin y - \frac{\sin x}{16.0}\right) \cdot \left(\sqrt{2.0} \cdot \left(\sin x - \frac{\sin y}{16.0}\right)\right)\right) \cdot \left(\cos x - \cos y\right)\right)}{\left(\left(\cos y \cdot \frac{\frac{3.0 \cdot 3.0 - 5.0}{3.0 + \sqrt{5.0}}}{2.0} + \left(\cos x \cdot \frac{\sqrt{5.0} - 1.0}{2.0} + 1.0\right)\right) \cdot 3.0\right) \cdot \left(2.0 - \left(\left(\sin y - \frac{\sin x}{16.0}\right) \cdot \left(\sqrt{2.0} \cdot \left(\sin x - \frac{\sin y}{16.0}\right)\right)\right) \cdot \left(\cos x - \cos y\right)\right)}double f(double x, double y) {
double r10035135 = 2.0;
double r10035136 = sqrt(r10035135);
double r10035137 = x;
double r10035138 = sin(r10035137);
double r10035139 = y;
double r10035140 = sin(r10035139);
double r10035141 = 16.0;
double r10035142 = r10035140 / r10035141;
double r10035143 = r10035138 - r10035142;
double r10035144 = r10035136 * r10035143;
double r10035145 = r10035138 / r10035141;
double r10035146 = r10035140 - r10035145;
double r10035147 = r10035144 * r10035146;
double r10035148 = cos(r10035137);
double r10035149 = cos(r10035139);
double r10035150 = r10035148 - r10035149;
double r10035151 = r10035147 * r10035150;
double r10035152 = r10035135 + r10035151;
double r10035153 = 3.0;
double r10035154 = 1.0;
double r10035155 = 5.0;
double r10035156 = sqrt(r10035155);
double r10035157 = r10035156 - r10035154;
double r10035158 = r10035157 / r10035135;
double r10035159 = r10035158 * r10035148;
double r10035160 = r10035154 + r10035159;
double r10035161 = r10035153 - r10035156;
double r10035162 = r10035161 / r10035135;
double r10035163 = r10035162 * r10035149;
double r10035164 = r10035160 + r10035163;
double r10035165 = r10035153 * r10035164;
double r10035166 = r10035152 / r10035165;
return r10035166;
}
double f(double x, double y) {
double r10035167 = 2.0;
double r10035168 = r10035167 * r10035167;
double r10035169 = y;
double r10035170 = sin(r10035169);
double r10035171 = x;
double r10035172 = sin(r10035171);
double r10035173 = 16.0;
double r10035174 = r10035172 / r10035173;
double r10035175 = r10035170 - r10035174;
double r10035176 = sqrt(r10035167);
double r10035177 = r10035170 / r10035173;
double r10035178 = r10035172 - r10035177;
double r10035179 = r10035176 * r10035178;
double r10035180 = r10035175 * r10035179;
double r10035181 = cos(r10035171);
double r10035182 = cos(r10035169);
double r10035183 = r10035181 - r10035182;
double r10035184 = r10035180 * r10035183;
double r10035185 = r10035184 * r10035184;
double r10035186 = r10035168 - r10035185;
double r10035187 = 3.0;
double r10035188 = r10035187 * r10035187;
double r10035189 = 5.0;
double r10035190 = r10035188 - r10035189;
double r10035191 = sqrt(r10035189);
double r10035192 = r10035187 + r10035191;
double r10035193 = r10035190 / r10035192;
double r10035194 = r10035193 / r10035167;
double r10035195 = r10035182 * r10035194;
double r10035196 = 1.0;
double r10035197 = r10035191 - r10035196;
double r10035198 = r10035197 / r10035167;
double r10035199 = r10035181 * r10035198;
double r10035200 = r10035199 + r10035196;
double r10035201 = r10035195 + r10035200;
double r10035202 = r10035201 * r10035187;
double r10035203 = r10035167 - r10035184;
double r10035204 = r10035202 * r10035203;
double r10035205 = r10035186 / r10035204;
return r10035205;
}



Bits error versus x



Bits error versus y
Results
Initial program 0.5
rmApplied flip--0.5
Simplified0.4
rmApplied flip-+0.5
Applied associate-/l/0.5
Final simplification0.5
herbie shell --seed 2019162
(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))))))