Average Error: 0.1 → 0.6
Time: 19.8s
Precision: 64
\[x \cdot \sin y + z \cdot \cos y\]
\[\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \left(\sqrt[3]{x} \cdot \sin y\right) + z \cdot \cos y\]
x \cdot \sin y + z \cdot \cos y
\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \left(\sqrt[3]{x} \cdot \sin y\right) + z \cdot \cos y
double f(double x, double y, double z) {
        double r10276008 = x;
        double r10276009 = y;
        double r10276010 = sin(r10276009);
        double r10276011 = r10276008 * r10276010;
        double r10276012 = z;
        double r10276013 = cos(r10276009);
        double r10276014 = r10276012 * r10276013;
        double r10276015 = r10276011 + r10276014;
        return r10276015;
}

double f(double x, double y, double z) {
        double r10276016 = x;
        double r10276017 = cbrt(r10276016);
        double r10276018 = r10276017 * r10276017;
        double r10276019 = y;
        double r10276020 = sin(r10276019);
        double r10276021 = r10276017 * r10276020;
        double r10276022 = r10276018 * r10276021;
        double r10276023 = z;
        double r10276024 = cos(r10276019);
        double r10276025 = r10276023 * r10276024;
        double r10276026 = r10276022 + r10276025;
        return r10276026;
}

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(\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \sqrt[3]{x}\right)} \cdot \sin y + z \cdot \cos y\]
  4. Applied associate-*l*0.6

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

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

Reproduce

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