\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 \mathsf{fma}\left(1, \sin x, -\frac{\sin y}{\sqrt[3]{16}} \cdot \frac{1}{\sqrt[3]{16} \cdot \sqrt[3]{16}}\right) + \sqrt{2} \cdot \left(\frac{1}{\sqrt[3]{16} \cdot \sqrt[3]{16}} \cdot \left(\left(-\frac{\sin y}{\sqrt[3]{16}}\right) + \frac{\sin y}{\sqrt[3]{16}}\right)\right), \left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\cos x - \cos y\right), 2\right)}{\mathsf{fma}\left(\frac{3 - \sqrt{5}}{2}, \cos y, \mathsf{fma}\left(\frac{\sqrt{5} - 1}{2}, \cos x, 1\right)\right)}}{3}double f(double x, double y) {
double r218217 = 2.0;
double r218218 = sqrt(r218217);
double r218219 = x;
double r218220 = sin(r218219);
double r218221 = y;
double r218222 = sin(r218221);
double r218223 = 16.0;
double r218224 = r218222 / r218223;
double r218225 = r218220 - r218224;
double r218226 = r218218 * r218225;
double r218227 = r218220 / r218223;
double r218228 = r218222 - r218227;
double r218229 = r218226 * r218228;
double r218230 = cos(r218219);
double r218231 = cos(r218221);
double r218232 = r218230 - r218231;
double r218233 = r218229 * r218232;
double r218234 = r218217 + r218233;
double r218235 = 3.0;
double r218236 = 1.0;
double r218237 = 5.0;
double r218238 = sqrt(r218237);
double r218239 = r218238 - r218236;
double r218240 = r218239 / r218217;
double r218241 = r218240 * r218230;
double r218242 = r218236 + r218241;
double r218243 = r218235 - r218238;
double r218244 = r218243 / r218217;
double r218245 = r218244 * r218231;
double r218246 = r218242 + r218245;
double r218247 = r218235 * r218246;
double r218248 = r218234 / r218247;
return r218248;
}
double f(double x, double y) {
double r218249 = 2.0;
double r218250 = sqrt(r218249);
double r218251 = 1.0;
double r218252 = x;
double r218253 = sin(r218252);
double r218254 = y;
double r218255 = sin(r218254);
double r218256 = 16.0;
double r218257 = cbrt(r218256);
double r218258 = r218255 / r218257;
double r218259 = r218257 * r218257;
double r218260 = r218251 / r218259;
double r218261 = r218258 * r218260;
double r218262 = -r218261;
double r218263 = fma(r218251, r218253, r218262);
double r218264 = r218250 * r218263;
double r218265 = -r218258;
double r218266 = r218265 + r218258;
double r218267 = r218260 * r218266;
double r218268 = r218250 * r218267;
double r218269 = r218264 + r218268;
double r218270 = r218253 / r218256;
double r218271 = r218255 - r218270;
double r218272 = cos(r218252);
double r218273 = cos(r218254);
double r218274 = r218272 - r218273;
double r218275 = r218271 * r218274;
double r218276 = fma(r218269, r218275, r218249);
double r218277 = 3.0;
double r218278 = 5.0;
double r218279 = sqrt(r218278);
double r218280 = r218277 - r218279;
double r218281 = r218280 / r218249;
double r218282 = 1.0;
double r218283 = r218279 - r218282;
double r218284 = r218283 / r218249;
double r218285 = fma(r218284, r218272, r218282);
double r218286 = fma(r218281, r218273, r218285);
double r218287 = r218276 / r218286;
double r218288 = r218287 / r218277;
return r218288;
}



Bits error versus x



Bits error versus y
Initial program 0.5
Simplified0.4
rmApplied add-cube-cbrt0.4
Applied add-sqr-sqrt32.4
Applied times-frac32.4
Applied add-sqr-sqrt48.2
Applied prod-diff48.2
Applied distribute-lft-in48.2
Simplified32.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2020081 +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))))))