\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(\left(\sqrt[3]{\sin x} \cdot \sqrt[3]{\sin x}\right) \cdot \sqrt[3]{\sin x} - {\left(\frac{\sqrt[3]{\sin y}}{\sqrt[3]{16}}\right)}^{3}\right) + \left({\left(\frac{\sqrt[3]{\sin y}}{\sqrt[3]{16}}\right)}^{3} + \left(-{\left(\frac{\sqrt[3]{\sin y}}{\sqrt[3]{16}}\right)}^{3}\right)\right) \cdot \sqrt{2}, \left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\cos x - \cos y\right), 2\right)}{3}}{\mathsf{fma}\left(\cos y, \frac{3 - \sqrt{5}}{2}, \mathsf{fma}\left(\cos x, \frac{\sqrt{5} - 1}{2}, 1\right)\right)}double f(double x, double y) {
double r161164 = 2.0;
double r161165 = sqrt(r161164);
double r161166 = x;
double r161167 = sin(r161166);
double r161168 = y;
double r161169 = sin(r161168);
double r161170 = 16.0;
double r161171 = r161169 / r161170;
double r161172 = r161167 - r161171;
double r161173 = r161165 * r161172;
double r161174 = r161167 / r161170;
double r161175 = r161169 - r161174;
double r161176 = r161173 * r161175;
double r161177 = cos(r161166);
double r161178 = cos(r161168);
double r161179 = r161177 - r161178;
double r161180 = r161176 * r161179;
double r161181 = r161164 + r161180;
double r161182 = 3.0;
double r161183 = 1.0;
double r161184 = 5.0;
double r161185 = sqrt(r161184);
double r161186 = r161185 - r161183;
double r161187 = r161186 / r161164;
double r161188 = r161187 * r161177;
double r161189 = r161183 + r161188;
double r161190 = r161182 - r161185;
double r161191 = r161190 / r161164;
double r161192 = r161191 * r161178;
double r161193 = r161189 + r161192;
double r161194 = r161182 * r161193;
double r161195 = r161181 / r161194;
return r161195;
}
double f(double x, double y) {
double r161196 = 2.0;
double r161197 = sqrt(r161196);
double r161198 = x;
double r161199 = sin(r161198);
double r161200 = cbrt(r161199);
double r161201 = r161200 * r161200;
double r161202 = r161201 * r161200;
double r161203 = y;
double r161204 = sin(r161203);
double r161205 = cbrt(r161204);
double r161206 = 16.0;
double r161207 = cbrt(r161206);
double r161208 = r161205 / r161207;
double r161209 = 3.0;
double r161210 = pow(r161208, r161209);
double r161211 = r161202 - r161210;
double r161212 = r161197 * r161211;
double r161213 = -r161210;
double r161214 = r161210 + r161213;
double r161215 = r161214 * r161197;
double r161216 = r161212 + r161215;
double r161217 = r161199 / r161206;
double r161218 = r161204 - r161217;
double r161219 = cos(r161198);
double r161220 = cos(r161203);
double r161221 = r161219 - r161220;
double r161222 = r161218 * r161221;
double r161223 = fma(r161216, r161222, r161196);
double r161224 = 3.0;
double r161225 = r161223 / r161224;
double r161226 = 5.0;
double r161227 = sqrt(r161226);
double r161228 = r161224 - r161227;
double r161229 = r161228 / r161196;
double r161230 = 1.0;
double r161231 = r161227 - r161230;
double r161232 = r161231 / r161196;
double r161233 = fma(r161219, r161232, r161230);
double r161234 = fma(r161220, r161229, r161233);
double r161235 = r161225 / r161234;
return r161235;
}



Bits error versus x



Bits error versus y
Initial program 0.5
Simplified0.4
rmApplied add-cube-cbrt0.4
Applied add-cube-cbrt0.4
Applied times-frac0.4
Applied add-cube-cbrt0.5
Applied prod-diff0.5
Applied distribute-lft-in0.5
Simplified0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019347 +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))))))