x + \frac{\left(y - z\right) \cdot t}{a - z}x + \frac{y - z}{a - z} \cdot tdouble f(double x, double y, double z, double t, double a) {
double r624641 = x;
double r624642 = y;
double r624643 = z;
double r624644 = r624642 - r624643;
double r624645 = t;
double r624646 = r624644 * r624645;
double r624647 = a;
double r624648 = r624647 - r624643;
double r624649 = r624646 / r624648;
double r624650 = r624641 + r624649;
return r624650;
}
double f(double x, double y, double z, double t, double a) {
double r624651 = x;
double r624652 = y;
double r624653 = z;
double r624654 = r624652 - r624653;
double r624655 = a;
double r624656 = r624655 - r624653;
double r624657 = r624654 / r624656;
double r624658 = t;
double r624659 = r624657 * r624658;
double r624660 = r624651 + r624659;
return r624660;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 10.4 |
|---|---|
| Target | 0.5 |
| Herbie | 1.3 |
Initial program 10.4
rmApplied associate-/l*2.9
rmApplied associate-/r/1.3
Final simplification1.3
herbie shell --seed 2019362
(FPCore (x y z t a)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisTick from plot-0.2.3.4, A"
:precision binary64
:herbie-target
(if (< t -1.0682974490174067e-39) (+ x (* (/ (- y z) (- a z)) t)) (if (< t 3.9110949887586375e-141) (+ x (/ (* (- y z) t) (- a z))) (+ x (* (/ (- y z) (- a z)) t))))
(+ x (/ (* (- y z) t) (- a z))))