Average Error: 6.6 → 2.0
Time: 44.5s
Precision: 64
\[x + \frac{y \cdot \left(z - x\right)}{t}\]
\[x + \frac{z - x}{\frac{t}{y}}\]
x + \frac{y \cdot \left(z - x\right)}{t}
x + \frac{z - x}{\frac{t}{y}}
double f(double x, double y, double z, double t) {
        double r15663752 = x;
        double r15663753 = y;
        double r15663754 = z;
        double r15663755 = r15663754 - r15663752;
        double r15663756 = r15663753 * r15663755;
        double r15663757 = t;
        double r15663758 = r15663756 / r15663757;
        double r15663759 = r15663752 + r15663758;
        return r15663759;
}

double f(double x, double y, double z, double t) {
        double r15663760 = x;
        double r15663761 = z;
        double r15663762 = r15663761 - r15663760;
        double r15663763 = t;
        double r15663764 = y;
        double r15663765 = r15663763 / r15663764;
        double r15663766 = r15663762 / r15663765;
        double r15663767 = r15663760 + r15663766;
        return r15663767;
}

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

Original6.6
Target2.1
Herbie2.0
\[x - \left(x \cdot \frac{y}{t} + \left(-z\right) \cdot \frac{y}{t}\right)\]

Derivation

  1. Initial program 6.6

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

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

    \[\leadsto x + \color{blue}{\frac{z - x}{\frac{t}{y}}}\]
  4. Final simplification2.0

    \[\leadsto x + \frac{z - x}{\frac{t}{y}}\]

Reproduce

herbie shell --seed 2019168 
(FPCore (x y z t)
  :name "Optimisation.CirclePacking:place from circle-packing-0.1.0.4, D"

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

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