Average Error: 0.5 → 0.4
Time: 49.7s
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{\frac{\mathsf{fma}\left(\left(\sin x - \frac{\sin y}{16}\right) \cdot \sqrt{2}, \left(\sin y - \sin x \cdot 0.0625\right) \cdot \left(\cos x - \cos y\right), 2\right)}{3}}{\mathsf{fma}\left(\cos y, \frac{\frac{3 \cdot 3 - 5}{\sqrt{5} + 3}}{2}, \mathsf{fma}\left(\frac{\sqrt{5} - 1}{2}, \cos x, 1\right)\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{\frac{\mathsf{fma}\left(\left(\sin x - \frac{\sin y}{16}\right) \cdot \sqrt{2}, \left(\sin y - \sin x \cdot 0.0625\right) \cdot \left(\cos x - \cos y\right), 2\right)}{3}}{\mathsf{fma}\left(\cos y, \frac{\frac{3 \cdot 3 - 5}{\sqrt{5} + 3}}{2}, \mathsf{fma}\left(\frac{\sqrt{5} - 1}{2}, \cos x, 1\right)\right)}
double f(double x, double y) {
        double r10082926 = 2.0;
        double r10082927 = sqrt(r10082926);
        double r10082928 = x;
        double r10082929 = sin(r10082928);
        double r10082930 = y;
        double r10082931 = sin(r10082930);
        double r10082932 = 16.0;
        double r10082933 = r10082931 / r10082932;
        double r10082934 = r10082929 - r10082933;
        double r10082935 = r10082927 * r10082934;
        double r10082936 = r10082929 / r10082932;
        double r10082937 = r10082931 - r10082936;
        double r10082938 = r10082935 * r10082937;
        double r10082939 = cos(r10082928);
        double r10082940 = cos(r10082930);
        double r10082941 = r10082939 - r10082940;
        double r10082942 = r10082938 * r10082941;
        double r10082943 = r10082926 + r10082942;
        double r10082944 = 3.0;
        double r10082945 = 1.0;
        double r10082946 = 5.0;
        double r10082947 = sqrt(r10082946);
        double r10082948 = r10082947 - r10082945;
        double r10082949 = r10082948 / r10082926;
        double r10082950 = r10082949 * r10082939;
        double r10082951 = r10082945 + r10082950;
        double r10082952 = r10082944 - r10082947;
        double r10082953 = r10082952 / r10082926;
        double r10082954 = r10082953 * r10082940;
        double r10082955 = r10082951 + r10082954;
        double r10082956 = r10082944 * r10082955;
        double r10082957 = r10082943 / r10082956;
        return r10082957;
}

double f(double x, double y) {
        double r10082958 = x;
        double r10082959 = sin(r10082958);
        double r10082960 = y;
        double r10082961 = sin(r10082960);
        double r10082962 = 16.0;
        double r10082963 = r10082961 / r10082962;
        double r10082964 = r10082959 - r10082963;
        double r10082965 = 2.0;
        double r10082966 = sqrt(r10082965);
        double r10082967 = r10082964 * r10082966;
        double r10082968 = 0.0625;
        double r10082969 = r10082959 * r10082968;
        double r10082970 = r10082961 - r10082969;
        double r10082971 = cos(r10082958);
        double r10082972 = cos(r10082960);
        double r10082973 = r10082971 - r10082972;
        double r10082974 = r10082970 * r10082973;
        double r10082975 = fma(r10082967, r10082974, r10082965);
        double r10082976 = 3.0;
        double r10082977 = r10082975 / r10082976;
        double r10082978 = r10082976 * r10082976;
        double r10082979 = 5.0;
        double r10082980 = r10082978 - r10082979;
        double r10082981 = sqrt(r10082979);
        double r10082982 = r10082981 + r10082976;
        double r10082983 = r10082980 / r10082982;
        double r10082984 = r10082983 / r10082965;
        double r10082985 = 1.0;
        double r10082986 = r10082981 - r10082985;
        double r10082987 = r10082986 / r10082965;
        double r10082988 = fma(r10082987, r10082971, r10082985);
        double r10082989 = fma(r10082972, r10082984, r10082988);
        double r10082990 = r10082977 / r10082989;
        return r10082990;
}

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. Simplified0.4

    \[\leadsto \color{blue}{\frac{\frac{\mathsf{fma}\left(\left(\sin x - \frac{\sin y}{16}\right) \cdot \sqrt{2}, \left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\cos x - \cos y\right), 2\right)}{3}}{\mathsf{fma}\left(\cos y, \frac{3 - \sqrt{5}}{2}, \mathsf{fma}\left(\frac{\sqrt{5} - 1}{2}, \cos x, 1\right)\right)}}\]
  3. Using strategy rm
  4. Applied flip--0.5

    \[\leadsto \frac{\frac{\mathsf{fma}\left(\left(\sin x - \frac{\sin y}{16}\right) \cdot \sqrt{2}, \left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\cos x - \cos y\right), 2\right)}{3}}{\mathsf{fma}\left(\cos y, \frac{\color{blue}{\frac{3 \cdot 3 - \sqrt{5} \cdot \sqrt{5}}{3 + \sqrt{5}}}}{2}, \mathsf{fma}\left(\frac{\sqrt{5} - 1}{2}, \cos x, 1\right)\right)}\]
  5. Simplified0.4

    \[\leadsto \frac{\frac{\mathsf{fma}\left(\left(\sin x - \frac{\sin y}{16}\right) \cdot \sqrt{2}, \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{\color{blue}{3 \cdot 3 - 5}}{3 + \sqrt{5}}}{2}, \mathsf{fma}\left(\frac{\sqrt{5} - 1}{2}, \cos x, 1\right)\right)}\]
  6. Taylor expanded around inf 0.4

    \[\leadsto \frac{\frac{\mathsf{fma}\left(\left(\sin x - \frac{\sin y}{16}\right) \cdot \sqrt{2}, \color{blue}{\left(\cos x - \cos y\right) \cdot \left(\sin y - 0.0625 \cdot \sin x\right)}, 2\right)}{3}}{\mathsf{fma}\left(\cos y, \frac{\frac{3 \cdot 3 - 5}{3 + \sqrt{5}}}{2}, \mathsf{fma}\left(\frac{\sqrt{5} - 1}{2}, \cos x, 1\right)\right)}\]
  7. Final simplification0.4

    \[\leadsto \frac{\frac{\mathsf{fma}\left(\left(\sin x - \frac{\sin y}{16}\right) \cdot \sqrt{2}, \left(\sin y - \sin x \cdot 0.0625\right) \cdot \left(\cos x - \cos y\right), 2\right)}{3}}{\mathsf{fma}\left(\cos y, \frac{\frac{3 \cdot 3 - 5}{\sqrt{5} + 3}}{2}, \mathsf{fma}\left(\frac{\sqrt{5} - 1}{2}, \cos x, 1\right)\right)}\]

Reproduce

herbie shell --seed 2019172 +o rules:numerics
(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))))))