Average Error: 8.8 → 0.1
Time: 14.9s
Precision: 64
\[\frac{x}{y} + \frac{2 + \left(z \cdot 2\right) \cdot \left(1 - t\right)}{t \cdot z}\]
\[\frac{\left(1 - t\right) \cdot 2 + \frac{2}{z}}{t} + \frac{x}{y}\]
\frac{x}{y} + \frac{2 + \left(z \cdot 2\right) \cdot \left(1 - t\right)}{t \cdot z}
\frac{\left(1 - t\right) \cdot 2 + \frac{2}{z}}{t} + \frac{x}{y}
double f(double x, double y, double z, double t) {
        double r603714 = x;
        double r603715 = y;
        double r603716 = r603714 / r603715;
        double r603717 = 2.0;
        double r603718 = z;
        double r603719 = r603718 * r603717;
        double r603720 = 1.0;
        double r603721 = t;
        double r603722 = r603720 - r603721;
        double r603723 = r603719 * r603722;
        double r603724 = r603717 + r603723;
        double r603725 = r603721 * r603718;
        double r603726 = r603724 / r603725;
        double r603727 = r603716 + r603726;
        return r603727;
}

double f(double x, double y, double z, double t) {
        double r603728 = 1.0;
        double r603729 = t;
        double r603730 = r603728 - r603729;
        double r603731 = 2.0;
        double r603732 = r603730 * r603731;
        double r603733 = z;
        double r603734 = r603731 / r603733;
        double r603735 = r603732 + r603734;
        double r603736 = r603735 / r603729;
        double r603737 = x;
        double r603738 = y;
        double r603739 = r603737 / r603738;
        double r603740 = r603736 + r603739;
        return r603740;
}

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

Original8.8
Target0.1
Herbie0.1
\[\frac{\frac{2}{z} + 2}{t} - \left(2 - \frac{x}{y}\right)\]

Derivation

  1. Initial program 8.8

    \[\frac{x}{y} + \frac{2 + \left(z \cdot 2\right) \cdot \left(1 - t\right)}{t \cdot z}\]
  2. Simplified0.1

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

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

Reproduce

herbie shell --seed 2019304 
(FPCore (x y z t)
  :name "Data.HashTable.ST.Basic:computeOverhead from hashtables-1.2.0.2"
  :precision binary64

  :herbie-target
  (- (/ (+ (/ 2 z) 2) t) (- 2 (/ x y)))

  (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))))