\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 \mathsf{log1p}\left(\mathsf{expm1}\left(\cos x - \cos y\right)\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 r192150 = 2.0;
double r192151 = sqrt(r192150);
double r192152 = x;
double r192153 = sin(r192152);
double r192154 = y;
double r192155 = sin(r192154);
double r192156 = 16.0;
double r192157 = r192155 / r192156;
double r192158 = r192153 - r192157;
double r192159 = r192151 * r192158;
double r192160 = r192153 / r192156;
double r192161 = r192155 - r192160;
double r192162 = r192159 * r192161;
double r192163 = cos(r192152);
double r192164 = cos(r192154);
double r192165 = r192163 - r192164;
double r192166 = r192162 * r192165;
double r192167 = r192150 + r192166;
double r192168 = 3.0;
double r192169 = 1.0;
double r192170 = 5.0;
double r192171 = sqrt(r192170);
double r192172 = r192171 - r192169;
double r192173 = r192172 / r192150;
double r192174 = r192173 * r192163;
double r192175 = r192169 + r192174;
double r192176 = r192168 - r192171;
double r192177 = r192176 / r192150;
double r192178 = r192177 * r192164;
double r192179 = r192175 + r192178;
double r192180 = r192168 * r192179;
double r192181 = r192167 / r192180;
return r192181;
}
double f(double x, double y) {
double r192182 = 2.0;
double r192183 = sqrt(r192182);
double r192184 = 1.0;
double r192185 = x;
double r192186 = sin(r192185);
double r192187 = y;
double r192188 = sin(r192187);
double r192189 = 16.0;
double r192190 = cbrt(r192189);
double r192191 = r192188 / r192190;
double r192192 = r192190 * r192190;
double r192193 = r192184 / r192192;
double r192194 = r192191 * r192193;
double r192195 = -r192194;
double r192196 = fma(r192184, r192186, r192195);
double r192197 = r192183 * r192196;
double r192198 = -r192191;
double r192199 = r192198 + r192191;
double r192200 = r192193 * r192199;
double r192201 = r192183 * r192200;
double r192202 = r192197 + r192201;
double r192203 = r192186 / r192189;
double r192204 = r192188 - r192203;
double r192205 = cos(r192185);
double r192206 = cos(r192187);
double r192207 = r192205 - r192206;
double r192208 = expm1(r192207);
double r192209 = log1p(r192208);
double r192210 = r192204 * r192209;
double r192211 = fma(r192202, r192210, r192182);
double r192212 = 3.0;
double r192213 = 5.0;
double r192214 = sqrt(r192213);
double r192215 = r192212 - r192214;
double r192216 = r192215 / r192182;
double r192217 = 1.0;
double r192218 = r192214 - r192217;
double r192219 = r192218 / r192182;
double r192220 = fma(r192219, r192205, r192217);
double r192221 = fma(r192216, r192206, r192220);
double r192222 = r192211 / r192221;
double r192223 = r192222 / r192212;
return r192223;
}



Bits error versus x



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