Average Error: 0.5 → 0.5
Time: 13.1s
Precision: 64
\[\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 + \log \left(e^{\left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)\right) \cdot \left(\sin y - \frac{\sin x}{16}\right)}\right) \cdot \mathsf{fma}\left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}, \sqrt[3]{\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 \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 + \log \left(e^{\left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)\right) \cdot \left(\sin y - \frac{\sin x}{16}\right)}\right) \cdot \mathsf{fma}\left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}, \sqrt[3]{\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)}
double f(double x, double y) {
        double r168267 = 2.0;
        double r168268 = sqrt(r168267);
        double r168269 = x;
        double r168270 = sin(r168269);
        double r168271 = y;
        double r168272 = sin(r168271);
        double r168273 = 16.0;
        double r168274 = r168272 / r168273;
        double r168275 = r168270 - r168274;
        double r168276 = r168268 * r168275;
        double r168277 = r168270 / r168273;
        double r168278 = r168272 - r168277;
        double r168279 = r168276 * r168278;
        double r168280 = cos(r168269);
        double r168281 = cos(r168271);
        double r168282 = r168280 - r168281;
        double r168283 = r168279 * r168282;
        double r168284 = r168267 + r168283;
        double r168285 = 3.0;
        double r168286 = 1.0;
        double r168287 = 5.0;
        double r168288 = sqrt(r168287);
        double r168289 = r168288 - r168286;
        double r168290 = r168289 / r168267;
        double r168291 = r168290 * r168280;
        double r168292 = r168286 + r168291;
        double r168293 = r168285 - r168288;
        double r168294 = r168293 / r168267;
        double r168295 = r168294 * r168281;
        double r168296 = r168292 + r168295;
        double r168297 = r168285 * r168296;
        double r168298 = r168284 / r168297;
        return r168298;
}

double f(double x, double y) {
        double r168299 = 2.0;
        double r168300 = sqrt(r168299);
        double r168301 = x;
        double r168302 = sin(r168301);
        double r168303 = y;
        double r168304 = sin(r168303);
        double r168305 = 16.0;
        double r168306 = r168304 / r168305;
        double r168307 = r168302 - r168306;
        double r168308 = r168300 * r168307;
        double r168309 = r168302 / r168305;
        double r168310 = r168304 - r168309;
        double r168311 = r168308 * r168310;
        double r168312 = exp(r168311);
        double r168313 = log(r168312);
        double r168314 = cos(r168301);
        double r168315 = cbrt(r168314);
        double r168316 = r168315 * r168315;
        double r168317 = cos(r168303);
        double r168318 = -r168317;
        double r168319 = fma(r168316, r168315, r168318);
        double r168320 = r168313 * r168319;
        double r168321 = r168299 + r168320;
        double r168322 = 3.0;
        double r168323 = 1.0;
        double r168324 = 5.0;
        double r168325 = sqrt(r168324);
        double r168326 = r168325 - r168323;
        double r168327 = r168326 / r168299;
        double r168328 = r168327 * r168314;
        double r168329 = r168323 + r168328;
        double r168330 = r168322 - r168325;
        double r168331 = r168330 / r168299;
        double r168332 = r168331 * r168317;
        double r168333 = r168329 + r168332;
        double r168334 = r168322 * r168333;
        double r168335 = r168321 / r168334;
        return r168335;
}

Error

Bits error versus x

Bits error versus y

Derivation

  1. Initial program 0.5

    \[\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)}\]
  2. Using strategy rm
  3. Applied add-log-exp0.5

    \[\leadsto \frac{2 + \color{blue}{\log \left(e^{\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)}\]
  4. Using strategy rm
  5. Applied add-cube-cbrt0.5

    \[\leadsto \frac{2 + \log \left(e^{\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(\color{blue}{\left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}\right) \cdot \sqrt[3]{\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)}\]
  6. Applied fma-neg0.5

    \[\leadsto \frac{2 + \log \left(e^{\left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)\right) \cdot \left(\sin y - \frac{\sin x}{16}\right)}\right) \cdot \color{blue}{\mathsf{fma}\left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}, \sqrt[3]{\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)}\]
  7. Final simplification0.5

    \[\leadsto \frac{2 + \log \left(e^{\left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)\right) \cdot \left(\sin y - \frac{\sin x}{16}\right)}\right) \cdot \mathsf{fma}\left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}, \sqrt[3]{\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)}\]

Reproduce

herbie shell --seed 2020001 +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))))))