Average Error: 0.1 → 0.4
Time: 23.9s
Precision: 64
\[x \cdot \cos y - z \cdot \sin y\]
\[\mathsf{expm1}\left(\mathsf{log1p}\left(\sqrt[3]{\cos y}\right)\right) \cdot \left(\left(\sqrt[3]{\cos y} \cdot \sqrt[3]{\cos y}\right) \cdot x\right) - z \cdot \sin y\]
x \cdot \cos y - z \cdot \sin y
\mathsf{expm1}\left(\mathsf{log1p}\left(\sqrt[3]{\cos y}\right)\right) \cdot \left(\left(\sqrt[3]{\cos y} \cdot \sqrt[3]{\cos y}\right) \cdot x\right) - z \cdot \sin y
double f(double x, double y, double z) {
        double r5599734 = x;
        double r5599735 = y;
        double r5599736 = cos(r5599735);
        double r5599737 = r5599734 * r5599736;
        double r5599738 = z;
        double r5599739 = sin(r5599735);
        double r5599740 = r5599738 * r5599739;
        double r5599741 = r5599737 - r5599740;
        return r5599741;
}

double f(double x, double y, double z) {
        double r5599742 = y;
        double r5599743 = cos(r5599742);
        double r5599744 = cbrt(r5599743);
        double r5599745 = log1p(r5599744);
        double r5599746 = expm1(r5599745);
        double r5599747 = r5599744 * r5599744;
        double r5599748 = x;
        double r5599749 = r5599747 * r5599748;
        double r5599750 = r5599746 * r5599749;
        double r5599751 = z;
        double r5599752 = sin(r5599742);
        double r5599753 = r5599751 * r5599752;
        double r5599754 = r5599750 - r5599753;
        return r5599754;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.1

    \[x \cdot \cos y - z \cdot \sin y\]
  2. Using strategy rm
  3. Applied add-cube-cbrt0.4

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

    \[\leadsto \color{blue}{\left(x \cdot \left(\sqrt[3]{\cos y} \cdot \sqrt[3]{\cos y}\right)\right) \cdot \sqrt[3]{\cos y}} - z \cdot \sin y\]
  5. Using strategy rm
  6. Applied expm1-log1p-u0.4

    \[\leadsto \left(x \cdot \left(\sqrt[3]{\cos y} \cdot \sqrt[3]{\cos y}\right)\right) \cdot \color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\sqrt[3]{\cos y}\right)\right)} - z \cdot \sin y\]
  7. Final simplification0.4

    \[\leadsto \mathsf{expm1}\left(\mathsf{log1p}\left(\sqrt[3]{\cos y}\right)\right) \cdot \left(\left(\sqrt[3]{\cos y} \cdot \sqrt[3]{\cos y}\right) \cdot x\right) - z \cdot \sin y\]

Reproduce

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