\frac{2.0 + \left(\left(\sqrt{2.0} \cdot \left(\sin x - \frac{\sin y}{16.0}\right)\right) \cdot \left(\sin y - \frac{\sin x}{16.0}\right)\right) \cdot \left(\cos x - \cos y\right)}{3.0 \cdot \left(\left(1.0 + \frac{\sqrt{5.0} - 1.0}{2.0} \cdot \cos x\right) + \frac{3.0 - \sqrt{5.0}}{2.0} \cdot \cos y\right)}\left(2.0 + \left(\sqrt[3]{\cos x - \cos y} \cdot \left(\sqrt[3]{\cos x - \cos y} \cdot \sqrt[3]{\cos x - \cos y}\right)\right) \cdot \left(\left(\sin y - \frac{\sin x}{16.0}\right) \cdot \left(\left(\sin x - \frac{\sin y}{16.0}\right) \cdot \sqrt{2.0}\right)\right)\right) \cdot \frac{1}{\left(\cos y \cdot \frac{3.0 - \sqrt{5.0}}{2.0} + \left(\frac{\sqrt{5.0} - 1.0}{2.0} \cdot \cos x + 1.0\right)\right) \cdot 3.0}double f(double x, double y) {
double r12872063 = 2.0;
double r12872064 = sqrt(r12872063);
double r12872065 = x;
double r12872066 = sin(r12872065);
double r12872067 = y;
double r12872068 = sin(r12872067);
double r12872069 = 16.0;
double r12872070 = r12872068 / r12872069;
double r12872071 = r12872066 - r12872070;
double r12872072 = r12872064 * r12872071;
double r12872073 = r12872066 / r12872069;
double r12872074 = r12872068 - r12872073;
double r12872075 = r12872072 * r12872074;
double r12872076 = cos(r12872065);
double r12872077 = cos(r12872067);
double r12872078 = r12872076 - r12872077;
double r12872079 = r12872075 * r12872078;
double r12872080 = r12872063 + r12872079;
double r12872081 = 3.0;
double r12872082 = 1.0;
double r12872083 = 5.0;
double r12872084 = sqrt(r12872083);
double r12872085 = r12872084 - r12872082;
double r12872086 = r12872085 / r12872063;
double r12872087 = r12872086 * r12872076;
double r12872088 = r12872082 + r12872087;
double r12872089 = r12872081 - r12872084;
double r12872090 = r12872089 / r12872063;
double r12872091 = r12872090 * r12872077;
double r12872092 = r12872088 + r12872091;
double r12872093 = r12872081 * r12872092;
double r12872094 = r12872080 / r12872093;
return r12872094;
}
double f(double x, double y) {
double r12872095 = 2.0;
double r12872096 = x;
double r12872097 = cos(r12872096);
double r12872098 = y;
double r12872099 = cos(r12872098);
double r12872100 = r12872097 - r12872099;
double r12872101 = cbrt(r12872100);
double r12872102 = r12872101 * r12872101;
double r12872103 = r12872101 * r12872102;
double r12872104 = sin(r12872098);
double r12872105 = sin(r12872096);
double r12872106 = 16.0;
double r12872107 = r12872105 / r12872106;
double r12872108 = r12872104 - r12872107;
double r12872109 = r12872104 / r12872106;
double r12872110 = r12872105 - r12872109;
double r12872111 = sqrt(r12872095);
double r12872112 = r12872110 * r12872111;
double r12872113 = r12872108 * r12872112;
double r12872114 = r12872103 * r12872113;
double r12872115 = r12872095 + r12872114;
double r12872116 = 1.0;
double r12872117 = 3.0;
double r12872118 = 5.0;
double r12872119 = sqrt(r12872118);
double r12872120 = r12872117 - r12872119;
double r12872121 = r12872120 / r12872095;
double r12872122 = r12872099 * r12872121;
double r12872123 = 1.0;
double r12872124 = r12872119 - r12872123;
double r12872125 = r12872124 / r12872095;
double r12872126 = r12872125 * r12872097;
double r12872127 = r12872126 + r12872123;
double r12872128 = r12872122 + r12872127;
double r12872129 = r12872128 * r12872117;
double r12872130 = r12872116 / r12872129;
double r12872131 = r12872115 * r12872130;
return r12872131;
}



Bits error versus x



Bits error versus y
Results
Initial program 0.5
rmApplied div-inv0.5
rmApplied add-cube-cbrt0.5
Final simplification0.5
herbie shell --seed 2019163
(FPCore (x y)
:name "Diagrams.TwoD.Path.Metafont.Internal:hobbyF from diagrams-contrib-1.3.0.5"
(/ (+ 2.0 (* (* (* (sqrt 2.0) (- (sin x) (/ (sin y) 16.0))) (- (sin y) (/ (sin x) 16.0))) (- (cos x) (cos y)))) (* 3.0 (+ (+ 1.0 (* (/ (- (sqrt 5.0) 1.0) 2.0) (cos x))) (* (/ (- 3.0 (sqrt 5.0)) 2.0) (cos y))))))