x + \frac{\left(y - z\right) \cdot t}{a - z}x + \frac{y - z}{\frac{a - z}{t}}double f(double x, double y, double z, double t, double a) {
double r468214 = x;
double r468215 = y;
double r468216 = z;
double r468217 = r468215 - r468216;
double r468218 = t;
double r468219 = r468217 * r468218;
double r468220 = a;
double r468221 = r468220 - r468216;
double r468222 = r468219 / r468221;
double r468223 = r468214 + r468222;
return r468223;
}
double f(double x, double y, double z, double t, double a) {
double r468224 = x;
double r468225 = y;
double r468226 = z;
double r468227 = r468225 - r468226;
double r468228 = a;
double r468229 = r468228 - r468226;
double r468230 = t;
double r468231 = r468229 / r468230;
double r468232 = r468227 / r468231;
double r468233 = r468224 + r468232;
return r468233;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 10.2 |
|---|---|
| Target | 0.5 |
| Herbie | 3.1 |
if z < -6.812794228353364e+53 or 9.139927293791955e-103 < z Initial program 15.3
rmApplied associate-/l*3.7
rmApplied associate-/r/0.3
if -6.812794228353364e+53 < z < 9.139927293791955e-103Initial program 3.4
rmApplied associate-/l*2.5
Final simplification3.1
herbie shell --seed 2019294
(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))))