Average Error: 0.1 → 0.6
Time: 5.6s
Precision: 64
\[x \cdot \sin y + z \cdot \cos y\]
\[\left(\sqrt[3]{x \cdot \sin y} \cdot \sqrt[3]{x \cdot \sin y}\right) \cdot \sqrt[3]{x \cdot \sin y} + z \cdot \cos y\]
x \cdot \sin y + z \cdot \cos y
\left(\sqrt[3]{x \cdot \sin y} \cdot \sqrt[3]{x \cdot \sin y}\right) \cdot \sqrt[3]{x \cdot \sin y} + z \cdot \cos y
double f(double x, double y, double z) {
        double r186920 = x;
        double r186921 = y;
        double r186922 = sin(r186921);
        double r186923 = r186920 * r186922;
        double r186924 = z;
        double r186925 = cos(r186921);
        double r186926 = r186924 * r186925;
        double r186927 = r186923 + r186926;
        return r186927;
}

double f(double x, double y, double z) {
        double r186928 = x;
        double r186929 = y;
        double r186930 = sin(r186929);
        double r186931 = r186928 * r186930;
        double r186932 = cbrt(r186931);
        double r186933 = r186932 * r186932;
        double r186934 = r186933 * r186932;
        double r186935 = z;
        double r186936 = cos(r186929);
        double r186937 = r186935 * r186936;
        double r186938 = r186934 + r186937;
        return r186938;
}

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 \sin y + z \cdot \cos y\]
  2. Using strategy rm
  3. Applied add-cube-cbrt0.6

    \[\leadsto \color{blue}{\left(\sqrt[3]{x \cdot \sin y} \cdot \sqrt[3]{x \cdot \sin y}\right) \cdot \sqrt[3]{x \cdot \sin y}} + z \cdot \cos y\]
  4. Final simplification0.6

    \[\leadsto \left(\sqrt[3]{x \cdot \sin y} \cdot \sqrt[3]{x \cdot \sin y}\right) \cdot \sqrt[3]{x \cdot \sin y} + z \cdot \cos y\]

Reproduce

herbie shell --seed 2019354 
(FPCore (x y z)
  :name "Diagrams.ThreeD.Transform:aboutX from diagrams-lib-1.3.0.3, B"
  :precision binary64
  (+ (* x (sin y)) (* z (cos y))))