Average Error: 0.1 → 0.9
Time: 5.8s
Precision: 64
\[x \cdot \sin y + z \cdot \cos y\]
\[x \cdot \sin y + \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \left(\sqrt[3]{z} \cdot \cos y\right)\]
x \cdot \sin y + z \cdot \cos y
x \cdot \sin y + \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \left(\sqrt[3]{z} \cdot \cos y\right)
double f(double x, double y, double z) {
        double r193179 = x;
        double r193180 = y;
        double r193181 = sin(r193180);
        double r193182 = r193179 * r193181;
        double r193183 = z;
        double r193184 = cos(r193180);
        double r193185 = r193183 * r193184;
        double r193186 = r193182 + r193185;
        return r193186;
}

double f(double x, double y, double z) {
        double r193187 = x;
        double r193188 = y;
        double r193189 = sin(r193188);
        double r193190 = r193187 * r193189;
        double r193191 = z;
        double r193192 = cbrt(r193191);
        double r193193 = r193192 * r193192;
        double r193194 = cos(r193188);
        double r193195 = r193192 * r193194;
        double r193196 = r193193 * r193195;
        double r193197 = r193190 + r193196;
        return r193197;
}

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.9

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

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

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

Reproduce

herbie shell --seed 2020060 
(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))))