\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{2 + \left(\left(\sqrt{2} \cdot \sin x + \log \left(e^{\frac{\sqrt{2}}{\sqrt[3]{16} \cdot \sqrt[3]{16}} \cdot \left(-\frac{\sin y}{\sqrt[3]{16}}\right)}\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{\frac{3 \cdot 3 + \left(-5\right)}{3 + \sqrt{5}}}{2} \cdot \cos y\right)}double f(double x, double y) {
double r199152 = 2.0;
double r199153 = sqrt(r199152);
double r199154 = x;
double r199155 = sin(r199154);
double r199156 = y;
double r199157 = sin(r199156);
double r199158 = 16.0;
double r199159 = r199157 / r199158;
double r199160 = r199155 - r199159;
double r199161 = r199153 * r199160;
double r199162 = r199155 / r199158;
double r199163 = r199157 - r199162;
double r199164 = r199161 * r199163;
double r199165 = cos(r199154);
double r199166 = cos(r199156);
double r199167 = r199165 - r199166;
double r199168 = r199164 * r199167;
double r199169 = r199152 + r199168;
double r199170 = 3.0;
double r199171 = 1.0;
double r199172 = 5.0;
double r199173 = sqrt(r199172);
double r199174 = r199173 - r199171;
double r199175 = r199174 / r199152;
double r199176 = r199175 * r199165;
double r199177 = r199171 + r199176;
double r199178 = r199170 - r199173;
double r199179 = r199178 / r199152;
double r199180 = r199179 * r199166;
double r199181 = r199177 + r199180;
double r199182 = r199170 * r199181;
double r199183 = r199169 / r199182;
return r199183;
}
double f(double x, double y) {
double r199184 = 2.0;
double r199185 = sqrt(r199184);
double r199186 = x;
double r199187 = sin(r199186);
double r199188 = r199185 * r199187;
double r199189 = 16.0;
double r199190 = cbrt(r199189);
double r199191 = r199190 * r199190;
double r199192 = r199185 / r199191;
double r199193 = y;
double r199194 = sin(r199193);
double r199195 = r199194 / r199190;
double r199196 = -r199195;
double r199197 = r199192 * r199196;
double r199198 = exp(r199197);
double r199199 = log(r199198);
double r199200 = r199188 + r199199;
double r199201 = r199187 / r199189;
double r199202 = r199194 - r199201;
double r199203 = r199200 * r199202;
double r199204 = cos(r199186);
double r199205 = cos(r199193);
double r199206 = r199204 - r199205;
double r199207 = r199203 * r199206;
double r199208 = r199184 + r199207;
double r199209 = 3.0;
double r199210 = 1.0;
double r199211 = 5.0;
double r199212 = sqrt(r199211);
double r199213 = r199212 - r199210;
double r199214 = r199213 / r199184;
double r199215 = r199214 * r199204;
double r199216 = r199210 + r199215;
double r199217 = r199209 * r199209;
double r199218 = -r199211;
double r199219 = r199217 + r199218;
double r199220 = r199209 + r199212;
double r199221 = r199219 / r199220;
double r199222 = r199221 / r199184;
double r199223 = r199222 * r199205;
double r199224 = r199216 + r199223;
double r199225 = r199209 * r199224;
double r199226 = r199208 / r199225;
return r199226;
}



Bits error versus x



Bits error versus y
Results
Initial program 0.5
rmApplied flip--0.5
Simplified0.4
rmApplied sub-neg0.4
Applied distribute-lft-in0.4
rmApplied add-log-exp0.4
rmApplied add-cube-cbrt0.4
Applied *-un-lft-identity0.4
Applied times-frac0.4
Applied distribute-rgt-neg-in0.4
Applied associate-*r*0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019353
(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))))))