x + \frac{\left(y - z\right) \cdot t}{a - z}x + \frac{\left(y - z\right) \cdot t}{a - z}double f(double x, double y, double z, double t, double a) {
double r549873 = x;
double r549874 = y;
double r549875 = z;
double r549876 = r549874 - r549875;
double r549877 = t;
double r549878 = r549876 * r549877;
double r549879 = a;
double r549880 = r549879 - r549875;
double r549881 = r549878 / r549880;
double r549882 = r549873 + r549881;
return r549882;
}
double f(double x, double y, double z, double t, double a) {
double r549883 = x;
double r549884 = y;
double r549885 = z;
double r549886 = r549884 - r549885;
double r549887 = t;
double r549888 = r549886 * r549887;
double r549889 = a;
double r549890 = r549889 - r549885;
double r549891 = r549888 / r549890;
double r549892 = r549883 + r549891;
return r549892;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 10.7 |
|---|---|
| Target | 0.7 |
| Herbie | 10.7 |
if (/ (* (- y z) t) (- a z)) < -3.6042496369238863e+224Initial program 50.1
rmApplied associate-/l*3.3
rmApplied associate-/r/2.6
if -3.6042496369238863e+224 < (/ (* (- y z) t) (- a z)) < 5.869543805125872e+296Initial program 0.3
if 5.869543805125872e+296 < (/ (* (- y z) t) (- a z)) Initial program 61.6
rmApplied associate-/l*0.9
rmApplied clear-num1.0
Final simplification10.7
herbie shell --seed 2019291
(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))))