x + \frac{\left(y - z\right) \cdot t}{a - z}t \cdot \frac{y - z}{a - z} + xdouble f(double x, double y, double z, double t, double a) {
double r498458 = x;
double r498459 = y;
double r498460 = z;
double r498461 = r498459 - r498460;
double r498462 = t;
double r498463 = r498461 * r498462;
double r498464 = a;
double r498465 = r498464 - r498460;
double r498466 = r498463 / r498465;
double r498467 = r498458 + r498466;
return r498467;
}
double f(double x, double y, double z, double t, double a) {
double r498468 = t;
double r498469 = y;
double r498470 = z;
double r498471 = r498469 - r498470;
double r498472 = a;
double r498473 = r498472 - r498470;
double r498474 = r498471 / r498473;
double r498475 = r498468 * r498474;
double r498476 = x;
double r498477 = r498475 + r498476;
return r498477;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 10.8 |
|---|---|
| Target | 0.6 |
| Herbie | 1.2 |
Initial program 10.8
rmApplied add-cube-cbrt11.2
Applied times-frac1.8
rmApplied pow11.8
Applied pow11.8
Applied pow-prod-down1.8
Simplified3.0
rmApplied div-inv3.1
Applied associate-*l*1.3
Simplified1.2
Final simplification1.2
herbie shell --seed 2019303
(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))))