\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(\left(\sin x - \frac{\sin y}{{\left(\sqrt[3]{16}\right)}^{3}}\right) \cdot \sqrt{2} + \sqrt{2} \cdot \left(\left(-\frac{\sin y}{{\left(\sqrt[3]{16}\right)}^{3}}\right) + \frac{\sin y}{{\left(\sqrt[3]{16}\right)}^{3}}\right), \left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\cos x - \cos y\right), 2\right)}{3}}{\mathsf{fma}\left(\cos y, \frac{\frac{3 \cdot 3 - 5}{3 + \sqrt{5}}}{2}, \mathsf{fma}\left(\cos x, \frac{\sqrt{5} - 1}{2}, 1\right)\right)}double f(double x, double y) {
double r143125 = 2.0;
double r143126 = sqrt(r143125);
double r143127 = x;
double r143128 = sin(r143127);
double r143129 = y;
double r143130 = sin(r143129);
double r143131 = 16.0;
double r143132 = r143130 / r143131;
double r143133 = r143128 - r143132;
double r143134 = r143126 * r143133;
double r143135 = r143128 / r143131;
double r143136 = r143130 - r143135;
double r143137 = r143134 * r143136;
double r143138 = cos(r143127);
double r143139 = cos(r143129);
double r143140 = r143138 - r143139;
double r143141 = r143137 * r143140;
double r143142 = r143125 + r143141;
double r143143 = 3.0;
double r143144 = 1.0;
double r143145 = 5.0;
double r143146 = sqrt(r143145);
double r143147 = r143146 - r143144;
double r143148 = r143147 / r143125;
double r143149 = r143148 * r143138;
double r143150 = r143144 + r143149;
double r143151 = r143143 - r143146;
double r143152 = r143151 / r143125;
double r143153 = r143152 * r143139;
double r143154 = r143150 + r143153;
double r143155 = r143143 * r143154;
double r143156 = r143142 / r143155;
return r143156;
}
double f(double x, double y) {
double r143157 = x;
double r143158 = sin(r143157);
double r143159 = y;
double r143160 = sin(r143159);
double r143161 = 16.0;
double r143162 = cbrt(r143161);
double r143163 = 3.0;
double r143164 = pow(r143162, r143163);
double r143165 = r143160 / r143164;
double r143166 = r143158 - r143165;
double r143167 = 2.0;
double r143168 = sqrt(r143167);
double r143169 = r143166 * r143168;
double r143170 = -r143165;
double r143171 = r143170 + r143165;
double r143172 = r143168 * r143171;
double r143173 = r143169 + r143172;
double r143174 = r143158 / r143161;
double r143175 = r143160 - r143174;
double r143176 = cos(r143157);
double r143177 = cos(r143159);
double r143178 = r143176 - r143177;
double r143179 = r143175 * r143178;
double r143180 = fma(r143173, r143179, r143167);
double r143181 = 3.0;
double r143182 = r143180 / r143181;
double r143183 = r143181 * r143181;
double r143184 = 5.0;
double r143185 = r143183 - r143184;
double r143186 = sqrt(r143184);
double r143187 = r143181 + r143186;
double r143188 = r143185 / r143187;
double r143189 = r143188 / r143167;
double r143190 = 1.0;
double r143191 = r143186 - r143190;
double r143192 = r143191 / r143167;
double r143193 = fma(r143176, r143192, r143190);
double r143194 = fma(r143177, r143189, r143193);
double r143195 = r143182 / r143194;
return r143195;
}



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-sqr-sqrt31.7
Applied prod-diff31.7
Applied distribute-lft-in31.7
Simplified0.4
Simplified0.4
rmApplied flip--0.5
Simplified0.4
Final simplification0.4
herbie shell --seed 2019325 +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))))))