Average Error: 0.1 → 0.2
Time: 38.6s
Precision: 64
\[x \cdot \cos y + z \cdot \sin y\]
\[\mathsf{fma}\left(\sin y, z, \left(x \cdot {\left(e^{\log \left(\cos y \cdot \cos y\right)}\right)}^{\frac{1}{3}}\right) \cdot \sqrt[3]{\cos y}\right)\]
x \cdot \cos y + z \cdot \sin y
\mathsf{fma}\left(\sin y, z, \left(x \cdot {\left(e^{\log \left(\cos y \cdot \cos y\right)}\right)}^{\frac{1}{3}}\right) \cdot \sqrt[3]{\cos y}\right)
double f(double x, double y, double z) {
        double r6152050 = x;
        double r6152051 = y;
        double r6152052 = cos(r6152051);
        double r6152053 = r6152050 * r6152052;
        double r6152054 = z;
        double r6152055 = sin(r6152051);
        double r6152056 = r6152054 * r6152055;
        double r6152057 = r6152053 + r6152056;
        return r6152057;
}

double f(double x, double y, double z) {
        double r6152058 = y;
        double r6152059 = sin(r6152058);
        double r6152060 = z;
        double r6152061 = x;
        double r6152062 = cos(r6152058);
        double r6152063 = r6152062 * r6152062;
        double r6152064 = log(r6152063);
        double r6152065 = exp(r6152064);
        double r6152066 = 0.3333333333333333;
        double r6152067 = pow(r6152065, r6152066);
        double r6152068 = r6152061 * r6152067;
        double r6152069 = cbrt(r6152062);
        double r6152070 = r6152068 * r6152069;
        double r6152071 = fma(r6152059, r6152060, r6152070);
        return r6152071;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Derivation

  1. Initial program 0.1

    \[x \cdot \cos y + z \cdot \sin y\]
  2. Simplified0.1

    \[\leadsto \color{blue}{\mathsf{fma}\left(\sin y, z, x \cdot \cos y\right)}\]
  3. Using strategy rm
  4. Applied add-cube-cbrt0.4

    \[\leadsto \mathsf{fma}\left(\sin y, z, x \cdot \color{blue}{\left(\left(\sqrt[3]{\cos y} \cdot \sqrt[3]{\cos y}\right) \cdot \sqrt[3]{\cos y}\right)}\right)\]
  5. Applied associate-*r*0.4

    \[\leadsto \mathsf{fma}\left(\sin y, z, \color{blue}{\left(x \cdot \left(\sqrt[3]{\cos y} \cdot \sqrt[3]{\cos y}\right)\right) \cdot \sqrt[3]{\cos y}}\right)\]
  6. Using strategy rm
  7. Applied pow1/316.8

    \[\leadsto \mathsf{fma}\left(\sin y, z, \left(x \cdot \left(\sqrt[3]{\cos y} \cdot \color{blue}{{\left(\cos y\right)}^{\frac{1}{3}}}\right)\right) \cdot \sqrt[3]{\cos y}\right)\]
  8. Applied pow1/316.8

    \[\leadsto \mathsf{fma}\left(\sin y, z, \left(x \cdot \left(\color{blue}{{\left(\cos y\right)}^{\frac{1}{3}}} \cdot {\left(\cos y\right)}^{\frac{1}{3}}\right)\right) \cdot \sqrt[3]{\cos y}\right)\]
  9. Applied pow-prod-down0.2

    \[\leadsto \mathsf{fma}\left(\sin y, z, \left(x \cdot \color{blue}{{\left(\cos y \cdot \cos y\right)}^{\frac{1}{3}}}\right) \cdot \sqrt[3]{\cos y}\right)\]
  10. Using strategy rm
  11. Applied add-exp-log0.2

    \[\leadsto \mathsf{fma}\left(\sin y, z, \left(x \cdot {\color{blue}{\left(e^{\log \left(\cos y \cdot \cos y\right)}\right)}}^{\frac{1}{3}}\right) \cdot \sqrt[3]{\cos y}\right)\]
  12. Final simplification0.2

    \[\leadsto \mathsf{fma}\left(\sin y, z, \left(x \cdot {\left(e^{\log \left(\cos y \cdot \cos y\right)}\right)}^{\frac{1}{3}}\right) \cdot \sqrt[3]{\cos y}\right)\]

Reproduce

herbie shell --seed 2019165 +o rules:numerics
(FPCore (x y z)
  :name "Diagrams.ThreeD.Transform:aboutY from diagrams-lib-1.3.0.3"
  (+ (* x (cos y)) (* z (sin y))))