Average Error: 3.5 → 1.6
Time: 3.6s
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{0.333333333333333315}{\frac{y}{\frac{t}{z}}}\]
\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{0.333333333333333315}{\frac{y}{\frac{t}{z}}}
double f(double x, double y, double z, double t) {
        double r959953 = x;
        double r959954 = y;
        double r959955 = z;
        double r959956 = 3.0;
        double r959957 = r959955 * r959956;
        double r959958 = r959954 / r959957;
        double r959959 = r959953 - r959958;
        double r959960 = t;
        double r959961 = r959957 * r959954;
        double r959962 = r959960 / r959961;
        double r959963 = r959959 + r959962;
        return r959963;
}

double f(double x, double y, double z, double t) {
        double r959964 = x;
        double r959965 = y;
        double r959966 = z;
        double r959967 = r959965 / r959966;
        double r959968 = 3.0;
        double r959969 = r959967 / r959968;
        double r959970 = r959964 - r959969;
        double r959971 = 0.3333333333333333;
        double r959972 = t;
        double r959973 = r959972 / r959966;
        double r959974 = r959965 / r959973;
        double r959975 = r959971 / r959974;
        double r959976 = r959970 + r959975;
        return r959976;
}

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

Derivation

  1. Initial program 3.5

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

    \[\leadsto \left(x - \color{blue}{\frac{\frac{y}{z}}{3}}\right) + \frac{\frac{t}{z \cdot 3}}{y}\]
  6. Taylor expanded around 0 1.6

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

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

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

Reproduce

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