x - \frac{y - z}{\frac{\left(t - z\right) + 1}{a}}x - \left(\frac{y}{\left(t - z\right) + 1} - \frac{z}{\left(t - z\right) + 1}\right) \cdot adouble f(double x, double y, double z, double t, double a) {
double r614129 = x;
double r614130 = y;
double r614131 = z;
double r614132 = r614130 - r614131;
double r614133 = t;
double r614134 = r614133 - r614131;
double r614135 = 1.0;
double r614136 = r614134 + r614135;
double r614137 = a;
double r614138 = r614136 / r614137;
double r614139 = r614132 / r614138;
double r614140 = r614129 - r614139;
return r614140;
}
double f(double x, double y, double z, double t, double a) {
double r614141 = x;
double r614142 = y;
double r614143 = t;
double r614144 = z;
double r614145 = r614143 - r614144;
double r614146 = 1.0;
double r614147 = r614145 + r614146;
double r614148 = r614142 / r614147;
double r614149 = r614144 / r614147;
double r614150 = r614148 - r614149;
double r614151 = a;
double r614152 = r614150 * r614151;
double r614153 = r614141 - r614152;
return r614153;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 2.0 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 2.0
rmApplied associate-/r/0.2
rmApplied div-sub0.2
Final simplification0.2
herbie shell --seed 2020100
(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))))