Average Error: 3.6 → 1.9
Time: 14.9s
Precision: 64
\[\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}\]
\[\frac{\frac{t}{z}}{3} \cdot \frac{1}{y} + \left(x - \frac{\frac{y}{z}}{3}\right)\]
\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}
\frac{\frac{t}{z}}{3} \cdot \frac{1}{y} + \left(x - \frac{\frac{y}{z}}{3}\right)
double f(double x, double y, double z, double t) {
        double r566367 = x;
        double r566368 = y;
        double r566369 = z;
        double r566370 = 3.0;
        double r566371 = r566369 * r566370;
        double r566372 = r566368 / r566371;
        double r566373 = r566367 - r566372;
        double r566374 = t;
        double r566375 = r566371 * r566368;
        double r566376 = r566374 / r566375;
        double r566377 = r566373 + r566376;
        return r566377;
}

double f(double x, double y, double z, double t) {
        double r566378 = t;
        double r566379 = z;
        double r566380 = r566378 / r566379;
        double r566381 = 3.0;
        double r566382 = r566380 / r566381;
        double r566383 = 1.0;
        double r566384 = y;
        double r566385 = r566383 / r566384;
        double r566386 = r566382 * r566385;
        double r566387 = x;
        double r566388 = r566384 / r566379;
        double r566389 = r566388 / r566381;
        double r566390 = r566387 - r566389;
        double r566391 = r566386 + r566390;
        return r566391;
}

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

Derivation

  1. Initial program 3.6

    \[\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}\]
  2. Simplified3.6

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

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

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

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

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

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

Reproduce

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