x - \frac{y - z}{\frac{\left(t - z\right) + 1}{a}}x - \frac{1}{\frac{\left(t - z\right) + 1}{y - z}} \cdot adouble f(double x, double y, double z, double t, double a) {
double r730584 = x;
double r730585 = y;
double r730586 = z;
double r730587 = r730585 - r730586;
double r730588 = t;
double r730589 = r730588 - r730586;
double r730590 = 1.0;
double r730591 = r730589 + r730590;
double r730592 = a;
double r730593 = r730591 / r730592;
double r730594 = r730587 / r730593;
double r730595 = r730584 - r730594;
return r730595;
}
double f(double x, double y, double z, double t, double a) {
double r730596 = x;
double r730597 = 1.0;
double r730598 = t;
double r730599 = z;
double r730600 = r730598 - r730599;
double r730601 = 1.0;
double r730602 = r730600 + r730601;
double r730603 = y;
double r730604 = r730603 - r730599;
double r730605 = r730602 / r730604;
double r730606 = r730597 / r730605;
double r730607 = a;
double r730608 = r730606 * r730607;
double r730609 = r730596 - r730608;
return r730609;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 1.8 |
|---|---|
| Target | 0.2 |
| Herbie | 0.3 |
Initial program 1.8
rmApplied associate-/r/0.2
rmApplied clear-num0.3
Final simplification0.3
herbie shell --seed 2020045
(FPCore (x y z t a)
:name "Graphics.Rendering.Chart.SparkLine:renderSparkLine from Chart-1.5.3"
:precision binary64
:herbie-target
(- x (* (/ (- y z) (+ (- t z) 1)) a))
(- x (/ (- y z) (/ (+ (- t z) 1) a))))