Average Error: 7.1 → 0.1
Time: 19.3s
Precision: 64
\[\frac{x + \frac{y \cdot z - x}{t \cdot z - x}}{x + 1}\]
\[\frac{y}{\left(x + 1\right) \cdot \left(t - \frac{x}{z}\right)} - \frac{\frac{x}{z \cdot t - x} - x}{x + 1}\]
\frac{x + \frac{y \cdot z - x}{t \cdot z - x}}{x + 1}
\frac{y}{\left(x + 1\right) \cdot \left(t - \frac{x}{z}\right)} - \frac{\frac{x}{z \cdot t - x} - x}{x + 1}
double f(double x, double y, double z, double t) {
        double r620548 = x;
        double r620549 = y;
        double r620550 = z;
        double r620551 = r620549 * r620550;
        double r620552 = r620551 - r620548;
        double r620553 = t;
        double r620554 = r620553 * r620550;
        double r620555 = r620554 - r620548;
        double r620556 = r620552 / r620555;
        double r620557 = r620548 + r620556;
        double r620558 = 1.0;
        double r620559 = r620548 + r620558;
        double r620560 = r620557 / r620559;
        return r620560;
}

double f(double x, double y, double z, double t) {
        double r620561 = y;
        double r620562 = x;
        double r620563 = 1.0;
        double r620564 = r620562 + r620563;
        double r620565 = t;
        double r620566 = z;
        double r620567 = r620562 / r620566;
        double r620568 = r620565 - r620567;
        double r620569 = r620564 * r620568;
        double r620570 = r620561 / r620569;
        double r620571 = r620566 * r620565;
        double r620572 = r620571 - r620562;
        double r620573 = r620562 / r620572;
        double r620574 = r620573 - r620562;
        double r620575 = r620574 / r620564;
        double r620576 = r620570 - r620575;
        return r620576;
}

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

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

Derivation

  1. Initial program 7.1

    \[\frac{x + \frac{y \cdot z - x}{t \cdot z - x}}{x + 1}\]
  2. Simplified7.1

    \[\leadsto \color{blue}{\frac{\frac{z \cdot y - x}{z \cdot t - x} + x}{x + 1}}\]
  3. Using strategy rm
  4. Applied div-sub7.1

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

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

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

    \[\leadsto \frac{\color{blue}{\frac{y}{t - \frac{x}{z}} - \left(\frac{x}{z \cdot t - x} - x\right)}}{x + 1}\]
  9. Applied div-sub0.4

    \[\leadsto \color{blue}{\frac{\frac{y}{t - \frac{x}{z}}}{x + 1} - \frac{\frac{x}{z \cdot t - x} - x}{x + 1}}\]
  10. Simplified0.1

    \[\leadsto \color{blue}{\frac{\frac{y}{1 + x}}{t - \frac{x}{z}}} - \frac{\frac{x}{z \cdot t - x} - x}{x + 1}\]
  11. Simplified0.1

    \[\leadsto \frac{\frac{y}{1 + x}}{t - \frac{x}{z}} - \color{blue}{\frac{\frac{x}{z \cdot t - x} - x}{1 + x}}\]
  12. Using strategy rm
  13. Applied div-inv0.1

    \[\leadsto \frac{\color{blue}{y \cdot \frac{1}{1 + x}}}{t - \frac{x}{z}} - \frac{\frac{x}{z \cdot t - x} - x}{1 + x}\]
  14. Applied associate-/l*0.1

    \[\leadsto \color{blue}{\frac{y}{\frac{t - \frac{x}{z}}{\frac{1}{1 + x}}}} - \frac{\frac{x}{z \cdot t - x} - x}{1 + x}\]
  15. Simplified0.1

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

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

Reproduce

herbie shell --seed 2019194 
(FPCore (x y z t)
  :name "Diagrams.Trail:splitAtParam  from diagrams-lib-1.3.0.3, A"

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

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