x - \frac{y - z}{\frac{\left(t - z\right) + 1}{a}}\frac{a}{\frac{\left(t - z\right) + 1}{z - y}} + xdouble f(double x, double y, double z, double t, double a) {
double r463091 = x;
double r463092 = y;
double r463093 = z;
double r463094 = r463092 - r463093;
double r463095 = t;
double r463096 = r463095 - r463093;
double r463097 = 1.0;
double r463098 = r463096 + r463097;
double r463099 = a;
double r463100 = r463098 / r463099;
double r463101 = r463094 / r463100;
double r463102 = r463091 - r463101;
return r463102;
}
double f(double x, double y, double z, double t, double a) {
double r463103 = a;
double r463104 = t;
double r463105 = z;
double r463106 = r463104 - r463105;
double r463107 = 1.0;
double r463108 = r463106 + r463107;
double r463109 = y;
double r463110 = r463105 - r463109;
double r463111 = r463108 / r463110;
double r463112 = r463103 / r463111;
double r463113 = x;
double r463114 = r463112 + r463113;
return r463114;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 2.2 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 2.2
Simplified0.2
rmApplied clear-num0.2
rmApplied fma-udef0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019303 +o rules:numerics
(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))))