x + y \cdot \frac{z - t}{z - a}\frac{y}{\frac{z - a}{z - t}} + xdouble f(double x, double y, double z, double t, double a) {
double r478493 = x;
double r478494 = y;
double r478495 = z;
double r478496 = t;
double r478497 = r478495 - r478496;
double r478498 = a;
double r478499 = r478495 - r478498;
double r478500 = r478497 / r478499;
double r478501 = r478494 * r478500;
double r478502 = r478493 + r478501;
return r478502;
}
double f(double x, double y, double z, double t, double a) {
double r478503 = y;
double r478504 = z;
double r478505 = a;
double r478506 = r478504 - r478505;
double r478507 = t;
double r478508 = r478504 - r478507;
double r478509 = r478506 / r478508;
double r478510 = r478503 / r478509;
double r478511 = x;
double r478512 = r478510 + r478511;
return r478512;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 1.3 |
|---|---|
| Target | 1.2 |
| Herbie | 1.2 |
if t < 1.287048790828237e+120Initial program 1.0
rmApplied clear-num1.1
rmApplied *-un-lft-identity1.1
Applied associate-*l*1.1
Simplified1.0
if 1.287048790828237e+120 < t Initial program 3.3
rmApplied clear-num3.3
rmApplied *-un-lft-identity3.3
Applied associate-*l*3.3
Simplified3.1
rmApplied add-cube-cbrt3.6
Applied *-un-lft-identity3.6
Applied times-frac3.6
Applied add-cube-cbrt3.8
Applied times-frac5.1
Simplified5.1
Final simplification1.2
herbie shell --seed 2019297
(FPCore (x y z t a)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisLine from plot-0.2.3.4, A"
:precision binary64
:herbie-target
(+ x (/ y (/ (- z a) (- z t))))
(+ x (* y (/ (- z t) (- z a)))))