Average Error: 0.1 → 0.2
Time: 11.2s
Precision: 64
\[\left(\left(x \cdot y + z \cdot z\right) + z \cdot z\right) + z \cdot z\]
\[\left(\left(\left(z \cdot {\left(\sqrt[3]{3}\right)}^{2}\right) \cdot z\right) \cdot \sqrt[3]{{\left(\sqrt[3]{3}\right)}^{2}}\right) \cdot \sqrt[3]{\sqrt[3]{3}} + x \cdot y\]
\left(\left(x \cdot y + z \cdot z\right) + z \cdot z\right) + z \cdot z
\left(\left(\left(z \cdot {\left(\sqrt[3]{3}\right)}^{2}\right) \cdot z\right) \cdot \sqrt[3]{{\left(\sqrt[3]{3}\right)}^{2}}\right) \cdot \sqrt[3]{\sqrt[3]{3}} + x \cdot y
double f(double x, double y, double z) {
        double r464185 = x;
        double r464186 = y;
        double r464187 = r464185 * r464186;
        double r464188 = z;
        double r464189 = r464188 * r464188;
        double r464190 = r464187 + r464189;
        double r464191 = r464190 + r464189;
        double r464192 = r464191 + r464189;
        return r464192;
}

double f(double x, double y, double z) {
        double r464193 = z;
        double r464194 = 3.0;
        double r464195 = cbrt(r464194);
        double r464196 = 2.0;
        double r464197 = pow(r464195, r464196);
        double r464198 = r464193 * r464197;
        double r464199 = r464198 * r464193;
        double r464200 = cbrt(r464197);
        double r464201 = r464199 * r464200;
        double r464202 = cbrt(r464195);
        double r464203 = r464201 * r464202;
        double r464204 = x;
        double r464205 = y;
        double r464206 = r464204 * r464205;
        double r464207 = r464203 + r464206;
        return r464207;
}

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

Target

Original0.1
Target0.1
Herbie0.2
\[\left(3 \cdot z\right) \cdot z + y \cdot x\]

Derivation

  1. Initial program 0.1

    \[\left(\left(x \cdot y + z \cdot z\right) + z \cdot z\right) + z \cdot z\]
  2. Simplified0.1

    \[\leadsto \color{blue}{x \cdot y + \left(z \cdot z\right) \cdot 3}\]
  3. Using strategy rm
  4. Applied add-cube-cbrt0.1

    \[\leadsto x \cdot y + \left(z \cdot z\right) \cdot \color{blue}{\left(\left(\sqrt[3]{3} \cdot \sqrt[3]{3}\right) \cdot \sqrt[3]{3}\right)}\]
  5. Applied associate-*r*0.2

    \[\leadsto x \cdot y + \color{blue}{\left(\left(z \cdot z\right) \cdot \left(\sqrt[3]{3} \cdot \sqrt[3]{3}\right)\right) \cdot \sqrt[3]{3}}\]
  6. Using strategy rm
  7. Applied add-cube-cbrt0.2

    \[\leadsto x \cdot y + \left(\left(z \cdot z\right) \cdot \left(\sqrt[3]{3} \cdot \sqrt[3]{3}\right)\right) \cdot \sqrt[3]{\color{blue}{\left(\sqrt[3]{3} \cdot \sqrt[3]{3}\right) \cdot \sqrt[3]{3}}}\]
  8. Applied cbrt-prod0.2

    \[\leadsto x \cdot y + \left(\left(z \cdot z\right) \cdot \left(\sqrt[3]{3} \cdot \sqrt[3]{3}\right)\right) \cdot \color{blue}{\left(\sqrt[3]{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \sqrt[3]{\sqrt[3]{3}}\right)}\]
  9. Applied associate-*r*0.2

    \[\leadsto x \cdot y + \color{blue}{\left(\left(\left(z \cdot z\right) \cdot \left(\sqrt[3]{3} \cdot \sqrt[3]{3}\right)\right) \cdot \sqrt[3]{\sqrt[3]{3} \cdot \sqrt[3]{3}}\right) \cdot \sqrt[3]{\sqrt[3]{3}}}\]
  10. Simplified0.2

    \[\leadsto x \cdot y + \color{blue}{\left(\left({\left(\sqrt[3]{3}\right)}^{2} \cdot \left(z \cdot z\right)\right) \cdot \sqrt[3]{{\left(\sqrt[3]{3}\right)}^{2}}\right)} \cdot \sqrt[3]{\sqrt[3]{3}}\]
  11. Using strategy rm
  12. Applied associate-*r*0.2

    \[\leadsto x \cdot y + \left(\color{blue}{\left(\left({\left(\sqrt[3]{3}\right)}^{2} \cdot z\right) \cdot z\right)} \cdot \sqrt[3]{{\left(\sqrt[3]{3}\right)}^{2}}\right) \cdot \sqrt[3]{\sqrt[3]{3}}\]
  13. Simplified0.2

    \[\leadsto x \cdot y + \left(\left(\color{blue}{\left(z \cdot {\left(\sqrt[3]{3}\right)}^{2}\right)} \cdot z\right) \cdot \sqrt[3]{{\left(\sqrt[3]{3}\right)}^{2}}\right) \cdot \sqrt[3]{\sqrt[3]{3}}\]
  14. Final simplification0.2

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

Reproduce

herbie shell --seed 2019174 
(FPCore (x y z)
  :name "Linear.Quaternion:$c/ from linear-1.19.1.3, A"

  :herbie-target
  (+ (* (* 3.0 z) z) (* y x))

  (+ (+ (+ (* x y) (* z z)) (* z z)) (* z z)))