x + \frac{y \cdot \left(z - t\right)}{a - t}x + \frac{y}{\frac{a - t}{z - t}}double f(double x, double y, double z, double t, double a) {
double r420312 = x;
double r420313 = y;
double r420314 = z;
double r420315 = t;
double r420316 = r420314 - r420315;
double r420317 = r420313 * r420316;
double r420318 = a;
double r420319 = r420318 - r420315;
double r420320 = r420317 / r420319;
double r420321 = r420312 + r420320;
return r420321;
}
double f(double x, double y, double z, double t, double a) {
double r420322 = x;
double r420323 = y;
double r420324 = a;
double r420325 = t;
double r420326 = r420324 - r420325;
double r420327 = z;
double r420328 = r420327 - r420325;
double r420329 = r420326 / r420328;
double r420330 = r420323 / r420329;
double r420331 = r420322 + r420330;
return r420331;
}




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 | 1.2 |
| Herbie | 1.2 |
if y < -1.4275099853550002e-37 or 9.032302851762362e-182 < y Initial program 16.4
rmApplied associate-/l*0.6
if -1.4275099853550002e-37 < y < 9.032302851762362e-182Initial program 0.2
rmApplied div-inv0.2
Final simplification1.2
herbie shell --seed 2019294
(FPCore (x y z t a)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisTicks from plot-0.2.3.4, B"
:precision binary64
:herbie-target
(+ x (/ y (/ (- a t) (- z t))))
(+ x (/ (* y (- z t)) (- a t))))