Average Error: 3.9 → 1.6
Time: 1.0m
Precision: 64
\[\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}\]
\[x - \left(\frac{\frac{y}{3}}{z} - \frac{\frac{1}{3}}{\frac{y}{\frac{t}{z}}}\right)\]
\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}
x - \left(\frac{\frac{y}{3}}{z} - \frac{\frac{1}{3}}{\frac{y}{\frac{t}{z}}}\right)
double f(double x, double y, double z, double t) {
        double r33120621 = x;
        double r33120622 = y;
        double r33120623 = z;
        double r33120624 = 3.0;
        double r33120625 = r33120623 * r33120624;
        double r33120626 = r33120622 / r33120625;
        double r33120627 = r33120621 - r33120626;
        double r33120628 = t;
        double r33120629 = r33120625 * r33120622;
        double r33120630 = r33120628 / r33120629;
        double r33120631 = r33120627 + r33120630;
        return r33120631;
}

double f(double x, double y, double z, double t) {
        double r33120632 = x;
        double r33120633 = y;
        double r33120634 = 3.0;
        double r33120635 = r33120633 / r33120634;
        double r33120636 = z;
        double r33120637 = r33120635 / r33120636;
        double r33120638 = 1.0;
        double r33120639 = r33120638 / r33120634;
        double r33120640 = t;
        double r33120641 = r33120640 / r33120636;
        double r33120642 = r33120633 / r33120641;
        double r33120643 = r33120639 / r33120642;
        double r33120644 = r33120637 - r33120643;
        double r33120645 = r33120632 - r33120644;
        return r33120645;
}

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

Derivation

  1. Initial program 3.9

    \[\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 *-un-lft-identity1.6

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

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

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

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

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

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

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

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

Reproduce

herbie shell --seed 2019200 +o rules:numerics
(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))))