Average Error: 3.8 → 1.9
Time: 16.1s
Precision: 64
\[\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}\]
\[\left(\frac{\frac{1}{z} \cdot \frac{t}{3}}{y} - \frac{y}{3} \cdot \frac{1}{z}\right) + x\]
\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}
\left(\frac{\frac{1}{z} \cdot \frac{t}{3}}{y} - \frac{y}{3} \cdot \frac{1}{z}\right) + x
double f(double x, double y, double z, double t) {
        double r19383206 = x;
        double r19383207 = y;
        double r19383208 = z;
        double r19383209 = 3.0;
        double r19383210 = r19383208 * r19383209;
        double r19383211 = r19383207 / r19383210;
        double r19383212 = r19383206 - r19383211;
        double r19383213 = t;
        double r19383214 = r19383210 * r19383207;
        double r19383215 = r19383213 / r19383214;
        double r19383216 = r19383212 + r19383215;
        return r19383216;
}

double f(double x, double y, double z, double t) {
        double r19383217 = 1.0;
        double r19383218 = z;
        double r19383219 = r19383217 / r19383218;
        double r19383220 = t;
        double r19383221 = 3.0;
        double r19383222 = r19383220 / r19383221;
        double r19383223 = r19383219 * r19383222;
        double r19383224 = y;
        double r19383225 = r19383223 / r19383224;
        double r19383226 = r19383224 / r19383221;
        double r19383227 = r19383226 * r19383219;
        double r19383228 = r19383225 - r19383227;
        double r19383229 = x;
        double r19383230 = r19383228 + r19383229;
        return r19383230;
}

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

Derivation

  1. Initial program 3.8

    \[\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.8

    \[\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.8

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

    \[\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.9

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

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

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

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

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

Reproduce

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