x - \frac{y - z}{\frac{\left(t - z\right) + 1}{a}}x - a \cdot \frac{y - z}{\left(t - z\right) + 1}double f(double x, double y, double z, double t, double a) {
double r27525990 = x;
double r27525991 = y;
double r27525992 = z;
double r27525993 = r27525991 - r27525992;
double r27525994 = t;
double r27525995 = r27525994 - r27525992;
double r27525996 = 1.0;
double r27525997 = r27525995 + r27525996;
double r27525998 = a;
double r27525999 = r27525997 / r27525998;
double r27526000 = r27525993 / r27525999;
double r27526001 = r27525990 - r27526000;
return r27526001;
}
double f(double x, double y, double z, double t, double a) {
double r27526002 = x;
double r27526003 = a;
double r27526004 = y;
double r27526005 = z;
double r27526006 = r27526004 - r27526005;
double r27526007 = t;
double r27526008 = r27526007 - r27526005;
double r27526009 = 1.0;
double r27526010 = r27526008 + r27526009;
double r27526011 = r27526006 / r27526010;
double r27526012 = r27526003 * r27526011;
double r27526013 = r27526002 - r27526012;
return r27526013;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




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