x + y \cdot \frac{z - t}{z - a}x + y \cdot \left(\sqrt[3]{{\left(\frac{z}{z - a}\right)}^{3}} - \frac{t}{z - a}\right)double f(double x, double y, double z, double t, double a) {
double r642358 = x;
double r642359 = y;
double r642360 = z;
double r642361 = t;
double r642362 = r642360 - r642361;
double r642363 = a;
double r642364 = r642360 - r642363;
double r642365 = r642362 / r642364;
double r642366 = r642359 * r642365;
double r642367 = r642358 + r642366;
return r642367;
}
double f(double x, double y, double z, double t, double a) {
double r642368 = x;
double r642369 = y;
double r642370 = z;
double r642371 = a;
double r642372 = r642370 - r642371;
double r642373 = r642370 / r642372;
double r642374 = 3.0;
double r642375 = pow(r642373, r642374);
double r642376 = cbrt(r642375);
double r642377 = t;
double r642378 = r642377 / r642372;
double r642379 = r642376 - r642378;
double r642380 = r642369 * r642379;
double r642381 = r642368 + r642380;
return r642381;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 1.2 |
|---|---|
| Target | 1.1 |
| Herbie | 2.5 |
Initial program 1.2
rmApplied div-sub1.2
rmApplied add-cbrt-cube16.0
Applied add-cbrt-cube29.7
Applied cbrt-undiv29.8
Simplified2.5
Final simplification2.5
herbie shell --seed 2020034
(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)))))