Average Error: 3.7 → 1.5
Time: 15.4s
Precision: 64
\[\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}\]
\[x + \left(\frac{\frac{\frac{t}{3}}{z}}{y} - \frac{y}{z \cdot 3}\right)\]
\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}
x + \left(\frac{\frac{\frac{t}{3}}{z}}{y} - \frac{y}{z \cdot 3}\right)
double f(double x, double y, double z, double t) {
        double r622734 = x;
        double r622735 = y;
        double r622736 = z;
        double r622737 = 3.0;
        double r622738 = r622736 * r622737;
        double r622739 = r622735 / r622738;
        double r622740 = r622734 - r622739;
        double r622741 = t;
        double r622742 = r622738 * r622735;
        double r622743 = r622741 / r622742;
        double r622744 = r622740 + r622743;
        return r622744;
}

double f(double x, double y, double z, double t) {
        double r622745 = x;
        double r622746 = t;
        double r622747 = 3.0;
        double r622748 = r622746 / r622747;
        double r622749 = z;
        double r622750 = r622748 / r622749;
        double r622751 = y;
        double r622752 = r622750 / r622751;
        double r622753 = r622749 * r622747;
        double r622754 = r622751 / r622753;
        double r622755 = r622752 - r622754;
        double r622756 = r622745 + r622755;
        return r622756;
}

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.7
Target1.6
Herbie1.5
\[\left(x - \frac{y}{z \cdot 3}\right) + \frac{\frac{t}{z \cdot 3}}{y}\]

Derivation

  1. Initial program 3.7

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

    \[\leadsto \color{blue}{\left(x + \left(-\frac{y}{z \cdot 3}\right)\right)} + \frac{t}{\left(z \cdot 3\right) \cdot y}\]
  4. Applied associate-+l+3.7

    \[\leadsto \color{blue}{x + \left(\left(-\frac{y}{z \cdot 3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}\right)}\]
  5. Simplified1.6

    \[\leadsto x + \color{blue}{\left(\frac{\frac{t}{z \cdot 3}}{y} - \frac{y}{z \cdot 3}\right)}\]
  6. Using strategy rm
  7. Applied *-un-lft-identity1.6

    \[\leadsto x + \left(\frac{\frac{t}{z \cdot 3}}{\color{blue}{1 \cdot y}} - \frac{y}{z \cdot 3}\right)\]
  8. Applied associate-/r*1.6

    \[\leadsto x + \left(\color{blue}{\frac{\frac{\frac{t}{z \cdot 3}}{1}}{y}} - \frac{y}{z \cdot 3}\right)\]
  9. Simplified1.5

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

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

Reproduce

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

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

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