Average Error: 3.7 → 1.6
Time: 6.7s
Precision: 64
\[\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}\]
\[\left(x - \frac{\frac{y}{z}}{3}\right) + \frac{\frac{t}{z}}{3} \cdot \frac{1}{y}\]
\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}
\left(x - \frac{\frac{y}{z}}{3}\right) + \frac{\frac{t}{z}}{3} \cdot \frac{1}{y}
double f(double x, double y, double z, double t) {
        double r980548 = x;
        double r980549 = y;
        double r980550 = z;
        double r980551 = 3.0;
        double r980552 = r980550 * r980551;
        double r980553 = r980549 / r980552;
        double r980554 = r980548 - r980553;
        double r980555 = t;
        double r980556 = r980552 * r980549;
        double r980557 = r980555 / r980556;
        double r980558 = r980554 + r980557;
        return r980558;
}

double f(double x, double y, double z, double t) {
        double r980559 = x;
        double r980560 = y;
        double r980561 = z;
        double r980562 = r980560 / r980561;
        double r980563 = 3.0;
        double r980564 = r980562 / r980563;
        double r980565 = r980559 - r980564;
        double r980566 = t;
        double r980567 = r980566 / r980561;
        double r980568 = r980567 / r980563;
        double r980569 = 1.0;
        double r980570 = r980569 / r980560;
        double r980571 = r980568 * r980570;
        double r980572 = r980565 + r980571;
        return r980572;
}

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.6
\[\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 associate-/r*1.6

    \[\leadsto \left(x - \frac{y}{z \cdot 3}\right) + \color{blue}{\frac{\frac{t}{z \cdot 3}}{y}}\]
  4. Using strategy rm
  5. Applied div-inv1.7

    \[\leadsto \left(x - \frac{y}{z \cdot 3}\right) + \color{blue}{\frac{t}{z \cdot 3} \cdot \frac{1}{y}}\]
  6. Using strategy rm
  7. Applied associate-/r*1.7

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

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

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

Reproduce

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