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 r523136 = x;
double r523137 = y;
double r523138 = z;
double r523139 = r523137 - r523138;
double r523140 = t;
double r523141 = r523140 - r523138;
double r523142 = 1.0;
double r523143 = r523141 + r523142;
double r523144 = a;
double r523145 = r523143 / r523144;
double r523146 = r523139 / r523145;
double r523147 = r523136 - r523146;
return r523147;
}
double f(double x, double y, double z, double t, double a) {
double r523148 = x;
double r523149 = a;
double r523150 = y;
double r523151 = z;
double r523152 = r523150 - r523151;
double r523153 = t;
double r523154 = r523153 - r523151;
double r523155 = 1.0;
double r523156 = r523154 + r523155;
double r523157 = r523152 / r523156;
double r523158 = r523149 * r523157;
double r523159 = r523148 - r523158;
return r523159;
}




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.2 |
| Herbie | 0.2 |
Initial program 1.9
rmApplied associate-/r/0.2
Final simplification0.2
herbie shell --seed 2019174
(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))))