Average Error: 9.4 → 0.1
Time: 25.4s
Precision: 64
\[\frac{x}{y} + \frac{2 + \left(z \cdot 2\right) \cdot \left(1 - t\right)}{t \cdot z}\]
\[\frac{x}{y} + \left(\frac{2}{t} + \left(\frac{2}{t \cdot z} - 2\right)\right)\]
\frac{x}{y} + \frac{2 + \left(z \cdot 2\right) \cdot \left(1 - t\right)}{t \cdot z}
\frac{x}{y} + \left(\frac{2}{t} + \left(\frac{2}{t \cdot z} - 2\right)\right)
double f(double x, double y, double z, double t) {
        double r595010 = x;
        double r595011 = y;
        double r595012 = r595010 / r595011;
        double r595013 = 2.0;
        double r595014 = z;
        double r595015 = r595014 * r595013;
        double r595016 = 1.0;
        double r595017 = t;
        double r595018 = r595016 - r595017;
        double r595019 = r595015 * r595018;
        double r595020 = r595013 + r595019;
        double r595021 = r595017 * r595014;
        double r595022 = r595020 / r595021;
        double r595023 = r595012 + r595022;
        return r595023;
}

double f(double x, double y, double z, double t) {
        double r595024 = x;
        double r595025 = y;
        double r595026 = r595024 / r595025;
        double r595027 = 2.0;
        double r595028 = t;
        double r595029 = r595027 / r595028;
        double r595030 = z;
        double r595031 = r595028 * r595030;
        double r595032 = r595027 / r595031;
        double r595033 = r595032 - r595027;
        double r595034 = r595029 + r595033;
        double r595035 = r595026 + r595034;
        return r595035;
}

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

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

Derivation

  1. Initial program 9.4

    \[\frac{x}{y} + \frac{2 + \left(z \cdot 2\right) \cdot \left(1 - t\right)}{t \cdot z}\]
  2. Taylor expanded around 0 0.1

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

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

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

Reproduce

herbie shell --seed 2019199 +o rules:numerics
(FPCore (x y z t)
  :name "Data.HashTable.ST.Basic:computeOverhead from hashtables-1.2.0.2"

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

  (+ (/ x y) (/ (+ 2.0 (* (* z 2.0) (- 1.0 t))) (* t z))))