\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 \log \left(e^{\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 r201171 = 2.0;
double r201172 = sqrt(r201171);
double r201173 = x;
double r201174 = sin(r201173);
double r201175 = y;
double r201176 = sin(r201175);
double r201177 = 16.0;
double r201178 = r201176 / r201177;
double r201179 = r201174 - r201178;
double r201180 = r201172 * r201179;
double r201181 = r201174 / r201177;
double r201182 = r201176 - r201181;
double r201183 = r201180 * r201182;
double r201184 = cos(r201173);
double r201185 = cos(r201175);
double r201186 = r201184 - r201185;
double r201187 = r201183 * r201186;
double r201188 = r201171 + r201187;
double r201189 = 3.0;
double r201190 = 1.0;
double r201191 = 5.0;
double r201192 = sqrt(r201191);
double r201193 = r201192 - r201190;
double r201194 = r201193 / r201171;
double r201195 = r201194 * r201184;
double r201196 = r201190 + r201195;
double r201197 = r201189 - r201192;
double r201198 = r201197 / r201171;
double r201199 = r201198 * r201185;
double r201200 = r201196 + r201199;
double r201201 = r201189 * r201200;
double r201202 = r201188 / r201201;
return r201202;
}
double f(double x, double y) {
double r201203 = 2.0;
double r201204 = sqrt(r201203);
double r201205 = 1.0;
double r201206 = x;
double r201207 = sin(r201206);
double r201208 = y;
double r201209 = sin(r201208);
double r201210 = 16.0;
double r201211 = cbrt(r201210);
double r201212 = r201209 / r201211;
double r201213 = r201211 * r201211;
double r201214 = r201205 / r201213;
double r201215 = r201212 * r201214;
double r201216 = -r201215;
double r201217 = fma(r201205, r201207, r201216);
double r201218 = r201204 * r201217;
double r201219 = -r201212;
double r201220 = r201219 + r201212;
double r201221 = r201214 * r201220;
double r201222 = r201204 * r201221;
double r201223 = r201218 + r201222;
double r201224 = r201207 / r201210;
double r201225 = r201209 - r201224;
double r201226 = cos(r201206);
double r201227 = cos(r201208);
double r201228 = r201226 - r201227;
double r201229 = exp(r201228);
double r201230 = log(r201229);
double r201231 = r201225 * r201230;
double r201232 = fma(r201223, r201231, r201203);
double r201233 = 3.0;
double r201234 = 5.0;
double r201235 = sqrt(r201234);
double r201236 = r201233 - r201235;
double r201237 = r201236 / r201203;
double r201238 = 1.0;
double r201239 = r201235 - r201238;
double r201240 = r201239 / r201203;
double r201241 = fma(r201240, r201226, r201238);
double r201242 = fma(r201237, r201227, r201241);
double r201243 = r201232 / r201242;
double r201244 = r201243 / r201233;
return r201244;
}



Bits error versus x



Bits error versus y
Initial program 0.5
Simplified0.5
rmApplied add-log-exp0.5
Applied add-log-exp0.5
Applied diff-log0.5
Simplified0.5
rmApplied add-cube-cbrt0.4
Applied add-cube-cbrt0.4
Applied times-frac0.4
Applied add-sqr-sqrt32.0
Applied prod-diff32.0
Applied distribute-lft-in32.0
Simplified0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2020033 +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))))))