Average Error: 3.5 → 3.4
Time: 15.0s
Precision: 64
\[\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}\]
\[\left(x - \frac{y}{z \cdot 3}\right) + \frac{\sqrt[3]{t} \cdot \sqrt[3]{t}}{3} \cdot \frac{{\left(\frac{\sqrt[3]{\sqrt[3]{t}}}{\sqrt[3]{y}}\right)}^{3}}{z}\]
\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}
\left(x - \frac{y}{z \cdot 3}\right) + \frac{\sqrt[3]{t} \cdot \sqrt[3]{t}}{3} \cdot \frac{{\left(\frac{\sqrt[3]{\sqrt[3]{t}}}{\sqrt[3]{y}}\right)}^{3}}{z}
double f(double x, double y, double z, double t) {
        double r557905 = x;
        double r557906 = y;
        double r557907 = z;
        double r557908 = 3.0;
        double r557909 = r557907 * r557908;
        double r557910 = r557906 / r557909;
        double r557911 = r557905 - r557910;
        double r557912 = t;
        double r557913 = r557909 * r557906;
        double r557914 = r557912 / r557913;
        double r557915 = r557911 + r557914;
        return r557915;
}

double f(double x, double y, double z, double t) {
        double r557916 = x;
        double r557917 = y;
        double r557918 = z;
        double r557919 = 3.0;
        double r557920 = r557918 * r557919;
        double r557921 = r557917 / r557920;
        double r557922 = r557916 - r557921;
        double r557923 = t;
        double r557924 = cbrt(r557923);
        double r557925 = r557924 * r557924;
        double r557926 = r557925 / r557919;
        double r557927 = cbrt(r557924);
        double r557928 = cbrt(r557917);
        double r557929 = r557927 / r557928;
        double r557930 = 3.0;
        double r557931 = pow(r557929, r557930);
        double r557932 = r557931 / r557918;
        double r557933 = r557926 * r557932;
        double r557934 = r557922 + r557933;
        return r557934;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original3.5
Target1.6
Herbie3.4
\[\left(x - \frac{y}{z \cdot 3}\right) + \frac{\frac{t}{z \cdot 3}}{y}\]

Derivation

  1. Initial program 3.5

    \[\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}\]
  2. Using strategy rm
  3. Applied add-cube-cbrt3.7

    \[\leadsto \left(x - \frac{y}{z \cdot 3}\right) + \frac{\color{blue}{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot \sqrt[3]{t}}}{\left(z \cdot 3\right) \cdot y}\]
  4. Applied times-frac1.7

    \[\leadsto \left(x - \frac{y}{z \cdot 3}\right) + \color{blue}{\frac{\sqrt[3]{t} \cdot \sqrt[3]{t}}{z \cdot 3} \cdot \frac{\sqrt[3]{t}}{y}}\]
  5. Using strategy rm
  6. Applied add-cube-cbrt1.8

    \[\leadsto \left(x - \frac{y}{z \cdot 3}\right) + \frac{\sqrt[3]{t} \cdot \sqrt[3]{t}}{z \cdot 3} \cdot \frac{\sqrt[3]{t}}{\color{blue}{\left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{y}}}\]
  7. Applied add-cube-cbrt1.9

    \[\leadsto \left(x - \frac{y}{z \cdot 3}\right) + \frac{\sqrt[3]{t} \cdot \sqrt[3]{t}}{z \cdot 3} \cdot \frac{\color{blue}{\left(\sqrt[3]{\sqrt[3]{t}} \cdot \sqrt[3]{\sqrt[3]{t}}\right) \cdot \sqrt[3]{\sqrt[3]{t}}}}{\left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{y}}\]
  8. Applied times-frac1.9

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

    \[\leadsto \left(x - \frac{y}{z \cdot 3}\right) + \color{blue}{\left(\frac{\sqrt[3]{t} \cdot \sqrt[3]{t}}{z \cdot 3} \cdot \frac{\sqrt[3]{\sqrt[3]{t}} \cdot \sqrt[3]{\sqrt[3]{t}}}{\sqrt[3]{y} \cdot \sqrt[3]{y}}\right) \cdot \frac{\sqrt[3]{\sqrt[3]{t}}}{\sqrt[3]{y}}}\]
  10. Final simplification3.4

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

Reproduce

herbie shell --seed 2019291 
(FPCore (x y z t)
  :name "Diagrams.Solve.Polynomial:cubForm  from diagrams-solve-0.1, H"
  :precision binary64

  :herbie-target
  (+ (- x (/ y (* z 3))) (/ (/ t (* z 3)) y))

  (+ (- x (/ y (* z 3))) (/ t (* (* z 3) y))))